밍경송의 E.B

[사이버보안] 네트워크보안 - Sniffing, Spoofing, Session hijacking 본문

CSE/사이버보안개론

[사이버보안] 네트워크보안 - Sniffing, Spoofing, Session hijacking

m_gyxxmi 2024. 4. 24. 23:23

이 글은 2024-1 ㅇ화여대 사이버보안개론 수업자료를 참고하였음을 밝힙니다.

 

 

스니핑(Sniffing)

: 송->수신자가 주고받는 데이터를 도청하는 것 (traffic 도청)

 

[1 허브 환경에서 sniffing]

*허브(더미,수동허브) : 신호 증폭해주는 일종의 리피터 장비 (입력으로 전달받은 패킷을 나머지 모든 포트로 단순히 전달)

<<broadcast 하는 거지. 그러면 내 MAC 주소가 아닌 패킷은 필터링해서 내꺼만 받아가고 그런 구조(network카드)임.

 

🕹️공격방법 : network 카드에서 무차별모드(Promiscuous Mode) 설정 -> 내 MAC주소로 온거 아니어도 다 받아

 

 

 

[2 스위치 환경에서 sniffing]

*스위치 : MAC 주소를 이용해서 목적지로만 전달 ( !=허브, 무차별모드 사용불가)

 

🕹️공격방법 

  • 모니터링포트 이용한 스니핑 : 관리 목적으로, 스위치를 통과하는 모든 패킷의 내용을 전달하는 포트를 pc에 연결해서 스니핑
  • Switch jamming(전파방해)을 이용한 스니핑 : Mapping table의 최대 저장 개수보다 많은 정보 추가?
  • -> broadcasting 모드로 전환됨. 
    • *Mapping T는 IP를 MAC주소로 변환하기 위한 T

브로드캐스트 -> 허브처럼 작동 -> 느려짐

  • 스푸핑 공격 기법 이용 
    • 공격자가 마치 자신이 수신자인 것처럼 위장하는 Spoofing 기법을 이용하여 sniffing 하기

ARP 스푸핑

* ARP : IP 주소를 MAC 주소로 대응시키기 위해 사용되는 프로토콜 ex arp -a

 

* 동작 원리 [A->B]

1) 같은 LAN에 목적지 단말이 있는 경우

 

1. A가 B의 MAC을 몰라. 스위치로 ARP 요청 보냄

2. 스위치는 자신한테 접속된 모든 단말에 브로드캐스트함. 이 IP 쓰는 애 누구야

3. B는 그 IP 제가 씁니다. 제 MAC 주소 이겁니다. 하고 ARP 응답을 스위치에게 보냄.

4. A는 ARP 응답을 전달 받아 자신의 ARP 테이블에 B의 MAC 주소 추가함.

 

2) 외부 네트워크에 목적지 단말이 있는 경우

 

1. 외부 네트워크와 연결되는 Router의 MAC 주소를 dst MAC으로 설정. IP datagram은 고정돼있음

2. Router는 이것을 받아 자신의 MAC을 src로, B의 MAC을 dst로 재설정.(최종 목적의 IP를 보고)

 

 

 

*공격 방법

[ARP redirect] 2계층에서 동작

: 공격자가 Router인 것처럼 Router의 IP에 자신의 MAC 주소 대입. ARP reply 패킷을 브로드캐스트해서 해당 network의 모든 패킷 스니핑 + 진짜 Router에게 forwarding해서 안 들키게 함. 괘씸하닷

 

 

[ICMP redirect]  3계층에서 동작

: 공격자가 자신을 넽웤에 존재하는 또다른 router라고 알려 vic의 라우팅 테이블 변조 ->패킷 흐름을 바꿈.

((path 제시하는 패킷을 악용하는 것))

왼 3) ICMP redirect packet을 통해 router B에게 보내는 게 더 좋다고 path를 제시해줌.

 

 

🔑방지 대책(수동적 대처)

1) 암호화(가장효과적)

- HTTPS : 암호화된 통신 프로토콜로, HTTP + SSL/TLS

- SSH

- PGP와 S/MIME

 

2) VPN (Virtual Private Networks) : 가상 사설망

* 공개망을 이용하면서도 전용망을 사용하는 효과를 줌.

3) 스위치의 정적 테이블 사용


 

🔑방지 대책(능동적 대처- 탐지)

1) ping 이용

ping을 이용해 존재하지 않는 IP 주소 중 응답 오는 애가 있는지 확인(무차별모드 on)

*무차별모드 : 본인의 MAC 주소가 아닌 req에도 자신이라고 응답하는 애 (다 응답)

 

2) ARP 이용 ( 1)과 유사)

ARP 요청을 존재하지 않는 IP 주소에 보내서 응답 판단

 

3) DNS 방법(외부망인 경우)

존재하지 않는  IP를 대상으로 ping을 보내고, 해당 IP에 대한 도메인 이름을 물어보는 요청(inverse-DNS lookup)이 오는지 확인. (원래 오는 게 맞음)

 

4) Decoy 방법

가짜 id pw 유출해서 누가 쓰는지 감시

 

5) Host 기반 탐지

의심되는 pc나 서버에서 직접 명령 실행. 리눅스나 유닉스 - ifconfig 로 실행(PROMISC : 무차별모드로 설정돼있다),

윈도우- promiscdetect로 확인.

 

6) Network 기반 감지 툴

ARP watch : 네트워크 내부의 매핑 정보 생성 감시, 변경 보고.

 

 


 

스푸핑(Spoofing)

: 공격자가 마치 vic인 것처럼 행세. 송신자가 보낸 메세지 강탈

 

종류

*2계층의 공격 경우 공격자가 같은 스위치 내에 존재해야 함. 3,7계층은 외부 network에 있어도 공격 가능

 

 

