MẠNG BOTNET (P1)

113

Một trong những phương thức tấn công DDoS hiệu quả và phổ biến nhất hiện nay là hoạt động dựa trên hàng trăm máy tính bị chiếm quyền điều khiển (tức các zombie). Những zombie này thường bị kiểm soát và quản lý qua các mạng IRC, sử dụng được gọi là các botnet. Trong thời gian gần đây, có rất nhiều website bị dos với cường độ rất cao, không chỉ ở dạng flood HTTP bình thường mà lượng zoombie rất lớn (Hàng chục nghìn máy, mạnh hơn mạng botnet đã đánh sập vietnamnet cuối năm 2011) nên dù cho server không treo các dịch vụ thì cũng không có khả năng nhận và phản hồi yêu cầu người dùng vì bị tràn băng thông.

Giới thiệu về botnet

Bot là viết tắt của robot, tức các chương trình tự động hoá (chứ không phải là người máy như nghĩa chúng ta vẫn gọi). Người ta định nghĩa spider được dùng bởi các công cụ tìm kiếm trực tuyến, ánh xạ website và phần mềm đáp ứng theo yêu cầu trên IRC (như eggdrop) là robot. Các chương trình tự động phản ứng khi gặp sự kiện ngoài mạng nội bộ cũng được gọi là robot. Trong bài này, chúng ta sẽ quan tâm tới một kiểu robot cụ thể (hay bot như tên tắt vẫn thường được gọi) là IRC bot. IRC bot sử dụng các mạng IRC như một kênh liên lạc để nhận lệnh từ người dùng từ xa. Ví dụ cụ thể như, người dùng là một kẻ tấn công, còn bot là một Trojan horse. Một lập trình viên giỏi có thể dễ dàng tạo ra một số bot riêng của mình, hoặc xây dựng lại từ các bot có sẵn. Chúng có thể dễ dàng ẩn nấp trước những hệ thống bảo mật cơ bản, sau đó là phát tán đi nhanh chóng trong thời gian ngắn.

Các loại tấn công phổ biến của botnet

Khả năng sử dụng bot và các ứng dụng của chúng cho máy tính bị chiếm quyền điều khiển hoàn toàn phụ thuộc vào sức sáng tạo và kỹ năng của kẻ tấn công. Chúng ta hãy xem một số loại tấn công sử dụng botnet phổ biến nhất.

  • Tấn công từ chối dịch (DDoS) : Tấn công DDoS là một biến thể của Foolding DoS (Tấn công từ chối dịch vụ tràn). Mục đích của hình thức này là gây tràn mạng đích, sử dụng tất cả băng thông có thể. Kẻ tấn công sau đó sẽ có toàn bộ lượng băng thông khổng lồ trên mạng để làm tràn website đích. Đó là cách phát động tấn công tốt nhất để đặt được nhiều máy tính dưới quyền kiểm soát. Mỗi máy tính sẽ đưa ra băng thông riêng (ví dụ với người dùng PC cá nhân nối ADSL). Tất cả sẽ được dùng một lần, và nhờ đó, phân tán được cuộc tấn công vào website đích. Một trong các kiểu tấn công phổ biến nhất được thực hiện thông qua sử dụng giao thức TCP (một giao thức hướng kết nối), gọi là TCP syn flooding (tràn đồng bộ TCP). Cách thức hoạt động của chúng là gửi đồng thời cùng lúc một số lượng khổng lồ yêu cầu kết nối TCP tới một Web Server (hoặc bất kỳ dịch vụ nào khác), gây tràn tài nguyên server, dẫn đến tràn băng thông và ngăn không cho người dùng khác mở kết nối riêng của họ. Quả là đơn giản nhưng thực sự nguy hiểm và phổ biến.
  • Spamming (phát tán thư rác) : Botnet là một công cụ lý tưởng cho các spammer (kẻ phát tán thư rác). Chúng đã, đang và sẽ được dùng vừa để trao đổi địa chỉ e-mail thu thập được, vừa để điều khiển cơ chế phát tán thư rác theo cùng một cách với kiểu tấn công DDoS. Thư rác được gửi tới botnet, sau đó phân phối qua các bot và từ đó phát tán tới máy tính đang bị chiếm quyền điều khiển. Tất cả spammer đều lấy tên nặc danh và mọi hậu quả thì máy tính bị phá hoại gánh chịu.
  • Sniffing và Keylogging :Các bot cũng có thể được sử dụng một cách hiệu quả để nâng cao nghệ thuật cổ điển của hoạt động sniffing. Nếu theo dõi lưu lượng dữ liệu truyền đi, bạn có thể xác định được con số khó tin lượng thông tin được truyền tải. Đó có thể là thói quen của người dùng, trọng tải gói TCP và một số thông tin thú vị khác (như mật khẩu, tên người dùng). Cũng tương tự như vậy với keylogging, một hình thức thu thập tất cả thông tin trên bàn phím khi người dùng gõ vào máy tính (như e-mail, password, dữ liệu ngân hàng, tài khoản PayPal,…).
  • Ăn cắp nhân dạng :Các phương thức được đề cập ở trên cho phép kẻ tấn công điều khiển botnet để thu thập một lượng thông tin cá nhân khổng lồ. Những dữ liệu có thể được dùng để xây dựng nhân dạng giả mạo, sau đó lợi dụng để có thể truy cập tài khoản cá nhân hoặc thực hiện nhiều hoạt động khác (có thể là chuẩn bị cho nhiều cuộc tấn công khác) mà người gánh chịu hậu quả không ai khác chính là chủ nhân của các thông tin đó.
  • Sở hữu phần mềm bất hợp pháp :Đây là hình thức cuối cùng, nhưng chưa phải là kết thúc. Các máy tính bị tấn công theo kiểu bot có thể được dùng như một kho lưu trữ động tài liệu bất hợp pháp (phần mềm ăn cắp bản quyền, tranh ảnh khiêu dâm,…). Dữ liệu được lưu trữ trên ổ cứng trong khi người dùng ADSL không hề hay biết. nguy hiểm! Kết quả thu được cũng tương tự khi dùng giao thức UDP (một giao thức không kết nối).

