1. 네트워크 기본
- OSI 7계층, 비프
- 스니핑을 하기 위해 스위치 재밍, ARP 스푸핑, ARP 리다이렉트, ICMP 리다이렉트 등을 이용
1) 스위치 재밍/MAC Flooding
: 스위치 MAC Address Table의 버퍼를 오버플로우 시켜서 스위치가 허브처럼 동작하게 만드는 기법
스위치는 Fail Safe/Open 정책을 따르는 장비이므로 장애가 발생하면 더미 허브처럼 연결된 모든 노에게 패킷을 전송
Table을 오버플로우 시키기 위해 Source MAC 주소를 계속 변경하면서 패킷을 지속적으로 전송하는 방식
2) ARP 스푸핑
: 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply 패킷을 만들어 피해자에게
지속적으로 전송하여 피해자의 MAC Cache Table에 특정 호스트의 MAC 정보가 공격자의 MAC 정보로 업데이트
이를 통하여 피해자로부터 특정 호스트로 나가는 패킷을 공격자로 향하도록 하여 스니핑하는 것
* ARP 요청 및 응답 과정에서 별도의 인증과정이 없는 ARP 프로토콜 자체의 취약점을 이용한 공격이기 때문에
완벽한 방어는 없다.
대응 방법으로는 ARP 캐시를 정적(arp -s ip mac)으로 설정하여 ARP reply에 대한 캐시 정보 갱신을 하지 않도록 한다.
3) ARP 리다이렉트
: ARP 스푸핑 공격의 일종으로 공격자 자신이 라우터/게이트인 것처럼 MAC 주소를 위장하여 ARP Reply 패킷을
대상 네트워크에 지속적으로 브로드캐스트하여 해당 로컬 네트워크의 모든 호스트들의 ARP Cache Table에
라우터/게이트웨이의 MAC 정보가 공격자의 MAC으로 업데이트
이를 통해, 호스트에서 라우터로 나가는 패킷을 공격자가 스니핑
4) ICMP 리다이렉트
: ICMP Redirection 메시지는 호스트-라우터 또는 라우터 간에 라우팅 경로를 재설정하기 위해 전송하는 메시지이다.
공격자는 이를 악용하여 특정 IP 또는 IP 대역으로 나가는 패킷 라우팅 경로를 자신의 주소로 위조한 ICMP Redirect 메시지를 생성하여
피해자에게 전송함으로써 희생자의 라우팅 테이블을 변조하여 스니핑
2. IPv6 전환 기술
- 주소 고갈, 128bit 체계
1) 듀얼 스택
: IPv4와 IPv6 프로토콜을 동시에 설정하여 통신 상대에 따라 선택적으로 사용할 수 있도록 하는 방식
2) 터널링
: IPv4 네트워크를 경유하여 IPv6 네트워크 간 통신을 위한 방식으로 IPv4 네트워크를 통과하는 가상의 경로를 만들어 통신하는 방식
호스트와 라우터에서 IPv6 패킷을 IPv4 패킷으로 '캡슐화'하여 전송함으로써 캡슐화된 IPv6 패킷이 IPv4 네트워크를 통과하는 방식
3) 주소 변환 또는 헤더 변환
: IPv4 <-> IPv6 주소 변환
패킷의 앞부분에 변환 헤더를 추가함으로써 주소를 변환하여 송신하고 수신측에서는 변환 헤더를 제거하는 방식으로 통신
3. 윈도우 TTL=128, 리눅스 TTL=64
4. ICMP 리다이렉트 공격
: ICMP Redirection(type 5) 메시지를 이용하여 패킷 경로를 악의적으로 재설정하는 공격
: ICMP Redirection 메시지를 수신한 호스트는 자신의 '라우팅 테이블'에 특정 목적지로 나가는 gateway 주소를 변경한다.
* 라우팅 테이블 => 'netstat -rn'
* ARP 리다이렉트의 경우에는 피해자의 ARP Cache Table을 변조하는 것
* Redirection(Type 5) : 라우팅 경로가 잘못되어 새로운 경로를 이전 경유지 또는 호스트에게 알려주는 메시지
=> 게이트웨이/라우터만이 보낼 수 있으므로 공격자는 IP를 피해자의 게이트웨이 주소로 위조(Spoofing)
-대응책
1) ICMP Redirection 메시지에 의해 라우팅 테이블이 변경되지 않도록 ICMP Redirect 옵션 해제
2) (리눅스) 'sysctl -w net.ipv4.conf.all.accept_redirects=0'
5. TCP 프로토콜
: 연결지향 프로토콜(가상회선 연결방식) 신뢰할 수 있는 프로토콜, 흐름제어(슬라이딩 윈도우), 오류제어, 혼잡제어
* 슬라이딩 윈도우 : ACK 응답을 기다리지 않고 수신 측의 윈도우 사이즈 범위 내에서 연속적 전송하는 제어 방식
- TCP 구조 중 Control Flags 6bit : URG ACK PSH RST SYN FIN
- Port 분류 방식 well know port(0~1023) : 잘 알려진 서비스에 예약된 포트
FTP : 21/tcp
telnet : 23/tcp
DNS : 53/udp
DHCP : 67, 68/udp
TFTP : 69/udp
HTTP : 80/tcp
POP3 : 110
NTP : 123/udp
IMAP : 143
SNMP : 161 Poling
SNMP : 162 Trap
HTTPS : 443
SSH : 445
- 연결 설정 방식 3Way-HandShake
: Client-Active Open, Server-Passive Opne 포트 상태 확인
1) Client의 연결 시도 : SYN_SENT(SYN)
2) Server의 수신 확인 응답 및 서버에서 클라이언트로 연결 요청 : SYN_RCVD(SYN+ACK)
3) Client의 연결통로 확인 및 연결 : ESTABLISHED(ACK)
* Sequence Number(SYN) -> Ack Number(ACK+SYN) + 1
Sequence Number(ACK+SYN) -> Ack Number(ACK) + 1 => 수신 확인 응답 시 ACK를 상대방이 다음에 보낼 패킷의 순서 번호를 의미
Ack Number(ACK+SYN) -> Sequence Number(ACK)
ex) ACK+SYN의 ACK.NUM가 1001로 설정, 이는 1000번까지 수신 완료했으니 1001번의 패킷을 보내라!
- 연결 종료 방식 4Way-HandShake
1) Client의 (C)연결 종료 시도 : FIN_WAIT1 (FIN+ACK)
2) Server의 연결 종료 패킷 응답 : CLOSE_WAIT (ACK), Client가 ACK 수신 타이밍은 FIN_WAIT2
3) Server의 (S)연결 종료 시도 : LAST_ACK (FIN+ACK)
4) Client의 연결 종료 패킷 응답 : TIME_WAIT (ACK), Server가 ACK 수신 타이밍은 CLOSED
*TIME_WAIT : 2MSL(1~4분) 대기 후 종료 => Server가 ACK 수신했는지 확인하기 위해
- 연결 중단
1) RST => RST 플래그만 설정하는 경우 상대방으로부터 수신한 세그먼트에 ACK NUM 필드가 설정되어 있는 경우 SEQ NUM와 RST 플래그 설정하여 응답
2) RST+ACK => ACK NUM 필드가 설정되어 있지 않은 경우 SEQ NUM 필드를 '0'으로 설정하고 ACK NUM 필드를 수신한 SEQ NUM와 세그먼트 길이의 합으로 설정하여 응답
6. 포트 스캐닝
- 어떤 포트가 열려 있는지 확인하는 것으로 침입 전 취약점을 분석하기 위함
대상 서버의 동작 여부, 제공 서비스 등을 확인 가능
1) Stealth Scan : TCP Half Open => PORT CLOSED의 경우 RST+ACK 응답
TCP NULL/XMAS/FIN => (RFC793) "포트 상태가 CLOSED라면 요청 세그먼트에 대한 응답으로 RST를 보낸다." RST+ACK
* PORT OPEN의 경우 1)응답이 없거나 2)방화벽에 의해 Filtered된 경우
* XMAS : FIN, PSH, URG 제어 비트 또는 전체 제어 비트를 설정한 탐지패킷 전송
2) TCP ACK 스캔
: ACK 플래그만 설정해서 보낸다.
: 포트의 오픈 여부 말고, 방화벽의 필터링 정책을 테스트하기 위한 스캔
ㄱ. 대상 방화벽이 상태 기반(stateful)인지
ㄴ. 대상 포트가 방화벽에 의해 필터링 되고 있는지
: 필터링이 된다면 응답X, ICMP 메시지
: 필터링이 되지 않는다면 RST+ACK
3) UDP 스캔
: ICMP Unreachable를 이용해 UDP 포트의 Open 여부 파악
: Closed에 "Destination Unreachable, Port Unreachable" 응답
7. 서비스 거부(DoS:Denial of Service) 공격
: 공격 대상 시스템이 정상적인 서비스를 할 수 없도록 만드는 공격 => 가용성 추락
: 파괴 공격, 시스템 자원 소진 공격, 네트워크 자원 소진 공격
1) Ping of Death Attack
: 대량의 IP Fragment 생성, 정상적인 크기보다 아주 크게 만들어 전송하면 MTU에 의해 다수의 IP 단편화가 발생하게 된다.
: 수신 측에서는 단편화된 패킷을 재조합하는 과정에서 많은 부하 야기
-대응책
ㄱ. 보통의 ICMP 패킷은 분할하지 않으므로 분할이 일어난 패킷을 공격을 탐지
ㄴ. 반복적으로 들어오는 일정 수 이상의 ICMP 패킷을 무시하게 설정 => 대부분의 시스템은 이미 설정
2) Land Attack
: 출발지와 목적지의 IP가 같은 패킷을 만들어 보내고, 수신자가 자기 자신에게 응답을 보내게해 시스템의 가용성을 떨어뜨림
-대응책
ㄱ. 출발지와 목적지가 같으면 무조건 Drop
3) Smurf Attack
: 출발지 IP를 희생자 IP로 IP Spoofing 후 증폭 네트워크를 통해 ICMP Echo Request를 브로드캐스트하여, 다수의 Echo Reply가
희생자에게 전달되어 서비스 거부를 유발
: Directed Broadcast를 이용 => 원격지 주소의 호스트ID를 1로 설정하여 broadcast를 할 경우 해당 네트워크에 속한 모든 호스트가 응답함
-대응책
ㄱ. 단시간에 다수의 Reply 패킷을 희생자에게 전송하기 때문에 이를 탐지하여 해당 패킷을들 모두 Drop
ㄴ. 증폭 네트워크로 사용되는 것을 막기 위해 자신의 네트워크로 들어오는 Directed Broadcast 패킷을 허용하지 않도록 라우터에서 설정
*라우터 명령어 : no ip directed-broadcast
ㄷ. 브로드캐스트 주소로 전송된 Request 메시지에 대해 응답하지 않도록 시스템 설정
*브로드캐스트 주소란? address 주소 중 가장 큰 수 => 네트워크 클래스가 A이고 IP가 192.0.0.0 일 경우 브로드캐스트 주소는 192.255.255.255
4) Teardrop Attack
: IP 패킷의 재조합 과정에서 잘못된 Fragment offset 정보(값의 중첩)를 수신하도록 하여 재조합 과정에서 문제를 발생시키는 Dos 공격
8. IP Fragmentation 취약점 이용
1) Tiny Fragment
: IP헤더 보다 작은 Fragment를 만들어서 침입차단시스템(방화벽)을 우회하여 시스템이 침입하는 Dos 공격이 아닌 공격 우회 기법
2) Fragment Overlap
: IP Fragment offset값을 조작해 서비스 포트 필드를 중첩시켜서 재조합이 되고 나면 침입차단시스템에서 허용하지 않는 시스템에 접근 가능하기 만드는 공격 기법
-대응책
ㄱ. OS의 최신보안패치 적용
9. DNS 싱크홀 서비스
: 한국인터넷진흥원에서 국내 주요 ISP업체 및 가입기관과 협력을 통해 운영중인 서비스로 C&C서버로 연결을 시도할 때 C&C서버 대신 싱크홀 서버로 우회시켜
더이상 해커로부터 조종 명령을 받지 않도록 해주는 시스템/서비스를 말한다.
-동작과정
1) KISA에서 배포한 C&C목록을 ISP 등 DNS 싱크홀 적용기관의 DNS 서버에 업데이트
2) 악성 봇에 감염된 PC가 싱크홀이 적용된 DNS에 C&C 서버에 대한 질의를 요청
3) DNS는 악성 봇 PC에 싱크홀 서버 IP 주소를 반환
10. DDos 공격 유형
1) 대역폭 소진 공격
: 3~4계층의 프로토콜에서 발생(IP, ICMP, IGMP, UDP, TCP 등)
: 회선 대역폭 고갈시켜 동일 네트워크를 사용하는 모든 서비스에 영향
: UDP/ICMP Traffic Flooding => UDP/ICMP Flooding, Dns Query Flooding,
: TCP Traffic Flooding => SYN Flooding, SYN+ACK Flooding
: IP Flooding => LAND Attack, Tear Drop
2) 서비스 마비공격
: 7계층의 프로토콜에서 발생(HTTP, DNS, SMTP, FTP 등)
: HTTP 서버 과다 접속으로 공격 대상 시스템만 영향
: HTTP Traffic Flooding => HTTP GET Flooding(with Cache-Control)
: HTTP Herder/Option Flooding => Slow HTTP GET/POST/Read Dos
: HashDos, HulkDos
3) Slow 계열 공격 특징
: DDos 공격기법과는 달리 웹서버와의 연결 상태를 지속시키는 방식으로 연결자원을 소진시킬 정도의 트래픽만을 필요로 하는 저대역폭 공격이다.
: CRLF, 개행문자, 0x0d0a로 구분하는 라인, 헤더, 빈 라인, 바디의 구성의 취약점을 공격한다.
4) DRDos
: 출발지 IP를 공격 대상 IP로 위조하여 대량의 syn패킷을 반사 서버로 전송하여 공격 대상 서버는 다수의 응답을 반서서버로부터 받아 Dos상태가 된다.
: 공격 근원지파악의 어려움
: syn+ack 패킷에 대한 응답이 없을 경우 재전송을 수행하기 때문에 증폭공격에 해당된다.
-대응책
ㄱ. Ingress Filtering, ip 주소가 위조된 패킷이 언터넷 망에서 인입되지 않도록 ISP가 직접 차단
ㄴ. icmp의 경우 DRDos에 악의적으로 이용되지 않도록 필요없는 프로토콜은 차단
ㄷ. DNS서버가 증폭 반사서버로 악용되지 않기 위해 내부 사용자 주소만 재귀 커리가 가능하도록 제한
ㄹ. NTP 증폭 DRDos의 반사서버로 악용되지 않도록 대량의 응답 트래픽을 발생시키는 'monlist' 명령을 비활성화 한다.
*monlist 최근에 접속한 클라이언트의 정보를 전송해주는 명령어
ex) ntpdc -c monlist
'정보보안기사' 카테고리의 다른 글
정보보안기사 네트워크보안(3) (0) | 2019.08.13 |
---|---|
정보보안기사 네트워크보안(2) (0) | 2019.08.13 |
정보보안기사 시스템보안 (0) | 2019.08.09 |
정보보안기사 실기 공부 방안 (0) | 2019.08.08 |
정보보안기사 시험 일정 (0) | 2019.08.07 |