Phòng thủ chủ động: CTI và AI-powered NIDS

Đây là seris đọc sách để tìm hiểu về Threat intelligence. Phục vụ cho luận văn của tôi, đọc chung nếu bạn hứng thú

Phòng thủ chủ động: CTI và AI-powered NIDS
Chuỗi bài viết này tôi đọc trong cuốn, Big Data Analytics and Intelligent Systems for Cyber Threat Intelligence . Link download sách ở cuối bài

Bảo mật mạng hiện đại không còn là việc dựng lên bức tường lửa và hy vọng kẻ thù không vượt qua được. Trong kỷ nguyên Big Data, phòng thủ phải chủ động (Active Defense).

Đầu tiên chúng ta hiểu từ khóa như này:
1. CTI (Cyber Threat Intelligence): Hiểu kẻ thù trước khi chúng tấn công, nghe ngóng trên các trang diễn đàn của hacker, hỏi từ những người khác đã từng bị tấn công ...
2. WAF (Web Application Firewall ) & HTTPS Analysis: Tường lừa và https (Nếu bạn chưa biết HTTPs thì bấm vào đây my buddy Link)
3. AI-Driven NIDS (Network Intrusion Detection System): Hệ thống phát hiện xâm nhập biết 'tự học' để bắt những kẻ biến hình.

Tại sao CTI là vũ khí bắt buộc?

Hacker không phải lúc nào cũng là con sói cô độc. Khi một lỗ hổng mới được tìm thấy, nó lập tức được rao bán trên Dark Web. Khi một công cụ tấn công hiệu quả được viết ra, nó được chia sẻ (hoặc bán) cho hàng nghìn nhóm tội phạm khác. Chúng có cộng đồng, có ngôn ngữ chung, và tốc độ chia sẻ kinh khủng. Ngược lại, các chuyên gia bảo mật thường sẽ không bao giờ có group nào để chia sẻ thiết kế bảo mật hiện tại của công ty mình ... đâu nhỉ ?

Chương 1 của cuốn sách "Big Data Analytics and Intelligent Systems for Cyber Threat Intelligence" không chỉ là một bài đánh giá công cụ đơn thuần. Nó gõ vào đầu cách chúng ta đang tổ chức phòng thủ. Hãy xách chatgpt lên và xem tại sao Cyber Threat Intelligence (CTI) lại là chìa khóa để cân bằng cuộc chơi này.

CTI thực sự là cái quái gì?

Intelligence - "Tình báo". Đúng rồi đấy, tôi biết một đống bros cũng nhầm là Intelligent mà, giờ thì sửa lại đi. Trong cuốn sách, các tác giả đưa ra một Taxonomy (Bảng phân loại) rất chi tiết để định nghĩa CTI. Để dễ hiểu, hãy hình dung CTI giống như việc dự báo thời tiết cho không gian mạng.

Đầu tiên là Dữ liệu (Data), giống như bản tin "Độ ẩm 98%, gió Đông Bắc cấp 3". Nó vô nghĩa với người thường (trừ khi bạn đang crush một cô dẫn trương trình thời tiết), tương tự như đống log firewall hay địa chỉ IP trong bảo mật. Tiếp theo là Thông tin (Information), cung cấp ngữ cảnh như "Trời sắp mưa to ở quận 1", tương ứng với việc biết IP này thuộc mạng botnet Mirai và đang scan cổng 23. Cuối cùng, Tình báo (Intelligence) là lời khuyên hành động cụ thể: "Mang áo mưa đi, tránh đường Nguyễn Hữu Cảnh vì sẽ ngập". Trong bảo mật, đó là thông tin nhóm APT28 đang nhắm vào lỗ hổng cụ thể và bạn cần vá ngay bản patch KB12345. CTI biến những đống log vô tri thành hành động cụ thể. Nếu bạn mua một feed CTI về chỉ để "ngắm" mà không giúp bạn block được cuộc tấn công nào nhanh hơn, thì đó là CTI "dởm".

Tháp phân cấp thông tin trong CTI

Tại sao chúng ta cần một ngôn ngữ chung?

