Network Forensic #31 (Sans Network Forensic [Puzzle 8] #1)

 

네트워크 포렌식 31번 문제

 

문제 파일로 pcap 파일이 주어진다.

 

Wireshark 도구를 통해 pcap 파일을 열어 확인해보자.

 

Wireshark : 오픈 소스 패킷 분석 프로그램으로 pcap을 이용하여 패킷을 잡아내는 것이 주요 기능

 

다운로드 사이트 : https://www.wireshark.org/download.html

 

Wireshark · Download

Riverbed is Wireshark's primary sponsor and provides our funding. They also make great products that fully integrate with Wireshark. I have a lot of traffic... ANSWER: SteelCentral™ AppResponse 11 • Full stack analysis – from packets to pages • Rich perfor

www.wireshark.org

[그림 1] Wireshark 실행 - pcap 파일 오픈

 

파일을 열어보면 무선랜(802.11 프로토콜)을 사용해 통신한 패킷들이 캡처된 것을 확인할 수 있다.

 

첫 번째 패킷을 확인해보면 패킷 info 내용에 SSID가 적혀 있는 것을 확인할 수 있다.

 

자세한 내용 확인을 위해, 패킷 세부 내용을 분석하였다.

 

[그림 2] SSID & BSSID 확인

 

패킷 세부 내용을 확인해보면, SSID와 BSSID를 찾을 수 있다.

 

SSID : 서비스 세트 식별자(Service Set Identifier), 무선랜 상에서 전송되는 패킷의 헤더에 존재하는 고유 식별자

 

BSSID : 기본 서비스 영역 식별자(Basic Service Set Identifier), 무선랜 표준인 802.11에서 48bit BSS를 구분하기 위해 사용

 

따라서 찾은 SSID와 BSSID를 플래그 형식에 맞게 입력하면 문제 해결이 가능하다.


Network Forensic #32 (Sans Network Forensic [Puzzle 8] #2)

 

네트워크 포렌식 32번 문제

 

패킷 캡처의 시작 시간부터 종료 시간까지 얼마나 걸렸는지에 대한 문제이다.

 

분석 방법은 매우 간단하다.

 

우선 Wireshark 도구의 마지막 패킷으로 이동해보자.

 

[그림 3] Wireshark 마지막 패킷 캡처 시간 확인

 

위 화면은 마지막 패킷의 Time 정보이다.

 

마지막 패킷의 Time 정보를 확인하면 첫 패킷 캡처 시간부터 마지막 패킷의 캡처 시간까지의 걸린 시간을 확인할 수 있다.

 

다른 문제들보다는 좀 간단하게 풀 수 있는 문제이다.


Network Forensic #33 (Sans Network Forensic [Puzzle 8] #3)

 

네트워크 포렌식 33번 문제

 

우선 암호화 된 데이터 프레임 확인을 위해서는 Wireshark 필터링 기능을 이용한다.

 

WEP으로 암호화 된 데이터 프레임 패킷은 Data Frame 영역에 protected flag가 1로 되어 있다.

 

따라서 Data Frame 영역을 찾기 위해 [wlan.fc.type_subtype == 20]을 적용해서 Data Frame 영역을 지정하고, [wlan.fc.protected == 1]을 적용해 protected flag가 1인 패킷들을 확인하면 된다.

 

[그림 4] Wireshark 필터 적용 내용

 

 

[그림 5] WEP으로 암호화 된 패킷 확인

 

필터링 결과, 위 화면과 같이 하단의 Displayed를 확인해보면 총 패킷 수와 현재 창에서 보이는 패킷의 개수를 확인할 수 있다.

 

따라서 필터를 적용한 현재 창에서 보이는 패킷의 개수가 WEP으로 암호화 된 데이터 프레임이다.

 

위 화면에서 보이는 개수를 플래그로 입력해주면 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Network Forensic #30 (Sans Network Forensic [Puzzle 7])

 

네트워크 포렌식 30번 문제

 

이번 문제... 매우 어려운 문제였다..

 

앞에서 정리한 Sans Network Forensic [Puzzle 4] 문제의 난이도와 매우 큰 차이가 느껴질 정도로 매우 어려운 문제였다...

 

 

본격적으로 문제 풀이를 진행해보자..!

 

문제로 주어진 pcap 파일 확인을 위해 Wireshark 도구를 통해 파일을 확인한다.

 

 

Wireshark : 오픈 소스 패킷 분석 프로그램으로 pcap을 이용하여 패킷을 잡아내는 것이 주요 기능

 

다운로드 사이트 : https://www.wireshark.org/download.html

 

Wireshark · Download

Riverbed is Wireshark's primary sponsor and provides our funding. They also make great products that fully integrate with Wireshark. I have a lot of traffic... ANSWER: SteelCentral™ AppResponse 11 • Full stack analysis – from packets to pages • Rich perfor

www.wireshark.org

[그림 1] Wireshark 실행 - pcap 파일 오픈

 

pcap 파일을 열면, 지금까지 보지 못했던 pcap 파일인 것을 알 수 있다.

 

