Tìm hiểu về SSH Botnet và các biện pháp phòng ngừa

MỤC LỤC

SSH Botnet

SSH Botnet là một thuật ngữ được sử dụng để chỉ một tập hợp các máy tính đã bị xâm nhập và được kiểm soát từ xa thông qua giao thức SSH. Các máy tính trong mạng botnet này được kiểm soát bởi một máy tính trung tâm được gọi là Command and Control Server (C&C Server). Kẻ tấn công có thể sử dụng botnet này để thực hiện các cuộc tấn công mạng, bao gồm DDoS (Distributed Denial of Service), spam email, phát tán phần mềm độc hại, đánh cắp thông tin và các hành động khác.

Các kẻ tấn công có thể sử dụng các phương pháp khác nhau để xâm nhập vào các thiết bị có kết nối internet và cài đặt mã độc để kiểm soát từ xa. Khi tấn công thành công, kẻ tấn công có thể sử dụng các lỗ hổng bảo mật trên thiết bị để cài đặt mã độc hoặc phần mềm độc hại khác. Thực hiện các biện pháp kiểm tra an ninh mạng thường xuyên, bao gồm kiểm tra định kỳ hệ thống và quản lý các chính sách bảo mật mạng.

Tạo và quản lý các lớp mạng khác nhau trong hệ thống để giảm thiểu rủi ro an ninh mạng và ngăn chặn các cuộc tấn công tràn lan trên toàn bộ hệ thống. Paramiko là một thư viện Python được sử dụng để kết nối, quản lý và tương tác với các máy chủ thông qua giao thức SSH (Secure Shell). Thư viện này cung cấp các lớp và phương thức cho phép xác thực, kết nối, truyền dữ liệu, quản lý phiên, và thực thi các lệnh trên máy chủ từ xa.

Paramiko cung cấp một cách tiện lợi và bảo mật cho việc tự động hóa các tác vụ trên các máy chủ từ xa, như kiểm tra tình trạng máy chủ, cài đặt phần mềm, sao lưu dữ liệu, v.v. Sau đó, ta sẽ thực hiện lần lượt các yêu cầu đăng nhập với các mật khẩu khác nhau cho đến khi đăng nhập thành công hoặc đã thử hết tất cả các mật khẩu trong từ điển. Với mỗi mật khẩu trong danh sách, ta thực hiện yêu cầu đăng nhập bằng cách gọi phương thức ssh.connect() với tham số là mật khẩu đăng nhập.

Sử dụng các thuật toán như RSA hoặc DSA, máy chủ tạo ra các khóa này để đăng nhập vào SSH, tạo ra một phương pháp xác thực hiệu quả hơn so với mật khẩu. Tuy nhiên, vào năm 2006, một sự cố đã xảy ra với Debian Linux khi một dòng mã cụ thể đã làm giảm đáng kể entropy trong quá trình tạo khóa SSH, dẫn đến việc giảm đáng kể số lượng khóa có thể tìm kiếm, từ 15 bit entropy xuống còn ít hơn. Bây giờ đã chứng minh rằng có thể kiểm soát một máy chủ thông qua SSH, hãy mở rộng nó để kiểm soát nhiều máy chủ đồng thời.

Hình 1.10. Hàm SSH kết nối tới máy chủ khác
Hình 1.10. Hàm SSH kết nối tới máy chủ khác

TÌM HIỂU VỀ DDOS

    UDP floods: Các cuộc tấn công này cho phép tin tặc áp đảo các cổng trên máy chủ mục tiêu bằng các gói IP chứa giao thức UDP không trạng thái. Thông thường, chúng không tấn công vào ứng dụng cụ thể mà chỉ khai thác các phiên bản giao thức để gây gián đoạn hoạt động cung cấp dịch vụ. SYN floods: Tấn công này khai thác quy trình bắt tay ba bước (handshake) TCP bằng cách gửi các yêu cầu TCP với địa chỉ IP giả đến mục.

    Kẻ tấn công không bao giờ gửi phản hồi để hoàn thành quá trình bắt tay ba bước, làm hỏng máy chủ vì các quy trình không hoàn chỉnh chồng chất. Đây là hình thức tấn công DDoS phổ biến nhất, các cuộc tấn công lớp ứng dụng tạo ra một lượng lớn các yêu cầu HTTP, nhanh chóng làm cạn kiệt khả năng phản hồi của mục tiêu từ đó khiến hệ thống từ chối dịch vụ. Các hệ thống rất khó để phân biệt giữa các yêu cầu HTTP hợp lệ và độc hại khiến các cuộc tấn công này khó bị ngăn chặn và đối phó.

    Tốc độ truy cập lớn: Sự tăng đột biến trong lưu lượng truy cập đến hệ thống, dẫn đến sự chậm trễ hoặc tạm dừng hoạt động của hệ thống. Sự giảm đáng kể về hiệu suất hệ thống: Hệ thống trở nên chậm, ứng dụng treo hoặc không phản hồi, và có thể tạm dừng hoạt động hoặc không thể truy cập được. Vào tháng 6-2021, trang web và fanpage của báo điện tử VOV bị tấn công từ chối dịch vụ (DDoS), làm tràn băng thông, khiến việc truy cập vào báo bị tê liệt.

    Tăng cường bảo mật hệ thống: Sử dụng các phần mềm chống virus, tường lửa và công cụ bảo mật khác để giảm khả năng bị tấn công DDoS. Ở đây ta sử dụng công cụ “hping3” làm công cụ hỗ trợ tấn công, hping3 là một công cụ mạng mã nguồn mở được sử dụng để thực hiện các hoạt động kiểm tra và tấn công mạng trong môi trường Linux. Nó cung cấp một loạt các tính năng mạnh mẽ cho việc tương tác với mạng, bao gồm gửi các gói tin mạng với cỏc tựy chọn tựy chỉnh, theo dừi và phõn tớch gúi tin mạng, và kiểm tra bảo mật mạng.

    + sys: Truy cập các thông tin và chức năng liên quan đến trình thông dịch Python, bao gồm cả thông tin từ dòng lệnh và xử lý tệp tin và thư mục. Dòng đầu tiên của mã kiểm tra xem source có phải là một địa chỉ IP hợp lệ không bằng cách sử dụng phương pháp isdigit() để kiểm tra xem source có chứa toàn bộ các ký tự là số không. Nếu source được nhập là "r" (để sử dụng địa chỉ IP nguồn ngẫu nhiên), chương trình cũng sẽ thực hiện tấn công TCP SYN Flood như trên, nhưng với địa chỉ IP nguồn được chọn ngẫu nhiên.

    Nếu source được nhập là "i" (để sử dụng địa chỉ IP nguồn của giao diện), chương trình cũng sẽ thực hiện tấn công TCP SYN Flood như trên, nhưng với địa chỉ IP nguồn là địa chỉ IP của giao diện mạng hiện tại. Ở bên BotMaster, vì chỉ là demo trong phạm vi nhỏ, ta tạo 3 luồng kết nối vào 3 Botnet sau đó kết nối và điều khiển ( truyền các tham số của cuộc tấn công để bên Botnet bắt đầu cuộc tấn công theo các tham số truyền vào ).

    Hình 2.1. Mô hình cuộc tấn công DDoS
    Hình 2.1. Mô hình cuộc tấn công DDoS