Chủ Nhật, 26 tháng 5, 2013

Câu chuyện xung quanh Stuxnet - vũ khí nguy hiểm trong thế giới mạng

iran-stuxnet

Được nhận diện là một nguy cơ bảo mật bùng nổ vào tháng 6 năm 2010, sâu máy tính Stuxnet đã lây nhiễm vào ít nhất 14 cơ sở công nghiệp của Iran, trong đó có cả một nhà máy là giàu uranium. Stuxnet đã gây nên một mối lo ngại rất lớn đó là sâu máy tính giờ đây có thể được sử dụng để phá hoại sản xuất chứ không chỉ dùng cho mục đích thăm dò hay đánh cắp thông tin nữa. Điều đáng chú ý là Stuxnet có cơ chế hoạt động cực kì phức tạp, kèm theo đó là một số đặc tính rất riêng, rất nguy hiểm, thậm chí nó đã khai thác thành công một số lỗi mà người ta chưa hề biết đến để thực hiện mục đích của mình.

Cách hoạt động của Stuxnet

Sâu máy tính (worm) và virus đều được thiết kế nhằm mục đích phá hoại dữ liệu hoặc các hệ thống máy tính. Tuy nhiên, worm nguy hiểm hơn bởi nó có khả năng tự sao chép và tự lan truyền giữa các máy tính với, thường là sẽ thông qua một mạng máy tính. Stuxnet chính là một con worm và nó hoạt động theo 3 giai đoạn. Đầu tiên, nó sẽ nhắm đến các máy tính sử dụng Windows để lây nhiễm và tiếp tục lan truyền qua mạng bằng biện pháp tự sao chép. Sau đó, Stuxnet sẽ nhắm vào Step7, một phần mềm chạy trên Windows do Siemens phát triển để kiểm soát các thiết bị công nghiệp, ví dụ như van, lò nung... Cuối cùng, sâu này sẽ tìm cách phá hỏng các bộ lập trình logic (programmable logic controller - PLC, dùng để kiểm soát các hệ thống, máy móc và công cụ dùng trong công nghiệp). Quy trình chi tiết thì như sau:

Stuxnet_cach_hoat_dong

Cũng vì khả năng của mình mà chủ nhân của Stuxnet có thể bí mật trinh thám xem những hệ thống công nghiệp nào được sử dụng ở cơ sở sản xuất của nạn nhân. Chúng thậm chí còn có thể làm cho các máy li tâm quay nhanh đến nỗi hỏng trục mà người vận hành không hề hay biết. (Tính đến ngày hôm nay Iran cũng chưa xác nhận một bài báo nói rằng Stuxnet đã làm hỏng một số máy li tâm của họ).

Nguy hiểm hơn, Stuxnet bao gồm nhiều thành phần và được phân tán nhiều nơi để có thể được cập nhật khi cần. Nó cũng có cơ chế giả dạng tập tin thư viện liên kết động (DLL) rất tinh vi nên có thể đánh lừa việc truy cập file DLL của phần mềm Step7. Theo giải thích của Symantec, Step 7 sử dụng một thư viện tên là S7otbxdx.dll để truy cập vào các bộ PLC. Stuxnet sẽ thay thế tập tin này bằng phiên bản riêng của nó, nhờ vậy mà sâu có thể can thiệp vào quá trình đọc, ghi dữ liệu từ máy tính đến PLC.

Stuxnet được lập trình để có thể bí mật lây từ máy Windows này sang máy Windows khác. Ngay cả khi máy không được kết nối Internet thì Stuxnet vẫn có thể tự sao chép mình thông qua các ổ đĩa USB. Chính vì đặc biệt tính này mà các chuyên gia bảo mật khi đó đã lo lắng rằng Stuxnet sẽ nhanh chóng lây lan ra thế giới bên ngoài. Thực chất thì vào tháng 10 năm ngoái, Thư kí bộ quốc phòng Leon Panetta của Mỹ đã từng lên tiếng rằng nước này đang có nguy cơ bị tấn công bởi một trận "Trân Châu Cảng trong không gian số". Một đợt tấn công như vậy có thể làm xe lửa trật đường ray, nguồn nước bị nhiễm độc cũng như đánh sập cả hệ thống lưới điện quốc gia. Ngay sau đó một tháng, tập đoàn năng lượng Chevron (trụ sở chính tại Mỹ) thừa nhận họ chính là công ty Hoa Kì đầu tiên bị nhiễm Stuxnet.

Quay trở lại con sâu Stuxnet, cho đến nay người chịu trách nhiệm sáng tạo ra nó vẫn chưa hề bị chính thức phát hiệm. Tuy nhiên, kích thước và mức độ nghiêm trọng của nó đã khiến các chuyên gia tin rằng Stuxnet đã được tạo nên nhờ có sự hậu thuẫn của một quốc gia nào đó. Hai "kẻ tình nghi" hàng đầu được giới bảo mật đưa ra là Mỹ và Israel bởi họ có mối quan hệ không tốt với Iran. Ngoài ra, Mỹ cũng đang có rất nhiều nỗ lực để ngăn chặn chương trình hạt nhân của Iran này nên không loại trừ khả năng họ tạo ra một sâu máy tính để phá hoại đối thủ của mình.