Tuy nhiên, việc chia sẻ thông tin không đơn giản khi mỗi người nói một ngôn ngữ khác nhau. Bạn dùng Firewall của Checkpoint, đối tác dùng SIEM của Splunk, còn chuyên gia phân tích malware lại dùng công cụ của FireEye. Khi phát hiện một mã độc mới, làm sao để ba ông này "nói chuyện" với nhau ngay lập tức mà không cần con người ngồi dịch?

Cuốn sách nhấn mạnh vai trò của các chuẩn giao tiếp như STIX (Structured Threat Information Expression)TAXII (Trusted Automated eXchange of Indicator Information). STIX đóng vai trò là "ngữ pháp", quy định cách mô tả một mối đe dọa, ví dụ như kẻ tấn công nào dùng mã độc gì tấn công vào lỗ hổng nào. Trong khi đó, TAXII là "đường dây điện thoại", quy định cách gửi gói tin STIX từ máy này sang máy kia một cách an toàn. Nếu hệ thống bảo mật của bạn không nói được "tiếng STIX", bạn đang tự cô lập mình khỏi tri thức nhân loại.

Đoạn này tóm lại là 2 cái này là ngôn ngữ giao tiếp chung của các cái thiết bị bảo mật này. Giống như khi bị hacker tấn công thì một thiết bị sẽ cảnh báo cả bầy là "có cái IP 103.105.130.80 đang quét cổng, chặn nó đi".

Bài toán niềm tin được giải quyết thế nào?

Có công cụ, có ngôn ngữ chung, nhưng liệu chúng ta có dám chia sẻ? Đây là phần thú vị nhất của chương 1 khi các tác giả chỉ ra một nghịch lý: Càng chia sẻ rộng, độ tin cậy càng thấp. Làm sao bạn dám tin một thông tin tình báo được gửi từ một người lạ trên mạng?

Kiểu như ...

"Chúng ta đang có một cuộc tấn công, để phòng thủ hãy open port 22 của tất cả các server ra - Trust me bro"

Cuốn sách phân tích các mô hình chia sẻ (Sharing Platforms) như MISP hay OpenTAXII và cách chúng xử lý bài toán niềm tin. Mô hình Hub-and-Spoke với một tổ chức trung gian uy tín đứng giữa đảm bảo độ tin cậy nhưng lại chậm chạp và dễ nghẽn cổ chai. Ngược lại, mô hình Peer-to-Peer (P2P) cực nhanh nhưng khó kiểm soát chất lượng và dễ bị tuồn tin giả. MISP (Malware Information Sharing Platform) được đánh giá cao nhất vì nó lai ghép được cả hai, cho phép tạo các "Trust Circle" (Vòng tròn tin cậy). Bạn có thể chia sẻ thông tin nhạy cảm chỉ với đối tác thân thiết, nhưng chia sẻ các mã Hash virus thông thường cho cả cộng đồng.

Các mô hình chia sẻ thông tin tình báo

Trong trường hợp này, nhanh là tốt!

Giải quyết được niềm tin, chúng ta đối mặt với cái tiếp theo: Tốc độ. Trong các thí nghiệm đo đạc, thời gian để một thông tin tình báo lan truyền qua hệ thống TAXII chỉ tính bằng mili-giây. Điều này cực kỳ quan trọng vì vòng đời của một địa chỉ IP dùng cho tấn công hiện nay rất ngắn. Hacker có thể thuê một VPS, tấn công trong 15 phút, rồi hủy nó. Nếu quy trình CTI của bạn mất 1 tiếng để cập nhật danh sách chặn, thì bạn đang "đuổi hình bắt bóng". CTI không phải là báo cáo để đọc vào cuối tháng, mà phải là dòng chảy dữ liệu thời gian thực được nạp trực tiếp vào hệ thống phòng thủ tự động.

Cuốn sách mở đầu bằng một thông điệp mạnh mẽ về sự hợp tác. Trong kỷ nguyên Big Data, kẻ thù lớn nhất không phải là Malware, mà là sự quá tải thông tin. Đừng cố tự mình phân tích mọi thứ. Hãy tham gia vào các mạng lưới chia sẻ như MISP và tự động hóa việc tiêu thụ tin tình báo bằng STIX/TAXII. Đừng để hệ thống bảo mật của bạn là một hòn đảo cô độc giữa đại dương Internet đầy cá mập.

