Dynamic Host Configuration Protocol DHCP
DHCP 동적 IP address 할당 UDP 67, 68 사용 DHCP 장점 PC가 부팅되면 DHCP서버 에게 IP 주소를 받아오는 방식 UDP 67, 68 사용 67 - 서버 용 68 - 클라이언트 용 DHCP 장점 IP 주소 잘 못 입력을 막을 수 있다. 정확한 네트워크 구성이 보장된다.
DHCP 동작과정
DHCP 동작과정 DHCP Discover DHCH Offer DHCP Request DHCP Ack
DHCP Discover Client -> Server 출발지 포트 번호 : 68 목적지 포트 번호 : 67 'Discover' message 전송 (IP 임대 요청 시작) 출발지 포트 번호 : 68 목적지 포트 번호 : 67 출발지 IP 주소 : 0.0.0.0 목적지 IP 주소 : 255.255.255.255
DHCP Offer Server -> Client 출발지 포트 번호 : 67 목적지 포트 번호 : 68 'Offer' message 전송 (IP 임대 응답) 출발지 포트 번호 : 67 목적지 포트 번호 : 68 출발지 IP 주소 : DHCP 서버 목적지 IP 주소 : 255.255.255.255
DHCP Request Client -> Server 출발지 포트 번호 : 68 목적지 포트 번호 : 67 'Request' message 전송 (IP 임대 최종 요청) 출발지 포트 번호 : 68 목적지 포트 번호 : 67 출발지 IP 주소 : 0.0.0.0 목적지 IP 주소 : 255.255.255.255
DHCP Ack Server -> Client 출발지 포트 번호 : 67 목적지 포트 번호 : 68 'Ack' message 전송 (IP 임대) 출발지 포트 번호 : 67 목적지 포트 번호 : 68 출발지 IP 주소 : DHCP 서버1 목적지 IP 주소 : 255.255.255.255
DHCP Lease 정해진 임대 기간의 50% 50%때 연장 실패 시 87.5% 87.5%에서도 실패 시 임대초기화 임대 연장 순서 DHCP Request DHCH Ack
DHCP 취약점 DHCP DOS 공격 DHCP Starvation 공격 DHCP Spoofing 공격
DHCP 문제점 DHCP의 일반적인 문제 주소충돌 DHCP 주소 획득 실패 DHCP 데이터 베이스의 데이터 변형이나 손실 이용 가능한 IP주소의 고갈
DHCP DOS 공격
DHCP DOS 공격 DHCP DOS 공격 DHCP DISCOVER DHCP RELEASE 반복적으로 보내어 DHCP Service를 무력화
DHCP DOS 공격 DHCP Discover DHCH Release DHCP Discover DHCH Release Attacker DHCP Discover DHCP Server DHCH Release
DHCP DOS 공격 방어 ip dhcp snooping ip dhcp snooping vlan 10 특정 vlan에서 snooping기능 작동 ip dhcp snooping information option Relay agent 활성화 DHCP Reply는 Broadcast이므로 독립된 서브넷에 DHCP서버가 있는 경우 이 기능을 통해서 router를 통과하는 Broadcast Message 생성 int fa 0/1 ip dhcp snooping limit rate 100 해당 인터페이스에 서의 초당 최대 IP 요청 횟수를 제한
DHCP Starvation 공격
DHCP Starvation 공격 DHCP Starvation Attack 공격자가 MAC주소를 계속 변경하여 DHCP DISCOVER 메시지를 보낸다. DHCP는 한정된 IP주소만을 할당하기 때문에 결국에 고갈된다.
DHCP Starvation 공격 DHCP Discover 11:11:11:11:11:11 IP:1.1.1.1 11:11:11:11:11:12 IP:1.1.1.2 DHCP Discover 11:11:11:11:11:13 IP:1.1.1.3 DHCP Discover 11:11:11:11:11:14 Attacker DHCP Server
DHCP Starvation 공격 방어 ip dhcp snooping ip dhcp snooping vlan 10 특정 vlan에서 snooping기능 작동 ip dhcp snooping trust 신뢰성이 있는 인터페이스를 trust 상태로 변환 Trust 상태인 포트에서 들어오는 DHCP 관련 Broadcast는 신뢰한다
DHCP Spoofing 공격
DHCP Spoofing 공격 DHCP Rogue Server 1. 가짜 DHCP서버(Rogue Server)를 설치 2. DHCP DISCOVER 메시지 수신 3. DHCP OFFER를 가짜 DHCP서버가 보냄 4. Client가 Rogue 서버를 DHCP서버로 인식
DHCP Spoofing 공격
DHCP Spoofing 공격
DHCP Spoofing 공격
DHCP Spoofing 공격 방어 ip dhcp snooping ip dhcp snooping vlan 10 특정 vlan에서 snooping기능 작동 ip dhcp snooping trust 해당 인터페이스를 trust 상태로 변환 Trust 상태인 포트에서 들어오는 DHCP 관련 Broadcast는 통과시킴
DNS
DNS란 Domain Name System의 약어로,호스트 이름과 IP주소를 매핑 시켜주는 분산 네이밍 시스템 호스트의 이름을 유일하게 부여하는 한계가 있었고, 호스트의 수가 늘어나면서 네트워크가 감당 할 수 없게 됨 이런 문제점을 해결하기 위해 만든 것이 바로 DNS 이다.
DNS 구조 도메인 구조는 전체적으로 계층적 구조를 지님 최상위 레벨 도메인은 기관이나 국가를 나타내는 경우가 많음 2레벨 도메인은 2자리이름으로 축약해 성격을 나타냄 서비 도메인은 2 레벨 도메인 관리자가 여러 단계로 생성이 가능
Domain 성격 이름 의미 com 기업,영리단체 edu 교육기관,대학 gov 정부,공공기관 int 국제단체 net 네트워크 관련기관 mil 군사기관 org 비영리단체,연구기관 kr 한국 jp 일본 au 호주 ca 캐나다 de 독일 tw 대만
DNS 취약점 DNS Zone Transfer DNS Dynamic Update DNS 코드 취약점 DNS Caching Poisoning
DNS Zone Transfer
DNS Zone Transfer Zone Transfer를 사용하는 이유 공격 방법 방어 방법 보조 DNS서버에게 Domain Name 정보를 넘겨주기 위해 공격 방법 공격용 DNS서버를 보조 DNS서버로 위장시켜 정보를 넘겨받는다. 방어 방법 인증 / 신뢰가는 포트 설정 TSIG 사용
DNS Zone Transfer Zone Transfer 요청 Zone Data 전송 공격자의 DNS Server 위장 Secondary DNS Server Primary DNS Server 공격자
DNS Zone Transfer 방어 named.conf(/etc/named.rfc1912.zones) TSIG allow-transfer { x.x.x.x;}; Zone 데이터를 획득할 수 있는 시스템 제한 Secondary 서버는 zone data를 넘길 일이 없으므로 allow-transfer {none;}; 설정 TSIG BIND-8.2 이상 버전에서 지원 Zone 데이터에 대한 인증과 검증 Primary master name server와 slave name server에 암호 키를 설정 통신할 때 암호 키를 사용해서 인증
DNS Dynamic Update
DNS Dynamic Update DNS Dynamic Update 공격방법 DNS정보를 업데이트하는 관리기능 BIND-8 이상의 버전에서만 사용가능 디폴트 : Disable 단, 기능을 사용할 경우 주의 공격방법 DNS로 하여금 잘못된 정보를 업데이트하도록 유도 DNS는 잘못된 정보를 공격대상에게 알려주어 통신
DNS Dynamic Update DNS 변화 알림 DNS Update요청 거짓 정보 Update 공격자의 DNS Server 위장 Secondary DNS Server Primary DNS Server Secondary DNS Server Primary DNS Client 공격자
DNS Dynamic Update 방어 IP 주소를 이용하여 제한 TSIG Key 먼저 라우터나 Firewall에서 IP Spoofing 공격을 차단하도록 설정 왜냐하면 IP 주소를 이용한 인증은 spoofing 공격을 이용하여 우회할 수 있기 때문 TSIG Key BIND-8.2 이상 버전에서 지원 Zone 데이터에 대한 인증과 검증 Primary master name server와 slave name server에 암호 키를 설정 통신할 때 암호 키를 사용해서 인증
DNS 코드 취약점
DNS 코드 취약점과 방어방법 취약점 방어 방법 DNS 트래픽 사용 안 하는 DNS 서비스 종료 최신버전의 BIND 사용 일반적으로 Firewall을 통과 DNS 트래픽으로 위장하여 악성코드 실행/루트쉘 획득 주로 버퍼 오버플로우 공격 방어 방법 사용 안 하는 DNS 서비스 종료 최신버전의 BIND 사용 Root권한이 아닌 사용자 권한으로 named 실행
DNS Cache Poisoning
DNS Cache Poisoning 취약점 이러한 특성을 이용한 공격 중 하나가 “DNS caching poisoning” 기법
DNS Address Spoofing “com” DNS Server IP : 2.2.2.2 Recursive Query 4. DNS Query “naver.com.”? Root(”.”) DNS Server 5. “naver.com.” DNS Server = 3.3.3.3 3. “com.” DNS Server = 2.2.2.2 2. DNS Query “com.”? 6. DNS Query “café.naver.com.”? “naver.com” DNS Server IP : 3.3.3.3 7. “café.naver.com.” = 4.4.4.4 Local DNS Server 1. DNS Query “café.naver.com.” DNS Client
DNS Cache Poisoning “com” DNS Server IP : 2.2.2.2 Recursive Query Root(”.”) DNS Server Local DNS Server “naver.com” DNS Server IP : 3.3.3.3 2. DNS Query “café.naver.com.” 1. 가짜 cache 정보 전송 3. 잘못된 IP 주소 응답 Attacker DNS Client
DNS Cache Poisoning 방어 Cache/resolving DNS 서버 Recursion 기능을 사용시 사용중인 DNS의 최신 버전의 BIND 사용 Recursion 기능을 사용시 신뢰할 수 있는 호스트에 대해서만 recursive query에 대한 응답이 가능하도록 설정 필요하지 않을 경우에는 Disable
5조 DHCP&DNS 감사합니다.
DNS Cache Poisoning 쿼리를 요청 시 수/송신 포트와 transaction ID를 부여 임의의 값이 생성되는 것을 예측하면 caching 조작이 가능함 이 공격이 성공한다면, DNS 쿼리 데이터를 변경,삭제 등의 작업이 가능
DNS Cache Poisoning 공격자는 로컬 DNS 서버를 목적지로 해서 조작된 응답을 전송하고, 진짜 정보 보다 먼저 응답하여 전송 그러면 로컬 DNS는 공격자가 보낸 정보를 저장하고, 다른 Client들이 정보 요청 시 Cache에 저장된 조작된 정보를 주게 되고, 그로 인해 의도치 않은 다른 사이트로 접속하게 되는 문제점이 발생한다.
DNS Address Spoofing “com” DNS Server IP : 2.2.2.2 Recursive Query 4. DNS Query “naver.com.”? Root(”.”) DNS Server 5. “naver.com.” DNS Server = 3.3.3.3 3. “com.” DNS Server = 2.2.2.2 2. DNS Query “com.”? 6. DNS Query “café.naver.com.”? “naver.com” DNS Server IP : 3.3.3.3 7. “café.naver.com.” = 4.4.4.4 Local DNS Server 1. DNS Query “café.naver.com.” DNS Client
DNS Address Spoofing “com” DNS Server IP : 2.2.2.2 Recursive Query 4. DNS Query “naver.com.”? Root(”.”) DNS Server 5. “naver.com.” DNS Server = 3.3.3.3 3. “com.” DNS Server = 2.2.2.2 2. DNS Query “com.”? 6. DNS Query “café.naver.com.”? “naver.com” DNS Server IP : 3.3.3.3 7. “café.naver.com.” = 4.4.4.4 Local DNS Server 1. DNS Query “café.naver.com.” Attacker DNS Client
DNS Address Spoofing Recursive vs Iterative 주로 Recursive DNS 서버에 공격 진짜 DNS에게 공격자의 DNS 서버로 query하도록 유도 가짜 DNS서버는 거짓정보를 넘겨줌 공격대상은 거짓정보를 바탕으로 통신을 하게 된다
대응책 Bind DNS 설치 했을 때 recursion 기능이 기본적으로 “any” 상태, 이 기능을 신뢰할 수 있는 호스트에 대해서만 recursion query에 응답하도록 설정한다. Bind 서비스는 방화벽과 라우터에서 자신도 모르게 사용되는 서비스이기 때문에, 로컬 DNS 역할을 수행하지 않는다면 bind서비스가 동작중인지 확인하고 중지 시켜야한다.