Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bài 3/3: DNSSEc

    [CHIA SẺ KỸ THUẬT] Bảo vệ hệ thống DNS khỏi tấn công DNS Cache Poisoning bằng DNSSEC – Hướng dẫn từ A đến Z

    Một trong những kỹ thuật tấn công mạng nguy hiểm và dễ thực hiện nhất – DNS Cache Poisoning – có thể âm thầm chuyển hướng người dùng đến các trang web giả mạo mà họ không hề hay biết. Nếu bạn đang làm việc với hệ thống mạng nội bộ, máy chủ DNS riêng, hoặc đơn giản là một kỹ sư Cloud/DevOps đang triển khai DNS Resolver cho môi trường hybrid – thì bạn KHÔNG THỂ bỏ qua bài viết này.
    🔐 DNS Cache Poisoning là gì?


    Khi client gửi truy vấn tên miền (như www.cisco.com) đến máy chủ DNS trung gian, nếu phản hồi trả về bị giả mạo (spoofed) và được lưu vào bộ nhớ đệm (cache), thì tất cả truy vấn sau đó đều sẽ bị chuyển hướng sai. Hậu quả? Người dùng truy cập vào trang web giả mạo, nơi kẻ tấn công có thể đánh cắp mật khẩu, cookie, session hoặc cài mã độc vào hệ thống.
    🚧 Chiến lược phòng chống DNS Cache Poisoning

    1. DNSSEC – Gốc rễ của sự tin cậy
    • Sử dụng chữ ký số để đảm bảo tính toàn vẹn và xác thực của bản ghi DNS.
    • Nếu chữ ký không hợp lệ, resolver sẽ từ chối phản hồi.
    • Áp dụng cơ chế chuỗi tin cậy (chain of trust) từ root zone đến từng bản ghi A, CNAME...
    2. Sử dụng DNS over TLS (DoT) hoặc DNS over HTTPS (DoH)
    • Mã hóa truy vấn DNS để ngăn kẻ tấn công đọc hoặc thay đổi dữ liệu khi đang truyền.
    • Tuy không bảo vệ khi authoritative server bị tấn công, nhưng cực hiệu quả với attacker nằm giữa (Man-in-the-Middle).
    3. Random hóa truy vấn
    • Thêm tính ngẫu nhiên cho source porttransaction ID, khiến kẻ tấn công khó đoán và giả mạo.
    4. TTL ngắn và flush cache định kỳ
    • Giảm thời gian sống (TTL) của bản ghi DNS, giảm cơ hội tồn tại của bản ghi giả mạo.
    5. Giới hạn quyền và theo dõi log
    • Hạn chế người có thể chỉnh sửa zone file, audit log thường xuyên để phát hiện truy vấn bất thường.

    🧪 Triển khai DNSSEC với Unbound trên máy khách

    Bước 1: Tải Trust Anchor

    sudo mkdir -p /var/lib/unbound
    sudo chown unbound:unbound /var/lib/unbound
    sudo unbound-anchor -a /var/lib/unbound/root.key
    Bước 2: Cấu hình unbound.conf

    sudo tee /etc/unbound/unbound.conf <<EOF server: auto-trust-anchor-file: "/var/lib/unbound/root.key" forward-zone: name: "." forward-addr: 192.168.1.1 EOF
    Bước 3: Khởi động lại Unbound

    sudo rc-service unbound restart
    Bước 4: Cài dig để kiểm tra DNSSEC

    sudo apk add bind-tools dig +dnssec @127.0.0.1 www.example.com
    • Nếu DNSSEC hoạt động đúng: có trường RRSIG trong phản hồi.
    • Nếu có vấn đề về xác thực (chữ ký sai): sẽ trả về SERVFAIL.

    🔎 Kiểm chứng hiệu quả của DNSSEC


    Giả lập truy vấn với một bản ghi đã bị chỉnh sửa (VD: www.ietf.org) và xem phản hồi:

    dig +dnssec @127.0.0.1 www.ietf.org

    Kết quả trả về SERVFAIL => DNSSEC đã chặn phản hồi độc hại thành công.
    ✅ Kết luận cho cộng đồng MCSA / Azure / AWS


    DNSSEC không phải là một tính năng xa lạ – nó là một chuẩn bắt buộc nếu bạn muốn vận hành một hệ thống DNS an toàn trong môi trường on-prem, hybrid cloud hoặc production trên AWS, Azure.

    Hãy nhớ rằng:
    • Không cấu hình DNSSEC = Chấp nhận bị lừa đảo tên miền
    • Một dòng cấu hình đúng = Ngăn cả mạng khỏi bị tấn công âm thầm


    Nếu bạn thấy bài viết hữu ích, đừng quên chia sẻ cho cộng đồng
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X