IOC và BIOC: Từ dấu vết tĩnh đến hành vi của kẻ tấn công

Lời nói đầu

Nếu bạn từng làm việc trong một SOC, hẳn bạn đã quen với cảnh này: một bản tin threat intelligence vừa được phát hành, kèm theo danh sách vài chục địa chỉ IP, tên miền và mã hash. Cả đội lập tức đưa chúng vào hệ thống chặn, chạy truy vấn ngược trong log để xem có kết nối nào trùng khớp không, rồi thở phào khi kết quả trả về sạch sẽ. Quy trình đó xoay quanh một khái niệm nền tảng của an ninh mạng hiện đại: IOC, tức Indicator of Compromise.

Nhưng vài năm trở lại đây, một thuật ngữ khác xuất hiện ngày càng dày đặc trong tài liệu của các hãng EDR và XDR: BIOC, viết tắt của Behavioral Indicator of Compromise. Nhiều người coi BIOC là phiên bản nâng cấp của IOC, số khác lại cho rằng đây chỉ là cách gọi mới cho những thứ ngành detection engineering đã làm từ lâu. Vậy thực chất hai khái niệm này là gì, khác nhau ở đâu, và tại sao một chương trình phòng thủ nghiêm túc cần cả hai? Bài viết này sẽ đi từ gốc đến ngọn.

IOC là gì?

IOC là bất kỳ mẩu dữ liệu nào cho thấy một hệ thống có thể đã bị xâm nhập. Nói cách khác, đó là dấu vết pháp y mà kẻ tấn công để lại sau khi hành động. Khi các nhà phân tích mổ xẻ một mẫu mã độc hoặc điều tra một sự cố, họ thu thập những dấu vết này, chuẩn hóa chúng và chia sẻ cho cộng đồng để các tổ chức khác có thể tự kiểm tra xem mình có bị tấn công bởi cùng chiến dịch hay không.

Các loại IOC phổ biến nhất bao gồm mã hash của tập tin độc hại như MD5, SHA1 hay SHA256, địa chỉ IP của máy chủ điều khiển, tên miền và URL dùng cho phishing hoặc phân phối payload, địa chỉ email của kẻ gửi thư lừa đảo, tên tập tin và đường dẫn bất thường, khóa registry bị sửa đổi, tên mutex mà mã độc tạo ra để tránh chạy trùng, chuỗi user agent lạ trong log web, và chữ ký của các mẫu mã độc đã biết.

Người ta thường chia IOC thành ba nhóm theo nơi thu thập. IOC dạng tập tin gắn với chính artifact độc hại, ví dụ hash hoặc tên file. IOC mạng liên quan đến hạ tầng của kẻ tấn công như IP, domain, URL, certificate. IOC trên máy chủ là những thay đổi trong hệ điều hành như registry, scheduled task, service lạ, tài khoản mới được tạo.

Sức mạnh của IOC nằm ở tính chính xác và khả năng tự động hóa. Một mã hash SHA256 khớp với mẫu ransomware đã biết gần như không thể là dương tính giả. Việc so khớp hash, IP hay domain cực kỳ rẻ về mặt tính toán, nên có thể áp dụng ở quy mô hàng triệu sự kiện mỗi giây. Đó là lý do các nền tảng chia sẻ threat intelligence như MISP, các chuẩn như STIX và TAXII, hay định dạng OpenIOC ra đời và phát triển mạnh: chúng cho phép cả ngành cùng nhau lan truyền dấu vết của một chiến dịch tấn công chỉ trong vài giờ.

Điểm yếu chí mạng của IOC

Thế nhưng IOC có một vấn đề cốt lõi: chúng nhìn về quá khứ. Một IOC chỉ tồn tại sau khi ai đó đã bị tấn công, đã điều tra và đã công bố. Bạn đang phòng thủ dựa trên nỗi đau của nạn nhân đi trước, và luôn có độ trễ giữa thời điểm chiến dịch bắt đầu với thời điểm IOC được phát hành.

Nghiêm trọng hơn, IOC cực kỳ dễ thay đổi. Đây chính là thông điệp của Pyramid of Pain, mô hình kinh điển do David Bianco đưa ra năm 2013. Kim tự tháp này xếp các loại chỉ dấu theo mức độ đau đớn mà kẻ tấn công phải chịu khi bị phát hiện. Ở đáy là hash, thứ kẻ tấn công có thể thay đổi bằng cách sửa đúng một byte trong file. Lên một bậc là địa chỉ IP, thứ có thể xoay vòng trong vài phút với hạ tầng cloud. Tiếp theo là tên miền, tốn thêm chút tiền và thời gian đăng ký nhưng vẫn rất rẻ. Lên nữa là các artifact về mạng và máy chủ, rồi đến công cụ. Và trên đỉnh là TTP, tức chiến thuật, kỹ thuật và quy trình của kẻ tấn công. Muốn thay đổi TTP, kẻ tấn công phải học lại cách hành nghề, huấn luyện lại con người, viết lại công cụ. Đó là mức chi phí cao nhất bạn có thể áp đặt lên đối thủ.

Phần lớn IOC truyền thống nằm ở đáy kim tự tháp. Mã độc hiện đại dùng kỹ thuật polymorphic để tự biến đổi, sinh ra hash mới cho mỗi nạn nhân. Hạ tầng C2 dùng thuật toán sinh tên miền tự động, mỗi ngày hàng nghìn domain mới. Kẻ tấn công thuê máy chủ ở các nhà cung cấp cloud hợp pháp, khiến việc chặn IP có nguy cơ chặn nhầm dịch vụ lành tính. Kết quả là các feed IOC phình to với hàng triệu bản ghi mà giá trị phát hiện thực tế lại giảm dần, trong khi chi phí quản lý vòng đời của chúng, từ nhập liệu đến hết hạn và gỡ bỏ, ngày càng lớn.

Còn một xu hướng nữa khiến IOC yếu thế: các cuộc tấn công không dùng mã độc. Kẻ tấn công ngày nay chuộng kỹ thuật living off the land, tức lợi dụng chính các công cụ có sẵn của hệ điều hành như PowerShell, WMI, certutil, rundll32 hay các tiện ích quản trị hợp pháp. Không có file lạ thì không có hash để so khớp. Không có mã độc thì antivirus im lặng. Khi kẻ tấn công dùng thông tin đăng nhập đánh cắp được để đăng nhập bình thường qua VPN của công ty, chẳng có IOC nào cả, chỉ có hành vi bất thường.

BIOC: chuyển từ dấu vết sang hành vi

Đây là lúc BIOC bước vào. Thay vì hỏi “tập tin này có nằm trong danh sách đen không”, BIOC hỏi “hành vi đang diễn ra trên hệ thống này có giống cách kẻ tấn công vận hành không”. Trọng tâm dịch chuyển từ artifact tĩnh sang chuỗi hành động động.

Thuật ngữ BIOC được phổ biến rộng rãi qua các sản phẩm EDR và XDR, đặc biệt là Cortex XDR của Palo Alto Networks, nơi BIOC là một loại luật phát hiện chính thức mà người dùng có thể tự viết. Nhưng bản chất của khái niệm này không thuộc riêng hãng nào. Nó chính là hiện thân của việc phát hiện theo TTP, tầng cao nhất của Pyramid of Pain, được đóng gói thành các luật có thể triển khai.

Một vài ví dụ sẽ làm rõ sự khác biệt. IOC nói: hash SHA256 abc123 là mã độc. BIOC nói: một tiến trình Microsoft Word vừa sinh ra tiến trình con PowerShell với tham số dòng lệnh được mã hóa base64, và tiến trình đó lập tức mở kết nối ra ngoài Internet. Chuỗi hành vi này gần như không bao giờ xuất hiện trong công việc văn phòng bình thường, nhưng lại là kịch bản kinh điển của tài liệu phishing chứa macro độc hại. Bất kể mã độc cụ thể là gì, hash là gì, máy chủ C2 ở đâu, hành vi đó vẫn bị bắt.

Vài mẫu hành vi khác thường được viết thành BIOC: một tiến trình không phải công cụ quản trị đang cố đọc bộ nhớ của lsass.exe, dấu hiệu điển hình của việc trộm credential kiểu Mimikatz. Lệnh vssadmin xóa toàn bộ shadow copy, bước chuẩn bị quen thuộc của ransomware trước khi mã hóa để nạn nhân không thể khôi phục. Rundll32 chạy mà không có tham số DLL nào, điều vô nghĩa với sử dụng hợp pháp nhưng phổ biến trong kỹ thuật process injection. Một tài khoản đăng nhập từ hai quốc gia cách nhau nửa vòng trái đất trong vòng một giờ. Certutil tải file từ URL bên ngoài, cách lạm dụng công cụ hệ thống để tải payload mà không cần trình tải riêng.

Điểm chung của tất cả các ví dụ trên là chúng mô tả cách làm chứ không mô tả công cụ cụ thể. Kẻ tấn công có thể đổi mã độc, đổi hạ tầng, đổi tên file thoải mái, nhưng chừng nào chúng còn cần trộm credential từ lsass, còn cần xóa shadow copy, còn cần chạy code từ tài liệu Office, thì BIOC còn bắt được chúng.

MITRE ATT&CK: ngôn ngữ chung của phát hiện hành vi

Không thể nói về BIOC mà bỏ qua MITRE ATT&CK. Đây là bộ khung phân loại toàn bộ chiến thuật và kỹ thuật mà các nhóm tấn công thực tế đã sử dụng, được đúc kết từ hàng nghìn báo cáo sự cố công khai. ATT&CK chia hành trình tấn công thành các chiến thuật như truy cập ban đầu, thực thi, duy trì hiện diện, leo thang đặc quyền, né tránh phòng thủ, truy cập credential, do thám nội bộ, di chuyển ngang, thu thập, điều khiển từ xa và đánh cắp dữ liệu. Dưới mỗi chiến thuật là hàng trăm kỹ thuật cụ thể được đánh mã, ví dụ T1059.001 cho PowerShell hay T1003.001 cho việc dump bộ nhớ lsass.

Với người viết BIOC, ATT&CK đóng vai trò tấm bản đồ. Mỗi luật hành vi nên ánh xạ về một kỹ thuật cụ thể, và độ phủ của toàn bộ tập luật trên ma trận ATT&CK cho biết tổ chức đang mù ở những khu vực nào. Cộng đồng cũng xây dựng các dự án luật mở như Sigma cho log, giúp mô tả logic phát hiện hành vi theo định dạng trung lập rồi chuyển đổi sang truy vấn của từng nền tảng SIEM. Về bản chất, một luật Sigma tốt chính là một BIOC được viết ở dạng chia sẻ được.

Cái giá của phát hiện hành vi

Nếu BIOC mạnh như vậy, tại sao không bỏ hẳn IOC? Vì phát hiện hành vi có cái giá của nó, và cái giá đó không hề nhỏ.

Thứ nhất là dương tính giả. Ranh giới giữa quản trị viên hệ thống và kẻ tấn công đôi khi rất mỏng. Quản trị viên cũng dùng PowerShell với script phức tạp, cũng chạy công cụ quét mạng nội bộ, cũng đăng nhập từ xa vào nhiều máy. Một BIOC viết vụng sẽ dội cảnh báo lên đầu đội SOC mỗi khi đội hạ tầng làm việc, và chẳng bao lâu cả đội sẽ mắc hội chứng mệt mỏi cảnh báo, thứ giết chết khả năng phát hiện hiệu quả hơn bất kỳ kẻ tấn công nào. Viết BIOC tốt đòi hỏi hiểu sâu môi trường của chính mình, biết đâu là hành vi bình thường của tổ chức để loại trừ, và liên tục tinh chỉnh qua thời gian.

Thứ hai là yêu cầu về dữ liệu. Muốn phát hiện chuỗi tiến trình cha con, bạn cần telemetry chi tiết ở cấp endpoint, thường đến từ EDR hoặc Sysmon được cấu hình kỹ. Muốn phát hiện đăng nhập bất thường, bạn cần log định danh tập trung và có ngữ cảnh địa lý. Lưu trữ và xử lý khối lượng telemetry này tốn kém hơn nhiều so với việc so khớp một danh sách hash.

Thứ ba là con người. So khớp IOC có thể giao gần như hoàn toàn cho máy. Viết và vận hành BIOC cần detection engineer hiểu cả kỹ thuật tấn công lẫn đặc thù nghiệp vụ, một kỹ năng không dễ tuyển và không rẻ.

Không phải chọn một, mà là dùng cả hai

Cách nhìn đúng đắn không phải là IOC lỗi thời còn BIOC hiện đại. Hai loại chỉ dấu này trả lời hai câu hỏi khác nhau và bổ trợ cho nhau trong cùng một vòng đời phòng thủ.

IOC trả lời câu hỏi “chúng tôi có bị dính chiến dịch đã biết này không”. Khi một lỗ hổng nghiêm trọng bùng nổ và các hãng công bố chỉ dấu của những nhóm đang khai thác, việc quét IOC trong log lịch sử là cách nhanh nhất để trả lời ban lãnh đạo trong vài giờ. IOC cũng là ngôn ngữ chia sẻ giữa các tổ chức: bạn không thể gửi cho đối tác một mô hình hành vi phức tạp, nhưng có thể gửi danh sách hash và domain để họ tự kiểm tra ngay lập tức. Với các mối đe dọa đại trà, mã độc thương phẩm và chiến dịch phishing quy mô lớn, IOC vẫn chặn được một lượng tấn công khổng lồ với chi phí gần bằng không.

BIOC trả lời câu hỏi “có ai đang hành xử như kẻ tấn công trong hệ thống của chúng tôi không, kể cả khi chưa ai từng thấy công cụ của họ”. Đây là lớp phòng thủ trước mã độc mới, trước kỹ thuật living off the land, trước những kẻ tấn công có chủ đích đủ kiên nhẫn để xây hạ tầng riêng cho từng nạn nhân. BIOC cũng là nền tảng của threat hunting: thay vì chờ cảnh báo, hunter chủ động đặt giả thuyết theo ATT&CK rồi lùng trong telemetry xem hành vi đó có đang diễn ra không.

Trong thực tế vận hành, hai loại này còn nuôi lẫn nhau. Một BIOC bắt được hành vi lạ sẽ mở ra cuộc điều tra, và cuộc điều tra đó sinh ra IOC mới về hạ tầng của kẻ tấn công để chia sẻ cho cộng đồng. Ngược lại, khi một IOC khớp trong môi trường của bạn, việc phân tích chuỗi sự kiện xung quanh nó thường hé lộ những mẫu hành vi đáng để viết thành BIOC mới. Vòng lặp này chính là cách năng lực phát hiện của một tổ chức trưởng thành theo thời gian.

Bắt đầu từ đâu

Với các đội đang xây dựng năng lực này, một lộ trình hợp lý thường đi qua vài bước. Trước hết, đảm bảo nền tảng IOC vận hành trơn tru: có nguồn threat intelligence chất lượng, có quy trình nhập và hết hạn tự động, có khả năng quét ngược log lịch sử. Đừng để danh sách IOC trở thành bãi rác hàng triệu bản ghi không ai dọn.

Song song, đầu tư vào telemetry. Không có dữ liệu tiến trình, dòng lệnh, kết nối mạng ở cấp endpoint thì mọi tham vọng về BIOC đều là lý thuyết. Sysmon với cấu hình cộng đồng là điểm khởi đầu miễn phí rất tốt nếu chưa có ngân sách cho EDR thương mại.

Tiếp theo, bắt đầu với những BIOC có tỷ lệ tín hiệu trên nhiễu cao nhất: xóa shadow copy, truy cập lsass, Office sinh shell, các LOLBin bị lạm dụng theo cách rõ ràng bất thường. Ánh xạ từng luật về kỹ thuật ATT&CK tương ứng và theo dõi độ phủ. Với mỗi luật mới, chạy ở chế độ giám sát trước khi bật cảnh báo thật, dùng dữ liệu vài tuần để tinh chỉnh ngoại lệ.

Cuối cùng, xây văn hóa vòng lặp: mỗi sự cố, mỗi cuộc diễn tập red team, mỗi báo cáo threat intelligence đều là nguyên liệu để sinh thêm IOC và BIOC mới. Phát hiện không phải sản phẩm mua một lần mà là năng lực được bồi đắp liên tục.

Lời kết

IOC cho bạn biết kẻ tấn công đã dùng gì. BIOC cho bạn biết kẻ tấn công làm việc như thế nào. Cái đầu tiên rẻ, nhanh, chính xác nhưng dễ bị vô hiệu hóa chỉ bằng một lần đổi hash hay xoay IP. Cái thứ hai bền, khó né nhưng đòi hỏi dữ liệu, kỹ năng và sự kiên nhẫn tinh chỉnh. Kẻ tấn công có thể thay công cụ mỗi ngày, nhưng thay cách hành nghề thì đau đớn hơn nhiều, và đó chính là nơi bạn muốn cuộc chiến diễn ra.

Một chương trình phòng thủ trưởng thành không đứng về phe nào trong cuộc tranh luận này. Nó dùng IOC để phản ứng nhanh với những gì thế giới đã biết, dùng BIOC để đối mặt với những gì chưa ai từng thấy, và quan trọng nhất, biến mỗi lần chạm trán với kẻ thù thành nguyên liệu để cả hai lớp phòng thủ cùng sắc bén hơn.

Published by Nhat Truong

Hi

Leave a comment