그리고 802.11 프로토콜을 통해 무선랜 패킷 파일이라는 것을 확인할 수 있다.

 

IEEE 802.11은 흔히 무선랜, 와이파이라고 부르는 무선 근거리 통신망을 위한 컴퓨터 무선 네트워크에 사용되는 기술

 

무선랜의 경우 보통 암호화 되어있는 패킷이므로 aircrack-ng 도구를 통해 분석하였다.

 

Aircrack-ng : 무선랜 패킷 파일에 대한 종합 분석 도구이며, Monitoring / Attacking / Testing / Cracking 등 다양한 기능을 사용할 수 있다.

 

다운로드 사이트 : https://www.aircrack-ng.org/

 

Aircrack-ng

This release brings a ton of improvements. Along with bug fixes and improvements for a lot of tools, we have huge improvements under the hood thanks to code cleanup, deduplication, and reorganization of the source code. We also improved our buildbot, and a

www.aircrack-ng.org

 

Aircrack-ng 도구는 대부분 CLI 형태로 되어 있지만, 필자는 GUI 형태의 도구로 분석하였다.

 

[그림 2] Aircrack-ng (GUI) 파일 분석

 

해당 문제 파일을 찾은 다음, Launch 버튼을 누르면 분석을 시작한다.

 

[그림 3] 분석 결과

 

aircrack-ng로 분석한 결과, WEP 방식으로 암호화 되어 있다는 것과 해당 암호 키에 대한 정보를 얻을 수 있다.

 

무선 패킷의 복호화를 위해 aircrack 패키지 중 복호화 도구인 airdecap-ng를 사용하여 패킷 복호화를 진행하였다.

(위 사이트에서 aircrack-ng 도구를 다운받으면, 같은 폴더에 복호화 도구가 있다.)

 

[그림 4] airdecap-ng 복호화 결과

 

복호화 된 pcap 파일이 해당 폴더에 생성된다.

 

이제 Wireshark 도구로 복호화 된 파일을 확인해보자.

 

[그림 5] 복호화 된 pcap 파일 확인

 

pcap 파일을 확인해보면 일반적으로 볼 수 있는 상태의 pcap 파일이다.

 

pcap 파일 확인 결과, IMAP이나 STMP 등 메일과 관련된 프로토콜을 사용한 것을 확인 가능하다.

 

첫 번째 패킷의 IMAP 패킷을 [Follow TCP Stream] 기능을 통해 확인해보면 다음과 같은 결과가 나온다.

 

[그림 6] 첫 번째 IMAP 패킷 확인

 

해당 결과를 확인해보면 문제에서 등장했던 Dark Tangent에게 보내는 메일 내용이라는 것을 확인할 수 있다.

 

메일 내용을 통해 Ann과 Dark Tangent가 만날 랑데부 지점에 대한 힌트가 첨부 파일에 있다는 것을 알 수 있다.

 

또한 image 형식의 첨부 파일을 보낸 것도 확인할 수 있으며 base64로 인코딩 되어 전송되었다는 것도 확인할 수 있다.

 

따라서 해당 데이터를 추출해 base64로 디코딩하면 첨부된 이미지 파일을 확인할 수 있다.

 

[그림 6] missing in captuer file

 

하지만 첨부 파일 인코딩 데이터 중간에 missing in capture file이라는 문자열이 있다.

 

따라서 현재 패킷을 통해서는 첨부 파일 복원을 진행할 수 없다는 것을 알 수 있다... (너무 어려움)

 

문제로 주어진 패킷을 보면, IMAP 패킷 이외에 메일과 관련된 SMTP 패킷도 있기 때문에 SMTP 패킷도 확인해보자.

 

[그림 7] SMTP 패킷 - Follow TCP Stream 기능

 

Wireshark 필터를 사용해 SMTP 프로토콜을 검색한 후, 첫 번째 SMTP 프로토콜 패킷을 [Follow TCP Stream]을 통해 확인해보면 기존 IMAP 프로토콜 패킷과 동일한 내용 확인이 가능하며, 첨부 파일 데이터도 중간 손실 데이터가 없는 온전한 상태인 것을 확인할 수 있다.

 

첨부 파일의 데이터를 base64 디코딩 사이트를 통해 확인하면 다음과 같은 결과를 볼 수 있다.

 

base64 디코딩 사이트 : https://freeonlinetools24.com/base64-image

 

base64 image decoder encoder online

Base64 image decoder encoder online - this online tool lets you convert base64 string to image and image to base64 - jpg, jpeg, png, gif, bmp, ico, svg.

freeonlinetools24.com

[그림 8] base64 디코딩을 통한 이미지 파일 추출

 

추출된 이미지 속에는 총 5가지의 문장이 적혀 있는 것을 확인할 수 있다.

 

작아서 잘 안 보일거 같아 한 문장씩 해결하면서 상세한 설명 부분을 넣었다.

 

첫 번째 문장 : App Store - App Name

 

첫 문장은 App Store의 App Name을 찾는 것이므로 App Store의 검색 기능을 이용해서 App을 찾았을 것이라고 추측할 수 있다.

 

본격적인 분석을 진행해보자.

 

