스니퍼를 활용한 IP 어드레스 관리 | ||
| ||
프로토콜 분석기, NMS(Network Management System)와 보안 감시 도구를 사용하고 있는 IT 관리자들에게 관리하기 가장 어려운 것이 바로 각 클라이언트들의 IP 어드레스다. 특히 DHCP(Dynamic Host Control Protocol)을 사용해 네트워크 클라이언트 PC에 IP 어드레스를 할당하는 네트워크 관리자들은 항상 문제가 발생했을 때에 각 클라이언트의 IP 어드레스를 확인해야 한다. 많은 관리자들이 일단은 가장 손쉽게 클라이언트를 확인할 수 있는 것이 IP 어드레스이기 때문. 더미(dummy) 허브를 사용하던 시절에는 모든 클라이언트들이 하나의 선로를 공유해 인터넷을 사용했기 때문에 각 클라이언트의 IP 어드레스를 손쉽게 찾아낼 수 있었다. 하지만 현재는 대부분의 네트워크에서 스위치 허브를 사용해 네트워크를 구성하고 있기 때문에 IP 어드레스 확인이 많이 어려워졌다. IP 어드레스 관리의 중요성 제고 바이러스나 보안 침투 소프트웨어와 PTP 애플리케이션에 의해 내부 네트워크의 한 클라이언트가 비정상적인 트래픽이 발생시키고 있음을 발견했다고 생각해 보자. 또는 스위치 허브의 특정 포트에서 CRC 에러나 Collision이 많이 발생하고 있거나 지나치게 과도한 트래픽이 발생하고 있다는 것을 확인했다고 가정해보자. 이때에 관리자의 입장에서 가장 먼저 생각하는 것이 무엇인가. '도대체 어떤 PC가 이렇게 네트워크를 많이 사용하고 있지?' '어떤 PC에 바이러스가 걸렸나?' 또는 필요에 의해 '누가 네트워크를 즉, 어떤 사람이 불필요하게 네트워크를 가장 많이 사용하고 있는가?' 등이다. 만약 관리자는 IP, MAC 어드레스와 각 호스트 이름에 대한 정보가 없다면, 여기에서 어떤 PC라는 것을 확인해야 할지 답답할 것이다. 모든 PC를 일일이 확인해 볼 수도 없고 특정 자기 PC에서 윈도우 명령어를 사용해 하나하나 IP 어드레스를 입력해 PC를 확인해 볼 수도 없다. 이 때에 필요한 것이 바로 IP와 MAC 어드레스를 포함해 각 PC의 이름을 목록으로 저장해 두는 것이 유용할 것이다. 현재 많은 업체의 관리자들은 자신만의 방법으로 IP 어드레스와 호스트 이름을 정리하고 보관해 사용하고 있다. 일반 텍스트나 엑셀 파일로 저장해 필요할 때 찾아보는 관리자가 있는 반면, IP 어드레스 관리 솔루션을 도입해 사용하고 있는 관리자들도 있다. IP 어드레스만 전문적으로 관리해 주는 장비나 소프트웨어를 구매해 사용하고 있는 관리자들은 여러 번 IP 어드레스 관리의 중요성을 절실히 느꼈기 때문이다. 물론 손쉽게 IP 어드레스와 호스트 이름을 저장해 필요할 때 찾아 볼 수 있고, 변동 사항이 발생했을 경우에 자동으로 해당 변동 사항을 알려주거나 목록을 수정해 주는 IP 어드레스 관리 솔루션을 사용하는 것도 좋은 방법이다. 필요한 경우에는 IP 어드레스를 전문적으로 관리해 주는 도구를 도입하는 것도 좋겠지만, 스니퍼와 같은 프로토콜 분석기를 사용하고 있는 관리자는 해당 분석기에 포함돼 있는 주소록(address book) 기능을 활용하라고 제안하고 싶다. 물론 전문 IP 관리 솔루션의 모든 기능을 가지고서 완벽하고 손쉽게 고민을 해결해 주지는 못하지만, 기존에 보유하고 있는 분석기의 일부 기능을 활용하면 분석기에서 보여지는 내용을 IP 어드레스를 보다 알기 쉽게 파악할 수 있다는 것이다. 네트워크와 관련된 어드레스 관리 방안 네트워크를 공부하는 사람이거나 네트워크 관리자들이 가장 먼저 알게 되는 것이 바로 컴퓨터 이름, IP와 MAC 어드레스다. 흔히들 컴퓨터 이름, IP 또는 MAC 어드레스라고 표현하고 있지만, 전문적인 네트워크 서적이나 분석기에서는 이같은 어드레스들을 각각 NetBIOS 네트워크 어드레스와 하드웨어 어드레스라고 표현한다. 더불어 TCP/IP 네트워크에서는 불필요하다고 생각되는 IPX 어드레스가 있다. 이 IPX 어드레스는 관리자들이 쉽게 알아볼 수 없는 숫자와 문자로 구성돼 있기 때문에 도대체 어떤 PC에 어떤 IPX 어드레스가 할당돼 있는지 난감할 때가 종종 있을 것이다. 각 어드레스의 표현 방법에 대해서는 다른 서적과 자료에서 많이 찾아볼 수 있기 때문에, 여기에서는 각 어드레스의 관리 방안에 대해서만 살펴본다. 예전에는 대부분의 네트워크 사용자들이 고정된 IP 어드레스를 사용해 인터넷을 사용하고 파일을 주고 받을 수 있었다. 하지만 요즘에는 IP의 부족으로 인해 IPv6와 같은 새로운 어드레스 체제나 DHCP와 같은 새로운 어드레스 할당 방법이 사용되고 있다. 각 PC들이 고정된 IP 어드레스를 사용하면 관리자들은 보다 손쉽게 각 PC를 관리하고 통제할 수 있을 것이다. 하지만 동적으로 IP 어드레스가 할당되는 환경에서는 어떻게 IP 어드레스를 이용해 문제가 되는 PC를 찾아낼 수 있을까. 바로 MAC 어드레스를 이용하는 것이다. MAC 어드레스는 각 PC가 사용하는 NIC(Network Interface Card)의 하드웨어 어드레스이므로 변할 수도 바꿀 수도 없기 때문이다. IP 어드레스를 수시로 바꿔가며 네트워크 침투를 시도하는 기술은 이제 새로운 것도 아니다. 많은 보안 침투 도구들이 이같은 형태를 취하고 있기 때문에 관리자들을 힘들게 하고 있다. 자신이 관리하고 있는 네트워크에서 사용하지 않는 어드레스를 이용해 서버 또는 특정 PC에 비정상적인 트래픽이 지속적으로 발생한다면, IP 어드레스만을 이용해 어떤 PC에서 발생하고 있는지 확인할 수 있겠는가. 이 경우에는 각 PC의 하드웨어 어드레스 즉, MAC 어드레스를 추적하는 방법이 가장 빠르다. 물론 MAC 어드레스 조차도 바꿔 침투를 시도하는 방법에 대해서는 해당 MAC 어드레스들이 발생하는 스위치 포트에 연결된 PC들을 검사해야 한다. MAC 어드레스를 바꿔가면서 침투를 시도하는 경우를 대처하는 방법은 좀더 생각해 보기로 하고, 각 어드레스의 관리 방법에 대해 알아본다. 만약에 컴퓨터 이름, IP 어드레스, MAC 어드레스와 IPX 어드레스를 동시에 관리할 수만 있다면, 많은 시간을 투자하지 않고서도 문제를 발생시키는 PC를 찾아낼 수 있지 않을까. 스니퍼의 주소록 활용으로 편리한 IP 관리 스니퍼의 주소록(address book)이 이같은 요구를 어느 정도 만족시켜줄 수 있다. 지금까지 스니퍼를 사용했던 관리자나 지금도 스니퍼와 같은 분석기의 사용법을 익히고 있는 사용자들이 쉽게 잊고 지나가는 기능 중 하나가 바로 주소록이다. 스니퍼의 주소록은 사용자들에게 많은 편리성을 제공한다. 가장 눈에 띄는 편리성 가운데 한가지는 주소록에 MAC 어드레스와 컴퓨터 이름이 등록돼 있으면, 호스트 테이블(Host Table)과 매트릭스(Matrix)의 MAC 계층에서 MAC 어드레스가 나타나는 것이 아니라 바로 주소록에 등록된 컴퓨터 이름이 보인다는 것이다. 이제 스니퍼의 주소록 등록 방법과 보관 방법에 대해 좀더 자세하게 살펴보자. 스니퍼의 보조 기능 가운데 하나인 주소록을 사용하기 전에 몇 가지 주의해야 할 사항이 있다. √ 스니퍼의 에이전트(agent)에 대한 개념을 이해해야 한다. 노트북 PC에 설치해 특정 네트워크 세그먼트에서 트래픽과 패킷을 측정하는 포터블 스니퍼 뿐만 아니라, 특정 구간에 설치하고 수시로 해당 세그먼트의 트래픽을 측정할 수 있는 스니퍼 분산 시스템(Sniffer Distributed System)은 에이전트라는 논리적, 물리적 개념이 있다. 에이전트라는 표현이 다소 생소할 수도 있겠지만, 물리적인 표현을 하자면 프로브(probe)라고 할 수 있다. 최근의 다양한 분석기나 NMS는 프로브라는 개념을 하드웨어 장비를 구간별로 설치해 필요한 정보를 수집하고 있다. 이같은 프로브가 바로 스니퍼의 에이전트라고 생각하면 된다. 에이전트를 언급하는 것은 바로 각 에이전트별로 주소록이 독립적으로 생성되기 때문이다. 각 클라이언트 및 서버 단에 에이전트가 설치돼 있다고 하자. 이때 각 에이전트는 해당 구간에서 수집할 수 있는 시스템의 어드레스를 자신의 주소록에 등록할 것이다. 일반적으로 주소록을 등록하기 위해서는 ARP(address resolution protocol) 패킷을 브로드캐스트해야 하는데, 스위치로 구성된 네트워크에서는 브로드캐스트 도메인이라고 표현하는 네트워크 영역이 있어 다른 세그먼트로 브로드캐스트 패킷이 전달되지 않는다. 때문에 특정 세그먼트에 소속된 PC의 어드레스만을 수집할 수 있다. 만약 스위치 내부에서도 브로드캐스트 패킷의 전달을 차단했다고 한다면, 특정 포트에 연결된 PC들에 대한 어드레스만을 수집할 수 있을 것이다. 이때에 스니퍼의 에이전트 개념이 필요하다. 즉, (그림 1)과 같이 포터블 스니퍼의 File → Select setting 기능에서 새로운 에이전트를 등록해 사용할 수 있다. 일단 새로운 에이전트를 등록하고 선택해 사용하면 수집되는 모든 트래픽과 등록되는 모든 주소록, 설정되는 모든 필터들이 각 에이전트에 대해 독립적으로 적용되는 것이다. 세그먼트별로 트래픽을 측정하고 주소록을 등록하고자 한다면 반드시 에이전트를 각 세그먼트 또는 각 사이트에 대해 새로 등록해 작업하는 습관을 갖는 것이 좋다. 세그먼트 별로 에이전트를 등록해 주소록을 만들었다면, 각 세그먼트에 대한 모든 주소록이 완성된 것이다. (그림 1) Select setting 화면 √ 세그먼트에 대한 주소록을 등록하려면 각 세그먼트가 연결된 스위치의 포트를 미러링(mirroring)해 작업해야 한다. 대부분 알고 있는 사실임에도 불구하고 강조하는 것은 가끔 잊고 작업하는 경우가 있기 때문이다. 가끔 'MAC 어드레스는 하나인데 IP 어드레스가 수시로 바뀌는 이유는 무엇인가요?'라는 질문을 받는다. 이에 대해 해당 MAC 어드레스가 라우터나 백본 스위치의 MAC 어드레스인지 확인해 보라고 답한다. 아주 기초적인 지식이라고 생각되지만, 라우터, 스위치 등은 각각의 장비에 고유의 MAC 어드레스가 설정돼 있으며, 패킷을 물리적으로 전달하기 위해서는 MAC 어드레스를 이용한다. 하지만 IP 어드레스는 라우터를 경유해 외부로 전달돼야 하기 때문에 내부 네트워크에서는 변하지 않는다. 때문에 라우터와 백본 스위치 사이에서 트래픽을 측정하거나 주소록을 등록하려는 경우에는 MAC 계층에서는 라우터나 백본 스위치의 MAC 어드레스만 보이고 IP 계층에서는 각 클라이언트들의 IP 어드레스가 보이게 되는 것이다. 즉, 이 구간에서는 각 클라이언트의 MAC 어드레스를 확인할 수 없다는 것이다. 정확한 MAC 어드레스에 대한 IP, IPX 어드레스와 컴퓨터 이름을 찾아내기 위해서는 세그먼트 별로 포트를 미러링해 검색하는 것이 옳은 방법이다. √ 각 세그먼트 별로 주소록이 완성되면 파일로 보관해야 한다. 스니퍼의 주소록에 있는 어드레스 목록은 2가지 방법으로 저장할 수 있다. 저장되는 파일 형식은 엑셀에서 볼 수 있는 .csv 형식이거나 일반 문서 편집기에서 볼 수 있는 텍스트 파일 형식이다. 먼저 스니퍼 상단의 메뉴에서 Database→Save address book을 클릭하면 자동으로 해당 에이전트가 사용하는 로컬 폴더에 addrbook.csv이라는 이름의 파일이 생성된다. 이것은 약식으로 표현된 주소록이다. 다른 방법은 주소록 화면의 좌측 하단에 있는 메뉴 버튼 가운데 (그림 2)와 같이 Expert 버튼을 클릭하면 자신이 입력한 이름으로 주소록을 저장할 수 있다. 이 경우에는 보다 상세하게 주소록을 저장할 수 있게 된다. (그림 2) 주소록 저장 √ 각 세그먼트에서 캡처된 패킷에서 어드레스를 추출해야 한다. 캡처된 패킷에는 해당 패킷을 네트워크에 전송한 PC의 어드레스가 포함돼 있다. 특히 IP 어드레스와 더불어 IPX 프로토콜이 설치된 PC의 IPX 어드레스를 찾아내기 위한 가장 간단한 방법이 IPX 패킷 내부에서 찾아 등록하는 것이다. 때문에 패킷을 캡처해 분석한 후에는 바로 삭제하거나 버리지 말고 어드레스 검색 기능을 사용해 패킷들 내부에 포함된 어드레스를 모두 찾아 등록한다. 가장 손쉽고 빠르게 주소들을 찾아낼 수 있는 방법이다. √ 각 PC 사용자들이 등록한 컴퓨터 이름을 확인해야 한다. 개인의 사생활 침해라고 말하는 사람들도 있겠지만, 네트워크를 보다 안전하게 관리하고 향상된 서비스를 바란다면, 반드시 확인해야 될 사항이다. 누가 어디에 접속해 무엇을 하는지는 중요하지 않을 수 있다. 개인의 취미일 수도 있고 업무상 데이터 전송일 수도 있기 때문이다. 하지만 누군가가 보안 침투를 시도하는 것이 발견됐거나 바이러스가 퍼져 나가고 있는 상황이 관찰됐다면, 대상이 어떤 시스템이고 발생지가 어디인지를 빨리 찾아야만 그만큼 피해를 줄일 수 있을 것이다. '누구야?', '어떤 컴퓨터에서 바이러스를 뿌리고 있는 거야?'라며 PC를 찾아다니는 동안에 바이러스나 공격 패킷들은 기업의 네트워크 전체를 마비시킬 것이다. 때문에 각 사용자들에게 통보하거나 개별적으로 정보를 수집해 모든 클라이언트들의 컴퓨터 이름 즉, NetBIOS 이름과 IP 및 MAC 어드레스를 그룹과 사용자 별로 정리해둬야 할 것이다. 스니퍼의 주소록 생성 방법 스니퍼에서는 3가지 방법으로 주소록을 만들 수 있다. ▲수동으로 자신이 알고 있는 어드레스를 입력하는 방법 ▲IP나 호스트 이름으로 주소록 자동 검색하는 방법 ▲패킷을 캡처해 각 패킷에 포함된 어드레스를 추출하는 방법이다. 각각의 주소록 등록 방법에 대해 알아보자. 수동 입력(New/Edit address)은 관리자 자신이 알고 있는 어드레스를 정리해 수동으로 하나씩 입력하는 방법이다. 물론 권장하지 않는 방법이다. 다만 주소록에 있는 목록 가운데 추가적으로 입력하거나 수정이 필요한 항목이 있는 경우에 유용하다. 자동으로 검색하는 동안에는 해당 시스템이 워크스테이션인지 서버인지 알 수 없기 때문에, 수동으로 각 어드레스 항목에 워크스테이션과 서버들을 구분해 입력하면 확인이 쉽기 때문이다. (그림 3)은 수동으로 어드레스를 입력하는 화면이다. 이 화면에는 IP, MAC 어드레스뿐만 아니라 IPX 어드레스 및 각 시스템의 이름과 종류를 설정할 수 있으며, 더불어 부가적인 설명을 추가할 수 있다. (그림 3) 주소록 수동 입력 화면 (그림 3)의 Type 항목에 workstation, Server, File Server, Print Server, Router, Bridge, hub, Access Point, Mobile Unit과 같은 시스템의 기능을 표시할 수 있다. 명확한 IP 어드레스 관리를 위해 반드시 수동으로 선택하거나 임의로 원하는 기능을 입력하도록 한다. 그리고 Description 항목에는 해당 시스템에 대한 설명을 입력할 수 있으므로 해당 IP 어드레스의 사용자 이름이나 그룹 이름들을 입력해 구분하면 편리하다. 자동 검색(Autodiscovery)은 어드레스 자동 검색 방법을 사용하면 해당 세그먼트의 모든 IP, MAC 어드레스를 자동으로 검색, 추가할 수 있다(그림 4). (그림 4)의 Resolve Name By라는 항목에 보면 4가지의 선택할 수 있는 검색 방법이 있다. 여기에서 첫번째 방법은 자신의 네트워크 세그먼트에 할당된 IP 어드레스 구간을 입력해 해당 IP 어드레스만 검색하는 것이고, 두번째 방법은 해당 세그먼트에서 검색되는 임의의 IP 어드레스 모두를 찾아 주소록에 등록하는 방법이다. 세번째 방법은 IP 어드레스가 아닌 컴퓨터 이름으로 주소록을 검색하는 방법이다. 네번째 방법은 IPX 번호를 검색하는 것이다. 각 항목에 대한 짧은 설명문을 보면 이해할 수 있을 것이다. 창의 하단에 있는 Automatically update address when possible은 주소록에 이미 등록된 어드레스 목록 가운데 바뀌었거나 재검색해 바꿔야 할 때 자동으로 검색하는 동안 수정하는 항목이다. 그리고 우측에 있는 Discovery Options는 무선과 관련된 어드레스를 검색하는 기능이기 때문에 일반 유선 네트워크에서는 필요없다. 해당 스니퍼가 무선 측정용으로 설정됐을 경우에만 활용된다. (그림 4) 자동 검색 및 등록 화면 패킷에 포함돼 있는 Show Discovered address는 캡처한 패킷들에는 계층별로 어드레스들이 포함돼 있다. 때문에 특정 세그먼트에서 캡처한 패킷은 분석 후에 버리지 말고 포함돼 있는 어드레스를 추출해 등록한다. 캡처된 패킷에 포함된 어드레스를 추출하는 방법은 간단하다. (그림 5)와 같이 패킷을 캡처해 분석하는 Expert 화면의 좌측 상단에 보면 4개의 버튼 메뉴가 있다. 이 가운데 좌측에서 세 번째 Show Discovered address 버튼을 클릭하면 주소록에 포함돼 있지 않는 어드레스가 추출된다. 이 어드레스는 내부 클라이언트들의 IP 뿐만 아니라 외부 IP 들에 대한 정보들이 모두 포함돼 있다. (그림 5) 패킷에 포함된 어드레스 추출 화면 어드레스 추출이 완료됐으면, 이제 주소록에 등록해야 한다. Select All을 하면 모든 어드레스가 선택되고 Update를 클릭하면 자동 등록된다. 이때 주의해야 할 사항이 있다. 기존에 각 세그먼트에 대해 주소록이 완성된 상태에서 새로운 어드레스를 강제 수정 입력하면, 주소록 자체의 MAC과 IP 어드레스가 잘못된 정보로 바꿔 버릴 수 있으므로 경고 메시지가 나오면 확인해서 필요없는 경우에는 강제 수정 등록하지 않도록 해야 된다. 다시 말해 이미 내부 클라이언트들의 주소록이 완성된 상태라면, 외부 어드레스만 추가하고 나머지는 버리는 것이다. 특히 이같은 추출 작업은 각 세그먼트에서 측정한 패킷에서만 해야 할 것이다. 만약 라우터 단에서 캡처한 패킷을 가지고 이같은 작업을 한다면 모든 IP에 대한 MAC 어드레스가 라우터의 MAC 어드레스로 인해 혼란을 가져올 수 있기 때문이다. 모든 어드레스 정보가 정확하게 등록돼 완성되면 반드시 Expert 기능을 이용해 저장, 보관한다. 그리고 세그먼트 별로 파일을 다르게 저장하는 것도 잊지 않도록 하자. 완성된 주소록은 (그림 6)과 같은 형태로 저장될 것이다. (a)는 Database → save address book 기능을 이용해 저장된 형태이며, (b)는 Expert 버튼을 이용해 저장된 형태이다. (그림 6) 완성된 주소록 어드레스를 검색할 수 있는 유틸리티 대부분의 관리자들이 사용하고 있는 유틸리티 가운데에는 특정 시스템의 IP, MAC 어드레스와 컴퓨터 이름을 찾아 보여 주는 유틸리티가 몇 가지 있다. ARP, Nbtstat, Nslookup 등이 어드레스를 검색하기 위해 사용되는 명령어다. 스니퍼의 주소록이나 다른 IP 어드레스 관리 솔루션을 사용하지 않는 상태에서는 모든 시스템에 대해 이 명령어를 실행하면 해당 시스템의 어드레스 정보들을 알 수 있다. ARP는 ARP(Address Resolution Protocol)을 사용해 IP와 MAC 어드레스를 찾아 보여주는 명령어이며, Nbtstat는 NBT(NetBIOS over TCP/IP)를 사용해 특정 스테이션의 프로토콜 사용 현황이나 TCP/IP 연결 상태를 검사하기 위한 도구이며, 더불어 몇 가지 옵션을 사용하면 원격지 또는 다른 세그먼트에 있는 스테이션의 컴퓨터 이름을 알아낼 수 있다. 마지막으로 Nslookup은 DNS 서버의 어드레스나 특정 호스트의 IP 어드레스를 알아내기 위해 사용되는 명령어다. (그림 7)처럼 스니퍼의 tools 메뉴에도 Nslookup과 유사한 도구가 있다. IP 어드레스만 입력하면 DNS 서버에게 문의해 해당 IP 어드레스의 컴퓨터 이름이나 URL을 보여주기 때문에 편리하다. 다만, 이 기능을 사용하기 위해서는 스니퍼가 설치된 PC에 IP 어드레스 정보가 입력돼 있어야 한다. 각 명령어들의 옵션에 대해 직접 확인해 실행시켜 보는 것이 좋다. (그림 7) 스니퍼의 DNS Lookup 도구 네트워크 장비, 서버와 보안 등 IT 관리자들에게는 어드레스 목록은 재산과도 같다. 어떤 시스템이 어떤 IP와 MAC 어드레스를 가지고 있는지 목록으로 만들어 놓지 않는다면, 장애가 발생하거나 트래픽을 측정해 분류하는 경우에 각 IP 어드레스를 설정한 시스템을 찾아내기 위해 작업 시간이 터무니없이 길어질 것이다. 그리고 DHCP라는 프로토콜을 사용하는 것은 IP 어드레스의 개수나 사용자들의 입장에서 보면 편리한 기능이지만, 관리자 측면에서는 더 많은 시간을 가지고 주기적으로 관리해야 한다. 즉 고정 IP 어드레스 뿐만 아니라, DHCP 환경에서는 수시로 IP 어드레스를 검색해 변동 사항을 정리해둬야 한다. @ |
스니퍼를 활용한 IP 어드레스 관리