KR20040109985A - Dhcp 패킷을 이용한 동적 ip 주소할당 환경에서의arp/ip 스푸핑 자동 방지 방법 - Google Patents

Dhcp 패킷을 이용한 동적 ip 주소할당 환경에서의arp/ip 스푸핑 자동 방지 방법 Download PDF

Info

Publication number
KR20040109985A
KR20040109985A KR1020030039636A KR20030039636A KR20040109985A KR 20040109985 A KR20040109985 A KR 20040109985A KR 1020030039636 A KR1020030039636 A KR 1020030039636A KR 20030039636 A KR20030039636 A KR 20030039636A KR 20040109985 A KR20040109985 A KR 20040109985A
Authority
KR
South Korea
Prior art keywords
address
packet
dhcp
host
arp
Prior art date
Application number
KR1020030039636A
Other languages
English (en)
Other versions
KR100533785B1 (ko
Inventor
김경원
Original Assignee
주식회사 인티게이트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 인티게이트 filed Critical 주식회사 인티게이트
Priority to KR10-2003-0039636A priority Critical patent/KR100533785B1/ko
Publication of KR20040109985A publication Critical patent/KR20040109985A/ko
Application granted granted Critical
Publication of KR100533785B1 publication Critical patent/KR100533785B1/ko

Links

Classifications

    • AHUMAN NECESSITIES
    • A62LIFE-SAVING; FIRE-FIGHTING
    • A62BDEVICES, APPARATUS OR METHODS FOR LIFE-SAVING
    • A62B1/00Devices for lowering persons from buildings or the like
    • A62B1/20Devices for lowering persons from buildings or the like by making use of sliding-ropes, sliding-poles or chutes, e.g. hoses, pipes, sliding-grooves, sliding-sheets
    • AHUMAN NECESSITIES
    • A62LIFE-SAVING; FIRE-FIGHTING
    • A62BDEVICES, APPARATUS OR METHODS FOR LIFE-SAVING
    • A62B11/00Devices for reconditioning breathing air in sealed rooms

Landscapes

  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Emergency Management (AREA)
  • Pulmonology (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은, DHCP(Dynamic Host Configuration Protocol) 프로토콜을 이용하여 IP 주소를 할당받는 환경에서, DHCP 패킷을 스누핑 (Snooping)하여 각각의 포트를 통하여 연결된 호스트들에 대한 주소 할당 정보를 'MAC 주소, IP 주소' 형태의 데이터베이스로 구성한 후, 잠재적인 공격자(Hacker)가 될 수 있는 각각의 호스트들로부터 해당 포트로 들어오는 ARP 스푸핑(Spoofing) 패킷이나 IP 스푸핑 패킷을 버림으로써, ARP나 IP 스푸핑을 방지하여 망과 망 내의 시스템을 보호할 수 있는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법에 관한 것이다.
본 발명에 따른 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법은, 스푸핑된 ARP/IP 패킷이 호스트로부터 포트로 입력되거나 호스트로 전송되어 나가는 것을 차단함으로써 스푸핑된 ARP/IP 패킷이 시스템 내의 호스트나 상위 망으로 전파되는 것을 차단하고, 이와 같이 해킹의 기본적인 수단으로 사용되는 스푸핑을 차단함으로써 시스템과 망의 보안성을 높일 수 있는 현저한 효과가 있다.

Description

DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법{METHOD FOR PREVENTING ARP/IP SPOOFING AUTOMATICALLY ON THE DYNAMIC IP ADDRESS ALLOCATING ENVIRONMENT USING DHCP PACKET}
본 발명은 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법에 관한 것으로서, 구체적으로, DHCP(Dynamic Host ConfigurationProtocol) 프로토콜을 이용하여 IP 주소를 할당받는 환경에서, DHCP 패킷을 스누핑 (Snooping)하여 각각의 포트를 통하여 연결된 호스트들에 대한 주소 할당 정보를 'MAC 주소, IP 주소' 형태의 데이터베이스로 구성한 후, 잠재적인 공격자(Hacker)가 될 수 있는 각각의 호스트들로부터 해당 포트로 들어오는 ARP 스푸핑(Spoofing) 패킷이나 IP 스푸핑 패킷을 버림으로써, ARP나 IP 스푸핑을 방지하여 망과 망 내의 시스템을 보호할 수 있는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법에 관한 것이다.
인터넷의 사용이 날로 증가함에 따라 해킹의 기술 또한 증가하고 있으며, 현재에 이르러서는 해킹 프로그램 등이 네트워크 상에 산재하는 상황에까지 이르게 됨으로써 이제 전문가가 아닌 일반인도 해커가 될 수 있는 상황에 이르렀다. 이와 같이, DoS, DDoS, Sniffing 또는 Hijacking 과 같은 해킹을 위해 사용되는 근본적인 수단이 ARP 또는 IP 스푸핑(Spoofing)이다. 이 중 ARP(Address Resolution Protocol) 스푸핑은 센더(Sender) 하드웨어 주소와 센더 IP 주소를 조작하는 것으로서, 로컬 네트워크에서 다른 시스템의 IP 주소에 대해서 공격 시스템의 MAC 주소를 ARP Reply 패킷의 소스 정보로 사용하여 로컬 네트워크 내의 다른 라우터나 스위치, 호스트들의 ARP 테이블을 변경함으로써, 공격 시스템의 IP 주소가 아닌 패킷을 공격 시스템의 MAC 주소를 달고 공격 시스템으로 전달되게 만드는 공격 기법이다. 또한, IP 스푸핑은 자신의 소스 IP 를 변경하여 다른 시스템에게 자신이 누군지 모르게 또는 다른 시스템으로 오인하도록 만드는 공격을 위한 수단으로 사용된다.
현재, ARP나 IP 스푸핑 공격으로 인한 피해는 해킹 피해의 대부분을 차지한다고 볼 수 있으며, 누구나 인터넷에서 돌아 다니는 스푸핑 툴을 이용하여 특정 호스트를 공격하거나 망 내에서 돌아다니는 정보를 훔쳐 봄으로써 보안이 유지되어야 할 개인 정보들이 쉽게 도용되는 일이 빈번한 실정이다. 예를 들면, ARP 스푸핑을 통하여 동일한 내부 네트워크에 연결된 다른 호스트에서 행하여지는 여러가지 IP 패킷들을 훔쳐 봄으로써 개인 정보가 유출될 수 있고 심지어 금융정보까지도 노출되는 위험이 있으며, 특정 서버의 관리자 레벨의 ID와 패스워드를 훔쳐 봄으로써 서버 정보를 마음대로 조작하는 것이 가능한 게 현실이다. 더 나아가, IP 스푸핑을 하여 외부 네트워크 상에서 행하여지는 온라인 작업을 훔쳐 볼 경우 더 많은 시스템이 공격에 쉽게 노출되게 된다.
이러한 IP 스푸핑을 방지하기 위하여 현재 사용되고 있는 기법으로는, 필터링 기능이 있는 라우터를 사용하여 외부 망으로부터 들어오는 IP 패킷에 대해서 각각의 포트에 연결된 호스트들에 대한 개별적인 IP 주소를 이용하지 않고 로컬 네트워크에 할당된 IP 네트워크 주소와 마스크를 이용하여 필터링하는 방법이 있다. 그러나, 상기 방법은, 필터링에 각 호스트의 개별적인 IP 주소가 아니라 로컬 네트워크 주소를 사용함으로 인해 공격자가 임의의 로컬 네트워크의 다른 주소를 이용한 스푸핑을 할 경우 이를 잡아내지 못할 뿐만 아니라, ARP 스푸핑에 대해서는 전혀 대처하지 못하는 문제점이 있었다.
또한, 종래에는 ARP 스푸핑에 대해서는 일반적인 방법이 없어서 공격에 그대로 노출될 수밖에 없었으며, 이에 대한 방어수단으로 스위치나 호스트에서 정적으로 ARP 테이블을 구성하여 스푸핑된 ARP 패킷에 의해서 ARP 테이블이 변경되지 않도록 하는 방법이 사용되었다. 그러나, 상기 방법은 망이 큰 곳이나 인터페이스 카드를 빈번히 교체하는 곳에서는 운용자가 직접 ARP 테이블의 엔트리를 매번 수정해야 하므로 현실적으로 사용이 곤란한 문제점이 있었다.
본 발명은 상기와 같은 문제점을 해결하고자 제시된 것으로서, 본 발명의 목적은, DHCP 프로토콜을 사용하여 IP 주소를 할당하는 환경에서 자동적으로 각각의 포트를 통하여 개별 호스트들에게 할당되는 IP 주소를 모니터링하여 ARP나 IP 스푸핑을 자동적으로 차단함으로써 ARP/IP 스푸핑 공격에 의한 피해를 줄일 수 있고, 망 내의 스위치나 라우터 시스템 동작 오류로 인해 잘못된 호스트로 IP 패킷이 전달되는 것을 방지할 수 있으며, ISP와 서비스 사용자 간에 DHCP를 통하여 IP 주소를 할당하도록 되어 있는 계약을 위반하고 임의의 IP 주소를 할당하여 사용하는 것을 차단하여 망 관리를 용이하게 할 수 있도록 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법을 제공하는 것이다.
도 1 은 DHCP 패킷의 형식을 나타낸 도.
도 2 는 DHCP 클라이언트의 상태 전이도.
도 3 은 DHCP 클라이언트와 서버 사이의 절차도.
도 4 는 DHCP 모니터링을 위한 시스템 구성도.
도 5 는 DHCP 모니터링을 통해 DHCP 모니터링 데이터베이스를 구축하는 과정을 도시한 도.
도 6 은 DHCP 모니터링 데이터베이스를 이용하여 패킷을 필터링하는 과정을 나타낸 흐름도.
상기의 목적을 달성하기 위하여, 본 발명에 따른 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법은, 스위치 시스템의 각 포트에 연결된 각 호스트에 대하여 DHCP 서버로부터 할당되는 IP 주소를 모니터링하여 각 호스트의 맥(MAC) 주소와 IP 주소를 저장하는 소정의 데이터베이스를 구축하고, 데이터베이스를 이용하여 포트를 통해 전송되는 ARP/IP 패킷 중 맥 주소 및/또는 IP 주소가 변조된 패킷을 필터링함으로써 ARP/IP 스푸핑을 방지하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법으로서, DHCP 서버로 IP 주소의 할당을 요청하기 위하여 호스트로부터 포트로 입력되는 제 1 DHCP 패킷을 탐지하고, 데이터베이스 중 호스트에 대하여 할당된 엔트리의 맥 주소 필드에 호스트의 클라이언트 하드웨어 주소를 기록하고, IP 주소 필드를 초기화하는 제 1 단계; DHCP 서버로부터 호스트의 IP 주소할당을 승인하기 위하여 포트로부터 호스트로 전송되어 나가는 제 2 DHCP 패킷을 탐지하고, 제 2 DHCP 패킷으로부터 호스트에 할당된 IP 주소를 추출하여 IP 주소 필드에 기록하는 제 2 단계; 호스트를 소스로 하여 포트를 통과하는 ARP 및/또는 IP 패킷인 전송패킷을 탐지하고, 전송패킷으로부터 전송패킷을 전송하는 호스트를 특정하기 위한 하드웨어 주소와 호스트의 IP 주소를 추출하는 제 3 단계; 데이터베이스로부터 맥 주소 필드값이 추출된 하드웨어 주소와 동일하고, IP 주소 필드값이 추출된 IP 주소와 동일한 엔트리를 검색하는 제 4 단계; 및 검색된 엔트리가 있으면 전송패킷을 포워딩시키고, 검색된 엔트리가 없으면 전송패킷의 전송을 차단하는 제 5 단계를 포함하는 것을 특징으로 한다.
바람직하게는, 전송패킷이 ARP 패킷일 경우, 제 3 단계에서, 하드웨어 주소로 센더 하드웨어 주소를 추출하고, IP 주소로 센더 IP 주소를 추출하도록 하며,
전송패킷이 IP 패킷일 경우, 제 3 단계에서, 하드웨어 주소로 전송패킷의 이더넷 헤더로부터 소스 맥 주소를 추출하고, IP 주소로 전송패킷의 IP 헤더로부터 소스 IP 주소를 추출하도록 한다.
또한, 제 3 단계와 제 4 단계 사이에, 추출된 하드웨어 주소 및 추출된 IP 주소가 유니캐스트가 아니면 전송패킷의 전송을 차단하는 제 3-1 단계를 더 포함하는 것이 바람직하다.
또한, 상기의 목적을 달성하기 위하여, 본 발명에 따른 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법의 또 다른 실시례는, DHCP 서버로 IP 주소의 할당을 요청하기 위하여 호스트로부터 포트로 입력되는 제 1 DHCP 패킷을 탐지하고, 데이터베이스 중 호스트에 대하여 할당된 엔트리의 맥 주소 필드에 호스트의 클라이언트 하드웨어 주소를 기록하고, IP 주소 필드를 초기화하는 제 1 단계; DHCP 서버로부터 호스트의 IP 주소할당을 승인하기 위하여 포트로부터 호스트로 전송되어 나가는 제 2 DHCP 패킷을 탐지하고, 제 2 DHCP 패킷으로부터 호스트에 할당된 IP 주소를 추출하여 IP 주소 필드에 기록하는 제 2 단계; 호스트를 목적지로 하여 포트를 통과하는 IP 패킷을 탐지하고, IP 패킷으로부터 목적지 맥 주소 및 목적지 IP 주소를 추출하는 제 3 단계; 데이터베이스로부터 맥 주소 필드값이 목적지 맥 주소과 동일하고, IP 주소 필드값이 목적지 IP 주소와 동일한 엔트리를 검색하는 제 4 단계; 및 검색된 엔트리가 있으면 IP 패킷을 포워딩시키고, 검색된 엔트리가 없으면 IP 패킷의 전송을 차단하는 제 5 단계를 포함하는 것을 특징으로 한다.
바람직하게는, 제 3 단계와 제 4 단계 사이에, 목적지 맥 주소 및 목적지 IP 주소가 유니캐스트가 아니면 포워딩시키는 제 3-1 단계를 더 포함하도록 한다.
또한, 상기 각 실시례에서, 제 1 단계가, 호스트로부터 포트로 입력되는 제 1 DHCP 패킷을 탐지하는 제 1-1 단계; 제 1 DHCP 패킷으로부터 호스트의 클라이언트 하드웨어 주소와 제 1 DHCP 패킷의 메시지 타입을 추출하는 제 1-2 단계; 메시지 타입이 디스커버(DISCOVER)이면, 데이터베이스 중 맥 주소 필드값이 클라이언트 하드웨어 주소와 동일한 엔트리를 검색하는 제 1-3 단계; 검색된 엔트리가 있으면, 엔트리의 맥 주소 필드에 클라이언트 하드웨어 주소를, IP 주소 필드에 '0.0.0.0'을 기록하는 제 1-4 단계; 및 검색된 엔트리가 없으면, 새로운 엔트리의 맥 주소 필드에 클라이언트 하드웨어 주소를, IP 주소 필드에 '0.0.0.0'을 기록하는 제 1-5 단계를 포함하고, 1-4 단계 및 1-5 단계가 선택적으로 수행되도록 하며,
이때, 데이터베이스가 각 엔트리 중 필요없는 엔트리의 삭제시기를 기록하는 에이징 타임 필드를 더 구비하고, 1-4 단계 및 1-5 단계에서, 에이징 타임 필드에 소정의 설정값인 최대 대기시간을 기록하도록 하고,
아울러, 제 2 단계가, 포트로부터 호스트로 전송되어 나가는 제 2 DHCP 패킷을 탐지하는 제 2-1 단계; 제 2 DHCP 패킷으로부터 호스트의 클라이언트 하드웨어 주소, 할당된 IP 주소 및 제 2 DHCP 패킷의 메시지 타입을 추출하는 제 2-2 단계; 데이터베이스 중 맥 주소 필드값이 클라이언트 하드웨어 주소와 동일한 엔트리를검색하는 제 2-3 단계; 검색된 엔트리가 존재하고 메시지 타입이 액크(ACK)이면, 엔트리의 맥 주소 필드에 클라이언트 하드웨어 주소를, IP 주소 필드에 할당된 IP 주소를 기록하는 제 2-4 단계; 및 검색된 엔트리가 존재하고 메시지 타입이 낵크(NACK)이면, 검색된 엔트리를 삭제하는 제 2-5 단계를 포함하고, 2-4 단계 및 2-5 단계가 선택적으로 수행되도록 하며,
이때, 데이터베이스가 각 엔트리 중 필요없는 엔트리의 삭제시기를 기록하는 에이징 타임 필드를 더 구비하고, 2-2 단계에서, 제 2 DHCP 패킷으로부터 IP 주소 리스타임을 추출하고, 2-4 단계에서, 에이징 타임 필드에 IP 주소 리스타임을 기록하도록 한다.
또한, 에이징 타임 필드값을 소정 단위로 감소시키고, 에이징 타임 필드값이 '0'이 되면 해당 엔트리를 삭제하는 제 6 단계를 더 포함하고, 제 6 단계는 각 단계와 순서에 무관하게 수행되도록 한다.
이하에서는, 첨부한 도면을 참조하여 본 발명의 장점, 특징 및 바람직한 실시례에 대해 상세히 설명하도록 한다.
1. DHCP 패킷 형식
DHCP 패킷 형식은 도 1 에 도시되어 있다. DHCP 패킷은 DHCP 클라이언트에게 IP 주소를 할당하기 위하여 클라이언트와 서버 간에 주고받는 패킷으로서, 각필드에 대하여 설명하면 이하와 같다.
먼저, OP 코드는 '1'이면 'Request'를, '2'이면 'Reply'를 나타내며, 하드웨어 타입값이 '1'이면 'Ethernet', '2'이면 'Experimental Ethernet'을 나타낸다. 하드웨어 주소 길이는 하드웨어의 주소 영역으로 16 바이트가 할당되어 있으며, 실제로 하드웨어 타입에 따른 주소의 길이를 나타낸다. 홉 카운트(Hop Count)는 Relay Agent에 의해 사용된다.
트랜잭션 ID는 클라이언트와 서버 사이에 메시지와 응답의 연관성을 나타내는 값으로서 클라이언트에서 임의로 선택되며, Number of Seconds는 클라이언트에서 IP 주소 획득(Acquisition) 또는 갱신(Renew) 프로세스를 시작한 후 현재까지 걸린 시간을 나타낸다.
또한, 클라이언트 IP 주소는 클라이언트의 IP 주소로서 클라이언트가 서버에게 자신의 IP 주소가 밸리드(Valid)함을 나타내기 위해 사용되며, Your IP 주소는 서버가 클라이언트에게 클라이언트 주소를 알려 주기 위해 사용된다. 서버 IP 주소는 서버가 클라이언트에게 클라이언트가 Configuration 과정에서 사용할 다음 서버의 주소를 나타내며, 이때 다음 서버의 이름은 서버 호스트 이름(Server Host Name) 필드에 기록된다. 게이트웨이 IP 주소는 Relay Agent의 IP 주소를 나타내는 것으로 Relay Agent에서 DHCP 패킷을 받아들인 인터페이스의 주소를 기록하게 되며, 부트 파일 이름(Boot File Name)은 클라이언트가 다음 서버에 요구해야 할 파일의 이름을 나타낸다.
옵션으로는 'DHCP 메시지 타입(코드 53)', 'Requested IP Address(코드50)', 'IP 주소 리스타임(IP address lease time, 코드 51)' 등이 있다.
또한, 플래그(Flags)에 대하여는 본 발명이 속한 기술분야의 통상의 전문가라면, RFC1542를 참조하여 쉽게 알 수 있는 것이므로 상세한 설명은 생략하도록 한다.
DHCP 클라이언트와 서버 간에 주고받는 각각의 메시지 타입은 표 1 과 같다.
메시지 타입 주소 할당/해제 여부
1 DHCPDISCOVER 해제 (새로운 IP 주소 요구)
2 DHCPOFFER 해제 (새로운 IP 주소 제안)
3 DHCPREQUEST 해제 또는 유지 (새로운 IP 주소 요구 또는 Renew)
4 DHCPDECLINE 해제 (할당된 주소 사용 거부)
5 DHCPACK 할당 (호스트가 사용할 수 있는 주소 할당 과정 완료)
6 DHCPNACK 해제 (호스트가 요구한 주소 사용 허가 거부)
7 DHCPRELEASE 해제 (호스트가 사용 중인 주소 자발적으로 해제)
8 DHCPINFORM 해당 없음
9 DHCPFORCERENEW 해당 없음
2. DHCP 처리과정
DHCP를 통해 클라이언트인 호스트에 IP 주소를 할당하기 위하여 클라이언트와 서버 간에 일정한 패킷을 주고받게 되는데, 이때 클라이언트의 상태 변화는 도 2 에 도시되어 있다. 도 2 는 RFC2131 및 RFC3203을 기초로 한 것으로서, 도 2 에 도시된 내용은 본 발명에 속한 기술분야의 통상의 전문가라면 누구나 쉽게 파악할 수 있는 것이므로 상세한 설명은 생략하도록 한다.
DHCP 클라이언트가 IP 주소를 할당받는 과정은 새로운 IP 주소를 할당받는 과정과 이미 할당받은 IP 주소를 갱신(Renew)하는 과정으로 나눌 수 있으며, 이는 도 3 에 도시되어 있다. 도 3a 는 클라이언트가 새로운 IP 주소를 할당받는 과정을 나타내며, 도 3b 는 클라이언트가 이미 할당받은 IP 주소를 갱신하는 과정을 나타낸다.
도 3a 에 도시한 바와 같이, 클라이언트가 새로운 IP 주소를 받는 경우에는 DHCP 클라이언트와 서버 사이에 DISCOVER, OFFER, REQUEST, ACK 과정을 거치게 된다. 클라이언트는 DHCP ACK를 받은 후에 할당받은 IP 주소를 사용할 수 있게 된다. 또한, 클라이언트가 IP를 할당받은 후 새로운 IP 주소를 필요로 할 때는 DHCP DISCOVER부터 새로 시작하게 된다. 한편, 이미 할당받은 IP 주소를 갱신 (Renew)하는 경우에는, 도 3b 에 도시한 바와 같이, REQUEST와 ACK 과정만을 거치게 된다.
3. 시스템 구성
DHCP를 이용하여 각 호스트에 IP 주소를 할당하는 시스템의 구성은 도 4 에 도시되어 있다. 도 4 는 본 발명에 따른 DHCP 모니터링을 위한 시스템 구성도이다. 도 4 에 도시한 바와 같이, L2 또는 L3 스위치인 스위치 A의 업링크(Uplink) 포트에는 네트워크가 연결되며, 다운링크(Downlink) 포트에는 각각의 호스트(호스트 A1, A2, A3,..)와 또 다른 스위치 B가 연결된다. 또한, L2 스위치인 스위치 B의 다운링크 포트에는 또 다른 호스트(B1, B2,..)가 연결된다. 각각의 호스트 (A1, A2, A3, B1, B2..)는 DHCP 프로토콜을 수행하여 스위치 A에 연결된 DHCP 서버로부터 IP 주소를 할당받게 된다.
이때, 스위치 A에 직접 연결된 호스트 A1, A2, A3에 대하여, 스위치 A의 다운링크 포트를 통과하는 DHCP 패킷들을 훔쳐봄(스누핑)으로써 각 포트를 통하여 할당된 IP 주소를 알 수 있으며, 이를 MAC 주소와 함께 관리할 경우 어떤 MAC 주소를 가진 호스트가 어떤 IP 주소를 할당받았는지를 알 수 있게 된다. 이러한 방법으로 각 호스트에 대하여 데이터베이스(DHCP 모니터링 데이터베이스)를 구축할 수 있으며, 각 포트로부터 입력되는 소스/목적지 IP 주소를 구축된 데이터베이스와 비교 확인함으로써 스푸핑된 ARP/IP 패킷을 걸러낼 수 있게 된다. DHCP 모니터링 데이터베이스의 각 테이블은 각 호스트의 MAC 주소, 할당된 IP 주소, 바운드 및 에이징 타임 필드로 이루어진다.
보다 상세하게는, 호스트 방향의 포트들로부터 입력되는 패킷이 ARP 패킷일 경우에는 ARP 패킷 내의 센더(Sender) 하드웨어 주소와 센더 IP 주소가 유니캐스트 (Unicast) 주소이면, 이를 DHCP 모니터링 데이터베이스에서 검색하여 존재하는 주소값이면 해당 패킷을 포워딩시키고 존재하지 않는 주소값이면 하드웨어 주소나 IP 주소가 스푸핑된 것으로 간주하여 해당 패킷을 버린다. 또한, 상기 입력되는 패킷이 IP 패킷일 경우에는 IP 패킷 내의 소스 MAC 주소와 소스 IP 주소가 유니캐스트 주소이면, 이를 DHCP 모니터링 데이터베이스에서 검색하여 존재하는 주소값이면 해당 패킷을 포워딩시키고 존재하지 않는 주소값이면 MAC이나 IP 주소가 스푸핑된것으로 간주하여 해당 패킷을 버린다. 마찬가지로, 각각의 호스트 방향의 포트에서 호스트쪽으로 나가는 IP 패킷에 대해서는 목적지 MAC/IP 주소를 이용하여 동일하게 처리한다.
이와 같이, 스푸핑된 패킷이 포워딩되는 것을 차단할 수 있게 되므로 각 시스템이나 망을 공격으로부터 보호할 수 있게 된다. 또한, DHCP로 IP를 할당하는 망 내에서 호스트 시스템 사용자가 임의로 IP 주소를 할당하여 사용할 경우, 해당 IP 주소를 소스 IP 주소로 가진 패킷은 전송되지 않고 버려지게 되므로, 임의의 사용자가 임의로 고정 IP 주소를 설정하여 사용함으로써 초래될 혼란으로부터 망을 보호하고 관리의 효율성을 기할 수 있다.
한편, 스위치 B를 통해 연결된 호스트(B1, B2,..)에 대하여, 만일 스위치 A에서는 DHCP 모니터링이 수행되지만 스위치 B에서는 DHCP 모니터링을 수행되지 않을 경우, 스위치 B 내에서는 스푸핑(Spoofing)이 가능해지게 된다. 그러나, 이 경우에도 스위치 A에서 DHCP 모니터링을 수행하고 있으므로 스푸핑된 IP 패킷들을 걸러낼 수 있게 된다. 물론, 스위치 B에서도 DHCP 모니터링을 수행한다면 호스트 B1과 B2에서의 ARP/IP 스푸핑을 방지할 수 있으며, 호스트가 직접 연결된 모든 스위치 시스템에서 DHCP 모니터링을 통한 IP 패킷 필터링을 수행한다면 ARP나 IP 스푸핑을 완전히 방지할 수 있을 것이다.
또한, DHCP 모니터링을 통한 IP 패킷 필터링은 호스트 방향의 포트 쪽에서만 수행되는 것은 아니며, DHCP 서버 방향의 링크가 업링크(Uplink)와 동일한 포트이면 업링크에서도 수행될 수 있다. 예를 들어, L2 스위치의 서버 방향과 동일한업링크에서 DHCP 모니터링을 통한 필터링을 할 수 있으며, 업링크의 경우에는 해당 포트로 들어오는 IP 패킷에 대해서는 목적지 MAC/IP 주소를 가지고 DHCP 모니터링을 검색하고, 나가는 IP 패킷에 대해서는 소스 MAC/IP 주소를 가지고 DHCP 모니터링을 검색하도록 한다. 한편, DHCP 패킷은 브로드캐스트(Broadcast) 패킷이기 때문에 어느 포트가 다운링크이고 업링크인지를 DHCP 패킷의 흐름만을 보고 자동적으로 알아 낼 수는 없다. 따라서, 검색하는 MAC/IP 주소가 소스인지 목적지인지가 바뀌게 되므로 링크의 특성을 규정하는 운용자가 이를 설정하도록 한다.
한편, 상기한 바와 같은 DHCP 모니터링과 패킷 필터링 방법은 소프트웨어만으로 구현하거나 하드웨어 칩에 이를 ASIC화하여 구현할 수도 있으며, 소프트웨어와 하드웨어 칩을 혼용하여 구현할 수도 있다. 예를 들어, 소프트웨어를 통해 DHCP 모니터링 데이터베이스를 구축하고, 패킷 필터링은 하드웨어 칩을 통해 수행하도록 할 수 있다.
이하에서는, 각 포트를 통과하는 DHCP 패킷을 모니터링하여 DHCP 모니터링 데이터베이스 구축하는 과정과 구축된 데이터베이스를 이용하여 스푸핑된 ARP 또는 IP 패킷을 핑터링하는 과정에 대하여 설명하도록 한다.
4. DHCP 모니터링
DHCP 모니터링은 어떤 포트(링크)에 연결된 호스트들에게 할당된 IP 주소들을 검출하는 것으로, 그 결과 구축되는 DHCP 모니터링 데이터베이스를 통해 패킷 필터링을 수행할 수 있게 된다. 다시 말해서, 하나의 포트를 가진 xDSL 모뎀이나 여러 개의 포트를 가진 xDSLAM, 스위치, 라우터 시스템과 같은 망 장비에서 전송되는 DHCP 패킷을 훔쳐보면서(스누핑) 각각의 호스트에 할당되는 IP 주소를 알아내고, '호스트의 하드웨어 주소, 할당받은 IP 주소'를 테이블 기반의 DHCP 모니터링 데이터베이스로 구축하여 관리한다. 이렇게 구축된 DHCP 모니터링 데이터베이스는 스푸핑(Spoofing)된 ARP/IP 패킷을 필터링하는데 사용된다.
특정 포트에 연결된 호스트들이 DHCP 프로토콜에 의해서 IP 주소가 할당되는 것을 검출하는 과정은, 각각의 MAC 주소를 가진 호스트들에 대한 DHCP 프로토콜 상태를 모니터링하면서 IP 주소가 할당되는 과정을 추적함으로 이루어진다.
DHCP 모니터링과 이를 통한 DHCP 모니터링 데이터베이스를 구축 과정에 대하여는 도 5a 내지 도 5c 에 도시되어 있다. 도 5a 는 스위치 중 호스트 방향의 각 포트로 각각의 호스트로부터 입력되는 패킷을 모니터링(Ingress 패킷 모니터링)하는 과정을 도시한 도이고, 도 5b 는 호스트 방향의 각 포트로부터 각각의 호스트로 나가는 패킷을 모니터링(Egress 패킷 모니터링)하는 과정을 도시한 도이며, 도 5c 는 DHCP 모니터링 데이터베이스의 각 테이블 엔트리에 대한 에이징을 나타낸 도이다. 각각에 대하여 도 5a 내지 도 5c 를 참조하여 상세히 설명하면 이하와 같다.
(1) 인그레스 DHCP 패킷 모니터링
DHCP 모니터링 시스템은 각 호스트로부터 각 포트로 입력되는 DHCP 패킷을 탐지하여, 검출된 DHCP 패킷이 있으면 이를 파싱한 후 해당 패킷으로부터 클라이언트 하드웨어 주소와 DHCP 메시지 타입을 추출한다(ST500, ST505). 다음으로, DHCP 모니터링 데이터베이스의 테이블을 클라이언트 하드웨어 주소로 검색하여, 매치되는 엔트리가 있으면 DHCP 메시지 타입을 판단하도록 한다(ST510 내지 ST520). DHCP 모니터링 데이터베이스 검색의 키값인 클라이언트 하드웨어 주소는 MAC 프레임 내의 소스 MAC 주소와 동일하다.
만일, 메시지 타입이 DISCOVER일 경우, 매치된 엔트리의 각 필드값을, MAC 주소는 클라이언트 하드웨어 주소로, IP 주소는 0.0.0.0으로, 에이징 타임은 'MAX_WATING_TIME'으로, 그리고 바운드(BOUND)='0'으로 갱신하도록 한다(ST525).
상기한 바와 같이, 각 호스트들은 DHCP 서버로 DHCP 프로토콜 수행 상태에 따라 DHCP DISCOVER, DHCP REQUEST, DHCP DECLINE, DHCP RELEASE를 송신하고, DHCP 서버로부터는 DHCP OFFER, DHCP ACK, DHCP NAK 등의 패킷이 각 호스트들로 전달된다. 이때, 특정 MAC 주소로부터 DHCP DISCOVER가 송신되었다는 것은 그 MAC 주소를 가진 호스트에서 DHCP 프로토콜을 통하여 IP 주소 할당과정을 시작했다는 것을 나타내므로, DHCP 모니터링 시스템에 의해서 해당 MAC 주소를 가진 호스트가 IP 주소 할당을 요구하였음을 DHCP 모니터링 테이블에 기록해 두도록 한다. 한편, 호스트로부터 DHCP 요구만 나가고 서버로부터 응답을 못 받는 경우, DHCP 모니터링 테이블 중 해당 호스트에 대한 엔트리는 필요없이 공간만 점유하게 되므로, 이를방지하기 위하여 'MAX_WAITING_TIME'을 정의하여 이를 에이징 타임으로 사용하도록 한다.
DHCP 요구를 보낸 호스트에 대한 MAC 주소를 DHCP 패킷의 클라이언트 하드웨어 주소로 미리 기록하는 것은, DHCP 패킷 자체가 브로드캐스트(Broadcast)로 전송되므로 서버로부터 응답이 왔을 때 응답 패킷이 해당 포트에서 나간 요청(Request) 패킷을 위한 것인지 아닌지를 구분할 수 있도록 하기 위함이다.
한편, DHCP 메시지 타입이 RELEASE나 DECLINE일 경우 매치된 엔트리를 삭제하도록 한다(ST530 내지 ST535). DHCP DECLINE 패킷은 서버로부터 할당받은 IP 주소에 대해서 호스트가 ARP를 통하여 누군가 사용하고 있는지를 검사하여, 누군가가 이미 사용하고 있다면 이를 DHCP 서버로 알리는데 사용된다. 이때 호스트 자신은 DHCP DISCOVER부터 다시 시작하여 새로운 IP를 할당받으려 할 것이다. 또한, DHCP RELEASE는 이미 할당받아서 사용하고 있는 IP 주소를 더 이상 사용하지 않지 않을 때 DHCP 서버에게 할당 해제를 요구하는데 사용된다. 따라서, DHCP 모니터링 시스템에서는 DHCP DECLINE이나 DHCP RELEASE를 검출하면 DHCP 패킷의 클라이언트 하드웨어 주소 필드의 주소를 가진 호스트에 대한 엔트리는 더이상 필요없으므로 DHCP 모니터링 테이블에서 지우도록 한다.
또한, ST515에서 매치되는 엔트리가 없는 경우에도 메시지 타임을 판단하여 메시지 타입이 DISCOVER이면, 빈 엔트리에 해당 호스트에 대한 정보를 기록하여 새로운 엔트리를 생성하도록 한다(ST540, ST545).
(2) 이그레스 DHCP 패킷 모니터링
마찬가지로, DHCP 모니터링 시스템은 각 포트로부터 각 호스트로 나가는 DHCP 패킷을 탐지하여 검출된 DHCP 패킷이 있으면 이를 파싱한 후, 클라이언트 하드웨어 주소, Your IP 주소, DHCP 메시지 타입 및 IP 주소 리스타임을 추출한다 (ST550, ST555). 다음으로, DHCP 모니터링 데이터베이스의 테이블을 클라이언트 하드웨어 주소로 검색하여 매치된 엔트리를 추출하고, DHCP 메시지의 타입을 판단하도록 한다(ST560 내지 ST570).
이때, DHCP 메시지 타입이 ACK라면 해당 포트에 연결된 호스트에 대하여 IP 주소가 할당된 것을 나타내므로, 매치된 엔트리의 각 필드값을 갱신하도록 한다 (ST575). 구체적으로, MAC 주소는 클라이언트 하드웨어 주소로, IP 주소는 Your IP 주소로, 에이징 타임은 IP 주소 리스타임으로, 그리고 바운드(BOUND)는 '1'로 갱신하도록 한다. 한편, DHCP 메시지 타입이 NACK인 경우에는 매치된 엔트리를 삭제하도록 한다(ST580, ST585).
상기의 과정을 통해 구축된 DHCP 모니터링 테이블의 일례는 표 2 와 같다.
번호 H/W 주소 할당된 IP 주소 Aging Time
1 12:34:56:00:00:01 200.1.1.2 7200 Secs (Lease Time Aging)
2 12:34:56:00:00:0B 200.1.1.5 732 Secs (Lease Time Aging)
3 12:34:56:00:00:0C 200.1.1.33 4733 Secs (Lease Time Aging)
4 12:34:56:00:20:22 16 Secs (Waiting Time Aging)
5 12:34:56:00:30:01 27 Secs (Waiting Time Aging)
표 2 에서 호스트 1, 2, 3은 서버로부터 ACK 패킷을 수신하여 IP 주소를 할당받은 경우로서 에이징 타임으로 IP 주소 리스타임이 설정되어 있다. 또한, 호스트 4, 5는 서버로 DISCOVER 패킷을 전송하였지만 아직 ACK 또는 NACK 패킷을 수신하지 못하여 IP 주소를 할당받지 못한 경우로서 에이징 타임으로 'MAX_ WAITING_TIME'이 설정되어 있다.
이와 같이 구성된 DHCP 모니터링 데이터베이스는 DHCP 모니터링 시스템 자체가 다시 시작하는 경우, 클라이언트와 서버 사이에 이미 생성된 정보를 DHCP 모니터링 시스템에서도 그대로 유지하여 정상적인 패킷 포워딩을 복구하기 위해서 파일로 저장되었다가 재부팅시 읽어와서 데이터베이스를 복원할 수 있어야 한다. 이때 일시적으로 할당 정보나 리스타임의 불일치 현상이 일어날 수 있으나, 이는 스위칭이나 라우팅에 영향을 주지 않을 뿐 아니라 ARP/IP 스푸핑 방지는 여전히 정상적으로 동작하게 되므로 무시해도 되는 과정이다.
(3) 에이징
한편, DHCP를 이용해서 IP를 할당받은 호스트가 더 이상 IP 주소를 사용하지 않을 때 항상 DHCP RELEASE를 하는 것은 아니므로, 이 경우 DHCP 모니터링 시스템이 이를 판단하여 해당 엔트리를 제거해야 한다. 따라서, 에이징 모듈은 DHCPACK의 검출에 의해 생성된 엔트리에 대하여 에이징 타임을 IP 주소 리스타임으로 설정한 후 점차 감소시키고, 에이징 타임이 '0'이 되면 해당 엔트리가 더 이상 사용되지 않는 것으로 간주하여 삭제하도록 한다. 그러나, 에이징 타임이 '0'이 되기 전에 호스트로부터의 갱신(Renew) 요구에 의해서 해당 호스트의 MAC 주소에 대한 DHCP ACK가 다시 검출되면 현재 검출된 DHCP ACK 패킷에 있는 IP 주소 리스타임으로 테이블 엔트리를 갱신하게 된다.
또한, DISCOVER 패킷의 전송에 의해 DHCP 모니터링 데이터베이스에 엔트리가 생성된 후 서버로부터 ACK 또는 NACK 패킷을 받지 못하는 호스트에 대하여는, 에이징 타임으로 'MAX_WAITING_TIME'을 사용함으로써 해당 엔트리가 필요없이 DHCP 모니터링 데이터베이스의 공간을 차지하는 것을 방지하도록 한다.
한편, 도 5c 에서 바운드(BOUND, B) 값은 해당 호스트에 DHCP를 이용한 IP 주소 할당의 완료여부를 나타내는 값으로서, 바운드값이 '0'이면 IP 주소가 아직 할당되지 않은 상태를 나타내며, 바운드값이 '1'이면 IP 주소할당이 완료된 상태를 나타낸다.
5. 패킷 필터링
DHCP 모니터링 데이터베이스가 구축되면 각 테이블의 MAC 주소, IP 주소 및 에이징 타임값을 이용하여 스푸핑된 ARP 또는 IP 패킷을 검출하여 필터링함으로써 시스템 또는 망이 공격받는 것을 방지할 수 있다. 즉, DHCP 모니터링이 수행되는포트를 통해 전송되는 패킷의 소스 MAC/IP 주소 또는 목적지 MAC/IP 주소를 DHCP 모니터링 데이터베이스에서 검색하여, 매치하는 엔트리가 존재하면 해당 패킷을 포워딩시키고 매치하는 엔트리가 없으면 해당 패킷을 버림으로써 스푸핑된 ARP/IP 패킷이 상위 망으로 전송되는 것을 차단할 수 있다.
이러한 패킷 필터링 과정은 도 6a 및 도 6b 에 도시되어 있는데, 도 6a 는 호스트 방향의 각 포트로 각각의 호스트로부터 입력되는 패킷을 필터링(Ingress 패킷 필터링)하는 과정을 도시한 도이고, 도 6b 는 호스트 방향의 각 포트로부터 각각의 호스트로 나가는 패킷을 필터링(Egress 패킷 필터링)하는 과정을 도시한 도이다. 각각에 대하여 도 6a 와 도 6b 를 참조하여 상세히 설명하면 이하와 같다.
(1) 인그레스 패킷 필터링
DHCP 모니터링 시스템은 각 호스트로부터 각 포트로 입력되는 ARP 또는 IP 패킷을 탐지한다(ST600). 탐지된 패킷이 ARP 패킷이고 ARP 패킷의 프로토콜이 IP이면 ARP 패킷에서 센더(Sender) 하드웨어 주소와 센더 IP 주소를 추출하며(ST605 내지 ST615), ARP 패킷의 프로토콜이 IP가 아니라면 포워딩시킨다(ST650). 탐지된 패킷이 ARP 패킷이 아니라면, 즉 IP 패킷이라면 이더넷 헤더에서 소스 MAC 주소를, IP 헤더에서 소스 IP 주소를 추출한다(ST620).
다음으로, ARP 패킷의 센더 하드웨어 주소와 센더 IP 주소, IP 패킷의 소스 MAC 주소와 소스 IP 주소가 ARP 또는 IP 패킷을 보내는 특정 호스트를 표현하는 유니캐스트(Unicast) 주소인 경우, 추출된 센더 하드웨어 주소 또는 소스 MAC 주소로 DHCP 모니터링 데이터베이스를 검색하여 매치되는 엔트리를 찾는다(ST625 내지 ST635). 이때, ARP 패킷에 대하여는 센더 하드웨어 주소를 소스 MAC 주소로 하여 DHCP 모니터링 데이터베이스를 검색하도록 한다. 만일, ARP 패킷의 센더 하드웨어 주소와 센더 IP 주소, IP 패킷의 소스 MAC 주소와 소스 IP 주소가 유니캐스트 주소가 아닌 경우에는 해당 패킷을 스푸핑된 패킷으로 간주하여 버린다(ST650).
해당 패킷에 대하여 매치되는 엔트리가 있으면 매치된 엔트리의 IP 주소와 패킷으로부터 추출된 소스 IP 주소(ARP 패킷의 경우 센더 IP 주소)을 비교하고, 서로 동일하면 해당 패킷을 포워딩시킨다(ST640, ST645). 그러나, 해당 패킷에 대하여 매치되는 엔트리가 없거나 매치된 엔트리의 IP 주소가 소스 IP 주소 또는 센더 IP 주소와 다르다면 해당 ARP 또는 IP 패킷을 스푸핑된 패킷으로 간주하여 버리도록 한다(ST650).
(2) 이그레스 패킷 필터링
DHCP 모니터링 시스템은 각 포트로부터 각 호스트로 전송되어 나가는 IP 패킷을 탐지하고, 탐지된 IP 패킷의 이더넷 헤더에서 목적지 MAC 주소를, 그리고 IP 헤더에서 목적지 IP 주소를 추출한다(ST660, ST665). 추출된 목적지 MAC 주소와 목적지 IP 주소가 유니캐스트이면, 추출된 목적지 MAC 주소를 키로 하여 DHCP 모니터링 데이터베이스를 검색하여 매치되는 엔트리를 찾는다(ST670 내지 ST680). 한편, 목적지 MAC 주소와 목적지 IP 주소가 유니캐스트가 아니라면 해당 패킷을 포워딩시킨다(ST690).
해당 패킷에 대하여 매치되는 엔트리가 있으면 해당 엔트리의 IP 주소와 해당 패킷으로부터 추출된 목적지 IP 주소를 비교하고, 양 IP 주소가 동일하다면 해당 패킷을 포워딩한다(ST685, ST690). 그러나, 해당 패킷에 매치되는 엔트리가 없거나 매치된 엔트리의 IP 주소와 패킷의 목적지 IP 주소가 상이하다면, 해당 패킷은 임의 조작되었거나 잘못된 패킷으로 간주하여 버리도록 한다(ST695).
이와 같이, DHCP 서버가 해당 호스트에게 할당하지 않은 목적지 MAC 주소와 목적지 IP 주소를 가진 IP 패킷을 버림으로써, IP 패킷이 잘못된 호스트로 전달되는 것을 방지하여 남의 패킷을 엉뚱한 호스트가 수신하는 것을 방지할 수 있다.
응용례
본 발명에 따른 DHCP 모니터링 시스템에 사용되는 L2 스위치에 대하여 IEEE 802.3D 테이블을 연동시킴으로써 스위치 칩의 기능을 개선할 수 있으며, L2 스위치가 이더넷이 아닌 경우에도 적용이 가능하다.
또한, DHCP를 이용하는 xDSL 망에서 xDSL 모뎀이나 xDSLAM 에서 본 발명에 따른 DHCP 모니터링 및 패킷 필터링 방법을 적용함으로써 ARP나 IP 스푸핑으로부터의 공격을 방어할 수 있다.
이상 설명한 바대로, 본 발명에 따른 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법은, 스푸핑된 ARP 또는 IP 패킷이 호스트로부터 포트로 입력되거나 호스트로 전송되어 나가는 것을 차단함으로써 스푸핑된 ARP/IP 패킷이 시스템 내의 호스트나 상위 망으로 전파되는 것을 차단하고, 이와 같이 해킹의 기본적인 수단으로 사용되는 스푸핑을 차단함으로써 시스템과 망의 보안성을 높일 수 있는 현저한 효과가 있다.
다시 말해서, 본 발명에 따른 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법은,
첫째로, 일반화되어 있는 해킹 방법 도구인 ARP/IP 스푸핑 패킷이 포트를 통과하는 것을 차단함으로써 개별 호스트 뿐만 아니라 망 내에서 공격을 위한 패킷 자체가 돌아 다니는 것을 방지할 수 있고,
둘째로, 포트로부터 각 호스트로 전송되는 패킷의 목적지 IP 주소를 비교 검사함으로써, 망 내의 스위치나 라우터 시스템 동작 오류로 인해 잘못된 호스트로 IP 패킷이 전달되는 것을 방지할 수 있으며,
셋째로, DHCP 서버에 의해 할당되는 IP를 사용하지 않고 호스트 사용자가 임의로 IP 주소를 할당하여 사용할 경우, 해당 호스트로부터 전송되는 패킷을 차단함으로써 DHCP 프로토콜을 사용하여 IP 주소를 할당받도록 되어 있는 망에서 임의의 사용자가 임의의 IP 주소를 고정하여 사용함으로 인해 초래될 수 있는 망의 혼란을 방지할 수 있어 망관리를 보다 편리하고 효율적으로 수행할 수 있고,
넷째로, 에이징 타임을 이용하여 DHCP 모니터링 데이터베이스의 각 엔트리를 에이징함으로써 필요없는 엔트리를 자동으로 삭제할 수 있으며,
다섯째로, 시스템 운용자의 개입 없이 DHCP 모니터링과 패킷 필터링 기능을 인에이블(Enable) 또는 디스에이블(Disable)만 시켜주면 되므로 자동으로 스푸핑된 패킷을 걸러낼 수 있으며,
마지막으로, 각 호스트에 가까운 스위치나 라우터 시스템에서 DHCP 모니터링 및 필터링 기능을 수행시킴으로써 ARP/IP 스푸핑 방지 효과를 극대화할 수 있다.
본 발명의 바람직한 실시례가 특정 용어들을 사용하여 기술되어 왔지만, 그러한 기술은 오로지 설명을 하기 위한 것이며, 다음의 청구범위의 기술적 사상 및 범위로부터 이탈되지 않고서 여러 가지 변경 및 변화가 가해질 수 있는 것으로 이해되어져야 한다.

Claims (12)

  1. 스위치 시스템의 각 포트에 연결된 각 호스트에 대하여 DHCP 서버로부터 할당되는 IP 주소를 모니터링하여 상기 각 호스트의 맥(MAC) 주소와 IP 주소를 저장하는 소정의 데이터베이스를 구축하고, 상기 데이터베이스를 이용하여 상기 포트를 통해 전송되는 ARP/IP 패킷 중 맥 주소 및/또는 IP 주소가 변조된 패킷을 필터링함으로써 ARP/IP 스푸핑을 방지하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법으로서,
    상기 DHCP 서버로 IP 주소의 할당을 요청하기 위하여 상기 호스트로부터 상기 포트로 입력되는 제 1 DHCP 패킷을 탐지하고, 상기 데이터베이스 중 상기 호스트에 대하여 할당된 엔트리의 맥 주소 필드에 상기 호스트의 클라이언트 하드웨어 주소를 기록하고, IP 주소 필드를 초기화하는 제 1 단계;
    상기 DHCP 서버로부터 상기 호스트의 IP 주소할당을 승인하기 위하여 상기 포트로부터 상기 호스트로 전송되어 나가는 제 2 DHCP 패킷을 탐지하고, 상기 제 2 DHCP 패킷으로부터 상기 호스트에 할당된 IP 주소를 추출하여 상기 IP 주소 필드에 기록하는 제 2 단계;
    상기 호스트를 소스로 하여 상기 포트를 통과하는 ARP 및/또는 IP 패킷인 전송패킷을 탐지하고, 상기 전송패킷으로부터 상기 전송패킷을 전송하는 상기 호스트를 특정하기 위한 하드웨어 주소와 상기 호스트의 IP 주소를 추출하는 제 3 단계;
    상기 데이터베이스로부터 상기 맥 주소 필드값이 상기 추출된 하드웨어 주소와 동일하고, 상기 IP 주소 필드값이 상기 추출된 IP 주소와 동일한 엔트리를 검색하는 제 4 단계; 및
    검색된 엔트리가 있으면 상기 전송패킷을 포워딩시키고, 검색된 엔트리가 없으면 상기 전송패킷의 전송을 차단하는 제 5 단계를 포함하는 것을 특징으로 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법.
  2. 스위치 시스템의 각 포트에 연결된 각 호스트에 대하여 DHCP 서버로부터 할당되는 IP 주소를 모니터링하여 상기 각 호스트의 맥(MAC) 주소와 IP 주소를 저장하는 소정의 데이터베이스를 구축하고, 상기 데이터베이스를 이용하여 상기 포트를 통해 전송되는 패킷 중 IP 주소가 변조된 패킷을 필터링함으로써 ARP/IP 스푸핑을 방지하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법으로서,
    상기 DHCP 서버로 IP 주소의 할당을 요청하기 위하여 상기 호스트로부터 상기 포트로 입력되는 제 1 DHCP 패킷을 탐지하고, 상기 데이터베이스 중 상기 호스트에 대하여 할당된 엔트리의 맥 주소 필드에 상기 호스트의 클라이언트 하드웨어 주소를 기록하고, IP 주소 필드를 초기화하는 제 1 단계;
    상기 DHCP 서버로부터 상기 호스트의 IP 주소할당을 승인하기 위하여 상기 포트로부터 상기 호스트로 전송되어 나가는 제 2 DHCP 패킷을 탐지하고, 상기 제 2 DHCP 패킷으로부터 상기 호스트에 할당된 IP 주소를 추출하여 상기 IP 주소 필드에 기록하는 제 2 단계;
    상기 호스트를 목적지로 하여 상기 포트를 통과하는 IP 패킷을 탐지하고, 상기 IP 패킷으로부터 목적지 맥 주소 및 목적지 IP 주소를 추출하는 제 3 단계;
    상기 데이터베이스로부터 상기 맥 주소 필드값이 상기 목적지 맥 주소과 동일하고, 상기 IP 주소 필드값이 상기 목적지 IP 주소와 동일한 엔트리를 검색하는 제 4 단계; 및
    검색된 엔트리가 있으면 상기 IP 패킷을 포워딩시키고, 검색된 엔트리가 없으면 상기 IP 패킷의 전송을 차단하는 제 5 단계를 포함하는 것을 특징으로 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제 1 단계가,
    상기 호스트로부터 상기 포트로 입력되는 상기 제 1 DHCP 패킷을 탐지하는 제 1-1 단계;
    상기 제 1 DHCP 패킷으로부터 상기 호스트의 클라이언트 하드웨어 주소와 상기 제 1 DHCP 패킷의 메시지 타입을 추출하는 제 1-2 단계;
    상기 메시지 타입이 디스커버(DISCOVER)이면, 상기 데이터베이스 중 상기 맥 주소 필드값이 상기 클라이언트 하드웨어 주소와 동일한 엔트리를 검색하는 제 1-3 단계;
    검색된 엔트리가 있으면, 상기 엔트리의 맥 주소 필드에 상기 클라이언트 하드웨어 주소를, 상기 IP 주소 필드에 '0.0.0.0'을 기록하는 제 1-4 단계; 및
    검색된 엔트리가 없으면, 새로운 엔트리의 맥 주소 필드에 상기 클라이언트 하드웨어 주소를, 상기 IP 주소 필드에 '0.0.0.0'을 기록하는 제 1-5 단계를 포함하고,
    상기 1-4 단계 및 상기 1-5 단계가 선택적으로 수행되는 것을 특징으로 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법.
  4. 제 3 항에 있어서,
    상기 데이터베이스가 각 엔트리 중 필요없는 엔트리의 삭제시기를 기록하는 에이징 타임 필드를 더 구비하고,
    상기 1-4 단계 및 상기 1-5 단계에서, 상기 에이징 타임 필드에 소정의 설정값인 최대 대기시간을 기록하는 것을 특징으로 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법.
  5. 제 4 항에 있어서,
    상기 에이징 타임 필드값을 소정 단위로 감소시키고, 상기 에이징 타임 필드값이 '0'이 되면 해당 엔트리를 삭제하는 제 6 단계를 더 포함하고,
    상기 제 6 단계는 상기 각 단계와 순서에 무관하게 수행되는 것을 특징으로 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 제 2 단계가,
    상기 포트로부터 상기 호스트로 전송되어 나가는 상기 제 2 DHCP 패킷을 탐지하는 제 2-1 단계;
    상기 제 2 DHCP 패킷으로부터 상기 호스트의 클라이언트 하드웨어 주소, 상기 할당된 IP 주소 및 상기 제 2 DHCP 패킷의 메시지 타입을 추출하는 제 2-2 단계;
    상기 데이터베이스 중 상기 맥 주소 필드값이 상기 클라이언트 하드웨어 주소와 동일한 엔트리를 검색하는 제 2-3 단계;
    검색된 엔트리가 존재하고 상기 메시지 타입이 액크(ACK)이면, 상기 엔트리의 맥 주소 필드에 상기 클라이언트 하드웨어 주소를, 상기 IP 주소 필드에 상기 할당된 IP 주소를 기록하는 제 2-4 단계; 및
    검색된 엔트리가 존재하고 상기 메시지 타입이 낵크(NACK)이면, 상기 검색된 엔트리를 삭제하는 제 2-5 단계를 포함하고,
    상기 2-4 단계 및 상기 2-5 단계가 선택적으로 수행되는 것을 특징으로 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법.
  7. 제 6 항에 있어서,
    상기 데이터베이스가 각 엔트리 중 필요없는 엔트리의 삭제시기를 기록하는 에이징 타임 필드를 더 구비하고,
    상기 2-2 단계에서, 상기 제 2 DHCP 패킷으로부터 IP 주소 리스타임을 추출하고,
    상기 2-4 단계에서, 상기 에이징 타임 필드에 상기 IP 주소 리스타임을 기록하는 것을 특징으로 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법.
  8. 제 7 항에 있어서,
    상기 에이징 타임 필드값을 소정 단위로 감소시키고, 상기 에이징 타임 필드값이 '0'이 되면 해당 엔트리를 삭제하는 제 6 단계를 더 포함하고,
    상기 제 6 단계는 상기 각 단계와 순서에 무관하게 수행되는 것을 특징으로 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법.
  9. 제 1 항에 있어서,
    상기 전송패킷이 ARP 패킷이고,
    상기 제 3 단계에서,
    상기 하드웨어 주소로 센더 하드웨어 주소를 추출하고, 상기 IP 주소로 센더 IP 주소를 추출하는 것을 특징으로 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법.
  10. 제 1 항에 있어서,
    상기 전송패킷이 IP 패킷이고,
    상기 제 3 단계에서,
    상기 하드웨어 주소로 상기 전송패킷의 이더넷 헤더로부터 소스 맥 주소를 추출하고, 상기 IP 주소로 상기 전송패킷의 IP 헤더로부터 소스 IP 주소를 추출하는 것을 특징으로 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법.
  11. 제 1 항에 있어서,
    상기 제 3 단계와 상기 제 4 단계 사이에,
    상기 추출된 하드웨어 주소 및 상기 추출된 IP 주소가 유니캐스트가 아니면 상기 전송패킷의 전송을 차단하는 제 3-1 단계를 더 포함하는 것을 특징으로 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법.
  12. 제 2 항에 있어서,
    상기 제 3 단계와 상기 제 4 단계 사이에,
    상기 목적지 맥 주소 및 상기 목적지 IP 주소가 유니캐스트가 아니면 포워딩시키는 제 3-1 단계를 더 포함하는 것을 특징으로 하는 DHCP 패킷을 이용한 동적 IP 주소할당 환경에서의 ARP/IP 스푸핑 자동 방지 방법.
KR10-2003-0039636A 2003-06-19 2003-06-19 Dhcp 패킷을 이용한 동적 ip 주소할당 환경에서의arp/ip 스푸핑 자동 방지 방법 KR100533785B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2003-0039636A KR100533785B1 (ko) 2003-06-19 2003-06-19 Dhcp 패킷을 이용한 동적 ip 주소할당 환경에서의arp/ip 스푸핑 자동 방지 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0039636A KR100533785B1 (ko) 2003-06-19 2003-06-19 Dhcp 패킷을 이용한 동적 ip 주소할당 환경에서의arp/ip 스푸핑 자동 방지 방법

Publications (2)

Publication Number Publication Date
KR20040109985A true KR20040109985A (ko) 2004-12-29
KR100533785B1 KR100533785B1 (ko) 2005-12-06

Family

ID=37382481

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0039636A KR100533785B1 (ko) 2003-06-19 2003-06-19 Dhcp 패킷을 이용한 동적 ip 주소할당 환경에서의arp/ip 스푸핑 자동 방지 방법

Country Status (1)

Country Link
KR (1) KR100533785B1 (ko)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050063477A (ko) * 2003-12-22 2005-06-28 백남균 네트워크 정보에 대한 보안 시스템 및 그 방법
KR100714109B1 (ko) * 2005-12-01 2007-05-02 한국전자통신연구원 침입 경보 데이터 생성 장치 및 그 방법
KR100779072B1 (ko) * 2004-12-08 2007-11-27 한국전자통신연구원 Arp 공격 탐지 장치 및 방법
KR100803029B1 (ko) * 2006-12-01 2008-02-18 경희대학교 산학협력단 협력적인 통계기반 탐지기법을 이용한 분산서비스거부공격의 방어 방법
KR100807933B1 (ko) * 2006-11-28 2008-03-03 엘지노텔 주식회사 에이알피 스푸핑 감지 시스템 및 감지 방법과 그 방법이저장된 컴퓨터 판독가능 저장매체
KR100863313B1 (ko) * 2007-02-09 2008-10-15 주식회사 코어세스 에이알피 스푸핑 자동 차단 장치 및 방법
WO2009033402A1 (fr) * 2007-09-06 2009-03-19 Huawei Technologies Co., Ltd. Procédé et dispositif pour éviter l'usurpation et l'attaque d'une adresse arp
KR100946162B1 (ko) * 2007-10-22 2010-03-11 주식회사 다산네트웍스 동적 호스트 설정 프로토콜 서버
KR100954348B1 (ko) * 2007-12-07 2010-04-21 주식회사 안철수연구소 패킷 감시 시스템 및 그 방법
KR100958283B1 (ko) * 2007-10-22 2010-05-19 주식회사 다산네트웍스 동적 호스트 설정 프로토콜 스누핑 기능을 구비한 장치
WO2010148605A1 (zh) * 2009-06-23 2010-12-29 中兴通讯股份有限公司 一种宽带接入设备中防止用户地址欺骗的方法和装置
KR101064382B1 (ko) * 2007-06-07 2011-09-14 주식회사 케이티 통신 네트워크에서의 arp 공격 차단 시스템 및 방법
WO2012153913A1 (ko) * 2011-05-12 2012-11-15 주식회사 이스트소프트 차단서버를 이용한 스푸핑 공격 방어방법
KR101489178B1 (ko) * 2013-09-12 2015-02-03 숭실대학교산학협력단 Arp스푸핑 감지단말 및 감지방법
CN107786496A (zh) * 2016-08-25 2018-03-09 大连楼兰科技股份有限公司 针对局域网arp表项欺骗攻击的预警方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101895587B (zh) * 2010-07-06 2015-09-16 中兴通讯股份有限公司 防止用户私自修改ip地址的方法、装置和系统

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050063477A (ko) * 2003-12-22 2005-06-28 백남균 네트워크 정보에 대한 보안 시스템 및 그 방법
KR100779072B1 (ko) * 2004-12-08 2007-11-27 한국전자통신연구원 Arp 공격 탐지 장치 및 방법
KR100714109B1 (ko) * 2005-12-01 2007-05-02 한국전자통신연구원 침입 경보 데이터 생성 장치 및 그 방법
KR100807933B1 (ko) * 2006-11-28 2008-03-03 엘지노텔 주식회사 에이알피 스푸핑 감지 시스템 및 감지 방법과 그 방법이저장된 컴퓨터 판독가능 저장매체
KR100803029B1 (ko) * 2006-12-01 2008-02-18 경희대학교 산학협력단 협력적인 통계기반 탐지기법을 이용한 분산서비스거부공격의 방어 방법
KR100863313B1 (ko) * 2007-02-09 2008-10-15 주식회사 코어세스 에이알피 스푸핑 자동 차단 장치 및 방법
KR101064382B1 (ko) * 2007-06-07 2011-09-14 주식회사 케이티 통신 네트워크에서의 arp 공격 차단 시스템 및 방법
US8302190B2 (en) 2007-09-06 2012-10-30 Huawei Technologies Co., Ltd. Method and apparatus for defending against ARP spoofing attacks
WO2009033402A1 (fr) * 2007-09-06 2009-03-19 Huawei Technologies Co., Ltd. Procédé et dispositif pour éviter l'usurpation et l'attaque d'une adresse arp
KR100958283B1 (ko) * 2007-10-22 2010-05-19 주식회사 다산네트웍스 동적 호스트 설정 프로토콜 스누핑 기능을 구비한 장치
KR100946162B1 (ko) * 2007-10-22 2010-03-11 주식회사 다산네트웍스 동적 호스트 설정 프로토콜 서버
KR100954348B1 (ko) * 2007-12-07 2010-04-21 주식회사 안철수연구소 패킷 감시 시스템 및 그 방법
WO2010148605A1 (zh) * 2009-06-23 2010-12-29 中兴通讯股份有限公司 一种宽带接入设备中防止用户地址欺骗的方法和装置
WO2012153913A1 (ko) * 2011-05-12 2012-11-15 주식회사 이스트소프트 차단서버를 이용한 스푸핑 공격 방어방법
KR101231975B1 (ko) * 2011-05-12 2013-02-08 (주)이스트소프트 차단서버를 이용한 스푸핑 공격 방어방법
US9038182B2 (en) 2011-05-12 2015-05-19 Estsoft Corp. Method of defending against a spoofing attack by using a blocking server
KR101489178B1 (ko) * 2013-09-12 2015-02-03 숭실대학교산학협력단 Arp스푸핑 감지단말 및 감지방법
CN107786496A (zh) * 2016-08-25 2018-03-09 大连楼兰科技股份有限公司 针对局域网arp表项欺骗攻击的预警方法及装置
CN107786496B (zh) * 2016-08-25 2020-06-19 大连楼兰科技股份有限公司 针对局域网arp表项欺骗攻击的预警方法及装置

Also Published As

Publication number Publication date
KR100533785B1 (ko) 2005-12-06

Similar Documents

Publication Publication Date Title
US7379423B1 (en) Filtering subscriber traffic to prevent denial-of-service attacks
US7490351B1 (en) Controlling ARP traffic to enhance network security and scalability in TCP/IP networks
KR100533785B1 (ko) Dhcp 패킷을 이용한 동적 ip 주소할당 환경에서의arp/ip 스푸핑 자동 방지 방법
EP0943200B1 (en) Secure dhcp server
JP3459183B2 (ja) パケット検証方法
US7979903B2 (en) System and method for source IP anti-spoofing security
JP3464610B2 (ja) パケット検証方法
USRE45445E1 (en) Method and arrangement for preventing illegitimate use of IP addresses
WO2012077603A1 (ja) コンピュータシステム、コントローラ、及びネットワーク監視方法
US9882904B2 (en) System and method for filtering network traffic
KR100863313B1 (ko) 에이알피 스푸핑 자동 차단 장치 및 방법
EP2309685B1 (en) A method and apparatus for realizing forwarding the reversal transmission path of the unique address
Ullrich et al. {IPv6} security: Attacks and countermeasures in a nutshell
US20060059552A1 (en) Restricting communication service
JPH11167538A (ja) ファイアウォールサービス提供方法
JPH11168511A (ja) パケット検証方法
CN101459653B (zh) 基于Snooping技术的防止DHCP报文攻击的方法
KR101064382B1 (ko) 통신 네트워크에서의 arp 공격 차단 시스템 및 방법
JP2017143497A (ja) パケット転送装置及びパケット転送方法
Yaibuates et al. A combination of ICMP and ARP for DHCP malicious attack identification
US7551559B1 (en) System and method for performing security actions for inter-layer binding protocol traffic
JP2001326696A (ja) アクセス制御方法
US7613179B2 (en) Technique for tracing source addresses of packets
Bi et al. Source address validation improvement (SAVI) solution for DHCP
CN112383559A (zh) 地址解析协议攻击的防护方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121228

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20131129

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20141128

Year of fee payment: 10