ModSecurity vs. WebKnight: Khi 'Paranoia Level' biến WAF thành kẻ thù của Developer

Paranoia Level (Mức độ hoang tưởng) là chỉ số đánh giá cường độ của sự nghi ngờ, sợ hãi vô căn cứ, cảm giác bị theo dõi hoặc hãm hại mà không có cơ sở khách quan.

Hãy tưởng tượng bạn thuê một bảo vệ cho ngôi nhà của mình. Anh ta chặn tất cả kẻ trộm, tuyệt vời! Nhưng anh ta cũng chặn luôn cả shipper, người giao pizza, và thậm chí cả... bạn mỗi khi bạn đeo kính râm. Đó chính là thực trạng của nhiều hệ thống WAF (Web Application Firewall) hiện nay khi bị cấu hình sai.

Chương 2 của cuốn sách "Big Data Analytics and Intelligent Systems for Cyber Threat Intelligence" mang đến một cuộc đối đầu thú vị giữa hai cái tên đình đám trong làng WAF mã nguồn mở: ModSecurityAQTRONIX WebKnight.

Vẫn luôn là Recall và False Positive

Các tác giả đã thực hiện một thí nghiệm để so sánh khả năng phát hiện các tấn công phổ biến như SQL Injection, XSS và XXE. Kết quả thật sự gây sốc khi WebKnight phát hiện được 100% các cuộc tấn công, một con số trong mơ. Trong khi đó, ModSecurity có tỷ lệ phát hiện dao động từ 53% đến 92% tùy thuộc vào mức độ "hoang tưởng" (Paranoia Level) được cài đặt. Nếu chỉ nhìn vào con số này, bạn sẽ muốn cài WebKnight ngay lập tức. Nhưng hãy khoan, WebKnight đạt được tỷ lệ phát hiện tuyệt đối nhưng đi kèm với một cái giá đắt cắt cổ: Tỷ lệ báo động giả (False Positive Rate) lên tới 99.6%. Điều này có nghĩa là cứ 1000 khách hàng truy cập vào website, thì 996 người bị chặn lại vì nghi ngờ là hacker. WebKnight đã biến website thành một pháo đài "nội bất xuất, ngoại bất nhập", an toàn tuyệt đối nhưng cũng chết chắc về mặt kinh doanh.

So sánh ModSecurity và WebKnight

Giải thích thuật ngữ:

  • WAF (Web Application Firewall): Tường lửa ứng dụng web, lá chắn bảo vệ website khỏi các cuộc tấn công.
  • SQL Injection (SQLi): Kỹ thuật tấn công chèn mã SQL độc hại để thao túng cơ sở dữ liệu.
  • XSS (Cross-Site Scripting): Tấn công chèn mã JavaScript độc hại vào trang web để đánh cắp thông tin người dùng.
  • XXE (XML External Entity): Lỗ hổng cho phép hacker can thiệp vào quá trình xử lý dữ liệu XML của ứng dụng.
  • Recall (Độ nhạy): Tỷ lệ phát hiện đúng các cuộc tấn công. Recall 100% nghĩa là không bỏ sót kẻ trộm nào.
  • False Positive (Dương tính giả): Báo động nhầm. Coi người tốt là kẻ xấu.

ModSecurity và cái bẫy "Paranoia Level"

Ngược lại với sự cực đoan của WebKnight, ModSecurity cho phép điều chỉnh mức độ nhạy cảm thông qua Paranoia Level (PL). Ở mức mặc định (PL1), nó ít báo động giả nhưng bỏ lọt nhiều tấn công (chỉ bắt được khoảng 53% SQLi). Khi tăng lên mức cao nhất (PL4), nó bắt được hầu hết tấn công (khoảng 92%) nhưng tỷ lệ báo động giả cũng tăng vọt lên 60%. Đây chính là bài toán khó giải nhất của Security Engineer: Cân bằng giữa an toàn (Security) và trải nghiệm người dùng (Usability).

Đừng đua theo con số