Với một cú đánh mạnh do Stuxnet gây ra, kịch bản về một ngày tận thế trong đó mọi thứ điều khiển bằng máy tính đều bị tê liệt đã bắt đầu dần dần trở thành hiện thực. Những gì diễn ra trong phim Live Free or Die Hard 4 có thể sẽ được áp dụng và nhà nghiên cứu Schouwenberg nói rằng khi đó, "khoa học viễn tưởng bổng nhiên trở thành sự thật". Nhưng ai sẽ là người cứu thế giới? Đó sẽ không phải là Bruce Willis, một chàng trai có 27 tuổi có tóc đuôi ngựa như trong phim, mà chính các chuyên gia và kĩ sư bảo mật sẽ lật ngược thế cờ.

Nmap


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...

malware

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ền http://www.mypremierfutbol.comhttp://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.

Biến thể của Stuxnet

Duqu

Vào tháng 9/2011, một sâu máy tính mang tên Duqu được phát hiện bởi Phòng thí nghiệm CrySyS Lab ở Đại học Kinh tế và Kĩ thuật Budapest thuộc Hungary. Cái tên này được lấy từ tiền tố "~DQ" của các file mà con sâu này tạo ra. Duqu được cho là có cách hoạt động y như Stuxnet, tuy nhiên mục đích của nó thì khác hẳn. Symantec tin rằng Duqu được tạo ra bởi chính tác giả của Stuxnet hoặc do một ai đó có quyền truy cập vào mã nguồn Stuxnet. Chú sâu này cũng có chữ kí số hợp pháp đánh cắp từ hãng C-Media (Đài Loan) và nó sẽ thu thập thông tin để chuẩn bị cho các đợt tấn công trong tương lai.

Flame

Đến tháng 5/2012, Kaspersky Lab được Ủy ban Truyền thông Quốc tế (ITU) yêu cầu nghiên cứu một mẫu malware vốn bị nghi ngờ là đã phá hoại tập tin của một công ty dầu mỏ Iran. Trong quá trình làm việc theo yêu cầu của ITU, hệ thống tự động do Kaspersky xây dựng phát hiện thêm một biến thể khác của Stuxnet. Lúc đầu, Schouwenberg và đồng nghiệp tưởng rằng hệ thống đã mắc phải một lỗi nào đó bởi malware mới không có sự tương đồng rõ ràng nào với Stuxnet cả. Thế nhưng sau khi nghiên cứu kĩ mã nguồn của malware mới, họ tìm thấy một tập tin tên là Flame, vốn từng có mặt trong những bản Stuxnet đầu tiên. Trước đây người ta nghĩ Stuxnet và Flame hoàn toàn không có can hệ gì nhưng bay giờ thì các nhà khoa học đã nhận ra rằng Flame thực chất chính là người tiền nhiệm của Stuxnet nhưng vì một cách nào đó mà người ta không tìm thấy nó trước Stuxnet.

Về kích thước, Flame nặng đến 20MB, gấp 40 lần so với Stuxnet, và một lần nữa, các nhà nghiên cứu, trong đó có Schouwenberg, nghi ngờ rằng lại có bàn tay của chính phủ một nước nào đó can thiệp vào. Để phân tích Flame, Kaspersky cũng xài kĩ thuật sinkhole giống như lúc Symantec nghiên cứu Stuxnet. Khi Flame liên lạc với các server của nó, dữ liệu đã được chuyển về máy chủ do Kaspersky quản lí và tại đây, các thông tin về thẻ tín dụng cũng như cổng proxy bị đánh cắp đã lộ diện. Việc xác định chủ sở hữu các server của Flame được Schouwenberg nhận xét là rất khó khăn.

Nói đến tính chất, nếu như Stuxnet được tạo ra để phá hủy mọi thứ thì Flame chỉ đơn giản đóng vai trò gián điệp. Flame lây lan qua USB và có thể nhiễm vào các máy tin được chia sẻ trên cùng một mạng. Khi Flame đã xâm nhập thành công vào máy tính, nó sẽ tìm kiếm những từ khóa trong các tập tin PDF tuyệt mật, sau đó tạo và gửi một bản tóm tắt của tài liệu này về hacker. Mọi hoạt động của Flame đều không dễ dàng bị phát hiện bởi tập tin gửi về máy chủ C&C bị chia nhỏ thành nhiều gói, chính vì thế mà nhà quản trị mạng sẽ không thấy đột biến bất thường nào trong việc sử dụng dung lượng mạng.

