SECURITY ::/Security Academy

7일차 - 침해사고 대응(A Data-Centric Approach) 02

bbombi 2024. 3. 10. 00:18

 

 

 

 


 

* 정보보호는 외부에 대응하기 위한 일련의 치열한 과정!!

 

* 협상 (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