By 리차드 포르노(Richard Forno)와 케네스 R. 밴(Kenneth R. van Wyk)
이것은 2001년 8월 출간된 『Incident Response』의 7번째 챕터를 발췌한 첫 번째 시리즈이다. 이 발췌문은 해커들이 네트워크의 취약성을 감지하는데 사용하는 두 가지 도구를 다룬다. 여기서 언급된 도구는 해커들이 해킹하기 전에 해킹과 관련된 네트워크의 취약성을 감지하는데 사용할 수 있다.
nmap
Network Mapper를 의미하는 nmap은 자유 소프트웨어이면서 최고의 저수준 네트워크 포트 스캐너이다. 초당 스캐닝하는 약점이 없다고 하더라도 nmap의 출력 결과는 과장되어질 수 없다. 이 도구는 돌발적인 보안 사고를 다루는 팀이 꼭 알고 있어야 하는 요령 중 하나이며 기타 상업용 제품들이 간과하고 지나칠 수 있는 것들을 주로 잡아낼 수 있다. 이 도구의 제작자인 피오도르(Fyodor)가 제시하는 더 자세한 정보를 얻고 싶다면
www.insecure.org/nmap을 클릭해 보아라.
Nmap에 대한 더 자세한 정보
피오도르는 nmap을 다음과 같이 기술하고 있다.
단일 호스트에 대해 정교한 작업을 한다고 하더라도 nmap은 거대한 네트워크를 포트 스캐닝하는 유틸리티이다. nmap의 창작에 대한 지침 철학은 TMTOWTDI로서 "There"s More Than One Way To Do It(그것을 하는 데는 그 방법 이외에도 여러 가지 방법이 있다)"을 뜻한다. 이것은 펄 슬로건과도 같은 것이지만 스캐너에도 똑같이 적용할 수 있다. 가끔은 속도를 내야 할 때도 있지만 다른 때에는 몰래 작업을 해야 할 때도 있다. 그리고 또 어떤 경우에는 방화벽을 그냥 지나쳐야만 하는 것이 요구되기도 한다. 서로 다른 프로토콜(UDP, TCP, ICMP 등등)을 스캐닝하기 원할 수도 있음은 말할 필요도 없다. 당연히 여러분은 이 모든 것들을 한가지 스캐닝 모드로 통일할 수는 없으며 모든 인터페이스와 성능에 맞춰서 10가지 서로 다른 스캐너를 구비하고 싶지도 않을 것이다. 따라서 나는 사실상 내가 알고 있는 모든 스캐닝 기술을 nmap에 통합시켰다. nmap이 지원하는 자세한 사양은 다음과 같다.- 바닐라 TCP 연결() 스캐닝
- TCP SYN (절반은 공개) 스캐닝
- TCP FIN, Xmas 또는 널(은닉) 스캐닝
- TCP FTP 프록시 (경계 공격) 스캐닝
- IP 조각을 사용한 SYN/FIN 스캐닝 (패킷 필터 통과)
- TCP ACK와 윈도우 스캐닝
- UDP 가공하지 않은 ICMP 포트 세력이 미치지 않는 스캐닝
- ICMP 스캐닝(ping-sweep)
- TPC 핑 스캐닝
- 직접(비 포트 mapper) RPC 스캐닝
- TCP/IP 핑거프린팅에 의한 원격 OS 분별
- 신원 확인 데몬 스캐닝
nmap은 여러 가지 수행 능력 및 동적 지연 시간 계산기, 패킷 휴식시간 및 재전송, 평행 포트 스캐닝, 평행 핑을 경유하는 다운 호스트 감지와 같은 신뢰성을 지원한다. 또한 nmap은 유연한 타겟 및 포트 스펙, 유인 스캐닝, TCP 순서 예측 특성, 머신이 파싱할 수 있거나 사람이 읽을 수 있는 로그 파일로 출력하는 것 등도 제공한다. |
이상에서와 같이 그의 진술은 정확하다. 돌발적인 보안 사고를 처리하는 nmap의 유용성은 실로 엄청나다. 예를 들어 nmap는 백도어나 악성 네트워크 수준 소프트웨어의 호스트 시리즈를 가장 빨리 스캐닝 할 수 있으며 여러분이 어디서든 찾을 수 있는 가장 빠른 네트워크 스캐너일 것이다. 더욱이 개별적인 스캔은 명령 라인 매개변수에 의해 상당한 정도로 선택되고 정리될 수 있다. 명령 라인 옵션 모두를 익히는 데 확실히 상당한 시간이 소모되기는 하지만 배우면서 그 시간을 재미있게 보낼 수 있다. 게다가 nmap는 유닉스 표준 맨페이지의 방법대로 문서화 작업을 종료시킨다.
nmap로 그래픽 프론트엔드(frontends)는 실재로 존재할 뿐만 아니라 쉽게 이용할 수 있다. 이러한 프론트엔드 대한 몇몇 포인터들은 이전에 언급한 웹 페이지에서 이용할 수 있다. 솔직히 돌발적인 보안사고에 대처하기 위한 목적으로 일단 명령 라인 인터페이스를 익혀두기만 한다면 우리는 그것이 가장 유연하고 강력하다는 점을 발견하였다. 아래의 그림 3개는 nmap 출력의 예이다. 그림1은 KDE 2리눅스 데스크탑에서의 X 명령 라인 세션을 보여주고 있으며 그림 2와 그림 3은 nmap에 대한 두 개의 서로 다른 GUI 프론트엔드의 예를 보여주고 있다.
그림 1. nmap로부터 텍스트 형식 출력 예
그림 2. nmapFE 출력 예
그림 3. KMAP 출력 예
이더리얼 (Ethereal)
이더리얼(Ethereal)은 다양한 유닉스 및 Linux, BSD, Solaris, AIX, HPUX, Irix를 포함한 유닉스와 비슷한 운영체제에서 실행되는 풍부한 특징을 가진 프로토콜 분석기 이다. 이것은 GNU 일반 공용 라이센스 하에 배포되는 오픈 소스 소프트웨어이다. 게다가 이 기사가 쓰여지고 있는 시점에서 이더리얼은 아직까지 공식적으로는 베타 소프트웨어로 인식되고 있다. 그림 4는 이더리얼 출력의 샘플을 나타낸 것이다.
그림 4. 이더리얼 출력 예
좋기도 하면서 나쁘게 들릴 수도 있는 소식이 있다. 첫째, 이더리얼은 무료로 사용할 수 있다. 따라서 경제적으로 빈약한 팀들이 이러한 도구를 입수하는 데 금전적인 요소는 개입하지는 않는다. 그리고 이 도구는 유닉스 및 리눅스에서 운영되며 이것은 거대한 양의 일시적인 데이터를 분석하는데 잘 맞는다는 것을 의미한다. 유닉스 및 이와 유사한 플랫폼에서 지원되는 몇몇 도구 또한 무료로 이용할 수 있기 때문에 분석 시스템에 소요되는 비용은 더욱 더 절감된다. 최소한 오픈 소스의 일부로서 이더리얼 리스트의 특징은 끊임없이 업그레이드 되기 때문에 "이것을 가지면 좋지않을까?"와 같은 사항을 표명한다. 사실 원래 발표된 프로젝트의 설계 목표 중에는 "유닉스를 위한 상업용 분석기와 동등한 품질을 위해 그리고 폐쇄 소스 스니퍼(sniffer)에서 간과한 이더리얼의 특징을 주기위해"라는 것이 있었다. 그러나 이더리얼이 아직까지 공식적으로는 베타 소프트웨어라는 사실은 법정에서 그 유용성을 감소시킬 수 있을 것이다.
우리의 견지에서 이더리얼이 훨씬 더 유용하다고 생각되는 사항 - 데이터 지원
- 이더리얼은 스니퍼, TCPdump, Snoop, 시스코의 IDS 등등을 포함한 거대한 서로 다른 데이터파일 포맷을 읽을 수 있다. 입력 데이터는 GZIP으로 압축되어 있고 이더리얼은 그 압축파일을 풀 수 있다. 게다가 평이한 ASCII 텍스트로 출력해 낼수 있을 뿐만 아니라 프린트하기 적합하게 포스트스크립트 포맷으로 출력할 수도 있다.
- 인터페이스 지원
- 이더리얼은 호스트 운영체제의 인터페이스 드라이버를 통해 많은 물리적 네트워크 미디어를 지원한다.
- GUI 및 텍스트 모드
- 이더리얼은 그래픽 유저 인터페이스 뿐만 아니라 텍스트 모드 인터페이스 두 가지 모두에서 운영할 수 있다. 대체 시스템으로서 텍스트 모드 인터페이스가 있다는 것은 멀리 떨어져 있는 탐침자를 쉽게 연결할 수 있기 때문에 특히 다른 지역에서 다중 이더리얼 탐침자를 운영하는데 매우 유용할 수 있다. 조사 중에 있는 네트워크상에서 일어나는 돌발적인 보안사고를 그대로 통과시키지 않도록 관심이 기울여져야 한다. 이러한 도구는 눈에 띄지 않아야 함을 명심해라.
- TCP 스트림 재건축
- 이것은 이더리얼이 다른 프로토콜 분석기와 다르게 구별되는 특징 중 하나이다. 이더리얼은 네트워크 자체에서 패킷을 주고 받는 순서가 반대이기 때문에 모든 패킷을 논리적인 순서대로 정렬하는 것처럼 TCP 데이터 스트림을 재건축할 수 있다. 특히 순서대로 쉽게 순열을 이루지 않는다면 압도적으로 보이는 가공되지 않은 데이터를 다룰 때 이러한 특징이 분석시 들어가는 시간을 절감해준다.