본문 바로가기

정보보안

패킷분석(Packet Analysis)

1. 패킷분석이 가지는 의미

해킹 기법 중 '가로채기 공격'은 소극적인 공격 방법으로 비인가자가 네트워크 중간에서 다른 사람의 패킷정보를 도청하여 메시지나 시스템으로부터 정보를 얻거나 그 결과로 얻은 정보를 사용하려는 시도를 말한다.

  • 소극적인 공격 방법 : 시스템으로부터 정보를 획득하거나 사용하려는 시도로 시스템 자원에는 영향을 끼치지 않는 공격형태
  • 패킷 : 네트워크를 통해 전송하기 쉽도록 자른 데이터의 전송 단위

통상 나는 Wireshark라는 툴을 이용하여 패킷을 분석한다. 물론 통신 패킷이 암호화 되어있는 경우 제대로 살펴보지 못할 수 있다. 따라서 암호화된 패킷을 복호화하는 것까지 구현할 수 있도록 부단하게 노력해야 한다. 보안을 책임지기 위해서는 해커의 시선에서 시스템을 바라볼 줄 알아야하고 그에 준하는 데이터 분석 능력까지 필요하기 때문이다. 데이터 분석시 합리적인 판단을 하기 앞서 우선 그것이 합법적인지 따져봐야 한다. 디지털 포렌식을 살펴만 봐도 알 수 있듯이 전자적 증거물을 제출할 때도 정해진 법이라는 게 있고 그것을 준수해야 한다.

  • 디지털 포렌식 : 해킹 사고 발생 시 컴퓨터 내 전자적 증거물을 사법 기관에 제출하기 위해 데이터를 수집, 분석, 보고서를 작성하는 일련 작업

디지털 데이터 분석 절차는 증거 수집 - 증거 분석 - 증거 제출 이렇게 세 가지 단계로 나뉘는데 증거 수집 간에는 원본의 무결성을 보장해야 하고 증거 분석 간에는 유용한 정보를 끌어내야 하기에 삭제된 파일을 복구하거나 암호화된 파일을 해독하는 기술 등이 활용된다. 마지막으로 증거 제출 간에는 디지털 증거가 법적 증거로 채택되기 위해 그 자료의 신뢰성이 보장되어야 하고 표준 절차를 준수해야 한다. 이와 같은 절차를 확실하게 보장하는 것이 합법적인 지휘에 해당한다. 매우 기초적인 수준에 불과하지만 이번 실습을 통해 나름 유의미한 디지털 정보라 할 수 있는 패킷들을 들여다보고 분석함으로써 합법적인 디지털 포렌식을 하기 위한 사전 기초 능력을 아주 조금이나마 기른 셈이다.

2. 패킷분석 간 학습한 프로토콜(Protocol)

웹브라우저는 크롬(Chrome)을 사용하였고 다음은 패킷을 분석하면서 공부하게 된 통신규약들이다.

■ARP(Address Resolution Protocol)

가장 첫 번째로 살펴본 것은 ARP 프로토콜이다.

  • ARP(Address Resolution Protocol) : 네트워크 계층 주소와 링크 계층 주소 사이의 변환을 담당하는 프로토콜. 쉽게 말해 IP주소를 매개로 하여 수신 호스트의 MAC 주소를 얻을 수 있게 도와주는 프로토콜.
  • IP주소 : 인터넷에 연결된 기기를 식별하는 유일한 번호로 네트워크 주소와 호스트 주소로 나뉜다. 네트워크 주소는 기기가 속해있는 네트워크를 식별하는 데 사용하고, 호스트 주소는 해당 네트워크 내에서 그 기기를 식별하는 데 사용한다.
  • 호스트 : 네트워크를 구성하는 컴퓨터 시스템에서, 각각의 단말기로부터의 자료 처리 요구를 받아 처리하는 중심이 되는 컴퓨터.
  • MAC 주소 : 컴퓨터 네트워크 상에서 각각의 기기를 구분하기 위해 사용되는 주소. 기기 고유의 번호이기 때문에 IP 주소와 달리 기기를 교체하거나 네트워크 부품을 교체하지 않는 이상 변하지 않는다.

사용자가 통신하고자 하는 호스트의 IP주소만 알고 MAC 주소를 모르는 경우 ARP 요청(ARP Request) 메시지를 브로드캐스트(Broadcast)방식으로 송출하면 된다.

  • 브로드캐스트(Broadcast) : 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식.

ARP 요청 메시지를 수신한 목적지의 호스트 컴퓨터는 자신의 MAC 주소를 유니캐스트(Unicast)방식으로 응답한다.

  • 유니캐스트(Unicast)방식 : 고유 주소로 식별된 하나의 네트워크 목적지에 1:1로 트래픽 또는 메시지를 전송하는 방식.

