US — Ars Technica
*sshole 소개: 해커가 Linux 기기에 SSH로 접속할 수 있게 하는 취약점
보안1분 읽기
Alpine Linux 같은 일부 리눅스 기기에서 10년 된 보안 취약점이 발견되었습니다. 이 취약점을 쓰면 공격자가 비밀번호 없이 기기에 로그인할 수 있습니다.
무슨 일이 있었나
일부 설정의 Alpine Linux와 다른 배포판의 기기들이 10년 된 취약점의 영향을 받습니다. 이 취약점은 SSH 연결을 구현하는 코드인 OpenSSH와 musl 라이브러리가 만나는 부분에 있습니다. musl은 Alpine에서 쓰는 가벼운 C 라이브러리입니다. 이 조건에서는 공격자가 비밀번호 없이 기기에 들어갈 수 있습니다.
꼭 알아야 할 조건
- OpenSSH가 musl을 쓰고, PAM(사용자 인증 틀)을 쓰지 않아야 합니다.
- 해시 방식이 SHA256 또는 SHA512인 비밀번호를 가진 계정이 최소 하나 있어야 합니다.
- 대상 계정의 비밀번호 칸(/etc/shadow 파일)에 '*'가 적혀 있어야 합니다. 즉, 비밀번호가 없는 계정이어야 합니다.
- 연결 한 번이면 되고, 매번 성공하며, 다시 시도할 필요가 없다고 합니다.
조금 더 쉽게 보면
비밀번호가 없는 계정은 보통 인증서로 로그인하는 계정에서 씁니다. 연구원들은 이 계정이 해시만 가진 상태가 아니라 실제로 활성화되어 있어야 공격이 된다고 밝혔습니다. 보안 회사 Checkpoint는 기본 설정인 PermitRootLogin 금지 상태에서는 root 계정이 안전하다고 했습니다. 다만 doas나 sudo 권한이 있는 계정은 root가 될 수 있습니다.
왜 중요한가
Alpine 관리자들은 공격자가 SSH 포트에 접근할 수 있다면 비밀번호 없이 로그인할 수 있다고 경고했습니다. 피해가 클 수 있으므로, 해당 설정을 쓰는 기기는 빠르게 점검해야 합니다.
앞으로 지켜볼 점
- Alpine과 다른 배포판의 보안 업데이트가 나오는지 확인하세요.
- /etc/shadow에서 '*'로 된 계정이 있는지 점검하세요.
- SSH 포트가 외부에 열려 있는지 확인하세요.
용어 풀이
- Alpine Linux
- 가볍고 많이 쓰이는 리눅스 배포판입니다.
- OpenSSH
- 원격으로 안전하게 기기에 접속하게 해 주는 SSH 프로그램입니다.
- musl
- Alpine에서 쓰는 가벼운 C 라이브러리(기본 함수 모음)입니다.
- PAM
- 사용자 인증과 계정 접근을 확인하는 틀입니다.
- /etc/shadow
- 리눅스에서 비밀번호 해시를 저장하는 파일입니다.
- Checkpoint
- 사이버 보안 기술을 만드는 회사입니다.