Botnet hoạt động như thế nào (Phần 2)


Bây giờ là một vụ tấn công mẫu, cho phép chúng ta quan sát và hiểu một chương trình Command and Control (điều khiển qua lệnh) được thực hiện như thế nào.

Một C&C thực tế – Agobot

Hai máy tính sẽ được sử dụng. Máy đầu tiên chạy một server IRC dựa trên UnrealIRCd 3.2.3 và hai hệ điều hành Windows XP SP1 ảo dựa trên VMware Workstation (hai máy đích có khả năng bị tấn công). Máy thứ hai dành cho người chủ trì, điều khiển botnet qua Irssi, một text IRC client.

Để tạo chương trình thiết kế đối chiếu (reverse engineering) thật khó, Agobot thực hiện một số thường trình tự bảo vệ trước các bộ gỡ lỗi như SoftICE hay OllyDbg và trước các máy ảo như VMware, Virtual PC. Điều đó là cần thiết để hack được mã nguồn nhằm vượt qua chương trình bảo vệ của VMware, trước khi có thể cài đặt bot lên các máy ảo mẫu của chúng ta.

Cấu hình

Bước đầu tiên là cấu hình bot thông qua giao diện đồ hoạ đơn giản của nó (Xem hình 3). Thông tin được nhập vào bao gồm tên, số cổng IRC server, tên kênh, danh sách người sử dụng với mật khẩu master (chủ điều khiển), cuối cùng là tên file và thư mục cài đặt bot. Một số thành phần bổ sung cũng được kích hoạt như hỗ trợ sniffing và cơ chế trạng thái. Kết quả của giai đoạn này là file config.h, file nền tảng trong quá trình biên dịch bot được tạo.


Hình 3
: Giao diện cấu hình Agobot.

Điều khiển theo lệnh (Command and Control)

Sau khi bot được biên dịch, hai hệ thống còn lại sẽ tấn công theo kiểu “thủ công”. Máy chủ (master) kết nối tới IRC server và liên kết với kênh dẫn để có thể ra lệnh điều khiển cho bot (xem hình 4).


Hình 4
: Máy chủ và kết nối kênh

Muốn thu được quyền điều khiển qua các bot, một cơ chế thẩm định là cần thiết. Cơ chế này được tạo đơn giản bằng cách gửi một lệnh tới kênh (xem hình 5).

.login FaDe dune


Hình 5
: Thẩm định username và password

Sau đó, bot đầu tiên được yêu cầu đưa ra danh sách tất cả chương trình đang chạy trên máy tính bị chiếm quyền kiểm soát (xem hình 6):

/msg FakeBot–wszyzc .pctrl.list


Hình 6
: Máy chủ đưa ra yêu cầu cho bot đầu tiên

Sau đó, bot thứ hai được yêu cầu đưa ra thông tin và khoá cdkey của các chương trình ứng dụng cài đặt trên máy (hình 7):

/msg FakeBot2–emcdnj .bot.sysinfo
/msg FakeBot2–emcdnj .harvest.cdkeys


Hình 7
: Máy chủ đưa ra yêu cầu cho bot thứ hai

Ở ví dụ này chúng ta sử dụng những tính năng hết sức đơn giản. Còn thực tế, Agobot cung cấp một tập hợp rất phongphus các lệnh và chức năng. Một trong số chúng bạn có thể xem ở Bảng 2:

Lệnh Mô tả
command.list Danh sách tất cả các lệnh có thể sử dụng
bot.dns Xử lý một địa chỉ IP hoặc hostname
bot.execute Chạy một file .exe trên máy từ xa
bot.open Mở một file trên máy từ xa
bot.command Chạy một lệnh với system()
irc.server Kết nối tới một IRC server
irc.join Nhập thông tin của một kênh dẫn cụ thể
irc.privmsg Gửi thư riêng cho một người dùng
http.execute Download và thực thi file qua HTTP
ftp.execute Download và thực thi file qua FTP
ddos.udpflood Khởi động một chương trình UDP tràn
ddos.synflood Khởi động một Syn tràn
ddos.phaticmp Khởi động một PHATicmp tràn
redirect.http Khởi động một HTTP proxy
redirect.socks Khởi động một SOCKS4 proxy
pctrl.list Đưa ra danh sách chương trình
pctrl.kill Loại bỏ các chương trình

Bảng 2: Một số lệnh Agobot

Bảo vệ máy tính của bạn như thế nào

Bây giờ chúng ta sẽ xem xét một số phương thức bảo vệ trước khả năng xâm phạm và phá hoại của kiểu tấn công bot, dưới góc nhìn của cả người dùng và nhà quản trị.

Các chiến lược bảo vệ cho người dùng PC

Như đã đề cập tới ở trên, tấn công bot chủ yếu được thực hiện qua các loại sâu, lướt trên mạng để tìm kiếm lỗ hổng thâm nhập được. Do đó, bước đầu tiên là phải cập nhật thường xuyên, download cá bản vá và bản update hệ thống cho cả hệ điều hành cũng như các ứng dụng truy cập Internet. Sử dụng chương trình update tự động là một ý kiến hay. Bạn cũng nên cẩn thận khi mở các file đính kèm đáng ngờ trong e-mail. Cũng sẽ là khôn ngoan khi loại bỏ hỗ trợ hình thức ngôn ngữ kịch bản như ActiveX và JavaScript (hoặc ít nhất là kiểm soát việc sử dụng của chúng). Cuối cùng, yếu tố cơ sở là bạn phải dùng ít nhất một chương trình diệt virus, trojan và luôn luôn update phiên bản mới nhất của chúng. Dẫu vậy, nhiều bot được cấu hình lần tránh khởi sự kiểm soát của các chương trình diệt virus. Vì thế, bạn nên dùng thêm phần mềm tường lửa cá nhân, nhất là khi sử dụng máy tính nối mạng liên tục 24 giờ/ngày.

