DHCP Snooping | Thinh Cao Minh

Tấn công dạng man-in-the-middle (MITM)

Tấn công man-in-the-middle là dạng tấn công phổ biến, tại đó attacker đóng vai trò là một thiết bị nằm ở giữa đường truyền dữ liệu của một kết nối. Mọi traffic trao đổi trên kết nối này đều đi qua thiết bị của attacker. Vì vậy, kẻ tấn công có thể thực hiện đọc, phân tích toàn bộ dữ liệu trao đổi trên đường truyền.

Để thực hiện tấn công dạng này, kẻ tấn công thông thường sẽ thực hiện các bước:

  • Bước 1: Chiếm quyền sở hữu một máy tính bất kỳ trong mạng LAN.
  • Bước 2: Từ máy tính chiếm quyền, kẻ tấn công thực hiện vét cạn toàn bộ DHCP pool IP trên DHCP server “thật” (bằng cách gửi broadcast liên tục các bản tin DHCPDISCOVERY với các MAC giả mạo khác nhau đến DHCP server). Sau khi cấp phát hết IP trong pool cho máy tính giả, DHCP thật sẽ không còn khả năng cung cấp IP cho các máy khác trong mạng.
  • Bước 3: Kẻ tấn công xây dựng một DHCP server “giả” trên máy tính bị chiếm quyền với pool IP chính là những địa chỉ đã vét cạn ở bước 2. Khi cung cấp DHCPOFFER cho máy tính mới, DHCP server giả sẽ điều hướng toàn bộ bản tin qua máy của attacker bằng cách thay trường Gateway trong bản tin OFFER.

Để phòng chống MITM, các hãng công nghệ đã đề xuất nhiều giải pháp khác nhau. Cisco đưa ra giải pháp DHCP Snooping, giới hạn việc chuyển tiếp bản tin DHCP gửi từ server vào mạng.

Thành phần cơ bản của DHCP Snooping

DHCP Snooping chứa các thành phần:

  • Trusted port: Chỉ cổng này mới được phép xử lý tất cả các loại của bản tin DHCP. Thông thường cổng này sẽ là cổng nối với DHCP Server.
  • Untrusted port: Là cổng chỉ có thể xử lý bản tin xin cấp DHCP (DHCPDISCOVERY, DHCPACK). Cổng này thường là cổng nối đến thiết bị của người dùng.

Note: Mặc định, các Layer 2 interface được cấu hình là access port (lệnh switchport mode access) sẽ là untrusted port. Các trunk port sẽ là trusted port.

  • DHCP Snooping Table (hay còn gọi là DHCP Binding Table): Bảng này đóng vai trò là database, giúp lưu trữ thông tin cơ sở dữ liệu các địa chỉ IP đã cấp phát, MAC tương ứng, lease time của IP, VLAN/Interface gắn với thiết bị được cấp IP. Các thông tin này được học dựa vào việc đọc nội dung các bản tin DHCP. Dựa vào bảng này, thiết bị có thể giám sát việc xin cấp địa chỉ IP. Mỗi host sau khi được cấp IP sẽ được mô tả bởi một entry trong bảng, và được coi là Trusted host. Các host không có trong bảng được gọi là Untrusted host.
Hoạt động của DHCP Snooping

Trusted Port và Untrusted Port

Hoạt động cơ bản khi sử dụng tính năng DHCP Snooping là:

  • Untrusted Port chỉ được phép xử lý bản tin DHCP được gửi ra từ Client)
  • Thiết bị sẽ drop các bản tin DHCP gửi ra từ DHCP Server (OFFER, ACK/NACK, DHCPLEASEQUERY ) nếu nhận được trên Untrusted Port. Thiết bị chỉ xử lý, chuyển tiếp các bản tin này khi nhận được chúng trên Trusted Port.

Nhờ vậy, chúng ta tránh được việc tấn công bằng cách giả DHCP server như ở Bước 3 trong cách thức tấn công MITM.

DHCP Snooping Table

show_ip_dhcp_binding_table

Trên dòng thiết bị của Cisco, các thông tin được lưu trong bảng DHCP Snooping Table gồm:

Bảng này được xây dựng, duy trì và cập nhật trong khi xảy ra các sự kiện sau:

  • Nếu nhận được bản tin DHCPACK từ server trên một cổng Trusted, thiết bị sẽ tạo một entry chứa các thông tin lấy từ bản tin OFFER.
  • Nếu nhận được bản tin DHCPRELEASE từ DHCP Server trên một cổng Trusted, thiết bị sẽ xóa entry có IP – MAC tương ứng.
  • Nếu hết thời gian Lease time, thiết bị sẽ xóa entry này.
  • Nếu nhận được bản tin DHCP REQUEST từ DHCP Client để renew địa chỉ IP, và được DHCP chấp thuận, thiết bị sẽ reset Lease time.

Khi nhận được bản tin DHCP trên một Untrusted Port, thiết bị sẽ so sánh với database để kiểm tra tính hợp lệ của bản tin. Bản tin được tính là không hợp lệ khi:

  • Bản tin DHCP nhận được là một bản tin được gửi từ DHCP Server (DHCPOFFER, DHCPACK, DHCPNAK, DHCPLEASEQUERY).
  • Địa chỉ source MAC của bản tin nhận được khác với giá trị DHCP Client Hardware address trong bản tin này. Trên thiết bị của Cisco, người sử dụng có thể disable việc kiểm tra này.
  • Thiết bị nhận được bản tin DHCP chứa trường Relay Agent IP khác 0.0.0.0.
  • Thiết bị nhận được bản tin DHCPRELEASE hoặc bản tin HDCPDECLINE từ 1 untrusted host trong bảng DHCP Snooping table nhưng interface nhận được bản tin không đúng với interface của entry trong bảng.

Nếu sau khi kiểm tra, bản tin là hợp lệ, thiết bị sẽ chuyển tiếp gói tin lên DHCP Server. Ngược lại, nó sẽ coi bản tin này không hợp lệ, có nguy cơ là bản tin do attacker gử ra và drop bản tin DHCP nhận được.

Rate Limit

Những giải pháp nêu ở trên mới giải quyết được vấn đề giả DHCP Server trong mạng (Bước 3 trong phương pháp tấn công MITM ở trên), mà chưa giải quyết được Bước 2, tấn công vét cạn địa chỉ trên DHCP.

Để giải quyết, Cisco đề xuất phương án giới hạn tốc độ nhận bản tin DHCP hợp lệ trên một Port. Tính năng này gọi là Rate Limit. Nếu nhận được một số lượng bản tin DHCP hợp lên trên một port (cả trusted và untrusted), DHCP Snooping sẽ đưa port vào trạng thái error-disabled (tương đương với shutdown).

DHCP Snooping với Option 82

(To be continue)

Share this:

  • Twitter
  • Facebook
Like Loading...

Related

Từ khóa » Dhcp Spoofing Là Gì