Hành trình phá mã Stuxnet, virus máy tính hắc ám nhất trong lịch sử – 3

Phần 1  2  3  4  5  6  7  8


“Mọi điều trong đó khiến bạn dựng cả tóc gáy và nghĩ: chúng ta cần xem xét kỹ vụ này.”  – Liam O Murchu


Liam O Murchu của Symantec là người đầu tiên nhận ra rằng Stuxnet phức tạp hơn nhiều so với những gì mà mọi người tưởng trước đó. Nguồn: Jon Snyder, Wired.com.

Các nghiên cứu viên thuộc trụ sở của Symantec tại Châu Âu và Mỹ nằm trong số những người nắm được bản mẫu của Stuxnet vào hồi tháng 7 và đã tạo ra dấu hiệu nhận dạng số của virus này cho các khách hàng của họ. Nhưng ngay khi quá trình này kết thúc thì phần mềm độc hại này được chuyển qua cho Liam O Murchu ở trụ sở tại Culver City, California. Liam O Murchu là người gốc Ai-len, có sở thích trượt ván tuyết, chất giọng bay bổng, và phần mái tóc phía trước dựng đứng như thành của lòng máng chơi patin. O Murchu là trưởng bộ phận Phản ứng An ninh (Security Response) của Symantec, với nhiệm vụ là xem xét các phần mềm độc hại đáng chú ý để quyết định xem có cần thiết phải triển khai phân tích kỹ càng.

Phần lớn trong số hơn 1 triệu tập tin độc hại Symantec và các hãng chống virus khác nhận được hàng năm là biến thể của các virus và sâu máy tính đã biết. Chúng được xử lý tự động mà không cần chuyên gia can thiệp. Hệ thống máy tính vận hành các thuật toán sẽ rà soát các tập tin này để tìm kiếm các chuỗi dữ liệu hay các biểu hiện đáng ngờ để xác định danh tính của phần mềm độc hại rồi tạo ra và cập nhật các dấu hiệu nhận dạng cho các phần mềm chống virus ở các máy tính của khách hàng.

Trái lại, do phần mềm độc hại chứa các phương thức tấn công zero-day có tính chất đặc biệt, nên chúng được các chuyên gia trực tiếp phân tích. O Murchu giao Stuxnet cho một kỹ sư chưa có chút kinh nghiệm gì về zero-day nghĩ rằng đây sẽ là một cơ hội tốt để đào tạo anh ta. Tuy nhiên, O Murchu cũng tiến hành phân tích mã của Stuxnet cùng lúc, anh nhận ra rằng virus này phức tạp hơn rất nhiều so với mức anh dự đoán trước đó.

Mã khai thác zero-day được che dấu sau nhiều lớp mã khác nhằm gây khó khăn cho việc phân tích ngược của các chuyên gia. Ngoài ra, virus này có dung lượng rất lớn – 500 kilobyte (kB), trái với mức từ 10 tới 15kB của các virus thông thường khác. Phần lớn các virus có dung lượng lớn ở mức này chứa các tập tin ảnh chiếm nhiều không gian nhớ, chẳng hạn như là một trang web giả dạng một trang ngân hàng trực tuyến để khi hiển thị trên máy tính bị nhiễm sẽ đánh lừa người dùng để lộ thông tin đăng nhập tài khoản. Dù vậy, Stuxnet không hề chứa một tập tin ảnh nào và cũng không hề có các biểu hiện lãng phí bộ nhớ thông thường khác. Mã của virus này có vẻ như là một hệ thống câu lệnh và dữ liệu dày đặc mà vẫn rất hiệu quả.

Điều này lập tức thu hút sự chú ý của O Murchu.

Lần đầu tiên O Murchu đối mặt với phầm mềm độc hại là vào năm 1996, khi đó một sinh viên tại trường Đại học Dublin (College of Dublin) tạo ra một virus để tấn công hệ thống mạng của trường này. Vào ngày 15/03* năm đó, hàng trăm máy tính thuộc các phòng nghiên cứu trong trường bị khóa không cho sinh viên đăng nhập cho tới khi họ trả lời cả 10 câu hỏi hiển thị trên màn hình. Hầu hết mọi người đều cảm thấy rất bực bội vì bị làm phiền, nhưng O Murchu lại thấy rất hứng thú và tiến hành phân tích mã để tìm hiểu cơ chế hoạt động của nó. Sở thích tháo tung mọi thứ nằm trong máu của anh. Khi còn nhỏ, anh không chơi ôtô như bình thường mà tháo tung ra để xem hộp số hoạt động ra sao.

