본문 바로가기

파이썬 해킹 입문/해킹기술

4. 네트워크 해킹 기술

개요

TCP/IP는 본질적으로 해킹에 취약하다. 연결 설정 및 통신 과정에 많은 문제를 가지고 있다. 첫 번째, 클라이언트에서 서버로 최초 연결을 시도하는 SYN 패킷을 전송하면, 서버는 연결을 위해 버퍼 자원을 할당한다. 만일 계속 SYN 패킷만 전송하는 클라이언트가 있다면 서버는 통신 버퍼를 모두 소진해 네트워킹이 불가능하게 된다. 두 번째, 정상적인 통신 연결이 완료된 후에 해커는 클라이언트를 가장해서 통신 세션을 쉽게 가로챌 수 있다. 통신 상대방을 인증하기 위해 TCP 헤더에 있는 Sequence 번호를 확인하는데, 3자가 이 번호를 쉽게 알아내서 위장할 수 있다. 세 번째로 IP 헤더에 있는 Source IP 정보는 쉽게 위조 가능하다는 것이다. Source IP를 클라이언트 PC가 아닌 공격 대상 시스템 IP로 위조해서 SYN 패킷을 서버에 전송하면, 서버는 ACK 패킷을 공격 대상 시스템으로 보내게 된다. 일종의 Dos 공격이 가능하다.

취약한 TCP/IP 프로토콜을 대상으로 하는 많은 공격기법이 등장했고, 이를 방어하기 위한 다양한 장비들이 개발되었다. IPv6 등장과 함께 보안 취약점이 많이 해결되겠지만, 여러 프로토콜이 협업하여 동작하는 인터넷의 특성으로 인하여 네트워크 해킹 기술은 계속 진화할 것이다.

 

 

Port Scanning

IP는 서버를 식별하는 논리적인 주소다. Port는 하나의 IP를 여러 개의 어플리케이션이 공유하기 위한 논리적인 단위다. IP IP 프로토콜에서 식별자로 사용되고, Port TCP/UDP 프로토콜에서 식별자로 사용된다. 방화벽 또는 서버에서 네트워크 서비스를 위해 Port를 개방하고 있다. 대표적인 것인 80 443 Port. 각각 HTTP HTTPS 서비스를 위해 방화벽에서 개방하고 있다. 필수적인 Port외에 관리 편의성을 위해서 몇 개의 Port를 추가로 사용하고 있는데, 대표적으로 FTP Telnet 서비스를 제공하는 21 22 Port. 이처럼 서비스를 위해 방화벽에서 개방하는 포트들은 해킹의 주요 공격 목표가 되고 있다.

Port Scanning은 서비스를 위해 방화벽이나 서버에서 개방하고 있는 포트 목록을 알아내는 기술이다. Port Scanning에는 다양한 기법이 존재하지만, 크게 UDP 기반 기법과 TCP 기반 기법으로 분류된다. UDP 기반 기법은 UDP 패킷을 전송해서 확인하고, TCP 기법은 SYN, FIN 등 다양한 패킷을 전송하면서 Port의 개방 여부를 확인한다. 기법별로 성능과 은닉성의 차이가 있으므로 상황에 알맞은 기술을 선택해서 사용해야 한다.

 

 

Packet Sniffing

TCP/IP 통신을 하는 Ethernet 기반 동일 네트워크 환경(하나의 라우터를 사용)에서는 MAC(Media Access Control) 주소 기반으로 패킷이 동작한다. 하나의 PC에서 다른 PC로 데이터를 전송할 때, 전체 PC에 데이터를 브로드캐스트 한다. 패킷의 목적지 MAC 주소가 자신의 것과 동일하면 받아들여서 처리하고, 그렇지 않으면 버리는 방식으로 동작한다. Packet Sniffer는 모든 패킷을 버리지 않고 처리해서, 동일 네트워크에서 이동하는 모든 데이터의 흐름을 한눈에 파악할 수 있다.

 

 

Session Hijacking

 

 

Session Hijacking 공격은 크게 HTTP Session Hijacking TCP Session Hijacking으로 나뉜다. 전자는 웹 서비스 인증 정보를 저장하고 있는 쿠키의 SessionID 값을 탈취해서 해킹에 이용하는 방식이고, 후자는 TCP 패킷 정보를 탈취하는 방식이다. 여기서는 네트워크 해킹 분야에 많이 사용되는 TCP Session Hijacking을 중심으로 설명한다.

