1. 개요
1) 스푸핑(Spoofing)
• 공격자가 마치 공격 대상자(victim)인 것처럼 행세하는 것
- 원래 의미: 다른 사람을 흉내 내는 것, 혹은 따라하는 짓궂은 장난
• 공격자는 마치 자신이 수신자인 것처럼 행세하여 송신자가 보낸 메시지를 강탈
2. 다양한 Spoofing 기법의 종류들
- 2계층 공격: 공격자가 같은 스위치 내에 존재
- 3계층 혹은 7계층 공격: 공격자가 내부 network 및 외부 network에서도 공격 가능
구분 | 공격 계층 |
ARP 스푸핑 | 2계층 |
IP 스푸핑 | 3계층 |
ICMP 리다이렉트 | |
DNS 스푸핑 | 7계층 |
3. ARP Spoofing
- ARP(Address Resolution Protocol)
• MAC 주소를 결정(Resolution)하기 위한 통신 프로토콜
• IP주소를 MAC 주소(하드웨어 주소)로 변환하는 역할
- IP 주소(3계층)로 보내더라도 내부적으로는 MAC주소(2계층)로 변환되어 전송되는 성질을 악용하는 공격
- 공격방식
• 공격자가 스위치 내의 다른 단말에 가짜 ARP reply를 보내는 것
• ARP request가 없는 경우에도 ARP reply를 스위치 내의 다른 단말에 지속적으로 보내어 가짜 MAC 주소를 ARP 테이블에 반영하게 만듦
1) step-1: B의 MAC 주소를 가짜 MAC 주소(공격자의 MAC)로 변경
• 공격자 I가 스위치에 연결된 다른 단말 A에 ARP 응답을 보냄
• 가짜 ARP 응답에 의해 A의 ARP 테이블에 B의 MAC 주소가 MACI로 변경
2) step-2: B로 가야 하는 메시지가 공격자 I에게 전송됨
• A가 B의 IP 주소인 IPB로 메시지 전송
• IPB에 해당하는 MAC 주소는 MACI로 설정
• 실제로는 공격자 I에게 메시지가 전달됨
-ARP Spoofing을 이용한 sniffing 공격
1) step-1: 스위치 내의 모든 단말의 MAC 주소를 공격자의 MAC 주소로 변경
2) step-2: 공격자에게로 전달된 메시지를 sniffing한 후 원래의 수신자에게 재전송함
- ARP Spoofing의 현상과 탐지
1) 지속적인 ARP 응답 발생
– 와이어샤크(Wireshark) 같은 패킷 분석 프로그램을 이용하여 확인 » http://www.wireshark.org/ » 예) ARP 응답으로 IP 주소 192.168.2.1에 해당하는 기존 MAC 주소 70:f3:95:8f:92:3a와 다른 새로운 MAC 주소 00:0e:2e:60:b7:22가 전달
2) ARP 테이블에서 중복된 MAC 주소 확인
– 명령어 실행: arp –a
– 서로 다른 IP 주소가 같은 MAC 주소인 b8-03-05-6c-a0-bb 사용
3) ARP 테이블 감시 프로그램 활용
ex. XArp, arpwatch 등(온라인에서 download 가능)
4) network 속도 저하
– 일반적으로 spoofing에 이어 sniffing까지 이루어지는 경우가 많아 경로가 늘어나므로 속도가 저하됨
- ARP Spoofing 방지 대책
1) 정적인 ARP 테이블 관리
– 현실적 어려움: 관리 비용 증가
– 단말의 추가나 변경이 발생할 때 게이트웨이의 ARP 테이블을 수정해야 됨
– 웹 server와 같이 중요 단말만을 묶어서 별도의 Subnetwork를 구성하고, 이들에 대해서만 정적인 ARP 테이블을 관리 >>규모가 큰 망에는 적합하지 않음
2) PC와 server의 보안 수준 강화
- OS, DBMS 등의 보안 update를 정기적 시행, 백신 프로그램 설치 등
4. IP Spoofing
- IP Spoofing(IP Address Spoofing): 공격자의 IP 주소를 다른 IP 주소로 속이는 공격 방법
- 핵심: 자신이 보내는 메시지 내의 IP 주소를 변조
- IP 헤더 정보에 저장된 출발 IP 주소(Source IP Address) 변조
1) IP Spoofing을 이용한 보안 공격
• IP Spoofing 자체가 위협적일 수 있는 상황
– IP 주소가 인증(Authentication)의 수단이 될 때 예) A server와 B server가 IP 주소 기반의 트러스트(Trust) 관계
– 출발 IP가 신뢰하는 server인 A의 주소 IPA인 경우 B는 IP 주소가 IPA인 모든 요청에 대해서 인증 절차 없이 허용
• 공격자는 먼저 B와 트러스트 관계인 server A를 공격
– 서비스 거부 공격(DoS: Denial of Service) 등으로 공격
» server A를 동작 불능 상태로 만듦
– 출발 IP 주소를 IPA로 변조한 메시지를 server B로 보냄
» server B는 출발 IP가 IPA인 공격자의 메시지를 인증 절차 없이 허용함
2) IP Spoofing의 합법적인 사용: 웹 성능 테스트 프로그램
• 웹 사이트 성능 테스트 프로그램
– 내부적으로 IP 변조 기능 사용
– 대량의 가상 사용자를 생성하여 마치 이들이 실제 사용자인 것처럼 시뮬레이션
– 가상 사용자별로 서로 다른 IP 주소를 할당
– 동시에 여러 사용자가 웹 사이트를 정상적으로 이용하는 것을 확인
ex. HP사의 LoadRunner 등
3) IP Spoofing의 방지 방법
• IP 주소 기반의 트러스트 관계를 맺지 않음
– 서버 클러스터링(Server Clustering)이 꼭 필요한 경우: 트러스트 관계에 있는 server들의 보안 수준 강화
• 패킷 필터링(Packet Filtering)
– Gateway 밖에서 시도되는 IP Spoofing 공격에 대한 방지 수단
– 외부에서 내부로 전달되는 메시지 중에서 출발 IP가 내부 IP로 설정된 메시지를 필터링 (차단)
5. ICMP Spoofing
• network 상에 현재 오류가 없는지 진단하거나 제어하는 목적으로 사용되는 프로토콜
• IP 프로토콜의 약점 보완 목적
– IP 프로토콜 자체는 메시지 전송 중 오류가 발생한 경우 특별한 대처방안이 없음
1) ICMP의 사용 목적 1: network 진단
• network 연결 여부 확인: ping 또는 traceroute
2) ICMP의 사용 목적 2 : network 흐름 통제
• Gateway가 2개인 network 환경 가정
– Gateway1: 외부망과의 연동기능
– Gateway2: 회사의 다른 망과의 연동기능
• Host A에서 C로 데이터를 보내는 경우
– GW1은 GW2로 메시지를 전달하고, A에게 ICMP redirect를 보내 이후로는 GW2로 메시지를 직접 전송하도록 제어
3) ICMP의 네트워크 제어기능을 악용하는 공격 방법
• step-1: ICMP redirect 보내기
• step-2: 단말 A에서 보낸 메시지는 먼저 공격자 I에게로 전송됨
• step-3: sniffing 성공을 위해 기존 게이트웨이로 재전송
-> 많은 경우 방화벽 등에서 ICMP 메시지 자체를 차단하는 경우가 많음
6. DNS Spoofing
- 접속하려는 URL 주소 이름으로 IP 주소를 구하는 서비스
1) DNS Spoofing의 개념
• 공격 대상에게 전달되는 IP 주소를 변조하거나, DNS server에 변조된 IP 주소가 저장되게 하여 공격 대상이 의도하지 않은 주소로 접속하게 하는 공격 방법
• 가짜 은행 사이트의 예
• 일반 사용자가 자신이 공격을 당했는지 판단하기 쉽지 않음
• ‘보안 관련 인증 절차’ 등의 가짜 메시지 내용을 통해 사용자의 PC에 악성코드 설치 유도
→ 향후 2차, 3차의 추가적인 보안 사고 발생 가능
2) DNS query sniffing을 이용한 공격
• step-1: DNS query를 sniffing(사전에 ARP spoofing 등 선행작업 필요)
• step-2: client에 변조되거나 위조된 DNS reply를 전송
• step-3: victim 시스템이 변조된 DNS reply를 선택
– UDP 방식으로 DNS reply가 전달되기 때문에 DNS reply 중에서 먼저 도착한 메시지만 선택되고 이후에 도착한 메시지는 무시
>> 공격자가 DNS server보다 공격 대상자에 좀 더 가까운 곳(같은 스위치에 연결)에 있음
→ 공격자의 DNS reply가 먼저 도착하면 공격자가 보낸 변조된 IP 주소를 선택
3) DNS cache poisoning - DNS server의 IP 주소 변조
(1) DNS server의 동작 방식: 순환 질의(Recursive Query) 방식
– DNS server는 Authoritative Name Server(공인네임서버)에 계층적으로 도메인의 주소를 query
– 구해진 IP 주소는 DNS server에 캐시(Cache)로 저장
(2) Random ID 생성 기반의 DNS cache poisoning
– step-1: 동일한 domain name에 대해 다수의 DNS query를 보냄
– step-2: 대규모 DNS 응답을 보냄
– 여러 개의 서로 다른 ID 값을 랜덤(Random)하게 생성하여 DNS 응답을 동시에 보냄
→ DNS server와 공인 네임 서버가 공유하는 ID 값을 알아맞히기 위해
– 일단 ID 값이 같다면 공격자가 보낸 DNS 응답이 공인 네임 서버에서 보내는 DNS 응답 대신에 선택됨
– 대부분 공격자가 공인 네임 서버보다 DNS server에 가까워 먼저 도착
– 생일 공격(Birthday Attack) 기법 이용
>> 생일 역설(Birthday Paradox): 한 반에 동시에 23명의 사람이 모여 있을 때 그 중에 생일이 같은 사람이 있을 확률이 50% 이상
– DNS query에서 사용되는 ID의 크기: 2바이트(16비트)
– 공격자가 random하게 750개 이상의 DNS 응답 ID를 생성
→ 그 중 1개는 성공 – Spoofing이 필요 없고 비교적 간단한 공격
– 같은 스위치에 연결된 단말도 필요 없고 외부에서도 공격시도 가능
4) DNS cache poisoning 공격의 대비책
• DNS server의 소프트웨어를 최신 버전으로 업데이트
• DNSSEC(Domain Name System Security Extensions) 사용
– 암호화하여 DNS query 및 응답 전달
7. Session Hijacking
– 두 시스템 간의 연결이 활성화된 상태, 즉 로그인된 상태를 가로채는 것
8. TCP Session Hijacking
– TCP의 고유한 취약점을 이용하여 정상적인 접속을 빼앗는 방법
– Server와 client에 각각 잘못된 sequence number를 사용해서 연결된 session에 잠시 혼란을 준 뒤 자신이 끼어 들어가는 방식
① client와 server 사이의 패킷을 통제하고 ARP spoofing 등으로 통신 패킷 모두가 공격자를 지나가게 함
② server에 client 주소로 연결을 재설정하기 위한 RST reset 패킷을 보냄
③ server는 패킷을 받아 client의 시퀀스 넘버가 재설정된 것으로 판단하고 다시 TCP 3-way handshaking을 수행
④ 공격자는 client 대신 연결되어 있던 TCP 연결을 그대로 물려받음
– 대응책
• telnet과 같은 취약한 프로토콜을 이용하지 않고 SSH와 같이 세션 인증 수준이 높은 프로토콜로 server에 접속하기
• client와 server 사이에 MAC 주소를 고정하기
웹 보안(1)-web hacking, web 취약점 및 보안 대책(OWASP) (0) | 2023.04.19 |
---|---|
웹(Web), HTTP, HTML, SSS, CSS 개념 정리, 특징 (0) | 2023.04.19 |
네트워크 보안 2 (Network scanning, Sniffing) (0) | 2023.04.02 |
네트워크 보안 1 (DoS, DDoS, DRDoS) (0) | 2023.04.02 |
네트워크 개요 2 (TCP/IP 프로토콜) (2) | 2023.03.22 |