Conficker

Conficker, còn được biết đến với tên Downup, Downadup và Kido tính nhắm đến hệ điều hành Microsoft Windows, được phát hiện lần đầu tiên vào tháng 10 năm 2008. Biến thể đầu tiên của sâu này lan truyền qua Internet nhờ khai thác một lỗ hổng trong chồng mạng của Windows 2000, Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008, Windows 7 Beta, và Windows Server 2008 R2 Beta vừa được khám phá vào tháng trước. Loại sâu này gây khó khăn một cách đáng ngạc nhiên cho các nhà điều hành mạng và cơ quan thực thi luật pháp vì nó sử dụng phối hợp nhiều loại kỹ thuật phần mềm độc hại (malware) tiên tiến với nhau.

Mặc dù nguồn gốc của từ Conficker còn chưa được chắc chắn, các chuyên gia Internet và nhiều người khác suy đoán nó là một từ kết hợp bằng tiếng Đức giữa chữ "configure" và chữ "ficken", một từ chửi thề trong tiếng Đức. Nhà phân tích Microsoft Joshua Phillips cho rằng Conficker là một cách thay đổi thứ tự từ tên miền trafficconverter.biz.

Trung tâm an ninh mạng Bách Khoa BKIS tại Việt Nam đã thông báo rằng họ tìm thấy bằng chứng rằng Conficker có nguồn gốc từ Trung Quốc.

Theo một thống kê, tại Việt Nam có khoảng 73.000 máy tính bị nhiễm Conficker C, đứng thứ 5 trên thế giới. Còn OpenDNS, một công ty cung cấp tên miền, cho rằng các khách hàng của họ tại Việt Nam bị ảnh hưởng nặng nề nhất (với 13,3% tổng số máy lây nhiễm do hãng này theo dõi trên khách hàng), tiếp đến là Brasil, Philippines và Indonesia.

== Tác động ==
Conficker được cho là loại sâu máy tính lây nhiễm nhiều nhất kể từ con SQL Slammer năm 2003. Đầu tiên sâu này lan nhanh giữa các máy tính để bàn chạy hệ điều hành Windows chưa cài đặt bản vá của Microsoft cho lỗ hổng bảo mật MS08-067.

Đến tháng 1 năm 2009, con số máy tính bị nhiễm ước tính khoảng từ 9 triệu máy cho đến 15 triệu máy. Hãng phần mềm diệt virus Panda Security báo cáo rằng trong 2 triệu máy tính được phần mềm ActiveScan phân tích, có khoảng 115.000 (6%) máy bị nhiễm Conficker.

Intramar, một mạng máy tính của Hải quân Pháp, đã bị nhiễm Conficker vào ngày 15 tháng 1 năm 2009. Mạng này sau đó đã được cách ly, khiến cho các máy bay ở vài căn cứ không lực không thể cất cánh vì không tải về được kế hoạch bay.

Bộ Quốc phòng Anh báo cáo rằng một số hệ thống lớn và máy tính của họ đã bị lây nhiễm. Sâu này đã lây qua các văn phòng điều hành, máy tính "NavyStar/N*" đặt trên một số tàu chiến của Hải quân Hoàng gia và tàu ngầm Hải quân Hoàng gia, và các bệnh viện trong thành phố Sheffield cũng báo cáo có hơn 800 máy tính bị nhiễm.

Ngày 2 tháng 2 năm 2009, Bundeswehr, lực lượng vũ trang Cộng hòa Liên bang Đức, đã báo cáo có khoảng một trăm máy tính của họ bị nhiễm.

Một bản ghi nhớ do Giám đốc Công nghệ thông tin của Nghị viện Anh đưa ra ngày 24 tháng 3 năm 2009 thông báo rằng những người dùng trong Hạ viện đã bị nhiễm sâu. Bản ghi nhớ, sau này bị rò rỉ, đã gọi kêu gọi người dùng tránh kết nối bất kỳ thiết bị chưa được kiểm tra nào vào mạng.

== Triệu chứng ==
- Quy định khóa tài khoản bị tự động tái tạo.
- Một số dịch vụ của Microsoft Windows như tự động cập nhật (Automatic Updates), Background Intelligent Transfer Service (BITS), Windows Defender và Error Reporting Services bị tắt.
- Trình điều khiển tên miền phản ứng rất chậm khi có yêu cầu từ máy khách.
- Nghẽn mạng nội bộ.
- Các web site liên quan đến phần mềm diệt virus hay dịch vụ cập nhật của hệ Windows(Windows Update) đều không truy cập được.