Chính tính tò mò này đã đưa anh đến với nghề an ninh máy tính.

Sau khi tốt nghiệp đại học, trong một khoảng thời gian ngắn, O Murchu làm nghề kiểm tra thâm nhập cho một công ty sản xuất các quầy truy cập Internet ở Mỹ. Trong nghề này anh tìm cách vượt qua rào cản thanh toán của quầy nhằm truy cập Internet mà không phải trả phí. Ban đầu công ty này chỉ thuê anh để kiểm thử vài lần, nhưng cuối cùng phải giữ anh và những kiểm tra viên khác trong ba tháng do họ liên tục tìm được cách để hạ gục hệ thống.

Năm 2002, anh bắt đầu làm việc cho một hãng chống thư rác, không lâu sau thì hãng này được Symantec mua lại. Rồi O Murchu rời Dublin tới Nam California chuyển tới làm việc tại trụ sở đồ sộ của hãng ở Culver City.

Nếu bạn có nhiều kinh nghiệm phân tích virus và sâu máy tính như O Murchu thì chỉ cần liếc nhìn một mã độc đã biết ngay là nó làm gì – con này thì theo dõi thao tác bàn phím, con này là Trojan ăn cắp tài khoản ngân hàng – và liệu nó được vá víu cẩu thả hay được phát triển một cách tỉ mỉ, cẩn trọng và có tổ chức. Stuxnet thì thuộc dạng sau. Nó bao gồm nhiều thành phần, được phân ra theo từng vị trí khác nhau giúp dễ dàng hoán đổi chức năng và thay đổi virus khi cần.

Tuy vậy, điều đáng chú ý nhất là cách virus này giấu các chức năng đó. Thường thì, khi cần sử dụng, các chức năng trong Windows chỉ được tải từ một tập tin DLL lưu trên ổ đĩa cứng. Nếu virus làm điều tương tự thì sẽ bị phần mềm chống virus phát hiện ngay. Để tránh điều này, Stuxnet mã hóa các tập tin DLL độc của nó. Nó chỉ giải mã và lưu chúng tại RAM (bộ nhớ trong) dưới dạng một tập tin ảo với một cái tên được chọn lựa cẩn thận.

Sau đó nó lập trình lại Windows API – phần giao tiếp giữa hệ điều hành và các chương trình chạy trên đó – để mỗi khi có chương trình tải một chức năng từ một thư viện DLL có tên tương tự thì sẽ được lấy ra từ tập tin độc trên bộ nhớ RAM thay vì từ ổ cứng. Thực tế thì Stuxnet đã tạo ra cả một thể loại tập tin ma hoàn toàn mới, không lưu trong ổ cứng và do đó gần như không thể bị phát hiện.

Đây là lần đầu tiên O Murchu bắt gặp kỹ thuật này sau nhiều năm phân tích mã độc. “Kể cả các loại virus phức tạp và cao cấp chúng tôi đã gặp phải cũng chưa bao giờ làm thế,” anh trầm ngâm nhận xét trong buổi phỏng vấn mới đây ở trụ sở Symantec.

Các đầu mối càng ngày càng cho thấy Stuxnet là một sản phẩm chuyên nghiệp, thế mà O Murchu mới chỉ rà soát được 5kB trong tổng số 500kB mã. Rõ ràng là phải cần tới cả một nhóm chuyên gia để xử trí nó. Vấn đề là có nên làm hay không?

Sẽ không có ai trách cứ Symantec nếu họ bỏ dở việc phá mã Stuxnet vào lúc này và chuyển qua làm những công việc khác. Mục tiêu chính của các công ty chống virus là phát hiện – đầu tiên là ngăn chặn lây nhiễm và loại bỏ các mã độc khỏi hệ thống đã bị nhiễm. Tìm hiểu hoạt động của mã độc trên máy tính đã bị nhiễm chỉ là nhiệm vụ thứ yếu.

