1.PuTTY [1]
- SSH, 텔넷, rlogin, raw TCP를 위한 클라이언트로 동작하는 자유 및 오픈 소스 단말 에뮬레이터 응용 프로그램
2. 취약점
- 취약한 버전의 PuTTY에서 발생하는 비밀 키 복구 취약점
> 공격자는 비밀 키를 복구 및 서명을 위조하여 해당 키를 사용하는 모든 서버에 로그인할 수 있음
영향받는 버전: PuTTY 0.68 ~ 0.80
2.1 상세내용 [3]
- PuTTY 0.68 ~ 0.80까지 모든 버전에는 NIST P521 커브를 사용하는 ECDSA(타원 곡선 디지털 서명 알고리즘) 개인 키에서 서명을 생성하는 코드에 심각한 취약점이 존재
> PuTTY 또는 Pageant가 SSH 서버에 인증할 때 키에서 서명을 생성할 때 발생
2.1.1 취약점의 영향
- 사용자의 비밀 키가 노출
> 공격자가 다수의 서명된 메시지와 공개 키를 가지고 있으면 개인 키를 복구하는데 충분한 정보를 가지게 됨
> 이를 통해 사용자인 것처럼 서명을 위조하여 해당 키를 사용하는 모든 서버에 로그인이 가능해 짐
> 서명을 얻기 위해 키를 사용하여 인증하는 서버를 침해하거나, 키를 보유한 Pageant 사본에 잠시 액세스하면 됨
2.1.2 영향받는 키 타입
- 영향을 받는 유일한 키 타입은 521bit ECDSA
① Windows PuTTYgen에서 'Key fingerprint' 상자의 시작 부분에 ecdsa-sha2-nistp521이 표시되거나
② Windows Pageant에 로드될 때 'NIST p521'로 설명되거나
③ SSH 프로토콜 또는 키 파일에서 ecdsa-sha2-nistp521로 시작하는 ID를 가진 키
> 다른 크기의 ECDSA와 다른 키 알고리즘은 영향 받지 않음 (특히 Ed25519는 영향을 받지 않음)
2.1.3 오류 상세 내용
- 모든 DSA(디지털 서명 알고리즘) 서명 체계는 서명 중 무작위 값을 생성해야 함
> nonce(한 번만 사용되는 값) 또는 문자 k로 알려짐
> 공격자가 사용된 값을 추측 하거나 동일한 값으로 생성된 두 개의 서명을 찾을 수 있다면 즉시 개인키 복구가 가능
※ 즉, 무작위성이 없는 시스템에서 DSA 서명을 생성하는 것은 매우 위험
- PuTTY는 Windows에서 개발되었기 때문에 난수 생성기가 전혀 없었음
> 무작위 값이 아닌 결정론적 방법을 사용하여 k를 생성
> 해시 입력에 서명할 메시지와 개인 키를 모두 포함하는 보안 해시를 계산하는 것이 핵심 기법 (RFC 6979)
> PuTTY는 2001년부터 동일한 작업을 수행했고 해당 RFC는 2013년 문서화되어 PuTTY는 해당 사양을 따르지 않음
2.1.4 취약점 발생 원인
- PuTTY의 기술은 SHA-512 해시를 만든 후 이를 mod q로 줄이는 방식으로 작동
> P521(=영향받는 키 타입)을 제외한 모든 경우에 512bit 숫자를 mod q로 줄임으로써 발생하는 편향은 무시가능
> 그러나 P521의 경우 q가 521bit(즉, 512bit 이상)이므로 512bit 숫자를 mod q로 줄이는 것은 아무 의미가 없음
> 상위 9bit 값이 항상 0인 값을 얻게 되며, 이러한 편향으로 인해 키 복구 공격이 가능해 짐
※ 필요한 서명의 개수는 약 60개
2.1.5 취약점 수정 내용 및 대응 방안
- 수정 내역: 모든 DSA 및 ECDSA 키 유형에 대해 RFC 6979를 따르도록 변경
> 이전 시스템 완전 폐기
> Ed25519와 같은 EdDSA 키는 이미 다른 시스템을 사용하고 있어 변경되지 않음
- 대응 방안: 영향받는 유형의 키가 있는 경우 즉시 폐기
> 모든 OpenSSH authorized_keys 파일과 다른 SSH 서버의 동일한 파일에서 이전 공개키를 제거
> 손상된 키의 서명이 더 이상 가치가 없도록한 후 새 키 쌍을 생성해 교체
3. 참고
[1] https://www.putty.org/
[2] https://nvd.nist.gov/vuln/detail/CVE-2024-31497
[3] https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-p521-bias.html
[4] https://www.boannews.com/media/view.asp?idx=128945&page=6&kind=1
'취약점 > 기타' 카테고리의 다른 글
Wi-Fi SSID 혼동 공격 (CVE-2023-52424) (0) | 2024.05.18 |
---|---|
VPN 취약점 (TunnelCrack, TunnelVision) (1) | 2024.05.12 |
금융보안원, ‘레드아이리스 인사이트 리포트 : Campaign ThirdEye’를 발간 (0) | 2024.03.12 |
KISA 브라우저 자동 로그인 비활성화 및 주의 권고 (0) | 2024.03.08 |
Atlassian, Oracle, GNU S/W 취약점 보안 조치 권고 (0) | 2024.02.02 |