이번 글에선 최근 OpenSSH 패키지에서 발견된 보안 취약점 CVE-2024-6387에 대한 소개와 대처 방법을 공유드리겠습니다.

🐡OpenSSH란?

OpenSSH는 리눅스 PC의 SSH 연결을 위해 가장 널리 사용되는 무료 패키지입니다. (윈도우 PC나 MAC에서도 OpenSSH를 사용할 수 있습니다.) SSH는 Secure Shell의 줄임말로, 네트워크를 통해 다른 컴퓨터에 접근하거나 그 컴퓨터에서 명령 실행을 할 수 있도록 해주는 프로토콜을 의미합니다. 또한 SSH는 원격 접근할 때 컴퓨터 간에 주고받는 데이터를 암호화하기 때문에 더욱 안전하다는 장점도 있는데요. 즉, ==OpenSSH는 한 컴퓨터에서 다른 리눅스 서버로 암호화된 원격 접속을 할 수 있도록 도와주는 패키지==라고 할 수 있습니다. OpenSSH 패키지의 대표적인 툴은 아래와 같은데요.

  • sshd: 다른 컴퓨터에서 원격 접속을 할 수 있도록 만들어주는 OpenSSH 서버
  • ssh: 다른 컴퓨터로 원격 접속할 때 사용
  • scp: 다른 컴퓨터로 파일 전송할 때 사용 아마 리눅스 서버를 다루셨다면 한 번쯤 접해봤을 가능성이 높은 툴들이죠. 이 중에 ==OpenSSH 서버인 sshd에서 권한 제한 없이 원격에서 코드 수행이 가능할 수 있는 치명적인 보안 취약점이 발견==된 것입니다.

❗이번 보안 취약점이 조금 특별한 이유?

CVE-2024-6387을 최초로 발견한 IT 보안 업체 Qualys의 발표에 따르면, 이번 취약점은 ==2006년에 이미 발견되어 수정된 취약점 CVE-2006-5051이 최근 있었던 패치로 인해 다시 발생된 것==이라고 합니다. 기존에는 잘 동작하던 소프트웨어가 패치 이후 버그나 문제가 생기는 것을 리그레션(Regression, 회귀)이라고 하는데요. 이번 보안 취약점도 리그레션으로 인해 발생한 OpenSSH의 취약점이라고 해서 regreSSHion이란 별칭을 얻게 되었습니다. 참고로 이런 리그레션을 방지하기 위해 소프트웨어의 패치를 올릴 때 기존 기능이 정상 동작하는지 확인하는 테스트를 리그레션 테스트(Regression Test, 회귀 테스트)라고 합니다.

✅CVE-2024-6387 대처 방법

OpenSSH 서버(sshd)를 사용 중이라면 CVE-2024-6387에 영향을 받을 수 있는데요. 이번 보안 취약점에 어떻게 대처할 수 있을까요? 대처하기 전에 ==가장 먼저 확인해야 할 것은 현재 사용 중인 OpenSSH의 버전입니다. 위에서 설명한 것처럼 해당 취약점은 이전에 이미 수정된 것이 최신 패치로 인해 다시 발생했기 때문에, 아래와 같이 이전에 동일한 취약점이 수정된 버전 ~ 문제가 되기 이전 버전까지는 이번 보안 취약점에 대해 안전==하다고 볼 수 있습니다.

  •  ==4.4p1 ~ 8.5p1==

OpenSSH 개발팀에서 이 이번 보안 취약점을 수정한 최신 9.8 버전을 릴리즈했기 때문에, 만약 사용 중인 버전이 안전한 범위 밖에 있다면 최신 버전으로 업그레이드하는 방법도 있습니다. (관련 문서) <!주의!> OpenSSH를 업그레이드할 경우, 기존에 사용 중이던 OpenSSH 관련 작업이 중지되거나 기존 설정이 변경될 수 있으므로 세심한 주의가 필요합니다. 또한 ==OpenSSH 서버 관련 설정 파일인 /etc/ssh/sshd_config을 업그레이드 전 미리 백업==하시는 것을 추천합니다.

현재 OpenSSH 공식 GitHub에서 안내하고 있는 OpenSSH 최신 버전 설치 방법은 아래와 같이 확인하실 수 있습니다. https://github.com/openssh/openssh-portable/tree/master?tab=readme-ov-file#building-from-git

References