Nghiên cứu này vô tình chỉ ra một sai lầm phổ biến khi triển khai WAF là cố gắng chặn tất cả mọi thứ. Trong môi trường thực tế, báo động giả là kẻ thù nguy hiểm hơn cả hacker. Nếu WAF bỏ lọt một request độc hại, bạn có thể bị hack, nhưng nếu WAF chặn nhầm một giao dịch thanh toán hợp lệ, bạn chắc chắn mất tiền và mất khách hàng. Vì vậy, lời khuyên cho các Sysadmin là đừng bao giờ bật WAF ở chế độ Block ngay ngày đầu tiên. Hãy để nó chạy ở chế độ Detection để học traffic thực tế, và liên tục tinh chỉnh rule. Một WAF được cấu hình tốt là một WAF "tàng hình" với người dùng thật và là ác mộng với hacker, còn một WAF cấu hình tồi chính là ác mộng của bộ phận kinh doanh.

Khi hacker cũng dùng HTTPS?

Ngày xưa, quản trị mạng có thể dễ dàng kiểm tra nội dung gói tin đi qua cổng để chặn mã độc. Nhưng ngày nay, với sự phổ biến của HTTPS, mọi gói tin đều được mã hóa với https ... đương nhiên admin không xem được. Hacker tận dụng điều này để giấu mã độc và lệnh điều khiển. Chương 4 của cuốn sách giải quyết bài toán hóc búa này thông qua việc phân tích lưu lượng mã hóa.

Nhìn vỏ đoán ruột: "Ma thuật" Metadata

Khi không thể giải mã nội dung gói tin, chúng ta buộc phải dựa vào Metadata. Giống như việc theo dõi một cuộc giao hàng mờ ám, dù không biết bên trong hộp là gì nhưng ta có thể quan sát kích thước gói hàng, thời gian giao và tần suất. Tương tự, các nhà nghiên cứu sử dụng Machine Learning để phân tích các đặc trưng như kích thước gói tin và khoảng thời gian giữa các lần gửi. Malware thường có những đặc điểm rất riêng, ví dụ như giao tiếp theo nhịp điệu đều đặn (heartbeat) khác hẳn với hành vi ngẫu nhiên của con người.

Quy trình phân tích lưu lượng mã hóa bằng Metadata

Giải thích thuật ngữ:

  • HTTPS (Hypertext Transfer Protocol Secure): Giao thức truyền tải siêu văn bản an toàn, dữ liệu được mã hóa.
  • Metadata (Siêu dữ liệu): Dữ liệu mô tả về dữ liệu. Ví dụ: Bạn gửi thư, nội dung thư là data, còn địa chỉ người gửi/người nhận, ngày giờ gửi là metadata.
  • C&C (Command & Control): Máy chủ điều khiển mà hacker dùng để ra lệnh cho các máy tính bị nhiễm mã độc (Botnet).
  • Worms (Sâu máy tính): Loại mã độc có khả năng tự nhân bản và lây lan qua mạng.
  • Shellcode: Đoạn mã dùng để khai thác lỗ hổng phần mềm, thường mở ra một cửa sổ dòng lệnh (shell) cho hacker.
  • UDP/TCP: Các giao thức truyền tải dữ liệu trên mạng. TCP đảm bảo tin cậy (có kiểm tra), UDP ưu tiên tốc độ (không kiểm tra).

Label Propagation: Khi dữ liệu thiếu nhãn

Một thách thức lớn là việc gán nhãn cho hàng triệu gói tin là bất khả thi. Tác giả đề xuất sử dụng thuật toán Label Propagation, một kỹ thuật bán giám sát cho phép lan truyền nhãn từ một số ít dữ liệu đã biết sang các dữ liệu tương đồng. Kết quả thử nghiệm cho thấy phương pháp này rất hiệu quả trong việc phát hiện các loại Worms và Shellcode đang lẩn trốn.

Phản biện: Cuộc chiến AI vs AI

Tuy nhiên, hacker cũng không ngu (trong phần đa trường hợp là rất khôn!). Khi biết các hệ thống phòng thủ dựa vào Metadata, chúng bắt đầu sử dụng kỹ thuật Traffic Padding, chèn thêm dữ liệu rác để thay đổi kích thước gói tin hoặc tạo độ trễ ngẫu nhiên để phá vỡ nhịp điệu. Sự ra đời của các giao thức mới như QUIC cũng làm thay đổi hoàn toàn các mô hình phân tích cũ. Phân tích lưu lượng mã hóa là xu hướng tất yếu, nhưng đây luôn là cuộc chơi mèo vờn chuột, khi AI học cách bắt chuột thì chuột cũng học cách đi bằng hai chân.