TCP 프로토콜은 통신 상대방을 인증하기 위해 IP, Port, Sequence Number 3개 요소를 사용한다. TCP Session Hijacking Packet Sniffing을 통해 알아낸 인증정보를 가지고 클라이언트와 서버 사이의 통신을 중간에서 가로챈다. Hacker는 클라이언트와 서버와의 연결을 잠시 끊고, 발신지 IP Hacker PC로 변경해서 서버와 커넥션을 재설정한다. 서버는 통신 연결이 잠시 끊겼다가 다시 연결됐다고 생각하고, Hacker PC를 클라이언트로 인식하게 된다. 클라이언트와 Hacker PC와도 동일한 방식으로 연결이 설정된다. 이제 클라이언트와 서버와의 통신은 모두 Hacker PC를 거치게 되고, Hacker는 모든 정보를 제어할 수 있게 된다.

 

 

Spoofing

Spoofing 사전적 의미는 [위장하다]이다. 네트워크 관점에서는 크게 DNS, IP, ARP 3개의 자원에 대해서 위장을 통한 공격이 가능하다. 대표적으로 ARP Spoofing 대해서 알아보자. ARP IP 주소를 가지고 MAC 주소를 알아내는 프로토콜이다. PC 내부에 IP MAC 정보를 가지고 있는 ARP Cache 테이블을 가지고 있다. 통신 상대방을 인지하기 위해 해당 테이블을 조회해서 MAC 정보를 추출한다. ARP Cache 테이블에서 정보를 찾지 못하면 ARP 프로토콜을 통해 IP 해당하는 MAC 정보를 찾을 있다.

ARP 프로토콜은 보안이 고려되지 않았기 때문에 쉽게 해킹할 있다. ARP Reply 패킷을 통해 상대방의 ARP Cache 테이블을 간단하게 조작할 있다. ARP Cache 테이블에는 상대방 IP MAC 매핑 되어 있다. PC A PC B 해당하는 정보를 Hacker PC MAC 주소로 교체하면, 모든 통신은 Hacker PC 경유하게 된다.

 

 

Dos

Dos(Denial of Service) 공격은 인터넷에서 가장 많이 활용되는 해킹 기법의 하나이다. 앞에서 TCP/IP 구조적으로 보안에 취약하다고 언급한 있다. SYN 패킷의 발신지 주소를 변경하거나, SYN 패킷만 지속적으로 전송하고, 대량의 IP 패킷을 작은 단위로 쪼개서 전송하는 등의 행위를 통해 시스템을 서비스 불능 상태로 만들 있다. 이뿐만 아니라 Dos 정상적인 패킷을 대량으로 발생시켜 서비스를 마비시킬 수도 있다.

현재 많은 Dos 대응 장비들이 발달해서 소수의 PC 공격 대상 시스템을 서비스 불가능 상태로 만들기는 쉽지 않다. 이를 극복하기 위해 해커는 바이러스를 배포해서 불특정 다수의 PC 좀비 PC 만들고, 원격에서 대량의 트래픽을 발생시키는 시키도록 제어하는 DDos 공격이 등장했다.

 

 

DDos

DDos(Distributed Denial of Service) 공격은 봇넷을 활용한다. 봇넷은 악성 코드가 포함된 파일을 인터넷을 통해 배포해서 다수의 좀비 PC를 확보하고, C&C 서버를 통해 좀비 PC를 통제하는 기술이다. 악성 코드는 이메일, 게시판, 토렌트 등 다양한 방법을 통해 배포되고 있지만, 이에 대한 대응은 현실적으로 쉽지 않다. 아직도 해커들은 봇넷을 활용한 DDos 공격을 유용한 해킹 수단으로 사용하고 있다. 국가기관 및 금융기관에서는 이러한 피해를 예방하기 위해 업무망과 인터넷망을 분리하는 망 분리 사업을 추진하고 있다. 망분리는 인터넷을 통해 PC가 악성코드에 감염되더라고 영향의 범위가 내부망까지 확대되지 않도록 물리적 또는 논리적으로 네트워크를 분리하는 기술이다.

 

 

파이썬 해킹 입문 저자의 동의 하에 컨텐츠를 게시합니다.

'파이썬 해킹 입문 > 해킹기술' 카테고리의 다른 글

6. 기타 해킹 기술  (0) 2019.12.14
5. 시스템 해킹 기술  (0) 2019.12.14
4. 네트워크 해킹 기술  (0) 2019.12.14
3. 웹 해킹 기술  (0) 2019.12.14
2. 어플리케이션 해킹 기술  (0) 2019.12.14
1. 해킹이란  (0) 2019.12.14