티스토리 뷰

정보보안 (2016)

SSL Strip

지나짱-* 2016. 7. 29. 15:22

1. 개요

Hacker가 MITM(Man In The Middle)을 사용하여 SSL통신을 중간에 엿들을 경우, ID와 Password와 같은 중요한 정보가 Hacker에게 알려지게 된다. 단, 이때 '보안 Certificate이 이상하다' 또는 보안경고창이 피해자에게 띄워지게 된다.주의 깊은 사람이 아닌 대부분의 사용자는 별 생각 없이 무시하기를 클릭하거나, OK를 클릭하기 때문에 공격 자체는 문제가 없지만, 이상하게 생각하여 클릭하지 않는 사람도 존재한다.
여기서 간단한 툴들을 조합해 피해자와 웹 사이트 사이의 통신 구간에 있는 Hacker가 SSL 통신의 암호화를 벗겨 공격하게 된다. 그래서 SSL Strip Attack이다.

웹 사이트 전체를 SSL을 적용하면 모르겠으나, 대부분의 웹 사이트는 고객 편의를 위해 다음과 같이 구축한다.
 
고객(http://~)로 접속 -> 첫 페이지의 로그인창 부분만 SSL처리 -> 로그인 성공 -> http:// ~ 페이지 유도

위 과정은 너무 빨리 일어나기 때문에 별도의 툴을 사용하지 않으면 로그인 과정에 SSL통신이 이루어졌는지 사실 조차 알기 어렵다. 유일하게 확인 할 수 있는 부분인 웹 브라우저의 주소 창이나 하단의 자물쇠 아이콘 역시 눈에 보이지 않을 만큼 빠른 속도로 사라진다.
그렇기 때문에 SSL Strip Attack을 당할 경우 피해자는 스스로 해킹당하고 있다는 사실을 인지하기 어렵게 된다. 고객에게 편리한 보안 서비스를 제공하기 위해 배려한 것이 오히려 위험을 가중시키는 사례가 된다.

SSL Strip Attack은 사실 공격이 매우 간편하고, 현재 아키텍처에서는 피해자가 인지하기 어려운 구조이므로, 보안이 매우 중요한 사이트라면 고객 편이성과 보안성 사이에 적절한 판단을 통해 웹 사이트 전체를 SSL통신으로 바꾸는 것에 대해서 고려할 필요가 있다고 생각한다. 하지만 현재보다 현저히 늘어나게 되는 트래픽 사용량과 CPU부하에 대해 고려해봐야 하며, SSL 가속기를 이용한 부하 분산의 필요성 등 다양한 측면에서 고려해야 할 것이다.

만약 공개된 와이파이, 타인의 무선랜을 몰래 사용하는 사람, 같은 회사 사무실에 근무하는 옆자리동료, 초고속 인터넷 회사 직원 등 사용자의 통신 경로 상에 위치한 모든 사람은 SSL Strip Attack을 수행 할 수 있다.


2. SSL Strip Attack 공격 방법

만약 클라이언트가 서버와 SSL통신을 하고 있으면, 해커는 클라이언트의 정보를 탈취 할 수 없다. 하지만, 클라이언트가 서버에게 SSL연결 요청을 하는 초기 단계에서는 가능하다.


클라이언트가 서버에게 Client Hello Message를 전송할 때, 중간에서 가로채고, 해커는 클라이언트가 Client Hello Message를 전송한 것 처럼 서버에 Client Hello Message를 전송한다. 서버는 해커를 클라이언트로 알고 Server Hello Message와 서버 인증서를 전송하게 되어, SSL Strip Attack이 성립하게 된다.

SSL Strip Attack이 성립이 되면, 다음과 같은 구조가 된다.


위와 같은 구조가 되면, 클라이언트는 SSL통신이 아닌 일반 HTTP통신이기 때문에 보안경고창이 뜨지 않고, 해커와 서버는 SSL통신을 하게 되는 것이다. 서버는 SSL통신으로 메시지를 보낼 경우 해커는 중간에서 이 메시지를 캐치하여 일반 HTTP통신으로 고쳐주기만 하면 된다.

3. SSL Strip Attack 대응 방안

> 일반 사용자
    - https://인지 확인 및 마크를 확인한다.
    - 백신 및 OS를 최신 업데이트 상태로 유지한다.
    - 무선 랜 사용 시 공개된 AP사용을 자제한다.

> 관리자
    - 무선랜 사용 시 WPA이상의 암호화 방식을 사용하여 AP Password를 사용한다.
    - 유선일 경우 ARP 스푸핑 보안 대책을 적용한다.
    - SSL을 필요로 하는 페이지일 경우 HTTP로 접근을 차단하고, HTTPS로의 접근만 허용한다.

4. 동영상 시연 설명

1. 'kate /etc/etter.conf'
>> kate (vim과같이 문서편집기능)
>>ettercap 환경설정파일에서 iptables쪽 주석을 제거

 


2. 'echo 1 > /proc/sys/net/ipv4/ip_forward'
>>IP포워딩 활성화(iptables툴 사용을 위해 인듯)


3. 'arpspoof -i wlan0 -t 192.168.1.6 192.168.1.1'
>> -i옵션은 인터페이스를 지정함. eth0, wlan0 등 네트워크 인터페이스를 지정함.
>> -t옵션은 타겟으로 첫번째 ip는 목표가 될 타겟의 주소, 두번째 ip는 내가 누군지 보낼 주소.
즉 192.168.1.6은 사용자ip, 192.168.1.1은 GW ip가 되겠음.

4. 'iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 10000'
>>이는 목적지 포트가 80번으로 들어오는 모든 패킷은 포트 10000번으로 리다이렉트 시킨다는 뜻.
>>ssl strip에서 기본적으로 사용하는 포트가 10000번. 즉 웹서비스 접근 시 sslstrip을 타게하기 위한 설정이 되겠음.

5. 'ettercap -T -q -i wlan0'
>>인터페이스 wlan0을 스니핑.
>>사용자pc 스니핑이 가능하지만 인증서 경고창이 뜸

6. 'sslstrip -a -k -f'
>> sslstrip 실행 -> 인증서 경고창 X(사용자는 눈치채지 못함)

 

'정보보안 (2016)' 카테고리의 다른 글

라우터  (0) 2016.08.02
네트워크정리  (0) 2016.08.01
프록시  (0) 2016.07.29
스위치 보안  (0) 2016.07.29
리눅스 커널  (0) 2016.07.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함