시스템 관리자 및 보안 분석가를 위한 12가지 네트워크 패킷 분석기

네트워크는 비즈니스 운영의 중추입니다. 그 내면 깊숙한 곳에서 무슨 일이 일어나고 있는지 확인하십시오.

여러 면에서 디지털 비즈니스의 환경은 한두 번의 혁명을 겪었습니다. 단순하게 시작한 것 CGI 스크립트 Perl로 작성된 것은 이제 Kubernetes 및 기타 오케스트레이션 프레임워크에서 완전히 자동화된 클러스터 배포로 꽃을 피웠습니다.

일반적인 컨테이너화되고 분산된 최신 웹 애플리케이션(출처: medium.com)

하지만 기본은 여전히 ​​1970년대와 같다는 생각에 미소를 지을 수 없다.

우리가 가진 것은 네트워크를 형성하는 단단하고 물리적인 케이블에 의해 지원되는 추상화에 대한 추상화뿐입니다. 화려하게 만들고 싶다면 OSI 모델에 따라 네트워크를 계층으로 나눌 수 있지만 모든 말과 완료는 우리는 항상 항상 TCP/IP 프로토콜 (경고, 앞으로 많이 읽어야 합니다!), 핑, 라우터, 이 모든 것은 데이터 패킷 전송이라는 하나의 공통된 목표를 가지고 있습니다.

그렇다면 네트워크 패킷이란 무엇입니까?

채팅, 비디오 스트리밍, 게임, 서핑, 물건 구매 등 우리가 무엇을 하든 본질적으로 두 컴퓨터(네트워크) 간의 데이터 패킷 교환입니다. “패킷”은 네트워크(또는 네트워크 간)에서 흐르는 정보의 가장 작은 단위이며 네트워크 패킷을 구성하고 확인하는 잘 정의된 방법이 있습니다(이 기사의 범위를 벗어나지만 모험심이 느껴진다면 여기 ).

네트워크의 패킷 흐름(출처: training.ukdw.ac.id)

간단히 말해서 모든 패킷은 체인의 링크를 나타내며 소스에서 적절하게 전송되고 대상에서 유효성이 검사됩니다. 단일 패킷이 도착하거나 주문하더라도 올바른 순서의 모든 패킷이 수신될 때까지 프로세스가 일시 중단되고 그런 다음에만 원래 표현된 데이터(예: 이미지)를 형성하기 위해 함께 결합됩니다.

이제 네트워크가 무엇인지 이해했으므로 네트워크 분석기가 하는 일을 이해해야 합니다. 네트워크의 개별 패킷을 엿볼 수 있는 도구입니다.

그런데 왜 그 고난을 당하려고 합니까? 다음에 논의해 봅시다.

패킷을 분석해야 하는 이유는 무엇입니까?

원자가 모든 문제의 기초인 것처럼 패킷은 네트워크 데이터 흐름의 기본 빌딩 블록인 것 같습니다. . 그리고 물질이나 가스를 분석할 때 우리는 개별 원자가 하는 일에 대해 전혀 신경 쓰지 않습니다. 그렇다면 개별 수준에서 단일 네트워크 패킷에 대해 걱정하는 이유는 무엇입니까? 우리가 이미 알고 있는 것 외에 무엇을 알 수 있습니까?

한 번도 뒤통수를 맞은 적이 없다면 패킷 수준 분석의 중요성을 팔기 어렵지만 시도해 보겠습니다.

패킷 분석은 손을 더럽히고 무언가를 알아내기 위해 바로 배관에 손을 뻗는 것을 의미합니다. 일반적으로 다른 모든 것이 실패한 경우 네트워크 패킷을 분석해야 합니다. 일반적으로 여기에는 다음과 같이 희망이 없어 보이는 시나리오가 포함됩니다.

  • 명백한 위반이 없음에도 불구하고 비밀 데이터의 설명할 수 없는 손실
  • 증거가 전혀 없는 것 같을 때 느린 애플리케이션 진단
  • 컴퓨터/네트워크가 손상되지 않았는지 확인
  • 공격자가 아닌 것을 증명 또는 반증 편승 당신의 와이파이에서
  • 낮은 트래픽에도 불구하고 서버가 병목 현상을 일으키는 이유 파악

