“Tới lúc này thì chúng tôi bắt đầu chú ý tới Stuxnet. Chúng tôi nghĩ, được rồi, bắt đầu thú vị rồi đây.” – Ralph Langner
Trụ sở của Symantec tại Culver City là một toà nhà lớn và thoáng đãng với một giếng trời có mái cao trông giống như ở trong phim “The Island”. Tiếng gót giày của người qua lại vang rộn ràng trên các tấm sàn nhà lớn là một phần của thiết kế nền cao giúp giấu hệ thống cấp điện nguồn và hệ thống thông khí ở phía dưới. Toà nhà rộng 43 nghìn m2 này đạt tiêu chuẩn LEAD, có hầu hết các bức tường bao bên ngoài làm bằng kính, giúp cho hầu hết tất cả mọi người làm việc ở đây có một góc nhìn ra bên ngoài. Nói đúng hơn là, gần như một góc nhìn trong khu dân cư buồn gần sân bay Quốc tế của Los Angeles này.
Sơ đồ của một ống ly tâm P-1, đây là thiết kế cơ bản của các ống ly tâm dùng ở Natanz. Các mũi tên màu đỏ chỉ các rotor quay mà Stuxnet nhằm phá hoại. Nguồn: Institute for Science and International Security (Viện Khoa học và An ninh Quốc tế).
Nhóm Phân tích Nguy cơ (Threat Intelligence) làm việc sau ba lớp cửa bảo an trong một căn phòng lạnh lẽo với các ô làm việc trống trơn và các khung cửa sổ lớn nhìn ra một ngọn đồi phủ kín cỏ mà các khu văn phòng hay dựng lên để mô phỏng thiên nhiên. Trong phòng không có chậu cây, không tranh treo tường, cũng chẳng có dấu vết nào về những trò ngốc nghếch mà dân văn phòng hay chơi để xả hơi. Ngoài ra, kết nối Internet cũng không có, mà chỉ có môi trường mạng bị cách ly của Symantec, nơi mà các chuyên gia thả cho các mã độc hoạt động tự do để tìm hiểu sức tàn phá của chúng. Các thiết bị nhớ di động cũng bị cấm tiệt trong phòng này để ngăn chặn lây lan mã độc sang hệ thống mạng làm việc của Symantec cũng như Internet.
Làm việc trong môi trường phiên bản số của một phòng thí nghiệm về vũ khí sinh học mang lại đủ các loại rắc rối. Khi điều tra các khía cạnh của Stuxnet trên mạng, Chien và O Murchu phải tới một buồng máy chủ nằm bên ngoài văn phòng, nơi có các máy tính xách tay kết nối với Internet.
Vài tuần đầu sau khi phát hiện Stuxnet, Chien và O Murchu đã làm rõ cơ chế lây nhiễm của virus này, nhưng họ vẫn chưa hiểu nguyên do tồn tại, và các hoạt động sau lây nhiễm của nó. Các bí mật này nằm trong phần tải dữ liệu rất phức tạp của nó. Nhiệm vụ phân tích ngược phần mã này do Nicolas Falliere, một anh chàng 28 tuổi người Pháp, gánh vác.
Falliere là một người khá khiêm nhường, ăn nói nhỏ nhẹ và trông anh ta như đang mải mê chỉnh nhạc (DJ) trong một sàn nhảy ngầm ở Paris hơn là đang chăm chú nghiền ngẫm cả tập mã lệnh đã được in ra trong lúc đi tàu điện ngầm (Metro). Chien tuyển anh năm 2006, ngay khi anh tốt nghiệp đại học. Chuyên môn của anh là phân tích sâu các nguy cơ mã độc nhờ vào kỹ năng được tôi luyện từ khi còn choai choai qua việc phá mã các tập tin Crackme – các trò chơi mật mã mà các lập trình viên viết ra để thách đố và đánh giá trình độ phân tích ngược của nhau.
Falliere nhận định rằng Stuxnet có ba phần chính và 15 thành phần, tất cả được gói trong các lớp mã hóa giống như những con búp bê lồng nhau của Nga. Tùy vào các điều kiện cụ thể của máy bị nhiễm, Stuxnet sẽ giải mã và lấy ra từng thành phần này khi cần.
Ngoài ra, Stuxnet còn có một tập tin cấu hình lớn – mdmcpq3.pnf – với một bản danh sách có hơn 400 mục mà những kẻ tấn công có thể điều chỉnh mọi khía cạnh của mã độc này, ví dụ như nó sẽ lây lan trong khoảng thời gian nào và mỗi khai thác mã sẽ hoạt động bao lâu. Chính tại đây các chuyên gia tìm được một thông tin về ngày kết thúc – 24/06/2012. Mỗi khi Stuxnet bắt đầu hoạt động trên một máy tính, nó sẽ kiểm tra thông tin ngày của đồng hồ của máy, nếu ngày hệ thống là sau ngày kết thúc được ghi trong tập tin cấu hình thì Stuxnet sẽ tự động ngừng chạy. Có lẽ đây là thời điểm mà Stuxnet được kỳ vọng là đã hoàn thành mọi mục tiêu đặt ra.
Tuy vậy phần quan trọng nhất của Stuxnet là phần mã phá hoại (payload) của nó. Nếu Stuxnet xác định được hệ thống bị nhiễm có cài đặt phần mềm Siemens Step7 thì nó sẽ giải mã và nạp vào máy này một tập tin DLL – một thư viện chứa các hàm điều khiển. Tập tin này giả danh một tập tin DLL hợp lệ là s7otbxdx.dll, chứa các hàm được sử dụng bởi các thành phần khác nhau của phần mềm Step7.
Step7 có một giao diện người dùng tiện dụng trên Window để phục vụ việc lập trình và giám sát một thiết bị có tên là “Programmable Logic Controller” hay PLC. Về bản chất, các PLC là các máy tính nhỏ, thường có kích cỡ như một cái máy nướng bánh mỳ. Các máy tính này điều khiển mọi thứ từ các động cơ trong các dây chuyền đóng gói tới các van quan trọng trong các đường ống dẫn khí đốt. Nhân viên làm việc trong các hệ thống công nghiệp giao tiếp với và lập trình PLC bằng cách kết nối máy tính Window có Step7 của họ với PLC, rồi truyền các lệnh điều khiển tới nó hay nhận các dữ liệu báo cáo thiết bị này gửi về.
Đây cũng chính là điểm mà tập tin DLL độc hại của Stuxnet bắt đầu có tác dụng. Falliere phát hiện ra rằng virus này sẽ chặn các lệnh xuất phát từ phần mềm Step7 tới PLC rồi thay bằng các lệnh độc hại của chính nó.
Cùng lúc đó, một phần khác của Stuxnet vô hiệu hóa mọi cảnh báo tự động có thể xảy ra trong hệ thống do hệ quả của các lệnh độc này. Virus này còn che dấu những chuyện đang xảy ra trên PLC bằng cách chặn các thông tin báo cáo từ PLC tới máy tính có Step7, rồi loại bỏ bất kỳ dấu hiệu của các lệnh độc hại. Những người giám sát PLC bằng Step7 sẽ chỉ thấy được các lệnh hợp lệ trên thiết bị. Kịch bản này tương tự như những gì xảy ra trong các bộ phim về các vụ trộm tinh vi. Trong đó, kẻ trộm báu vật chèn một đoạn video giả lặp đi lặp lại vào hệ thống máy quay giám sát an ninh khiến cho bảo vệ khi xem màn hình giám sát chỉ nhìn thấy những hình ảnh như trong lúc bình thường mà không thấy được những hành động của kẻ trộm vào lúc đó.
Việc Stuxnet gửi các câu lệnh tới PLC rồi che giấu hành động này chính là dấu hiệu cho thấy nó được thiết kế để phá hoại thiết bị chứ không phải để phục vụ mục đích gián điệp như mọi người vẫn tưởng. Các chuyên gia thực sự choáng váng với phát hiện mới này. Đây là lần đầu tiên có người chứng kiến, trong thực tế, một mã độc hại được dùng để phá hủy một sự vật cụ thể trong thế giới thực. Hollywood đã tưởng tượng ra một kịch bản tương tự vài năm trước trong phim “Die Hard”. Giờ thì thực tại đã đuổi kịp trí tưởng tượng.
“Chúng tôi cứ nghĩ tới khả năng về gián điệp, khả năng về trộm cắp thẻ tín dụng; những thứ chúng tôi phải giải quyết hàng ngày,” Chien hồi tưởng. “Nhưng chúng tôi không hề nghĩ tới tình huống này.”
Ngày 06 tháng 8, Symantec đăng tải một bài blog công bố rằng Stuxnet là một công cụ mã độc có chủ đích tấn công vào hệ thống điều khiển PLC của Siemens.
Để minh hoạ khả năng phá hoại của Stuxnet, các chuyên gia nhắc tới một vụ tấn công số, hay được trích dẫn, của CIA năm 1982 vào đường dẫn khí đốt ở Siberi, gây ra một vụ nổ khoảng bằng ⅕ vụ nổ bom hạt nhân tại Hiroshima. Theo câu chuyện chưa bao giờ được chứng thực này thì chính phủ Mỹ phát hiện phía Nga lấy cắp dữ liệu về công nghệ của họ. Do vậy, CIA lập kế hoạch để đưa một quả bom logic vào một phần mềm mà cơ quan này biết phía Nga mua từ một công ty Canada để vận hành các máy bơm và van trên ống dẫn khí tự nhiên của họ. Ban đầu thiết bị này hoạt động hoàn toàn bình thường, nhưng khi tới một thời điểm được lập trình sẵn, nó điều khiển các van trong đường ống hoạt động sai, dẫn tới tạo áp suất lớn và gây nổ, tạo ra một quả cầu lửa lớn đến mức vệ tinh trên quỹ đạo ghi lại được.
Bằng chứng về việc Stuxnet phá hoại các bộ PLC là một đột phá rất quan trọng. Nhưng vấn đề là không ai trong số chuyên gia của Symantec có kiến thức đủ sâu về PLC để hiểu được chính xác là Stuxnet đang làm gì với chúng. Các bộ PLC sử dụng một ngôn ngữ lập trình chuyên biệt tên là STL, hoàn toàn lạ lẫm đối với các chuyên gia về virus máy tính vốn chỉ quen thuộc với các chương trình cho Windows và hợp ngữ (assembly language) của máy tính cá nhân. Họ có thỉnh cầu những người hiểu biết về PLC và STL liên lạc với họ, trên blog. Nhưng không ai đáp lời.
Hai tuần sau bài đăng của Symantec, lưu lượng từ các máy bị nhiễm ở Iran đột ngột ngừng gửi tới sinkhole của Symantec. Iran đã bắt đầu chặn đường kết nối ra từ các máy này. Ai đó ở Iran không muốn người ngoài biết tới các máy bị nhiễm ở đây. Hoặc là họ không muốn người ngoài có một kênh kết nối ngược tới các máy này thông qua Stuxnet.
Chien cứ nghĩ rằng một khi họ đăng bài thì các chuyên gia ở các hãng khác cũng sẽ đăng thêm thông tin. Thông thường khi phân tích mã độc mới, các hãng đối thủ cũng phân tích cùng lúc, tất cả họ đều chạy đua để công bố các khám phá đầu tiên. Quá trình làm việc song song này đồng thời đóng vai trò như việc bình duyệt không chính thức giúp kiểm chứng các phát hiện của từng hãng. Tuy vậy, lần này không hề thấy dấu hiệu các chuyên gia khác đang tích cực phân tích.
“Chúng tôi bàn tới việc mọi sự sẽ bùng nổ!” Chien hồi tưởng lại, gần đây, khi vẫn còn ngạc nhiên vì sự lạnh nhạt của giới chuyên môn. Thay vào đó, theo lời của Chien, chỉ có sự “câm lặng như dế.”
*mã phá hoại hay payload là phần mã “hành động” của các virus hay sâu máy tính, không tính tới phần chúng dùng để thực hiện lây nhiễm.
-
Nguyên bản tiếng Anh: “How Digital Detectives Deciphered Stuxnet, the Most Menacing Malware in History,” Kim Zetter, Wired.com, July 2011.
-
Người dịch: Phạm Duy Đông
-
Biên tập: Ngô Trọng Cảnh, Phó Đức Giang, Hồ Quang Tây
“Ngoài ra, kết nối Internet cũng không có, mà chỉ có môi trường mạng bị cách ly của Symantec, nơi mà các chuyên gia thả cho các mã độc hoạt động tự do để tìm hiểu sức tàn phá của chúng. Các thiết bị nhớ di động cũng bị cấm tiệt trong phòng này để ngăn chặn lây lan mã độc sang hệ thống mạng làm việc của Symantec cũng như Internet.” –> vậy thì Symantec làm thế quái nào để thả mã độc vô cái phòng này nhỉ? Hay bỏ vô cốc đem vào.
Hì, chắc phải có protocol thả mã độc cụ thể, ý ở đây là những thứ ‘ngoài luồng’ đều bị cấm 🙂