네트워크 상에서 데이터를 가로채는 여러 가지 방법

김재현·2024년 4월 21일
1

TIL

목록 보기
80/88
post-thumbnail

이전에 HTTPS에 관해 공부해보면서 >이전 포스팅: HTTP? HTTPS?
네트워크 상에서 데이터를 어떻게 가로채는 것일까? 하는 궁금증이 생겼다.

해커들은 어떤 정보를 빼가길래 악용 할 수 있는 것일까?
그리고 어떻게 가로채는 것 일까?

1. 네트워크 스니핑

네트워크에서 데이터를 가로채는 것은 일반적으로 네트워크 스니핑(Network Sniffing) 또는 패킷 스니핑(Packet Sniffing)이라고한다.

스니핑(Sniffing) : 네트워크에서 데이터를 가로채고 분석하는 것

스니핑 소프트웨어를 사용하여 네트워크 트래픽을 가로채어 네트워크 인터페이스를 통해 들어오고 나가는 패킷을 캡처하고 분석할 수 있습니다.

패킷(Packet) : 네트워크 통신에서 데이터의 기본 단위. 데이터를 작은 조각으로 분할하여 전송하는데, 이러한 조각을 "패킷"이라 하며 데이터의 일부, 발신지와 목적지의 주소 정보, 제어 정보 등이 포함되어 있다.

패킷이라는 것이 와닿지 않았는데, F12를 눌러 볼 수 있는 'Network'탭의 모든 것이라고 이해 할 수 있었다. 한마디로 오가는 모든 정보를 빼가는 것..!

스니핑 소프트웨어

스니핑 소프트웨어로는 Wireshark, tcpdump, Ettercap 등이 있으며 네트워크 인터페이스에 접근하여 패킷을 읽고 기록하며, 그들을 분석하여 사용자에게 제공한다.

일반적으로 이러한 소프트웨어는 다음과 같은 단계를 거쳐 동작한다.

  1. 네트워크 인터페이스 접근: 소프트웨어는 사용자가 선택한 네트워크 인터페이스(예: 이더넷, Wi-Fi)에 접근하여 네트워크 트래픽을 감시.
  2. 패킷 캡처: 선택한 네트워크 인터페이스를 통해 들어오고 나가는 모든 패킷을 캡처.
  3. 패킷 분석: 캡처된 패킷은 소프트웨어에 의해 분석되어 트래픽의 세부 정보(예: 송신자, 수신자, 전송된 데이터, 프로토콜 등) 추출.
  4. 사용자 인터페이스 제공: 분석된 패킷의 정보를 사용자에게 시각적으로 제공. 이를 통해 네트워크 트래픽을 실시간으로 모니터링하거나, 캡처된 패킷을 저장하고 분석할 수 있다.

이러한 소프트웨어들은 해킹만 사용되는 것이 아니라 네트워크 관리자, 보안 전문가 등이 네트워크의 동작을 이해하고 문제를 해결하기 위해 사용하기도 한다. 또한, 보안 공격을 감지하거나 네트워크 트래픽을 분석하여 보안 문제를 식별하는 데도 사용될 수 있다.

2. 중간자 공격(Man-in-the-Middle Attack)

ARP 공격, DNS 포이즈닝, SSL 중간자 공격과 같은 기술을 사용하여 중간에서 데이터를 가로챌 수 있다. 상대방으로 위장하여 데이터를 중간에서 조작하거나 가로챌 수 있는 것이다.

ARP 공격

ARP 공격은 네트워크 상에서 공격자가 ARP 패킷을 조작하여 공격 대상의 네트워크 트래픽을 가로채고 조작하는 기술이다. 일반적으로 로컬 네트워크에서 이루어지며, 공격자는 자신의 컴퓨터를 네트워크 내의 다른 장치로 위장하여 공격 대상의 통신을 도청하거나 조작할 수 있다.

ARP(Address Resolution Protocol) : 네트워크 상에서 IP 주소를 해당 네트워크 인터페이스의 물리적 MAC 주소로 매핑하기 위해 사용되는 프로토콜.