우선 NetworkMiner 도구로 해당 pcap 파일을 열어준다.

 

NetworkMiner : 네트워크 포렌식 분석 도구로써 사용하는 운영체제나 세션, 호스트 이름, 열려있는 포트 정보 탐지 기능 등 상세한 정보를 얻을 수 있는 도구

 

다운로드 사이트 : https://www.netresec.com/index.ashx?page=NetworkMiner

 

NetworkMiner - The NSM and Network Forensics Analysis Tool ⛏

Network Miner is a network forensics tool for analyzing network traffic

www.netresec.com

[그림 9] NetworkMiner Images 탭 확인

 

NetworkMiner의 [Images] 탭을 통해 확인해보면 위 화면과 같이 카드게임들의 이미지가 출력되는 것을 통해 카드 게임이 문제에 대한 힌트로 보인다.

 

카드 게임에 대한 가능성을 생각하면서, NetworkMiner의 [Paeameters] 탭을 통해 검색한 App을 확인하였다.

 

[그림 10] 검색 관련 URL 확인

 

[Parameters] 탭을 확인한 결과, Destination host에 위 화면과 같이 ax.search.itunes.apple.com이라는 것을 확인할 수 있으며, 검색과 관련한 URL이라는 것을 알 수 있다.

 

이를 통해 URL의 Parameters name과 Parameter value를 확인하면 term과 solitaire라는 값이 있다.

[그림 11] solitaire 구글링

 

그리고 solitaire 단어를 구글에 검색해보면 카드 게임이라는 결과를 확인할 수 있다.

 

첫 번째 문장 해결!!

 

두 번째 문장 : Podcast Title

 

이 문장은 전에 문제 풀이한 Sans Network Forensic [Puzzle 3]의 4번 문제와 매우 비슷한 방식으로 풀 수 있다.

 

Wireshark의 찾기 기능(Ctrl + F)의 Packet details를 선택한 다음, Podcast를 검색하면 HTTP/XML 프로토콜이 검색된다.

 

따라서 Podcast가 HTTP를 사용해서 통신했다고 의심해볼 수 있으며, Wireshark의 필터에 http && xml을 검색해서 HTTP 200 OK 패킷들을 확인하였다.

 

[그림 12] Wireshark 찾기 기능

 

[그림 13] HTTP/XML 프로토콜 패킷 확인

 

위 결과 창에서 찾기 기능을 이용해 Podcast 관련 문자열이 있는 패킷을 확인하면 3개의 패킷이 있다.

 

패킷의 xml을 추출해 확인해보면 마지막으로 선택되는 패킷의 xml에서 Podcast 내용과 title 확인이 가능하다.

 

 

※ HTTP 200 OK XML 코드 확인하는 방법

 

1. 패킷 선택

 

2. 패킷의 세부 정보 출력 화면 - extensible Markup Language 마우스 우클릭

 

3. Copy - Bytes - Printable text only 선택

 

4. 메모장(코드 편집 프로그램) - 붙여넣기

 

[그림 14] Podcast Title 결과 확인

 

이렇게 해서 두 번째 문장도 해결했다...!

 

세 번째 문장 :  Youtube Video Title

 

[그림 15] NetworkMiner Message 탭 확인

 

NetworkMiner 도구를 사용하여 [Message] 탭을 확인해보면 한 개의 SMTP 패킷이 있는 것을 확인할 수 있다.

 

그리고 패킷 내용을 확인해보면 Youtube Video에 대한 URL 확인이 가능하다.

 

해당 URL을 접속해보면 다음과 같은 영상이 나오게 된다.

 

[그림 16] Youtube Video 확인

 

URL로 이동하게 되면, 다음과 같은 영상이 나오면서 영상 제목을 확인할 수 있다.

 

세 번째 문장도 완료!

 

네 번째 문장 : Google Earth City Name

 

이건 처음에 봤을 때 뭔소리인지 이해가 안 갔던 문장이다..

 

그래도 문제는 풀어야 하니.. 위 문장에 대해 분석을 진행했다.

 

[그림 17] NetworkMiner Parameters 탭 확인

 

NetworkMiner의 [Parameters] 탭을 확인해보면 Google Earth에서 검색한 도시 이름에 대한 정보가 나온다.

 

Destination host의 maps.google.com을 통해 구글 지도와 관련 있는 URL이라는 것을 알 수 있다.

 

관련 URL의 Parameter name과 Parameter value를 통해 q와 hacker valley, wv라는 값을 확인 가능하다.

 

자세한 정보 확인을 위해 구글에 검색하여 확인하였다.

 

[그림 18] 상세 정보 확인

 

위 화면과 같이 실제로 존재하는 지명이라는 것을 확인하였다.

 

4번째 문장도 완료... 하나 남았다!

 

다섯 번째 문장 : AIM Buddy Name

 

[그림 19] NetworkMiner Parameters 탭 확인

 

NetworkMiner의 [Parameters] 탭을 확인해보면 AIM과 관련된 URL을 확인하면 위 화면과 같은 URL들을 확인할 수 있다.

 

Parameter name에 message를 통해 Do you have the cash? 라는 내용을 확인할 수 있다.

 

