소개
사이버 보안 분야에서 의심스러운 네트워크 활동을 이해하고 식별하는 것은 안전하고 탄력적인 네트워크 인프라를 유지하는 데 매우 중요합니다. 이 튜토리얼에서는 강력한 네트워크 프로토콜 분석기인 Wireshark 를 사용하여 네트워크 환경에서 잠재적인 위협을 감지하고 분석하는 과정을 안내합니다.
사이버 보안 분야에서 의심스러운 네트워크 활동을 이해하고 식별하는 것은 안전하고 탄력적인 네트워크 인프라를 유지하는 데 매우 중요합니다. 이 튜토리얼에서는 강력한 네트워크 프로토콜 분석기인 Wireshark 를 사용하여 네트워크 환경에서 잠재적인 위협을 감지하고 분석하는 과정을 안내합니다.
Wireshark 는 강력한 오픈 소스 네트워크 프로토콜 분석기 (network protocol analyzer) 로, 네트워크에서 실시간으로 오가는 데이터를 캡처하고 검사할 수 있습니다. 보안 전문가들은 다음과 같은 목적으로 Wireshark 를 사용합니다.
Ubuntu 시스템에 Wireshark 를 설치하는 것으로 시작해 보겠습니다. 터미널을 열고 다음 명령을 실행합니다.
sudo apt update
sudo apt install -y wireshark
설치 과정에서 비 - 슈퍼유저 (non-superusers) 가 패킷을 캡처할 수 있도록 할지 묻는 메시지가 표시됩니다. 이 랩 환경에서는 편의를 위해 "Yes"를 선택하십시오.
설치는 몇 분 정도 걸릴 수 있습니다. 완료되면 Wireshark 가 성공적으로 설치되었음을 나타내는 출력을 볼 수 있습니다.
Wireshark 를 root 권한으로 실행하지 않고 패킷을 캡처하려면 사용자를 wireshark 그룹에 추가해야 합니다.
sudo usermod -a -G wireshark $USER
변경 사항을 적용하려면 로그아웃하고 다시 로그인해야 하지만, 이 랩에서는 다음 명령으로 변경 사항을 즉시 적용할 수 있습니다.
newgrp wireshark
Wireshark 가 올바르게 설치되었는지 확인해 보겠습니다.
wireshark --version
다음과 유사한 출력을 볼 수 있습니다.
Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)
Copyright 1998-2022 Gerald Combs <gerald@wireshark.org> and contributors.
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiled (64-bit) with Qt 5.15.3, with libpcap, with POSIX capabilities
(Linux), with libnl 3, with Lua 5.2.4, with GLib 2.72.1, with zlib 1.2.11,
with Snappy, with libpcap 1.10.1, with GNUTLS 3.7.3, with Gcrypt 1.9.4.
이제 그래픽 인터페이스로 Wireshark 를 시작해 보겠습니다.
wireshark &
Wireshark 애플리케이션이 새 창에서 열립니다. 패킷 캡처에 사용할 수 있는 네트워크 인터페이스 목록이 있는 메인 인터페이스가 표시됩니다.
Wireshark 사용자 인터페이스에 익숙해지십시오.
다음 단계에서는 Wireshark 를 사용하여 네트워크 트래픽을 캡처하는 방법을 배우겠습니다.
네트워크 트래픽을 캡처하기 전에, 어떤 네트워크 인터페이스를 모니터링해야 하는지 이해해야 합니다. 일반적인 시스템에는 여러 인터페이스가 있을 수 있습니다.
eth0 또는 ens33: 이더넷 (유선) 연결wlan0: Wi-Fi 연결lo: 루프백 인터페이스 (로컬 트래픽)시스템에서 사용 가능한 네트워크 인터페이스를 확인해 보겠습니다.
ip a
이 명령은 모든 네트워크 인터페이스를 표시합니다. eth0, ens33 또는 기타 네트워크 인터페이스 (정확한 이름은 시스템 구성에 따라 다름) 와 같은 인터페이스를 찾으십시오.
분석할 네트워크 트래픽이 있는지 확인하기 위해 몇 가지 웹 요청을 수행하여 기본적인 HTTP 트래픽을 생성해 보겠습니다.
## 캡처를 저장할 디렉토리 생성
mkdir -p ~/wireshark_lab
## HTTP 트래픽 생성
curl -s http://example.com > /dev/null
curl -s http://google.com > /dev/null
이제 Wireshark 를 사용하여 네트워크 트래픽을 캡처해 보겠습니다.
wireshark &
Wireshark 메인 창에서 기본 네트워크 인터페이스 (아마도 eth0 또는 ens33 - 앞서 ip a 명령으로 식별한 인터페이스 사용) 를 찾습니다.
패킷 캡처를 시작하려면 네트워크 인터페이스를 두 번 클릭합니다.
캡처되는 대로 메인 창에 패킷이 표시되기 시작합니다.
Wireshark 가 캡처하는 동안 더 많은 네트워크 트래픽을 생성해 보겠습니다.
## 새 터미널 창을 열고 실행합니다.
ping -c 5 google.com
Wireshark 로 돌아가면 ICMP ping 패킷이 캡처에 나타나는 것을 볼 수 있습니다.
캡처를 중지하려면 도구 모음에서 빨간색 사각형 버튼을 클릭하거나 Capture > Stop으로 이동합니다.
이제 일부 네트워크 트래픽을 캡처했으므로 추가 분석을 위해 저장해 보겠습니다.
Wireshark 에서 File > Save를 선택하거나 Ctrl+S를 누릅니다.
앞서 생성한 ~/wireshark_lab 디렉토리로 이동합니다.
파일 이름을 basic_capture.pcapng로 지정하고 Save를 클릭합니다.
## 캡처 파일이 저장되었는지 확인
ls -la ~/wireshark_lab/
출력에서 basic_capture.pcapng 파일을 볼 수 있습니다.
저장된 캡처 파일을 여는 연습을 해보겠습니다.
Wireshark 에서 File > Open을 선택하거나 Ctrl+O를 누릅니다.
~/wireshark_lab/basic_capture.pcapng로 이동하여 엽니다.
캡처된 패킷이 이제 Wireshark 에 표시되어 분석할 준비가 되었습니다.
다음 단계에서는 이 캡처된 트래픽을 필터링하고 분석하여 특정 유형의 네트워크 활동을 식별하는 방법을 배우겠습니다.
Wireshark 디스플레이 필터를 사용하면 특정 기준과 일치하는 패킷만 볼 수 있습니다. 이는 관련 정보를 찾기 위해 대규모 패킷 캡처를 분석할 때 필수적입니다.
Wireshark 디스플레이 필터의 기본 구문은 다음과 같습니다.
protocol.field == value
예를 들어:
ip.addr == 192.168.1.1 - 이 IP 주소를 가진 패킷을 표시합니다.tcp.port == 80 - TCP 포트 80 을 사용하는 패킷을 표시합니다.http - 모든 HTTP 패킷을 표시합니다.캡처된 트래픽에 몇 가지 기본 필터를 적용하는 연습을 해보겠습니다.
wireshark ~/wireshark_lab/basic_capture.pcapng &
패킷 목록 상단에서 필터 바를 찾습니다 (비어 있을 때는 "Apply a display filter..."라고 표시됩니다).
DNS 트래픽을 필터링해 보겠습니다. 필터 바에 다음을 입력합니다.
dns
이제 디스플레이에 DNS 패킷만 표시됩니다. 이는 도메인 이름 확인 요청 및 응답입니다.
http
필터를 적용하고 HTTP 패킷을 관찰합니다.
ip.addr == [replace_with_an_ip_from_your_capture]
예: ip.addr == 93.184.216.34 (example.com 으로의 트래픽이 보이는 경우)
논리 연산자를 사용하여 필터를 결합할 수 있습니다.
&& 또는 and는 AND 연산에 사용됩니다.|| 또는 or는 OR 연산에 사용됩니다.! 또는 not은 NOT 연산에 사용됩니다.결합된 필터를 사용해 보겠습니다.
http && ip.addr == [replace_with_an_ip_from_your_capture]
이렇게 하면 지정된 IP 주소로/에서만 HTTP 트래픽이 표시됩니다.
TCP 트래픽에 대한 필터를 생성하고 저장해 보겠습니다.
tcp
필터를 적용합니다. TCP 패킷만 표시되어야 합니다.
이 필터를 나중에 사용하기 위해 저장해 보겠습니다. 필터 바 오른쪽에 있는 "+" 버튼을 클릭합니다.
나타나는 대화 상자에서 다음을 입력합니다.
TCP Traffictcp"Save"를 클릭하여 이 필터를 저장합니다.
Wireshark 는 캡처에서 프로토콜을 시각적으로 표시하는 데 도움이 됩니다.
Statistics > Protocol Hierarchy로 이동합니다.
이는 프로토콜을 백분율 및 패킷 수로 분류하여 보여줍니다.
검토가 완료되면 이 창을 닫습니다.
필터링된 캡처 보기를 저장해 보겠습니다.
원하는 필터 (예: http 또는 dns) 를 적용합니다.
File > Export Specified Packets로 이동합니다.
"Packet Range" 섹션에서 "Displayed"가 선택되어 있는지 확인합니다.
~/wireshark_lab/로 이동하여 filtered_capture.pcapng로 저장합니다.
파일이 저장되었는지 확인합니다.
ls -la ~/wireshark_lab/
원본 및 필터링된 캡처 파일이 모두 표시되어야 합니다.
다음 단계에서는 이러한 필터링 기술을 사용하여 의심스러운 네트워크 활동을 식별합니다.
보안 목적으로 네트워크 트래픽을 분석할 때 특정 패턴과 동작은 의심스럽거나 악의적인 활동을 나타낼 수 있습니다.
학습 목적으로 Wireshark 로 감지할 수 있는 몇 가지 의심스러운 네트워크 활동을 시뮬레이션해 보겠습니다.
## 보안 분석을 위한 디렉토리 생성
mkdir -p ~/wireshark_lab/security_analysis
## 포트 스캔 시뮬레이션 (데모를 위해 몇 개의 포트로 제한)
nmap -p 80,443,22,21,25 scanme.nmap.org > ~/wireshark_lab/security_analysis/scan_results.txt 2>&1
참고: 위의 nmap 명령은 nmap 테스트를 위해 특별히 설정된 scanme.nmap.org 서버의 일반적인 포트에 대한 스캔을 수행합니다.
wireshark &
Wireshark 에서 기본 네트워크 인터페이스를 두 번 클릭하여 캡처를 시작합니다.
별도의 터미널에서 시뮬레이션 명령을 실행합니다.
## 캡처하는 동안 다른 포트 스캔 시뮬레이션
nmap -p 80,443,22,21,25 scanme.nmap.org > /dev/null 2>&1
명령이 완료되면 빨간색 사각형 버튼을 클릭하여 Wireshark 캡처를 중지합니다.
이 캡처를 ~/wireshark_lab/security_analysis/ 디렉토리에 suspicious_traffic.pcapng로 저장합니다.
포트 스캔은 공격자가 시스템에서 실행 중인 서비스를 발견하기 위해 사용하는 일반적인 정찰 기술입니다. 캡처에서 포트 스캔 활동을 식별해 보겠습니다.
tcp.flags.syn == 1 && tcp.flags.ack == 0
이 필터는 연결을 시작하는 데 사용되는 TCP SYN 패킷을 표시합니다. 동일한 호스트의 서로 다른 포트에 대한 이러한 패킷이 많으면 포트 스캔을 나타냅니다.
tcp.flags.syn == 1 && tcp.flags.ack == 0 && ip.addr contains scanme.nmap.org
간단한 보안 분석 보고서에 결과를 문서화해 보겠습니다.
## 보고서 파일 생성
nano ~/wireshark_lab/security_analysis/security_report.txt
파일에 다음 내용을 추가합니다.
보안 분석 보고서
=======================
날짜: [현재 날짜]
결과:
1. 포트 스캔 활동 감지됨
- 소스: [사용자 IP 주소]
- 대상: scanme.nmap.org
- 대상 포트: 80, 443, 22, 21, 25
- 증거: 여러 포트에 대한 TCP SYN 패킷
2. 분석 방법:
- Wireshark를 사용하여 네트워크 트래픽 캡처
- 필터 적용: tcp.flags.syn == 1 && tcp.flags.ack == 0
- 체계적인 연결 시도 패턴 식별
3. 권장 조치:
- 무단 스캔 활동 모니터링
- 아웃바운드 스캔을 제한하는 방화벽 규칙 구현
- 네트워크 침입 탐지 시스템 구현 고려
Ctrl+O를 누른 다음 Enter를 눌러 파일을 저장하고 Ctrl+X로 nano 를 종료합니다.
잠재적인 보안 문제를 감지하기 위한 사용자 지정 필터를 만들어 보겠습니다.
(tcp.flags.syn == 1 && tcp.flags.ack == 0) || (dns.qry.type == 1 && dns.qry.name contains "suspicious") || (http.request && ip.addr == 192.168.0.1)
이 복잡한 필터는 다음을 찾습니다.
이 필터를 저장합니다.
Security Monitoring향후 사용을 위해 이 필터 구성을 내보냅니다.
## 먼저 저장된 필터를 찾으려면 Wireshark 프로필 디렉토리를 엽니다.
ls -la ~/.config/wireshark/
보안 분석 아티팩트를 확인해 보겠습니다.
## 생성한 모든 파일 나열
ls -la ~/wireshark_lab/security_analysis/
다음이 표시됩니다.
scan_results.txt - nmap 스캔의 출력suspicious_traffic.pcapng - 의심스러운 활동의 Wireshark 캡처security_report.txt - 분석 보고서이러한 파일은 기본적인 사이버 보안 분석 워크플로우를 나타냅니다.
실제 보안 환경에서는 탐지 기술을 계속 개선하고, 더 정교한 필터를 만들고, 포괄적인 위협 감지 및 대응을 위해 Wireshark 분석을 다른 보안 도구와 통합합니다.
이 랩에서는 사이버 보안에서 널리 사용되는 강력한 네트워크 프로토콜 분석기인 Wireshark 에 대한 실질적인 경험을 얻었습니다. 다음을 수행하는 방법을 배웠습니다.
이러한 기술은 사이버 보안을 위한 네트워크 트래픽 분석의 기초를 형성합니다. Wireshark 를 효과적으로 사용하는 방법을 이해함으로써 네트워크 트래픽을 모니터링하고, 이상 징후를 감지하며, 심각한 피해를 입히기 전에 잠재적인 보안 위협을 식별할 수 있습니다.
사이버 보안 여정을 계속 진행하면서 이러한 기본 사항을 기반으로 더 발전된 필터링 기술을 배우고, 사용자 지정 탐지 규칙을 개발하고, Wireshark 를 다른 보안 도구와 통합하여 포괄적인 네트워크 모니터링 솔루션을 만들 수 있습니다.