Giải mã Stuxnet, siêu vũ khí trên không gian mạng

(PCWorldVN) Nhiều mối nghi ngờ tập trung vào Mỹ và Israel đã đứng đằng sau Stuxnet và sử dụng malware này để ngăn chặn chương trình hạt nhân của Iran. Có những bí mật không bao giờ được giải mã, nhưng hành tung bí ẩn của Stuxnet đã bị các chuyên gia bảo mật lật tẩy.

Tháng 6/2010, những ghi nhận cho thấy bùng nổ các mối đe dọa địa chính trị. Stuxnet, một loại sâu máy tính mới đã lây nhiễm vào ít nhất 14 địa điểm công nghiệp ở Iran, bao gồm một nhà máy làm giàu uranium nằm trong chương trình hạt nhân của quốc gia Hồi giáo này. Virus máy tính thường do nạn nhân vô tình cài đặt vào máy của họ, nhưng sâu (worm) nguy hiểm ở chỗ tự lây lan trên mạng máy tính.

Sâu này là một phần mềm độc hại hiểm chưa từng thấy, có cách thức tấn công chia thành ba giai đoạn. Đầu tiên, nó nhắm mục tiêu vào những máy chạy Microsoft Windows và liên tục nhân bản qua mạng. Sau đó, nó tìm kiếm phần mềm Siemens Simatic WinCC Step7, thường gọi ngắn gọn là Step7, chạy trên nền Windows, được sử dụng trong các hệ thống điều khiển công nghiệp để vận hành thiết bị, chẳng hạn như máy ly tâm. Cuối cùng, nó làm hỏng bộ điều khiển logic lập trình (PLC). Sâu không chỉ giúp chủ nhân do thám các  hệ thống công nghiệp mà thậm chí làm các máy ly tâm quay nhanh dẫn đến bị phá hỏng, trong khi những người vận hành không thể nhận biết. (Iran chưa hề công bố số liệu về những máy ly tâm làm giàu uranium vận hành trong chương trình hạt nhân của nước này bị Stuxnet phá hỏng).

Stuxnet có thể lây lan ngấm ngầm giữa các máy tính chạy Windows ngay cả với những máy không có kết nối Internet. Một thanh USB được cắm vào máy tính bị nhiễm Stuxnet sẽ dính ngay mã độc này, sau đó lây nhiễm vào máy khác khi thanh USB được cắm vào. Do ít ai để ý máy tính bị nhiễm theo cách thức này nên sâu có cơ hội lây nhanh trên mạng nội bộ LAN, các chuyên gia còn lo ngại rằng phần mềm độc hại này có thể đã lan rộng ra trên toàn thế giới.

Mặc dù các tác giả của Stuxnet chưa bị vạch mặt, nhưng kích thước lớn (500 KB) và sự tinh vi của sâu đã khiến các chuyên gia tin rằng nó chỉ có thể được tạo ra với sự tài trợ của một chính phủ nào đó, và mọi nghi ngờ đều hướng tới Mỹ và Israel. Kể từ khi phát hiện ra Stuxnet, các kỹ sư bảo mật máy tính còn phải đương đầu với những phần mềm hiểm độc khác như Duqu, Flame, và Gauss, cho thấy cuộc tấn công dữ dội bằng vũ khí kỹ thuật số tinh vi đã được khởi xướng và không có dấu hiệu suy giảm. Kịch bản giả tưởng ngày tận thế, trước âm mưu đánh sập các mạng máy tính của một nhóm tin tặc trong phim bom tấn “Live Free or Die Hard”, nay đang có nguy cơ thành hiện thức.

Stuxnet lộ diện

Mọi sự bắt đầu vào ngày 17/6/2010, Sergey Ulasen, trưởng một nhóm chống virus tại công ty bảo mật VirusBlokAda có trụ sở tại Minsk (cộng hòa Belarus) nhận được email phàn nàn từ một khách hàng ở Iran về việc có một máy tính bị khởi động lại liên tục, bất chấp mọi nỗ lực can thiệp. Dường như máy đã dính virus.