Tại sao NIDS hiện đại cần phải 'biết học'?

Bạn có biết Suricata hay Snort không? Đó là những huyền thoại trong làng NIDS, hoạt động như những người gác cổng cần mẫn với danh sách "truy nã" (Signatures) trên tay. Tuy nhiên, nếu kẻ trộm đeo mặt nạ, chúng sẽ dễ dàng vượt qua. Đó là giới hạn của Signature-based Detection. Chương 8 giới thiệu một mô hình lai ghép, kết hợp Suricata với trí tuệ của Machine Learning.

Giải thích thuật ngữ:

  • NIDS (Network Intrusion Detection System): Hệ thống phát hiện xâm nhập mạng.
  • Signature-based Detection: Phát hiện dựa trên chữ ký (dấu hiệu nhận biết đã biết trước).
  • Anomaly-based Detection: Phát hiện dựa trên hành vi bất thường (khác với chuẩn bình thường).
  • Zero-day: Lỗ hổng chưa được công bố hoặc chưa có bản vá.
  • Overfitting: Hiện tượng AI "học vẹt", chỉ làm tốt trên dữ liệu đã học nhưng làm tệ trên dữ liệu mới.
  • Baseline: Mức chuẩn bình thường của hệ thống để so sánh.

Chúng hoạt động như những người gác cổng cần mẫn, cầm trong tay danh sách "truy nã" (Signatures).

  • "Gói tin này có chuỗi HEX 00 01 AB -> Chặn!"
  • "Gói tin kia kết nối đến IP 1.2.3.4 -> Chặn!"

Nhưng nếu kẻ trộm đeo mặt nạ (đổi IP, đổi mã hash) thì sao? Suricata sẽ mở cổng mời vào. Đó là giới hạn của Signature-based Detection.

Chương 8 giới thiệu một mô hình NIDS lai ghép (Hybrid), kết hợp sức mạnh của Suricata với trí tuệ của Machine Learning.

Hybrid NIDS

Mô hình hoạt động theo 2 bước: đầu tiên dùng Suricata để lọc nhanh các tấn công đã biết, sau đó dùng thuật toán Decision Tree để phân tích hành vi và phát hiện các bất thường (Zero-day attack). Kết quả thử nghiệm trên bộ dữ liệu CICIDS2017 đạt độ chính xác lên tới 99.9%.

Mô hình hoạt động theo 2 bước:

  1. Bước 1 (Suricata): Lọc nhanh các tấn công đã biết. Nếu phát hiện -> Cảnh báo ngay. Nếu không thấy gì -> Chuyển sang bước 2.
  2. Bước 2 (Anomaly Detection): Sử dụng thuật toán Decision Tree để phân tích hành vi. Nếu gói tin trông "khả nghi" (khác với Baseline bình thường) -> Cảnh báo Zero-day attack.
Kiến trúc NIDS lai ghép: Suricata kết hợp Machine Learning

Các tác giả đã huấn luyện mô hình trên bộ dữ liệu CICIDS2017 (một bộ dữ liệu rất nổi tiếng gồm cả traffic sạch và traffic tấn công).

Kết quả: Độ chính xác 99.9%.

Phản biện nhanh: Tôi đã coi 1 lố đồ án với con số 99.9% , vì dữ liệu được collect trong lab với kịch bản tấn công cụ thể. Decision Tree rất dễ bị Overfitting, học thuộc lòng dữ liệu huấn luyện nhưng thất bại trong thực tế. Hơn nữa, khái niệm "bình thường" trong mạng thay đổi liên tục, một mô hình tĩnh sẽ nhanh chóng trở nên lạc hậu. Mô hình lai ghép là hướng đi đúng, nhưng cần khả năng học liên tục để thích nghi và Suricata vẫn nên là chốt chặn quan trọng nhất vì tốc độ và hiệu quả chi phí.

Machine Learning trên hạ tầng mạng, khi bạn mua con Router đắt tiền.

Chúng ta đã nói về Malware, về DeepFake, về Cloud. Nhưng có một thành phần âm thầm làm việc ngày đêm mà ít khi được nhắc tên cho đến khi... mạng rớt: Router (Bộ định tuyến).

Router hỏng đồng nghĩa với doanh nghiệp ngừng hoạt động. Trong các hệ thống phân tán quy mô lớn (Large-scale Distributed Systems), việc một node bị chết (crash) là chuyện cơm bữa. Chương 12 giới thiệu về Fault Tolerance (Khả năng chịu lỗi) và cách dùng AI để dự đoán bệnh cho Router.

Router cũng biết đau ...

Các lỗi của Router thường không xảy ra ngẫu nhiên. Nó có dấu hiệu báo trước (symptoms) mà nếu tinh ý chúng ta có thể nhận ra:

  1. Packet Loss Ratio: Tỷ lệ gói tin bị mất tăng dần.
  2. Round Trip Delay: Thời gian phản hồi chậm hơn bình thường.
  3. Aggregate Flow Size: Lưu lượng tổng hợp bất thường.
  4. CPU/Memory Usage: Tài nguyên hệ thống bị chiếm dụng cao.

Thay vì chờ Router chết hẳn mới thay (Reactive - Phản ứng), các tác giả đề xuất phương pháp Proactive - Chủ động. Họ sử dụng các thuật toán Machine Learning để theo dõi các chỉ số sức khỏe này theo thời gian thực (Real-time Monitoring).

Tác giả đã thử nghiệm hai thuật toán phổ biến:

  • KNN (K-Nearest Neighbor): Dựa vào khoảng cách và bán kính năng lượng để tìm các node lân cận có hành vi tương tự.
  • SVM (Support Vector Machine): Tìm một siêu phẳng (hyperplane) để phân loại rạch ròi giữa trạng thái "Khỏe mạnh" và "Sắp hỏng".

Kết quả cho thấy SVM vượt trội hơn KNN về độ chính xác (đạt khoảng 95%) và quan trọng hơn là Time Cost (Chi phí thời gian). Trong môi trường mạng tốc độ cao, việc dự đoán nhanh quan trọng hơn dự đoán siêu chính xác nhưng chậm. SVM tốn ít tài nguyên tính toán hơn KNN (vì KNN phải tính khoảng cách với tất cả các điểm dữ liệu), làm cho nó phù hợp hơn để nhúng vào firmware của Router.

Mô hình dự đoán lỗi Router bằng Machine Learning

Giải thích thuật ngữ:

  • Fault Tolerance (Khả năng chịu lỗi): Khả năng hệ thống vẫn hoạt động được dù có thành phần bị hỏng.
  • Reactive: Hỏng rồi mới sửa.
  • Proactive: Dự đoán và ngăn chặn trước khi hỏng.
  • Rerouting: Tự động chuyển hướng dữ liệu sang đường khác khi đường chính gặp sự cố.

Đơn giản là đỉnh cao

Ý tưởng biến Router thành thiết bị thông minh (Smart Device) rất hấp dẫn. Nhưng Router là thiết bị hạ tầng (Infrastructure), yêu cầu tối thượng của nó là Ổn định (Stability).

Nhúng thêm một module Machine Learning vào Firmware của Router có thể làm tăng độ phức tạp và rủi ro. Nếu module AI bị lỗi, nó có thể làm treo cả Router. Đôi khi, các giao thức mạng cổ điển như OSPF hay BGP đã làm rất tốt việc định tuyến lại khi có sự cố. Chúng đơn giản, tin cậy và đã được kiểm chứng qua hàng chục năm. Việc thêm AI vào cần được cân nhắc kỹ lưỡng giữa lợi ích (dự đoán sớm) và chi phí (tài nguyên, độ phức tạp).

Hết !!!

Đây là Series mà tôi sẽ đọc sách bảo mật và kể lại, nếu bạn có cùng mối quan tâm thì follow blog và có thể connect với tôi qua Facebook.
Hãy giữ cho hệ thống của mình an toàn, và cái đầu hoang tưởng ("Paranoid") nhé!

À Quên, link sách: https://drive.google.com/file/d/1gzCeEmnRdV0FqrVSL8Y_ryuY_7ZXFsD-/view?usp=sharing&ref=omelet.tech