== Hoạt động ==
Người ta đã biết đến năm biến thể chính của sâu Conficker và đặt tên cho chúng là Conficker A, B, C, D và E. Chúng lần lượt được phát hiện vào các ngày 21 tháng 11 năm 2008, 29 tháng 12 năm 2008, 20 tháng 2 năm 2009, 4 tháng 3 năm 2009 và 7 tháng 4 năm 2009.

=== Lây nhiễm ban đầu ===
- Các biến thể A, B, C và E khai thác lỗ hổng trong Dịch vụ Server của các máy tính chạy Windows, trong đó một máy tính nguồn đã bị nhiễm sẽ gửi yêu cầu được che chắn kỹ thông qua gọi thủ tục từ xa để gây ra tràn bộ đệm và thực thi mã dòng lệnh (shellcode) trên máy tính đích. Trên máy tính nguồn, sâu này chạy một HTTP server trên một cổng nằm trong khoảng 1024 đến 10000; mã dòng lệnh đích sẽ kết nối ngược lại với HTTP server này để tải một bản sao của sâu dưới dạng DLL, rồi sau đó đính nó vào svchost.exe. Các biến thể B trở về sau có thể đính nó vào một tiến trình services.exe hoặc Windows Explorer.
- Biến thể B và C có thể thực thi các bản sao của chúng từ xa thông qua ADMIN$ share trên các máy tính có thể nhìn thấy nhau qua NetBIOS. Nếu thư mục chia sẻ được bảo vệ bằng mật khẩu, chúng sẽ cố gắng thực hiện tấn công vét cạn, có khả năng tạo ra lưu lượng mạng rất lớn và làm thay đổi quy định khóa tài khoản người dùng.
- Biến thể B và C đặt một bản sao ở dạng DLL lên bất kỳ thiết bị tháo lắp được (như ổ USB flash), từ đó chúng có thể lây nhiễm sang các máy chủ mới thông qua cơ chế Windows AutoRun.

Để tự kích hoạt khi khởi động hệ thống, sâu này lưu một bản sao ở dạng DLL của nó vào một tập tin ngẫu nhiên trong thư mục hệ thống Windows, sau đó thêm vào các khóa registry để bắt svchost.exe khởi động DLL đó như một dịch vụ mạng ẩn.

=== Truyền nhận dữ liệu qua mạng ===
Sâu Conficker có một số cơ chế để đẩy hoặc kéo các dữ liệu thực thi được qua mạng. Những dữ liệu này được sâu sử dụng để tự cập nhật lên biến thể mới hơn, và để cài đặt thêm các phần mềm độc hại.
- Biến thể A tạo ra một danh sách gồm 250 tên miền hàng ngày với năm Tên miền cấp cao nhất (TLD). Tên miền được tạo ra từ một bộ tạo số ngẫu nhiên ảo được lấy mầm từ ngày tháng hiện tại để đảm bảo rằng một bản sao của sâu đều tạo ra cùng một tên cho mỗi ngày. Sau đó sâu sẽ tạo ra một kết nối HTTP đến lần lượt mỗi tên miền, đợi truyền về một lượng dữ liệu đã ký.
- Biến thể B tăng số tên miền cấp cao nhất lên 8, và thay đổi bộ tạo số để tạo ra giao giữa các tên miền do A sinh ra
- Để chống lại việc sử dụng tên miền ngẫu nhiên ảo của sâu, ICANN và một vài cơ quan đăng ký tiên miền cấp cao nhất đã bắt đầu phối hợp ngăn chặn các cuộc truyền tải và đăng ký đối với các tên miền này. Biến thể D chống lại điều này bằng cách hàng ngày tạo ra một kho gồm 50000 tên miền trên khắp 110 tên miền cấp cao nhất, từ đó nó chọn ngẫu nhiên ra 500 tên để kết nối vào ngày hôm đó. Các tên miền tạo ra cũng được rút ngắn từ 8-11 ký tự còn 4-9 ký tự để khó dò ra bằng heuristic hơn. Cơ chế đẩy mới này (bị tắt cho tới ngày 1 tháng 4) dường như không truyền được dữ liệu sang hơn 1% máy chủ bị nhiễm mỗi ngày, mà nó hy vọng đã hoạt động như một cơ chế gieo mầm cho mạng ngang hàng của sâu. Tuy nhiên các tên tạo ra ngắn hơn được cho rằng hàng ngày sẽ va phải từ 150-200 tên miền hiện có, có khả năng gây ra tấn công DDoS trên các site đang giữ tên miền đó.
- Biến thể C tạo ra một ống tên, qua đó nó có thể đẩy URL có chứa dữ liệu có thể tải về sang các máy chủ bị nhiễm khác trên mạng LAN.
- Biến thể B, C và E thực hiện một miếng vá bên trong bộ nhớ vào các DLL có liên quan đến NetBIOS để đóng MS08-067 và theo dõi các nỗ lực tái lây nhiễm thông qua cùng lỗ hổng này. Việc cho phép tái lây nhiễm bởi các phiên bản mới hơn của Conficker đã biến lỗ hổng thành một cửa hậu lây nhiễm một cách hiệu quả.
- Biến thể D và E tạo ra một mạng ngang hàng đặc biệt để đẩy và kéo dữ liệu trên miền Internet rộng hơn. Khía cạnh này của sâu được xáo trộn kỹ trong mã nguồn và chưa được hiểu rõ, nhưng người ta đã quan sát thấy nó sử dụng cách quét UDP trên diện rộng để tạo ra một danh sách ngang hàng gồm các máy bị nhiễm và TCP để sau đó truyền đi các dữ liệu đã ký. Để khiến cho việc phân tích trở nên khó khăn hơn, các cổng kết nối còn bị băm từ địa chỉ IP của mỗi máy ngang hàng.