So với những tên tuổi lớn như Symantec, McAfee và Kaspersky, VirusBlokAda chỉ là một cái tên mờ nhạt, ít được biết đến trong lĩnh vực bảo mật - một ngành công nghiệp có giá trị hàng tỷ USD trong thập kỷ qua, đang phát triển nhanh chóng vào thời bùng nổ những vụ đột nhập đình đám, phá hoại tinh vi của các loại virus, Trojan và phần mềm gián điệp. Nhưng điều đó đã thay đổi nhanh chóng.

Các chuyên gia bảo mật của VirusBlokAda đã phát hiện ra virus lợi dụng lỗ hổng zero-day để thâm nhập vào máy khách hàng. Zero-day là thuật ngữ dùng để chỉ những lỗi bảo mật của hệ thống chưa được công bố hoặc có bản vá, bị tin tặc lợi dụng khai thác tấn công. Trong trường hợp này, lỗi nguy hiểm nằm ở các tập tin LNK (tập tin shortcut) của Windows, cho phép virus lây lan qua các máy với cầu nối là thanh nhớ USB. Nhược điểm nằm ở cơ chế quản lý tập tin của Windows Explorer đã bị khai thác. Khi một thanh USB nhiễm mã độc được cắm vào máy, Windows Explorer tự động quét nội dung trên đó, và mã độc nhờ vậy được kích hoạt, âm thầm cài vào máy một tập tin lớn đã được mã hóa và chia nhỏ ra. Cách thức y như máy bay quân sự thả lính dù đã được ngụy trang cẩn thận xuống khu vực mục tiêu.

VirusBlockAda đã thông báo cho Microsoft về lỗi bảo mật này vào ngày 12/7, và Microsoft đặt tên Stuxnet cho mã độc, kết hợp từ những tên tập tin .stub và MrxNet.sys được tìm thấy trong mã nguồn. Ba ngày sau, Stuxnet được biết đến rộng rãi khi blogger bảo mật Brian Krebs đăng tải câu chuyện. Các công ty bảo mật trên toàn thế giới vội vã tranh giành những mẫu có được và lao vào giải mã Stuxnet. Dường như mã độc đã được tung ra khoảng một năm trước, vào tháng 6/2009, và tác giả thiên tài đã cập nhật và sửa đổi nó vài lần, phát hành ra 3 phiên bản khác nhau. Giới bảo mật ban đầu không nhận thấy “tham vọng” của Stuxnet. Các chuyên gia phát hiện Stuxnet được thiết kế nhằm vào phần mềm Step7 của Siemens. Tập đoàn nổi tiếng của Đức dùng Step7 để điều khiển các động cơ, van, các bộ chuyển mạch trong rất nhiều hệ thống điều khiển công nghiệp, từ các nhà máy sản xuất thức ăn, dây chuyền lắp ráp ô tô cho tới những đường ống dẫn khí và trong những nhà máy xử lý nước. Stuxnet trông có vẻ chỉ là một trường hợp của gián điệp công nghiệp, chuyên đánh cắp dữ liệu thiết kế hệ thống của một nhà máy phục vụ cho đối thủ cạnh tranh làm giả sản phẩm.

Mã độc phức tạp chưa từng thấy