Dù vậy Symantec cảm thấy cần giải mã các bí ẩn của Stuxnet cho khách hàng của họ. Hơn thế nữa, mã của virus này có vẻ như quá phức tạp và tinh vi so với một phần mềm gián điệp bình thường. Đây là thách thức rất hóc búa và O Murchu muốn chinh phục nó.

“Mọi điều trong đó khiến bạn dựng cả tóc gáy và nghĩ: chúng ta cần xem xét kỹ vụ này.”  – Liam O Murchu

Khi O Murchu hoàn tất phần đánh giá mở đầu thì đã hết ngày thứ sáu, vì thế, anh gửi một bản cập nhật tình hình tới nhóm nghiên cứu của công ty tại Tokyo. Symantec có văn phong nghiên cứu tại Châu Âu, Mỹ và Nhật Bản để cho các nhóm nghiên cứu ở các múi giờ khác nhau luôn sẵn sàng tiếp nhận các virus quan trọng rồi giao lại kết quả khi kết thúc ngày làm việc cho nhóm khác vừa bắt đầu ngày mới.

Nhóm Tokyo dành trọn cuối tuần đó sắp xếp các phần của Stuxnet để tìm hiểu xem họ đang đối mặt với điều gì. Vào thứ hai, O Murchu tiếp tục công việc từ nơi họ dừng lại, cùng với sự tham gia của Eric Chien, giám đốc kỹ thuật của nhóm Phản ứng An ninh, và Nicolas Falliere, kỹ sư phần mềm và chuyên gia phân tích mã cao cấp của Symantec tại trụ sở ở Paris.

Họ xác định rằng, mỗi khi nó nhiễm được vào một hệ thống máy tính, Stuxnet liên lạc tới một trong hai tên miền http://www.mypremierfutbol.comhttp://www.todaysfutbol.com đặt tại các máy chủ ở Malaysia và Đan Mạch, để gửi thông tin về các máy tính bị lây nhiễm. Những thông tin này bao gồm địa chỉ IP nội bộ và bên ngoài của máy, tên máy, kiểu và phiên bản của hệ điều hành, và liệu phần mềm Siemens Simatic WinCC Step7 (gọi tóm tắt là Step7) có được cài đặt hay không. Hệ thống máy chủ chỉ huy cho phép những kẻ tấn công cập nhật các chức năng mới cho Stuxnet, hay thậm chí cài đặt thêm nhiều tập tin độc hại vào hệ thống bị lây.

Các công ty cung cấp dịch vụ DNS (địa chỉ tên miền) cho hai địa chỉ trên lập tức chặn lưu lượng gửi tới từ những máy bị nhiễm, nhằm ngăn chặn thông tin về các hệ thống nạn nhân tới tay những kẻ tấn công. Nhưng Symantec có ý hay hơn. Hãng này liên lạc và thuyết phục các nhà cung cấp DNS chuyển hướng các lưu lượng mạng này tới một sinkhole** – một máy tính chuyên tiếp nhận các lưu lượng độc – do Symantec kiểm soát. Tới sáng thứ ba thì Symantec bắt đầu nhận được các báo cáo từ các máy tính bị nhiễm Stuxnet báo về. Hãng này chia sẻ dữ liệu này với các hãng an ninh máy tính khác.

Chỉ trong vòng một tuần dùng sinkhole, có tới khoảng 38 nghìn máy bị nhiễm gửi báo cáo về từ hàng chục nước. Không lâu sau, con số này vượt mốc 100 nghìn. Stuxnet đang lây lan mạnh mặc cho các công ty chống virus phát hành dấu hiệu nhận biết để ngăn chặn.

Khi Chien và O Murchu tạo bản đồ địa lý của các vụ lây nhiễm thì họ phát hiện một mẫu lây lan rất lạ lùng. Trong tổng số 38 nghìn máy bị nhiễm thì Iran chiếm tới 22 nghìn. Indonesia đứng thứ nhì nhưng ít hơn rất nhiều với chỉ khoảng 6700 máy, kế tiếp là Ấn Độ với 3700 máy. Mỹ chỉ có dưới 400 máy bị nhiễm. Chỉ có một số lượng rất nhỏ máy có cài đặt phần mềm Siemens Step 7, 217 máy ở Iran và 16 máy ở Mỹ.

Số lượng lây nhiễm này rất khác biệt so với các trường hợp lây nhiễm ở phạm vi toàn cầu, như những gì diễn ra trong vụ lây nhiễm rộng khắp của sâu Conficker. Trong những trường hợp này, Iran không bao giờ có thứ hạng cao mà luôn là Hàn Quốc và Mỹ, điều này không có gì khó hiểu do hai nước này có lượng người truy cập Internet rất cao. Kể cả khi những vụ có trung tâm lây lan tại vùng Trung Đông hay Trung Á thì Iran cũng không bao giờ có số lượng lây nhiễm cao. Ngược lại thì rõ ràng Iran là trung tâm lây nhiễm của Stuxnet.

Mức độ phức tạp của mã độc, cộng với các chứng thư giả, và giờ thì Iran là trung tâm lây nhiễm hé lộ dường như Stuxnet là tác phẩm của một đội quân trên không gian mạng (cyberarmy) thuộc một chính phủ nào đó – thậm chí có thể là của Mỹ.

Điều này bỗng khiến cho động thái sử dụng sinkhole của Symantec trở nên khá táo bạo. Ngăn chặn lưu lượng độc tới tay những kẻ tấn công, các chuyên gia đối mặt với khả năng họ đang phá hỏng một điệp vụ bí mật của chính phủ Mỹ. Gần đây khi được hỏi về vấn đề này, Chien trả lời, “Với chúng tôi thì không có kẻ tốt, kẻ xấu.” Nhưng sau đó anh tạm dừng, ngẫm nghĩ thêm một chút rồi tiếp. “Thực ra thì kẻ xấu là những kẻ viết mã độc hại để lây nhiễm vào các hệ thống, nhằm gây ra các hậu quả trong hoặc ngoài ý muốn.”

Dù “kẻ xấu” có là chính phủ Mỹ hay các đồng minh của họ thì vụ tấn công này đã gây ra thiệt hại không đáng có cho hàng nghìn hệ thống khác. Symantec cảm thấy rằng hoạt động của họ không nên bị ảnh hưởng bởi các yếu tố cảm tính như lòng yêu nước. “Chúng tôi không chịu ơn bất kỳ quốc gia nào,” Chien nói. “Chúng tôi là công ty tư nhân, đa quốc gia bảo vệ lợi ích của khách hàng.”

Đồng hồ đang đếm từng giây. Các chuyên gia biết rằng tới thời điểm này Stuxnet đã lây nhiễm tới hơn 100 nghìn máy, trong khi họ vẫn chưa biết là nó sẽ làm gì với những hệ thống này.

“Trong khoảng thời gian dài chúng tôi cứ nghĩ rằng có lẽ nó lây lan mạnh ở Iran là do họ không có các phần mềm an ninh cập nhật, và nếu nó lan tới Mỹ, một số nhà máy xử lý nước hay hệ thống điều khiển tàu hỏa hay những thứ khác có thể bị ảnh hưởng,” Chien hồi tưởng lại, gần đây. “Do vậy, chúng tôi thực sự dốc sức làm việc hết tốc lực để tìm hiểu chính xác xem những gì bị virus này tác động tới?”

*Ngày 15/03 (hay “Ides of March” trong tiếng Anh) là ngày kỷ niệm sự kiện Julius Caesar bị ám sát, đồng thời là cột mốc đánh dấu việc đế chế La Mã (Roma) chuyển đổi chế độ từ cộng hòa sang đế quốc.

**Sinkhole là một thuật ngữ về an ninh máy tính, thường được dùng để mô tả 1 hệ thống được xây dựng với mục đích tiếp nhận các lưu lượng thông tin độc hại để xử lý theo cách riêng biệt.


Phần 1  2  3  4  5  6  7  8


Advertisements

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s

%d bloggers like this: