[정보보안기사/네트워크] 스니핑(Sniffing)
스니핑(Sniffing)
네트워크로 전송되는 패킷을 훔쳐보는 도구이다. 스니핑은 네트워크 관리자가 네트워크 장애를 식별하고 조치하기 위해서 사용되던 도구로 네트워크에 참여하는 송신자와 수신자 사이에 정상적으로 패킷이 전송되었는지 확인할 수 있다.
유선 및 무선 데이터 통신의 내용을 몰래 도청하는 행위 및 소프트웨어로 수동적(Passive
)인 공격 형태이다. 수동적(소극적)인 공격은 복제해도 알 수 없고 탐지가 어렵지만 예방은 가능하다는 특징을 가지고 있다.
하지만, 스니핑은 공격도구로도 사용할 수 있는데 송신자와 수신자의 패킷을 훔쳐보아서 송신자와 수신자의 IP 주소, 포트 번호 및 송수신되는 메시지까지 확인이 가능하다.
스니핑 도구를 실행시키면 기본적으로 정규모드(Normal Mode)로 실행된다. Normal Node는 자신의 컴퓨터에 전송되는 패킷만 수신받고 자신과 관련없는 패킷은 삭제한다. 네트워크에 흘러다니는 모든 패킷을 모니터링할 때는 무차별모드(Promiscuours Mode)로 설정하고 스니핑을 실행해야 한다.
스니핑을 할 수 있는 도구 중 하나가 tcpdump
프로그램이다.
tcpdump Option | 설명 |
---|---|
-c | Count 수 만큼 패킷을 받는다 |
-e | MAC 주소 형태로 출력 |
-F | File에 Expression을 입력 |
-i | 특정 인터페이스를 지정 |
-q | 간결하게 표시 |
-w | 패킷을 파일로 저장한다 |
-r | 저장한 파일을 읽는다 |
-t | Timestamp |
-v | 자세히 표시 |
Session Hijacking
세션 하이재킹은 세션 값을 훔쳐가는 것을 의미한다. 로그인 사용자에게 웹 서버가 세션 값이라는 문자열을 생성해서 전송해준다. 세션 값이라는 문자열만 획득하면, 로그인 과정없이 홈페이지에 접근할 수 있다.
- 이미 인증을 받아 세션을 생성, 유지하고 있는 연결을 빼앗는 공격을 총칭(스니핑 기술의 일종)한다.
- 인증을 위한 모든 검증을 우회 : TCP를 이용해서 통신하고 있을 때
RST
패킷을 보내 일시적으로 TCP 세션을 끊고 시퀀스 넘버를 새로 생성하여 세션을 빼앗고 인증을 회피한다 - 세션은 스니핑 추측(Brute-Force Guessing)을 통해 도용하거나 가로채어 자신이 원하는 데이터를 보낼 수 있는 공격 방법이다.
- 원인 : 암호화되지 않은 프로토콜에서 정보를 평문으로 전송, 길이가 짧은 Session ID, 세션 타임아웃 부재
세션 하이재킹을 하기 위해서는 공격자 웹 서버에 세션 문자열을 기록하는 악성코드를 만들어야 한다. 그리고 피해자는 정상적으로 사용하는 홈페이지에 로그인한다. 공격자는 만든 악성코드를 호출할 수 있도록 XSS를 사용한다.
공격자는 웹프록시를 사용해서 피해자의 세션 값으로 변경하고 홈페이지에 접근하면 로그인 없이 접근할 수 있다. 사용자가 로그아웃을 하면 해당 세션 값은 초기화되기 때문에 로그인 순간에 사용해야 한다.
세션 하이재킹 도구 | 내용 |
---|---|
Hunt | 네트워크상의 감시, 가로채기 등을 할 수 있는 도구 |
Arpspoof | 공격자의 주소로 속이는 행위를 하는 도구 |
IP Watcher | 네트워크상의 연결, 감시 및 세션을 가로채기 위한 다양한 기능을 제공하는 상용 프로그램 |
Ferret | 세션 정보를 가로채는 도구 |
Hamster | Proxy 서버 상태로 만들어주는 도구 |
Paros | 웹 Proxy 서버로서 사용할 수 있는 도구 |
Cain & Abel | 스푸핑과 스캐닝 등 다양한 기능이 있는 도구 |
WireShark | 네트워크 패킷 분석 도구이며 다양한 패킷 정보를 볼 수 있는 도구 |
댓글남기기