Tổng thống Iran Mahmoud Ahmadinejad quan sát màn hình máy tính tại nhà máy làm giàu uranium Natanz ở miền trung Iran, nơi được cho là Stuxnet đã lây nhiễm vào các máy tính điều khiển, làm hỏng các máy ly tâm.
Nhưng rồi các chuyên gia bảo mật phát hiện ra điều đáng sợ là mã độc đã dùng chứng chỉ số (digital certificate) đánh cắp từ hai nhà sản xuất phần cứng Realtek Semiconductor và JMicron Technology, đều của Đài Loan, để đánh lừa hệ thống tin rằng đây là chương trình đáng tin cậy. Thủ đoạn qua mặt các công cụ phát hiện tự động bằng chứng chỉ số giả mạo cực kỳ nguy hiểm, lần đầu tiên đã được ghi nhận với Stuxnet. “Chúng ta hiếm thấy những hành động mang tính chuyên nghiệp như vậy”, ESET, công ty bảo mật phát hiện một trong hai chứng chỉ bị giả mạo, viết trên blog của họ. “Nó cho thấy những kẻ tấn công có nguồn tài nguyên phong phú”. Các chuyên gia bảo mật bắt đầu chia sẻ những phát hiện của họ qua email và trên các diễn đàn chuyên về bảo mật, như vẫn thường thấy khi có điều gì đó bất thường xảy ra trong lĩnh vực bảo mật. “Đó là điều hiếm có giữa các đối thủ cạnh tranh trong những lĩnh vực IT khác”, Mikko H. Hypponen, Giám đốc nghiên cứu của hãng bảo mật F-Secure (Phần Lan) cho biết.

Để nghiên cứu mục tiêu nhắm tới của Stuxnet, các chuyên gia bảo mật bắt đầu dịch ngược chương trình thực thi, đào bới từng đoạn mã và lần tìm các manh mối.

Roel Schouwenberg, chuyên gia bảo mật cao cấp của Kaspersky Lab cho biết, đã sửng sốt khi nhận ra Stuxnet không chỉ khai thác một mà tới bốn lỗ hổng zero-day chưa ai từng biết. Ngoài lỗ hổng với những tập tin LNK, cơ chế chia sẻ máy in trong Windows cũng bị Stuxnet lợi dụng để lây lan sang các máy tính khác dùng chung máy in. Hai lỗ hổng khác thực hiện nâp cấp quyền, bị khai thác để gán những quyền ở cấp hệ thống ngay cả khi các máy đã được thiết lập phân cấp quyền nghiêm ngặt.

Trong khi đó, tại Symantec, nhà quản lý bảo mật dày kinh nghiệm Liam O Murchu, ngay khi bắt đầu nghiên cứu, nhận thấy Stuxnet phức tạp hơn ông tưởng. Mã độc có dung lượng khá lớn, khoảng 500 KB, trong khi bình thường chỉ từ 10 đến 15 KB, đòi hỏi hết sức kiên trì, kiểm tra tỉ mỉ mới phát hiện ra thủ đoạn tấn công lỗi zero-day đã được đánh lạc hướng qua nhiều công đoạn. Stuxnet gồm nhiều thành phần, được lưu ở nhiều nơi để dễ thay đổi chức năng và sửa đổi khi cần. Điều thú vị nhất O Murchu nhìn thấy là cách mà mã độc này che giấu hành tung. Mỗi khi nhiễm vào máy tính có cài đặt Step7, Stuxnet giải mã và nạp tập tin thư viện động (DLL) độc hại vào bộ nhớ, giả dạng là tập tin DLL hợp pháp phục vụ cho Step7. Sau đó nó sửa lại giao diện lập trình Windows API để mỗi khi một chương trình nạp chức năng từ thư viện có tên như trên thì nó sẽ kích hoạt Stuxnet từ bộ nhớ thay vì từ ổ cứng. Bằng cách đó, Stuxnet không hiện diện một cách chính thức trong ổ cứng, và gần như không thể bị phát hiện.

Đặt bẫy Stuxnet

“Soi” mã nguồn của Flame cho thấy Flame được dùng làm tên gọi cho module chính của sâu máy tính này.
O Murchu với sự hợp lực của Giám đốc kỹ thuật Eric Chien của Đội phản ứng An ninh của Symantec và các đồng nghiệp Symantec tại các văn phòng ở Nhật và Paris phát hiện thấy, mỗi khi Stuxnet xâm nhập vào một hệ thống nó sẽ liên lạc với một trong hai tên miền: http://www.mypremierfutbol.com  và http://www.todaysfutbol.com  thuê chỗ trên các máy chủ tại Malaysia và Đan Mạch, để báo cáo thông tin về những máy tính mới bị nhiễm. Thông tin bao gồm địa chỉ IP (trong mạng LAN và kết nối ra ngoài), hệ điều hành cùng phiên bản, và phần mềm Step7 nếu trên máy tính đã cài. Các máy chủ giám sát và điều khiển từ xa (C&C server) cho phép những kẻ tấn công cập nhật thêm những chức năng mới cho Stuxnet trên các máy bị nhiễm hoặc cài đặt thêm các phần mềm mã độc khác vào những máy này.

Symantec đã sử dụng kỹ thuật “sinkhole”, tạo ra một máy chủ để giám sát các máy tính bị nhiễm. Mỗi khi Stuxnet tìm cách liên lạc với máy chủ C&C, lập tức thông tin gửi đi sẽ bị lừa hướng tới máy chủ của Symantec. Màn bí ẩn được vén lên, thông tin cho thấy Stuxnet đã được thiết kế đặc biệt để phá hoại các hệ thống của Siemens vận hành các máy ly tâm làm giàu uranium trong chương trình hạt nhân của Iran. Những hệ thống Siemens này đều được điều khiển bởi các máy tính dùng phần mềm Step7.

Đây rõ ràng là cuộc tấn công có động cơ chính trị chứ không phải vì mục tiêu tài chính. Điều bất thường đó đã làm kinh ngạc giới chuyên gia bảo mật máy tính. O Murchu cho biết, lần đầu tiên nhận thức được hậu quả về mặt chính trị trong thế giới thực khi nhìn thấy những mối đe dọa từ mã độc. Schouwenberg và các đồng nghiệp tại Kaspersky cũng đã sớm kết luận rằng chương trình quá phức tạp, không thể là sản phẩm của một nhóm tin tặc mũ đen, vì một nhóm 10 người sẽ cần ít nhất hai hoặc ba năm để tạo ra nó. Câu hỏi đặt ra là, ai là người đứng phía sau mã độc tinh vi này?

Khám phá Flame - “tiền thân” của Stuxnet

Tháng 5/2012, hệ thống tự động của Kaspersky xác định thêm một biến thể khác của Stuxnet. Lúc đầu, Schouwenberg và các cộng sự tưởng hệ thống phát hiện nhầm, bởi vì không thấy điểm tương đồng giữa mã độc mới với Stuxnet. Tuy nhiên, sau khi đào sâu vào các đoạn mã, họ đã tìm thấy dấu vết của tập tin khác, với tên gọi là Flame. Các nhà nghiên cứu nhận ra rằng Flame thực sự là “tiền thân” của Stuxnet, và không hiểu bằng cách nào đó đã không bị phát hiện ra.

Flame có kích thước tới 20 MB, lớn gấp 40 lần so với Stuxnet. Schouwenberg và nhiều chuyên gia bảo mật tin rằng nó có thể cũng được bảo trợ bởi một chính phủ nào đó.

Để phân tích Flame, Kaspersky đã sử dụng kỹ thuật “sinkhole” để “bắt” các thông tin gửi từ những máy bị nhiễm Flame về máy chủ C&C điều khiển chúng. Dù vậy, việc xác định chủ nhân thực sự của các máy chủ điều khiển Flame là hết sức khó khăn, bởi theo Schouwenberg, những kẻ tấn công không dễ lộ diện vì sử dụng thẻ tín dụng đánh cắp, và ẩn mình sau nhiều lớp proxy.

Eugene Kaspersky, Chủ tịch kiêm CEO Kaspersky Lab, phát biểu tại một hội nghị bảo mật diễn ra tại Tel Aviv (Israel) vào ngày 6/6/2012. Ảnh: Reuters
Ngược với Stuxnet sinh ra để hủy diệt mọi thứ, mục đích của Flame chỉ đơn thuần là do thám. Nhiễm vào  những thanh nhớ USB, nó có thể lây lan qua các máy cùng chia sẻ máy in trên mạng nội bộ. Mỗi khi  Flame thâm nhập vào một máy tính, nó có thể ngầm tìm kiếm các từ khóa trong các tập tin PDF bí mật nhất nằm trong máy, sau đó tạo ra và truyền tải một bản tóm tắt của tài liệu, mà không hề bị phát hiện. Schouwenberg khẳng định, Flame đã đạt tới độ tinh vi, không thể bị phát hiện bởi các phần mềm bảo mật, và vì nó không đơn giản truyền ngay toàn bộ thông tin thu thập được tới các máy chủ C&C, mà chia nhỏ dữ liệu ra để tránh lưu lượng truyền đột ngột tăng cao, nên đã qua mặt được các nhà quản trị mạng.

Flame đặc biệt có thể trao đổi dữ liệu với các thiết bị hỗ trợ kết nối Bluetooth ở gần thiết bị lây nhiễm. Nhưng điều đáng sợ nhất về Flame là cách thức nó đã được “cấy” lên các máy tính ban đầu, đó là thông qua một bản cập nhật cho hệ điều hành Windows 7. Rõ ràng nạn nhân không thể nào ngờ mình lại dính mã độc khi tải về một bản vá hợp pháp từ Microsoft. Chuyên gia bảo mật Hypponen của F-Secure nhận định, đó là một kỳ công về mặt kỹ thuật, và để thực hiện sẽ cần tới một siêu máy tính với rất nhiều nhà khoa học.

Trong khi dịch ngược Flame, Schouwenberg và các thành viên trong nhóm đã phát hiện ra Gauss vào tháng 7/2012. Nhiễm từ máy này sang máy khác qua thanh nhớ USB, Gauss đánh cắp thông tin ngân hàng của người dùng và thu thập các mật khẩu chứa trong máy nạn nhân. Các chuyên gia nhận thấy Gauss nhắm đến các ngân hàng của Li-băng, nhưng không rõ vì lý do gì. Chỉ biết rằng, thông tin thu thập sẽ được mã hóa và ẩn chứa ngay trên chính thanh USB. Sau đó, khi thanh USB này được cắm vào một máy nối mạng, Gauss lấy dữ liệu thu thập từ thanh USB và gửi nó đến các máy chủ C&C.

Khi các kỹ sư của Kaspersky lừa được Gauss liên lạc với các máy chủ của họ, ngay lập tức những máy chủ này bị đứng, khiến họ nghĩ rằng các tác giả của Gauss tìm cách dấu vội tung tích của chúng. Schouwenberg cho biết Kaspersky đã có một chút mạo hiểm khi dụ tin tặc thâm nhập các máy chủ của hãng, nhưng đã thu thập đủ thông tin để bảo vệ khách hàng của mình phòng chống Gauss. Kaspersky không đề cập ai đứng sau Gauss, nhưng cho rằng nó có mối liên hệ với Stuxnet, Flame và Duqu – những siêu vũ khí trên không gian mạng.

Jeffrey Carr, nhà sáng lập hãng bảo mật Taia Global, có trụ sở tại bang Virginia (Mỹ) cho biết, mặc dù Stuxnet tạm thời có thể làm chậm chương trình hạt nhân ở Iran, nhưng đã không đạt được mục tiêu cuối cùng của nó. “Bất cứ ai đã chi hàng triệu USD cho Stuxnet, Flame, Duqu... thì cũng đều đang lãng phí tiền của họ. Những mã độc này đã được công khai và có thể bị dịch ngược”, Carr khẳng định.

Từ khóa: bảo mật, Flame, Gauss, hệ thống làm giàu uranium, Iran làm giàu uranium, mã độc, malware, Stuxnet