메시지 내용을 전달할 때 AIM Buddy Name도 함께 전송될 것이라고 추측해볼 수 있으며, 해당 패킷의 프레임 번호인 187605을 Wireshark를 통해 확인하였다.

 

[그림 20] 187605번 패킷 정보

 

187605번 패킷에 대한 [Follow TCP Stream] 기능 내용으로, 보낸 message 내용을 확인할 수 있다.

 

또한 inter0pt1c 내용과 ip1NaUEi7G7o_OHY를 통해 두 값 중에 하나가 Buddy name이라는 것을 확인할 수 있다.

 

[그림 21] NetworkMiner 정보

 

위 내용은 NetworkMiner 도구에서도 확인이 가능한 정보다.

 

이렇게 해서 5개의 문장에 대한 분석을 끝냈다.

 

문제의 최종 답이 하나의 단어라고 하였으므로 주어진 5가지 문장의 해답을 한 개의 단어로 만들어야 한다.

 

5가지 단어는 서로의 연관 관계가 없으므로, 단어의 첫 글자를 조합하면 한 단어로 만들어지면서 어느 장소에 대한 내용이 나오게 된다.

 

위 과정대로 본 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Network Forensic #27 (Sans Network Forensic [Puzzle 4] #4)

 

네트워크 포렌식 27번 문제

 

이전에 1번부터 3번까지 풀은 문제 파일로 계속해서 풀어나가는 문제이다.

 

저번 문제처럼 해당 pcap파일을 Wireshark로 열어준다.

 

Wireshark : 오픈 소스 패킷 분석 프로그램으로 pcap을 이용하여 패킷을 잡아내는 것이 주요 기능

 

다운로드 사이트 : https://www.wireshark.org/download.html

 

Wireshark · Download

Riverbed is Wireshark's primary sponsor and provides our funding. They also make great products that fully integrate with Wireshark. I have a lot of traffic... ANSWER: SteelCentral™ AppResponse 11 • Full stack analysis – from packets to pages • Rich perfor

www.wireshark.org

이번에는 Apple 시스템의 MAC 주소를 찾는 문제이다.

 

앞에서 설명한 10.42.42.25, 10.42.42.50, 10.42.42.56 3개의 IP 주소들을 확인해보면 된다.

 

[그림 1] Apple 시스템에 해당하는 MAC 주소 확인

 

10.42.42.25 IP 주소를 확인해보면 위 화면과 같이 Apple 시스템에 해당하는 MAC 주소를 확인할 수 있다.

 

화면에서 보이는 것처럼, 해당 MAC 주소를 플래그로 입력해주면 쉽게 해결할 수 있는 문제이다.


Network Forensic #28 (Sans Network Forensic [Puzzle 4] #5)

 

네트워크 포렌식 28번 문제

 

앞에 4번 문제에서 확인한 Apple 시스템에 해당하는 IP 주소인 10.42.42.25를 제외한 나머지 두 개의 IP 주소 중에 연결된 IP 주소를 확인하면 된다.

 

Wireshark의 필터를 이용해서 Windows와 연결된 흔적을 확인하였다.

 

[그림 2] Wireshark 필터 기능

 

검색해서 확인한 결과, 10.42.42.56에서는 연결된 흔적을 찾을 수 없었지만, 위 화면과 같이 10.42.42.50을 검색하여 연결된 흔적을 발견할 수 있었다.

 

[그림 3] IP 주소 10.42.42.50 연결 확인

 

Windows 시스템이라는 것을 확정짓기 위해 Windows 시스템의 네트워크 특징을 이용해 확인할 수 있다.

 

Windows의 ICMP 패킷의 TTL은 보통 128로 설정된다.

 

그렇기 때문에, ICMP의 TTL 값을 Wireshark 필터에 [icmp && ip.ttl == 128]을 사용해 확인하면 다음과 같이 출력된다.

 

[그림 4] ICMP의 TTL 확인

 

※ 운영체제별 ICMP TTL

  • Windows : 128

  • Linux : 255

  • MAC : 64

 

또한, 다른 방법으로 NetworkMiner를 통해 분석하는 방법도 있다.

 

NetworkMiner : 네트워크 포렌식 분석 도구로써 사용하는 운영체제나 세션, 호스트 이름, 열려있는 포트 정보 탐지 기능 등 상세한 정보를 얻을 수 있는 도구

 

다운로드 사이트 : https://www.netresec.com/index.ashx?page=NetworkMiner

 

NetworkMiner - The NSM and Network Forensics Analysis Tool ⛏

Network Miner is a network forensics tool for analyzing network traffic

www.netresec.com

 

[그림 5] 네트워크 마이너 실행 - OS 확인

 

NetworkMiner를 실행한 후에 Hosts 목록에서 Windows 시스템이라는 것을 확인할 수 있다.

 

따라서 확인한 IP 주소를 플래그로 입력하게 되면 문제를 해결할 수 있다.


Network Forensic #29 (Sans Network Forensic [Puzzle 4] #6)

 

네트워크 포렌식 29번 문제

 