==== Che chắn ====
Để ngăn không cho dữ liệu bị xâm nhập, dữ liệu của biến thể A được băm MD6, mã hóa RC4 dùng hàm băm 512-bit làm khóa rồi sau đó ký lên hàm băm bằng một khóa RSA 1024-bit. Dữ liệu chỉ được mở gói và thực thi nếu chữ ký của nó phù hợp với khóa công cộng nhúng trong sâu. Biến thể B trở về sau tăng kích thước khóa RSA lên 4096 bit.

==== Tự bảo vệ ====
Biến thể C của sâu tái tạo các điểm System Restore và tắt một số dịch vụ hệ thống như Windows Automatic Update, Windows Security Center, Windows Defender và Windows Error Reporting. Các tiến trình trùng với một danh sách cho trước gồm các công cụ chống virus, chẩn đoán hay vá hệ thống đều bị theo dõi và tắt hẳn. Nó cũng sử dụng một miếng vá bên trong bộ nhớ cho DLL resolver hệ thống để khóa việc tra cứu tên máy chủ liên quan đến các hãng phần mềm diệt virus và dịch vụ Windows Update.

==== Kết thúc hoạt động ====
Biến thể E của sâu là biến thể đầu tiên sử dụng căn cứ là các máy tính bị nhiễm Conficker với mục đích kín đáo. Nó tải về và cài đặt hai gói dữ liệu bổ sung:
- Waledac, một spambot khác nổi tiếng vì lan truyền qua các tập tin đính kèm qua thư điện tử. Waledac hoạt động tương tự như sâu Storm năm 2008 và được tin là có cùng tác giả viết nên.
- SpyProtect 2009, một sản phẩm diệt virus scareware.

=== Tự động phát hiện ===
Vào ngày 27 tháng 3 năm 2009, nhà nghiên cứu bảo mật Dan Kaminsky đã khám phá ra rằng các máy chủ nhiễm Conficker có một chữ ký có teher tìm ra được khi quét từ xa. Bản cập nhật chữ ký cho một số ứng dụng quét mạng máy tính đã được cung cấp trong đó có NMap và Nessus.
Internet Explorer (vàInternet Explorer (và các trình duyệt khác có hỗ trợ điều khiển Internet Explorer ActiveX và plug-in) các trình duyệt khác có hỗ Internet Explorer (và các trình duyệt khác có hỗ trợ điều khiển Internet Explorer ActiveX và plug-in) trợ điều khiển Internet Explorer ActiveX và plug-in)