역으로 MAC 주소만 알고 컴퓨터의 IP주소를 알기 위해서는 RARP(Reverse ARP) 프로토콜을 활용한다.

  • RARP(Reverse Address Resolution Protocol) : 역순 주소 결정 프로토콜

■HTTP(Hyper Text Transfer Protocol) / HTTPS(HTTP Secure)

다음으로 살펴본 프로토콜은 HTTP(Hyper Text Transfer Protocol)와 HTTPS(HTTP Secure)였다.

  • HTTP(Hyper Text Transfer Protocol) : 하이퍼 텍스트 전송 프로토콜로 웹브라우저와 웹서버 사이의 데이터 전송을 가능케 해준다.

HTTP와 HTTPS의 차이점은 SSL 보안인증서의 존재 여부이다.

  • SSL(Secure Sockets Layer) : 소켓 계층을 이르는 말로, 인터넷에서 데이터를 안전하게 전송하기 위한 인터넷 통신 규약 프로토콜이다.

SSL 인증서는 사용자가 사이트에 제공하는 정보를 암호화하는데 이러한 정보는 중간에 누가 훔쳐가더라도 암호화되어있기 때문에 해독할 수 없다. 이 SSL인증서를 통해 공개키와 세션키를 만들어 공개키 암호화 방식으로 정보를 주고받는 것이다.

  • 세션키(Session Key) : 통신을 하는 상대방끼리 하나의 통신 세션 동안에만 사용하는 암호화 키.
  • 공개키 암호화 방식 : 데이터의 비밀을 지키기 위한 암호 방식의 일종.
    데이터를 암호화할 때 사용하는 암호 키는 공개하고, 암호문을 원래 데이터로 복원하는 복호 키는 공개하지 않게 되어 있다.

추가로 HTTPS는 TLS 전송 계층 보안(Transport Layer Security) 프로토콜을 통해서도 보안을 유지한다.

  • TLS(Transport Layer Security) : SSL의 뒤를 잇는 표준.

■DHCP(Dynamic Host Configuration Protocol)

마지막으로 살펴본 프로토콜은 DHCP였다.

  • DHCP(Dynamic Host Configuration Protocol) : 동적 호스트 구성 프로토콜로 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜

DHCP는 네트워크에 사용되는 IP주소를 DHCP서버가 중앙집중식으로 관리하는 클라이언트/서버 모델을 사용하게 된다.

  • 클라이언트/서버 모델 : 서비스 요청자인 클라이언트와 서비스 자원의 제공자인 서버 간에 작업을 분리해주는 분산 애플리케이션 구조이자 네트워크 아키텍처.

따라서 DHCP지원 클라이언트는 네트워크 부팅과정에서 DHCP 서버에 IP주소를 요청하고 이를 얻을 수 있다. DHCP의 장점은 PC의 수가 많거나 PC 자체의 변동사항이 많은 경우 IP설정이 자동으로 되므로 효율적인 사용이 가능하고 자동으로 IP를 할당해주기 때문에 IP 충돌을 막을 수 있다는 것이다. 그러나 DHCP 서버에 의존되기 때문에 서버가 다운되면 IP 할당이 제대로 이루어지지 않는 것이 단점이다.

CF>"DHCP Discover"는 단말 기기가 DHCP 서버를 찾기 위한 메시지이다. 이에 대한 응답으로 DHCP 서버가 “DHCP Offer"라는 메시지를 보낸다. 그러나 내가 패킷을 분석하고 있었을 때는 "DHCP Discover"만 있고 “DHCP Offer"라는 메시지는 찾아볼 수 없었다. 이를 통해 DHCP 서버가 존재하지 않음을 유추할 수 있었다.

3 보안 전문가 및 엔지니어로서의 사명

과거 학부생 시절 기말고사 프로젝트로 학교사이트 패킷분석을 한 적이 있었는데 발표 질의응답 간 교육기관 사이트를 함부로 분석을 하는 것이 과연 옳은 행동이냐라는 질문을 받았던 적이 있다. 그래서 어떤 자세를 견지해야 하는지 많은 생각이 들었다. 우리가 해킹할 수 있는 능력이 나날이 발전하더라도 그것을 남용하지 않는 것은 우리 스스로에게 달려있다고 생각한다. 올바른 신념과 명예심을 가지고 본인이 궁극적으로 지키고자 하는 가치가 무엇인지 결코 잊어서는 안된다. 정보보호에 종사하게 된다면 정말 많은 유혹이 있겠지만 그럼에도 불구하고 유혹에 빠지지 않는 것이 보안 전문가이자 엔지니어로서의 올바른 사명이 아닌가 싶다.

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

암호화(Encryption)  (0) 2024.10.30
안전한 시스템 설계 8원칙  (2) 2024.10.30
SSRF(Server-Side Request Forgery)  (0) 2024.10.30
SQL Injection  (0) 2024.10.30
코드보안의 이해  (0) 2024.10.30