Sans Network Forensic [Puzzle 4]의 마지막 문제이다.

 

위 5번 문제에서 확인했던 Hosts 탭을 확인해보면 열려 있는 TCP 포트 번호에 대한 정보 확인이 가능하다.

 

[그림 6] 네트워크 마이너를 통한 포트 확인

 

플래그에서 제시하는 포맷에 맞게 낮은 번호순으로 플래그를 입력하면 쉽게 해결이 가능하다.

 

6번 문제를 끝으로 Sans Network Forensic [Puzzle 4] 풀이를 마친다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

Network Forensic #24 (Sans Network Forensic [Puzzle 4] #1)

 

네트워크 포렌식 24번 문제

 

문제 파일로 pcap 파일이 주어진다.

 

주어진 시나리오와 문제를 통해 Mr.X가 포트스캐닝을 하고 있을 것이라는 의심을 해볼 수 있다.

 

포트 스캐닝 : 대상의 어떤 포트가 열려 있는지 확인하는 작업, 침입 전에 취약점 분석을 위한 사전 작업

 

 

Wireshark 도구를 통해 문제에서 주어진 pcap 파일을 확인해보자.

 

Wireshark : 오픈 소스 패킷 분석 프로그램으로 pcap을 이용하여 패킷을 잡아내는 것이 주요 기능

 

다운로드 사이트 : https://www.wireshark.org/download.html

 

Wireshark · Download

Riverbed is Wireshark's primary sponsor and provides our funding. They also make great products that fully integrate with Wireshark. I have a lot of traffic... ANSWER: SteelCentral™ AppResponse 11 • Full stack analysis – from packets to pages • Rich perfor

www.wireshark.org

[그림 1] Wireshark 도구 실행 - pcap 파일 오픈

 

수많은 패킷을 확인할 수 있으며, 패킷 트래픽 흐름 확인을 위해 [Statics] - [Conversations] 기능을 이용하여 확인한다.

 

[그림 2] Port B를 정렬 - 확인한 포트 스캐닝

 

확인해보면 Mr.X가 포트 스캐닝에 사용한 IP 주소 확인이 가능하다.

 

위 화면처럼 TCP 프로토콜을 선택하면 10.42.42.253의 IP주소로 3개의 IP주소(10.42.42.25, 10.42.42.50, 10.42.42.56)로 1번 포트부터 차례대로 포트 스캐닝을 하는 것을 확인할 수 있다.

 

이것으로 Mr.X가 사용한 스캐너 IP 주소를 확인하여 플래그로 입력할 수 있다.


Network Forensic #25 (Sans Network Forensic [Puzzle 4] #2)

 

네트워크 포렌식 25번 문제

 

위 문제 파일을 계속 사용해서 푸는 문제이다.

 

사실 이 문제의 플래그는 지문에서 보이는 6개의 항목 중 하나라서, 모두 입력해보면 플래그로 인증된다..

 

그렇지만 제대로 된 네트워크 포렌식 공부를 위해 열심히 풀었다...하하

 

pcap 문제 파일을 확인해보면 수많은 TCP SYN 패킷을 보내고 RST/ACK 패킷을 받는 것을 확인할 수 있다.

 

[그림 3] SYN 패킷과 RST/ACK 패킷 확인

 

※ RST/ACK 패킷 발생 이유

  • 세션 연결이 되지 않은 Host로부터 TCP 연결 패킷이 온 경우

  • Listen 중이 아닌 포트로 SYN 패킷을 받은 경우

 

따라서 주어진 패킷을 통해 TCP 연결을 위한 3way-handshake 과정으로 포트 스캐닝을 하고 있다는 것을 의심해볼 수 있다.

 

3way-handshake 연결 과정 : Client > Server : TCP SYN

 

 

[그림 4] TCP 3way-handshake Connect 확인

 

pcap 파일을 분석하던 도중, 거의 끝 부분을 확인해보면 3way-handshake를 성공하는 것을 확인할 수 있다.

 

따라서 위 과정을 통해 정상적으로 해결할 수 있는 문제이다.


Network Forensic #26 (Sans Network Forensic [Puzzle 4] #3)

 

네트워크 포렌식 26번 문제

 

이번 문제는 Mr.X가 목표로 하는 IP 주소를 찾는 문제이다.

 

1번 문제에서 확인했던 [Statics]- [Conversations] 기능으로 총 3개의 목표 IP 주소를 확인할 수 있다.

 

[그림 5] 3개의 목표 IP 주소 확인

 

3개의 IP 주소를 숫자가 작은 순서대로 플래그로 입력하면 문제를 쉽게 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

[Network] 네트워크 보안 기초

 

네트워크 보안


(1) 네트워크 보안 요소

  • 흔히 정보 보안의 3요소로 기밀성(Confidentiality), 무결성(Integrity),가용성(Availability)을 말함

  • 네트워크 보안 요소는 정보보안 3가지 요소에 서버 인증과 클라이언트 인증을 더함

  • 총 5가지의 요소를 지님

 