*IRC là tên viết tắt của Internet Relay Chat. Đó là một giao thức được thiết kế cho hoạt động liên lạc theo kiểu hình thức tán gẫu thời gian thực (ví dụ RFC 1459, các bản update RFC 2810, 2811, 2812, 2813) dựa trên kiến trúc client-server. Hầu hết mọi server IRC đều cho phép truy cập miễn phí, không kể đối tượng sử dụng. IRC là một giao thức mạng mở dựa trên nền tảng TCP (Transmission Control Protocol – Giao thức điều khiển truyền vận), đôi khi được nâng cao với SSL (Secure Sockets Layer – Tầng socket bảo mật).

Các kiểu bot:

Nhiều kiểu bot đã được xây dựng và cho phép download được cung cấp nhan nhản khắp Internet. Mỗi kiểu có những thành phần đặc biệt riêng. Chúng ta sẽ xem xét một số bot phổ biến nhất và thảo những thành phần chính và các yếu tố phân biệt của chúng.

GT-Bot

Tất cả các bot GT (Global Threat) đều dựa trên kiểu client IRC phổ biến dành cho Windows gọi là mIRC. Cốt lõi của các bot này là xây dựng tập hợp script (kịch bản) mIRC, được dùng để điểu khiển hoạt động của hệ thống từ xa. Kiểu bot này khởi chạy một phiên client nâng cao với các script điều khiển và dùng một ứng dụng thứ hai, thông thường là HideWindows để ẩn mIRC trước người dùng máy tính đích. Một file DLL bổ sung sẽ thêm một số thành phần mới vào mIRC để các script có thể chi phối nhiều khía cạnh khác nhau trên máy tính bị chiếm quyền điều khiển.

Agobot

Agobot là một trong những kiểu bot phổ biến nhất thường được các tay bẻ khoá (craker) chuyên nghiệp sử dụng. Chúng được viết trên nền ngôn ngữ C++ và phát hành dưới dạng bản quyền GPL. Điểm thú vị ở Agobot là mã nguồn. Được modul hoá ở mức cao, Agobot cho phép thêm chức năng mới vào dễ dàng. Nó cũng cung cấp nhiều cơ chế ẩn mình trên máy tính người dùng. Thành phần chính của Agobot gồm: NTFS Alternate Data Stream (Xếp luân phiên dòng dữ liệu NTFS), Antivirus Killer (bộ diệt chương trình chống virus) và Polymorphic Encryptor Engine (cơ chế mã hoá hình dạng). Agobot cung cấp tính năng sắp xếp và sniff lưu lượng. Các giao thức khác ngoài IRC cũng có thể được dùng để điều khiển kiểu bot này.

DSNX

Dataspy Network X (DSNX) cũng được viết trên nền ngồn ngữ C++ và mã nguồn dựa trên bản quyền GPL. Ở kiểu bot này có thêm một tính năng mới là kiến trúc plug-in đơn giản.

SDBot