ARP 공격은 다음과 같이 두 가지 유형이 있다.

  1. ARP 스푸핑: 해커가 자신의 MAC 주소를 이미 LAN에 속하는 컴퓨터와 연결할 목적으로 위조된 ARP 패킷을 전송한다.
  2. ARP 포이즈닝: ARP 스푸핑에 성공하면 해커가 회사의 ARP 테이블을 변경하고, 결국 변조된 MAC 맵이 테이블에 남게 된다. 이후 감염이 점차 확산된다.

결국 목적은 해커의 MAC을 LAN과 연결하는 데 있다. 감염된 LAN으로 전송되는 트래픽이 모두 공격자에게 보내지는 것이다.

DNS 포이즈닝

악의적인 공격자가 DNS(Domain Name System) 서버의 캐시를 위조하여 사용자를 잘못된 웹사이트로 리디렉션하거나 악의적인 웹사이트로 유도하는 공격이다.

DNS(Domain Name System) : 퓨터 네트워크에서 호스트의 도메인 이름을 네트워크 주소로 변환하거나 그 반대의 변환을 수행하는 분산형 데이터베이스 시스템.
(간단히 말해, DNS는 사람이 이해하기 쉬운 도메인 이름(예: www.example.com)을 컴퓨터가 이해할 수 있는 IP 주소(예: 192.0.2.1)로 매핑하는 역할!)

DNS 포이즈닝 공격은 공격자가 DNS 서버의 캐시를 위조하여 사용자가 원래의 도메인 이름에 대한 IP 주소 대신 악의적인 웹사이트의 IP 주소를 반환하도록 만드는 것이다. 이를 통해 사용자는 의도하지 않은 웹사이트로 리디렉션되거나, 악성 코드가 포함된 웹사이트로 유도될 수 있다.

SSL 중간자 공격

공격자가 통신하는 두 당사자 사이에 위치하여 암호화된 통신을 가로채고 조작하는 공격이다.

SSL(Secure Sockets Layer) 및 TLS(Transport Layer Security) : 네트워크 통신에서 데이터를 안전하게 전송하기 위한 프로토콜.

SSL 중간자 공격의 단계는 아래와 같다.

  1. 중간에 개입: 공격자가 웹 브라우저와 웹 서버 간의 통신 경로에 위치하여 중간자 역할을 한다.
    (네트워크 기반의 기술이나 소프트웨어를 사용)
  2. 핸드셰이크 위조: 브라우저로부터의 SSL 핸드셰이크 요청을 받아들이고, 서버로부터의 SSL 핸드셰이크 응답을 받아들인다. 이 과정에서 브라우저와 서버 간의 통신을 위해 서로 다른 공개 및 개인 키를 생성하고, 이를 사용하여 자신이 생성한 중간자의 공개 키를 서버에게 보내는 것처럼 위조한다.
  3. 평문 통신 가로채기: 암호화된 통신을 가로채어 해독하고, 통신 내용을 복호화하여 읽는다.
  4. 조작된 응답 전달: 공격자는 원래의 응답을 조작하여 사용자에게 보내거나, 완전히 새로운 응답을 생성한다.

핸드셰이크(handshake) : 네트워크 통신에서 두 개체 간의 연결을 설정하고 안전한 통신을 위한 초기화 프로세스.

3. 프록시 서버 사용

프록시 서버는 클라이언트와 서버 사이에 위치하여 트래픽을 중간에서 가로챌 수 있다.

프록시 서버(proxy server) : 클라이언트와 서버 사이에서 중계 역할을 하는 서버


이 외에도 무선네트워크, 미러링 포트, 패킷 주입 등 다양한 방법의 해킹 방법이 있었다.
어쨌든 공통된 점은 통신 구조에 개입하여 중간에 데이터를 가로채고, 그것을 활용하여 이득은 취하는 것이 해커가 하는 일이라는 것이다.

자료들을 찾아보며 데이터를 빼가려는 무궁무진한 시도들이 있었구나 싶다.
역시 사람은 나쁜짓 하려고 할 때 가장 창의적이 되는 것일까?

출처


관련 포스팅

profile
I live in Seoul, Korea, Handsome

0개의 댓글