Infomation

[Network] SSH Downgrade Attack - SSH Version Rollback MITM Attack

DarkSoul.Story 2013. 7. 11. 14:19
반응형

. 개요

리눅스나 유닉스 서버의 안전한shell 접속을 위해SSH를 많이 사용 하고 있다. 하지만 그대로 사용한다면, 암호화된 패킷이 해

독될 수 있다. SSH는 위에서 설명했듯이SSHv1 SSHv2가 있다. SSHv1 Public-key를 이용하여Session-Key암호화

하는 방식을 사용 하고, SSHv2 Diffie-Hellman 방식의 암호화방식을 사용한다. SSHv1 Public-key를 이용하여 

Session-Key암호화하는 방식은 암호화된 패킷을 해독할 수 있다. SSHv2는 다소 취약하나SSHv1보다 안전하다.


보통SSHv2SSHv1보다 안전하기 때문에SSHv2를 많이 사용한다SSH Downgrade Attack SSH 암호화 통신을SSHv2에서SSHv1으로 버전을 낮추는 공격이다.

 

. 공격 방법

다음은 서버와 클라이언트 간의 암호화 통신 이전에 어떤 버전을 사용할지 버전 동기화 과정을 나타낸 것이다




 클라이언트가 서버로SSH 암호화 통신을 하겠다고 패킷 전송

  서버는SSHv1SSHv2 둘 다 가능하다고 클라이언트에 전달

      - SSH-1.5  : SSHv1 가능

      - SSH-1.99 : SSHv1 / SSHv2 가능

      - SSH-2.0  : SSHv2 가능

 클라이언트는SSHv2로 통신하자고 전달

 

위와 같이 서버와 클라이언트 간의 암호화 통신 이전에 버전 동기화 과정은 평문으로 패킷이 전송된다. 이 과정에서 공격자가 중간에 개입하여 SSH Downgrade Attack을 한다.  

 

다음은SSH Downgrade Attack 방법을 나타낸 것이다.



아래는 실제SSH Downgrade Attack 과정을 Wireshark를 이용하여 패킷을 캡쳐한 화면이다.



 정상적인 버전 동기화 과정에서는 서버가SSHv1SSHv2 모두 사용 가능 하다고 패킷을 보냈으나, 위에서 보듯

    이, 공격자에 의해SSHv1만 사용 가능하다고 전달

       ② 클라이언트는 서버가SSHv1만 가능하다고 알고, SSHv1으로 암호화 통신 시작


위와 같은 과정으로 서버와 클라이언트는SSHv1으로 암호화 통신을 시작하게 되고공격자는 서버와 클라이언트 사이에서 오고 가는 암호된 패킷을 해독하여, SSH 서버의IDPassword를 획득할 수 있다. SSH Downgrade Attack2003년경에 발생했으며우리나라에 이슈가 된 것은2007년 경이었다그리고, SSH Downgrade Attack은 현재도 공격 가능하다.

 

. 보안 대책


SSH Downgrade Attack은 간단한 서버 설정 및 클라이언트의SSH 서버 접속 프로그램 설정으로 방어 할 수 있다기본적으로SSH서버는SSHv1SSHv2 두 버전 모두 사용 할 수 있게 설정되어있다두 버전 모두 사용 할 수 있는 설정을 오로지SSHv2만 사용하게끔 설정을 변경해주면 된변경 방법은 다음과 같다.

 

/etc/ssh/sshd_config 파일을 열어, Protocol 1,2 부분을Protocol 2로 변경하며, SSH서버는 오로지SSHv2로만 암호

화 통신을 하며SSH Downgrade은 이루어지지 않고거부 당하게 된다.


 < sshd_config 파일 변경 전   SSHv1 / SSHv2 둘 다 사용>


 < sshd_config 파일 변경 후   SSHv2만 사용 >


클라이언트에서는SSH 서버 접속 프로그램 중 가장 대표적인PuTTY를 예를 들면 다음과 같이 설정하면SSHv1이 아

닌 오로지SSHv2로만 암호화 통신이 가능해 진다.



반응형

'Infomation' 카테고리의 다른 글

[Web] SSL Strip Attack  (0) 2013.07.11
쿠키(Cookie)  (0) 2013.07.11
[Network] 세션 하이재킹 (Session Hijacking) - TCP 세션 하이재킹  (0) 2013.07.11
공개키 암호화 방식(Public Key Cryptography)  (0) 2013.07.11
SSH(Secure Shell)  (0) 2013.07.11