Nhu cầu về các công cụ này ngày càng gia tăng, khôngchỉ giúp các tổ chức nâng cao mức độ bảo mật mà còn hỗ trợ cộng đồng hiểu rõ hơn về cơ chế của các cuộc tấn công mạng, từ đó nâng cao
TỔNG QUAN TẤN CÔNG MẠNG
Giới thiệu về tấn công mạng
Tấn công mạng là hành vi xâm nhập trái phép vào hệ thống, mạng hoặc thiết bị kết nối Internet, nhằm đánh cắp thông tin, gây gián đoạn dịch vụ hoặc phá hoại hệ thống Các phương thức tấn công bao gồm khai thác lỗ hổng bảo mật, tấn công từ chối dịch vụ (DoS/DDoS), kỹ thuật tấn công mạng xã hội, lừa đảo qua email và cuộc gọi giả mạo, cùng với việc sử dụng phần mềm độc hại để kiểm soát thiết bị từ xa.
Các cuộc tấn công mạng nhằm vào việc đánh cắp dữ liệu cá nhân, tài chính và tài sản số, hoặc có thể làm tê liệt hệ thống mạng, gây ra thiệt hại nghiêm trọng cho cá nhân, doanh nghiệp và tổ chức.
Các loại tấn công mạng
1.2.1 Tấn công phần mềm độc hại (malware)
Tấn công phần mềm độc hại là hành vi xâm nhập vào hệ thống hoặc thiết bị của người dùng thông qua các tệp mã độc, nhằm gây thiệt hại hoặc phục vụ lợi ích của kẻ tấn công Mã độc có thể lây lan qua nhiều phương thức như email chứa liên kết nguy hiểm, trang web độc hại, phần mềm giả mạo và các phương tiện truyền tải khác.
Phần mềm độc hại có nhiều loại khác nhau, mỗi loại hoạt động theo cách riêng Virus tự sao chép và lây nhiễm vào tệp hệ thống, gây hư hại dữ liệu quan trọng Worms lây lan qua mạng mà không cần tệp chủ, phát tán nhanh chóng và ảnh hưởng rộng rãi Trojan ngụy trang dưới dạng phần mềm hợp pháp, lừa người dùng cài đặt để kiểm soát thiết bị từ xa Spyware theo dõi hoạt động và thu thập thông tin cá nhân mà không có sự cho phép, trong khi Adware hiển thị quảng cáo không mong muốn, làm giảm hiệu suất hệ thống và gây khó chịu cho người dùng.
Phần mềm độc hại có thể gây ra nhiều hệ lụy nghiêm trọng như đánh cắp dữ liệu cá nhân, làm chậm hoặc phá hủy hệ thống, và gây gián đoạn dịch vụ Để bảo vệ hệ thống khỏi những mối đe dọa này, người dùng nên sử dụng phần mềm bảo mật, thường xuyên cập nhật hệ thống, tránh tải xuống tệp từ nguồn không đáng tin cậy, và cẩn trọng khi mở email từ những địa chỉ không xác định.
1.2.2 Tấn công từ chối dịch vụ (Denial-of-Service)
Tấn công từ chối dịch vụ (Denial-of-Service) là một kiểu tấn công mạng nhằm ngăn cản người dùng hợp pháp truy cập vào dịch vụ trực tuyến Kẻ tấn công có thể tạo ra lưu lượng truy cập lớn, gửi gói tin độc hại hoặc khai thác lỗ hổng để làm hệ thống quá tải, treo hoặc ngừng hoạt động.
Tấn công DoS có thể dẫn đến nhiều hậu quả nghiêm trọng như gián đoạn hoạt động của tổ chức, làm cho dịch vụ trực tuyến không thể truy cập, và ảnh hưởng tiêu cực đến doanh thu cũng như uy tín của doanh nghiệp Các phương pháp phổ biến để thực hiện tấn công DoS bao gồm tấn công ngập (flooding attack) bằng cách gửi một lượng lớn yêu cầu đến máy chủ mục tiêu, lợi dụng lỗ hổng giao thức để làm cạn kiệt tài nguyên hệ thống, và sử dụng botnet để phát động các cuộc tấn công từ nhiều nguồn khác nhau (DDoS - Distributed Denial of Service).
Hình 1.2 Mô hình tấn công DDoS
Để giảm thiểu rủi ro tấn công DoS, các tổ chức nên tăng cường khả năng xử lý hệ thống, sử dụng tường lửa để lọc lưu lượng độc hại, triển khai công cụ phát hiện và phòng thủ, cũng như áp dụng cơ chế cân bằng tải nhằm hạn chế tác động của các cuộc tấn công quy mô lớn.
1.2.3 Tấn công tràn bộ đệm (Buffer overflow)
Tấn công tràn bộ đệm (buffer overflow) là một kiểu tấn công mạng khai thác lỗi vào, sử dụng bộ đệm để lưu trữ dữ liệu Khi kẻ tấn công gửi dữ liệu vượt quá giới hạn cho phép, dữ liệu thừa có thể tràn ra ngoài bộ đệm, ghi đè lên các phần khác của bộ nhớ, dẫn đến lỗi chương trình hoặc thậm chí bị chiếm quyền điều khiển.
Kẻ tấn công có thể lợi dụng phương pháp tràn bộ đệm để làm hỏng chương trình, đánh cắp thông tin hoặc điều khiển hệ thống Những kiểu tấn công này có thể khiến chương trình dừng đột ngột, chạy mã độc hoặc tạo điều kiện cho các cuộc tấn công khác Để phòng ngừa, các nhà phát triển phần mềm cần kiểm soát dữ liệu nhập vào, sử dụng công cụ bảo mật để ngăn chặn lỗi tràn bộ đệm, và thường xuyên cập nhật phần mềm để vá các lỗ hổng.
1.2.4 Tấn công chiếm quyền phiên (Session hijacking)
Tấn công chiếm quyền phiên (session hijacking) là một loại tấn công mạng, trong đó kẻ tấn công chiếm quyền kiểm soát một phiên làm việc hợp lệ giữa hai bên, như giữa trình duyệt web và máy chủ hoặc giữa các thiết bị trong mạng nội bộ.
Kẻ tấn công có thể lợi dụng lỗ hổng trong giao thức truyền thông để đánh cắp thông tin xác thực hoặc dự đoán mã phiên làm việc Sau khi có quyền truy cập, chúng có khả năng giả mạo danh tính nạn nhân, thực hiện hành vi độc hại, đánh cắp dữ liệu hoặc chiếm quyền kiểm soát tài khoản.
Để giảm thiểu nguy cơ tấn công session hijacking, hệ thống cần sử dụng kết nối HTTPS, thiết lập thời gian tồn tại cho phiên làm việc, áp dụng mã hóa dữ liệu và triển khai xác thực hai yếu tố nhằm nâng cao bảo mật.
1.2.5 Tấn công dò quét cổng (Port scanning)
Tấn công dò quét cổng là kỹ thuật mà kẻ tấn công kiểm tra các cổng mạng của hệ thống để xác định các dịch vụ đang hoạt động Qua kết quả quét, kẻ tấn công đánh giá mức độ bảo mật của hệ thống và tìm kiếm điểm yếu có thể khai thác.
Sau khi xác định các cổng mở, kẻ tấn công có thể sử dụng công cụ khai thác để tấn công dịch vụ đang chạy trên các cổng đó, dẫn đến xâm nhập hệ thống hoặc ảnh hưởng đến hoạt động của nó Để giảm thiểu nguy cơ tấn công, cần cấu hình tường lửa để hạn chế truy cập trái phép, giám sát lưu lượng mạng để phát hiện hoạt động quét cổng đáng ngờ, và thường xuyên cập nhật dịch vụ để vá lỗ hổng bảo mật.
1.2.6 Tấn công đánh cắp thông tin
Tấn công đánh cắp thông tin là hành vi xâm nhập trái phép vào hệ thống hoặc thiết bị nhằm lấy cắp dữ liệu quan trọng, bao gồm thông tin cá nhân, tài khoản ngân hàng, thẻ tín dụng và dữ liệu nội bộ của doanh nghiệp.
Kẻ tấn công có thể khai thác lỗ hổng bảo mật trong hệ thống, phần mềm hoặc quy trình bảo mật để truy cập trái phép và đánh cắp dữ liệu Các phương thức tấn công phổ biến bao gồm phishing (lừa đảo qua email), malware (phần mềm độc hại) và khai thác lỗi bảo mật.
Công cụ kiểm thử an toàn mạng
1.3.1 Công cụ kiểm thử mạng
Công cụ kiểm thử mạng là phần mềm thiết yếu giúp chuyên gia bảo mật và quản trị viên đánh giá an toàn hệ thống mạng Chúng hỗ trợ phát hiện và khắc phục lỗ hổng bảo mật trước khi bị kẻ tấn công khai thác Các công cụ này cũng kiểm tra khả năng phòng thủ, thu thập thông tin thiết bị mạng, giám sát lưu lượng dữ liệu và mô phỏng các cuộc tấn công để đánh giá mức độ rủi ro.
Công cụ kiểm thử mạng có thể được phân thành nhiều loại, bao gồm:
- Công cụ quét lỗ hổng: Giúp tìm ra các điểm yếu trong hệ thống, ví dụ như OpenVAS, Nessus.
- Công cụ dò quét cổng: Hỗ trợ kiểm tra các cổng mạng đang mở và dịch vụ đang chạy, điển hình là Nmap.
- Công cụ kiểm thử xâm nhập (Penetration Testing): Cho phép mô phỏng các cuộc tấn công thực tế, chẳng hạn như Metasploit.
- Công cụ giám sát và phân tích lưu lượng: Giúp theo dõi dữ liệu truyền qua mạng để phát hiện hành vi bất thường, ví dụ như Wireshark.
Việc sử dụng các công cụ kiểm thử bảo mật là rất cần thiết để phát hiện và khắc phục kịp thời các lỗ hổng trước khi bị khai thác Tuy nhiên, những công cụ mạnh mẽ này cũng có thể bị kẻ xấu lợi dụng để thực hiện các cuộc tấn công Do đó, việc tuân thủ các quy định về an ninh mạng và sử dụng chúng trong phạm vi hợp pháp là điều cực kỳ quan trọng.
1.3.2 Một số công cụ kiểm thử mạng phổ biến
Dưới đây là một số công cụ quan trọng được sử dụng trong kiểm thử bảo mật mạng:
- Nmap: Công cụ quét cổng mạnh mẽ, giúp xác định các máy chủ, dịch vụ đang chạy trên hệ thống và kiểm tra trạng thái mạng.
Hình 1.4 Công cụ quét cổng Nmap
- Wireshark: Công cụ phân tích gói tin, cho phép xem dữ liệu truyền qua mạng để phát hiện lỗ hổng hoặc các hành vi bất thường.
- Nessus: Công cụ quét lỗ hổng mạnh mẽ, giúp tìm kiếm các điểm yếu trong hệ thống và cung cấp báo cáo chi tiết.
- Metasploit: Bộ công cụ hỗ trợ kiểm thử xâm nhập, giúp khai thác lỗ hổng bảo mật và mô phỏng các cuộc tấn công thực tế.
- Burp Suite: Công cụ kiểm thử bảo mật ứng dụng web, hỗ trợ tìm kiếm và khai thác lỗ hổng trên các website.
- Aircrack-ng: Bộ công cụ chuyên về kiểm thử bảo mật mạng không dây, hỗ trợ bẻ khóa mật khẩu Wi-Fi và phân tích bảo mật.
- John the Ripper: Công cụ kiểm thử mật khẩu, giúp đánh giá độ mạnh của mật khẩu thông qua các phương pháp như brute-force và dictionary attack.
- Hydra: Công cụ kiểm thử mật khẩu hỗ trợ brute-force trên nhiều giao thức như SSH, FTP, HTTP, MySQL
- Cain and Abel: Công cụ phân tích bảo mật mạnh mẽ, giúp thu thập thông tin, giám sát mạng và kiểm tra các giao thức xác thực.
- Ettercap: Công cụ tấn công mạng dạng man-in-the-middle (MITM), giúp sniffing (nghe lén) và thực hiện các cuộc tấn công giả mạo trên mạng nội bộ.
Hình 1.5 Minh họa tấn công MITM
Các công cụ này rất quan trọng trong việc kiểm thử an toàn mạng, giúp phát hiện và khắc phục lỗ hổng trước khi kẻ tấn công có thể khai thác chúng.
Mô hình Cyber Kill Chain
Mô hình Cyber Kill Chain mô tả chuỗi các giai đoạn của một cuộc tấn công mạng, từ thu thập thông tin ban đầu (reconnaissance) đến việc đạt được mục tiêu cuối cùng như chiếm quyền kiểm soát hệ thống hoặc đánh cắp dữ liệu (Actions on Objectives) Hiểu rõ mô hình này là cần thiết để phân tích và triển khai các biện pháp phòng thủ hiệu quả hơn.
Hình 1.6 Mô hình Cyber Kill Chain
1.4.1 Thu thập thông tin – Reconnaissance
Trong giai đoạn đầu của cuộc tấn công mạng, kẻ tấn công thu thập thông tin từ bên ngoài để xác định mục tiêu và chiến thuật Bước này rất quan trọng, nhằm phát hiện các lỗ hổng bảo mật hoặc điểm yếu trong hệ thống có thể bị khai thác.
Hiện nay, tường lửa và hệ thống phát hiện ngăn chặn xâm nhập (IDS/IPS) cùng với các tài khoản mạng xã hội thường là mục tiêu chính để thu thập thông tin Một trong những phương pháp phổ biến là thu thập địa chỉ email thông qua dịch vụ miễn phí hoặc trả phí Những thông tin này có thể được sử dụng để thực hiện các cuộc tấn công lừa đảo (phishing), nhằm đánh cắp thông tin nhạy cảm từ cá nhân hoặc tổ chức.
Các công cụ thu thập thông tin phổ biến:
TheHarvester không chỉ đơn thuần là công cụ thu thập địa chỉ email, mà còn có khả năng thu thập tên miền phụ, địa chỉ IP, URL và nhiều thông tin liên quan khác từ các nguồn bên ngoài.
- OSINT Framework: Một bộ công cụ hỗ trợ thu thập thông tin từ nhiều nguồn khác nhau, giúp phân tích dữ liệu một cách có hệ thống.
Nmap (Network Mapper) là một công cụ mã nguồn mở và miễn phí, được sử dụng để quét lỗ hổng bảo mật, phát hiện các thiết bị hoạt động trên hệ thống, xác định dịch vụ đang chạy, dò tìm cổng mở và đánh giá nguy cơ bảo mật.
Wappalyzer là công cụ hỗ trợ nhận diện công nghệ sử dụng trên trang web, bao gồm framework, CMS, ngôn ngữ lập trình và hệ thống phân tích dữ liệu Hiểu rõ giai đoạn thu thập thông tin sẽ giúp tổ chức nâng cao khả năng phòng thủ, phát hiện sớm dấu hiệu tấn công và triển khai các biện pháp bảo vệ hiệu quả.
Sau khi thu thập thông tin về các lỗ hổng của mục tiêu, kẻ tấn công phát triển hoặc chọn lựa công cụ để khai thác những điểm yếu này Quá trình này thường kết hợp mã độc và mã khai thác vào một payload, đoạn mã được thực thi trên hệ thống mục tiêu nhằm xâm nhập hoặc gây tổn hại.
Malware là các chương trình độc hại được thiết kế nhằm phá vỡ, làm gián đoạn hoặc truy cập trái phép vào hệ thống Những loại malware phổ biến bao gồm virus, trojan, ransomware, và spyware.
Exploit là các đoạn mã hoặc công cụ được sử dụng để khai thác lỗ hổng bảo mật trong ứng dụng hoặc hệ thống Mục đích của chúng là chiếm quyền kiểm soát hoặc gây ra các hành vi không mong muốn.
Payload là đoạn mã được sử dụng qua exploit để thực hiện các hành động nhất định, bao gồm cài đặt backdoor, đánh cắp thông tin, hoặc gây hại cho hệ thống.
Các công cụ tấn công có thể được kẻ tấn công tự phát triển hoặc mua từ chợ đen (Dark Web) Nhiều công cụ khai thác lỗ hổng còn được chia sẻ trên các diễn đàn hacker hoặc được cải tiến từ mã nguồn mở, làm cho việc thực hiện các cuộc tấn công trở nên dễ dàng hơn.
Hiểu rõ giai đoạn công cụ hóa giúp các chuyên gia bảo mật chủ động ngăn chặn các cuộc tấn công bằng cách cập nhật hệ thống, vá lỗ hổng và triển khai các biện pháp phát hiện sớm, từ đó giảm thiểu nguy cơ bị khai thác.
1.4.3 Phân tán – Delivery Đây là giai đoạn kẻ tấn công tiến hành phát tán payload độc hại hoặc phần mềm độc hại (malware) đến mục tiêu bằng bất kỳ phương thức xâm nhập nào có thể. Mục tiêu của giai đoạn này là đưa mã độc vào hệ thống của nạn nhân để chuẩn bị cho các bước tấn công tiếp theo.
Một số phương thức phổ biến mà kẻ tấn công sử dụng để thực hiện phân tán:
Kẻ tấn công có thể sử dụng email để gửi tệp đính kèm độc hại hoặc liên kết đến trang web giả mạo, nhằm lừa người dùng mở tệp hoặc nhập thông tin đăng nhập Phương thức này thường xuất hiện trong các cuộc tấn công lừa đảo (phishing), có thể nhắm đến cá nhân hoặc toàn bộ tổ chức.
Kẻ tấn công có thể sử dụng thiết bị lưu trữ di động như USB để cài đặt mã độc vào hệ thống mục tiêu Khi người dùng kết nối thiết bị này với máy tính, mã độc sẽ được kích hoạt, cho phép kẻ tấn công truy cập trái phép vào hệ thống.
CÁC KỸ THUẬT TẤN CÔNG MẠNG
Tấn công Dictionary
2.1.1 Giới thiệu về Dictionary Attack
Tấn công Dictionary Attack là một phương pháp tấn công brute-force có chủ đích, nhằm đoán mật khẩu của tài khoản trong hệ thống Thay vì thử tất cả các tổ hợp ký tự như tấn công brute-force thông thường, phương pháp này sử dụng một danh sách các từ hoặc cụm từ phổ biến để đăng nhập vào tài khoản mục tiêu Nhiều người dùng thường đặt mật khẩu đơn giản hoặc dễ đoán, như password123, qwerty, 123456, tạo cơ hội cho các tấn công này Một số công cụ còn kết hợp từ điển với ký tự đặc biệt hoặc số để tạo ra nhiều biến thể, tăng hiệu quả tấn công.
Dictionary Attack khác Brute-force Attack ở chỗ nó chỉ thử các mật khẩu có khả năng cao, giúp tăng tốc độ và hiệu quả nếu mật khẩu nằm trong danh sách từ điển Trong khi đó, Brute-force Attack thử tất cả các khả năng, bao gồm chuỗi ký tự ngẫu nhiên, tốn nhiều thời gian và tài nguyên hơn Tuy nhiên, nếu mật khẩu đủ dài và phức tạp, Dictionary Attack sẽ kém hiệu quả hơn so với Brute-force Attack.
Hình 2.1 Cách hoạt động Dictionary Attack
2.1.2 Các bước tiến hành tấn công
- Bước 1: Chuẩn bị danh sách từ điển
Trước khi tiến hành tấn công, kẻ tấn công cần chuẩn bị một danh sách từ khóa từ nhiều nguồn trên Internet, bao gồm các bộ từ điển mật khẩu đã bị rò rỉ hoặc tự tạo ra danh sách bằng cách kết hợp các từ thông dụng với số và ký tự đặc biệt.
- Bước 2: Thiết lập kết nối với mục tiêu
Kẻ tấn công cần xác định hệ thống hoặc dịch vụ mục tiêu, chẳng hạn như trang đăng nhập, dịch vụ SSH, FTP, hoặc bất kỳ giao thức nào yêu cầu xác thực người dùng Sau đó, họ thiết lập kết nối đến máy chủ để bắt đầu thử nghiệm mật khẩu.
- Bước 3: Thử nghiệm mật khẩu từ danh sách từ điển
Sau khi thiết lập kết nối, kẻ tấn công sẽ sử dụng danh sách từ điển để thử đăng nhập vào tài khoản mục tiêu Quá trình này thường được tự động hóa bằng các công cụ như Hydra, Medusa hoặc John the Ripper để tăng tốc độ thử nghiệm Mỗi mật khẩu trong danh sách sẽ được thử lần lượt cho đến khi mật khẩu đúng được tìm ra hoặc danh sách kết thúc.
- Bước 4: Kiểm tra kết quả và khai thác thành công
Nếu một trong các mật khẩu trong danh sách đúng, kẻ tấn công sẽ đăng nhập thành công vào hệ thống và có thể thu thập thông tin, đánh cắp dữ liệu hoặc leo thang đặc quyền Nếu tất cả các mật khẩu đều thất bại, chúng có thể thử danh sách từ điển khác hoặc sử dụng phương pháp brute-force.
+ Nếu một trong các mật khẩu trong danh sách khớp với tài khoản, kẻ tấn công có thể đăng nhập thành công.
Nếu không tìm thấy mật khẩu nào đúng, script sẽ tiếp tục thử nghiệm với danh sách khác hoặc áp dụng kỹ thuật brute-force để kiểm tra nhiều tổ hợp phức tạp hơn.
- Sử dụng mật khẩu mạnh
Đặt mật khẩu mạnh là phương pháp hiệu quả để ngăn chặn tấn công từ điển Một mật khẩu mạnh cần có sự kết hợp giữa chữ hoa, chữ thường, số và ký tự đặc biệt, với độ dài tối thiểu 12 ký tự Nên tránh sử dụng các mật khẩu dễ đoán như "password123" hay "admin".
Hình 2.2 Minh họa sử dụng mật khẩu mạnh
- Áp dụng cơ chế khóa tài khoản tạm thời
Hệ thống có thể được cấu hình để tự động khóa tài khoản sau một số lần nhập sai mật khẩu liên tiếp, chẳng hạn như sau 5 lần thử không thành công Biện pháp này giúp giảm thiểu nguy cơ tấn công từ điển bằng cách kéo dài thời gian thực hiện của kẻ tấn công.
- Giới hạn số lần đăng nhập thất bại
Thay vì khóa tài khoản ngay lập tức, hệ thống nên yêu cầu người dùng chờ một thời gian ngắn trước khi thử lại sau khi nhập sai nhiều lần Phương pháp này giúp giảm tốc độ thử mật khẩu và làm cho các cuộc tấn công từ điển trở nên kém hiệu quả hơn.
Lưu trữ mật khẩu bằng cách mã hóa (băm và thêm muối) là biện pháp bảo vệ dữ liệu hiệu quả, ngay cả khi kẻ tấn công có thể truy cập vào cơ sở dữ liệu Nên sử dụng các thuật toán băm an toàn như bcrypt, Argon2 hoặc PBKDF2 thay vì các thuật toán cũ như MD5 hoặc SHA-1.
- Triển khai hệ thống cảnh báo bảo mật
Các hệ thống giám sát có khả năng phát hiện hành vi đăng nhập bất thường, như việc một tài khoản gặp nhiều lần đăng nhập thất bại trong thời gian ngắn Khi phát hiện dấu hiệu của tấn công, hệ thống sẽ gửi cảnh báo đến quản trị viên hoặc người dùng.
- Sử dụng xác thực khóa công khai (đối với SSH)
Thay vì mật khẩu truyền thống, xác thực bằng khóa công khai (Public Key Authentication) nâng cao bảo mật bằng cách sử dụng cặp khóa bất đối xứng Khóa riêng (private key) được giữ bí mật bởi người dùng, trong khi khóa công khai (public key) được lưu trữ trên máy chủ Ngay cả khi kẻ tấn công có danh sách mật khẩu, họ vẫn không thể đăng nhập mà không có khóa riêng.
Hình 2.3 Minh họa giao thức SSH
Tấn công ARP Spoofing
Trong một mạng máy tính, mỗi thiết bị (máy tính, router, switch, v.v.) đều có hai loại địa chỉ:
Địa chỉ logic (IP Address) là một thông tin quan trọng dùng để xác định thiết bị trong mạng, và nó có thể thay đổi theo thời gian hoặc khi thiết bị kết nối vào mạng khác.
Địa chỉ vật lý (MAC Address) là một mã số được gán cố định cho card mạng của thiết bị bởi nhà sản xuất, có chức năng nhận diện thiết bị trong mạng cục bộ.
Giao thức ARP (Address Resolution Protocol) giúp phân giải địa chỉ IP thành địa chỉ MAC, cho phép thiết bị xác định đích đến trong mạng nội bộ Khi một thiết bị cần gửi dữ liệu mà chưa biết địa chỉ MAC của đích, nó sẽ sử dụng ARP để thực hiện truy vấn và nhận phản hồi từ thiết bị tương ứng.
Giao thức ARP có bốn loại gói tin chính:
- ARP Request: Một thiết bị gửi gói tin này để yêu cầu tìm địa chỉ MAC tương ứng với một địa chỉ IP nhất định.
- ARP Reply: Thiết bị sở hữu địa chỉ IP được yêu cầu sẽ phản hồi bằng địa chỉ MAC của nó.
- Reverse ARP Request (RARP Request): Một thiết bị gửi gói tin này để yêu cầu tìm địa chỉ IP khi chỉ biết địa chỉ MAC.
- Reverse ARP Reply (RARP Reply): Máy chủ sẽ phản hồi bằng địa chỉ IP tương ứng với địa chỉ MAC được yêu cầu.
Hình 2.4 Minh họa gói tin ARP
2.2.2 Tác dụng giao thức ARP
Máy tính A trong mạng cục bộ với địa chỉ IP 192.168.0.1 muốn gửi gói tin đến máy tính B có địa chỉ IP 192.168.0.4 Quá trình gửi gói tin giữa hai máy tính này sẽ được thực hiện một cách trực tiếp trong cùng một mạng.
- Bước 1: Máy A kiểm tra ARP Cache (bộ đệm chứa ánh xạ IP-MAC trong RAM) để tìm địa chỉ MAC của máy B.
+ Nếu đã có địa chỉ MAC của B, chuyển sang bước 4b.
+ Nếu không tìm thấy, chuyển sang bước 2.
(Lưu ý: ARP Cache giúp giảm thời gian truyền gói tin do không cần gửi ARP Request nhiều lần.)
- Bước 2: Máy A gửi một gói tin ARP Request đến toàn bộ các thiết bị trong mạng LAN để yêu cầu địa chỉ MAC của IP 192.168.0.4.
Máy B với địa chỉ IP 192.168.0.4 nhận được yêu cầu ARP và xác nhận rằng yêu cầu này dành cho mình, sau đó gửi lại phản hồi ARP chứa địa chỉ MAC của nó cho máy A, trong khi các máy khác trong mạng nhận yêu cầu ARP nhưng sẽ bỏ qua.
+ Máy A nhận được ARP Reply từ máy B.
+ Máy A cập nhật địa chỉ MAC vừa nhận được vào ARP Cache (ARP mapping table).
- Bước 5: Sau khi có địa chỉ MAC của máy B, máy A mới có thể gửi gói tin IP đến 192.168.0.4 với địa chỉ MAC đích lấy từ ARP Cache.
Tác dụng của giao thức ARP:
ARP là giao thức cho phép ánh xạ địa chỉ IP sang địa chỉ MAC, giúp các thiết bị trong mạng giao tiếp hiệu quả.
2.2.3 Cơ chế hoạt động a) Cơ chế hoạt động của ARP trong mạng nội bộ (LAN)
Giả sử máy A muốn gửi một gói tin IP đến máy B trong cùng mạng LAN Quá trình diễn ra như sau:
Nếu máy A đã lưu địa chỉ MAC tương ứng với IP của máy B trong ARP Cache, nó sẽ gửi gói tin IP trực tiếp, với Header chứa địa chỉ IP và MAC của máy B.
- Nếu không có địa chỉ MAC của máy B trong ARP Cache, máy A sẽ gửi một gói tin ARP Request đến toàn bộ mạng (broadcast).
- Tất cả các thiết bị trong mạng nhận được gói tin ARP Request, nhưng chỉ máy
B có địa chỉ IP trùng khớp sẽ phản hồi bằng gói tin ARP Reply, cung cấp địa chỉ MAC của nó cho máy A.
- Máy A nhận được ARP Reply, cập nhật địa chỉ MAC của máy B vào ARP Cache, sau đó đóng gói và gửi gói tin IP đến máy B.
Kết luận: Nhờ cơ chế này, ARP giúp các thiết bị trong cùng mạng nội bộ xác định địa chỉ MAC của nhau để có thể giao tiếp.
Hình 2.5 Cơ chế hoạt động giao thức ARP b) Cơ chế hoạt động của ARP trong môi trường liên mạng (WAN)
Giả sử máy A ở mạng A muốn gửi gói tin đến máy B ở mạng B (khác subnet) Quá trình hoạt động như sau:
Máy A phát hiện địa chỉ IP của máy B không thuộc cùng mạng, do đó không thể truy cập trực tiếp vào địa chỉ MAC của B Thay vào đó, máy A phải gửi gói tin đến Router, tức là cổng mặc định của nó.
- Máy A gửi một ARP Request (broadcast) để tìm địa chỉ MAC của cổng Router
- Router phản hồi bằng ARP Reply, cung cấp địa chỉ MAC của cổng X cho máy A.
- Máy A sử dụng địa chỉ MAC của cổng X để gửi gói tin IP có đích là IP của máy B.
- Router nhận được gói tin từ máy A, xác định rằng đích đến thuộc mạng B, nên tiếp tục gửi ARP Request để tìm địa chỉ MAC của máy B.
- Máy B phản hồi bằng ARP Reply, cung cấp địa chỉ MAC của nó cho cổng Y của Router.
- Router cập nhật địa chỉ MAC của máy B, sau đó chuyển tiếp gói tin từ máy A đến máy B.
Kết luận: Trong mạng liên kết qua Router, ARP đóng vai trò quan trọng trong việc xác định địa chỉ MAC của Router và thiết bị đầu cuối, từ đó đảm bảo rằng gói tin được chuyển tiếp chính xác qua các subnet khác nhau.
ARP Spoofing là một kỹ thuật tấn công mạng phổ biến, trong đó kẻ tấn công giả mạo địa chỉ MAC của thiết bị bằng cách gửi các gói tin ARP giả mạo Mục tiêu là đánh lừa các thiết bị trong mạng, khiến chúng gửi dữ liệu đến địa chỉ MAC sai, dẫn đến nhiều hậu quả nghiêm trọng như tấn công từ chối dịch vụ (DoS) và nghe lén.
(sniffing) hoặc đánh cắp dữ liệu nhạy cảm.
Hình 2.6 Tấn công ARP Spoofing
Các bước thực hiện tấn công
Kẻ tấn công sử dụng các công cụ để quét và phân tích mạng, nhằm xác định địa chỉ IP và địa chỉ MAC của các thiết bị trong mạng.
Giả mạo địa chỉ MAC là một kỹ thuật mà kẻ tấn công gửi các gói tin ARP giả mạo nhằm thay đổi ánh xạ IP-MAC trong bảng ARP cache của nạn nhân Hành động này khiến thiết bị của nạn nhân tin rằng địa chỉ MAC của kẻ tấn công là hợp lệ.
Kẻ tấn công có thể chặn và chuyển hướng gói tin sau khi giả mạo thành công, cho phép họ sửa đổi hoặc chuyển tiếp dữ liệu đến địa điểm khác mà nạn nhân không hề hay biết.
Khai thác và kiểm soát dữ liệu cho phép kẻ tấn công tiếp cận thông tin nhạy cảm như thông tin đăng nhập và tin nhắn, từ đó thực hiện các cuộc tấn công khác, bao gồm cài đặt phần mềm độc hại và tấn công Man-in-the-Middle (MITM).
Cách phát hiện tấn công ARP Spoofing
- Kiểm tra bảng ARP bằng lệnh ARP
+ Sử dụng lệnh arp -a (trên Windows) hoặc arp -n (trên Linux/macOS) để kiểm tra bảng ARP cache.
+ Nếu phát hiện một địa chỉ IP bị ánh xạ tới nhiều địa chỉ MAC khác nhau, có thể mạng đang bị tấn công ARP Spoofing.
- Sử dụng công cụ phát hiện ARP Spoofing
+ Một số công cụ có thể hỗ trợ phát hiện ARP Spoofing như XArp,
ARPwatch, ARPON Các công cụ này sẽ giám sát lưu lượng ARP trong mạng và cảnh báo nếu phát hiện các bất thường.
- Giám sát mạng bằng Wireshark
+ Công cụ phân tích gói tin Wireshark có thể giúp xác định các gói tin ARP đáng ngờ.
Lọc gói tin ARP bằng bộ lọc ARP giúp phát hiện các yêu cầu ARP bất thường và các gói tin có cùng địa chỉ IP nhưng khác nhau về địa chỉ MAC.
2.2.5 Hậu quả của tấn công ARP Spoofing
Tấn công ARP Spoofing có thể gây ra nhiều hậu quả nghiêm trọng đối với hệ thống mạng và người dùng, bao gồm:
Tấn công UDP Flood
2.3.1 Khái niệm tấn công UDP Flood
Tấn công UDP Flood là một dạng tấn công từ chối dịch vụ (DoS) mà kẻ tấn công gửi một lượng lớn gói tin UDP đến các cổng ngẫu nhiên trên máy chủ mục tiêu Mục đích của cuộc tấn công này là làm quá tải khả năng xử lý của hệ thống, dẫn đến việc cạn kiệt tài nguyên máy chủ hoặc thiết bị mạng Kết quả là, hệ thống không thể đáp ứng các yêu cầu hợp lệ từ người dùng thực sự.
Ngoài ra, trong một cuộc tấn công phân tán từ chối dịch vụ (DDoS –
Trong các cuộc tấn công từ chối dịch vụ phân tán (DDoS), kẻ tấn công thường sử dụng nhiều thiết bị bị xâm nhập (botnet), làm cho việc xác định nguồn gốc tấn công trở nên khó khăn Lượng lớn lưu lượng UDP có thể khiến tường lửa bảo vệ máy chủ bị quá tải, dẫn đến việc chặn cả các kết nối hợp lệ và gây gián đoạn dịch vụ.
Tấn công UDP Flood lợi dụng cách máy chủ xử lý gói tin UDP, đặc biệt là phản ứng của máy chủ khi nhận gói tin UDP gửi đến một cổng cụ thể Trong điều kiện bình thường, khi máy chủ nhận gói tin UDP, nó sẽ thực hiện hai bước quan trọng.
Bước 1: Kiểm tra xem có chương trình nào đang chạy và lắng nghe trên cổng đích hay không.
Nếu không có chương trình nào lắng nghe trên cổng, máy chủ sẽ gửi một gói tin ICMP với thông báo “Destination Unreachable” đến địa chỉ nguồn.
Hình 2.7 Minh họa tấn công UDP Flood
Khi nhận gói tin UDP, máy chủ cần xử lý và phản hồi, dẫn đến tiêu tốn tài nguyên hệ thống Trong các cuộc tấn công DDoS UDP Flood, kẻ tấn công thường sử dụng địa chỉ IP giả mạo để che giấu danh tính, làm cho việc ngăn chặn nguồn tấn công trở nên khó khăn hơn.
Do lượng lớn gói tin UDP liên tục đến, máy chủ phải sử dụng tài nguyên để kiểm tra và phản hồi từng yêu cầu, gây ra quá tải và dẫn đến việc từ chối dịch vụ cho các kết nối hợp lệ.
Do tính chất không cần thiết lập kết nối trước khi gửi dữ liệu của giao thức UDP, việc ngăn chặn tấn công UDP Flood cần áp dụng nhiều biện pháp đồng thời nhằm giảm thiểu tác động của cuộc tấn công.
- Giới hạn tần suất phản hồi ICMP
Hầu hết các hệ điều hành áp dụng biện pháp giới hạn tần suất phản hồi ICMP nhằm giảm thiểu tác động của tấn công từ chối dịch vụ Khi có quá nhiều phản hồi ICMP, hệ thống sẽ tự động giảm hoặc chặn chúng Tuy nhiên, phương pháp này có thể ảnh hưởng đến cả lưu lượng hợp lệ.
- Sử dụng tường lửa và hệ thống ngăn chặn xâm nhập (IPS)
Có thể thiết lập quy tắc trên tường lửa hoặc hệ thống IDS/IPS để giới hạn hoặc chặn các gói tin UDP đáng ngờ.
Tường lửa có thể được cấu hình để chặn tất cả các gói UDP từ các địa chỉ IP nghi ngờ hoặc giới hạn số lượng gói tin UDP đến một cổng nhất định.
Một số tường lửa cũng có thể sử dụng chế độ tự động phát hiện tấn công để giảm thiểu tác động của các cuộc tấn công UDP Flood.
- Sử dụng dịch vụ chống DDoS
Nhiều nhà cung cấp dịch vụ Internet (ISP) và nền tảng bảo mật hiện nay cung cấp giải pháp chống DDoS, giúp phát hiện và chặn lưu lượng độc hại trước khi chúng tiếp cận máy chủ mục tiêu Các dịch vụ này hoạt động dựa trên nguyên tắc ngăn chặn các cuộc tấn công từ xa, bảo vệ hệ thống và dữ liệu của người dùng.
Phát hiện các mẫu lưu lượng bất thường.
Sử dụng bộ lọc để loại bỏ lưu lượng tấn công UDP trong thời gian thực.
Hạn chế băng thông của các kết nối đáng ngờ.
- Cấu hình hệ thống để giảm tác động của UDP Flood
Một số biện pháp có thể được áp dụng để tăng cường khả năng chịu đựng của hệ thống trước tấn công UDP Flood:
Tắt các dịch vụ UDP không cần thiết như DNS, SNMP, và NTP trên máy chủ để giảm thiểu nguy cơ bị tấn công.
Giới hạn băng thông UDP: Một số thiết bị mạng cho phép thiết lập giới hạn băng thông dành cho UDP để giảm tác động của tấn công.
Bật SYN Cookies (đối với các tấn công liên quan đến UDP Amplification): Giúp giảm thiểu tác động của các cuộc tấn công khuếch đại UDP.
THỰC NGHIỆM
Xây dựng mô hình thực nghiệm
Mô hình thực nghiệm gồm ba máy: User, Server, và Attacker, kết nối qua một switch trong mạng nội bộ Máy User là thiết bị đầu cuối truy cập dịch vụ, trong khi máy Server cung cấp dịch vụ SSH và các giao thức mạng cần thiết Máy Attacker thực hiện các kỹ thuật tấn công như SSH Dictionary Attack, ARP Spoofing và UDP Flooding để đánh giá an toàn của hệ thống.