◎ 네트워크 보안
- Sniffing(스니핑) - '킁킁거리다'
- 네트워크를 통해 전송되는 모든 데이터 패킷을 지속적으로 모니터링하고 기록하는 기술
- 해커는 암호 및 계정 정보와 같은 중요한 데이터가 포함된 데이터 패킷을 캡처하기 위해 스니퍼를 사용
- Spoofing(스푸핑) - '속이다'
- 대상의 개인정보에 액세스하거나 감염된 링크나 첨부 파일을 통해 악성 프로그램(malware)을 유포하거나 네트워크 액세스 제어를 우회하거나 트래픽을 재배포하여 서비스 거부 공격을 수행
- 스푸핑은 인터넷 프래픽의 재루팅(rerouting)으로 이어지며 네트워크를 압도하거나 고객을 정보 도용 또는 악성프로그램 배포를 목적으로 하는 악의적인 사이트로 유도할 수 있음
- DOS(Denial of Service)
- 수많은 요청과 데이터로 네트워크 또는 서버를 플러딩하여 컴퓨터 리소스를 사용할 수 없게 하려는 공격
- 목적 : 디스크, 데이터, 시스템 파괴/사용가능한 모든 컴퓨팅 리소스 사용/엄청난 양의 패킷으로 인한 네트워크 대역폭 고갈
- 취약점 공격형 : 보잉크(Boink), 봉크(Bonk), 티어드롭(Teardrop)
- 자원 고갈 공격형 : 랜드공격, 죽음의 핑 공격, SYN 플러딩 공격, HTTP GET 플러딩 공격, HTTP CC 공격, 동적 HTTP 리퀘스트 플러딩 공격, 슬로 HTTP 헤더 DoS(슬로로리스) 공격, 슬로 HTTP POST 공격, 스머프 공격, 메일폭탄 공격
◎ 스니핑 공격
◈ 공격방법
- 허브환경
- 허브는 기본적으로 들어온 패킷에 대해 패킷이 들어온 포트를 제외한 모든 포트에 대해 패킷을 보내는 장비로 MAC 주소를 보아 자신이 아닌 다른 이들의 패킷은 버려짐
- 시스템의 NIC를 promiscuous 모드(무차별모드)로 동작하게 된다면 다른 이들의 패킷 또한 버리지 않고 받아볼 수 있음
- 스위치환경
- 허브환경에서와 달리 패킷은 실제 수신 대상에게만 보내지게 되며 공격 대상이 아무리 인터페이스를 promiscuous 모드로 셋팅하였다 하더라도 그 내용을 훔쳐볼 수 없다.
◈ 스니핑 공격의 종류
- SPAN(Port mirroring)
- 포트 미러링이란 각 포트에 전송되는 데이터를 미러링 하는 포트에도 똑같이 보내는 것으로 침입 탐지 시스템을 설치하거나 네트워크 모니터링을 할 때 많이 사용
- Switch jamming (스위치 재밍 공격)
- 스위치가 MAC 주소 테이블을 기반으로 패킷을 포트에 스위칭할 때 정상적인 스위칭 기능을 마비시키는 공격
- 공격자가 스위치에 대량의 가짜 매핑 정보를 지속적으로 전송 → 어느 시점에서 MAC 주소 테이블이 오버플로 → 이 시점부터 스위치 기능이 마비되고, 수신한 데이터를 어느 수신처로 보내야 할지 몰라 모든 수신처로 데이터를 전송한다(더미허브처럼 작동) → 공격자는 스위치에서 방출되는 정보를 탐지할 수 있음
◈ 스니핑 공격의 탐지와 예방
- Ping을 이용한 탐지 : 의심가는 호스트에 네트워크에 존재하지 않는 MAC 주소를 위장한 ping을 보낸다. ping에 대한 응답을 받으면 해당 호스트가 스니핑을 하고 있는 것.
- ping : 컴퓨터 네트워크 상태를 점검, 진단하는 명령
- ARP를 이용한 탐지 : ARP watch는 MAC주소와 IP주소의 매칭값을 초기에 저장하고 ARP 트래픽을 모니터링하여 이를 변하게 하는 패킷이 탐지되면 관리자에게 메일로 알려주는 툴. 대부분의 공격은 위조된 ARP를 사용하기 때문에 쉽게 탐지할 수 있다.
- Local host 방법(ifconfig)으로 탐지 : 리눅스에서 ifconfig(TCP/IP 네트워크 정보 표시)명령어를 사용해 무차별모드의 설정 및 설정여부 확인 가능
- ifconfig 인터페이스 이름 promisc (무차별모드설정), ifconfig 인터페이스 이름 -promisc (무차별모드해제)
- 공격방지 : 모든 들어오고 나가는 통신을 공유하기 전에 암호화하는 것, 보안되지 않은 네트워크 사용 안하기
◎ 스푸핑 공격
◈ ARP 스푸핑 공격
- MitM(Man in the Middle) 공격으로 공격자가 위조된 ARP 메세지를 LAN에 보내는 것.
- 공격과정
- 공격자는 두 개 이상의 장치(PC 및 라우터)의 IP주소를 확인
- 공격자는 스푸핑 도구를 사용하여 위조된 ARP 응답을 보냄
- 위조 응답은 라우터와 pc에 속한 IP주소에 올바른 MAC주소가 공격자의 MAC주소임을 알림.
- 두 장치는 ARP테이블 항목을 업데이트 하고 그 이후로는 서로 직접 통신하지 않고 공격자와 통신
- 공격탐지
- arp테이블을 보기 위해 arp명령어를 실행
- ARP 테이블이 변경되지 않도록 'arp -s [IP주소] [MAC주소]' 명령으로 MAC 주소 값을 고정하면 유형이 '동적'에서 '정적'으로 바뀐다.
- 두개의 다른 IP주소가 같은 맥 주소를 가지고 있으면 ARP 스푸핑이 일어난 것
◈ IP 스푸핑 공격
- IP 주소를 속이는 것으로, 다른 사용자의 IP를 강탈하여 어떤 권한을 획득
- 공격자는 trust 관계를 맺고있는 서버와 클라이언트를 확인한 후 클라이언트의 IP주소를 확보하여 실제 클라이언트처럼 서버에 접근
- 트러스트 : 클라이언트의 정보를 서버에 미리 기록해두고 그에 합당한 클라이언트가 서버에 접근하면 아이디와 패스워드의 입력 없이 로그인을 허락하는 인증법
- 공격방지
- 패킷필터링 : 외부에서 들어오는 패킷 중에서 출발지 IP주소에 내부망 IP주소를 가지고 있는 패킷을 라우터 등에서 패킷 필터링을 사용하여 막아낼 수 있음. 그러나 내부에서 발생하는 IP스푸핑에는 취약
- Trust 인증 사용하지 않기
- 지속적인 관리와 감시
◈ ICMP 스푸핑 공격
- 네트워크 계층에서 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격
- ICMP 리다이렉트 메시지 : 송신 호스트로부터 패킷을 수신 받은 라우터가, 특정 목적지로 가는 더 짧은 경로를 갖는 다른 라우터가 있음을 알리고자 할 때 사용되는 ICMP 메세지(디폴트 라우터 주소를 바로 잡아줌)
- ICMP 리다이렉트 메시지를 받은 PC는 패킷의 내용대로 라우팅 테이블을 변경하는데 인증 메커니즘이 없음.
- 공격방지
- 리눅스에서 '/etc/sysctl.conf' 파일에 'net.ipv4.conf.all.accept_redirects = 0' 추가
◈ DNS 스푸핑 공격
- DNS 스푸핑은 실제 DNS 서버보다 빨리 공격 대상에게 DNS response 패킷을보내어 공격 대상이 잘못된 IP주소로 웹 접속을 하도록 유도하는 공격
- 공격방지
- 중요접속서버의 URL에 대한 IP를 hosts파일에 등록해놓기 : 윈도우와 유닉스 모드 url에 대한 IP를 확인할 때 맨 먼저 시스템 메모리의 정보를 확인하고 그 다음에 hosts 파일에 등록된 정보를 확인한다. hosts파일에는 url과 IP정보가 등록되어 있다.
◎ DOS 공격
◈ DOS와 DDOS
- DOS(서비스 거부 공격) : 시스템의 구조적 취약점을 공격하여 서비스를 지연, 마비시키는 해킹공격 / 공격자가 단일 컴퓨터를 이용해 공격 / 멀웨어가 포함되어 있지 않다(감염이 아니다!)
- DDOS(분산 서비스 거부 공격) : 광범위한 네트워크를 이용하여 다수의 공격지점에서 동시에 한 곳을 공격하는 형태의 서비스 거부 공격
◈ 티어드롭 공격
- 봉크 : 같은 시퀀스 번호를 계속 보냄
- 보잉크 : 일정한 간격으로 시퀀스 번호에 빈 공간 생성
- 티어드롭 : 패킷의 시퀀스 넘버와 길이를 조작하여 패킷 간의 데이터 부분이 겹치거나 빠진 상태로 패킷을 전송하는 공격 방법
- 각 조각에 특정번호가 할당되고 수신 종료 시 조각은 원래 메시지를 재구성하도록 정련됨
- 대상 시스템은 fragments offset 필드에 포장된 정보를 사용하여 필요한 sequence 정렬하는데 여기서 티어드롭이 개입하여 오프셋필드를 파괴하여 재조립하는데 어려움을 겪는다
- 많은 수의 buggy 패킷이 공격대상자의 장치에 누적되어 시스템이 충돌
- 공격 방지 : 들어오는 패킷의 프레임 정렬을 확인하고 방화벽에 의해 잘못 포맷된 패킷을 삭제하여 공격으로부터 보호
◈ LAND 공격
- 패킷을 전송할 때 출발지 IP주소와 목적지 IP주소의 값을 똑같이 만들어서 공격 대상에게 보내는 것
- 이 공격은 동시 사용자 수를 점유하고 CPU 부하를 올린다.
◈ Ping of death 공격
- 네트워크에서도 전송하기 적당한 크기로 패킷을 잘라서 보내는 특성을 이용한 공격
- 네트워크의 연결상태를 점검하는 ping 명령을 보낼 때 공격 대상에게 패킷을 최대한 길게(최대 65535바이트) 보내면 수천 개의 패킷으로 쪼개지며, 공격 대상 시스템은 대량의 작은 패킷을 수신하느라 네트워크가 마비된다.
- 공격방지 : ping이 내부 네트워크에 들어오지 못하도록 ping이 사용하는 프로토콜인 ICMP를 차단해야 한다.
◈ SYN 플러딩 공격
- 동시 사용자 수 제한을 이용하는 것으로, 존재하지 않는 클라이언트가 서버별로 한정된 접속가능공간에 접속한 것처럼 속여 다른 사용자가 서비스를 제공받지 못하게 한다.
- 3웨이 핸드셰이킹의 문제점을 악용한 것
- 공격방지
- 서버의 backlog(네트워크 포트에서 패킷을 쌓아두는 커널)큐의 사이즈를 늘린다.
- 최대연결대기시간을 줄인다.
◈ ICMP 플러딩 공격
- ICMP패킷과 네트워크에 존재하는 임의의 시스템을 이용하여 패킷을 확장함으로써 공격 수행'
- ICMP의 브로드캐스트를 악용한 것
- 공격 대상은 수많은 ICMP reply를 받게 되고 수많은 패킷이 시스템을 과부화 상태로 만듦
◈ UDP 플러딩 공격
- 많은 수의 UDP 패킷을 공격대상에게 전송하여 정상적인 서비스가 불가능하도록 하는 공격
- 공격에 사용된 UDP의 특수성에 따라 달라짐
- ICMP 플러딩과는 달리 네트워크 bandwidth를 소모시키는 것(네트워크 자체를 마비)이 목적
◈ HTTP GET 플러딩
- 공격 대상 시스템에 TCP 3웨이 핸드셰이킹 과정으로 정상적으로 접속한 뒤, HTTP의 GET메서드를 통해 특정 페이지를 무한대로 실행하는 공격
- 공격대상은 서버의 CPU 및 연결자원이 과도하게 사용되어 정상적인 사용자가 접속 요청시 처리를 못하게 됨
- GET & POST
- HTTP : 하이퍼텍스트 전송규약으로 GET과 POST는 HTTP 프로토콜에서 데이터 전송을 하는 방식
- GET방식 : URL에 파라미터를 붙여서 전송
- POST방식 : 바디영역에 데이터를 실어 보내서 전송
◈ HTTP POST 공격
- 헤더의 content-length필드에 임의의 큰 값을 설정하여 전송해서 웹서버와의 커넥션이 장시간 유지되게 함으로써 서버의 자원을 잠식
◈ 동적 HTTP 리퀘스트 플러딩 공격
- GET플러딩공격과 다르게 지속적으로 요청페이지를 변경하여 웹 페이지를 요청하는 기법
◈ HTTP 헤더 DOS 공격 (슬로 HTTP 공격)
- HTTP 메시지의 헤더 정보를 비정상적으로 조작하여 웹 서버가 헤더 정보를 완전히 수신할 때까지 연결하도록 하는 공격으로 다른 클라이언트에게 정상적인 연결을 제공하지 못함
- 웹 서버는 HTTP 메시지의 헤더와 보디를 개행문자로 구분하는데 개행문자 없이 전달하면 웹서버가 HTTP 헤더 정보를 다 수신하지 않은 것으로 판단하여 연결을 유지
◈ HTTP CC 공격
- Cache-Control 헤더 옵션을 사용하여 자주 변경되는 데이터에 새로운 HTTP 요청 및 응답을 요구하기 위해 캐시 기능을 사용하지 않도록 함.
- 그러면 웹 서버는 캐시를 사용하지 않고 응답해야 하므로 웹 서비스의 부하가 증가
◈ Billion laughs 공격
- 악의적인 XML 소스 코드를 전송하여 서버 cpu및 메모리 부하를 발생시키는 공격
- XML
- Extensible Markup Language의 약자로 확장성 있는 마크업 언어
- DTD는 XML문서의 구조를 정의하기 위한 문서
- XML은 HTML과 달리 tag가 미리 정의되어 있지 않다.
◈ ReDos 공격
- 정규표현식을 사용자로부터 입력받을 때 정규표현식 구현이 매우 느리게 극단적인 상황에 도달할 수 있다는 사실을 이용하는 공격 (입력사이즈와 관련)
- 정규표현식 : 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 검색하거나 치환하는 과정을 매우 편리하게 할 수 있도록 하는 수단
'네트워크 보안' 카테고리의 다른 글
[전정보+@] Network Security 2 (0) | 2022.04.17 |
---|---|
[전정보+@] Network Security 1 (0) | 2022.04.13 |
[전정보+@] system security 3 (0) | 2022.04.13 |
[전정보+@] system security 2 (0) | 2022.04.09 |
[전정보+@] system security 1 (0) | 2022.04.05 |