Fast16: Vũ khí mạng "làm giả toán học" ẩn mình suốt 21 năm, xuất hiện trước Stuxnet 5 năm

26 tháng 4, 2026·8 phút đọc

Các nhà nghiên cứu bảo mật vừa tiết lộ về Fast16, một vũ khí mạng tinh vi đã ẩn mình suốt 21 năm bằng cách âm thầm làm sai lệch kết quả tính toán khoa học thay vì phá hủy vật lý. Được phát hiện trên VirusTotal nhưng bị bỏ qua suốt gần một thập kỷ, Fast16 xuất hiện từ năm 2005, sớm hơn Stuxnet 5 năm và nhắm vào các phần mềm mô phỏng hạt nhân và kỹ thuật kết cấu.

Fast16: Vũ khí mạng "làm giả toán học" ẩn mình suốt 21 năm, xuất hiện trước Stuxnet 5 năm

Fast16: Vũ khí mạng "làm giả toán học" ẩn mình suốt 21 năm, xuất hiện trước Stuxnet 5 năm

Trong suốt 21 năm, một vũ khí mạng mang tên Fast16 đã tồn tại hoàn toàn vô hình. Nó không phá hủy máy móc hay gây nổ, mà nó làm hỏng toán học. Các nhà khoa học chạy các mô phỏng hạt nhân và kỹ thuật nhận được kết quả đầu ra trông hoàn toàn bình thường; mọi con số đều cộng khớp, mọi kết quả đều hợp lý, nhưng tất cả đều sai một cách có chủ đích.

Tuần trước, Fast16 cuối cùng đã được "lộ diện". Điều đáng sợ là nó xuất hiện trước Stuxnet tới 5 năm, thay đổi hoàn toàn hiểu biết của chúng ta về lịch sử của các vũ khí mạng gây phá hủy vật lý.

Hình ảnh minh họa về bảo mật mạngHình ảnh minh họa về bảo mật mạng

Khám phá từ một trực giác

Hầu hết những người làm trong lĩnh vực bảo mật đều biết đến Stuxnet như là sâu máy đã phá hủy các máy ly tâm tại cơ sở hạt nhân Natanz của Iran vào khoảng năm 2010. Nó được coi là vũ khí mạng đầu tiên gây ra sự hủy hoại vật lý. Tuy nhiên, Fast16 đã có mặt từ trước đó và trong một thời gian dài, nó là kẻ duy nhất.

Các nhà nghiên cứu Vitaly Kamluk và Juan Andrés Guerrero-Saade từ SentinelOne đã trình bày phân tích đầy đủ về Fast16 tại hội nghị Black Hat Asia. Binary cốt lõi của Fast16 có dấu thời gian biên dịch là ngày 30 tháng 8 năm 2005, trong khi hạ tầng chỉ huy và kiểm soát (C&C) của Stuxnet được thiết lập vào tháng 11 cùng năm.

Kamluk bắt đầu từ một trực giác. Ông nhận thấy rằng các họ phần mềm độc hại tinh vi do nhà nước bảo trợ đều chia sẻ một thói quen kỹ thuật: tích hợp một công cụ kịch bản (scripting engine) nhỏ gọi là Lua. Lua hoạt động như một điều khiển từ xa, cho phép các nhà vận hành thay đổi hành vi của phần mềm mà không cần gửi một tệp mới. Ông đã tìm kiếm trong các bộ sưu tập cũ và tìm thấy một tệp trên VirusTotal tên là svcmgmt.exe, được tải lên vào tháng 10 năm 2016 và gần như không bị bất kỳ công cụ quét nào phát hiện.

Bên trong vẻ ngoài nhàm chán của một dịch vụ Windows thời XP ấy là một máy ảo Lua 5.0 được nhúng, bytecode đã mã hóa và đường dẫn đến một trình điều khiển nhân (kernel driver) gọi là fast16.sys. Điều này khiến Fast16 trở thành phần mềm độc hại Windows sớm nhất được biết đến nhúng engine Lua, sớm hơn ví dụ tiếp theo 3 năm.

Cơ chế hoạt động ba lớp

Khung hoạt động của Fast16 chạy trong ba lớp. Lớp ngoài cùng là svcmgmt.exe, một vật mang hoạt động khác nhau tùy thuộc vào cách nó được khởi chạy. Nó có thể lây lan qua mạng, cài đặt mình dưới dạng dịch vụ Windows hoặc chạy payload trực tiếp.

Bên trong vật mang này là ba thứ được lưu trữ dưới dạng mã hóa: bytecode Lua xử lý logic vận hành, một DLL móc vào hệ thống kết nối quay số và VPN của Windows, và chính fast16.sys.

Sơ đồ cấu trúc phần mềm độc hạiSơ đồ cấu trúc phần mềm độc hại

Điều thú vị là cách nó lây lan. Cơ chế này hoạt động giống như một chiếc xe tải giao hàng có nhiều khoang. Mỗi khoang, được gọi là "wormlet", có thể mang một payload khác nhau cho các mục đích khác nhau. SentinelOne gọi kiến trúc này là "đạn chùm" (cluster munition). Trong mẫu đã phục hồi, chỉ có một khoang được điền payload, làm dấy lên câu hỏi liệu các biến thể khác có tồn tại hay không.

Trước khi chạy bất kỳ thứ gì, mã sẽ kiểm tra registry để tìm phần mềm bảo mật. Nếu nó tìm thấy Kaspersky, Symantec, McAfee hay các sản phẩm phổ biến khác của giữa những năm 2000, nó sẽ dừng lại ngay lập tức. Danh sách này không phải là phỏng đoán; nó phản ánh chính xác những gì các nhà vận hành mong đợi tìm thấy trên máy mục tiêu.

Lớp thứ hai là sâu (worm), lây lan bằng cách sử dụng các API tiêu chuẩn của Windows, dựa vào các mật khẩu quản trị yếu hoặc mặc định trên chia sẻ mạng.

Lớp thứ ba là fast16.sys, nơi sự phá hoại thực sự diễn ra. Một trình điều khiển nhân nằm rất sâu trong hệ điều hành, dưới nơi phần mềm chống virus thường nhìn thấy. Fast16.sys tải khi khởi động và định vị mình trên mọi lớp lưu trữ. Nó vô hiệu hóa Windows Prefetcher để đảm bảo mọi lần đọc tệp đều phải đi qua stack lưu trữ đầy đủ và qua trình điều khiển này.

Nó chỉ chờ đợi cho đến khi ai đó đăng nhập và desktop bắt đầu chạy. Khi đó, nó bắt đầu theo dõi mọi tệp thực thi được mở.

Làm giả toán học

Trình điều khiển không nhắm vào mọi tệp. Nó tìm kiếm phần mềm được xây dựng bằng một công cụ cụ thể: trình biên dịch Intel C++ để lại một chuỗi nhận dạng nhỏ trong mọi tệp thực thi mà nó tạo ra. Các nhà phát triển biết chính xác trình biên dịch mà mục tiêu của họ sử dụng.

Với mọi tệp khớp, trình điều khiển chặn các quy trình tính toán dấu phẩy động (floating-point) trong bộ nhớ khi tệp đang được đọc từ đĩa. Tính toán dấu phẩy động là toán học đằng sau các mô phỏng chính xác — loại toán học cho bạn biết liệu thiết kế cầu có chịu được tải trọng hay không, hay chất kích nổ có detonate đúng thời điểm không.

Fast16 sử dụng 101 quy tắc khớp mẫu để chèn các lệnh FPU làm dịch chuyển các giá trị trong mảng tính toán nội bộ, rồi để tệp tải như thể không có gì xảy ra. Mã gốc trên đĩa không bị thay đổi. Phần mềm chạy bình thường. Nhưng kết quả thì sai.

Việc chạy 101 quy tắc này chống lại phần mềm từ thời đó chỉ ra ba mục tiêu cụ thể:

  1. LS-DYNA 970: Bộ phần mềm mô phỏng nổ, sự cố kết cấu và tác động tốc độ cao. Các nhà nghiên cứu Iran đã sử dụng LS-DYNA trong công việc liên quan đến phát triển vũ khí hạt nhân, cụ thể là mô phỏng các chất kích nổ. Nếu Fast16 đang chạy, các nhà khoa học không có cách nào biết kết quả của họ sai.
  2. PKPM: Phần mềm kỹ thuật kết cấu thống trị của Trung Quốc, được sử dụng để phân tích kết cấu động đất của các cơ sở phản ứng hạt nhân.
  3. MOHID: Nền tảng mô hình hóa nước mã nguồn mở. SentinelOne chưa thể xác định tác động phá hoại dự định đối với phần mềm này là gì.

Mối liên hệ với NSA

Mối liên hệ với NSA đến từ một danh sách trong vụ rò rỉ ShadowBrokers năm 2017. Bên trong là một tệp drv_list.txt, về cơ bản là một danh sách "không được chạm vào" cho các nhà vận hành. Hầu hết các mục trong danh sách đều có ghi chú thận trọng, nhưng Fast16 có một ghi chú khác:

"fast16","*** NOTHING TO SEE HERE - CARRY ON ***"

Đó là một nhà vận hành nói với người khác: nếu bạn tìm thấy trình điều khiển này, đừng chạm vào nó, đó là của chúng ta. Các tài liệu của ShadowBrokers được liên kết rộng rãi với Equation Group của NSA.

Một chi tiết khác trong mã nổi bật là các tệp nguồn chứa các đánh dấu kiểm soát phiên bản từ môi trường phát triển Unix của những năm 1970 và 1980. Kiểu ký hiệu SCCS/RCS này giống như việc tìm thấy một chiếc điện thoại quay số trong một văn phòng hiện đại. Không ai sử dụng nó trong mã nhân Windows năm 2005 trừ khi nền tảng lập trình của họ bắt đầu từ nhiều thập kỷ trước, trong các môi trường tính toán chính phủ và quân sự.

Bài học về phát hiện

Điều làm cho vấn đề tồi tệ hơn là hồ sơ phát hiện. svcmgmt.exe đã được tải lên VirusTotal vào tháng 10 năm 2016 và nằm đó trong gần một thập kỷ, hoàn toàn công khai. Chỉ có một trong số khoảng bảy mươi engine chống virus gắn cờ nó. Một vật mang tự lan truyền triển khai trình điều khiển nhân cấp khởi động với động cơ vá lỗi dấu phẩy động trong bộ nhớ đã nằm trong cơ sở dữ liệu công cộng trong 9 năm mà gần như vô hình đối với mọi trình quét.

Nếu bạn làm việc với phần mềm mô phỏng cũ, đặc biệt là các phiên bản LS-DYNA hoặc PKPM từ giữa những năm 2000, SentinelOne khuyến nghị xác minh kết quả tính toán quan trọng trên một hệ thống độc lập hoàn toàn nằm ngoài bất kỳ mạng nào bị ảnh hưởng tiềm năng.

Nếu một thứ tinh vi như vậy đã ẩn mình suốt 21 năm, thì còn bao nhiêu thứ khác đang nằm trong các bộ sưu tập tương tự ngay bây giờ, chờ đợi một câu hỏi khác? Có lẽ nhiều hơn mức bất kỳ ai muốn biết.

Bài viết được tổng hợp và biên soạn bằng AI từ các nguồn tin tức công nghệ. Nội dung mang tính tham khảo. Xem bài gốc ↗