7일차 - 침해사고 대응(A Data-Centric Approach) 02
* 정보보호는 외부에 대응하기 위한 일련의 치열한 과정!!
* 협상 (Negotiation) : 주로 컴퓨터 네트워크나 보안 분야에서 사용되는 용어. 서로 다른 두 개 이상의 시스템 당사자 간에 합의점을 찾기 위해 서로 의사 소통하고 협상하는 과정.
ex) 암호화 통신에서 클라이언트와 서버 간에 SSL/TLS 연결을 설정하는 과정에서 암호화 알고리즘, 인증서 유효성 검사 방법 등을 협상함.이 과정에서 서로의 지원 기능을 확인하고 가장 안전하고 효율적인 방법을 합의하여 통신을 설정함.
* DNS SinkHole : KISA에서 제공하는 서비스
- 악성 봇에 감염된 PC와 공격자를 차단해
* CIDR : 클래스 없는 도메인 간 라우팅 기법
기존 IP 주소 할당 방식을 대체하면서 유연성을 더해줌
* ARP Spoofing : ARP(Address Resolution Protocol)을 악용하여 네트워크 트래픽을 가로채거나 조작하는 공격 기법.
* Man-in-the-Middel (MITM) : 중간자 공격.
* .org (닷 오그) : DNS에서 쓰이는 최상위 도메인. 망사업자번호.
* AS : 망식별번호.
* 실습
- 각각의 신뢰구간에서 공격이 일어났을때 어떤 도구를 사용하여 어떻게 대응할 수 있는지 알아보기!
- 교육서버 접속
- 교육 데이터 다운로드 및 pcap.tar.gz 파일 압축 해제 (-> pcap1~4)
* tcpdump를 사용하여 pcap 파일에서 패킷을 읽고 출력.
- tcpdump -> 패킷 캡쳐 및 분석 도구. 네트워크에서 발생하는 패킷을 캡쳐하고 그 내용을 확인할 수 있게 함
* tshark로 pcap 파일에서 패킷을 읽고 필요한 필드만을 추출하여 출력.
-> Wireshark의 명령 줄 버전으로서, pcap 파일에서 패킷을 분석하고 원하는 정보를 추출할 수 있도록 도와줌.
* 실습 1.
1. 1.pcap
edu8@edu:~$ cd /data
edu8@edu:/data$ ls
pcap.tar.gz
edu8@edu:/data$ tar -xzvf pcap.tar.gz
._1.pcap
tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr.com.apple.macl'
1.pcap
2.pcap
3.pcap
4.pcap
edu8@edu:/data$ ls -lth
total 64K
-rw-r--r-- 1 edu8 edu8 24K Mar 4 05:06 pcap.tar.gz
-rw-r--r-- 1 edu8 edu8 530 Mar 4 04:42 1.pcap
-rw-r--r-- 1 edu8 edu8 1.6K Mar 4 04:42 2.pcap
-rw-r--r-- 1 edu8 edu8 5.2K Mar 4 04:42 3.pcap
-rw-r--r-- 1 edu8 edu8 22K Mar 4 04:42 4.pcap
// 1.pcap
edu8@edu:/data$ tcpdump -r 1.pcap
reading from file 1.pcap, link-type EN10MB (Ethernet)
10:59:55.864182 IP 192.168.1.12.59251 > 192.168.1.1.domain: 42327+ [1au] A? fxea.club. (38)
10:59:55.878999 IP 192.168.1.1.domain > 192.168.1.12.59251: 42327* 1/1/1 A 127.0.0.1 (81)
11:00:39.368806 IP 192.168.1.12.51332 > dns.google.domain: 26409+ [1au] A? fxea.club. (38)
11:00:39.568685 IP dns.google.domain > 192.168.1.12.51332: 26409 3/0/1 CNAME vayne.gotoip3.com., CNAME hkvhost885.800cdn.com., A 103.139.3.19 (117)
edu8@edu:/data$ tshark -nnr 1.pcap
1 0.000000 192.168.1.12 → 192.168.1.1 DNS 80 Standard query 0xa557 A fxea.club OPT
2 0.014817 192.168.1.1 → 192.168.1.12 DNS 123 Standard query response 0xa557 A fxea.club A 127.0.0.1 NS ns.null0.info OPT
3 43.504624 192.168.1.12 → 8.8.8.8 DNS 80 Standard query 0x6729 A fxea.club OPT
4 43.704503 8.8.8.8 → 192.168.1.12 DNS 159 Standard query response 0x6729 A fxea.club CNAME vayne.gotoip3.com CNAME hkvhost885.800cdn.com A 103.139.3.19 OPT
edu8@edu:/data$ tshark -nnr 1.pcap -Tfields -e frame.time_epoch -e ip.src -e ip.dst -e dns.qry.name -e dns.flags.authoritative -e dns.a
1600081195.864182000 192.168.1.12 192.168.1.1 fxea.club
1600081195.878999000 192.168.1.1 192.168.1.12 fxea.club 1 127.0.0.1
1600081239.368806000 192.168.1.12 8.8.8.8 fxea.club
1600081239.568685000 8.8.8.8 192.168.1.12 fxea.club 0 103.139.3.19
2. 2.pcap
// 2.pcap
edu8@edu:/data$ tcpdump -nnr 2.pcap
reading from file 2.pcap, link-type EN10MB (Ethernet)
08:39:40.075957 IP 192.168.1.12.49637 > 185.165.123.36.80: Flags [S], seq 2922657071, win 65535, options [mss 1460,nop,wscale 6,nop,nop,TS val 598502201 ecr 0,sackOK,eol], length 0
08:39:40.324171 IP 185.165.123.36.80 > 192.168.1.12.49637: Flags [S.], seq 620386245, ack 2922657072, win 27960, options [mss 1410,nop,nop,TS val 3170991338 ecr 598502201,nop,wscale 3], length 0
08:39:40.324315 IP 192.168.1.12.49637 > 185.165.123.36.80: Flags [.], ack 1, win 2053, options [nop,nop,TS val 598502448 ecr 3170991338], length 0
08:39:40.325687 IP 192.168.1.12.49637 > 185.165.123.36.80: Flags [P.], seq 1:439, ack 1, win 2053, options [nop,nop,TS val 598502449 ecr 3170991338], length 438: HTTP: GET / HTTP/1.1
08:39:40.331307 IP 185.165.123.36.80 > 192.168.1.12.49637: Flags [FP.], seq 1:58, ack 439, win 0, length 57: HTTP: HTTP/1.0 302 Redirect
08:39:40.331414 IP 192.168.1.12.49637 > 185.165.123.36.80: Flags [.], ack 59, win 2052, options [nop,nop,TS val 598502454 ecr 3170991338], length 0
08:39:40.331728 IP 192.168.1.12.49637 > 185.165.123.36.80: Flags [F.], seq 439, ack 59, win 2052, options [nop,nop,TS val 598502454 ecr 3170991338], length 0
08:39:40.331728 IP 192.168.1.12.49637 > 185.165.123.36.80: Flags [F.], seq 439, ack 59, win 2052, options [nop,nop,TS val 598502454 ecr 3170991338], length 0
08:39:40.555494 IP 185.165.123.36.80 > 192.168.1.12.49637: Flags [.], ack 439, win 3629, options [nop,nop,TS val 3170991589 ecr 598502449], length 0
08:39:40.555534 IP 192.168.1.12.49637 > 185.165.123.36.80: Flags [F.], seq 439, ack 59, win 2052, options [nop,nop,TS val 598502676 ecr 3170991338], length 0
08:39:40.559893 IP 185.165.123.36.80 > 192.168.1.12.49637: Flags [R], seq 620386304, win 0, length 0
08:39:40.559894 IP 185.165.123.36.80 > 192.168.1.12.49637: Flags [R], seq 620386304, win 0, length 0
08:39:40.785258 IP 185.165.123.36.80 > 192.168.1.12.49637: Flags [R], seq 620386304, win 0, length 0
// 질의 중 ttl값의 변화 -> time to live 생존기간. 라우터 지날때마다 카운트
인터넷은 거의 7홉 이내 연결 (ex) 윈도우64, 리눅스126) -> 허위패킷찾기
edu8@edu:/data$ tshark -nnr 2.pcap -T fields -e frame.time_epoch -e ip.src -e tcp.srcport -e ip.dst -e tcp.flags.fin -e tcp.flags.syn -e tcp.flags.reset -e tcp.flags.push -e tcp.flags.ack -e ip.ttl
1599986380.075957000 192.168.1.12 49637 185.165.123.36 0 1 0 0 0 64
1599986380.324171000 185.165.123.36 80 192.168.1.12 0 1 0 0 1 53
1599986380.324315000 192.168.1.12 49637 185.165.123.36 0 0 0 0 1 64
1599986380.325687000 192.168.1.12 49637 185.165.123.36 0 0 0 1 1 64
1599986380.331307000 185.165.123.36 80 192.168.1.12 1 0 0 1 1 209
1599986380.331414000 192.168.1.12 49637 185.165.123.36 0 0 0 0 1 64
1599986380.331728000 192.168.1.12 49637 185.165.123.36 1 0 0 0 1 64
1599986380.331728000 192.168.1.12 49637 185.165.123.36 1 0 0 0 1 64
1599986380.555494000 185.165.123.36 80 192.168.1.12 0 0 0 0 1 53
1599986380.555534000 192.168.1.12 49637 185.165.123.36 1 0 0 0 1 64
1599986380.559893000 185.165.123.36 80 192.168.1.12 0 0 1 0 0 53
1599986380.559894000 185.165.123.36 80 192.168.1.12 0 0 1 0 0 53
1599986380.785258000 185.165.123.36 80 192.168.1.12 0 0 1 0 0 53
// => ttl 209!!
edu8@edu:/data$ tshark -nnr 2.pcap -T fields -e frame.time_epoch -e ip.src -e tcp.srcport -e ip.dst -e tcp.dstport -e http.request.method -e http.host -e http.location -e http.cache_control -e http.response.code http
1599986380.325687000 192.168.1.12 49637 185.165.123.36 80 GET sora.net
1599986380.331307000 185.165.123.36 80 192.168.1.12 49637 http://warning.or.kr 302
3. 3.pcap -> sna 값
// 3.pcap
* 실습 2.
edu8@edu:~$ cp /data/drdosflow.tsv .
edu8@edu:~$ ls
drdosflow.tsv
edu8@edu:~$ ls -lth
-rw-r--r-- 1 edu8 edu8 15M Mar 4 06:20 drdosflow.tsv
edu8@edu:/data$ gzip drdosflow.tsv
edu8@edu:/data$ ls -lth
-rw-r--r-- 1 edu8 edu8 2.5M Mar 4 06:20 drdosflow.tsv.gz
edu8@edu:/data$ zcat drdosflow.tsv.gz | grep udp
...
edu8@edu:/data$ zcat drdosflow.tsv.gz | grep udp | awk '{print $5}' | sort -u | wc -l
12061
edu8@edu:/data$ zcat drdosflow.tsv.gz | grep udp | awk '{print $3}' | wc -l
94648
// udp
edu8@edu:/data$ zcat drdosflow.tsv.gz | grep udp | awk '{print $3}' | sort | uniq -c | sort -rn | head
31445 1.255.41.52
294 1.255.41.136
292 1.255.41.102
287 1.255.41.78
281 1.255.41.230
281 1.255.41.138
280 1.255.41.92
280 1.255.41.65
278 1.255.41.189
278 1.255.41.152
// tcp
edu8@edu:/data$ zcat drdosflow.tsv.gz | grep tcp | awk '{print $5}' | sort | uniq -c | sort -rn | head
42673 1.255.41.52
285 1.255.41.47
284 1.255.41.68
282 1.255.41.62
282 1.255.41.45
281 1.255.41.152
279 1.255.41.137
278 1.255.41.124
275 1.255.41.128
274 1.255.41.99
// dns.cntry 파일에서 국가 코드 추출 후 중복 제거, 유니크한 국가 코드의 수를 계산함.
// 총 90개의 고유한 국가 코드가 포함되어 있음을 알 수 있음.
edu8@edu:/data$ cat dns.cntry | awk '{print $4}' | sort -u | tail
TH,
TN,
TR,
TW,
UA,
US,
UY,
VG,
VN,
ZA,
edu8@edu:/data$ cat dns.cntry | awk '{print $4}' | sort -u | wc -l
90