Dấu hiệ chính khi có hiện diện của bot là tốc độ máy và tốc độ kết nối mạng trở nên cực kỳ chậm. Một cách kiểm tra các kết nối đáng ngờ đơn giản và hiệu quả là sử dụng công cụ netstat (xem hình 8):

C:/>netstat –an


Hình 8
: Netstat trên một máy bị tấn công

Netstat

Netstat là một công cụ linh hoạt, tương thích được cả trên hệ điều hành Windows và các hệ thống *NIX. Chức năng của nó là kiểm soát các cổng đã được kích hoạt. Netstat kiểm tra quá trình nghe trên cổng TCP và UDP, sau đó cung cấp thông tin chi tiết và hoạt động mạng. Trên hệ thống *NIX, netstat hiển thị tất cả các dòng mở. Nó cũng sử dụng các bộ lọc chọn ngoài.

Trạng thái kết nối có thể trên Netstat gồm:

  • ESTABLISHED – tất cả các host đều được kết nối
  • CLOSING – host từ xa đang đóng kết nối
  • LISTENING – host đang nghe kết nối đến
  • SYN_RCVD – một host từ xa đuwocj yêu cầu khởi động kết nối
  • SYN_SENT – host đang khởi động kết nối mới
  • LAST_ACK – host phải gửi báo cáo trước khi đóng kết nối
  • TIMED_WAIT, CLOSE_WAIT – một host từ xa đang kết thúc kết nối
  • FIN_WAIT 1 – client đang kết thúc kết nối
  • FIN_WAIT 2 – cả hai host đều đang kết thúc kết nối

Quan sát các kết nối ESTABLISHED tới cổng TCP trong phạm vi 6000 đến 7000 (thông thường là 6667). Nếu bạn thấy mình tính của mình bị xâm hại, hãy ngắt nó ra khỏi mạng Internet, làm sạch hệ thống, khởi động lại và kiểm tra.

Chiến lược bảo vệ cho người quản trị

Các quản trị viên thường phải cập nhật liên tục thông tin về những lỗ hổng mới nhất, cũng như đọc thường xuyên về tài nguyên bảo mật trên Internet mỗi ngày. Một số công cụ hỗ trợ Bugtraq, đưa ra bản mô tả tóm tắt danh sách thư là một ý kiến hay. Các quản trị viên cũng nên cố gắng tuyền truyền, nâng cao nhận thức cho người dùng của mình về vấn đề bảo mật và các chính sách bảo mật.

Nghiên cứu nhật ký thường trình (bản ghi log) do IDS và nhiều hệ thống tường lửa, mail server, DHCP, proxy server tạo ra cũng rất cần thiết. Điều này có thể giúp phát hiện ra lưu lượng bất thường, một dấu hiệu của sự hiện diện bot và nhờ đó có biện pháp ngăn chặn kịp thời. Sau khi lưu lượng bất thường được chú ý, một siffer sẽ đến để nhận dạng mạng con và máy tính tạo ra nó. Tất cả các biện pháp dường như đều quen thuộc và không mấy khó khăn, nhưng mọi người thường quên, hoặc bỏ qua chúng.

Bạn cũng có thể sử dụng một số kỹ thuật phức tạp hơn như honeybot. Honeybot là các máy được xây dựng với mục đích hấp dẫn kẻ tấn công. Vai trò của chúng là trở thành máy tính nạn nhân, giúp người quản trị định vị chính nguồn của vấn đề và nghiên cứu phương thức tấn công.

Nhưng kết luận cuối cùng thì, cho dù công cụ hỗ trợ là gì đi chăng nữa, biện pháp phòng chống và bảo vệ tốt nhất trước các cuộc tấn công botnet là bản thân người dùng và nhận thức của họ.

Đôi điều về tác giả

Tác giả của cuốn “Các cuộc chiến robot – Botnet hoạt động như thế nào” mà chúng ta vừa xem xét một phần nội dung của nó qua bài này là một nhóm ba người: Massimiliano Romano, Simone Rosignoli, Ennio Giannini. Nếu có điều kiện và bạn đọc nào có nhu cầu tìm hiểu chuyên sâu hơn về những nội dung thú vị trong cuốn sách này, bạn có thể mua trên eBay hoặc tìm kiếm từ nguồn Internet phong phú. Và dưới đây là đôi điều về tác giả của cuốn sách này:

Massimiliano Romano: sở thích của ông là khoa học máy tính và mạng. Ông làm việc với vai trò nhân viên tự do ở một trong các công ty điện thoại di động lớn nhất Italia. Ông bỏ ra rất nhiều thời gian vào Ham Radio, đầu tư nghiên cứu và giải mã các tín hiệu radio số.

Simone Rosignoli hiện đang là sinh viên trường đại học La Sapienza ở Rome. Anh đang theo đuổi bằng Công nghệ khoa học máy tính (bảo mật và hệ thống) ở trường. Sở thích của chàng sinh viên này là lập trình bảo mật máy tính. Quả thât, “nhân tài không đợi tuổi”!

Ennio Giannini làm việc với vai trò như một chuyên gia phân tích hệ thống. Anh sử dụng nhiều thời gian rảnh rỗi của mình vào các cuộc thử nghiệm trong môi trường GNU/Linux. Anh là một người hỗ trợ và tổ chức nguồn mở tích cực và mạnh mẽ.

Theo Security


Đấu giá trực tuyến hàng đầu Việt Nam

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s