1-1. 기밀성

  • 허락되지 않은 사용자 또는 객체가 정보 내용을 알 수 없도록 하는 것 (비밀 보장)

  • 원치 않는 정보 공개를 막는다는 의미 > 프라이버시 보호와도 밀접한 관계

  • 네트워크 보안 측면에서는 '시스템 간 안전한 데이터 전송'과 관련

  • '시스템 간' 의미는 서버-클라이언트, 서버-서버, 클라이언트-클라이언트의 통신을 말함

  • 네트워크 기밀성 관련 공격 > 스니핑(패킷을 무작위로 읽어들이는 공격)

  • 기밀성 보안 대책 > 통신의 암호화 

1-2. 무결성

  • 허락되지 않은 사용자 또는 객체가 정보를 함부로 수정할 수 없도록 하는 것

  • 수신자가 정보 수신하거나, 보관 정보를 꺼내 봤을 때 그 정보가 중간에 수정/첨삭되지 않음을 확인

  • 네트워크 무결성 > '클라이언트와 서버 간의 데이터가 변조되지 않고 전송되는가'

  • 네트워크 무결성 관련 공격 > 세션 하이재킹(중간에 유효한 다른 연결을 뺏음), MITM(두 시스템 간의 데이터를 중간에 변조)

  • 무결성 보안 대책 > 통신의 암호화(PKI가 밀접 관련)

1-3. 가용성

  • 허락된 사용자 또는 객체가 정보에 접근할 때 방해받지 않도록 하는 것

  • '언제든 필요할 때 클라이언트와 서버 간에 데이터를 전송할 수 있는가'

  • 네트워크 가용성 관련 공격 > DOS(서비스 거부 공격)

  • 서비스 거부 공격 대응 > 매우 어려운 문제로, 수많은 요소 고려 필요

1-4. 서버 인증

  • '클라이언트가 올바른 서버로 접속하는가'

  • 잘못된 서버로 접근하여 잘못된 정보 인식 / 잘못된 정보 입력 > 문제점

  • 서버 인증 관련 공격 > DNS 스푸핑, 서버 파밍

  • 예) 윈도우 운영체제를 정품 대신 해킹 프로그램으로 인증하여 사용 > 운영체제가 인증을 위한 요청 시 해당 프로그램을 인증 서버로 생각하고 운영체제를 인증

  • 서버 인증 > 보안 측면에서 막기에 매우 어려운 이슈

  • SSL(HTTPS)을 통해 서버 인증을 하지만, 현재는 경고를 보여주고 사용자에게 선택하게 하는 것이 일반적

1-5. 클라이언트 인증

  • '올바른 클라이언트가 접속을 시도하는가'

  • 클라이언트 인증 관련 공격 > 스푸핑, 세션 하이재킹, 피싱 등

  • 웹 사이트에 접근할 때 항상 사용하는 아이디/패스워드 > 대표적 클라이언트 인증

  • 클라이언트 인증 보안 도구 > 아주 간단한 것부터 보안성이 매우 높은 방법까지 다양하게 존재


(2) 프로토콜 정의

  • '컴퓨터와 컴퓨터 사이에서 메시지를 전달하는 과정'

  • 컴퓨터가 메시지 전달 > 제대로 도착했는지 확인 / 제대로 도착하지 않으면 재전송하는 일련의 방법

 

2-1. 프로토콜 3가지 요소

  • 구문 : 데이터의 구조나 포맷을 의미 > 전송되는 데이터의 어느 부분이 어떤 정보를 포함하는지와 관련

  • 의미 : 전송되는 데이터의 각 부분이 무엇을 뜻하는지 알 수 있게 미리 정해둔 규칙 > 오류 제어, 동기 제어, 흐름 제어를 포함

  • 순서 : 네트워크 통신에서 두 가지 역할 > '어떤 데이터를 보낼 것인가?' , '얼마나 빠르게 데이터를 보낼 것인가?'


(3) 프로토콜 기능

3-1. 주소 설정

  • 서로 다른 시스템의 두 개체가 통신을 하는 경우 필요

  • 한 개체가 상대 개체에게 데이터 전송 시 상대 주소를 알아야 함 > 프로토콜에는 각 전송 계층에 맞게 이를 지정하는 기능 있음

  • 정상이 아닌 변조된 주소 값을 가진 패킷을 보내면 네트워크나 시스템에 혼란을 줌

3-2. 순서 제어

  • 데이터가 전송될 때 일정 크기 데이터 블록을 프로토콜 데이터 단위(PDU)라고 함

  • 프로토콜 데이터 단위 전송 시에 보내는 순서를 명시하는 기능 > 연결 지향형에만 사용

  • 순서 지정 이유 > 전달, 흐름 제어, 오류 제어 등을 위해서

  • 순서가 정해진 각 PDU를 상대 개체에 보냄 > 수신측에서 순서에 맞게 데이터 재구성 / 잘못된 PDU는 재전송 요구

3-3. 데이터 대열의 단편화 및 재조합

  • 대용량 파일을 한 번에 전달하는 것은 불가능 > 단편화 및 재조합 필요

  • 대용량 파일 전송 시에 전송 효율이 높고 작은 단위로 나누어 전송 > 전송받은 시스템에서 이를 재조합 

