Ⅰ. 개요
리눅스나 유닉스 서버의 안전한shell 접속을 위해SSH를 많이 사용 하고 있다. 하지만 그대로 사용한다면, 암호화된 패킷이 해
독될 수 있다. SSH는 위에서 설명했듯이SSHv1과 SSHv2가 있다. SSHv1은 Public-key를 이용하여Session-Key를암호화
하는 방식을 사용 하고, SSHv2는 Diffie-Hellman 방식의 암호화방식을 사용한다. SSHv1의 Public-key를 이용하여
Session-Key를암호화하는 방식은 암호화된 패킷을 해독할 수 있다. SSHv2는 다소 취약하나SSHv1보다 안전하다.
보통SSHv2가SSHv1보다 안전하기 때문에SSHv2를 많이 사용한다. SSH Downgrade Attack는 SSH 암호화 통신을SSHv2에서SSHv1으로 버전을 낮추는 공격이다.
Ⅱ. 공격 방법
다음은 서버와 클라이언트 간의 암호화 통신 이전에 어떤 버전을 사용할지 버전 동기화 과정을 나타낸 것이다
① 클라이언트가 서버로SSH 암호화 통신을 하겠다고 패킷 전송
② 서버는SSHv1과SSHv2 둘 다 가능하다고 클라이언트에 전달
- SSH-1.5 : SSHv1 가능
- SSH-1.99 : SSHv1 / SSHv2 가능
- SSH-2.0 : SSHv2 가능
③ 클라이언트는SSHv2로 통신하자고 전달
위와 같이 서버와 클라이언트 간의 암호화 통신 이전에 버전 동기화 과정은 평문으로 패킷이 전송된다. 이 과정에서 공격자가 중간에 개입하여 SSH Downgrade Attack을 한다.
다음은SSH Downgrade Attack 방법을 나타낸 것이다.
아래는 실제SSH Downgrade Attack 과정을 Wireshark를 이용하여 패킷을 캡쳐한 화면이다.
① 정상적인 버전 동기화 과정에서는 서버가SSHv1과SSHv2 모두 사용 가능 하다고 패킷을 보냈으나, 위에서 보듯
이, 공격자에 의해SSHv1만 사용 가능하다고 전달
② 클라이언트는 서버가SSHv1만 가능하다고 알고, SSHv1으로 암호화 통신 시작
위와 같은 과정으로 서버와 클라이언트는SSHv1으로 암호화 통신을 시작하게 되고, 공격자는 서버와 클라이언트 사이에서 오고 가는 암호된 패킷을 해독하여, SSH 서버의ID와Password를 획득할 수 있다. SSH Downgrade Attack은2003년경에 발생했으며, 우리나라에 이슈가 된 것은2007년 경이었다. 그리고, SSH Downgrade Attack은 현재도 공격 가능하다.
Ⅲ. 보안 대책
SSH Downgrade Attack은 간단한 서버 설정 및 클라이언트의SSH 서버 접속 프로그램 설정으로 방어 할 수 있다. 기본적으로SSH서버는SSHv1과SSHv2 두 버전 모두 사용 할 수 있게 설정되어있다. 두 버전 모두 사용 할 수 있는 설정을 오로지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로만 암호화 통신이 가능해 진다.
[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 |