[ARP Spoofing] 2계층

ARP : IP<-> MAC

* IP 주소로 보내도 내부적으로 MAC으로 변환되어 전송되는 성질 악용

: 스위치 내의 다른 단말에 가짜 ARP reply를 보냄(request여부와 상관없이) -> 가짜 MAC 주소를 ARP 테이블에 반영

 

<Spoofing step>

step 1) B의 MAC 주소를 공격자 MAC으로 변경 (스위치 내 다른 단말에 ARP 응답 보냄)

 

step 2) B로 가야하는 메시지 -> 공격자에게 감. 

 

 

<Spoofing을 이용한 Sniffing step>

step 1) 스위치 내의 모든 단말의 MAC 주소를 공격자의 MAC으로 변경

step 2) 공격자에게 전달된 메시지 sniffing + 안 들키려고 원래 수신자에게 재전송 [MITM 공격]

 

 

 

 

🔑 현상과 탐지

- 지속적인 ARP reply 발생  -> 와이어샤크 등 패킷분석 program으로 확인

- ARP 테이블에서 중복된 MAC 주소확인 (arp -a) : 서로 다른 IP 주소에 동일한 MAC 주소가 사용될지도

- network 속도 저하 (스푸핑 + 스니핑으로 인해)

-  ARP 테이블 감시 프로그램 

 

🔑 방지대책

- 정적 ARP 테이블

- 보안수준 강화


 

[IP Spoofing] 3계층

: 공격자의 IP 주소를 다른 IP 주소로 속이는 방법 

**자신이 보내는 메시지 내의 IP를 변조. (src IP addr 변조)

 

☠️IP 주소가 인증의 수단이 될때..

ex Trust 관계 : src IP가 신뢰하는 IPa인 경우, B는 모든 요청을 인증 없이 허용하는.. 관계

 

공격방법

  • B와 트러스트 관계인 server A 공격 (Dos 등으로 동작불능하게)
  • 공격자의 IP를 IPa로 변조해 B에 보냄 
  • -> 요청 허용^^

 

-> 웹 성능 테스트를 위해 합법적으로 사용하는 경우도 있음. (대량의 가상 사용자 생성, 서로다른 IP 할당)

 

🔑방지

- 트러스트 관계 맺지 X or강화

- 패킷 필터링 : 외부 -> 내부로 전달되는 메시지 중 src IP가 내부에 있는 경우 차단 

 

 


 

 

[ICMP Spoofing] 3계층

* ICMP 목적 : network 진단, network 흐름 통제( ICMP redirect로 path 제시) 등

: ICMP의 제어기능을 악용

 

step 1) ICMP redirect 보내기(공격자가 게이트웨이인 것처럼)

step 2) vic에서 보낸 메세지는 공격자에게 전송됨

 

step 3) sniffing을 위해 기존 게이트웨이로 재전송

 

🔑ICMP 자체 차단

 


 

 

[DNS Spoofing] 7계층

* DNS: URL 주소 -> IP 주소를 구하는 서비스

ex client는 도메인 네임을 기억하니까, ping www.goole.com  -> DNS 서버가 걔 IP는 ~~이거야. 일케 알려줌

: vic에게 전달되는 IP 주소 변조 or DNS 서버에 변조된 IP 주소 저장 

ex 가짜 은행 사이트

 

  • DNS query sniffing 을 이용한 공격
    • DNS query를 스니핑 (사전작업 ARP spoofing 등 필요)
    • client에 변조된 DNS reply
    • vic이 변조된 replay 선택
    • ** UDP 방식으로 DNS reply전달 -> 공격자가 찐DNS server보다 좀 더 가까이 있어서 먼저 도착하면 그거 선택
    • 그냥 더 먼저 도착하는 애꺼 선택하는 게 웃낌..
  • DNS Cache poisoning : DNS server 의 IP 주소 변조
    • <DNS 서버 동작원리>
      • Cache를 확인해보고 없으면 -> ANS(공인네임서버)에 계층적으로 도메인 주소 query 
      • DNS server는순환 query 방식으로 동작 
        • <1 spoofing 공격>
          •  DNS server가 ANS에 보내는 query 가로채기 -> 위조된 IP를 DNS server에 전달 -> Cache에 저장
        • <2 Random ID 생성 기반의 공격> 자문자답 대박..
          • 동일 도메인 네임에 대한 다수의 DNS query를 보냄.
          • 대규모의 응답을 보냄 // DNS 서버와 ANS가 공유하는 ID값을 찍어서 맞춤 (맞추면 거리상 선택)
          • -> 이때 생일공격기법(Birthday Attack) 이용 : 한 번에 동시에 23명의 사람이 모였을 때 생일 같은 사람있을 확률 50%이상. 
          • 참고로 ID는 16비트(2바이트임)

 

🔑대비책

- 업데이트

- DNSSEC(도메인네임시스템시큐리티익스텐션스^^) : DNS query/reply 암호화

 

 


 

[Session Hijacking]

: 연결된 상태 가로채기. 

 

TCP Session Hijacking

- TCP의 고유한 취약점 이용. Server와 Client에 잘못된 시퀀스 넘버 사용 -> 연결된 세션에 혼란. -> 자기가 낌.

1) 공격자-> server에 RST 보내고 바로 SYN 보냄.

2) 서버 -> client 의 시퀀스 넘버가 재설정됐다고 판단 . 연결 (3 way handshaking) 수행 ** 세션 close 없이 그대로 사용

3) 공격자는 client 대신 연결돼있던 세션 물려받음

 

🔑telenet같이 취약한 거 말고 SSH 사용, MAC주소 고정(서버랑 클라이언트 사이)