사이버 보안에서 Wireshark 를 사용하여 의심스러운 네트워크 활동 식별하는 방법

WiresharkAdvanced
지금 연습하기

소개

사이버 보안 분야에서 의심스러운 네트워크 활동을 이해하고 식별하는 것은 안전하고 탄력적인 네트워크 인프라를 유지하는 데 매우 중요합니다. 이 튜토리얼에서는 강력한 네트워크 프로토콜 분석기인 Wireshark 를 사용하여 네트워크 환경에서 잠재적인 위협을 감지하고 분석하는 과정을 안내합니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 고급 레벨의 실험이며 완료율은 15%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

Wireshark 설치 및 설정

Wireshark 란 무엇인가?

Wireshark 는 강력한 오픈 소스 네트워크 프로토콜 분석기 (network protocol analyzer) 로, 네트워크에서 실시간으로 오가는 데이터를 캡처하고 검사할 수 있습니다. 보안 전문가들은 다음과 같은 목적으로 Wireshark 를 사용합니다.

  • 네트워크 트래픽 모니터링
  • 네트워크 문제 해결
  • 의심스러운 활동 감지
  • 프로토콜 세부 정보 분석
  • 잠재적인 보안 위협 식별

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 사용자 인터페이스에 익숙해지십시오.

  1. 상단 섹션은 사용 가능한 네트워크 인터페이스를 표시합니다.
  2. 중간 섹션 (현재 비어 있음) 은 캡처된 패킷을 표시합니다.
  3. 상단의 필터 바를 사용하여 표시된 패킷을 필터링할 수 있습니다.
  4. 다양한 메뉴와 도구 모음은 추가 기능을 제공합니다.

다음 단계에서는 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 를 사용하여 네트워크 트래픽을 캡처해 보겠습니다.

  1. Wireshark 가 아직 실행 중이지 않은 경우 시작합니다.
wireshark &
  1. Wireshark 메인 창에서 기본 네트워크 인터페이스 (아마도 eth0 또는 ens33 - 앞서 ip a 명령으로 식별한 인터페이스 사용) 를 찾습니다.

  2. 패킷 캡처를 시작하려면 네트워크 인터페이스를 두 번 클릭합니다.

  3. 캡처되는 대로 메인 창에 패킷이 표시되기 시작합니다.

    • 상단 창에는 패킷 목록이 표시됩니다.
    • 중간 창에는 선택한 패킷의 세부 정보가 표시됩니다.
    • 하단 창에는 선택한 패킷의 원시 데이터가 16 진수 및 ASCII 형식으로 표시됩니다.
  4. Wireshark 가 캡처하는 동안 더 많은 네트워크 트래픽을 생성해 보겠습니다.

## 새 터미널 창을 열고 실행합니다.
ping -c 5 google.com
  1. Wireshark 로 돌아가면 ICMP ping 패킷이 캡처에 나타나는 것을 볼 수 있습니다.

  2. 캡처를 중지하려면 도구 모음에서 빨간색 사각형 버튼을 클릭하거나 Capture > Stop으로 이동합니다.

캡처된 트래픽 저장

이제 일부 네트워크 트래픽을 캡처했으므로 추가 분석을 위해 저장해 보겠습니다.

  1. Wireshark 에서 File > Save를 선택하거나 Ctrl+S를 누릅니다.

  2. 앞서 생성한 ~/wireshark_lab 디렉토리로 이동합니다.

  3. 파일 이름을 basic_capture.pcapng로 지정하고 Save를 클릭합니다.

## 캡처 파일이 저장되었는지 확인
ls -la ~/wireshark_lab/

출력에서 basic_capture.pcapng 파일을 볼 수 있습니다.

저장된 캡처 열기

저장된 캡처 파일을 여는 연습을 해보겠습니다.

  1. Wireshark 에서 File > Open을 선택하거나 Ctrl+O를 누릅니다.

  2. ~/wireshark_lab/basic_capture.pcapng로 이동하여 엽니다.

캡처된 패킷이 이제 Wireshark 에 표시되어 분석할 준비가 되었습니다.

다음 단계에서는 이 캡처된 트래픽을 필터링하고 분석하여 특정 유형의 네트워크 활동을 식별하는 방법을 배우겠습니다.

기본 필터를 사용한 네트워크 트래픽 분석

Wireshark 디스플레이 필터 이해

Wireshark 디스플레이 필터를 사용하면 특정 기준과 일치하는 패킷만 볼 수 있습니다. 이는 관련 정보를 찾기 위해 대규모 패킷 캡처를 분석할 때 필수적입니다.

Wireshark 디스플레이 필터의 기본 구문은 다음과 같습니다.

protocol.field == value

예를 들어:

  • ip.addr == 192.168.1.1 - 이 IP 주소를 가진 패킷을 표시합니다.
  • tcp.port == 80 - TCP 포트 80 을 사용하는 패킷을 표시합니다.
  • http - 모든 HTTP 패킷을 표시합니다.

기본 디스플레이 필터 적용

캡처된 트래픽에 몇 가지 기본 필터를 적용하는 연습을 해보겠습니다.

  1. 이전에 저장한 캡처 파일로 Wireshark 가 열려 있는지 확인합니다. 그렇지 않은 경우 엽니다.
wireshark ~/wireshark_lab/basic_capture.pcapng &
  1. 패킷 목록 상단에서 필터 바를 찾습니다 (비어 있을 때는 "Apply a display filter..."라고 표시됩니다).

  2. DNS 트래픽을 필터링해 보겠습니다. 필터 바에 다음을 입력합니다.

dns
  1. Enter 키를 누르거나 파란색 화살표 버튼을 클릭하여 필터를 적용합니다.

이제 디스플레이에 DNS 패킷만 표시됩니다. 이는 도메인 이름 확인 요청 및 응답입니다.

  1. 이제 HTTP 트래픽을 필터링해 보겠습니다.
http

필터를 적용하고 HTTP 패킷을 관찰합니다.

  1. 특정 IP 주소를 필터링해 보겠습니다. 먼저 소스 또는 대상 열을 보고 캡처에서 IP 주소를 식별합니다. 그런 다음 다음과 같은 필터를 적용합니다.
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 트래픽에 대한 필터를 생성하고 저장해 보겠습니다.

  1. 필터 바에 다음을 입력합니다.
tcp
  1. 필터를 적용합니다. TCP 패킷만 표시되어야 합니다.

  2. 이 필터를 나중에 사용하기 위해 저장해 보겠습니다. 필터 바 오른쪽에 있는 "+" 버튼을 클릭합니다.

  3. 나타나는 대화 상자에서 다음을 입력합니다.

    • 필터 이름: TCP Traffic
    • 필터 문자열: tcp
  4. "Save"를 클릭하여 이 필터를 저장합니다.

프로토콜 계층 구조 분석

Wireshark 는 캡처에서 프로토콜을 시각적으로 표시하는 데 도움이 됩니다.

  1. Statistics > Protocol Hierarchy로 이동합니다.

  2. 이는 프로토콜을 백분율 및 패킷 수로 분류하여 보여줍니다.

  3. 검토가 완료되면 이 창을 닫습니다.

필터링된 결과 저장

필터링된 캡처 보기를 저장해 보겠습니다.

  1. 원하는 필터 (예: http 또는 dns) 를 적용합니다.

  2. File > Export Specified Packets로 이동합니다.

  3. "Packet Range" 섹션에서 "Displayed"가 선택되어 있는지 확인합니다.

  4. ~/wireshark_lab/로 이동하여 filtered_capture.pcapng로 저장합니다.

  5. 파일이 저장되었는지 확인합니다.

ls -la ~/wireshark_lab/

원본 및 필터링된 캡처 파일이 모두 표시되어야 합니다.

다음 단계에서는 이러한 필터링 기술을 사용하여 의심스러운 네트워크 활동을 식별합니다.

의심스러운 네트워크 활동 식별

의심스러운 네트워크 활동의 일반적인 지표

보안 목적으로 네트워크 트래픽을 분석할 때 특정 패턴과 동작은 의심스럽거나 악의적인 활동을 나타낼 수 있습니다.

  1. 비정상적인 포트 사용: 일반적이지 않은 포트 또는 잘 알려진 멀웨어 포트의 트래픽
  2. 과도한 DNS 쿼리: DNS 터널링 또는 데이터 유출을 나타낼 수 있습니다.
  3. 암호화되지 않은 자격 증명: 일반 텍스트로 전송된 암호
  4. 포트 스캔: 서로 다른 포트에 대한 여러 연결 시도
  5. 비정상적인 데이터 패턴: Base64 로 인코딩된 페이로드 또는 예상되지 않은 암호화된 트래픽
  6. 알려진 악성 IP 에 대한 연결 시도: 블랙리스트에 있는 주소로/에서 트래픽

의심스러운 활동 시뮬레이션

학습 목적으로 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 서버의 일반적인 포트에 대한 스캔을 수행합니다.

의심스러운 트래픽 캡처 및 분석

  1. 주 네트워크 인터페이스에서 새 Wireshark 캡처를 시작합니다.
wireshark &
  1. Wireshark 에서 기본 네트워크 인터페이스를 두 번 클릭하여 캡처를 시작합니다.

  2. 별도의 터미널에서 시뮬레이션 명령을 실행합니다.

