DHCP(Dynamic Host Configuration Protocol)

네임 서버 주소, IP주소, 서브넷 마스크, 게이트웨이 주소 등을 자동으로 할당해주는 프로토콜

  • 동적 설정 프로토콜
  • UDP 기반 프로토콜

이전 프로토콜

RARP

호스트의 MAC주소를 통해 RARP 서버에서 IP 주소를 매핑하여 호스트에게 전달

  • 단점
    • IP 주소만을 제공
    • 서브넷마다 브로드캐스트 방식 필요

BOOTP

RARP의 약점 2가지를 극복하기 위해 만든 클라이언트-서버 프로그램

  • DHCP와 상호호환
    • 패킷 구조가 거의 동일
  • 정적인 프로토콜
    • 고정된 IP 주소와의 바인딩만 가능

동작 원리

  • DHCP Discover: DHCP서버가 있는지 확인을 위한 메시지 생성
    • 출발지 IP: 0.0.0.0, 목적지 IP: 255.255.255.255
  • DHCP Offer: DHCP에서 PC에게 줄 수 있는 IP주소 리스트를 제공
  • DHCP Request: 리스트중 IP 하나를 선택하여 제공을 요청
  • DHCP Ack : IP 및 네트워크 정보를 할당해주고 임대 기간 전달

장단점

장점 단점
N/W 설계 변경이 자유로움 DHCP 클라이언트는 부팅시 브로드캐스트 방식으로 트래픽 전송 (N/S 성능저하)
DHCP 서버에서만 N/W 정보 변경하면 되기 때문에 N/W 구성변경 용이 호스트 전원이 켜 있는 것 만으로 IP 할당됨
실제로 호스트가 사용중일 때만 IP 할당하기 때문에 IP 절약 가능 호스트 전원을 꺼도 임대기간까지 해당 IP는 다른 단말에 할당 X (IP주소 낭비)
사용자가 TCP/IP를 따로 설정할 필요가 없음 호스트 수가 많아지면 서버의 과부하 발생

Starvation 공격

  • 공격자가 DHCP 서버의 할당 가능한 IP를 모두 소진하게 하여 IP할당이 불가능하게 하는 공격
  • 공격자는 DHCPDISCOVER msg를 서로다른 MAC주소로 DHCP에 보내고 서버로부터 OFFER가 오면 REQUEST까지만 하고 실제로 주소는 할당하지 않음

DNS(Domain Name Server)

도메인 네임을 IP 주소로 변환해주는 시스템

  • zone 파일: 개별 도메인에 대한 DNS 정보가 설정되어 있는 파일

구성 요소

  • 루트 서버
    • 전체 트리 영역을 가지는 서버
    • 도메인에 대한 정보를 갖지 않으며, 다른 서버들에 대한 참조만 함
  • 1차 서버(Primary Server)
    • 자신이 권한을 가지는 zone에 대한 파일을 가짐
    • 파일에 대한 생성/관리/갱신의 책임을 가지며 로컬 디스크에 저장
  • 2차 서버(Secondary Server)
    • 영역파일을 생성하지 않으며 갱신하지도 않음
  • 존 전송(Zone Transfer)
    • 마스터에 있는 원본 존 DATA를 슬레이브가 동기화하는 작업(TCP/53)

동작 방식

  • 재귀적(Recursive) 해석
    • 클라이언트가 네임 서버에게 재귀적 요청
    • 서버는 정보가 있는 경우 해당 정보로 응답
    • 없는 경우 다른 서버(부모 서버)에게 새로운 재귀적 요청을 보내어 응답
  • 반복적(Iterative) 해석
    • 클라이언트가 네임 서버에게 반복적 요청
    • 서버는 정보가 있는 경우 해당 정보로 응답
    • 없는 경우 그 정보에 좀 더 가까운 다른 서버의 네임으로 응답

질의 순서

  • 캐시
    • 주소 해석 속도를 높이기 위해 사용
    • 네거티브 캐싱: 너무 오래동안 캐싱정보를 가지고 있으면 정보가 잘못될 수 있음
      • 이 경우 잘못된 매핑 정보를 보냄
  • hosts 파일
    • /etc/hosts
    • 도메인/호스트명과 IP주소 매핑정보를 담고있는 파일
    • 네임 서버에 질의되기 전 참조되는 파일
  • 로컬 DNS 서버
    • Recursive DNS 서버
      • 동일한 작업을 조건이 만족할 때 까지 반복적으로 처리
    • Authoritative DNS 서버
      • 권한이 있는 네임서버
      • 특정 도메인에 대한 정보를 관리, 해당 도메인에 대한 질의만 응답

DNS 스푸핑

스니핑

공격 대상이 DNS 질의를 수행하면 공격자가 스니핑을 하고 있다가 정상 응답보다 빠르게 희생자에게 조작된 웹 사이트 정보를 담은 DNS 응답을 보내 조작된 주소로 접속하게 만드는 공격

  • UDP의 특징 중 먼저 수신한 응답을 제외한 나머지 응답은 모두 버린다는 특징을 이용

보안대책

  • 스니핑 탐지 및 차단
  • 중요한 사이트 IP주소는 hosts파일을 사용

캐시 포이즈닝

DNS 서버의 캐시정보를 조작하는 공격

공격 절차

  • 공격 대상 DNS 서버(Recursive DNS Server)에 조작할 도메인 질의를 다수 전송
    • DNS 서버가 질의에 사용하는 Transaction ID와 출발지 Port 랜덤으로 생성
  • 조작된 응답 중 정상 응답보다 먼저 Transaction ID와 출발지 Port가 일치한 응답이 있으면 조작된 주소 정보가 공격 대상 DNS 서버의 캐시에 저장됨

보안대책

  • 소프트웨어 최신 버전 상태 유지
  • 도메인 관리용 DNS 서버는 재귀적 질의를 허용하지 않음
  • DNSSEC 기술을 활용