Bạn đang chặn tấn công bằng cách nào? Allow List hay Deny List – đâu mới là chiến thuật đúng? -

Bạn đang chặn tấn công bằng cách nào? Allow List hay Deny List – đâu mới là chiến thuật đúng? -

Bạn đang chặn tấn công bằng cách nào? Allow List hay Deny List – đâu mới là chiến thuật đúng? -

Bạn đang chặn tấn công bằng cách nào? Allow List hay Deny List – đâu mới là chiến thuật đúng? -

Bạn đang chặn tấn công bằng cách nào? Allow List hay Deny List – đâu mới là chiến thuật đúng? -
Bạn đang chặn tấn công bằng cách nào? Allow List hay Deny List – đâu mới là chiến thuật đúng? -
(028) 35124257 - 0933 427 079

Bạn đang chặn tấn công bằng cách nào? Allow List hay Deny List – đâu mới là chiến thuật đúng?

Trong chiến trường an ninh mạng, nơi mỗi dòng code có thể là cổng vào cho một cuộc tấn công, kỹ năng xử lý dữ liệu đầu vào là tuyến phòng thủ đầu tiên – và đôi khi cũng là cuối cùng. Nếu bạn vẫn còn tin rằng “cấm ký tự nguy hiểm là đủ an toàn”, thì bài viết này dành cho bạn.

Ý nghĩa kỹ thuật – Không chỉ là code, mà là cả hệ thống

Mỗi khi bạn triển khai một phần mềm mới, thêm một module xác thực, hay đơn giản là cấu hình lại một rule trong tường lửa – bạn đang tạo ra các hậu quả kỹ thuật (technical implications).

Ví dụ thực tế:

  • Triển khai SIEM mới → cần mở cổng log, ảnh hưởng rule firewall → có thể cần thêm VLAN hoặc subnet riêng.

  • Chuyển từ xác thực truyền thống sang MFA → tăng bảo mật nhưng yêu cầu đồng bộ hóa máy chủ xác thực và cải tiến app client.

  • Cài thêm agent để phát hiện xâm nhập (EDR) → tiêu tốn CPU RAM, gây chậm máy → ảnh hưởng đến vận hành.

Thông điệp quan trọng: Không có thay đổi nào là “nhỏ” trong hạ tầng – nếu bạn không đánh giá đúng ý nghĩa kỹ thuật của nó.


Allow List – Phòng thủ chủ động bằng cách chỉ cho phép điều bạn hiểu

Allow List là phương pháp cho phép chỉ những giá trị hợp lệ được nhập vào hệ thống. Nó giống như nói với hệ thống rằng: “Chỉ những thứ này được chấp nhận, mọi thứ còn lại đều nghi ngờ.”

Ví dụ thực tế:

  • Trường số điện thoại chỉ nhận chuỗi số 10 chữ số.

  • Trường email chỉ nhận định dạng có @vnpro.vn.

  • Trường mã nhân viên chỉ được nhập các ký tự [A-Z]{3}[0-9]{4}.

HTML5 hỗ trợ rất tốt với input type=email, type=number, và bạn có thể dùng thêm Regular Expression (Regex) để tăng độ chính xác.

Tình huống phức tạp – nhập liệu tự do (free-form):

  • Có cho phép tiếng Nhật, Ả Rập không?

  • Người dùng copy từ Word → Unicode sai chuẩn.

  • Có khoảng trắng vô hình, ký tự “smart quote”, hay ký tự ẩn?

Giải pháp nâng cao:

  • Dùng Unicode character categories để xác định loại ký tự hợp lệ.

  • Dùng normalize() để chuẩn hóa encoding (NFC/NFD) → chống bypass kiểu e + ´ = é.

Lưu ý thực chiến: Allow List cần được cập nhật liên tục theo logic ứng dụng. Nếu không có tool quản lý tốt, rất dễ lỗi logic hoặc từ chối sai (false negative).


Deny List – Hạn chế tạm thời, rủi ro dài hạn

Deny List (block list) là phương pháp cổ điển: liệt kê các mẫu “xấu” và cấm.

Nghe hợp lý:

  • Cấm ', ; để chặn SQLi.

  • Cấm <, > để chặn HTML/XSS.

  • Cấm () để chặn JavaScript.

Nhưng: Bạn không thể biết hết mọi cách hacker có thể dùng để vượt Deny List.

Ví dụ thực tế:

  • SQLi vẫn hoạt động với uNiOn SeLeCt.

  • HTML viết bằng mã &#x3C;script&#x3E;.

Điểm yếu chí mạng:

  • Deny List dễ chặn nhầm.

  • Bỏ sót các mẫu tấn công mới.

  • Không thể dùng làm phòng thủ chính – chỉ phù hợp với tình huống khẩn cấp hoặc vá nhanh.


Tổng kết cho anh em IT: Dùng Allow List, né Deny List

Tips thực chiến cho Dev, Admin, Blue Team:

  • Dùng Allow List với regex, HTML5 validation.

  • Normalize dữ liệu đầu vào trước khi xử lý.

  • Không bao giờ chỉ dựa vào Deny List.

  • Tích hợp input validation vào pipeline CI/CD.

  • Test input với payload từ BurpSuite, fuzzers, OWASP Zap.

Ghi nhớ: Hacker không cần biết bạn validate kiểu gì – họ chỉ cần một điểm bạn bỏ sót.
Input Validation phải là lớp phòng thủ đầu tiên, không phải tấm khiên cuối cùng.


FORM ĐĂNG KÝ MUA HÀNG
Đặt hàng
icon-cart
0