대체로 패킷 분석은 특정 유형의 증거에 속합니다. 패킷 분석 수행 방법을 알고 스냅샷이 있으면 해킹으로 잘못 기소되거나 단순히 무능한 개발자나 네트워크 관리자로 비난받는 일에서 벗어날 수 있습니다.

그것은 모두 두뇌에 관한 것입니다! (출처: 데일리닷닷컴)

실제 이야기에 관해서는 블로그 게시물에 대한이 댓글이 발견 된 것 같습니다. 여기 예외적입니다(경우에 따라 여기에 재현됨):

우리 회사에 중요한 응용 프로그램이 성능 문제를 보여 고객 배포 시 문제가 발생했습니다. 전 세계 금융회사 티커플랜트 대표이사에서 사용하던 주가 어플리케이션이었습니다. 2000년경에 401(k)가 있었다면 아마도 이 애플리케이션에 의존했을 것입니다. 나는 당신이 설명하는 종류, 특히 TCP 동작을 분석했습니다. 나는 이 문제를 OS 벤더의 TCP 구현에 있다고 지적했다. 버그가 있는 동작은 보내는 스택이 정체 제어에 들어갈 때마다 복구되지 않는다는 것입니다. 그 결과 때때로 MSS의 몇 배에 불과한 우스꽝스럽게 작은 전송 창이 생성되었습니다.

문제, 내 설명을 이해하지 못하거나 애플리케이션이 TCP 기계 조작에 대해 무지하기 때문에 애플리케이션에 문제가 *있을 수 없음*을 이해하지 못하는 OS 공급업체의 계정 관리자 및 개발자 지원 담당자와 싸우는 데 시간이 걸렸습니다. 마치 벽에 대고 말하는 것 같았습니다. 나는 모든 전화 회의 때마다 1부터 시작했습니다. 결국 나는 좋은 토론을 할 수 있는 남자와 전화를 걸었다. 그는 RFC1323 확장을 스택에 넣었습니다! 다음날 나는 내 손에 OS에 대한 패치를 가지고 있었고 제품은 그 시점부터 완벽하게 작동했습니다.

  Linux에 Spotify를 설치하는 방법

개발자는 스택이 혼잡 제어에 있을 때 수신되는 ACK *페이로드*가 DUPACK으로 잘못 분류되는 버그가 있다고 설명했습니다.

이것은 HTTP와 같은 반이중 응용 프로그램에서는 발생하지 않지만 내가 지원하는 응용 프로그램은 항상 소켓에서 양방향으로 데이터를 보냈습니다.

그 당시 나는 경영진의 지원을 많이 받지 못했고(내 관리자는 문제를 해결하기 위해 “항상 스니퍼를 사용하고 싶다”고 나에게 소리치기까지 했다), 나 외에는 OS 공급업체의 TCP 구현을 소스로 보고 있지 않았다. 문제의. 혼자서 OS 공급업체로부터 수정 사항과 씨름하는 것은 이 승리를 특히 감미롭게 만들었고, 나 자신의 일을 할 수 있는 엄청난 자본을 얻었고, 내 책상에 나타나는 가장 흥미로운 문제로 이어졌습니다.

당신이 그 텍스트를 읽고 싶지 않은 경우, 또는 그것이 별로 의미가 없다면, 이 신사는 그의 지원에 비난을 받는 성능 문제에 직면했고 예상대로 경영진은 제로 지원을 빌려주고 있었습니다. . 문제가 애플리케이션이 아니라 운영 체제가 네트워킹 프로토콜을 처리하는 방식에 있음을 증명한 것은 철저한 패킷 분석뿐이었습니다!

수정은 응용 프로그램의 조정이 아니라 운영 체제 개발자의 패치였습니다! 😮

소년, 오, 소년 . . . 패킷 수준 분석이 없다면 이 사람은 어디에 있을 것 같습니까? 아마 그의 직장에서. 이것이 패킷 분석(패킷 스니핑이라고도 함)의 중요성을 확신하지 못한다면 어떻게 될지 모르겠습니다. 🙂

이제 패킷 분석이 초강대국이라는 것을 알았으니 좋은 소식이 있습니다. 그렇게 하는 것이 전혀 어렵지 않습니다!

강력하면서도 사용이 간편한 패킷 스니핑 도구 덕분에 패킷 수준 분석에서 정보를 수집하는 것은 판매 대시보드를 읽는 것만큼 쉬울 수 있습니다. 즉, 네트워크 내부에서 일어나는 일에 대한 표면적 지식 이상이 필요합니다. 그러나 다시 말하지만 여기에는 로켓 과학도 없고 숙달해야 할 뒤틀린 논리도 없습니다. 그저 평범한 상식일 뿐입니다.

네트워크에서 사용할 때 이러한 도구 중 하나에 대한 설명서를 읽기 시작하면 곧 전문가가 될 것입니다. 😀

와이어샤크

와이어샤크 1998년에 시작된 오래된 프로젝트로, 네트워크를 깊이 파고드는 데 있어 거의 업계 표준입니다. 몇몇 관대한 후원자들의 후원을 받아 순전히 자원봉사로 운영되는 조직이라는 점을 생각하면 인상적입니다. Wireshark는 오픈 소스로 남아 있습니다(GitHub에는 없지만 코드는 찾을 수 있습니다. 여기) 심지어 기술이 있습니다. 회의 그 이름에!

Wireshark의 다양한 기능은 다음과 같습니다.

  • 수백 가지의 네트워크 프로토콜을 지원합니다.
  • 다양한 파일 형식(tcpdump(libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer®(압축 및 비압축), Sniffer® Pro, NetXray® 등)과 상호 운용 가능합니다.
  • 거의 모든 플랫폼(Linux, Windows, macOS, Solaris, FreeBSD 등)에서 실행됩니다.
  • 이더넷, IEEE 802.11, PPP/HDLC, ATM, 블루투스, USB, 토큰링 등에서 실시간 데이터 읽기.
  • 즉석에서 gzip 압축 해제.
  • 지원되는 다양한 암호 해독 프로토콜(WPA/WPA2, SNMPv3 등)
  • 광범위한 VoIP 분석
  • 더 빠른 시각적 스캔을 위한 색상 지정 규칙

이 환상적인 온라인 과정을 확인하십시오. Wireshark 마스터링 가르쳐주세요.

터미널에서 Wireshark를 찾고 계십니까? 물론입니다. 시도 텀샤크

TCP 덤프

당신이 구식이라면(하드코어 명령줄 중독자 읽기), TCP 덤프 당신을위한 것입니다.

이는 거의 모든 다른 “더 멋진” 도구가 이 도구를 기반으로 구축할 정도로 그 어느 때보다 관련성이 높은 (컬과 같은) 상징적인 Linux 유틸리티 중 하나입니다. 이전에 말했듯이 그래픽 환경은 없지만 도구가 이를 보완하는 것 이상입니다.

그러나 그것을 설치하는 것은 고통스러울 수 있습니다. tcpdump는 대부분의 최신 Linux 배포판에 번들로 제공되지만 그렇지 않은 경우 소스에서 빌드해야 합니다.

tcpdump 명령은 다음과 같은 특정 문제를 해결하기 위한 짧고 간단합니다.

  • 사용 가능한 모든 인터페이스 표시
  • 인터페이스 중 하나만 캡처
  • 캡처한 패킷을 파일에 저장
  • 실패한 패킷만 캡처
  Orcs Must Die를 플레이하는 방법! 2 리눅스에서

. . . 등등.

요구 사항이 간단하고 빠른 검사를 실행해야 하는 경우 tcpdump를 고려할 수 있는 훌륭한 옵션이 될 수 있습니다(특히 tcpdump를 입력하고 이미 설치되어 있는 경우). 실시간 tcpdump 명령 예제는 이 게시물을 확인하세요.

프록시

프록시 네트워크를 통해 TCP 연결을 프록시하는 간단한 오픈 소스 명령줄 도구입니다. Tproxy는 Go 프로그래밍 언어로 작성되었으며 Go 명령줄 도구이며 Go 바이너리로 패키징되어 모든 최신 Linux 및 macOS 플랫폼에서 사용할 수 있습니다.

아래 이미지는 Mysql 연결을 모니터링하는 명령줄을 보여줍니다.

주요 사용 사례는 HTTP 연결을 프록시하고 HTTP 요청의 내용과 응답을 검사하는 것입니다. SOCKS 또는 TCP와 같은 다른 프로토콜을 프록시하는 데에도 사용할 수 있습니다. 두 호스트 간의 TCP 연결을 프록시하거나 라이브 연결의 트래픽을 분석하는 데 사용할 수 있습니다. TCP를 전송 프로토콜로 사용하는 응용 프로그램을 디버깅 및 테스트하고 TCP 프록시 서비스를 구축하는 데 유용합니다.

이것은 사용자가 기본 TCP 프로토콜을 이해할 필요 없이 TCP 연결을 프록시하고 다른 고급 네트워크 분석을 수행할 수 있도록 tcpdump 명령줄 유틸리티에 사용하기 쉬운 인터페이스를 제공하는 것을 목표로 작성되었습니다.

아래 명령줄은 gRPC 연결을 표시합니다.

TCP 프록시 역할을 하여 마치 로컬 시스템에 있는 것처럼 원격 서비스 및 응용 프로그램에 연결할 수 있습니다. TCP를 사용하는 응용 프로그램을 처리할 때 다양한 보안, 문제 해결 및 성능 향상을 허용하는 역방향 TCP 프록시와 유사한 원격 호스트에서 사용자 지정 TCP 서비스를 구축할 수 있습니다.

다음은 Tproxy의 몇 가지 추가 사용법입니다.

  • TCP 연결을 디버깅하고 최적화하는 데 유용합니다.
  • Burp Suite 및 ZAP와 같은 다른 프록시 프로그램의 작동 방식을 이해하는 데에도 유용합니다.
  • 두 호스트 간 또는 호스트와 데이터베이스 또는 웹 서비스와 같은 원격 TCP 서비스 간의 TCP 연결을 프록시하는 데 사용할 수 있습니다.
  • MySQL 연결 및 gRPC 연결을 모니터링하고 Retrans rate 및 RTT 측면에서 연결 안정성을 확인합니다.

대부분의 사용자는 Tproxy가 워크플로를 단순화하고 애플리케이션이나 네트워크 자체를 변경할 필요 없이 복잡한 네트워크 분석을 수행하고 웹 애플리케이션을 분석할 수 있다는 것을 알게 될 것입니다. 도구는 다음에서 다운로드할 수 있습니다. 깃허브.

네트워크마이너

FNAT(Forensic Network Analysis Tool)로 자칭, 네트워크마이너 당신이 접하게 될 최고의 패킷 수준 분석기 중 하나입니다. 네트워크를 수동적으로 분석할 수 있는 오픈 소스 도구이며 개별 이미지 및 전송된 기타 파일을 표시할 수 있는 분석용 GUI 인터페이스가 인상적입니다.

하지만 그게 다가 아닙니다. NetworkMiner는 다음과 같은 뛰어난 기타 기능을 제공합니다.

  • IPv6 지원
  • PCAP 파일 파싱
  • SSL 암호화 트래픽에서 X.509 인증서 추출
  • Pcap-over-IP
  • FTP, TFTP, HTTP, SMB, SMB2, SMTP, POP3 등과 같은 여러 유형의 트래픽과 함께 작동합니다.
  • OS 지문
  • 지역 IP 현지화
  • 명령줄 스크립팅 지원

이러한 기능 중 일부는 상용 버전에서 사용할 수 있습니다.

바이올리니스트

다른 패시브 네트워크 스니퍼와 달리 바이올리니스트 장치와 외부 세계 사이에 위치하므로 일부 설정이 필요합니다(그래서 “Fiddler”라고 이름을 지었나요? 😉 ).

길고 독특한 역사를 가진 사용자 정의 가능한(FiddlerScript 사용) 무료 도구이므로 목표가 상사처럼 HTTP/HTTPS 트래픽을 스니핑하는 것이라면 Fiddler가 올바른 방법입니다.

Fiddler로 할 수 있는 일이 많습니다. 특히 해커 후드티를 입고 싶은 마음이 있다면:

  • 세션 조작: 열려 있는 HTTP 헤더 및 세션 데이터를 추출하여 원하는 방식으로 수정합니다.
  • 보안 테스트: 메시지 가로채기(man-in-the-middle) 공격을 시뮬레이션하고 모든 HTTPS 트래픽의 암호를 해독할 수 있습니다.
  • 성능 테스트: 페이지 로드(또는 API 응답) 시간을 분석하고 응답에서 병목 현상이 발생한 부분을 확인합니다.

길을 잃는다면, 선적 서류 비치 매우 좋고 적극 권장됩니다.

윈덤프

tcpdump의 단순함이 그리워 Windows 시스템으로 가져오고 싶다면 윈덤프. 설치가 완료되면 Linux 시스템에서 유틸리티가 작동하는 것과 동일한 방식으로 “tcpdump”를 입력하여 명령줄에서 작동합니다.

그 자체로는 설치할 것이 없습니다. WinDump는 Pcap 라이브러리 구현이 설치되어 있으면 바로 실행할 수 있는 바이너리입니다(npcap winpcap이 더 이상 개발되지 않으므로 권장됩니다.

  Outlook 일정에 iCalendar 링크를 추가하는 방법

브루트샤크

브루트샤크 PCAP 파일과 같은 네트워크 트래픽을 처리 및 검사하고 네트워크 인터페이스에서 직접 캡처하는 데 사용할 수 있는 효과적인 NFAT(네트워크 포렌식 분석 도구)입니다.

여기에는 TCP 세션 재구성, 네트워크 맵 구축, 강력하게 암호화된 암호의 해시 추출, 해시를 Hashcat 형식으로 변환하여 오프라인에서 무차별 대입 공격을 수행하는 작업이 포함됩니다.

이 프로젝트의 주요 목적은 네트워크 트래픽을 분석하고 약점을 식별하는 책임이 있는 네트워크 관리자와 보안 연구원을 돕는 것입니다.

BruteShark에는 Windows용 GUI(그래픽 사용자 인터페이스) 기반 응용 프로그램과 Linux 및 Windows용 CLI 도구의 두 가지 버전이 있습니다. 이 솔루션에 포함된 일부 프로젝트는 Windows 및 Linux 시스템에서 네트워크 트래픽을 분석하는 데 독립적으로 사용할 수도 있습니다.

BruteShark는 DNS 쿼리 추출, 파일 조각, VoIP 호출 추출(SIP, RTP), 사용자 및 네트워크 노드에 대한 네트워크 다이어그램 구축, Hashcat(NTLM, HTTP-Digest, CRAM-MD5, Kerberos, 등), 비밀번호 및 사용자 이름 검색 및 인코딩.

모든 프로젝트는 플랫폼 간 및 최신 지원을 위해 .Net Standard 및 .Net Core를 통해 구현됩니다. 이 솔루션은 3계층 아키텍처를 제공하며 각 계층에 PL, BLL 및 DAL을 포함한 하나 이상의 프로젝트를 포함합니다.

DAL(Data Access Layer)을 통해 프로젝트는 WinPcap, libpcap과 같은 드라이버 및 SharpPcap과 같은 래퍼 라이브러리를 사용하여 PCAP의 원시 파일을 읽는 데 도움을 줍니다. 마찬가지로 BLL(Business Logic Layer)은 네트워크 정보 분석(TCP, 패킷 등)을 담당하고 PL은 교차 프로젝트를 활용하여 BLL 및 DAL 계층을 모두 나타냅니다.

옴니픽

초당 수많은 MB의 데이터가 흐르는 대규모 네트워크의 경우 다른 모든 사람이 사용하는 도구가 부족할 수 있습니다. 같은 상황에 처했다면, 옴니픽 볼 가치가있을 수 있습니다.

특히 저수준 기능과 포괄적인 대시보드가 ​​모두 필요한 경우 네트워크 분석을 위한 성능, 분석 및 포렌식 도구입니다.

출처: sniffwifi.com

캡사

당신이 걱정하는 것이 Windows 플랫폼이라면, 캡사 진지한 경쟁자이기도 하다. 무료, 표준 및 엔터프라이즈의 세 가지 버전으로 제공되며 각각 기능이 다릅니다.

즉, 무료 버전도 300개 이상의 프로토콜을 지원하고 경고(특정 조건이 충족될 때 트리거됨)와 같은 흥미로운 기능이 있습니다. 표준 제품은 1000개 이상의 프로토콜을 지원하고 대화를 분석하고 패킷 스트림을 재구성할 수 있도록 하는 한 단계 위의 제품입니다.

대체로 Windows 사용자를 위한 확실한 옵션입니다.

이더에이프

강력한 시각화와 오픈 소스가 당신이 추구하는 것이라면, 이더에이프 훌륭한 옵션입니다. 미리 빌드된 바이너리는 소수의 Linux 배포판에서만 사용할 수 있지만 소스는 사용할 수 있으므로(SourceForge 및 GitHub 모두에서) 직접 빌드하는 것은 옵션입니다.

제 생각에 EtherApe를 훌륭하게 만드는 이유는 다음과 같습니다.

  • 다중 노드, 색상으로 구분된 모니터링.
  • ETH_II, 802.2, 803.3, IP, IPv6, ARP, X25L3, REVARP, ATALK, AARP, IPX, VINES, TRAIN, LOOP, VLAN 등과 같은 수많은 패킷 형식 지원 .
  • “와이어” 또는 tcpdump 파일에서 실시간으로 데이터를 읽습니다.
  • 표준 이름 확인 지원
  • 최신 버전부터 GUI가 GTK3로 옮겨져 더 즐거운 경험이 되었습니다.

CommView

Windows 전용 매장이고 우선 지원의 편리함을 중시한다면, CommView 권장됩니다. VoIP 분석, 원격 추적 등과 같은 고급 기능이 내장된 강력한 네트워크 트래픽 분석기입니다.

가장 인상 깊었던 것은 Sniffer®, EtherPeek™, AiroPeek™, Observer®, NetMon, Wireshark/Tcpdump, Wireshark/pcapng, 심지어 일반 16진 덤프와 같은 여러 공개 및 독점 형식에서 사용되는 형식으로 데이터를 내보내는 기능입니다. .

와이파이 익스플로러

목록의 마지막은 와이파이 익스플로러, Windows용 무료 버전과 Windows 및 macOS용 Standard 버전이 있습니다. WiFi 네트워크 분석이 필요한 전부라면(요즘은 거의 표준임), Wifi Explorer는 삶을 쉽게 만들어 줄 것입니다.

네트워크의 핵심을 바로 절단할 수 있는 아름답게 디자인되고 기능이 풍부한 도구입니다.

존경하는 말: 내가 우연히 발견한 macOS 전용 네트워크 분석기를 언급하지 않고 이 게시물을 닫는 것은 실례가 될 것입니다 — 리틀 스니치. 방화벽이 내장되어 있으므로 모든 트래픽을 즉시 완벽하게 제어할 수 있는 추가 이점이 있습니다(이는 고통스러워 보일 수 있지만 장기적으로는 엄청난 이득입니다).

무엇 향후 계획?

또한 더 나은 인프라 가시성을 위해 이러한 네트워크 모니터링 소프트웨어를 탐색해야 합니다. 네트워크 및 보안 분야에서 경력을 쌓고 싶다면 다음 중 일부를 확인하십시오. 여기 최고의 온라인 과정.