SDBot được viết trên nền ngôn ngữ C và cũng sử dụng bản quyền GPL. Không giống như Agobot, mã nguồn của kiểu bot này rất rõ ràng và bản thân phần mềm có một lượng giới hạn chức năng. Nhưng SDBot rất phổ biến và đã được phát triển ra nhiều dạng biến thể khác nhau.

Zeus/Zbot

Được phát hiện từ năm 2007 chủ yếu lây lan bằng cách gửi thư rác. Vào đầu năm 2010, các nhà nghiên cứu từ NetWitness công bố việc phát hiện ra dữ liệu của  2500 nạn nhân bị đánh cắp từ các công ty và chính phủ. Các dữ liệu bị đánh cắp đã được thu hoạch bằng một trong những mạng botnet Zeus. Tới đầu năm nay zbot đã tăng đột biến và lên tới đỉnh điêm vào giữa tháng 5/2013. Những phần mềm độc hại được thiết kế để ăn cắp thông tin trực tuyến của người sử dụng, mà có thể là thông tin cá nhân khác (PII) ngân hàng.

botnet1Thông tin lây lan của Zbot được thống kê (Tháng một – Tháng Năm – 2013)

Zbot phiên bản trước đó, so với phiên bản hiện tại : Thế hệ đầu của các biến thể Zbot tạo ra một thư mục trong thư mục % System% mà nó sẽ lưu các dữ liệu bị đánh cắp và file cấu hình. Người dùng cũng có thể tìm thấy một bản sao của chính nó trong thư mục nói. Những phiên bản này Zbot sửa đổi các tập tin Windows host để ngăn chặn người dùng truy cập các trang web bảo mật liên quan. Các dây nối vào máy chủ tập tin có thể được nhìn thấy trong các tập tin cấu hình tải về. Một ví dụ của các phiên bản trước đó bao gồm Zbot TSPY_ZBOT.SMD và TSPY_ZBOT.XMAS .Biến thể Zbot hiện tại đã được quan sát để tạo ra hai thư mục ngẫu nhiên tên trong %Applications Data%. Một thư mục chứa các bản sao của thư mục Zbot trong khi các thư mục khác chứa dữ liệu được mã hóa. Ví dụ này là TSPY_ZBOT.BBH, được tìm thấy trên toàn cầu dựa trên từ mạng bảo vệ thông minh.Cả hai biến thể gửi truy vấn DNS cho các tên miền ngẫu nhiên. Các biến thể cũng mở ra một cổng UDP ngẫu nhiên và gửi các gói tin được mã hóa trước khi gửi truy vấn DNS cho các tên miền ngẫu nhiên.

Quá trình tạo ra 1 mạng botnet

Trên mạng có rất nhiều bản hack game CF (đột kích). Trong các bản hack game này có cái sẵn những chương trình độc hại nhận lệnh điều khiển từ 1 máy chủ (Máy chủ này sử dụng mạng của FPT). Nếu người dùng sử dụng những bản hack game này, khi máy có nối mạng sẽ luôn lắng nghe lệnh từ máy chủ kia. Attacker phát lệnh đánh ai thì các máy tính nạn nhân sẽ gửi yêu cầu liên tục tới website bị đánh mà người dùng các bản hack game này không hề hay biết.

Giai đoạn tạo phụ thuộc lớn vào kỹ năng và đòi hỏi của kẻ tấn công. Nếu là người bẻ khoá chuyên nghiệp, họ có thể cân nhắc giữa việc viết mã bot riêng hoặc đơn giản chỉ là mở rộng, tuỳ biến cái đã có. Lượng bot có sẵn là rất lớn và khả năng cấu hình cao. Một số còn cho phép thao tác dễ dàng hơn qua một giao diện đồ hoạ. Giai đoạn này không có gì khó khăn.

Bước 1: Lây nhiễm vào máy tính.

Đầu tiên kẻ tấn công sẽ cài đặt trojan lên máy tính của người dùng bằng các biện pháp : Gắn trojan vào các chương trình crack, các add-on của trình duyệt, cài mã độc lên website đã chiếm được quyền để thông qua website đó làm bước đệm để cài đặt trojan vào người sử dụng… Một con bot thường sẽ thêm các thông số trong Registry để đảm bảo sẽ chạy cùng với hệ thống khi khởi động. Trong Registry có các vị trí cho các ứng dụng chạy lúc khởi động tại.

HKLM\Software\Microsoft\Windows\CurrentVersion\Run

HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices

Bước 2: Lây lan và xây dựng tạo mạng BOTNET

