Bảo mật cho hạ tầng DHCP – Phần 1


Ở phần 1 của bài về bảo mật cho hạ tầng DHCP này, tôi sẽ nói về các loại mối đe dọa khác nhau nhằm vào DHCP server và đi cùng với đó là những rủi ro mà các mối đe dọa đó có thể gây ra cho hạ tầng DHCP cũng như hệ thống thông tin của bạn.

Hẳn chúng ta đều biết, DHCP là một trong những dịch vụ thiết yếu trong các hệ thống mạng ngày nay. Đã có rất nhiều bài viết đề cập tới phương thức hoạt động của giao thức DHCP cũng như là các bước triển khai và quản lý một hạ tầng DHCP. Vì thế, ở đây tôi chỉ xin tóm tắt lại một số ưu điểm mà dịch vụ DHCP mang lại để từ đó giúp bạn thấy rõ tầm quan trọng của việc phải bảo mật cho nó đúng cách:

(+) Quản lý tặp trung việc cấp phát địa chỉ IP (và các thiết lập cần thiết khác như các địa chỉ của DNS server, WINS server, default gateway…) cho các máy tính trong mạng được thực hiện tại DHCP server giúp giảm thiểu thời gian cần thiết để để cấu hình (hoặc cấu hình lại) cho các thông số IP đó.

(+) Việc tự động gán các địa chỉ IP cũng giúp tránh được những lỗi phát sinh từ việc nhập bằng tay các thông số IP tại mỗi máy. Ví dụ, DHCP giúp ngăn chặn các xung đột về địa chỉ xảy ra khi hai (hay nhiều) máy được gán cùng một IP.

Ở phần 1 của bài về bảo mật cho hạ tầng DHCPnày, tôi sẽ nói về các loại mối đe dọa khác nhau nhằm vào DHCP server và đi cùng với đó là những rủi ro mà các mối đe dọa đó có thể gây ra cho hạ tầng DHCP cũng như hệ thống thông tin của tổ chức.

Nhưng trước hết chúng ta cùng ôn lại một chút về cách thức làm việc của giao thức DHCP để thấy được lỗ hổng nào tồn tại trong DHCP mà có thể bị kẻ xấu khai thác. Quá trình truyền thông giữa một máy được cấu hình sử dụng IP động (DHCP client) với một máy được cấu hình đảm nhận chức năng cấp phát IP động (DHCP server) cơ bản diễn ra như sau:

(1) Đầu tiên, một DHCP client muốn nhận mới một địa chỉ IP (chứ không phải muốn phục hồi lại thời gian “thuê” của một địa chỉ IP mà nó đang sử dụng) sẽ gửi lên toàn mạng (broadcast) một thông điệp DHCP Discover có chứa địa chỉ MAC của nó để tìm kiếm sự hiện diện của DHCP server.

(2) Nếu tồn tại sự hoạt động của (các) DHCP server thuộc cùng subnet với DHCP client trên thì (các) server này sẽ phản hồi lại cho client bằng một thông điệp DHCP Offer có chứa một địa chỉ IP (và các thiết lập TCP/IP khác) như là một lời đề nghị cho “thuê” (lease) địa chỉ.

(3) Ngay khi nhận được gói DHCP Offer đến đầu tiên, client sẽ trả lời lại cho server (dĩ nhiên là gửi cho server nào mà nó nhận được gói DHCP Offer đến đầu tiên trong trường hợp có nhiều DHCP server nằm cùng subnet với nó) một thông điệp DHCP Request như là sự chấp thuận lời đề nghị cho “thuê” trên.

(4) Cuối cùng, server gửi lại cho client thông điệp DHCP Acknowledgment để xác nhận lần cuối “hợp đồng cho thuê địa chỉ” với client. Và từ đây client có thể sử dụng địa chỉ IP vừa “thuê” được để truyền thông với các máy khác trên mạng.

Như vậy, nhìn chung DHCP làm việc khá đơn giản nhưng điểm mấu chốt ở đây là xuyên suốt quá trình trao đổi thông điệp giữa server và client không hề có sự xác thực hay kiểm soát truy cập nào. Vì vậy:

(+) server không có cách nào biết được rằng nó có đang liên lạc với một legitimate client (tạm dịch là máy hợp pháp, tức là một máy không bị điều khiển để thực hiện các mục đích xấu) hay không.

(+) và ngược lại client cũng không thể biết được là nó có đang liên lạc với một legitimate server hay không.

Khả năng trong mạng xuất hiện các rogue DHCP client và rogue DHCP server (rogue tạm dịch là máy “đều giả”, tức là một máy giả tạo, bị điều khiển để thực hiện các hành vi xấu) tạo ra nhiều vấn đề đáng quan tâm như:

1. Một rogue server có thể cung cấp cho các legitimate client các thông số cấu hình TCP/IP giả và trái phép như: địa chỉ IP không hợp lệ, sai subnet mask, hoặc sai địa chỉ của default gateway, DNS server nhằm ngăn chặn client truy cập tài nguyên, dịch vụ trong mạng nội bộ hoặc Internet (đây là hình thức của tấn công DoS).

Việc thiết lập một rogue server như vậy có thể thực hiện được bằng cách sử dụng các chiêu “social engineering” để có được khả năng tiếp cận vật lý rồi kết nối rouge server vào mạng.

2. Attacker có thể thoả hiệp thành công với một legitimate client nào đó trong mạng và thực hiện cài đặt rồi thực thi trên client này một chương trình có chức năng liên tục gửi tới DHCP server các gói tin yêu cầu xin cấp IP với các địa chỉ MAC nguồn không có thực cho tới khi toàn bộ dải IP trong scope của DHCP server này bị nó “thuê” hết. Điều này dẫn tới server không còn IP nào để có thể cấp phát cho các legitimate client khác. Hậu quả là các client này không thể truy cập vào mạng.

3. Một rủi ro nữa có thể xảy ra nếu như attacker phá vỡ được các hàng rào bảo vệ mạng và đoạt được quyền kiểm soát DHCP server. Lúc này, attacker có thể sẽ tạo ra những sự thay đổi trong cấu hình của DHCP server theo ý muốn như:

* thiết lập lại dải IP, subnet mask của scope để tạo ra tình trạng DoS trong mạng.

* đổi thiết lập DNS để chuyển hướng yêu cầu phân giải tên miền của client tới rogue DNS (do attacker dựng lên), kết quả là client có thể sẽ bị dẫn dụ tới các website giả mạo được xây dựng nhằm mục đích đánh cắp thông tin tài khoản của client hoặc website có chứa mã độc mà sẽ được tải về máy client.

* thay đổi default gateway trỏ về máy của attacker để toàn bộ thông tin mà client gửi ra ngoài mạng sẽ được chuyển tới máy của attacker (thay vì đi tới default gateway thực sự), sau đó attacker sẽ chụp lại các thông tin này trước khi chuyển tiếp chúng tới gateway thực sự của mạng và client vẫn truyền thông bình thường với các máy ngoài mạng nhưng người dùng lại không hề nhận biết được rằng họ đã để lộ thông tin cho attacker (đây là một dạng của tấn công Man-in-the-Middle).

* chưa hết, nếu bạn đang chạy dịch vụ DHCP server đã bị tấn công trên cùng một máy với Domain Controller thì hậu quả sẽ còn nghiêm trọng hơn nữa khi attacker sẽ có khả năng nắm được cơ sở dữ liệu Active Directory và gây thêm nhiều rắc rối khác cho hệ thống của bạn.

Như vậy, có khá nhiều nguy cơ đe dọa tới tính bí mật, toàn vẹn và độ sẵn sàng của hạ tầng DHCP và từ đó tạo ra những rủi ro khác nhau cho toàn bộ hệ thống mạng của tổ chức. Trong phần 2 của bài viết, chúng ta này sẽ cùng thảo luận về những giải pháp cụ thể và những công cụ hữu ích để đảm bảo an toàn cho DHCP server trên cả hai nền tảng là Linux và Windows.

–manthang

Tham khảo: 

[1] http://www.windowsecurity.com/articles/dhcp-security-part1.html

[2] http://www.windowsecurity.com/articles/DHCP-Security-Part2.html

[3] http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol#Security

[4] http://technet.microsoft.com/en-us/library/cc780347(WS.10).aspx

[5] http://www.tcpipguide.com/free/t_DHCPSecurityIssues.htm

[6] http://www.softpanorama.org/Net/Application_layer/DHCP/dhcp_security.shtml

[7] http://en.wikipedia.org/wiki/Rogue_DHCP

[8] http://my.safaribooksonline.com/book/networking/microsoft-windows/9780735621749/implementing-security-for-dhcp-servers/ch20lev1sec1#X2ludGVybmFsX0ZsYXNoUmVhZGVyP3htbGlkPTk3ODA3MzU2MjE3NDkvMjk3

5 comments

  1. sao chờ phần 2 của bạn mà lâu quá. Phần 1 hay thật, mình đang muốn đọc phần giải pháp quá rùi!!

      1. Thanks! nhưng có bài viết nào nói thêm về DHCP security trên nền tảng Linux không vậy bạn?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s