CCServer
Mô hình minh hoa cho việc gửi dữ liệu về C&C Server
Ấn tượng hơn, Flam còn có thể trao đổi dữ liệu với bất kì thiết bị Bluetooth nào. Thực chất, kẻ tấn công có thể đánh cắp thông tin hoặc cài một malware khác vào các thiết bị Bluetooth và nếu nó được kết hợp với "Bluetooth rifle" - một ăng-ten định hướng dùng cho máy tính có trang bị Bluetooth - tầm hoạt động của Flame có thể lên đến 2 kilomet.

Tuy nhiên, điều đáng quan tâm nhất ở Flame đó là cách mà nó thâm nhập vào máy tính: thông qua một bản cập nhật cho Windows 7. Người dùng vẫn nghĩ rằng mình đang tải về một bản update chính chủ của Microsoft nhưng thực chất nó chính là Flame và việc này nguy hiểm hơn nhiều so với chỉnh bản thân chú sâu này. Schouwenberg ước tính rằng chỉ có khoảng 10 lập trình viên trên thế giới có đủ khả năng viết ra tính năng này. Hypponen của F-Secure thì nhận xét rằng Flame đã phá vỡ được hệ thống bảo mật tầm cỡ quốc tế mà đáng ra chỉ có thể làm bởi một siêu máy tính và rất nhiều nhà khoa học.

Nếu thật sự chính phủ Mỹ đứng đằng sau Flame, chắc chắn mối quan hệ giữa Microsoft và một trong những đối tác lớn nhất của hãng là chính phủ Mỹ sẽ trở nên rất căng thẳng. Hypponen nói: "Tôi đang đoán là Microsoft đã từng có một cuộc điện thoại với Bill Gates, Steve Ballmer cũng như Barack Obama. Tôi rất muốn nghe nội dung cuộc điện thoại đó".

Guass

Trong lúc dịch ngược Flame, Schouwenberg và đội của mình phát hiện thêm một biến thể nữa, đó chính là Gauss. Mục đích của nó gần giống Flame, đó là giám sát âm thầm các máy tính bị lây nhiễm. Gauss bị phát hiện bởi hệ thống các thuật toán để tìm ra điểm tương đương do Kaspersky làm ra. Chú sâu mới này sẽ ẩn mình trên các USB và có nhiệm vụ lấy trộm các tập tin và mật khẩu của các ngân hàng Li Băng, còn động cơ vì sao thì chưa rõ. Dữ liệu sau khi lấy được sẽ chứa trên chính chiếc USB này. Khi cắm nó vào một máy tính khác có kết nối mạng và đã bị nhiễm Gauss, Gauss sẽ thu thập thông tin và gửi nó về máy chủ C&C.

Lần này, khi đang truy dấu vết, các server C&C của Gauss bỗng nhiên biến mất, và đây là động thái cho thấy tác giả của malware này đang có ý che đậy thật nhanh hoạt động của mình. May mắn là Kaspersky đã thu thập đủ thông tin cần thiết để bảo vệ các khách hàng của hãng khởi Gauss, tuy nhiên Kaspersky đang không biết rằng việc làm nào của hãng khiến hacker biết mình đang bị theo dõi.

Kết

Jeffrey Carr, CEO của hãng bảo mật Taia Global cho biết rằng Stuxnet, Gauss hay Flame quả thật nguy hiểm, tuy nhiên chúng đều đã bị phơi bày ra ánh sáng. "Những ai bỏ hàng triệu đô la vào các con sâu này thì tất cả số tiền của họ đều đã trở nên lãng phí". Stuxnet cũng chỉ làm chậm quá trình làm giàu uranium của Iran được chút ít mà thôi. Mối nguy hiểm thật sự ở đây nằm ở các hệ thống máy công nghiệp đang được kết nối và vận hành qua Internet. Chỉ cần tìm kiếm trên Google đúng cách, hacker có thể biết được cách truy cập vào một hệ thống nước của Mỹ. Và thường thì các nhà quản lí sẽ không đổi mật khẩu mặc định, do đó hacker hoàn toàn có thể kiểm soát những hệ thống đó.

Ngoài ra, các công ty cũng thường chậm chạp trong việc cập nhật giải pháp kiểm soát công nghiệp. Kaspersky biết được rằng hiện tại có rất nhiều công ty cung cấp dịch vụ, hạ tầng quan trọng mà lại đang sử dụng các OS có tuổi đời lên tới 30. Tại Washinton, các chính trị gia đã yêu cầu thông qua luật buộc những hãng như thế phải tăng tính bảo mật của mình.

Trong lúc chờ đợi, các thợ săn virus tại Kaspersky, Symantec, F-Secure cũng như khắp các hãng bảo mật khác sẽ tiếp tục cuộc chiến của mình. Schouwenberg nhận xét rằng ngày càng có nhiều bên tham gia hơn và anh rất tò mò để xem trong 10 hay 20 năm tới, mọi chuyện sẽ diễn biến như thế nào.