네트워크 및 보안/SharpPcap

[네트워크 보안] 1. SharpPcap 설치 및 테스트

언제나휴일 2016. 5. 18. 13:49
반응형

[네트워크 보안] 1. SharpPcap 설치 및 테스트



안녕하세요. 언제나 휴일, 언휴예요.


다양한 서비스들이 온라인을 통해 제공하는 것이 점차 많아지고 개인 정보들이 여러 서비스에서 사용하면서 네트워크 보안의 중요성은 점점 관심을 갖고 있죠.


20여년 전에도 TCPDUMP 유틸리티를 이용하여 네트워크 트래픽을 모니터링하는 작업은 심심치 않게 많은 엔지니어들이 했었어요. 지금은 많은 기술 발전에 의해 와이어샤크 처럼 네트워크 트래픽을 추적하는 무료 소프트웨어에서부터 다양한 DMZ를 형성하는 장비 등이 나와 있죠. 


언제나 휴일 티스토리에서는 다양한 환경에서 다양한 기술을 사용하여 네트워크 보안에 관한 글들을 게시할 예정입니다. 그리고 출발점에서 네트워크 프로토콜을 정리하고 이를 분석하는 유틸 개발하는 방법을 게시하고 있습니다.


이와 함께 Pcap 라이브러리를 이용하여 네트워크 트래픽을 추적하고 분석하는 프로그래밍 게시글을 작성할 거예요.


그 중에 SharpPcap 카테고리에서는 Pcap 라이브러리의 윈도우즈 운영체제 버전인 WinPcap 라이브러리를 C# 언어로 개발할 수 있게 래핑한 라이브러리 SharpPcap을 사용하여 프로그래밍 하는 방법을 게시할 거예요.


이번 게시글에서는 SharpPcap 라이브러리를 설치하고 이를 테스트하는 간단한 프로그램을 작성하는 방법을 소개할게요.


먼저 SharpPcap 사이트에서 라이브러리를 다운로드 받아야겠죠.

SharpPcap 다운로드 사이트


Download를 누르면 다음처럼 알아서 다운로드를 시작합니다.

SharpPcap 다운로드


다운로드한 파일을 압축풀기를 하세요.

SharpPcap 다운로드 파일 압축풀기


압축을 풀고 폴더에 들어가면 다음과 같은 파일 목록을 확인할 수 있습니다.


이제 Visual Studio에서 SharpPcap을 이용하는 응용 프로그램을 만들어 보기로 해요. 여기에서는 간단히 네트워크 인터페이스 목록을 콘솔화면에 출력하는 응용을 작성할 거예요. 여기에서는 Visual Stdio 2015를 사용하는 것을 보여주지만 여러분의 개발 환경이 이와 다르다고 하더라도 실습하는데 큰 차이는 발생하지 않아요.

SharpPcap을 이용하는 콘솔 응용 프로그램 생성


솔루션 창에서 SharpPcap 닷넷 어셈블리를 참조 추가해야겠죠.

SharpPcap 닷넷 어셈블리 참조 추가


참조 관리자에서 찾아보기를 누르세요.

참조 관리자에서 찾아보기


앞에서 SharpPcap 라이브러리를 다운로드하여 압축 해제한 폴더에서 두 개의 dll 파일을 추가하세요.

PacketDotNet.dll과 SharpPcap.dll 어셈블리 참조 추가


그리고 확인을 누르세요.

참조 추가 확인


이제 간단하게 SharpPcap 라이브러리를 제대로 설치하였는지 테스트하기 위한 코드를 작성해 보기로 해요.



SharpPcap 클래스의 정적 속성 VersionString을 참조하여 버전 정보를 출력합시다.

string ver = SharpPcap.Version.VersionString;

Console.WriteLine("SharpPcap {0} Test...", ver);


그리고 네트워크 트래픽을 추적할 네트워크 인터페이스 목록을 확인하기로 해요. CaptureDeviceList 클래스의 정적 속성 Instance로 장치 목록을 참조할 수 있어요.

//추적할 수 있는 네트워크 인터페이스 목록 참조

CaptureDeviceList devices = CaptureDeviceList.Instance;


만약 장치 목록이 없다면 메시지를 출력하고 프로그램을 종료합시다.

//목록의 개수가 0일 때 메시지 출력 및 종료

if (devices.Count == 0)

{

    Console.WriteLine("추적할 수 있는 네트워크 인터페이스 장치를 찾을 수 없습니다.");

    return;

}


장치 목록을 출력하세요.

//네트워크 인터페이스 목록 출력

Console.WriteLine("추적 목록");

foreach (ICaptureDevice dev in devices)

{

    Console.WriteLine("{0}", dev);

} 


이와 같이 작성하였으면 실행해 보세요.


SharpPcap 라이브러리를 사용하여 네트워크 인터페이스 목록 확인 코드


실행하면 다음과 같은 결과가 나오시는 분들이 있을 거예요. SharpPcap 라이브러리는 WinPcap 라이브러리를 래핑하여 사용하는 라이브러리이기 때문에 시스템에 WinPcap 라이브러리를 설치하지 않으면 다음처럼 예외가 발생합니다.

WinPcap 라이브러리를 설치하지 않고 SharpPcap 라이브러리를 사용할 때 예외 발생


WinPcap 라이브러리를 설치하지 않아서 예외가 발생하시는 분들은 WinPcap 사이트에서 다운로드를 받으세요.

WinPcap 사이트


이제 WinPcap 라이브러리를 다운로드 하세요.

WinPcap 라이브러리 다운로드


다운로드 한 실행 파일을 더블 클릭하여 설치하시기 바랍니다.

WinPcap 설치하기


설치 과정은 평이하므로 별다른 설명을 하지 않을게요.

WinPcap 설치 시작


이제 실행해 보면 다음처럼 네트워크 트래픽을 추적할 수 있는 장치 목록을 확인할 수 있습니다.


이상으로 SharpPcap 라이브러리를 설치하고 간단한 테스트 프로그램을 작성해 보았어요.


앞으로 SharpPcap 라이브러리를 사용하여 프로그래밍 방법을 하나 하나 살펴보기로 해요.


오늘도 행복한 하루~


실습에 사용한 프로젝트

TestSharpPcap.zip

Visual Studio 2015에서 작성한 결과물입니다.

반응형