Snort là gì
Bài 3: Xây dựng hệ thống IDS cùng với Snort
Snort là một ứng dụng IDS mã mối cung cấp mở, chuyển động trên những hệ điều hành trong số đó có Linux với Windows. Bài xích này thực hiện cài đặt và vận hành Snort như 1 IDS cơ chế network-based với host-based. Công việc thực hiện tại như sau:
cách 1: setup Snort. Bước 2: vận hành Snort chính sách IDS. Bước 3: tạo luật dễ dàng cảnh báo tróc nã nhập từ mặt ngoài. Cách 4: lưu ý truy nhập từ bên phía trong đến một nội dung nhạy cảm. Cách 5: lưu ý quét cổng (port scan) với preprocessor sfportscan. bước 1: thiết lập SnortCài đặt những thư viện phần mềm cần thiết:
Thực hiện các bước download mã nguồn, dịch mã nguồn và setup tiếp theo như khuyên bảo trên home Snort:
Bạn đang xem: Snort là gì
Sau khi thiết đặt thành công, Snort tất cả thể vận động ở 3 chế độ:
Package sniffer: hiển thị thông tin header những gói tin Package log: ghi lại các tin tức vào tệp tin log nhằm xử lý về sau IDS: phân tích các gói tin hoặc những luồng TCP, thực hiện các tác dụng IDS theo qui định signature-based.Kiểm tra Snort vận động ở chính sách package sniffer với thông số -dev. Trong lúc chạy Snort ở chính sách này, thực hiện ping mang đến Google, ta sẽ thấy Snort bắt được các gói tin ICMP Echo với Reply rồi hiển thị thông tin các gói tin này lên màn hình.
Lưu ý rằng tệp tin log được lưu lại ở dạng nhị phân, theo kết cấu các gói tin. Rất có thể dụng lệnh file nhằm kiểm tra kết cấu của tệp tin nhị phân này: Để phát âm file này, yêu cầu sử dụng phần mềm tcpdump. Có thể thấy tác dụng hiển thị những gói tin lúc đầu là thương mại dịch vụ ARP nhằm xác định add MAC từ add IP lúc trạm thao tác làm việc cần gửi gói tin ra Gateway. Tiếp theo là các gói tin dịch vụ DNS để xác định add IP của Google. Cuối cùng là những gói tin ICMP Echo với Reply của lệnh ping: Trong chế độ này, Snort thực hiện kiểm soát và điều hành các gói tin và triển khai các phản nghịch ứng theo các luật được khai báo trước. Các file thông số kỹ thuật của Snort được để trong folder /etc/snort. Nên copy toàn bộ các file cấu hình mặc định trong thư mục cài đặt (snort-2.9.8.3/etc) vào folder này: File cấu hình để vận hành Snort cơ chế IDS là /etc/snort/snort.conf. đề nghị sửa đổi một số thông số như sau: Sau khi tùy chỉnh các thông số, file thông số kỹ thuật snort.conf có dạng sau: # phối up the external network addresses. Leave as "any" in most situations ipvar EXTERNAL_NET !$HOME_NET . . . # Path lớn your rules files (this can be a relative path) # lưu ý for Windows ktktdl.edu.vn: You are advised to make this an absolute path, # such as: c:snort
ules var RULE_PATH ./rules . . . # path khổng lồ dynamic rules libraries # dynamicdetection directory /usr/local/lib/snort_dynamicrules . . . # my rules include $RULE_PATH/myrules.rules # site specific rules # include $RULE_PATH/local.rules # include $RULE_PATH/app-detect.rules . . . var WHITE_LIST_PATH ./rules var BLACK_LIST_PATH ./rules Khi khởi cồn Snort, khoác định nó đề xuất đọc các file white_list.rules và black_list.rules để xử lý những trạm thuộc list white với black. Tạm thời ta chưa xử trí gì đặc biệt quan trọng đối với những trạm white và black bắt buộc tạo 2 file rỗng tương ứng. Tương tự, file myrules.rules cũng không được định nghĩa nguyên tắc nào: Sau khi chuẩn bị các file thông số kỹ thuật làm việc, chạy Snort chế độ IDS với yêu cầu bắt gói tin trên liên kết mạng eth2. Giả dụ thành công, Snort bước đầu thực hiện bắt gói tin bằng dòng thông báo “Commencing packet processing (pid=23464)”: --== Initializing Snort ==-- . . . Acquiring network traffic from "eth2". Reload thread starting... Reload thread started, thread 0x7f3ee96d0700 (23465) Decoding Ethernet --== Initialization Complete ==-- Rules Engine: SF_SNORT_DETECTION_ENGINE Version 2.6 Preprocessor Object: SF_SIP Version 1.1 Preprocessor Object: SF_POP Version 1.0 Preprocessor Object: SF_SDF Version 1.1 Preprocessor Object: SF_FTPTELNET Version 1.2 Preprocessor Object: SF_IMAP Version 1.0 Preprocessor Object: SF_REPUTATION Version 1.1 Preprocessor Object: SF_SSH Version 1.1 Preprocessor Object: SF_DNP3 Version 1.1 Preprocessor Object: SF_DCERPC2 Version 1.0 Preprocessor Object: SF_SMTP Version 1.1 Preprocessor Object: SF_GTP Version 1.1 Preprocessor Object: SF_DNS Version 1.1 Preprocessor Object: SF_SSLPP Version 1.1 Preprocessor Object: SF_MODBUS Version 1.1 Commencing packet processing (pid=23464) Snort đã quản lý ở chế độ IDS thành công. Bước tiếp theo sau là khai báo những luật cách xử trí cho Snort. Ta bắt đầu với luật đơn giản nhất - phát hiện nay các truy cập từ bên phía ngoài với ssh hoặc ping. a) phạt hiện truy vấn ssh trả sử cần lưu ý khi xuất hiện thêm truy nhập ssh xuất phát từ một máy làm việc xa vào HOME_NET. Qui định được tùy chỉnh thiết lập trong file myrules.rules như sau: Cú pháp của khí cụ này như sau: Trong lúc Snort đang quản lý ở cơ chế IDS, xuất phát từ 1 trạm như thế nào đó thực hiện kết nối ssh vào sever 192.168.2.10, một thông điệp lưu ý sẽ được gửi đến file log: b) phân phát hiện liên kết ping tất cả thể bổ sung luật new để phát hiện nay ai đó đã ping vào hệ thống: Khởi cồn lại Snort và dùng một trạm không giống ping đến showroom 192.168.2.10. Công dụng cảnh báo như sau: Cần kiểm soát điều hành các trạm ở trong HOME_NET và phát hiện tại trạm nào truy nhập đến một ngôn từ nhạy cảm không được phép. Lấy ví dụ đưa định ngôn từ nhạy cảm là “terrorism” (khủng bố). Tất cả thể thiết lập cấu hình luật kiểm tra các truy nhập từ bên trong đến câu chữ này và chú ý như sau: Khởi hễ lại Snort cơ chế IDS và chất vấn file lưu ý /var/log/snort/alert. Trường hòa hợp luật lưu ý không phát hiện được lúc truy nhập cho trang web, trong số những lý bởi là Snort ko bắt được gói tin nhờ cất hộ đi trong những khi tực tế trang web vẫn được truy nhập cùng hiển thị trong browser. Lý do phổ biến là sự việc offload checksum. Trước khi gửi gói tin, mặt truyền cần thống kê giám sát checksum và gửi vào ngôi trường checksum của gói tin. Nếu thẻ mạng có công dụng tính toán checksum, ứng dụng ứng dụng sẽ không còn tính checksum nữa mà đưa gói tin tất cả trường checksum bằng 0 xuống cho thẻ mạng xử lý. Thư viện libpcap (thư viện ứng dụng bắt gói tin bên trên Linux) chuyển động ở giữa phần áp dụng và card mạng do thế khi mừng đón gói tin đã thấy checksum chưa hợp lệ và không xử trí gói tin này. Dẫn đến vẻ ngoài alert ko được thực thi. Hoàn toàn có thể chạy Snort cùng với thám số -k none để thông báo Snort không đánh giá trường checksum: Uptime guess: 0.171 days (since Fri Oct 21 00:51:40 2016) Network Distance: 1 hop TCP Sequence Prediction: Difficulty=257 (Good luck!) IP ID Sequence Generation: All zeros Service Info: OS: Unix TRACEROUTE HOP RTT ADDRESS 1 0.47 ms 192.168.2.10 Read data files from: /usr/share/nmap OS & Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 19.26 seconds Raw packets sent: 1111 (52.918KB) | Rcvd: 1079 (46.702KB) Trên Windows, phiên phiên bản đồ họa của nmap có tên zenmap được cho phép quét cổng của sản phẩm nạn nhân cùng hiển thị tất cả các thông số kỹ thuật liên quan đến những dịch vụ đang làm việc trên đồ vật nạn nhân.
bước 3: Luật dễ dàng cảnh báo truy hỏi nhập từ phía bên ngoài
bước 4: chú ý truy nhập từ bên trong đến một văn bản nhạy cảm
alert tcp $HOME_NET any -> $EXTERNAL_NET 80 (msg:"terrorism contact!"; content:"terrorism"; nocase; sid:10003;)
Xem thêm: Văn Biểu Cảm Và Cách Làm Bài Văn Biểu Cảm, Soạn Bài Đề
Tiếp theo, dung website browser kiếm tìm kiếm một website nào đó có tên chứa từ bỏ khóa terrorism, đưa sử là http://www.merriam-webster.com/dictionary/terrorism. Click vào links để truy nhập đến website này. Lưu ý sẽ được phạt ra:
cách 5: chú ý quét cổng (port scan) cùng với preprocessor sfportscan
Xem thêm: Dris, Rda Là Gì ? Rta Là Gì ? So Sánh Rda Và Rta Rba, Rda, Rdta, Rta Là Gì
Nguyên lý hoạt động vui chơi của các mức sử dụng quét cổng là lần lượt nhờ cất hộ gói tin đặc trưng (chẳng hạn TCP SYN) đến tất cả các cổng của sản phẩm nạn nhân và hóng gói tin trả về. Một thương mại & dịch vụ đang vận động tại cổng tương xứng không sáng tỏ được đó là một liên kết từ trạm sử dụng thông thường hay là một hành vi trong cuộc tiến công quét cổng, do vậy sẽ vấn đáp bằng một gói tin phù hợp (ví dụ, cùng với TCP SYN vẫn là SYN ACK). Dựa vào tác dụng trả về này, phương tiện quét cổng khẳng định được dịch vụ đang “nghe” trên vật dụng nạn nhân và tiếp tục gửi các gói tin cân xứng khác để trinh sát thêm tin tức về dịch vụ thương mại tương ứng. Để phát hiện và chú ý một cuộc tấn công quét cổng như vậy, các luật dễ dàng kiểm tra thông tin của từng gói tin riêng rẽ rẽ sẽ không xử lý được. Snort hỗ trợ cơ chế preprocessor và các luật prepresessor để phát hiện những dạng tấn công “tổ hợp” như vậy. Một biện pháp khái quát, preprocessor là phương pháp Snort đồng ý thêm các modul (plugin) tiền cách xử trí gói tin. Các modul này được fan dùng setup thêm (bằng cách sử dụng thư viện hàm Snort API) với gắn vào Snort để dìm được các gói tin và xử lý chúng trước lúc gói tin được chuyển đến máy giải pháp xử lý trung trọng điểm của Snort. Tùy từng từng mục tiêu riêng nhưng mỗi modul rất có thể kiểm tra những thông tin vào gói tin, chuyển đổi các thông tin này, rồi chuyển đến Snort xử lý. Một ví dụ là modul xử lý các gói tin tiến công dịch vụ web. Trả sử vùng chứa các script website admin (cần được bảo về) được để ở URL http://example.com/admin cùng Snort được tùy chỉnh cấu hình cảnh báo hoặc cấm truy tìm nhập từ bên phía ngoài đến URL này. Mặc dù nhiên, một số trong những biến thể của URL đang cho hiệu quả tương tự, ví dụ như http://example.com/./admin. Modul chuẩn hóa các gói tin HTTP thiết đặt dạng preprocessor sẽ chất vấn và chuyển toàn bộ các biến chuyển thể URL này trở thành URL đúng với chuyển đến Snort xử lý. Sơ đồ dưới mô tả vai trò với vị trí của các preprocessor trong phong cách xây dựng Snort.

Với tiến công quét cổng, preprocessor sfportscan vẫn được cải cách và phát triển để xử lý. Nó tích lũy nhiều gói tin và phân tích sự tương quan giữa những gói tin này để ra quyết định chúng có phải là chuối những gói tin quét cổng giỏi không. Để kích hoạt preprocessor này, quan trọng lập tham số cấu hình sfportscan và include tập phương pháp preprocessor.rules vào /etc/snort/snort.conf:
C2 tmp># cat /etc/snort/snort.conf | grep sfportscan # Portscan detection. For more information, see README.sfportscan preprocessor sfportscan: proto all scan_type all sense_level low
Khởi hễ lại Snort và thực hiện quét cổng xuất phát từ một máy khác bởi nmap như mô tả bên trên. Cuộc tiến công quét cổng sẽ tiến hành Snort phân phát hiển và cảnh báo: