Stuxnet - vũ khí nguy hiểm trong thế giới mạng

Quá trình Stuxnet xuất hiện

Đi ngược dòng lịch sử, chúng ta hãy cùng xem Stuxnet được người ta tìm ra như thế nào. Mọi chuyện bắt đầu vào tháng 6 năm 2010 khi công ty bảo mật VirusBlokAda (trụ sở tại Belarus) nhận được email than phiền của một khách hàng ở Iran rằng máy tính của anh này cứ bị khởi động lại mãi. Mặc dù đã tìm nhiều cách can thiệp nhưng tình trạng này vẫn tiếp diễn. VirusBlokAda tin rằng chiếc máy này đã bị nhiễm phần mềm mã độc và họ phát hiện ra là malware đã khai thác một lỗi zero day ở các tập tin LNK dùng để tạo shortcut trên Windows (zero day là thuật ngữ được sử dụng để chỉ các lỗ hổng bảo mật mà người ta chưa từng biết đến).

Khi các file LNK này được chép vào ổ USB, lúc cắm sang máy khác, Windows Explorer sẽ tự quét nội dung chứa trên ổ nhờ tập tin autorun.inf và điều này đã tạo điều kiện cho malware được kích hoạt. Khi chạy lên, nó sẽ âm thầm lặng lẽ cài vào máy tính một file lớn hơn, sau đó tự chia nhỏ rồi ẩn vào nhiều nơi khác nhau. VirusBlokAda đã thông báo mối nguy hiểm này cho Microsoft vào ngày 12/7/2010. Hãng làm Windows đã quyết định đặt cái tên Stuxnet cho con sâu máy tính và cái tên này được lấy từ những tập tin .stub, MrxNet.sys nằm trong mã nguồn của worm.

Mối nguy hiểm chưa từng thấy

Trong thời gian sau đó, Stuxnet ngày càng được biết đến nhiều hơn, người ta cố gắng tìm kiếm các mẫu (sample) của nó để phân tích. Nhiều người khám phá ra rằng thực chất Stuxnet đã được phát tán từ hồi tháng 6/2009, tức một năm trước đó. Ngoài ra, người tác giả viết nên Stuxnet cũng đã từng 3 lần cập nhật sản phẩm của mình.

Lúc đầu, các nhà nghiên cứu chỉ nghĩ đơn giản rằng Stuxnet là một công cụ để cạnh tranh không lành mạnh trong kinh doanh. Tuy nhiên, họ phát hiện ra rằng con sâu này đã dùng chứng thực số (digital certificate) lấy từ hai hãng sản xuất Đài Loan nổi tiếng là Realtek và JMicro để làm cho hệ thống bảo mật tin rằng Stuxnet chỉ là một phần vô hại. Nguy hiểm hơn, cách thức giả mạo này cực kì nguy hiểm và đây là lần đầu tiên người ta thấy nó.

Nó nguy hiểm đến độ các nhà chuyên gia bảo mật phải chia sẻ thông tin và nghiên cứu của mình qua email hoặc qua các diễn đàn riêng tư trên mạng. Đây là một điều cực kì bất bình thường bởi các công ty bảo mật đều muốn giữ riêng cho mình thông tin về loại malware mới để tạo lợi thế cạnh tranh cũng như uy tín. Theo như Giám đốc nghiên cứu trưởng Mikko H. Hypponen của F-Secure, sự việc này chỉ có thể được xếp vào loại "cực kì bất bình thường". Ông nói thêm như sau: "Tôi chưa nghĩ ra được lĩnh vực IT nào khác mà có được sự hợp tác tích cực giữa các đối thủ với nhau".

Truy tìm và phân tích dấu vết
Để tìm hiểu hoạt động của Stuxnet, các nhà nghiên cứu tại Kaspersky cũng như nhiều hãng bảo mật khác phải thực hiện dịch ngược mã (reverse engineering) để biết sâu này chạy như thế nào. Càng đào sâu, họ càng phát hiện ra được nhiều thứ, chẳng hạn như số lượng máy bị nhiễm, bao nhiêu % máy bị nhiễm là ở Iran, thông tin về hệ thống phần mềm của Siemens...

Trong quá trình dịch ngược, Schouwenberg thật sự bị bất ngờ khi Stuxnet không chỉ khai thác 1 mà đến 4 lỗ hổng zero day trong Windows. "Nó không chỉ là con số gây chấn động mà mỗi một lỗ hỗng đều bổ sung một cách hoàn hảo và đẹp mắt cho các lỗ hổng còn lại". Ngoài lỗ hổng nằm trong tập tin LNK và Windows Explorer mà chúng ta đã nói đến ở trên, Stuxnet còn tận dụng thêm lỗ hổng khi các máy tính chia sẻ máy in trong cùng một mạng. Hai lỗi còn lại liên quan đến quyền thực thi trong hệ thống. Stuxnet được thiết kế để có được quyền ở cấp hệ thống, tức là một trong những quyền cao nhất, ngay cả khi máy tính đã được thiết lập một cách kĩ càng. Schouwenberg nhận xét đây là một cách thực thi mà chỉ có từ "thông minh" là thích hợp để diễn tả.

Schouwenberg và các đồng nghiệp của mình tại Kaspersky sớm đi đến kết luận rằng mã nguồn của Stuxnet quá phức tạp, do đó một nhóm nhỏ khoảng 10 hacker không thể nào tạo ra được một phần mềm như thế. Nếu có, họ sẽ mất từ hai đến ba năm để hoàn thiện. Ngoài ra, Stuxnet có dung lượng đến 500KB, gấp nhiều lần so với mức 10-50KB của các malware thông thường. Chính vì thế mà họ mới nghi ngờ rằng có bàn tay của chính phủ một nước nào đó can thiệp và tài trợ cho dự án malware kinh khủng này.

Trong khi đó, ở công ty bảo mật Symantec, kĩ sư Liam O Murchu cùng các đồng nghiệp và đội thợ săn malware của hãng này đã phát hiện ra rằng khi Stuxnet đột nhập vào một máy tính nào đó, nó sẽ liên lạc với hai tên miềnhttp://www.mypremierfutbol.com và http://www.todaysfutbol.com để báo cáo thông tin về các máy mới bị nhiễm. Nơi host máy chủ của hai tên miền này đặt tại Malaysia và Đan Mạch. Những thông tin được Stuxnet chuyển về cho hacker bao gồm địa chỉ IP, hệ điều hành và phiên bản tương ứng, máy có cài ứng dụng Step7 hay không.

Những máy chủ dạng như thế này được giới bảo mật gọi là Command & Control Server (C&C Server - máy chủ ra lệnh và điều khiển). Lợi dụng việc Stuxnet gửi ngược thông tin như đã nói ở trên, Symantec thiết lập nên biện pháp để mỗi khi Stuxnet cố gắng liên lạc với máy chủ của nó, nó sẽ bị đánh lừa và chuyển hướng sang server của Symantec. Kĩ thuật này gọi là "sink hole" và người ta cũng hay xài nó để hạn chế hoạt động của botnet.

Kết hợp dữ liệu thu được từ biện pháp sink hole, cộng với việc phân tích mã nguồn cũng như các báo cáo tại hiện trường, các chuyên gia đã có thể chắc chắn rằng Stuxnet được thiết kế riêng để nhắm vào các hệ thống của Siemens vốn đang được dùng để vận hành các máy li tâm dùng trong chương trình làm giàu hạt nhân của Iran. Kaspersky cũng biết được là mục tiêu tài chính không phải là thứ mà Stuxnet muốn đạt được, và họ có thể kết luận rằng con sâu này được sự hậu thuẫn của một nước nào đó. Các chuyên gia bảo mật trên khắp toàn cầu cũng hết sức ngạc nhiên vì đây là lần đầu tiên họ chứng kiến một nguy cơ bảo mật máy tính có ảnh hưởng đến chính trị trong thế giới thực.