Infra & Security Eng/Semi Project

세미 프로젝트 - OSI 7 Layer 단계별 취약점 분석: 3계층 IP Spoofing을 이용한 데이터 탈취 실증

엔지니어 E 2026. 2. 24. 13:43
반응형

※ 이 과정은 외부와 격리된 독립적인 가상 네트워크 내에서 실습 하였습니다 

OSI 7계층 중 3계층(네트워크 계층)의 취약점을 이용한 IP 스푸핑(IP Spoofing) 공격 분석

목적
IP 프로토콜의 발신지 주소 검증 부재(인증 결함)를 이해하고, 신뢰 관계(Trust)에 있는 서버 간의 통신을 가용성 측면이 아닌 '기만(Deception)' 측면에서 가로채거나 로그를 조작하는 위협을 실증함

공격 메커니즘
IP의 허점: IP 패킷 헤더는 출발지 주소(Source IP)를 포함하지만, 수신 측이나 중간 라우터가 이 주소가 실제로 해당 전송자로부터 온 것인지 검증하는 절차가 기본적으로 결여되어 있음

신분 위조: 공격자(WAS)가 패킷을 생성할 때 자신의 IP(11.12) 대신 피해자가 신뢰하는 IP(ex. WEB 11.11)로 헤더를 조작하여 전송함으로써, 수신자(DB)가 공격자를 신뢰 대상자로 오인하게 만듦

네트워크 구성도
Attacker(WAS): 192.168.11.12 (실제 공격 수행자)
Spoofed IP(WEB): 192.168.11.11 (도용당하는 신뢰 대상 IP)
Target(DB): 192.168.21.10 (패킷을 수신하고 속게 되는 대상)
Gateway(Router): 192.168.11.13 / 192.168.21.1 (패킷을 전달하는 통로)
이 과정은 WAS 서버에서 공격을 수행하고, DB 서버에서 그 결과를 감시하는 구조 이다


WAS 서버 
공격에 사용할 도구인 hping3을 설치한다. 이 도구는 패키의 출발지 주소(Source IP)를 자유자재로 수정할 수 있는 기능을 제공함
# dnf install -y epel-release
# dnf install -y hping3

DB 서버 

공격이 들어오는 것을 실시간으로 보기 위해 네트워크 감시기를 켠다
# sudo dnf install -y tcpdump - tcpdump 설치
# tcpdump -i ens160 src 192.168.11.11 and dst 192.168.21.10
* 아직은 아무런 메시지가 뜨지 않아야 정상이다 (WEB 서버가 DB에 접속 중이 아니므로)

WAS 서버(192.168.11.12)
제 WAS 서버에서 자기 자신(11.12)의 신분을 숨기고 WEB 서버(11.11)의 이름으로 DB에 패킷을 보낸다 
# hping3 -a 192.168.11.11 -S 192.168.21.10 -p 1521 -c 10
보안 대책 
단순히 IP를 조작하는 실습에 그치지 않고, 네트워크 인프라와 호스트 관점에서 근본적인 IP 신뢰성 확보 방안을 제시 합니다 

1. 네트워크 계층
1) Ingress Filtering: 라우터나 스위치 인터페이스에서 설정된 서브넷 범위가 아닌 IP를 가진 유입 패킷을 사전에 차단 합니다
2) Unicast Reverse Path Forwarding: 패킷이 들어온 인터페이스로 다시 나가는 경로가 있는지 확인하여, 경로가 불일치하는 위조 패킷을 즉시 폐기 합니다 

2. 호스트 및 서비스 계층 
1) IP 기반 인증 지양: IP 주소만을 신뢰하여 접속을 허용하는 방식 대신, 다요소 인증이나 인증서 기반의 강력한 인증 체계를 도입 합니다 
2) IPsec 도입: 네트워크 계층에서 데이터 패킷을 암호화하고 발신처를 인증하는IPsec 프로토콜을 사용하여 데이터의 무결성을 보장 합니다

실증 결과 분석
본 실습을 통해 공격자(WAS)가 신분을 은폐했음에도 불구하고, 수신측(DB)과 도용 대상(WEB) 사이에서 발생하는 네트워크 반사작용을 통해 공격을 증명 하였습니다

1) 공격 성공의 증거: DB 서버의 tcpdump 결과, 실제 패킷 생성자인 WAS가 아닌 WEB의 IP가 Source IP 필드에서 확인됨을 실증 하였습니다 
2) 기만의 부작용: 도용 당한 WEB 서버에서는 자신이 요청하지 않은 DB의 응답에 대해 TCP Reset 패킷을 발송하는 현상이 관찰되었으며, 이는 시스템 리소스 낭비와 비정상적 트래픽 흐름을 유발 합니다 

결론
본 프로젝트를 통해 OSI 7계층 중 3게층의 설계적 결함이 전체 시스템의 신뢰 관게와 로그 무결성에 어떤 치명적인 영향을 미치는지 실증 하였습니다

1. IP 프로토콜 인증 결함 확인: IP 헤더 내 출발지 주소의 진위 여부를 검증하는 절차가 부재함을 이용하여, 로컬 네트워크를 넘어 라우팅 환경에서도 신분 위조가 가능함을 확인 하였습니다 

2. 로그 무결성 파괴의 위험성: IP 스푸핑을 통해 공격자는 자신의 흔적을 지우고 신뢰받는 서버에 책임을 전가할 수 있으며, 이는 사후 포렌식 및 침해 사고 분석을 어렵게 만드는 중대한 위협임을 인지 하였습니다 

3. 심층 방어의 고도화: 단일 IP 필터링에 의존하는 보안 정책은 한계가 명확 함, 네트워크 장비의 필터링, 상위 계층의 암호화, 그리고 강력한 엔드포인트 인증 시스템이 결합된 계층별 보안 전략이 필수적 입니다 

 

참고사항 

옵션 설명 사용하는 이유 (정확한 설명)
-i ens160 Interface 패킷을 감시할 랜카드 이름을 지정 한다 (환경에 따라 다를 수 있음)
src 192.168.11.11 Source Filter 출발지 주소가 192.168.11.11인 패킷만 필터링해서 보여달라는 뜻 이다
사용 이유 증거 확인 내가 WAS에서 패킷을 쐈는데, DB 서버가 그걸 진짜 WEB 서버가 보낸 것으로 인지하는지 실시간으로 검증하기 위해서 이다
옵션 설명 사용하는 이유 (정확한 설명)
-a 192.168.11.11 Spoof Address 핵심 설정. 패킷의 출발지 IP 주소를 강제로 11.11로 바꾼다. IP 스푸핑의 '스푸핑'을 담당 한다
-S SYN Flag TCP 연결의 시작을 알리는 신호 이다. DB 서버가 "어? 누가 나한테 접속하려고 하네?"라고 인식하게 만든다
192.168.21.10 Target IP 목적지 주소 이다. 공격 대상인 DB 서버를 지정한다.
-p 1521 Target Port 오라클 DB가 사용하는 포트입니다. 닫힌 포트보다 열린 포트로 보내야 서버가 더 민감하게 반응한다.
-c 10 Count 패킷을 딱 10개만 보낸다.  무제한으로 보내면 서버가 과부하(DoS)될 수 있으므로 실습을 위해 제한 한다