3-4. 캡슐화

  • 프로토콜 데이터 단위(PDU)는 SDU(전송 데이터), PCI(제어 정보)로 구성

  • PCI에는 송수신자 주소, 오류 검출 코드, 프로토콜 제어 정보 등이 있음

  • 데이터에 제어 정보를 덧붙이는 것을 캡슐화라고 함

  • 어떤 네트워크 통과를 위해 데이터 전송 시에 다른 무언가로 감싸서 보냄 > 네트워크를 통과하면 감싼 부분을 다시 벗겨내어 전송하는 기능

3-5. 연결 제어

  • 두 시스템끼리 서로 데이터 교환 시에 연결을 설정(미설정)하는 것 > 연결(비연결) 지향형 데이터 전송 

  • 연결 지향형 데이터 전송은 연결 설정, 데이터 전송, 연결 해제 총 3단계로 구성 > 데이터 전송 중 연결 지속적 관리

  • 연결 지향형 데이터 전송 > TCP 이용한 연결

  • 연결 제어하는 패킷 이용 > 네트워크 연결 임의로 끊기 / 세션 뺏기 가능

  • 비연결 지향형 데이터 전송 > UDP 이용한 연결 > 전송되는 데이터를 데이터그램이라 함 

3-6. 흐름 제어

  • 송신측 개체로부터 오는 데이터 양이나 속도 조절 기능 > 송신측 / 수신측의 속도 차이 등으로 인한 정보 유실 방지

  • 두 가지 방법(정지-대기 흐름 제어 기법, 슬라이딩 윈도우 기법)이 있음

  • 정지-대기 흐름 제어 기법 > 패킷 하나를 보낸 후 해당 패킷의 응답이 와야 다음 패킷을 보내는 방식

  • 슬라이싱 윈도우 기법 > 가용 데이터 분량 패킷을 한꺼번에 보낸 후 응답 패킷을 받으면 다시 그만큼의 데이터를 한꺼번에 보내는 방식(정지-대기 흐름 제어보다 훨씬 효율적)

3-7. 오류 제어

  • 두 개체에서 데이터 교환 시 SDU나 PCI가 잘못되었을 경우, 이를 발견하는 기법

  • 오류는 패리티 비트나 순환 잉여도 검사를 통해 발견 가능

  • 순서를 검사하거나 특정 시간 안에 받지 못하면 재전송을 요구하는 방식

3-8. 동기화

  • 두 개체 간에 데이터를 전송할 때 각 개체는 특정 타이머 값이나 윈도우 크기 등을 기억해야 함

  • 두 개체가 동시에 정의된 인자 값을 공유하는 것을 동기화라 함

  • 두 개체가 정보를 송수신할 때 서로 호흡을 맞추는 것이라 할 수 있음

3-9. 다중화

  • 통신 선로 하나에서 여러 시스템을 동시에 통신할 수 있는 기법

3-10. 전송 서비스

  • 우선 순위 결정, 서비스 등급과 보안 요구 등을 제어하는 서비스


(4) OSI 7계층

 

[그림 1] OSI 7계층

 

1계층 (물리 계층)

  • 시스템 간의 연결선 > 실제 장치를 연결하는 데 필요한 전기적, 물리적 세부 사항 정의

  • 예 > 핀의 배치나 전압, 전선의 명세

  • 물리 계층 장치 > 허브, 리피터

2계층 (데이터 링크 계층)

  • 점대점 사이의 신뢰성 있는 전송 보장 > CRC 기반 오류 제어, 흐름 제어 필요

  • 네트워크 구성 개체들 사이에 데이터 전달

  • 물리 계층에서 발생할 수 있는 오류 찾기/수정에 필요한 기능적, 절차적 수단 제공

  • 주소 값은 물리적으로 할당 받음 > 네트워크 카드가 만들어질 때부터 맥 주소가 정해져 있음

  • 이더넷, HDLC, ADCCP, 패킷 스위칭 네트워크, LLC, ALOHA 등

  • 데이터 링크 계층 장치 > 브리지, 스위치(물리적 네트워크 선이 직접 연결된 곳에만 연결 가능)

3계층 (네트워크 계층)

  • 여러 노드를 거칠 때마다 경로 찾아주는 역할

  • 다양한 길이 데이터를 네트워크를 통해 전달 > 전송 계층이 요구하는 서비스 품질 제공을 위해 기능적, 절차적 수단 제공

  • 라우팅, 흐름 제어, 단편화, 오류 제어  수행

  • 네트워크 계층 장치 > 라우터, L3 스위치 

4계층 (전송 계층)

  • 양 끝단 사용자들이 신뢰성 있는 데이터를 주고 받을 수 있게 함 > 상위 계층이 데이터 전달의 유효성/효율성 고려 X

  • 시퀀스 넘버 기반의 오류 제어 방식 사용

  • 특정 연결의 유효성 제어

  • 동작 프로토콜 중 TCP는 연결 지향 프로토콜로, 패킷 전송이 유효한지 확인하고 전송에 실패한 패킷은 재전송

