SSH 취약점

 

SSH란?

  • Secure Shell의 약자로 원격에 있는 컴퓨터를 shell로 안전하게 제어하기 위한 프로토콜 혹은 이 프로토콜을 사용하는 프로그램을 의미한다.
  • 포트 번호는 22다.
  • Telnet도 동일한 기능은하지만 plain text로 데이터를 주고 받고 포트번호는 23이다.
  • SSH에는 서버와 클라이언트로 구성되어 있고 putty같은 것이 클라이언트라고 생각하면 된다. 보통 이 프로그램은 리눅스 기반에서 제어하기 때문에 서버는 리눅스 환경이고 OpenSSH로 서버를 돌린다.

취약점

  • SSH v1은 암호화된 SSH 스트림에 content를 삽입 할 수 있는 취약점이 있었고 overflow 공격이 가능했다. 따라서 version 1은 쓰지 않고 2로 쓰게 되었다.
  • SSH 키는 만료되지 않는다. 따라서 키 관리가 제대로 되지 않을때 취약점이 발생한다.
  • Misconfiguration에 의해 취약점이 생기기도 한다. 예를 들어 password-based authentication을 활성화 상태로 둔다면 BF 공격을 허용하게 될 것이다. 이와 더불어, 외부에서 루트 계정 원격 로그인 기능을 활성화 시켜놓으면 BF 공격으로 루트 계정이 탈취 될 수도 있다. 따라서 그런 취약점을 만들지 않기 위해서 IP 주소 기반으로 access controle을 해야할 것이다. 또 다른 취약점으로는 포트 포워딩 설정을 제대로 하지 않았을 때, 다른 서버로 가는 트래픽 경로가 노출 될 수 있다. 따라서 다른 서버로 공격을 확장 할 수도 있게 된다.