TÌM HIỂU VỀ IDS
Hệ thống IDS
Hệ thống IDS (Intrusion Detection System) là một công cụ giám sát lưu lượng mạng, có thể được triển khai dưới dạng phần cứng hoặc phần mềm Hệ thống này có khả năng phát hiện các hoạt động đáng ngờ và hành động xâm nhập trái phép trong quá trình tấn công mạng, như FootPrinting, Scanning và Sniffer IDS cung cấp thông tin quan trọng và đưa ra cảnh báo cho hệ thống và quản trị viên, giúp bảo vệ an toàn cho mạng.
Hệ thống IDS thu thập và phân tích thông tin từ nhiều nguồn trong hệ thống bảo vệ, nhằm phát hiện xâm nhập trái phép và cung cấp cảnh báo phù hợp.
Các hệ thống IDS có thể được đặt trước hoặc sau tường lửa, tùy theo mục đích sử dụng
Hình 1: Các hệ thống phát hiện tấn công xâm nhập
Chức năng của IDS
Giám sát dữ liệu mạng là một phần quan trọng trong việc phát hiện và ngăn chặn các hoạt động khả nghi Điều này bao gồm việc theo dõi các thiết bị và dịch vụ mạng, cũng như giám sát tài nguyên của hệ thống để đảm bảo an toàn và hiệu suất tối ưu.
Hệ thống giám sát lưu lượng giúp quản trị mạng theo dõi lưu lượng trao đổi giữa các thiết bị mạng như Router, Switch và Server Hoạt động trong thời gian thực, hệ thống này cung cấp thông tin về lưu lượng giao tiếp và tình trạng hoạt động của CPU, RAM thông qua các đồ thị trực quan Nhờ đó, người quản trị mạng có thể phân tích hiệu suất và tình trạng hoạt động của các thiết bị trong hệ thống một cách dễ dàng và hiệu quả.
Phân tích các gói tin mà firewall cho phép là bước quan trọng trong việc phát hiện và ngăn chặn tấn công mạng Bằng cách tìm kiếm các dấu hiệu tấn công đã biết hoặc phân tích các sự kiện bất thường, hệ thống có thể chủ động ngăn chặn các cuộc tấn công trước khi chúng gây ra hậu quả nghiêm trọng cho mạng.
1.2.3 Bảo vệ và cảnh báo
Hệ thống báo động đóng vai trò quan trọng trong việc giám sát mạng, giúp nhà quản trị nắm bắt tình trạng hoạt động của hệ thống mạng một cách hiệu quả Việc theo dõi và báo cáo tình trạng mạng là cần thiết để đảm bảo sự ổn định và an toàn cho hạ tầng công nghệ thông tin.
Cảnh báo có thể được lưu trữ trong file log hoặc cơ sở dữ liệu để nhà quản trị mạng dễ dàng theo dõi Ngoài ra, cảnh báo cũng có thể hiển thị trên màn hình khi đăng nhập, gửi qua email, tin nhắn điện thoại và nhiều phương thức khác.
Quy trình hoạt động của IDS
Bước 1: một host tạo ra gói tin mạng
Bước 2: các cảm biến trong mạng đọc gói tin trong khoảng thời gian trước khi nó được gửi ra khỏi mạng cục bộ
Bước 3: chương trình phát hiện nằm trong bộ cảm biến kiểm tra xem các gói tin nào có dấu hiệu vi phạm hay không
Bước 4: khi giao diện lệnh điều khiển nhận được cảnh báo nó sẽ gửi thông báo cho một người hoặc một nhóm đã được chỉ định từ trước
Bước 5: phản hồi được khởi tạo theo quy định ứng với xâm nhập này
Bước 6: cảnh báo được lưu lại để tham khảo trong tương lai
Bước 7: một báo cáo chi tiết của các sự cố được tạo ra
Bước 8: cánh báo được so sánh với các dữ liệu khác để xác định xem đây có phải cuộc tấn côn hay không
Hệ thống phát hiện xâm nhập dựa trên mạng (NIDS) là một công cụ quan trọng trong việc bảo vệ an ninh mạng, hoạt động bằng cách kiểm tra các luồng dữ liệu và giám sát nhiều máy trạm NIDS kết nối với các Hub và Switch để bắt các gói tin, phân tích nội dung của chúng và từ đó đưa ra các cảnh báo về các hoạt động đáng ngờ trong mạng.
Hình 2: Ví trí của NIDS trong hệ thống
1.3.3 Ưu điểm, Nhược Điểm của NIDS
Quản lý được cả một network segment (gồm nhiều host)
Cài đặt và bảo trì đơn giản, không ảnh hưởng đến mạng
Tránh DOS ảnh hưởng tới một host nào đó
Có khả năng xác định lỗi ở tang Network
Có thể sảy ra trường hợp báo động giả
không thể phân tích dữ liệu được mã hóa (VD: SSH, SSL, …)
NIDS đòi hỏi phải được cập nhật các singture mới nhất để thực sự an toàn
Có độ trễ giữa thời điểm bị tấn công và thời điểm phát hiện báo động
Hạn chế lớn nhất là giới hạn băng thông
Hệ thống phát hiện xâm nhập dựa trên máy chủ (HIDS) kiểm tra lưu lượng mạng đến máy trạm, bảo vệ máy trạm bằng cách ngăn chặn các gói tin nghi ngờ độc hại HIDS có khả năng theo dõi hoạt động đăng nhập, phát hiện các hành vi bất thường như dò tìm mật khẩu, leo thang đặc quyền và truy cập trái phép vào cơ sở dữ liệu Hệ thống này rất hiệu quả trong việc phát hiện người dùng truy cập sai tài nguyên, và nếu có hành vi không hợp pháp, HIDS sẽ nhanh chóng phát hiện và thu thập thông tin cần thiết.
Hình 3: Ví trí của HIDS trong hệ thống
1.3.4 Ưu điểm, Nhược Điểm của HIDS
Có khả năng xác định user liên quan đến event
Có khả năng phát hiện tấn công diễn ra trên một máy, NIDS thì không
Có thể phân tích dữ liệu mã hóa
Cung cấp các thông tin về host trong lúc cuộc tấn công diễn ra trên host này
Thông tin từ HIDS là không đáng tin cậy ngay khi sự tấn công vào host này thành công
Khi OS bị sập do tấn công, đồng thời HIDS cũng sập
HIDS phải được thiết lâp trên từng host cần giám sát
HIDS không có khả năng phát hiện các cuộc dò quét mạng (Nmap, Netcap,
HIDS cần tài nguyên trên host để hoạt động
HIDS có thể không hiệu quả khi bị DOS
Mô hình chung
Cấu trúc hệ thống IDS phụ thuộc vào kiểu phương pháp được sử dụng để phát
Cấu trúc hệ thống của IDS được xác định bởi phương pháp phát hiện xâm nhập được áp dụng, với các cơ chế xử lý đa dạng cho từng IDS Mô hình cấu trúc chung cho các hệ thống IDS sẽ phản ánh những yếu tố này.
Hình 4: Mô hình của hệ thống IDS
Cảm biến (sensor) đóng vai trò quan trọng trong việc phát hiện các sự kiện có thể đe dọa an ninh mạng Chúng thực hiện chức năng tiếp nhận và quét nội dung các gói tin trong mạng, so sánh với các mẫu có sẵn để nhận diện dấu hiệu tấn công.
Giao diệm (console) là bộ phận quan trọng giúp người quản trị tương tác, nhận lệnh để điều khiển hoạt động của Sensor và Engine, đồng thời thông báo về các cuộc tấn công.
Khối xử lý (engine) có chức năng ghi nhận tất cả các báo cáo từ các cảm biến về các sự kiện được phát hiện, lưu trữ chúng vào cơ sở dữ liệu Hệ thống này sử dụng các luật đã được định nghĩa để phân tích dữ liệu và từ đó đưa ra cảnh báo về các sự kiện an ninh cho hệ thống hoặc người quản trị.
Cơ chế hoạt động gồm hai cơ chế
Phát hiện xâm nhập dựa trên các bất thường (Anomaly instrusion detection)
Phát hiện xâm nhập dựa trên chữ ký hoặc phát hiện sự lạm dụng
(Signature-based / misuse instrusion detection)
Phương pháp này dựa trên giả thiết: các hành vi xâm nhập thường có quan hệ chặt chẽ với các hành vi bất thường
Quá trình xây dựng gồm hai giai đoạn:
Để xây dựng hồ sơ cho chế độ làm việc bình thường, cần tiến hành giám sát đối tượng trong điều kiện bình thường trong một khoảng thời gian đủ dài nhằm thu thập dữ liệu huấn luyện một cách hiệu quả.
Giám sát hành vi hiện tại của hệ thống và cảnh báo nếu có khác biệt rõ nét giữa hành vi hiện tại và hồ sơ của đối tượng
Phát hiện các cuộc tấn công biết trước
Phát hiện các cuộc tấn công nội gián hoặc đánh cắp tài khoản dễ dàng
Hệ thống được thiết kế với các cấu hình tùy chỉnh, điều này khiến cho kẻ tấn công khó xác định chính xác hoạt động nào sẽ kích hoạt cảnh báo và hoạt động nào không.
Phát hiện xâm nhập thông qua học máy
Phương pháp phát hiện bất thường yêu cầu tập dữ liệu huấn luyện lớn
Phát hiện bất thường tạo ra một số lượng lớn về cảnh báo sai đối với các hành vi chưa được dự đoán của người dung hay của mạng
Tỷ lệ cảnh báo sai tương đối cao so với phương pháp dựa trên lam dụng
Các phương pháp phát hiện bất thường
Máy trạng thái hữu hạn (Finite state machine)
Kĩ thuật khai phá dữ liệu (data mining)
1.4.4 Phát hiện xâm nhập lạm dụng
Bằng cách so sánh dấu hiệu các đối tượng đang quan sát với các dấu hiệu các hình thức xâm nhập đã biết trước
Hệ thống phát hiện xâm nhập lạm dụng xác định sự xâm nhập bằng cách kết hợp các sự kiện thu thập được với các mẫu hoặc dấu hiệu của các cuộc tấn công.
Có khả năng phát hiện tấn công, xâm nhập một cách hiệu quả
Tốc độ cao, yêu cầu tài nguyên tính toán tương đối thấp
Không có khả năng phát hiện tấn công, xâm nhập mới, do chữ ký của chúng chưa có trong cơ sở dữ liệu các chữ ký
Đòi hỏi nhiều công thức xây dựng và cập nhật cớ sở dữ liệu chữ ký/dấu hiệu tấn công, xâm nhập
GIỚI THIỆU SNORT
Tổng quan về Snort
Snort là một hệ thống IDS/IPS dạng NIDS, được Martin Roesch nghiên cứu và phát triển từ năm 1998 Kể từ năm 2013, Cisco đã mua lại Snort và tiếp tục phát triển công cụ này Snort là phần mềm mã nguồn mở, miễn phí, có thể cài đặt trên nhiều hệ điều hành phổ biến như Linux/Unix, Ubuntu, MacOS và Windows Kiến trúc của Snort được thiết kế theo kiểu module, cho phép người dùng dễ dàng thêm hoặc viết mới các module Hiện tại, Snort sở hữu hàng nghìn rule và được cập nhật thường xuyên bởi cộng đồng người dùng đông đảo.
Việc xác định vị trí đặt các hệ thống IDS như Snort phụ thuộc vào cấu trúc mạng và loại hoạt động xâm nhập mà chúng ta muốn phát hiện.
- Nếu chúng ta muốn phát hiện các hoạt động xâm nhập từ bên ngoài và ta chỉ có 1 bộ định tuyến đặt IDS ở trong Router hoặc FireWall
- Nếu chúng ta có nhiều đường dẫn đến Internet Đặt IDS tại mỗi điểm vào
- Vừa phát hiện cả ở bên trong và bên ngoài Đặt IDS tại mọi phân đoạn (network segment
Việc đặt nhiều IDS có thể dẫn đến chi phí cao và yêu cầu bảo trì phức tạp Do đó, số lượng và vị trí lắp đặt các IDS cần được xác định dựa trên mục đích sử dụng và chính sách của công ty.
Hình 5: Các vị trí điển hình để cài đặt Snort
Các chế độ hoạt động của Snort
2.2.1 Sniffer mode (chế độ đánh hơi) Đây là chế độ cơ bản nhất của mọi hệ thống NIDS Khi ở trong chế độ này, Snort sẽ phát hiện và hiển thị header của các gói tin: TCP, ICMP, UDP, IP, … Ra màn hình Chúng ta sử dụng lệnh: snort -v
Hiển thị thêm cả dữ liệu của người dùng: snort -vd
Hiển thị thêm cả header của lớp data link thì sử dụng tập lệnh: snort -vde
2.2.2 Packet logger mode (chế độ ghi log gói tin) Đây là chế độ làm việc mà Snort sẽ thực hiện ghi log lại các gói tin đã phát hiện được rồi sau đó lưu trữ lại trong kho lưu trữ log của Snort hoặc một ví trí lưu trữ khác mà người dùng cấu hình chỉ định Việc ghi log lại sẽ giúp cho chúng ta thực hiện theo dõi và truy vết sau này Snort sẽ tự động ghi lại log và lưu lại trong thư mục log (mặc định) khi chúng ta sử dụng lệnh sau: snort -dev -l/snort/log
là tên file log).
Sử dụng câu lệnh sau để thự hiện đọc lại file log đã được lưu: snort -r /snort/log/***.log (*** là tên file log)
2.2.3 NIDS mode (Network Intrusion Detection System Mode) Ở chế độ này, Snort không ghi lại từng gói tin đã bắt được như Sniffer mode Thay vào đó Snort áp dụng các quy tắc trên tất cả các gói được bắt Nếu một gói không khớp với bất kỳ quy tắc nào, gói tin đó sẽ bị loại bỏ (drop) và sẽ không thực hiện ghi lại log của gói này Khi sử dụng chế độ này trong Snort, chúng ta sẽ phải tùy chỉnh các cấu hình trong file snort.conf file này nằm trong folder etc của Snort File conf này sẽ chứa các các thông tin cấu hình về rule hoặc reference của Snort
Các thành phần của Snort
Bên trong Snort sẽ bao gồm module sau:
Packet Decoder (giải mã gói tin)
Detection Engine (công cụ phát hiện)
Logging and Alerting System (ghi log và cảnh báo)
Output Module (lưu trữ dữ liệu)
Hình 7: Thành phần của Snort
Khi các gói tin từ Internet đi vào hệ thống, chúng sẽ được xử lý qua nhiều module trong Snort Đầu tiên, gói tin sẽ được giải mã bởi module Packet Decoder Tiếp theo, các gói tin sẽ trải qua quá trình tiền xử lý tại module Preprocessors Sau khi hoàn tất, gói tin sẽ được kiểm tra bởi module Detection Engine, nơi mà quyết định về việc cho phép gói tin tiếp tục hay loại bỏ sẽ dựa vào cấu hình và các tập rule đã thiết lập Nếu gói tin được cho phép lưu thông, module Logging and Alerting System sẽ hiển thị cảnh báo và ghi log về các gói tin này Cuối cùng, module Output Module sẽ lưu trữ các cảnh báo đã được xác định.
Trước khi sử dụng Snort, chúng ta nên cài đặt các thư viện pcap để bắt mọi gói tin trên mạng lưu thông qua hệ thống
Hình 8: Thành phần của Snort
Mục tiêu của module này là xử lý dữ liệu trong các gói tin để hỗ trợ cho công cụ phát hiện (Detection Engine) Các nhiệm vụ chính của module bao gồm việc phân tích và xử lý thông tin để đảm bảo hiệu quả trong việc phát hiện các mối đe dọa.
Khi gửi một lượng dữ liệu lớn, thông tin không được đóng gói thành một gói tin duy nhất mà cần phải phân mảnh thành nhiều gói tin nhỏ hơn Snort, khi nhận các gói tin này, sẽ thực hiện quá trình ghép nối để tái tạo lại dữ liệu nguyên gốc.
Snort có các module tiền xử lý quan trọng giúp giải mã và chuẩn hóa giao thức, đảm bảo thông tin đầu vào được chỉnh sửa và sắp xếp hợp lý để phục vụ cho công cụ phát hiện (detection Engine) mà không bỏ sót thông tin nào Hiện tại, Snort hỗ trợ giải mã và chuẩn hóa cho nhiều giao thức mạng phổ biến như arp, rpc, http và telnet.
Module tiền xử lý phát hiện xâm nhập bất thường bằng cách so sánh các gói tin với các plug-in như RPC, HTTP và port scanning Các gói tin sẽ được kiểm tra hành vi để xác định xem có phù hợp với các hành vi đã được định nghĩa trong plug-in hay không Nếu gói tin khớp với hành vi đã nêu, chúng sẽ được chuyển đến module phát hiện để xử lý tiếp.
Module này phân tích các gói tin và so sánh với các dấu hiệu hoặc cấu hình trong các quy tắc đã được định nghĩa trước Dựa trên kết quả phân tích, module quyết định xem gói tin sẽ bị loại bỏ, tiếp tục hoặc có dấu hiệu xâm nhập Đây là module xương sống quan trọng của hệ thống IDS Snort.
Hệ thống của chúng ta nhận được nhiều thông tin từ lưu lượng mạng thông thường, điều này có thể ảnh hưởng đến hiệu suất hoạt động của Snort Ngoài ra, hiệu suất của Snort còn bị tác động bởi các yếu tố khác như số lượng quy tắc, tải trên mạng và khả năng của hệ thống cài đặt Snort.
2.3.4 Logging and Alert System Đầu vào của module này chính là đầu ra của các gói tin trong module trước nó Tùy thuộc vào việc module Detection Engine có nhận dạng gói tin này là gói tin xâm nhập hay không Nếu là gói tin xâm nhập, module sẽ thực hiện việc ghi log hoặc là đưa ra cảnh báo Snor phân loại 3 định logging như sau:
- Decoded: Dạng này log sẽ được xử lý thô nhằm tiết kiệm thời gian và cho phép thực hiện nhanh
Nhị phân tcpdump là một loại log được xử lý giống như tcpdump, cho phép ghi vào đĩa một cách nhanh chóng Loại log này rất phù hợp cho các hệ thống yêu cầu hiệu suất cao.
Cây thư mục IP là một cách tổ chức log theo cấu trúc cây, giúp sắp xếp thông tin một cách hệ thống Việc này không chỉ làm cho log trở nên dễ đọc mà còn giúp người dùng dễ dàng hiểu và truy cập thông tin hơn.
2.3.5 Ouput Đây là module cuối cùng trong cấu trúc các thành phần của Snort Mục tiêu của module này là lưu trữ các dữ liệu cuối cùng khi các gói tin vào trong Snort Tùy thuộc vào mong muốn cũng như cấu hình của chúng ta Module này sẽ thực hiện các nhiệm vụ như: Ghi log và lưu log vào cơ sở dữ liệu tập trung, Ghi log File, …
Rule
Tập rule trong Snort rất dễ viết, đọc hiểu và áp dụng, nhưng lại có sức mạnh lớn trong việc phát hiện hầu hết các xâm nhập vào mạng hệ thống Snort sẽ so sánh các gói tin đi vào với các quy tắc trong tập rule và thực hiện các hành động tương ứng để bảo vệ mạng.
Log: Tuỳ theo dạng ghi log mà ta chọn thì các gói tin sẽ được ghi log theo dạng đó
Alert: Sinh ra một cảnh báo tùy theo thông điệp (msg) mà ta muốn hiển thị khi cảnh báo
Pass: Snort cho phép gói tin đó đi qua và đi vào trong mạng của hệ thống
Tất cả các rule của Snort có cấu tạo đều gồm 2 phần: Header và Option:
Header chứa thông tin về hành động mà quy tắc sẽ thực hiện khi phát hiện xâm nhập trong gói tin, đồng thời bao gồm các tiêu chuẩn áp dụng quy tắc cho gói tin đó Trình tự ưu tiên của các hành động trong Snort là: kích hoạt (activation) → động (dynamic) → cảnh báo (alert) → bỏ qua (pass) → ghi log (log).
Option bao gồm một thông điệp cảnh báo (msg) cùng với thông tin về các phần của gói tin cần thiết để tạo ra cảnh báo Bên cạnh đó, Option cũng chứa các tiêu chuẩn phụ để đối chiếu luật với gói tin.
Hình 9: Thành phần của Snort
Hình 10: Thành phần của một rule
Trong Snort tồn tại 4 Option chính:
General rule options (các tùy chọn quy tắc chung)
Hình 11: Thành phần của một rule
Payload detection rule options (các tùy chọn quy tắc phát hiện payload)
Hình 12: Thành phần của một rule
Non payload detection rule options (các tùy chọn quy tắc phát hiện không payload)
Hình 13: Thành phần của một rule
Post-Detection rule options (tùy chọn quy tắc sau phát hiện)
Hình 14: Thành phần của một rule
CÀI ĐẶT VÀ THỬ NGHIỆM
Cài đặt và cấu hình
Để Snort hoạt động như một hệ thống IDS/IPS, trước tiên cần cấu hình file snort.conf trong thư mục Snort\etc\snort.conf sau khi tải Snort từ trang chủ.
Để bảo vệ hệ thống, trước tiên cần thiết lập địa chỉ mạng, bao gồm việc thay đổi "any" thành địa chỉ IP hoặc dải địa chỉ của máy cần bảo vệ.
Hình 15: Đổi địa chỉ IP
Thiết lập đường dẫn đến thư mục chứa các tập rule
Hình 16: Thiết lập đường dẫn đến thư mục chứa các tập rule
Thiết lập đường dẫn đến thư mục chứa các file ghi log
Hình 17: Thiết lập đường dẫn đến thư mục chứa các tập rule
Thiết lập đường dẫn tới các thư mục dynamicpreprocessor với dynamicengine
Hình 18: Thiết lập đường dẫn đến thư mục dynamicpreprocessor với dynamicengine
Comment những dòng sau khi chạy Snort ở chế độ IDS
Hình 19: Thiết lập đường dẫn đến thư mục dynamicpreprocessor với dynamicengine
Xác định interface number của máy chạy Snort, sử dụng câu lệnh: snort -W
Hình 20: Thiết lập đường dẫn đến thư mục dynamicpreprocessor với dynamicengine
Hình 21: Xác định interface number của máy chạy Snort
Chạy Snort ở chế độ IDS/IPS với câu lệnh: snort -i 6 -c c:\Snort\etc\snort.conf -A console (6 là interface number mạng của hệ thống chạy Snort)
Hình 22: Chạy Snort ở chế độ IDS thành công.
Demo và thử nghiệm
To set up a virtual machine with Kali Linux, configure the IP address to 192.168.0.109 Install Snort for network intrusion detection and utilize the slowhttptest tool to execute a SYN flood DOS attack Additionally, employ Hping3 to carry out an ICMP flood DOS attack Ensure to modify the snort.config file for optimal performance.
Máy nạn nhân o Ip: 192.168.0.104 o Cài đặt xampp, bật máy chủ server Apache
Hình 24: Máy chủ Apache nạn nhân
Do sử dụng máy ảo để làm nên ở nhóm em sẽ demo trên máy kali cài Snort
Khi Snort đã sẵn sàng để chạy, điều quan trọng là phải tải các quy tắc cần thiết Để phát hiện một cuộc tấn công DoS, chúng ta cần viết các quy tắc phù hợp Bạn có thể mở tệp local.rules trong trình soạn thảo văn bản với quyền root bằng lệnh: sudo gedit /etc/snort/rules/local.rules.
Sau đó, chúng tôi nhập như sau: alert icmp any any -> $HOME_NET any (msg:"ICMP flood"; sid:1000001; rev:1; classtype: icmp-event; detection_filter:track by_dst, count 500, seconds 3;)
Hình 25: Cài rule cho IDS IMCP Flood Đây là quy tắc của câu lệnh này
alert: Hành động quy tắc Snort sẽ tạo cảnh báo khi điều kiện đã đặt được đáp ứng
any: IP nguồn Snort sẽ xem xét tất cả các nguồn
any: Cổng nguồn Snort sẽ xem xét tất cả các cổng
- >: Phương hướng Từ nguồn đến đích
$HOME_NET: IP đích Chúng tôi đang sử dụng giá trị HOME_NET từ tệp snort conf
any: Cảng đích Snort sẽ xem xét tất cả các cổng trên mạng được bảo vệ Rule Options
msg:” ICMP flood”: Snort sẽ bao gồm thông báo này cùng với cảnh báo
ID quy tắc ngắn bắt đầu từ 1000001, vì tất cả các số nhỏ hơn 1.000.000 đều được đặt trước Bạn có thể sử dụng bất kỳ số nào miễn là nó lớn hơn 1.000.000.
rev:1: Số sửa đổi Tùy chọn này cho phép duy trì quy tắc dễ dàng hơn
classtype: icmp-event: Phân loại quy tắc dưới dạng “icmp-event”, một trong các danh mục Snort được xác định trước Tùy chọn này giúp tổ chức quy tắc
detection_filter: track by_dst: Snort theo dõi địa chỉ IP đích để phát hiện
count 500: Nếu trong khoảng thời gian lấy mẫu, Snort phát hiện hơn 500 yêu cầu thì chúng tôi sẽ nhận được cảnh báo
seconds 3: thời gian lấy mẫu được đặt thành 3 giây
Bây giờ, hãy bắt đầu Snort ở chế độ IDS và yêu cầu nó hiển thị cảnh báo cho bảng điều khiển: sudo snort -A console -c /etc/snort/snort.conf -i eth0
Chúng ta đang chạy Snort với tệp cấu hình được chỉ định (-c) và giao diện mạng (-i eth0) để giám sát ICMP Tùy chọn -A cho phép hiển thị cảnh báo ra đầu ra tiêu chuẩn Tuy nhiên, không có đầu ra nào được hiển thị khi lệnh được nhập vì Snort không phát hiện hoạt động nào theo quy tắc đã thiết lập Để kiểm tra tính hiệu quả của quy tắc, chúng ta tạo ra một số hoạt động và khởi động máy ảo của mình.
Sau đó ta sử dụng công cụ Hping3 để tiến hành tấn công IMCP flood trên máy nạn nhân bằng lệnh: hping3 -1 flood -a 192.168.0.109 192.168.0.104
Hình 27: Thực hiện tấn công máy nạn nhân
Các cảnh báo sẽ được tạo ra cho mọi yêu cầu phản hồi ICMP khi số lượng vượt quá giá trị đã chỉ định trong khoảng thời gian lấy mẫu, kèm theo thông báo mà chúng ta đã thiết lập trong tùy chọn tin nhắn.
Hình 28: Snort xuất cảnh báo ICMP Flood
Chúng tôi cũng có thể thấy địa chỉ IP nguồn của máy chủ chịu trách nhiệm về hoạt động tạo cảnh báo
In the updated local.rules file, a new rule has been implemented to detect potential Denial of Service (DoS) attacks, specifically SYN flood attacks The rule triggers an alert for TCP traffic directed towards port 80 within the home network, activating when 20 SYN packets are received within a 10-second interval This proactive measure enhances network security by monitoring for unusual traffic patterns indicative of SYN flood attempts.
Hình 30: Rule cho cảnh báo SYN Flood
Trong quy tắc này, giao thức đã được thay đổi thành TCP với cổng đích là 80 Cờ từ khóa kiểm tra sự hiện diện của cờ TCP cụ thể (cờ SYN) Thời gian lấy mẫu được thiết lập là 10 giây, và nếu trong khoảng thời gian này phát hiện hơn 20 yêu cầu, chúng tôi sẽ nhận được cảnh báo.
Chạy snort như bước ở trên Ở đây ta sẽ sử dụng công cụ slowhttptest thực hiện tấn công bằng lệnh:
- c là số lượng kết nối
- i là khoảng thời gian truyền giữa các dữ liệu
- r là kết nối mỗi giây
- x độ dài ngân nhiên gửi đi trên header hoặc body của request
- p thời gian chờ phản hồi HTTP trên kết nối thăm dò, sau đó máy chủ được coi là không thể truy cập được sudo slowhttptest -c 140 -H -g -o /output_file -i 10 -r 200 -t GET -u http://192.168.0.104/ -x 24 -p 2
Kết quả từ việc sử dụng slowhttptest cho thấy dịch vụ của máy chủ nạn nhân vẫn hoạt động và có thể truy cập được Tuy nhiên, khi tăng số lượng kết nối lên 500, người dùng không thể truy cập vào trang máy chủ Lệnh sử dụng để thực hiện thử nghiệm này là: sudo slowhttptest -c 500 -H -g -o /output_file -i 10 -r 200 -t GET -u http://192.168.0.104/ -x 24 -p 2.
Hình 32: Tấn công làm ngừng service của nạn nhân
Ta thu được kết quả tại bên màn console của snort thông báo tấn công SYN Flood
Hình 33: Kết quả thu được của snort phát hiện SYN Flood
Kết quả thu được của snort phát hiện SYN Flood
Ta sẽ thêm một file rules mới có tên là XSS-injection.rules trong folder fules với các luật như sau:
Hình 34 Luật trong rules XSS-injection
Chạy lệnh snort để bắt đầu ở chế độ IDS:
“snort -c C:\Snort\etc\snort.conf -A console -i 6”
Để khởi chạy Snort với các quy tắc mới, chúng ta cần chỉ định tệp cấu hình bằng tùy chọn (-c) và giao diện mạng bằng (-i eth0) Tùy chọn -A sẽ hiển thị cảnh báo ra đầu ra tiêu chuẩn Trong lần chạy đầu tiên, không có đầu ra nào xuất hiện vì Snort không phát hiện hoạt động nào theo quy tắc đã định Để kiểm tra hiệu quả của các quy tắc, chúng ta thực hiện tấn công XSS vào webserver và theo dõi màn hình cảnh báo Trong demo này, chúng ta sẽ sử dụng DVWA được cài đặt trên máy Snort để giám sát, sau đó vào XAMPP để bật Apache và MySQL Cuối cùng, mở cmd và gõ ipconfig để xem địa chỉ IP của máy Snort.
Hình 36 IP của máy cài snort Ở máy ảo Ubuntu thực hiện vào trang DVWA trên máy snort và chọn XSS( Reflected)
Hình 37 Khởi chạy DVWA trên máy ubuntu
Thực hiện nhập “?name=alert("XSS");” trên máy
Ubuntu ta sẽ có kết quả như sau:
Hình 38 Kết quả sau khi tấn công XSS trên máy Ubuntu
Và đây là các cảnh báo được snort đưa ra: