báo cáo môn học kỹ thuật lập trình đề tài tìm hiểu về ssh botnet

49 0 0
Tài liệu đã được kiểm tra trùng lặp
báo cáo môn học kỹ thuật lập trình đề tài tìm hiểu về ssh botnet

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Báo cáo này nhằm mục đích tìm hiểu và phân tích về các botnet sử dụng SSH như một phương tiện để xâm nhập và tấn công các hệ thống mạng.. Distributed Denial of Service DDoS Một botnet có

Trang 1

BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KỸ THUẬT MẬT MÃ -

BÁO CÁO MÔN HỌC KỸ THUẬT LẬP TRÌNH

ĐỀ TÀI

TÌM HIỂU VỀ SSH BOTNET

Ngành: An toàn thông tin

Giảng viên hướng dẫn: TS Nguyễn Mạnh Thắng

Nhóm sinh viên thực hiện:

Hồ Việt Khánh – AT180226 Bùi Việt An – AT180201

Nguyễn Duy Khánh – AT180525 Nguyễn Chung Hiếu – AT180516

Trang 2

1.2.2 Cấu trúc của Botnet 8

1.2.2.1 Mô hình client – server (máy khách – máy chủ) 8

1.2.2.2 Mô hình peer – to – peer (ngang hàng) 9

1.2.4 Dấu hiệu nhận biết Botnet 10

1.2.5.1 Distributed Denial of Service (DDoS) 10

1.2.5.2 Spamming (phát tán thư rác) 11

1.2.5.3 Keylogging 11

1.2.5.4 Ăn cắp thông tin danh tính 12

1.2.5.5 Lạm dụng việc trả tiền cho mỗi lần nhấp 12

1.2.5.6 Lây lan Botnet 12

1.3.5 Dictionary mật khẩu SSH dùng Paramiko 16

1.3.6 Khai thác SSH thông qua khóa bí mật yếu 17

1.3.7 Dựng SSH Botnet với Python 17

CHƯƠNG 2: TÌM HIỂU VỀ DDOS 18

Trang 3

2.1 DDOS 18

2.2 Các hình thức tấn công DDOS 19

2.2.1 Volume-Based Attacks (tấn công băng thông) 20

2.2.2 Protocol Attacks (tấn công giao thức) 20

2.2.3 Application Layer Attacks (tấn công ứng dụng) 21

2.3 Dấu hiệu của tấn công DDoS 21

2.4 Các cuộc tấn công DDoS gần đây 22

2.4.1 Trong nước 22

2.4.2 Ngoài nước 22

2.5 Giải pháp phòng chống DDoS 23

2.6 Xây dựng kết nối SSH với python 23

2.7 Xây dựng chương trình tấn công Brute-Force với python 24

2.8 Xây dựng chương trình tấn công Spam Email với python 25

2.9 Xây dựng chương trình tấn công DDOS với python 26

2.9.1 Xây dựng các hàm tấn công Syn-Flood 26

TÀI LIỆU THAM KHẢO 45

BẢNG PHÂN CÔNG CÔNG VIỆC 46

Trang 4

LỜI CẢM ƠN

Đầu tiên, em và các thành viên trong nhóm xin trân trọng gửi lời cảm ơn chân thành và sự kính trọng tới thầy Nguyễn Mạnh Thắng đã tận tình hướng dẫn, chỉ bảo chúng em trong suốt quá trình thực hiện bài báo cáo này

Trong suốt quá trình nghiên cứu, thực hiện và hoàn thiện bài báo cáo này, nhóm em đã học hỏi được rất nhiều kiến thức và kinh nghiệm mới Đặc biệt, những kiến thức về SSH Botnet, DDOS các cách tấn công và các giải pháp phòng chống đã giúp nhóm chúng em có được cái nhìn tổng quan và chi tiết hơn về lĩnh vực này

Chúng em cũng học được cách nghiên cứu và phân tích các vấn đề phức tạp trong an ninh mạng, từ đó cải thiện được kỹ năng phân tích và giải quyết vấn đề của mình

Nhóm em cũng muốn bày tỏ lòng biết ơn đến những người đã đóng góp ý kiến và hỗ trợ chúng em trong suốt quá trình nghiên cứu và thực hiện bài thuyết trình này Đặc biệt, nhóm em muốn gửi lời cảm ơn đến các bạn học đã đồng hành cùng chúng em, giúp chúng em vượt qua những thách thức và khó khăn trong quá trình thực hiện bài báo cáo

Do kiến thức còn hạn hẹp nên không tránh khỏi những thiếu sót trong cách hiểu, lỗi trình bày Chúng em rất mong nhận được sự đóng góp ý kiến của thầy và các bạn trong lớp để bài báo cáo đạt được kết quả tốt hơn

Chúng em xin chân thành cảm ơn!

Trang 5

LỜI NÓI ĐẦU

Với sự phát triển vượt bậc của khoa học kỹ thuật và sự mở rộng của mạng máy tính, Internet đã mang lại nhiều lợi ích và thuận lợi cho xã hội Tuy nhiên, cùng với những lợi ích đó là những mối đe dọa ngày càng tăng về an ninh mạng, bao gồm vi-rút, thư rác, tin tặc và các đối tượng tấn công khác… Việt Nam hiện đứng đầu trong danh sách các quốc gia bị tấn công và đứng cuối cùng ở khu vực Đông Nam Á về chỉ số an ninh toàn cầu Trong số các mối đe dọa này, Botnet và các mã độc được coi là mối đe dọa chính

Báo cáo này nhằm mục đích tìm hiểu và phân tích về các botnet sử dụng SSH như một phương tiện để xâm nhập và tấn công các hệ thống mạng Chúng em đã tiến hành nghiên cứu về cách thức hoạt động, các phương pháp tấn công phổ biến và các biện pháp phòng ngừa cần thiết để bảo vệ hệ thống khỏi các mối đe dọa này

Bằng việc hiểu rõ hơn về cách mà SSH botnet hoạt động và các chiến lược tấn công của chúng, người dùng có thể nâng cao khả năng phát hiện và ngăn chặn chúng, bảo vệ hệ thống mạng của người dùng khỏi nguy cơ bị xâm nhập và kiểm soát Hy vọng rằng thông qua báo cáo này, chúng em có thể đóng góp một phần nhỏ vào việc tăng cường sự an toàn và bảo mật trong môi trường mạng ngày càng phức tạp của người dùng

Xin chân thành cảm ơn các bạn đã quan tâm và hỗ trợ trong quá trình thực hiện báo cáo này

Lý do nhóm chọn đề tài :

Chọn đề tài “SSH botnet” có thể mang lại nhiều kiến thức hiểu biết về bảo

mật mạng, quản lý hệ thống và phân tích malware Nó còn giúp bạn hiểu rõ về tấn công qua SSH, cũng như phòng tránh và bảo vệ hệ thống khỏi các loại tấn công này Đồng thời nghiên cứu về SSH botnet có thể đóng góp vào việc nâng cao khả năng phát hiện và ngăn chặn các mối đe dọa mạng trong tương lai

Mục tiêu của nhóm :

Nghiên cứu, tìm hiểu, tổng quan lý thuyết phương thức hoạt động của SSH Botnet (Botnet là gì, SSH là gì, tại sao SSH đã chiếm mọi vị trí của Telnet, các cuộc tấn công Botnet, phương pháp phòng tránh tấn công Botnet)

Qua đó có thêm kiến thức về lĩnh vực công nghệ hiểu hơn về SSH Botnet, biết được các tấn công SSH Botnet và các phòng tránh hiệu quả nhất

Trang 6

DANH MỤC HÌNH VẼ

Hình 1.1 Cơ chế hoạt động của SSH 6

Hình 1.2 Mô tả Botnet 8

Hình 1.3 Mô hình client - server 8

Hình 1.4 Mô hình peer - to - peer 9

Hình 1.5 Mô tả Distributed Denial of Service (DDoS) 11

Hình 1.6 Mô tả Spamming 11

Hình 1.7 Mô tả Keylogging 12

Hình 1.8 Mô tả tấn công qua click vào phần mềm quảng cáo 13

Hình 1.9 Brute Force Attacks Explained 14

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

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

Hình 2.2 Các hình thức tấn công DDoS 19

Hình 2.3 Hình ảnh website sau khi bị tấn công DDoS 22

Hình 2.4 Xây dựng hàm kết nối SSH và hàm gửi câu lệnh 23

Hình 3.1 Tiến hành dò mật khẩu và ghi vào file 29

Hình 3.2 Dò mật khẩu trên terminal 30

Hình 3.3 Kết quả file chứa các mật khẩu đã từng dò 30

Hình 3.4 Hàm main để nhập thông tin 32

Hình 3.5 Kết quả thực thi code spam Email 32

Hình 3.6 Kết quả spam email trả về hòm thư 32

Hình 3.7 Hình ảnh khi đã kết nối với các bots 34

Hình 3.8 Botmaster gửi lệnh để các bot tiến hành tấn công Syn-Flood 34

Hình 3.9 Quá trình gửi nhận các gói tin 35

Hình 3.10 CPU tăng lên đột ngột bất thường 35

Trang 7

CHƯƠNG 1: GIỚI THIỆU VỀ SSH BOTNET

1.1 Giới thiệu về SSH

1.1.1 Tổng quan về SSH

SSH(Secure Shell), là một giao thức điều khiển từ xa cho phép người dùng kiểm soát và chỉnh sửa server từ xa qua Internet Dịch vụ được tạo ra nhằm thay thế cho trình Telnet vốn không có mã hóa và sử dụng kỹ thuật cryptographic để đảm bảo tất cả giao tiếp gửi tới và gửi từ server từ xa diễn ra trong tình trạng mã hóa Nó cung cấp thuật toán để chứng thực người dùng từ xa, chuyển input từ client tới host, và relay kết quả trả về tới khách hàng

Mỗi khi dữ liệu được gửi bởi một máy tính vào mạng, SSH tự động mã hóa nó Khi dữ liệu được nhận vào, SSH tự động giải mã nó Kết quả là việc mã hóa được thực hiện trong suốt, người dùng có thể làm việc bình thường mà không biết rằng việc truyền thông của họ đã được mã hóa an toàn trên mạng

SSH có thể được sử dụng để :

- Đăng nhập vào trình bao trên một máy chủ từ xa ( thay thế cho telnet và rlogin)

- Thực thi một lệnh duy nhất trên máy chủ từ xa

- Truyền tập tin an toàn ( giao thức truyền tập tin SSH-SFTP, sao chép an toàn _ SCP)

- Sao lưu, sao chép và nhân bản tập tin một cách hiệu quả và an toàn - Chuyển tiếp hoặc truyền đa giao thực một cổng

- Sử dụng làm VPN được mã hóa chính thức ( chỉ đối với OpenSSH) - Duyệt web thông qua sự kết nối proxy có mã hóa với các khách hàng SSH ( giao thức SOCKS)

- Lắp đặt một thư mục vào một máy chủ từ xa để làm hệ thống file trên máy tính nội bộ một cách an toàn

- Tự động giám sát và quản lý máy chủ từ xa

- Cộng tác an toàn với nhiều người sử dụng kênh shell SSH (truyền, trao

Trang 8

1.1.2 Lịch sử phát triển của SSH

SSH1 và giao thức SSH-1 được giới thiệu bởi Tatu Ylõnen vào năm 1995 sau khi mạng trường đại học của ông trở thành nạn nhân của một cuộc tấn công đánh cắp password Sau đó, vào tháng 7 cùng năm, SSH1 được phát hành miễn phí với mã nguồn mở, thu hút hàng ngàn người dùng từ hơn 50 quốc gia Ylõnen thành lập SSH Communications Security (SCS) để duy trì và phát triển SSH

Năm 1996, SSH-2 được giới thiệu, mang lại nhiều cải tiến và không tương thích hoàn toàn với SSH-1 Cùng năm đó, IETF thành lập nhóm SECSH để chuẩn hóa giao thức SSH-2 SCS sau đó phát hành SSH2 dựa trên giao thức mới này vào năm 1998 Mặc dù SSH2 mang lại nhiều cải tiến, SSH1 vẫn tiếp tục được sử dụng rộng rãi trong một số trường hợp do các ưu điểm và sự hỗ trợ miễn phí

Trong khi đó, OpenSSH phát triển từ dự án OpenBSD cũng đã trở thành một lựa chọn phổ biến, hỗ trợ cả SSH-1 và SSH-2 Mặc dù mới, OpenSSH hứa hẹn trở thành một phần quan trọng trong cộng đồng SSH trong tương lai

1.1.3 Các đặc điểm của SSH

Tính bí mật (Privacy / Encryption): SSH mã hóa dữ liệu trên mạng để

bảo vệ khỏi việc đọc trộm Có nhiều thuật toán mã hóa được hỗ trợ như AES, ARCFOUR, và DES

Tính toàn vẹn (Integrity): SSH sử dụng MD5 và SHA-1 để kiểm tra xem

dữ liệu đã được truyền đi có bị thay đổi không

Chứng minh xác thực (Authentication): SSH xác minh danh tính của cả

máy chủ và người dùng, ngăn chặn kẻ tấn công giả mạo

Phân quyền (Authorization): SSH giới hạn quyền truy cập của người

dùng sau khi xác thực

Trang 9

Chuyển tiếp (Forwarding) hoặc tạo đường hầm (Tunneling): SSH cho

phép chuyển tiếp dịch vụ TCP khác qua một kết nối đã mã hóa, bảo vệ tính riêng tư và toàn vẹn của dịch vụ

1.1.4 Nguyên lý hoạt động của SSH

Hình 1.1 Cơ chế hoạt động của SSH

SSH hoạt động dựa trên ba nguyên tắc chính: xác thực, mã hóa và chứng thực

Xác thực: SSH hỗ trợ mật khẩu, cặp khóa công khai và khóa tổng hợp để

xác minh danh tính người dùng

Mã hóa: SSH thiết lập kênh làm việc mã hóa giữa client và server, bảo vệ

dữ liệu truyền qua mạng khỏi truy cập trái phép

Chứng thực: Người dùng được xác thực thông qua mật khẩu hoặc khóa,

với việc sử dụng khóa là phương thức an toàn hơn, đảm bảo tính bí mật và toàn vẹn của thông tin truyền qua mạng

Trang 10

1.1.5 Ứng dụng thực tế của SSH

SSH (Secure Shell) được sử dụng trong các trường hợp sau:

Đăng nhập từ xa: Cho phép đăng nhập vào máy chủ từ xa một cách an

toàn thay vì sử dụng giao thức không an toàn như Telnet

Truyền tải file an toàn (SCP và SFTP): Hỗ trợ các dịch vụ truyền tải

file an toàn như SCP và SFTP, cho phép di chuyển dữ liệu giữa máy tính và máy chủ một cách an toàn

Quản lý máy chủ từ xa: Sử dụng để quản lý và cấu hình máy chủ từ xa

mà không cần trực tiếp kết nối với nó, tiết kiệm thời gian và công sức cho người quản trị hệ thống

Tunneling (chuyển đổi port): Tạo các kênh kết nối an toàn giữa hai máy

tính để chuyển đổi port qua mạng không an toàn

Thực hiện các lệnh từ xa: Thực hiện các lệnh từ xa trên máy chủ từ xa

mà không cần trực tiếp kết nối với nó

1.2 Giới thiệu về Bot và Botnet

Mỗi thiết bị riêng lẻ dưới sự kiểm soát của bot-herder được gọi là bot Mỗi bot đóng vai trò như một công cụ để tự động hóa các cuộc tấn công hàng loạt

Trang 11

Hình 1.2 Mô tả Botnet

1.2.2 Cấu trúc của Botnet

1.2.2.1 Mô hình client – server (máy khách – máy chủ)

Trong mô hình client - server, mạng sẽ có 1 máy chủ hoạt động như 1 botmaster với nhiệm vụ thiết lập các lệnh, điều khiển máy khách và kiểm soát việc truyền thông tin từ mỗi một máy khách

Botmaster duy trì quyền kiểm soát mạng botnet trong mô hình này nhờ vào sự trợ giúp của 1 phần mềm đặc biệt Bởi vì mô hình này chỉ có 1 điểm kiểm soát nên rất dễ được định vị và nó phụ thuộc rất nhiều vào máy chủ Nếu máy chủ bị phá hủy thì tất cả các botnet sẽ chết theo

Hình 1.3 Mô hình client - server

Trang 12

1.2.2.2 Mô hình peer – to – peer (ngang hàng)

Mô hình P2P ra đời để khắc phục nhược điểm của việc dựa vào một máy chủ tập trung Trong mô hình này, các botnet mới được kết nối với nhau dưới dạng cấu trúc ngang hàng, mỗi thiết bị hoạt động độc lập như một client và server, phối hợp với nhau để cập nhật và truyền thông tin qua lại Điều này tạo ra một cấu trúc mạnh mẽ hơn do không có một nơi điều khiển tập trung duy nhất

Hình 1.4 Mô hình peer - to - peer

1.2.3 Vòng đời của 1 Botnet

Xâm nhập: Hacker sử dụng kỹ thuật khai thác lỗ hổng để xâm nhập vào

các máy tính và thiết bị kết nối mạng

Kiểm soát: Hacker cài đặt phần mềm độc hại để kiểm soát các máy tính

zombie

Kết nối với Command and Control (C&C): Botnet kết nối với các máy

chủ Command and Control (C&C) để nhận lệnh tấn công từ hacker

Tấn công: Botnet thực hiện các cuộc tấn công như tấn công DDoS hoặc

cài đặt phần mềm độc hại trên các máy tính khác

Trang 13

Truyền bá: Botnet cố gắng lan truyền đến các máy tính khác qua lỗ hổng

và phần mềm độc hại

Phát hiện và xóa: Botnet có thể bị phát hiện và loại bỏ bởi các hệ thống

bảo mật hoặc công cụ phát hiện virus

Các botnet có thể tồn tại trong thời gian dài và được cập nhật để tránh bị phát hiện và xóa bỏ

1.2.4 Dấu hiệu nhận biết Botnet

Một số dấu hiệu nhận biết khi thiết bị của bạn bị dính botnet :

- Sự thay đổi đột ngột trong hiệu suất hoạt động

- Máy tính của bạn liên tục đòi quyền truy cập vào một website nào đó khiến máy chủ của website bị quá tải và không thể đáp ứng được truy cập của người dùng

1.2.5 Các loại tấn công Botnet

1.2.5.1 Distributed Denial of Service (DDoS)

Một botnet có thể được sử dụng để tiến hành cuộc tấn công DDoS (Distributed Denial of Service) nhằm phá hủy kết nối và dịch vụ mạng bằng cách quá tải tài nguyên tính toán hoặc tiêu tốn băng thông của nạn nhân

Các kỹ thuật tấn công phổ biến nhất là TCP SYN và UDP flood, không chỉ giới hạn ở máy chủ web mà còn có thể nhắm mục tiêu đến bất kỳ dịch vụ nào kết nối với Internet Sự nghiêm trọng của cuộc tấn công có thể được tăng lên thông qua HTTP flood trên trang web của nạn nhân, một kỹ thuật gọi là spidering được sử dụng để tăng hiệu suất tải.

Trang 14

Hình 1.5 Mô tả Distributed Denial of Service (DDoS)

1.2.5.2 Spamming (phát tán thư rác)

trong các máy tính bị nhiễm trong botnet Nó có thể dùng để xác định sự hiện diện của dữ liệu nhạy cảm trong các máy tính bị nhiễm, xác định vị trí của các botnet đối thủ, mở proxy SOCKS để sử dụng cho spamming, và sử dụng packet sniffer để đánh cắp thông tin nhạy cảm như tên người dùng và mật khẩu.

Hình 1.6 Mô tả Spamming

1.2.5.3 Keylogging

Với sự trợ giúp của keylogger, việc botmaster lấy thông tin nhạy cảm và đánh cắp dữ liệu trở nên dễ dàng Sử dụng chương trình keylogger, kẻ tấn công có thể thu thập các phím được nhập trong PayPal, Yahoo, v.v

Một loại phần mềm gián điệp được xác định là OSX/XSLCmd, có thể chuyển từ Windows sang OS X, bao gồm khả năng keylogging và chụp màn hình

Trang 15

Hình 1.7 Mô tả Keylogging

1.2.5.4 Ăn cắp thông tin danh tính

Các loại bot khác nhau có thể được kết hợp để thực hiện hành vi trộm cắp danh tính quy mô lớn, đây là một trong những hành vi phạm tội phát triển nhanh nhất Email spam được gửi bởi bot để hướng lưu lượng truy cập đến các trang web giả mạo, đại diện cho bot để thu thập dữ liệu cá nhân Bot có thể được sử dụng để xuất hiện như một công ty hợp pháp và yêu cầu người dùng gửi thông tin cá nhân, như mật khẩu tài khoản ngân hàng, chi tiết thẻ tín dụng, chi tiết thuế, v.v Hành vi trộm cắp danh tính hàng loạt diễn ra bằng cách sử dụng email phishing để lừa nạn nhân nhập thông tin đăng nhập trên trang web như eBay, Amazon, hoặc thậm chí là ngân hàng

1.2.5.5 Lạm dụng việc trả tiền cho mỗi lần nhấp

Chương trình AdSense của Google cho phép các trang web hiển thị quảng cáo Google và từ đó kiếm tiền từ chúng Google trả tiền cho chủ sở hữu trang web trên cơ sở số lần nhấp mà quảng cáo của họ thu thập được Máy bị nhiễm được sử dụng để tự động nhấp vào một trang web, làm tăng số lần nhấp được gửi đến công ty bằng quảng cáo

1.2.5.6 Lây lan Botnet

Botnet cũng được sử dụng để lan truyền các botnet khác bằng cách thuyết phục người dùng tải xuống chương trình cụ thể và chương trình được thực thi

Trang 16

thông qua email, HTTP hoặc FTP Thường thì virus sử dụng botnet này sẽ được phát tán qua email

1.2.5.7 Phần mềm quảng cáo

Phần mềm quảng cáo được sử dụng để hiển thị quảng cáo trên các trang web hoặc ứng dụng mà không có sự cho phép của người dùng, thường thay thế quảng cáo gốc bằng quảng cáo lừa đảo có thể lây nhiễm vào hệ thống của người dùng Phần mềm quảng cáo này có thể sử dụng phần mềm gián điệp để thu thập dữ liệu trình duyệt.

Hình 1.8 Mô tả tấn công qua click vào phần mềm quảng cáo

- Có tính năng bảo vệ DDoS tại chỗ

- Nếu hệ thống người dùng cá nhân nghi ngờ bị nhiễm botnet, hãy thử xóa phần mềm độc hại ngay lập tức Nếu điều này không được thực hiện kịp thời, các hệ thống khác trong mạng cũng có thể bị lây nhiễm

Trang 17

1.3 SSH Botnet

1.3.1 Tìm hiểu về 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 này có thể bao gồm các thiết bị IoT, máy tính cá nhân và máy chủ có cài đặt các dịch vụ 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 Một trong những phương pháp phổ biến nhất là tấn công brute-force vào giao thức SSH để đoán mật khẩu đăng nhập 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

Hình 1.9 Brute Force Attacks Explained

Trang 18

1.3.2 Cấu trúc SSH Botnet

Cấu trúc của một SSH Botnet bao gồm các thành phần sau:

Command and Control (C&C) server: Trung tâm điều khiển của

botnet, nơi bot kết nối để nhận lệnh tấn công

Botnet controller: Phần mềm độc hại được cài đặt trên máy tính nạn

nhân, có thể điều khiển từ xa bởi C&C server

Bot agent: Phần mềm độc hại cài đặt trên các máy chủ khác nhau, được

điều khiển bởi botnet controller

Proxy server: Dùng để giấu danh tính của bot khi tấn công và giảm thiểu

mối đe dọa cho C&C server

Payload: Phần mềm độc hại được sử dụng để tấn công mục tiêu, có thể là

keyloggers, ransomware, backdoor, v.v

1.3.3 Cách phòng chống SSH Botnet

- Thực hiện paramiko trong import có tác dụng gìện các bản sao lưu định kỳ và lưu trữ chúng ngoài hệ thống để đảm bảo tính toàn vẹn của dữ liệu khi xảy ra cuộc tấn côngĐể phòng chống SSH botnet, có thể thực hiện các biện pháp sau:

Sử dụng các phần mềm bảo mật tường lửa và phần mềm chống virus để chặn các truy cập trái phép vào hệ thống

Điều chỉnh cấu hình hệ thống SSH, chẳng hạn như tắt chức năng đăng nhập bằng mật khẩu và sử dụng khóa SSH thay thế

Sử dụng các phần mềm giám sát hệ thống để theo dõi lưu lượng mạng và hoạt động của các tiến trình hệ thống Nếu có hoạt động bất thường, bạn cần thực hiện các biện pháp bảo vệ ngay lập tức

Cập nhật hệ thống và các ứng dụng thường xuyên để đảm bảo các lỗ hổng bảo mật được vá kịp thời

Giáo dục người dùng về cách bảo mật mật khẩu và tránh sử dụng các mật khẩu yếu hoặc dễ đoán

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

Trang 19

1.3.4 Tìm hiểu module Paramiko trong Python

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 Với paramiko, các lập trình viên có thể tạo ra các ứng dụng Python mạnh mẽ và linh hoạt cho việc quản lý hệ thống từ xa

1.3.5 Dictionary mật khẩu SSH dùng Paramiko

Tấn công từ điển mật khẩu SSH là một phương pháp thường được sử dụng để đánh cắp thông tin đăng nhập vào các hệ thống Trong Python, thư viện Paramiko cũng có thể được sử dụng để thực hiện các tấn công từ điển mật khẩu SSH Để thực hiện tấn công này, ta cần tạo một kết nối SSH đến máy chủ mục tiêu bằng thư viện Paramiko 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

Dưới đây là một ví dụ đơn giản về cách sử dụng thư viện Paramiko để thực hiện tấn công từ điển mật khẩu SSH:

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

Trang 20

Trong đoạn mã trên, ta sử dụng phương thức paramiko.SSHClient() để thiết lập kết nối SSH đến máy chủ mục tiêu Sau đó, ta sử dụng một danh sách các mật khẩu để thực hiện tấn công từ điển mật khẩu

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 Nếu đăng nhập thành công, ta in ra thông báo và thoát khỏi vòng lặp Nếu đăng nhập thất bại, ta tiếp tục thử với mật khẩu tiếp theo trong danh sách

1.3.6 Khai thác SSH thông qua khóa bí mật yếu

Mật khẩu cung cấp một phương pháp xác thực tới máy chủ SSH, nhưng không phải là phương pháp duy nhất SSH cũng hỗ trợ xác thực bằng mật mã khóa công khai, trong đó máy chủ và người dùng sử dụng các khóa riêng biệt 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

1.3.7 Dựng SSH Botnet với Python

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 Những kẻ tấn công thường sử dụng các bộ sưu tập máy tính bị xâm nhập cho các mục đích xấu Chúng em gọi đây là một mạng botnet vì các máy tính bị xâm nhập hoạt động giống như các bot để thực hiện các hướng dẫn Để xây dựng mạng botnet sẽ phải đưa ra một khái niệm mới - một lớp (a class) Khái niệm về một lớp đóng vai trò là cơ sở cho một mô hình lập trình có tên là lập trình hướng đối tượng Trong hệ thống này, khởi tạo các đối tượng riêng lẻ bằng các phương thức liên kết Đối với mạng botnet, mỗi bot hoặc ứng dụng client riêng lẻ sẽ yêu cầu khả năng kết nối và ra lệnh

Trang 21

CHƯƠNG 2: TÌM HIỂU VỀ DDOS

2.1 DDOS

DDoS (Distributed Denial of Service) là một loại tấn công mạng mà mục tiêu của nó là làm cho một trang web, máy chủ, dịch vụ hoặc mạng trở nên không khả dụng cho người dùng bình thường bằng cách làm chậm hoặc tắt hoàn toàn dịch vụ Điều này được thực hiện bằng cách tạo ra một lượng lớn các yêu cầu truy cập đến mục tiêu, áp đặt một gánh nặng không thể xử lý được lên hệ thống đó

Các cuộc tấn công DDoS thường được thực hiện thông qua việc sử dụng một mạng lưới các máy tính đã bị xâm nhập và kiểm soát bởi kẻ tấn công, thường là qua việc cài đặt phần mềm độc hại hoặc mã độc trên các thiết bị này mà không được chủ sở hữu biết Khi tấn công bắt đầu, các máy tính này sẽ gửi hàng loạt các yêu cầu đến mục tiêu, quá tải hệ thống và làm cho dịch vụ trở nên không khả dụng cho người dùng hợp pháp

Một trong những đặc điểm quan trọng của cuộc tấn công DDoS là tính phân tán của nó Thay vì sử dụng một máy tính duy nhất để tạo ra lưu lượng truy cập giả mạo, kẻ tấn công sử dụng một mạng lưới các máy tính đã bị xâm nhập, điều này làm cho việc ngăn chặn tấn công trở nên khó khăn hơn

Mặc dù cuộc tấn công DDoS thường không gây ra tổn thất trực tiếp đối với dữ liệu hoặc tài sản trên hệ thống, chúng có thể gây ra những hậu quả nghiêm trọng về mặt kinh tế và uy tín đối với các tổ chức và cá nhân bị tấn công Các tổ chức thường phải chi tiêu một lượng lớn tiền bạc và thời gian để khắc phục sự cố và khôi phục lại dịch vụ, đồng thời hậu quả về uy tín cũng có thể là nghiêm trọng nếu khách hàng hoặc đối tác không còn tin tưởng vào tính ổn định và an ninh của hệ thống của họ

Trang 22

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

2.2 Các hình thức tấn công DDOS

Mặc dù DDoS cung cấp một chế độ tấn công ít phức tạp hơn các dạng tấn công mạng khác, nhưng chúng đang ngày càng mạnh mẽ và tinh vi hơn

Hình 2.2 Các hình thức tấn công DDoS

Trang 23

2.2.1 Volume-Based Attacks (tấn công băng thông)

Tấn công băng thông là kỹ thuật phổ biến nhất, nơi kẻ tấn công gửi các request để làm bão hòa băng thông của hệ thống mục tiêu Các kẻ tấn công thường sử dụng kỹ thuật khuếch đại để tạo ra các request mà không cần nhiều tài nguyên

Các cuộc tấn công khuếch đại sử dụng lượng lớn phản hồi từ các request nhỏ để làm quá tải hệ thống mục tiêu Thông thường, kỹ thuật này sử dụng việc giả mạo nguồn của các gói tin, được gọi là tấn công phản xạ Ví dụ, giả mạo nguồn IP của một request DNS để lừa máy chủ DNS gửi phản hồi đến hệ thống mục tiêu thay vì nguồn truyền dữ liệu

- Các loại tấn công DDoS theo thể tích phổ biến nhất là:

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

Khuếch đại DNS (hoặc phản chiếu DNS): Cuộc tấn công này chuyển

hướng số lượng lớn các yêu cầu DNS đến địa chỉ IP của mục tiêu

ICMP floods: Chiến lược này sử dụng các yêu cầu lỗi ICMP false để làm

quá tải băng thông của mạng

2.2.2 Protocol Attacks (tấn công giao thức)

Loại tấn công Protocol Attacks khai thác các giao thức hoạt động trên máy chủ mục tiêu 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ụ Ví dụ như tấn công vào các máy chủ NTP server hoặc khai thác các lỗi TCP

Hai loại tấn công DDoS phổ biến nhất dựa trên giao thức là:

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

Trang 24

tiêu 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

Smurf DDoS: Tin tặc sử dụng phần mềm độc hại để gửi gói mạng với địa

chỉ IP giả mạo Gói này chứa một thông báo ping ICMP yêu cầu mạng gửi lại phản hồi Tin tặc tạo ra một vòng lặp vô hạn bằng cách gửi phản hồi cho địa chỉ IP mạng lại, làm hệ thống bị treo

2.2.3 Application Layer Attacks (tấn công ứng dụng)

Đâ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ó Lớp ứng dụng là lớp thứ 7 và cuối cùng của mô hình OSI Nó bao gồm những phần mềm, ứng dụng web, dịch vụ… mà người dùng hay sử dụng và tương tác khi họ truy cập Internet Các cuộc tấn công lớp ứng dụng còn được gọi là cuộc tấn công lớp 7

2.3 Dấu hiệu của tấn công DDoS

Dưới đây là một số dấu hiệu của tấn công DDoS:

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

Giảm tốc độ truy cập: Lưu lượng truy cập giảm, thường là do tấn công

DDoS amplification attacks

Khối lượng lớn yêu cầu: Hệ thống nhận được một lượng lớn yêu cầu

truy cập đồng thời, vượt quá khả năng xử lý

Khối lượng lớn dữ liệu: Gửi một lượng lớn dữ liệu đến hệ thống mục

tiêu, gây áp lực lớn lên băng thông mạ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

Ngày đăng: 18/05/2024, 16:15

Tài liệu cùng người dùng

Tài liệu liên quan