5계층 (세션 계층)

  • 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법 제공

  • 동시 송수신 방식, 반이중 방식, 전이중 방식 통신과 함께 체크 포인팅/유휴/종료/재시작 과정 수행

  • TCP/IP 세션을 만들고 없애는 책임을 짐 

6계층 (표현 계층)

  • 다른 기종 여러 시스템들이 서로 다른 데이터 표현 방식을 사용하는 경우 > 하나의 통일된 구문 형식으로 변환시킴

  • 시스템에서 사용되는 코드 간의 번역을 담당 (예 : EBCDIC 인코딩 파일 > ASCII 인코딩 파일로 바꿈)

  • 코드 간의 번역 방식을 ASN.1이라 함 > 응용 계층 간의 서로 다른 표현을 상호 인식하기 위한 정보 정의

  • 데이터 압축, 암호화 기능 수행

  • 데이터 암호화 방식, 압축 방식 설명을 헤더 정보에 붙임

7계층 (응용 계층)

  • 사용자나 응용 프로그램 사이에 데이터 교환을 가능하게 하는 계층

  • HTTP, FTP, 터미널 서비스, 메일 프로그램, 디렉토리 서비스 등 제공


(5) TCP/IP 4계층

 

[그림 2] OSI 7계층과 TCP/IP 4계층

 

5-1. OSI 7계층과 비교

  • 물리 계층, 데이터 링크 계층 > 네트워크 엑세스(인터페이스) 계층

  • 네트워크 계층 > 인터넷 계층

  • 세션 계층, 표현 계층, 응용 계층 > 응용 계층


# References

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B2228799661

'Network' 카테고리의 다른 글

[Network] 응용 계층  (1) 2020.03.19
[Network] 전송 계층  (0) 2020.03.19
[Network] 네트워크 계층  (0) 2020.03.19
[Network] 데이터 링크 계층 (DataLink Layer)  (0) 2020.03.18
[Network] 물리 계층 (Physical Layer)  (0) 2020.03.18

Disk Forensic #24 (Please get my key back!)

 

디스크 포렌식 24번 문제

 

주어진 문제 파일은 확장자가 존재하지 않아 어떤 파일인지 알 수 없습니다.

 

파일의 유형 확인을 위해 리눅스 환경으로 옮겨서 file 명령어를 사용하였습니다.

 

[그림 1] file 명령어 사용

 

file 명령어로 확인 결과, data라는 정보만 나오고 어느 유형인지 내용을 알 수 없습니다.

 

어떤 문자열이 파일에 기록됐는지 HxD를 사용해서 확인하였습니다.

 

[그림 2] HxD 프로그램 실행

 

HxD를 실행하고 파일 내용을 확인해보면 type=firmware라는 문자열이 존재합니다.

 

여기서 중요한 것은, 이 파일은 펌웨어에 관한 파일로 추측할 수 있습니다.

 

펌웨어 데이터가 맞는지 확인을 위해, 다시 리눅스 환경으로 옮긴 다음 binwalk를 사용해서 확인하였습니다.

 

binwalk : 대표적인 펌웨어 분석 툴로, 펌웨어 분석뿐만 아니라 포렌식 시 파일 카빙 등에 사용할 수 있는 유용한 도구 

 

참고 사이트 : https://github.com/ReFirmLabs/binwalk

 

ReFirmLabs/binwalk

Firmware Analysis Tool. Contribute to ReFirmLabs/binwalk development by creating an account on GitHub.

github.com

[그림 3] binwalk 실행

 

binwalk로 파일을 분석하면 해당 파일이 LZMA 방식으로 압축된 SquashFS 데이터인 것을 확인할 수 있습니다.

 

LZMA : 데이터 압축에 쓰이는 알고리즘으로 최대 4GB의 가변 압축 시전 크기를 제공

 

SquashFS : 리눅스에서 사용되는 읽기 전용 파일 시스템으로 주로 임베디드 시스템에서 사용

 

 

펌웨어 이미지 파일 분석을 위해 Firmware-mod-kit 도구를 이용하였습니다.

 

Firmware-mod-kit : 리눅스 기반의 펌웨어 이미지를 다시 빌드하거나 추출하는 유틸리티와 스크립트로 구성된 소프트웨어

 

참조 사이트 : https://github.com/rampageX/firmware-mod-kit/wiki

 

rampageX/firmware-mod-kit

Automatically exported from code.google.com/p/firmware-mod-kit - rampageX/firmware-mod-kit

github.com

 

[그림 4] FMK 프로그램 실행

 

extract-firmware.sh을 실행시켜 분석을 시작합니다.

 

[그림 5] 분석 성공!

 

실행이 종료되면 fmk 폴더에 결과가 만들어집니다.

 

펌웨어 이미지 내부에 있는 데이터들은 rootfs 폴더에 저장됩니다.

 

[그림 6] Key.txt 파일 발견

 

파일 경로 : Firmware-mod-kit\FMK\rootfs\home\dlink

 

 

dlink 폴더에 key.txt 파일이 존재합니다.

 

[그림 7] 플래그 발견

 

파일을 열면 문제에 대한 플래그 확인이 가능합니다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

+ Recent posts