## 캡처하는 동안 다른 포트 스캔 시뮬레이션
nmap -p 80,443,22,21,25 scanme.nmap.org > /dev/null 2>&1
  1. 명령이 완료되면 빨간색 사각형 버튼을 클릭하여 Wireshark 캡처를 중지합니다.

  2. 이 캡처를 ~/wireshark_lab/security_analysis/ 디렉토리에 suspicious_traffic.pcapng로 저장합니다.

포트 스캔 감지

포트 스캔은 공격자가 시스템에서 실행 중인 서비스를 발견하기 위해 사용하는 일반적인 정찰 기술입니다. 캡처에서 포트 스캔 활동을 식별해 보겠습니다.

  1. 서로 다른 포트에 대한 연결 시도를 보려면 필터를 적용합니다.
tcp.flags.syn == 1 && tcp.flags.ack == 0

이 필터는 연결을 시작하는 데 사용되는 TCP SYN 패킷을 표시합니다. 동일한 호스트의 서로 다른 포트에 대한 이러한 패킷이 많으면 포트 스캔을 나타냅니다.

  1. nmap 스캔과 관련된 트래픽에 집중하려면 대상 도메인에 대한 필터를 추가할 수 있습니다.
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 를 종료합니다.

의심스러운 활동에 대한 사용자 지정 필터 생성

잠재적인 보안 문제를 감지하기 위한 사용자 지정 필터를 만들어 보겠습니다.

  1. Wireshark 에서 다음 필터를 입력합니다.
(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)

이 복잡한 필터는 다음을 찾습니다.

  • 포트 스캔 활동 (ACK 없는 SYN 패킷)
  • "suspicious"를 포함하는 도메인에 대한 DNS 쿼리
  • IP 192.168.0.1 로/에서 HTTP 요청
  1. 이 필터를 저장합니다.

    • 필터 바의 오른쪽 끝에 있는 "+" 버튼을 클릭합니다.
    • 이름: Security Monitoring
    • 필터 문자열: (위의 필터를 붙여넣기)
    • "Save"를 클릭합니다.
  2. 향후 사용을 위해 이 필터 구성을 내보냅니다.

## 먼저 저장된 필터를 찾으려면 Wireshark 프로필 디렉토리를 엽니다.
ls -la ~/.config/wireshark/

보안 분석 요약

보안 분석 아티팩트를 확인해 보겠습니다.

## 생성한 모든 파일 나열
ls -la ~/wireshark_lab/security_analysis/

다음이 표시됩니다.

  • scan_results.txt - nmap 스캔의 출력
  • suspicious_traffic.pcapng - 의심스러운 활동의 Wireshark 캡처
  • security_report.txt - 분석 보고서

이러한 파일은 기본적인 사이버 보안 분석 워크플로우를 나타냅니다.

  1. 의심스러운 트래픽 캡처
  2. 적절한 필터를 사용하여 트래픽 분석
  3. 결과 및 권장 사항 문서화

실제 보안 환경에서는 탐지 기술을 계속 개선하고, 더 정교한 필터를 만들고, 포괄적인 위협 감지 및 대응을 위해 Wireshark 분석을 다른 보안 도구와 통합합니다.

요약

이 랩에서는 사이버 보안에서 널리 사용되는 강력한 네트워크 프로토콜 분석기인 Wireshark 에 대한 실질적인 경험을 얻었습니다. 다음을 수행하는 방법을 배웠습니다.

  1. Ubuntu 에 Wireshark 를 설치하고 설정합니다.
  2. 다양한 인터페이스에서 네트워크 트래픽을 캡처합니다.
  3. 특정 유형의 네트워크 트래픽을 분석하기 위해 필터를 적용합니다.
  4. 포트 스캔과 같은 잠재적인 의심스러운 활동을 식별합니다.
  5. 보안 분석 보고서에 결과를 문서화합니다.

이러한 기술은 사이버 보안을 위한 네트워크 트래픽 분석의 기초를 형성합니다. Wireshark 를 효과적으로 사용하는 방법을 이해함으로써 네트워크 트래픽을 모니터링하고, 이상 징후를 감지하며, 심각한 피해를 입히기 전에 잠재적인 보안 위협을 식별할 수 있습니다.

사이버 보안 여정을 계속 진행하면서 이러한 기본 사항을 기반으로 더 발전된 필터링 기술을 배우고, 사용자 지정 탐지 규칙을 개발하고, Wireshark 를 다른 보안 도구와 통합하여 포괄적인 네트워크 모니터링 솔루션을 만들 수 있습니다.