Bài 8: Đánh Lừa IDS (IDS Evasion)
1. Tổng quan về Đánh Lừa IDS
IDS Evasion là quá trình kẻ tấn công thay đổi các cuộc tấn công sao cho IDS nhận diện chúng như traffic hợp lệ, từ đó ngăn IDS tạo ra cảnh báo.
Có 18 kỹ thuật chính được phân loại như sau:
1. Insertion Attack 10. Time-To-Live Attacks
2. Evasion 11. Invalid RST Packets
3. Denial-of-Service 12. Urgency Flag
4. Obfuscating 13. Unicode Evasion
5. False Positive Gen. 14. Polymorphic Shellcode
6. Session Splicing 15. ASCII Shellcode
7. Fragmentation Attack 16. Application-Layer Attacks
8. Overlapping Fragments 17. Desynchronization
9. (các kỹ thuật khác) 18. Encryption / Flooding2. Insertion Attack
Khái niệm: Kẻ tấn công lừa IDS đọc các gói tin không hợp lệ mà hệ thống đầu cuối (end system) sẽ loại bỏ. Kết quả là IDS nhận được nhiều gói tin hơn so với hệ thống đầu cuối.
Điều kiện xảy ra: NIDS có chính sách bảo vệ không chặt chẽ bằng hệ thống nội bộ, cho phép IDS chấp nhận những gói tin mà end system sẽ reject.
Mục tiêu: Thêm dữ liệu “giả” vào luồng thông tin mà IDS đọc, khiến IDS phân tích nhầm một chuỗi tấn công vô hại.
Ví dụ:
- IDS chấp nhận ký tự
X(end system thì không), kẻ tấn công chènXvào giữa chuỗi tấn công. - IDS nhận diện chuỗi
phftrong HTTP request:- Bình thường:
GET /cgi-bin/phf?→ IDS cảnh báo - Tấn công:
GET /cgi-bin/p[ký tự lạ]h[ký tự lạ]f?→ IDS không nhận ra patternphfvì bị “chèn” ký tự mà chỉ IDS chấp nhận còn end system loại bỏ → end system thực ra vẫn thấyphf
- Bình thường:
Luồng IDS thấy: C X A T T A C K (có chèn X)
Luồng end system thấy: C A T T A C K (X bị loại bỏ)3. Evasion
Khái niệm: Ngược lại với Insertion Attack. Hệ thống đầu cuối chấp nhận gói tin nhưng IDS lại chặn/loại bỏ gói đó. IDS nhận được ít gói tin hơn so với hệ thống đầu cuối.
Cơ chế: Kẻ tấn công gửi các phần của yêu cầu tấn công trong các gói tin mà IDS sẽ lọc bỏ sai, khiến IDS bỏ qua một số phần của stream.
Ví dụ:
- Tấn công gửi từng byte (byte-by-byte).
- Một byte bị IDS loại bỏ → IDS không thể ghép lại đủ chuỗi tấn công → không phát hiện được.
- End system nhận đủ tất cả các byte → bị tấn công thành công.
Luồng IDS thấy: C A T _ A C K (_ bị IDS drop)
Luồng end system thấy: C A T T A C K (nhận đủ)4. Insertion & Evasion – Các Trường Hợp Thực Tế
Nguyên nhân sâu xa của hai kỹ thuật trên đến từ sự khác biệt trong cách NIDS và end system xử lý các trường header:
| Trường | Vấn đề cho NIDS |
|---|---|
| TTL | Gói tin có đến end system trước khi TTL = 0? |
| Length, DF | Tất cả downstream link có thể truyền gói lớn mà không phân mảnh? |
| IP Option(s) | End system/router có chấp nhận gói tin có thêm IP Options không? |
| TCP Option(s) | End system có chấp nhận gói tin có thêm TCP Options không? |
| Data | End system có chấp nhận dữ liệu trong gói SYN không? |
| ToS | Gói tin có tuân thủ tất cả router nội bộ (DiffServ)? |
| IP Frag Offset | End system có lắp ráp các fragment chồng chéo không? |
| TCP Seq No | End system có lắp ráp các segment chồng chéo không? |
Nguyên nhân cốt lõi:
- Khai thác vấn đề trong NIDS về phân tích mạng và giao thức cơ bản (phân tích header, xử lý options, lắp ráp fragment/segment).
- Khác biệt trong hiện thực các giao thức (không theo chuẩn; các OS khác nhau trong protocol stack).
- Cấu hình end system và router khác nhau.
5. Denial-of-Service Attack (DoS) nhắm vào IDS
Thay vì tấn công trực tiếp vào mạng mục tiêu, kẻ tấn công nhắm vào bản thân IDS để làm nó không hoạt động được.
Các hình thức DoS IDS:
- Khóa thiết bị IDS.
- Tạo quá nhiều cảnh báo khiến người quản trị không thể xem xét hết.
- Làm đầy ổ cứng để không thể ghi log.
- Tiêu tốn tài nguyên xử lý (CPU) để IDS bỏ sót các tấn công sau.
- Tấn công vào server lưu trữ alert tập trung → làm chậm hoặc crash → các tấn công sau không bị ghi log.
Các dạng DoS cụ thể:
- DoS CPU: Nhắm vào các hoạt động tốn tính toán như lắp ráp fragment/segment, mã hóa/giải mã.
- DoS bộ nhớ: Nhắm vào quản lý trạng thái (TCP 3-way handshake, lắp ráp fragment).
- DoS băng thông: Khiến NIDS không xử lý kịp gói tin đang truyền.
- DoS hệ thống phản ứng: Tạo nhiều false positive, chặn truy cập hợp lệ bằng cách giả mạo địa chỉ.
6. False Positive Generation
Cơ chế:
Chi tiết: Kẻ tấn công có hiểu biết về IDS, tạo các gói tin được thiết kế để trigger cảnh báo nhưng thực ra vô hại. Lượng cảnh báo khổng lồ khiến admin không thể phân biệt đâu là tấn công thật, từ đó traffic tấn công thực sự “trượt qua” mà không bị chú ý.
7. Obfuscating (Làm Rối Mã)
Khái niệm: Kẻ tấn công encode payload tấn công sang dạng khác sao cho chỉ host đích decode được, còn IDS thì không nhận ra.
Các kỹ thuật làm rối mã:
- Thay đổi đường dẫn được tham chiếu trong signature để đánh lừa HIDS.
- Encode sang Unicode để bypass bộ lọc của IDS, nhưng Web server vẫn hiểu được.
- Code đa hình (Polymorphic) tạo ra các pattern tấn công khác biệt mỗi lần, không có signature cố định nào có thể phát hiện.
- Các tấn công trong HTTPS cũng là một dạng làm rối mã vì IDS không thể đọc được nội dung đã mã hóa.
Câu hỏi trong slide: Đoạn code JS obfuscated thực hiện công việc gì?
// Đây là đoạn code đã bị obfuscate (rối mã)
var _0x5823=['log','bind','warn',...,'Hello\x20IDPS\x20Class!',...];
// ...
function hi(){
// ... (nhiều logic che giấu)
alert(_0x113adf(0x1ab)); // Thực ra chỉ gọi alert()
}
hi();Trả lời: Sau khi deobfuscate, đoạn code trên chỉ đơn giản thực hiện:
function hi() {
alert("Hello IDPS Class!");
}
hi();Toàn bộ sự phức tạp là để che giấu chuỗi "Hello IDPS Class!" và lệnh alert() khỏi các bộ lọc/IDS phân tích code tĩnh.
8. Session Splicing
Khái niệm: Kẻ tấn công chia nhỏ traffic tấn công thành nhiều gói tin nhỏ sao cho không một gói nào đơn lẻ kích hoạt cảnh báo trên IDS.
Phân biệt với IP Fragmentation:
| Đặc điểm | IP Fragmentation | Session Splicing |
|---|---|---|
| Nguyên nhân | Gói tin quá lớn cho data link layer | Cố tình chia nhỏ để qua mặt IDS |
| Kích thước fragment | Theo MTU | Nhỏ hơn cần thiết |
| Mục đích | Kỹ thuật mạng bình thường | Tấn công có chủ đích |
Ví dụ với Whisker:
Chuỗi gốc: "GET / HTTP/1.1"
Sau splicing: "GE" | "T " | "/" | " H" | "T" | "TP" | "/1" | ".1"Mỗi gói chỉ chứa 1-2 ký tự → IDS không thể nhận ra pattern tấn công nếu không lắp ráp lại.
Kỹ thuật thêm delay: Gửi gói với độ trễ lớn để qua mặt quá trình lắp ráp trên IDS vì một số IDS ngừng lắp ráp nếu không nhận gói tiếp theo sau một khoảng thời gian nhất định.
Biện pháp đối phó:
- Fragment reassembly
- Session reassembly
- Gửi gói TCP RST để đóng session tấn công
9. Fragmentation Attack
Nguyên tắc: Khai thác sự khác biệt về timeout lắp ráp fragment giữa IDS và host đích.
Ví dụ 1: Timeout host > Timeout IDS
Host timeout: 20s | IDS timeout: 10s
Kẻ tấn công gửi fragment cách nhau 15s
Timeline:
t=0s: Gửi Frag 1 → IDS nhận, Host nhận
t=15s: IDS timeout (10s đã qua) → DROP các fragment tiếp theo
Host chưa timeout (20s chưa qua) → VẪN nhận
t=15s: Gửi Frag 2 → IDS DROP, Host nhận và lắp ráp → TẤN CÔNG THÀNH CÔNGVí dụ 2: Timeout host < Timeout IDS (phức tạp hơn)
Host timeout: 30s | IDS timeout: 60s
t=0s: Gửi Frag 2, 4 GIẢ (payload sai) → Cả IDS và Host nhận
t=30s: Host timeout → bỏ Frag 2, 4 giả (không nhận được Frag 1)
IDS vẫn giữ Frag 2, 4 giả (chưa timeout)
30s<t<60s: Gửi Frag 1, 3 THẬT
IDS cố lắp ráp 4 frag (có Frag 2,4 giả + Frag 1,3 thật)
→ checksum không hợp lệ → IDS DROP
30s<t<60s: Gửi Frag 2, 4 THẬT
Host nhận Frag 1,2,3,4 thật → lắp ráp → TẤN CÔNG THÀNH CÔNG
IDS đã timeout với chuỗi cũ → KHÔNG PHÁT HIỆN10. Overlapping Fragments
Khái niệm: Tạo ra các fragment với sequence number chồng chéo nhau.
Ví dụ: Fragment 1 gồm 100 bytes với seq=1; Fragment 2 có seq=96 (chồng lên 4 bytes cuối của Fragment 1).
Vấn đề cốt lõi: Khi lắp ráp lại, host cần quyết định: khi hai fragment có seq chồng chéo, giữ byte nào?
- Windows W2K/XP/2003: Giữ fragment gốc (đến trước) khi trùng seq.
- Cisco IOS: Chọn fragment đến sau có cùng seq.
Khai thác: Kẻ tấn công gửi fragment “vô hại” trước (IDS phân tích thấy OK), sau đó gửi fragment chồng chéo chứa payload tấn công. Tùy OS của victim, payload tấn công sẽ được lắp ráp theo cách khác với những gì IDS thấy.
11. Time-To-Live (TTL) Attacks
Điều kiện: Kẻ tấn công cần biết trước topology mạng (dùng traceroute để đếm số router giữa attacker và victim).
Các bước tấn công:
Kết quả: IDS lắp ráp nhầm với Frag 2 giả → bỏ qua. Victim nhận Frag 2 thật → bị tấn công.
12. Invalid RST Packets
Nền tảng:
- Cờ RST trong TCP dùng để đóng kết nối TCP.
- TCP dùng checksum 16 bit để kiểm tra lỗi.
Cơ chế tấn công:
1. Attacker gửi gói RST với checksum KHÔNG HỢP LỆ đến victim
2. IDS nhận gói RST → nghĩ TCP session đã kết thúc → NGỪNG theo dõi
3. Victim nhận gói RST → kiểm tra checksum → thấy sai → DROP (bỏ qua)
4. Victim vẫn duy trì kết nối TCP
5. Attacker tiếp tục giao tiếp với victim trong khi IDS đã "rời đi"Kết quả: IDS bị “đánh lừa” rằng kết nối đã đóng, trong khi thực tế kết nối vẫn còn.
13. Urgency Flag
Nền tảng: Cờ URG trong TCP header đánh dấu dữ liệu cần xử lý khẩn cấp. Khi URG bật, Urgent Pointer trỏ đến byte cuối của dữ liệu khẩn cấp trong segment.
Vấn đề: Nhiều IDS không xem xét Urgent Pointer và xử lý toàn bộ gói tin, trong khi victim chỉ xử lý dữ liệu khẩn cấp.
Theo RFC 1122: Urgency pointer sẽ khiến 1 byte dữ liệu nằm ngay sau dữ liệu khẩn cấp bị mất khi kết hợp dữ liệu khẩn cấp và dữ liệu thường.
Ví dụ trong slide:
Packet 1: ABC
Packet 2: DEF (Urgency Pointer = 3, tức byte thứ 3 là 'F', byte NGAY SAU là 'G' bị mất)
Packet 3: GHI
Victim xử lý: A B C D E F _ H I → "ABCDEFHI" (bỏ 'G')
IDS xử lý: A B C D E F G H I → "ABCDEFGHI" (đầy đủ)Kẻ tấn công có thể nhúng payload tấn công vào byte bị mất theo góc nhìn của IDS.
14. Unicode Evasion
Nền tảng: Unicode là hệ thống mã hóa ký tự hỗ trợ trao đổi văn bản. Một ký tự có thể có nhiều dạng biểu diễn:
/→%u2215e→%u00e9\→5ChoặcC19ChoặcE0819C
Cơ chế tấn công:
- Một số IDS xử lý Unicode không chính xác.
- Attacker encode chuỗi tấn công sang dạng Unicode → IDS không khớp được signature → bỏ qua.
- Web server vẫn decode được và xử lý → bị tấn công.
Ví dụ:
Chuỗi tấn công thật: /cgi-bin/cmd.exe
Dạng Unicode: %u002f%u0063%u0067%u0069-bin/cmd.exe
IDS tìm "/cgi-bin" → không tìm thấy → không cảnh báo
Web server decode → thấy "/cgi-bin/cmd.exe" → thực thi15. Polymorphic Shellcode (Shellcode Đa Hình)
Vấn đề với signature-based IDS: IDS dùng các string phổ biến trong shellcode làm signature. Ví dụ: \x90\x90\x90 (NOP sled), các system call đặc trưng…
Cách hoạt động của Polymorphic Shellcode:
[GetPC Code] → [Decryptor] → [Encrypted Payload/Shellcode]- GetPC Code: Lấy địa chỉ hiện tại của instruction pointer.
- Decryptor: Giải mã payload thực sự tại runtime.
- Encrypted Payload: Shellcode thực sự, được mã hóa/encode khác nhau mỗi lần gửi.
Kết quả: Mỗi lần gửi, pattern của shellcode khác hoàn toàn → không có signature cố định nào có thể match → IDS signature-based trở nên vô dụng.
16. ASCII Shellcode
Khái niệm: Shellcode được viết chỉ sử dụng các ký tự trong bảng mã ASCII in được (printable ASCII, giá trị 0x20–0x7E).
Lý do hiệu quả: Các bộ lọc IDS thường tìm kiếm byte có giá trị cao (>0x7F) hoặc các byte đặc biệt như \x00, \x90. ASCII shellcode vượt qua được các filter này.
Hạn chế và cách khắc phục:
- Không phải tất cả lệnh assembly đều có thể biểu diễn trực tiếp bằng ASCII.
- Giải pháp: Sử dụng tập hợp các lệnh khác kết hợp để đạt được kết quả tương đương.
Ví dụ:
| Assembly | Mã máy | ASCII |
|---|---|---|
pop eax | \x58 | X |
xor al, 58 | \x34\x58 | 4X |
Bằng cách kết hợp các lệnh này, có thể xây dựng shellcode đầy đủ chỉ từ ký tự ASCII, ví dụ chạy /bin/sh.
17. Application-Layer Attacks
Cơ chế: Các ứng dụng thường nén dữ liệu (audio, video, hình ảnh) để tối ưu tốc độ truyền.
Vấn đề: IDS không thể kiểm tra nội dung bên trong dữ liệu đã nén → không phát hiện được signature tấn công ẩn trong đó.
Khai thác: Attacker nhúng payload tấn công vào dữ liệu nén. Khi ứng dụng đích giải nén và xử lý → lỗ hổng bị khai thác mà IDS không hay biết.
18. Desynchronization
Pre-Connection SYN
Cơ chế:
1. Attacker gửi gói SYN giả với checksum KHÔNG HỢP LỆ trước khi tạo kết nối thật
2. IDS nhận SYN → mở TCP Control Block → theo dõi sequence number của SYN này
3. Victim nhận SYN → kiểm tra checksum → DROP
4. Attacker gửi nhiều gói SYN giả với seq number khác nhau
→ IDS liên tục cập nhật lại seq number theo dõi
→ IDS bị "mất phương hướng" (desynchronized)
5. Kết nối thật được thiết lập với seq number khác
→ IDS không thể theo dõi đúng luồng dữ liệuPost-Connection SYN
Cơ chế:
1. Kết nối TCP đã được thiết lập bình thường
2. Attacker gửi gói SYN TRONG luồng dữ liệu đang chạy (với seq number khác)
3. Victim bỏ qua gói SYN này (vì kết nối đã tồn tại)
4. IDS thấy SYN mới → đồng bộ lại seq number theo SYN mới
5. IDS bỏ qua tất cả dữ liệu hợp lệ của kết nối gốc (vì đang chờ seq number khác)
6. Attacker gửi RST với seq number mới → IDS đóng kết nối "ảo" của nó
7. Attacker giao tiếp với victim trong vùng "mù" của IDS19. Mã Hóa (Encryption) và Flooding
Mã hóa:
Khi attacker đã thiết lập được một session được mã hóa với victim (ví dụ HTTPS, SSH tunnel), đây là hình thức đánh lừa IDS hiệu quả nhất. IDS không thể đọc nội dung mã hóa → mọi tấn công trong session đó đều vô hình.
Flooding:
Attacker gửi một lượng lớn traffic “nhiễu” để:
- Làm IDS không xử lý kịp.
- Ẩn traffic tấn công thực sự trong “đám đông” các gói tin nhiễu.
20. Biện Pháp Đối Phó
21. IDS Penetration Testing
Mục đích: Đánh giá khả năng lọc traffic ra/vào mạng và kiểm tra tính hiệu quả của IDS.
Lý do cần Pentest IDS:
- Kiểm tra IDS có đảm bảo thi hành policy bảo mật không.
- Kiểm tra IDS có đủ mạnh để ngăn tấn công từ bên ngoài không.
- Đánh giá hiệu quả của vành đai bảo vệ mạng.
- Kiểm tra lượng thông tin mạng có thể bị lộ từ phía kẻ xâm nhập.
- Kiểm tra các lỗ hổng bảo mật trên IDS.
- Đánh giá tương quan giữa các rule IDS và hành động được thực hiện.
Quy trình 20 bước:
- Vô hiệu hóa Trusted Host
- Thực hiện Insertion Attack
- Thực hiện kỹ thuật Evasion
- Thực hiện tấn công DoS
- Làm rối mã / encode payload tấn công (ví dụ: encode để bypass IDS nhưng IIS vẫn decode được)
- Tạo False Positive để bypass IDS
- Session Splicing (giữ session active lâu hơn thời gian lắp ráp của IDS)
- Unicode Evasion
- Fragmentation Attack (timeout IDS nhỏ hơn và lớn hơn victim)
- Overlapping Fragments (tạo fragment với seq number chồng chéo)
- Time-To-Live Attack
- Invalid RST Packets (ngăn IDS theo dõi gói tin)
- Urgency Flag (IDS không xem xét urgent pointer)
- Polymorphic Shellcode
- ASCII Shellcode
- Application-Layer Attack (kiểm tra xử lý dữ liệu nén)
- Encryption và Flooding
- Post-Connection SYN Attack
- Pre-Connection SYN Attack
- Tài liệu hóa tất cả thông tin thu thập được
Câu Hỏi Trắc Nghiệm
Câu 1. Trong kỹ thuật Insertion Attack, điều nào sau đây mô tả đúng nhất?
- A. IDS nhận ít gói tin hơn so với hệ thống đầu cuối
- B. IDS nhận nhiều gói tin hơn so với hệ thống đầu cuối
- C. IDS và hệ thống đầu cuối nhận cùng số gói tin
- D. Hệ thống đầu cuối không nhận được gói tin nào
Câu 2. Kỹ thuật Evasion khác với Insertion Attack ở điểm nào?
- A. Evasion làm IDS nhận nhiều gói tin hơn end system
- B. Evasion làm IDS nhận ít gói tin hơn end system
- C. Evasion chỉ áp dụng với giao thức UDP
- D. Evasion không liên quan đến gói tin mạng
Câu 3. Mục tiêu chính của kỹ thuật False Positive Generation là gì?
- A. Làm crash IDS bằng quá nhiều gói tin
- B. Tạo lượng lớn cảnh báo giả để che giấu traffic tấn công thực sự
- C. Mã hóa traffic tấn công
- D. Chia nhỏ payload thành nhiều gói tin
Câu 4. Trong Session Splicing với công cụ Whisker, chuỗi “GET / HTTP/1.1” được chia thành dạng nào?
- A. Chia theo từng từ: “GET”, “/”, “HTTP/1.1”
- B. Chia theo từng ký tự/cặp ký tự: “GE”, “T “, “/”, " H”, “T”, “TP”, “/1”, “.1”
- C. Mã hóa toàn bộ chuỗi sang Base64
- D. Gửi ngược từ cuối lên đầu
Câu 5. Kỹ thuật Fragmentation Attack khai thác điều gì?
- A. Sự khác biệt về MTU giữa IDS và victim
- B. Sự khác biệt về timeout lắp ráp fragment giữa IDS và host đích
- C. Sự khác biệt về thuật toán checksum
- D. Sự khác biệt về TCP window size
Câu 6. Trong Fragmentation Attack ví dụ 1 (host timeout=20s, IDS timeout=10s), nếu kẻ tấn công gửi fragment cách nhau 15s thì kết quả gì xảy ra?
- A. Cả IDS và host đều lắp ráp thành công
- B. IDS timeout và drop, host vẫn lắp ráp thành công → tấn công qua mặt IDS
- C. Host timeout và drop, IDS vẫn phát hiện
- D. Cả IDS và host đều timeout và drop
Câu 7. Overlapping Fragments khai thác điểm yếu gì?
- A. IDS không thể xử lý gói tin có TTL thấp
- B. Sự khác biệt giữa các OS trong cách xử lý fragment có sequence number chồng chéo
- C. IDS không hỗ trợ giao thức IPv6
- D. IDS không lưu trạng thái TCP connection
Câu 8. Trong TTL Attack, tại sao kẻ tấn công cần biết topology mạng trước?
- A. Để biết băng thông của từng link
- B. Để tính toán giá trị TTL thấp vừa đủ để gói tin giả chỉ đến IDS mà không đến victim
- C. Để biết địa chỉ IP của IDS
- D. Để lựa chọn cổng tấn công phù hợp
Câu 9. Invalid RST Packets attack dựa trên đặc điểm gì của IDS?
- A. IDS không kiểm tra TCP checksum
- B. IDS tin tưởng gói RST và dừng theo dõi session, trong khi victim kiểm tra checksum và loại bỏ gói RST không hợp lệ
- C. IDS không hỗ trợ cờ RST
- D. Victim không bao giờ kiểm tra checksum
Câu 10. Trong kỹ thuật Urgency Flag, theo RFC 1122, điều gì xảy ra với byte ngay sau dữ liệu khẩn cấp?
- A. Byte đó được xử lý ưu tiên cao nhất
- B. Byte đó bị mất khi kết hợp dữ liệu khẩn cấp và dữ liệu thường
- C. Byte đó được sao lưu vào buffer dự phòng
- D. Byte đó được gửi lại bằng gói tin riêng
Câu 11. Unicode Evasion hoạt động dựa trên nguyên lý gì?
- A. Mã hóa toàn bộ payload bằng AES
- B. Một ký tự có thể có nhiều dạng biểu diễn Unicode, IDS có thể không nhận ra tất cả
- C. Unicode không hỗ trợ ký tự đặc biệt trong URL
- D. Web server không thể decode Unicode
Câu 12. Điểm khác biệt chính của Polymorphic Shellcode so với shellcode thông thường là gì?
- A. Polymorphic shellcode luôn nhỏ hơn về kích thước
- B. Pattern của shellcode thay đổi mỗi lần gửi, không có signature cố định để IDS match
- C. Polymorphic shellcode chỉ hoạt động trên Windows
- D. Polymorphic shellcode không cần decoder
Câu 13. Cấu trúc của Polymorphic Shellcode bao gồm những thành phần nào?
- A. Header + Payload + Footer
- B. GetPC Code + Decryptor + Encrypted Payload
- C. Loader + Injector + Executor
- D. Encoder + Buffer + NOP Sled
Câu 14. ASCII Shellcode giúp bypass IDS bằng cách nào?
- A. Nén shellcode để giảm kích thước
- B. Chỉ sử dụng ký tự ASCII in được, tránh các byte đặc biệt mà IDS thường lọc
- C. Mã hóa shellcode bằng Base64
- D. Chia shellcode thành nhiều gói tin nhỏ
Câu 15. Application-Layer Attack khai thác điểm yếu gì của IDS?
- A. IDS không hiểu giao thức HTTP
- B. IDS không thể phát hiện signature trong dữ liệu đã nén
- C. IDS không hỗ trợ giao thức HTTPS
- D. IDS không kiểm tra gói tin UDP
Câu 16. Desynchronization Pre-Connection SYN hoạt động như thế nào?
- A. Gửi gói SYN hợp lệ trước, sau đó xóa kết nối
- B. Gửi gói SYN với checksum không hợp lệ trước khi tạo kết nối thật, làm IDS mất đồng bộ sequence number
- C. Gửi nhiều gói SYN hợp lệ cùng lúc để làm IDS quá tải
- D. Gửi gói SYN với TTL bằng 0
Câu 17. Điểm khác biệt giữa Pre-Connection SYN và Post-Connection SYN Desynchronization là gì?
- A. Pre-Connection xảy ra trước khi TCP handshake, Post-Connection xảy ra sau khi kết nối đã được thiết lập
- B. Pre-Connection chỉ hoạt động với IPv4, Post-Connection chỉ hoạt động với IPv6
- C. Pre-Connection dùng cờ FIN, Post-Connection dùng cờ SYN
- D. Không có sự khác biệt, cả hai giống nhau hoàn toàn
Câu 18. Tại sao mã hóa (Encryption) được xem là hình thức đánh lừa IDS hiệu quả nhất?
- A. Vì mã hóa làm chậm tốc độ truyền tin, IDS không kịp xử lý
- B. Vì IDS không thể đọc nội dung đã mã hóa → mọi tấn công trong session mã hóa đều vô hình
- C. Vì mã hóa thay đổi địa chỉ IP nguồn
- D. Vì mã hóa làm gói tin có kích thước lớn hơn MTU
Câu 19. Flooding trong ngữ cảnh đánh lừa IDS nhằm mục đích gì?
- A. Làm sập hoàn toàn IDS bằng quá tải điện
- B. Tạo traffic nhiễu để IDS không xử lý kịp, ẩn traffic tấn công thực trong đó
- C. Làm đầy bộ nhớ đệm của victim
- D. Thay đổi routing table của mạng
Câu 20. Biện pháp nào giúp đối phó hiệu quả với Polymorphic Shellcode?
- A. Chỉ chặn các gói tin có TTL thấp
- B. Tìm kiếm các NOP opcode khác ngoài
0x90 - C. Tăng thời gian timeout lắp ráp fragment
- D. Sử dụng IDS dạng passive thay vì inline
Câu 21. Traffic Normalizer trong biện pháp đối phó giúp gì?
- A. Tăng tốc độ xử lý gói tin của IDS
- B. Loại bỏ các phần đáng ngờ trong gói tin trước khi chúng đến IDS
- C. Mã hóa lại tất cả traffic để bảo vệ
- D. Tự động block IP nguồn khi phát hiện tấn công
Câu 22. Trong DoS nhắm vào IDS, tại sao trạng thái “fail-open” lại nguy hiểm?
- A. Vì fail-open làm IDS ghi quá nhiều log
- B. Vì khi IDS bị crash ở trạng thái fail-open, nó vẫn cho traffic đi qua, mạng không bị gián đoạn nhưng không còn được bảo vệ
- C. Vì fail-open làm IDS chặn tất cả traffic
- D. Vì fail-open tiêu tốn nhiều điện năng hơn
Câu 23. Kỹ thuật nào trong đánh lừa IDS hoạt động ở mức phân mảnh IP (Network Layer)?
- A. Session Splicing
- B. Fragmentation Attack
- C. Application-Layer Attack
- D. Unicode Evasion
Câu 24. Đâu là điểm khác biệt giữa IP Fragmentation bình thường và Session Splicing?
- A. IP Fragmentation xảy ra do gói quá lớn cho data link layer; Session Splicing cố tình chia nhỏ payload để tấn công
- B. IP Fragmentation chỉ xảy ra với IPv6; Session Splicing chỉ với IPv4
- C. IP Fragmentation do router thực hiện; Session Splicing do victim thực hiện
- D. Không có sự khác biệt
Câu 25. Kỹ thuật obfuscating encode payload sang HTTPS được phân loại là gì?
- A. Session Splicing
- B. Một dạng làm rối mã (Obfuscating)
- C. Fragmentation Attack
- D. DoS Attack
Câu 26. Trong obfuscation đoạn code JS ở slide, sau khi deobfuscate, chương trình thực sự làm gì?
- A. Tấn công vào hệ thống IDS
- B. Chỉ đơn giản là hiển thị alert “Hello IDPS Class!”
- C. Thu thập thông tin phiên làm việc
- D. Thực thi shellcode
Câu 27. Trong IDS Penetration Testing, bước đầu tiên là gì và tại sao?
- A. Thực hiện DoS attack ngay lập tức để kiểm tra độ chịu tải
- B. Vô hiệu hóa Trusted Host để kiểm tra IDS phản ứng như thế nào khi mất nguồn tin cậy
- C. Cài đặt thêm rule vào IDS
- D. Tắt toàn bộ IDS
Câu 28. Bước cuối cùng (bước 20) trong quy trình IDS Penetration Testing là gì?
- A. Thực hiện tấn công mã hóa
- B. Tài liệu hóa tất cả thông tin thu thập được
- C. Cài đặt exploit thêm vào hệ thống
- D. Xóa log của IDS
Câu 29. Lý do chính để thực hiện IDS Penetration Testing là gì?
- A. Để tìm cách tắt IDS nhanh nhất
- B. Để kiểm tra IDS có đảm bảo thi hành policy bảo mật và đủ mạnh để ngăn tấn công không
- C. Để cài đặt malware vào IDS
- D. Để thay thế IDS bằng firewall
Câu 30. Theo slide, công cụ nào có thể thực hiện Session Splicing attack?
- A. Metasploit và Burp Suite
- B. Nessus và Whisker
- C. Wireshark và tcpdump
- D. Nmap và Masscan
Câu 31. Ký tự \ có thể được biểu diễn bằng bao nhiêu dạng Unicode theo slide?
- A. 1 dạng: 5C
- B. 2 dạng: 5C và C19C
- C. 3 dạng: 5C, C19C, E0819C
- D. 4 dạng
Câu 32. ASCII Shellcode có hạn chế gì và được khắc phục như thế nào?
- A. Quá lớn về kích thước; khắc phục bằng nén
- B. Không phải tất cả lệnh assembly đều chuyển trực tiếp sang ASCII; khắc phục bằng dùng tập lệnh thay thế kết hợp
- C. Chỉ chạy trên Linux; khắc phục bằng cross-compilation
- D. Quá chậm; khắc phục bằng JIT compilation
Câu 33. Trong ví dụ ASCII shellcode: pop eax có mã máy \x58 tương đương ASCII X. xor al, 58 có mã máy gì?
- A.
\x90\x58 - B.
\x34\x58 - C.
\x58\x34 - D.
\x00\x58
Câu 34. Biện pháp nào đối phó trực tiếp với Fragmentation Attack?
- A. Chặn tất cả gói tin có TTL thấp
- B. Đảm bảo IDS chuẩn hóa được gói tin đã phân mảnh và lắp ráp chúng đúng thứ tự
- C. Tăng băng thông mạng
- D. Sử dụng VPN cho tất cả kết nối
Câu 35. Trong DoS nhắm vào IDS, tấn công vào bộ nhớ (memory) nhắm vào hoạt động nào?
- A. Tính toán mã hóa AES
- B. Quản lý trạng thái như TCP 3-way handshake, lắp ráp fragment/segment
- C. Phân giải DNS
- D. Ghi log vào ổ cứng
Câu 36. Tại sao kẻ tấn công muốn thực hiện DoS vào server lưu trữ alert tập trung?
- A. Để lấy cắp dữ liệu từ server
- B. Để khi tấn công tiếp theo xảy ra sẽ không bị ghi log
- C. Để tăng tốc độ mạng
- D. Để cài malware vào server
Câu 37. Biện pháp nào giúp đối phó với TTL Attack?
- A. Chặn gói ICMP TTL expired ở external interface và đặt TTL thành giá trị lớn
- B. Tắt tất cả giao thức ICMP
- C. Giảm TTL mặc định xuống 1
- D. Chặn tất cả gói tin từ bên ngoài
Câu 38. Công cụ Traffic IQ Professional được dùng để làm gì?
- A. Tự động vá lỗ hổng IDS
- B. Theo dõi và kiểm tra hoạt động thiết bị bảo mật bằng cách tạo traffic ứng dụng chuẩn và traffic tấn công giữa 2 VM
- C. Phân tích log của IDS
- D. Cấu hình rule cho Snort
Câu 39. Tại sao Obfuscating encode sang Unicode lại hiệu quả để bypass Web Application IDS?
- A. Vì Unicode không được hỗ trợ bởi HTTP
- B. Vì IDS có thể xử lý Unicode không chính xác, nhưng Web server vẫn decode và xử lý được
- C. Vì Unicode làm tăng kích thước gói tin vượt MTU
- D. Vì Unicode thay đổi địa chỉ IP nguồn
Câu 40. Trong kỹ thuật Post-Connection SYN, victim phản ứng thế nào với gói SYN giả được gửi trong luồng dữ liệu?
- A. Victim reset kết nối ngay lập tức
- B. Victim bỏ qua gói SYN vì đang tham chiếu đến một kết nối đã được thiết lập
- C. Victim gửi SYN-ACK như bình thường
- D. Victim gửi gói RST về cho attacker
Câu 41. Trong biện pháp đối phó, biện pháp nào liên quan trực tiếp đến Session Splicing?
- A. Cập nhật signature antivirus
- B. Fragment reassembly và Session reassembly
- C. Đào tạo user nhận biết tấn công
- D. Định nghĩa DNS server trên router
Câu 42. Kỹ thuật nào đánh lừa IDS bằng cách khiến IDS nghĩ rằng một TCP session đã kết thúc trong khi thực tế nó vẫn còn?
- A. Session Splicing
- B. Invalid RST Packets
- C. Fragmentation Attack
- D. Unicode Evasion
Câu 43. Urgency Flag attack khai thác sự khác biệt nào giữa IDS và victim?
- A. IDS xử lý toàn bộ payload, victim chỉ xử lý dữ liệu khẩn cấp (và bỏ qua 1 byte sau)
- B. IDS chỉ xử lý header, victim xử lý toàn bộ payload
- C. IDS xử lý nhanh hơn victim
- D. IDS dùng buffer nhỏ hơn victim
Câu 44. Một kẻ tấn công muốn bypass IDS mà không cần kỹ thuật phức tạp nhất, chỉ cần đã thiết lập kết nối với victim. Kỹ thuật nào phù hợp nhất?
- A. Polymorphic Shellcode
- B. Fragmentation Attack
- C. Mã hóa (Encryption) — thiết lập session HTTPS/SSH
- D. ASCII Shellcode
Câu 45. Overlapping Fragments exploit sự khác biệt giữa Windows XP và Cisco IOS như thế nào?
- A. Windows XP giữ fragment gốc khi trùng seq; Cisco IOS chọn fragment đến sau
- B. Windows XP chọn fragment đến sau; Cisco IOS giữ fragment gốc
- C. Cả hai đều giữ fragment gốc
- D. Cả hai đều chọn fragment đến sau
Câu 46. Mục tiêu cuối cùng của chuỗi tấn công trong TTL Attack là gì?
- A. Làm IDS crash hoàn toàn
- B. IDS lắp ráp gói tin vô nghĩa và drop, còn victim nhận đủ payload tấn công thật → tấn công thành công mà không bị ghi log
- C. Làm victim mất kết nối mạng
- D. Đánh cắp session token của victim
Câu 47. Biện pháp đối phó nào giúp ngăn chặn False Positive Generation?
- A. Cập nhật signature thường xuyên và phân tích sâu traffic khả nghi
- B. Tắt tất cả cảnh báo IDS
- C. Chặn tất cả traffic từ bên ngoài
- D. Giảm sensitivity của IDS xuống mức thấp nhất
Câu 48. Trong Insertion Attack, ví dụ về việc chèn ký tự Japanese vào giữa chuỗi phf minh họa điều gì?
- A. IDS không hỗ trợ Unicode
- B. IDS chấp nhận và không lọc các ký tự mà end system sẽ loại bỏ, làm pattern bị che khuất trong góc nhìn của IDS nhưng end system vẫn thấy
phf - C. IDS không kiểm tra URL path
- D. End system không xử lý được Unicode
Câu 49. Tại sao biện pháp “định nghĩa DNS server cho client trên router” giúp ngăn đánh lừa IDS?
- A. Ngăn kẻ tấn công thay đổi DNS để redirect traffic qua DNS giả, tránh IDS không giám sát đúng luồng traffic thực
- B. DNS server nhanh hơn giúp IDS xử lý nhanh hơn
- C. DNS server bảo vệ chống lại SQL injection
- D. DNS server mã hóa traffic tự động
Câu 50. Đoạn code obfuscated JavaScript trong slide có mục đích gì trong bối cảnh IDS evasion?
- A. Minh họa cách kẻ tấn công có thể ẩn malware JavaScript khỏi các IDS dựa trên signature, vì IDS không thể đọc được logic thực của code
- B. Là một exploit thực sự dùng để tấn công
- C. Mã hóa key của IDS
- D. Tạo ra false positive để làm nhiễu IDS
Câu 51. Biện pháp nào sau đây đối phó trực tiếp với tấn công DoS nhắm vào IDS?
- A. Tăng thời gian timeout lắp ráp fragment
- B. Sử dụng IDS dự phòng, giám sát tài nguyên IDS, và lưu trữ alert phân tán
- C. Chặn toàn bộ traffic UDP
- D. Giảm số lượng rule trên IDS
Câu 52. Trong quy trình IDS Pentest, tại sao bước kiểm tra Unicode Evasion (bước 8) quan trọng với môi trường web?
- A. Vì tất cả website đều dùng ASCII
- B. Vì nhiều web application IDS/WAF kiểm tra pattern tấn công dạng ASCII nhưng không decode đúng Unicode, cho phép tấn công web (SQLi, XSS, Path Traversal) bypass qua dạng Unicode
- C. Vì Unicode làm chậm server web
- D. Vì Unicode chỉ ảnh hưởng đến giao thức FTP