Cách lây lan mà các hacker thường hay sử dụng để phát tán virus là gửi mail spam và chèn trojan vào các file văn bản, ảnh đính kèm, khi người dùng mở các file này thì trojan sẽ được cài lên máy tính mà không hề hay biết, các phần mềm độc hại này thường được chỉnh sửa để qua mặt các phần mềm antivirus.

– Phương thức đòi hỏi kỹ năng cao hơn là chiếm một số website cung cấp phần mềm free nổi tiếng sau đó sẽ chèn mã độc lên phần mềm trong website đó, cụ thể là vào tháng 03/2012 nhóm “STL” đã hack được website unikey.org và đã trỏ link tải phần mềm unikey về một website mã nguồn mở sourceforge.net có chứa link download phần mềm unikey nhưng trong phần mềm unikey đã gắn trojan để lừa người dùng cài đặt lên máy tính. Cách tương tự là các hacker có thể tấn công website lưu trữ trực tuyến các phần mềm mã nguồn mở để cài mã độc lên một số phần mềm. VD : Cũng vào tháng 03/2012 website Gitub đã bị hacker “Egor Homakov” chiếm quyền điều khiển và thống báo đến Gitub để vá lỗi, nếu các hacker không thông báo lỗi như Homakov mà âm thầm nhúng mã độc vào các tập tin hay hiệu chỉnh mã nguồn dự án, gây hại cho hàng chục triệu người dùng tải về sử dụng thì mức độ nguy hiểm sẽ nghiêm trọng hơn rất nhiều và phạm vi ảnh hưởng sẽ rất lớn.

Bước 3: Kết nối vào IRC.

Bước tiếp theo là sẽ phải tạo ra một IRC-Controlled Backdoor để mở các yếu tố cần thiết, và kết nối tới mạng Botnet thông qua IRC-Controll, sau khi kết nối nó sẽ mở những dịch vụ cần thiết để khi có yêu cầu chúng sẽ được điều khiển bởi kẻ tấn công thông qua kênh giao tiếp IRC.

Bước 4: Điều khiển mạng BotNet.

Hình 1 thể hiện cấu trúc của một botnet điển hình:

botnet2

Hình 1: Cấu trúc của một botnet điển hình

  • Server IRC có thể là một máy công cộng ở một trong các mạng IRC, nhưng cũng có thể là máy chuyên dụng do kẻ tấn công cài đặt lên một trong các máy bị chiếm quyền điều khiển.
  • Các bot chạy trên máy tính bị chiếm quyền điều khiển, hình thành một botnet.
  • Việc đầu tiên bot thực hiện sau khi được cài đặt thành công là kết nối tới một server IRC và liên kết với kênh điều khiển thông qua sử dụng một mật khẩu. Nickname trên IRC được tạo ngẫu nhiên. Sau đó, bot ở trạng thái sẵn sàng chờ lệnh từ ứng dụng chủ. Kẻ tấn công cũng phải sử dụng một mật khẩu để kết nối tới botnet. Điều này là cần thiết để không ai khác có thể sử dụng mạng botnet đã được cung cấp.

botnet3

Hình 2: Kỹ thuật botnet hardening

IRC không chỉ cung cấp phương tiện điều khiển hàng trăm bot mà còn cho phép kẻ tấn công sử dụng nhiều kỹ thuật khác nhau để ẩn nhân dạng thực của chúng. Điều đó khiến việc đối phó trước các cuộc tấn công trở nên khó khăn. Nhưng may mắn là, do đặc điểm tự nhiên của chúng, các botnet luôn tạo ra lưu lượng đáng ngờ, tạo điều kiện dễ dàng để có thể dò tìm nhờ một số kiểu mẫu hay mô hình đã biết. Điều đó giúp các quản trị viên IRC phát hiện và can thiệp kịp thời, cho phép họ gỡ bỏ các mạng botnet và những sự lạm dụng không đáng có trên hệ thống của họ.

Trước tình hình này, những kẻ tấn công buộc phải nghĩ ra cách thức khác, cải tiến kỹ thuật C&C (Control and Command – Điều khiển qua lệnh) thành botnet hardening. Ở kỹ thuật mới này, các bot thường được cấu hình để kết nối với nhiều server khác nhau, sử dụng một hostname ánh xạ động. Nhờ đó, kẻ tấn công có thể chuyển bot sang server mới dễ dàng, vẫn hoàn toàn nắm quyền kiểm soát ngay cả khi bot đã bị phát hiện. Các dịch vụ DNS động như dyndns.com hay no-IP.com thường được dùng trong kiểu tấn công này.