Phần 1: Lý Thuyết về Snort
I.NIDS LÀ GÌ:
NIDS viết tắt cụm từ A network
intrusion detection system (NIDS). Mục đích sử dụng NIDS là để bảo vệ hệ thống
bên trong, ngăn chặn và cảnh báo các cuộc tấn công từ bên ngoài vả các lệnh
remote từ bên ngoài vào hệ thống BO (back office).
II.SNORT LÀ GÌ:
Snort là một NIDS được Martin
Roesh phát triển dưới mô hình mã nguồn mở. Tuy Snort miễn phí nhưng nó lại có rất
nhiều tính năng tuyệt vời mà không phải sản phẩm thương mại nào cũng có thể có
được. Nó xây dựng để phát hiện và chống xâm nhập . Được thiết kế trên module để
kiểm tra các gói dữ liệu vào và ra bằng cách tạo các rule phát hiện các gói dữ
liệu bất thường. Snort có thể chạy trên nhiều hệ thống nền như Windows, Linux,
OpenBSD, FreeBSD, NetBSD, Solaris, HP-UX, AIX, IRIX, MacOS.
Snort còn có thể được cấu hình để
chạy như một NIDS. Snort hỗ trợ khả năng hoạt động trên các giao thức sau:
Ethernet, 802.11,Token Ring, FDDI, Cisco HDLC, SLIP, PPP, và PF của OpenBSD.
III. CẤU TRÚC CỦA SNORT
Snort bao gồm nhiều thành phần, với
mỗi phần có một chức năng riêng.
Các phần chính đó là:
• Môđun giải mã gói tin (Packet
Decoder)
• Môđun tiền xử lý
(Preprocessors)
• Môđun phát hiện (Detection
Engine)
• Môđun log và cảnh báo (Logging
and Alerting System)
• Môđun kết xuất thông tin
(Output Module)
Kiến trúc của Snort được mô tả trong hình sau:
1. MODULE
GIẢI MÃ GÓI TIN
Ethernet sẽ được giải mã thế nào:
Bắt các
gói dữ liệu các nhau của tầng network (ethernet,SLIP, PPP....)
Một gói
tin sau khi được giải mã sẽ được đưa tiếp vào môđun tiền xử lý.
2.MODULE TIỀN XỬ LÝ:
Chuẩn bị dữ liệu cho hệ thống phân tích → phát hiện dữ liệu bất thường dựa vào
header của gói tin → chống
phân mảnh gói tin → giải mã HTTP URI → lắp ráp lại các gói (TCP, UDP ..)
phân mảnh gói tin → giải mã HTTP URI → lắp ráp lại các gói (TCP, UDP ..)
3. MODULE PHÁT HIỆN
hiện sử dụng các rule định nghĩa trước để so sánh với dữ liệu thu thập được từ đó xác định xem có hợp lệ
hay không. Một môđun phát hiện cũng có khả năng tách các phần của gói tin ra và áp dụng các luật lên từng
phần nào của gói tin đó. Các phần đó có thể là:
• IP
header
• Header
ở tầng giao vận: TCP, UDP
• Header
ở tầng ứng dụng: DNS header, HTTP header, FTP header, ...
• Phần
tải của gói tin (bạn cũng có thể áp dụng các luật lên các phần dữ liệu được
truyền đi của gói tin)
chú ý:
các rule có chế độ ưu tiên nếu một gói tin bị áp dụng bởi nhiều rule thì nó chỉ
thực hiện một rule có thứ
tự ưu tiên nhất
tự ưu tiên nhất
4.Logging and Alerting System
Tùy thuộc vào việc môđun Phát hiện có nhận dạng đuợc xâm nhập hay không mà gói
tin có thể bị ghi log
hoặc đưa ra cảnh báo. Các file log là các file text dữ liệu trong đó có thể được ghi dưới nhiều định
dạng khác nhau chẳng hạn tcpdump.
hoặc đưa ra cảnh báo. Các file log là các file text dữ liệu trong đó có thể được ghi dưới nhiều định
dạng khác nhau chẳng hạn tcpdump.
5. MODULE XUẤT THÔNG TIN
Xuất các thông tin ra các định dang khác nhau tùy theo ta cấu hình
III. NGUYÊN TẮC CÁC RULE
Rule có 2
phần phần header và option hình:

• Phần Header chứa thông tin về
hành động mà luật đó sẽ thực hiện khi phát hiện ra có xâm nhập nằm
trong gói tin và nó cũng chứa các tiêu chuẩn để áp dụng luật với gói tin đó.
trong gói tin và nó cũng chứa các tiêu chuẩn để áp dụng luật với gói tin đó.
• Phần Option chứa một thông điệp
cảnh báo và các thông tin về các phần của gói tin dùng để tạo nên
cảnh báo. Phần Option chứa các tiêu chuẩn phụ thêm để đối sánh luật với gói tin. Một luật có thể phát
hiện được một hay nhiều hoạt động thăm dò hay tấn công. Các luật thông minh có khả năng áp dụng
cho nhiều dấu hiệu xâm nhập.
cảnh báo. Phần Option chứa các tiêu chuẩn phụ thêm để đối sánh luật với gói tin. Một luật có thể phát
hiện được một hay nhiều hoạt động thăm dò hay tấn công. Các luật thông minh có khả năng áp dụng
cho nhiều dấu hiệu xâm nhập.
Hành động của luật (Rule Action) nort thì tất cả các luật sẽ được
áp dụng gói tin đó.
• Pass: Hành động này hướng dẫn
Snort bỏ qua gói tin này. Hành động này đóng vai trò quan trọng
trong việc tăng cường tốc độ hoạt động của Snort khi mà ta không muốn áp dụng các kiểm tra trên
các gói tin nhất định. Ví dụ ta sử dụng các bẫy (đặt trên một máy nào đó) để nhử các hacker tấn công
vào thì ta phải cho tất cả các gói tin đi đến được máy đó. Hoặc là dùng một máy quét để kiểm tra độ
an toàn mạng của mình thì ta phải bỏ qua tất cả các gói tin đến từ máy kiểm tra đó.
trong việc tăng cường tốc độ hoạt động của Snort khi mà ta không muốn áp dụng các kiểm tra trên
các gói tin nhất định. Ví dụ ta sử dụng các bẫy (đặt trên một máy nào đó) để nhử các hacker tấn công
vào thì ta phải cho tất cả các gói tin đi đến được máy đó. Hoặc là dùng một máy quét để kiểm tra độ
an toàn mạng của mình thì ta phải bỏ qua tất cả các gói tin đến từ máy kiểm tra đó.
• Log: Hành động này dùng để log
gói tin. Có thể log vào file hay vào cơ sở dữ liệu tuỳ thuộc vào nhu
cầu của mình.
cầu của mình.
• Alert: Gửi một thông điệp cảnh
báo khi dấu hiệu xâm nhập được phát hiện. Có nhiều cách để gửi
thông điệp như gửi ra file hoặc ra một Console. Tất nhiên là sau khi gửi thông điệp cảnh báo thì gói tin
sẽ được
thông điệp như gửi ra file hoặc ra một Console. Tất nhiên là sau khi gửi thông điệp cảnh báo thì gói tin
sẽ được
log lại.
• Activate: sử dụng để tạo ra một
cảnh báo và kích hoạt một luật khác kiểm tra thêm các điều kiện
của gói tin.
của gói tin.
• Dynamic: chỉ ra đây là luật được
gọi bởi các luật khác có hành động là Activate.
IV.
SNORT HOẠT ĐỘNG Ở TẦNG NÀO
Nguồn: Sưu tầm
Ví dụ rule đơn giản:
Alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg : “NAY THI PING NAY”; dsize : > 100MB ; reference: hvaonline.net)
Phần 2: Cài đặt
Alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg : “NAY THI PING NAY”; dsize : > 100MB ; reference: hvaonline.net)
Phần 2: Cài đặt
#yum update -y
#yum install libdnet
#wget http://www.tcpdump.org/release/libpcap-1.1.1.tar.gz
#tar -zxvf libpcap-1.1.1.tar.gz
#cd libpcap-1.1.1
#yum install flex
#yum install bison
#./configure
#make
#make install
#yum install libpcap*
#yum install rpm-build
#yum install make gcc
#cd ..
#yum-builddep daq-2.0.2-1.src.rpm
#rpmbuild --rebuild daq-2.0.2-1.src.rpm
#yum localinstall ~/rpmbuild/RPMS/i386/daq-2.0.2-1.i386.rpm
#yum install http://mirrors.neterra.net/epel/6/i386/epel-release-6-8.noarch.rpm
#yum install libdnet-devel zlib-devel
#rpmbuild --rebuild snort-2.9.6.1-1.src.rpm
#yum-builddep snort-2.9.6.1-1.src.rpm
#rpmbuild --rebuild snort-2.9.6.1-1.src.rpm
#yum localinstall ~/rpmbuild/RPMS/i386/snort-2.9.6.1-1.i386.rpm
Không có nhận xét nào:
Đăng nhận xét