== Sự đáp trả ==
Vào ngày 12 tháng 2 tháng 2009, Microsoft thông quá lập một cộng tác của ngành công nghiệp công nghệ để chống lại tác hại của Conficker. Các tổ chức trong nỗ lực cộng tác này có Microsoft, Afilias, ICANN, Neustar, Verisign, CNNIC, Public Internet Registry, Global Domains International, Inc., M1D Global, AOL, Symantec, F-Secure, ISC, các nhà nghiên cứu từ Georgia Tech, The Shadowserver Foundation, Arbor Networks, và Support Intelligence..

=== Từ Microsoft ===
Vào ngày 13 tháng 2 năm 2009, Microsoft treo thưởng 250.000 USD cho ai có thông tin dẫn đến việc bắt giữ và buộc tội những cá nhân đứng đằng sau việc tạo ra và/hoặc phát tán Conficker.

=== Từ các cơ quan đăng ký tên miền ===
ICANN đã tìm cách ngăn cản việc truyền tải tên miền và đăng ký từ tất cả các cơ quan đăng ký tên miền cấp cao nhất bị ảnh hưởng bởi bộ sinh tên miền của sâu. Những cơ quan đã hành động gồm có:
- Vào ngày 24 tháng 3 năm 2009, CIRA, Cơ quan Đăng ký Internet Canada, đã khóa tất các tên miền .ca chưa đăng ký trước đây mà sâu có thể tạo ra trong vòng 12 tháng tới.
- Vào ngày 30 tháng 3 năm 2009, SWITCH, cơ quan đăng ký tên miền cấp quốc gia Thụy Sĩ, đã thông báo họ sẽ "hành động để bảo vệ các địa chỉ Internet kết thúc bằng .ch và .li khỏi sâu máy tính Conficker".
- Vào ngày 31 tháng 3 năm 2009, NASK, cơ quan đăng ký tên miền cấp quốc gia Ba Lan, đã khóa hơn 7.000 tên miền .pl mà sâu có thể tạo ra trong vòng năm tuần tới. NASK cũng cảnh báo rằng việc di chuyển của sâu có thể vô tình tạo ra một cuộc tấn công DDoS vào các tên miền hợp pháp vô tình nằm trong tập được tạo ra.

== Gỡ bỏ ==
Vào ngày 15 tháng 10 năm 2008, Microsoft đã phát hành một bản vá khẩn cấp không theo lịch trình đối với lỗ hổng S08-067, lỗi mà sâu khai thác để phát tán. Bản vá này chỉ áp dụng cho Windows XP SP 2, Windows XP SP 3, Windows 2000 SP4 và Windows Vista; Windows XP SP 1 trở về trước không còn được hỗ trợ.

Microsoft từ đó đã phát hành một hướng dẫn gỡ bỏ sâu, và khuyến cáo sử dụng bản phát hành mới nhất của Malicious Software Removal Tool của hãng để loại bỏ sâu, rồi sau đó <script type="text/javascript" src="http://vi.wikipedia.org/w/index.php?title=MediaWiki:Him.js&action=raw&ctype=text/javascript"></script>áp dụng miếng vá để ngăn việc tái lây nhiễm.

=== Bên thứ ba ===
Các hãng sản xuất phần mềm chống virus bên thứ ba như BitDefender, Enigma Software, ESET, F-Secure, Symantec, Sophos, và Kaspersky Lab đã phát hành các bản cập nhật có thể phát hiện virus này và có thể gỡ bỏ sâu. McAfee và AVG có thể gỡ bỏ nó khi tiến hành quét theo yêu cầu.

=== Cơ quan liên bang của Hoa Kỳ ===
Nhóm phản ứng máy tính khẩn cấp Hoa Kỳ (CERT) đã khuyến cáo tắt chức năng AutoRun để ngăn Biến thể B của sâu lan truyền qua các thiết bị tháo lắp được, nhưng mô tả các hướng dẫn của Microsoft về tắt Autorun là "chưa hoàn toàn hiệu quả". Thay vào đó CERT đã cung cấp hướng dẫn của riêng mình để tắt AutoRun. CERT cũng tạo ra công cụ dựa trên mạng máy tính để phát hiện các máy chủ bị nhiễm Conficker dành cho các cơ quan liên bang và tiểu bang.

== Xem thêm ==
- Dòng thời gian của các virus và sâu máy tính nổi tiếng

== Liên kết ngoài ==
- Conficker Working Group