Tải bản đầy đủ (.docx) (63 trang)

Tiểu luận môn học an ninh mạng Cấu hình hệ thống IDS

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.13 MB, 63 trang )

Cấu hình hệ thống IDS
Giảng Viên Hướng dẫn : CH . Nguyễn Duy
08520292 Phạm Phú Phúc
08520435 Nguyễn Thành Trung
08520530 Trương Thị Thùy Duyên
08520548 Lê Kim Hùng
Contents
1. Lý thuyết
1.1. Tổng Quan IDS
1.1.1. Khái Niệm
IDS- Intrusion Detection System/ Hệ thống phát hiện xâm phạm
IDS là một hệ thống phòng chống, nhằm phát hiện các hành động tấn công vào một mạng.
Mục đích của nó là phát hiện và ngăn ngừa các hành động phá hoại đối với vấn đề bảo
mật hệ thống, hoặc những hành động trong tiến trình tấn công như sưu tập, quét các cổng.
Một tính năng chính của hệ thống này là cung cấp thông tin nhận biết về những hành
động không bình thường và đưa ra các báo cảnh thông báo cho quản trị viên mạng khóa
các kết nối đang tấn công này. Thêm vào đó công cụ IDS cũng có thể phân biệt giữa
những tấn công bên trong từ bên trong tổ chức (từ chính nhân viên hoặc khách hàng) và
tấn công bên ngoài (tấn công từ hacker).
Các thành phần chính của IDS:
- Trung tâm điều khiển (The Command Console)
- Bộ cảm biến (Network Sensor)
- Bộ phân tích gói tin(Network Trap)
- Thành phần cảnh báo (Alert Notification)
1.1.2. Phân Loại
Cách thông thường nhất để phân loại các hệ thống IDS (cũng như IPS) là dựa vào đặc
điểm của nguồn dữ liệu thu thập được. Trong trường hợp này, các hệ thống IDS được chia
thành các loại sau:
1.1.2.1. Network-based IDS (NIDS)
Hệ thống IDS để bảo vệ cả hệ thống mạng , được sử dụng như một Gateway . Nhiệm
vụ là ngăn chặn và quản lí các gói tin trước khi chúng được chuyển vào hệ thống .


Sử dụng dữ liệu trên toàn bộ lưu thông mạng, cùng với dữ liệu kiểm tra từ một hoặc
một vài máy trạm để phát hiện xâm nhập.
Hình 1 : Mô hình NIDS
Ưu Điểm :
- Quản lý được cả một network segment (gồm nhiều host).
- "Trong suốt" với người sử dụng lẫn kẻ tấn công
- Cài đặt và bảo trì đơn giản, không ảnh hưởng tới mạng.
- Tránh DOS ảnh hưởng tới một host nào đó.
- Có khả năng xác định lỗi ở tầng Network (trong mô hình OSI).
- Độc lập với OS.
Hạn chế :
- Có thể xảy ra trường hợp báo động giả.
- Không thể phân tích các gói tin đã được mã hóa (vd: SSL, SSH, IPSec…).
- NIDS đòi hỏi phải được cập nhật các signature mới nhất để thực sự an toàn.
- Có độ trễ giữa thời điểm bị tấn công với thời điểm phát báo động.Khi báo động
được phát ra, hệ thống có thể đã bị tổn hại.
- Không cho biết việc tấn công có thành công hay không.
- Giới hạn băng thông. Những bộ dò mạng phải nhận tất cả các lưu lượng mạng,
sắp xếp những lưu lượng đó cũng như phân tích chúng. Khi tốc độ mạng tăng thì khả
năng dò cũng vậy.
1.1.2.2. Host-based IDS (HIDS)
Chức năng chính là bảo vệ tài nguyên trên máy chủ và một số hệ thống như
WebHost,Mailhost v.v
Sử dụng dữ liệu kiểm tra từ một máy trạm đơn để phát hiện xâm nhập.
Hình 2 : Mô hình HIDS
Ưu điểm :
- Có khả năng xác định người dùng liên quan tới một sự kiện.
- HIDS có khả năng phát hiện các cuộc tấn công diễn ra trên một máy.
- Có thể phân tích các dữ liệu mã hoá.
- 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

Hạn Chế :
- 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 hệ điều hành bị "hạ" do tấn công, đồng thời HIDS cũng bị "hạ".
- 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, Netcat…).
- HIDS cần tài nguyên trên host để hoạt động.
- HIDS có thể không hiệu quả khi bị DOS.
- Đa số chạy trên hệ điều hành Window. Tuy nhiên cũng đã có 1 số chạy được
trên UNIX và những hệ điều hành khác.
Host IDS – HIDS Network - NIDS
HIDS chỉ quan sát các host , hệ điều
hành, hoạt động của ứng dụng
(thường làm những công việc như
NIDS nhìn toàn cảnh luồng dữ liệu trên mạng
(NIDS thường được coi như là sniffer)
phân tích log, kiểm tra tính toàn
vẹn…)
Chỉ phát hiện những cuộc tấn công đã
thành công.
NIDS phát hiện những cuộc tấn công tiềm
năng.
Hoạt động hiệu quả trong những môi
trường chuyển mạch, mã hóa, tốc độ
cao.
Rất khó hoạt động trong những môi trường
này.
1.1.3. Phương pháp phát hiện xâm nhập
Các hệ thống IDS thường sử dụng 2 phương pháp để phát hiện xâm nhập sau:
- Phát hiện dựa trên các dấu hiệu (Misuse Detection Model): Hệ thống sẽ phát hiện các

xâm nhập bằng cách tìm kiếm các hành đông tương ứng với các kĩ thuật xâm nhập đã
được biết đến (dựa trên các dấu hiệu - signatures) hoặc các điểm dễ bị tấn công của hệ
thống.
- Phát hiện dựa trên sự bất thường (Anomaly Detection Model): Hệ thống sẽ phát hiện
các xâm nhập bằng cách tìm kiếm các hành đông khác với hành vi bình thường của người
dùng hay hệ thống.
1.2. Snort
1.2.1. Tổng quan
1.2.1.1. Giới thiệu về snort
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. Với kiến trúc thiết kế theo kiểu module,
người dùng có thể tự tăng cường tính năng cho hệ thống Snort của mình bằng việc
cài đặt hay viết thêm mới các module. Cơ sở dữ liệu luật của Snort đã lên tới 2930
luật và được cập nhật thường xuyên bởi một cộng đồng người sử dụ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.
Bên cạnh việc có thể hoạt động như một ứng dụng thu bắt gói tin thông thường,
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.
1.2.1.2. Các yêu cầu đối với hệ thống Snort
- Qui mô hệ thống cần bảo vệ : nói một cách tổng quát, qui mô mạng càng lớn,
các máy móc cần phải tốt hơn ví dụ như các Snort sensor. Snort cần có thể theo kịp
với quy mô của mạng, cần có đủ không gian để chứa các cảnh báo, các bộ xử lý đủ
nhanh và mạnh để xử lý những luồng lưu lượng mạng lớn.
- Phần cứng máy tính: Yêu cầu phần cứng đóng một vai trò thiết yếu trong việc
thiết kế một hệ thống an ninh tốt.
- Hệ điều hành: Snort chạy trên nhiều hệ điều hành khác nhau như: Linux,
FreeBSD, NetBSD, OpenBSD, và Window. Các hệ thống khác được hỗ trợ bao gồm

kiến trúc Sparc-Solaric, MacOS X và MkLinux, và PA-RISC HP UX.
1.2.1.3. Tổng quan về cách thức hoạt động :
Snort có thể sử dụng với một số cơ chế:
- Sniffer mode: là chế độ cho phép bạn có thể theo dõi và đọc các luồng
dữ iệu ra vào hệ thống mạng được hiển thị trên màn hình điều khiển.
- Packet Logger mode: cho phép ghi các logs dữ liệu vào đĩa lưu trữ.
- Network Intrusion Detection System (NIDS) mode: là cơ chế được cấu hình
phức tạp nhất, cho phép Snort phân tích các luồng dữ liệu, trong đó kiểm
soát cho (hay không) cho phép các dữ liệu ra vào hệ thống mạng dựa
vào các bộ qui tắc được định nghĩa bởi người quản trị, đồng thời thực hiện một
vài hành động dựa vào những gì mà Snort nhìn thấy.
- Inline mode: các gói tin thu từ iptables thay vì libpcap, sau đó iptables thực hiện
hành động hủy hay cho phép các gói tin đi qua dựa trên những qui tắc được qui
định và sử dụng bởi Snort.
1.2.2. Kiến Trúc Snort
Snort bao gồm nhiều thành phần, những thành phần có một chức năng riêng biệt, chúng
động cùng nhau để phát hiện ra các cuộc tấn công cụ thể vào hệ thống để từ đó đưa ra các
cảnh báo. Hệ thống IDS dựa trên snort gồm những thành phần sau đây:
• Module giải mã gói tin (Packet Decoder)
• Module tiền xử lý (Preprocessors)
• Module phát hiện (Detection Engine)
• Module log và cảnh báo (Logging and Alerting System)
• Module kết xuất thông tin (Output Module)
Kiến trúc snort được mô tả như hình dưới đây :
Hình 3 : Kiến trúc của snort
Khi Snort hoạt động nó sẽ thực hiện việc lắng nghe và thu bắt 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 được đưa vào Module Giải mã gói tin. Tiếp theo
gói tin sẽ được đưa vào Module Tiền xử lý, rồi Module Phát hiện. Tại đây tùy theo việc
có phát hiện được xâm nhập hay không mà gói tin có thể được bỏ qua để lưu thông tiếp
hoặc được đưa vào Module Log và cảnh báo để xử lý. Khi các cảnh báo được xác định

Module Kết xuất thông tin sẽ thực hiện việc đưa cảnh báo ra theo đúng định dạng mong
muốn. Sau đây ta sẽ đi sâu vào chi tiết hơn về cơ chế hoạt động và chức năng của từng
thành phần.
1.2.2.1. Module giải mã gói tin (Packet Decoder)
Snort 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ột gói tin sau khi được giải mã sẽ được đưa tiếp vào môđun tiền xử lý. Nhiệm
vụ chủ yếu của hệ thống này là phân tích gói dữ liệu thô bắt được trên mạng và phục
hồi thành gói dữ liệu hoàn chỉnh ở lớp application, làm input cho hệ thống
dectection engine.
Quá trình phục hồi gói dữ liệu được tiến hành từ lớp Datalink cho tới lớp
Application theo thứ tự của Protocol Stack.
1.2.2.2. Module tiền xử lý (Preprocessors)
Là module rất quan trọng để chuẩn bị gói dữ liệu đưa vào cho modun phát hiện
phân tích, module này có 3 nhiệm vụ chính:
- Kết hợp các gói tin lại: thông tin truyền đi không đóng gói toàn bộ vào 1 gói tin.
Snort sau khi nhận được phải thực hiện ghép nối để có được dữ liệu nguyên dạng
- Giải mã chuẩn hóa giao thức: công việc phát hiện xâm nhập dựa trên dấu hiệu
nhận dạng nhiều khi bị thất bại khi kiểm tra các giao thức có dữ liệu có thể được
thể hiện dưới nhiều dạng khác nhau
- Phát hiện các xâm nhập bất thường: đối phó với các xâm nhập không thể hoặc
khó Phát hiện bằng luật thông thường
1.2.2.3. Module phát hiện (Detection Engine)
Đây là phần quan trọng nhất của Snort. Nó chịu trách nhiệm phát hiện các dấu
hiệu xâm nhập vào hệ thống. Module phát hiện sử dụng các luật được định
nghĩa trước để so sánh với dữ liệu thu thập được để xác định xem có xâm nhập xảy
ra hay không. Nếu một gói tin phù hợp với bất kì luật nào, một hành động tương ứng
sẽ được thực hiện như ghi log, tạo ra các cảnh báo,đưa ra các thông tin… hoặc
gói tin sẽ bị hủy.
Hình 4 : Module phát hiện

Một vấn đề quan trọng được đặt ra ở đây là thời gian thực thi, xử lý các gói tin, việc
này sẽ ảnh hưởng lớn đến lưu thông của hệ thống mạng. Vấn đề này sẽ phụ thuộc
vào các yếu tố sau :
- Số lượng các luật
- Sức mạnh của hệ thống máy mà Snort đang chạy
- Tốc độ của bus hệ thống
- Lưu lượng trên mạng.
Detection Engine có thể phân chia gói tin và áp dụng rule cho các phần khác nhau
của gói tin. Các phần đó có thể là:
- Phần IP header của gói tin
- Phần header của tần transport: Đây là phần tiêu đề bao gồm TCP, UDP hoặc các
header của tầng transport khác. Nó cũng có thể làm việc với header của ICMP.
- Phần header của các lớp ứng dụng: Bao gồm header của lớp ứng dụng,
nhưng không giới hạn, DNS header, FTP header, SNMP header, và SMTP
header.
- Packet payload: Có nghĩa là có thể tạo ra rule được sử dụng bởi detection
engine để tìm kiếm một chuỗi bên trong dữ liệu của gói tin.
1.2.2.4. Module log và cảnh báo (Logging and Alerting System)
Khi bộ phận detection engine phát hiện ra các dấu hiệu tấn công thì nó
sẽ thông báo cho bộ phận Logging and Alerting System. Các ghi nhận, thông
báo có thể được lưu dưới dạng văn bản hoặc một số định dạng khác. Mặc định thì
chúng được lưu tại thư mục ./var/log/snort.
1.2.2.5. Module kết xuất thông tin (Output Module)
Môđun này có thể thực hiện các thao tác khác nhau tùy theo việc bạn muốn lưu
kết quả xuất ra như thế nào. Tùy theo việc cấu hình hệ thống mà nó có thể thực hiện
các công việc như là:
- Ghi log file
- Ghi syslog: syslog và một chuẩn lưu trữ các file log được sử dụng rất nhiều trên
các hệ thống Unix, Linux.
- Ghi cảnh báo vào cơ sở dữ liệu.

- Tạo file log dạng xml: việc ghi log file dạng xml rất thuận tiện cho việc trao đổi
và chia sẻ dữ liệu.
- Cấu hình lại Router, firewall.
- Gửi các cảnh báo được gói trong gói tin sử dụng giao thức SNMP. Các gói tin
dạng SNMP này sẽ được gửi tới một SNMP server từ đó giúp cho việc quản lý
các cảnh báo và hệ thống IDS một cách tập trung và thuận tiện hơn.
- Gửi các thông điệp SMB (Server Message Block) tới các máy tính Windows.
1.2.3. Hoạt Động
1.2.3.1. Sniff Mode
Ở chế độ này, Snort hoạt động như một chương trình thu thập và phân tích gói
tin thông thường. Không cần sử dụng file cấu hình, các thông tin Snort sẽ thuđược
khi hoạt động ở chế độ này:
- Date and time.
- Source IP address.
- Source port number.
- Destination IP address.
- Destination port.
- Transport layer protocol used in this packet.
- Time to live or TTL value in this packet.
- Type of service or TOS value.
- Packer ID.
- Length of IP header.
- IP payload.
- Don’t fragment or DF bit is set in IP header.
- Two TCP flags A and P are on.
- TCP sequence number.
- Acknowledgement number in TCP header.
- TCP Window field.
- TCP header length.
1.2.3.2. Packet logger mode

Khi muốn ghi lại các gói dữ liệu vào đĩa, bạn cần phải chỉ định một thư
mục log và thêm khóa –l, Snort sẽ tự động biết để đi vào chế độ packet logger:
./snort -dev -l file./log
Tất nhiên, điều này giả định bạn có một thư mục với tên log trong thư mục hiện
hành. Thư mục mặc định trong Snort là /var/log/snort. Khi Snort chạy trong
chế độ này, nó thu thập tất cả các gói nó thấy và đặt nó vào một thư mục hệ thống
phân cấp dựa trên địa chỉ IP của một trong những máy chủ trong các gói dữ liệu. Nói
cách khác,một thư mục mới được tạo ra cho mỗi địa chỉ được capture và dữ liệu
liên quan đến địa chỉ này được lưu trong thư mục đó. Snort lưu các gói tin thành các
file ASCII, với tên file được tạo ra từ tên giao thức và số của cổng kết nối.
1.2.3.3. NIDS Mode
Snort thường được sử dụng như một NIDS. Nó nhẹ, nhanh chóng, hiệu quả và sử
dụng các rule để áp dụng lên gói tin. Khi phát hiện có dấu hiệu tấn công ở trong gói
tin thì nó sẽ ghi lại và tạo thông báo. Khi dùng ở chế độ này phải khai báo file cấu
hình cho Snort hoạt động. Thông tin về thông báo khi hoạt động ở chế độ này:
- Fast mode: Date and time, Alert message, Source and destination IP address,
Source and destination ports, Type of packet
- Full mode: Gồm các thông tin như chế độ fast mode và thêm một số thôngtin
sau: TTL value, TOS value, Length of packet header, length of packet,Type of
packet, Code of packet, ID of packet, Sequence number.
1.2.3.4. Inline Mode
1.2.4. Rules
Thông thường các tấn công hay xâm nhập đều để lại dấu hiệu riêng. Các thông tin này
được sử dụng để tạo nên các rule của Snort, Snort sẽ dựa vào các tập rule này để phát hiện
tấn công.Các rule thường được lưu trữ trong file snort.conf. Có thể sử dụng nhiều file
bằng cách thêm đường dẫn đến các file rule này vào file cấu hình chính.
Mỗi rule được viết trên một dòng.Một rule có thể phát hiện nhiều loại xâm nhập, tạo nên
một thông điệp cảnh báo, log một thông điệp hay có thể bỏ qua một gói tin. Các rule có
thể được áp dụng cho tất cả các phần khác nhau của gói tin.
Rule của snort được chia thành hai phần:

- Rule Header: chỉ hành động của rule, giao thức, hướng xử lý, địa chỉ IP đích và
nguồn, port đích và port nguồn.
- Rule Options: 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.
Tổng quát cho một rule như sau :
action protocol address port direction address port (option1 : <value1> ;option2:
<value2>;… )
Ví dụ :
Rule Header Rule Options
alert tcp any any -> 192.168.1.10/32 80 (msg: “TTL=100”; ttl: 100;)
Rule
Action
Protocol Source IP
Source
Port
Direction
Destination
IP
Destination
Port
alert Tcp any any -> any 80
1.2.4.1 Rule Header
Ta xem xét một ví dụ minh họa :
Như trong ví dụ ta thấy header của một rule sẽ bao gồm các thành phần sau :
a. Rule action :
chỉ ra các hành động mà điều kiện của luật được thỏa mãn. Một hành động được thực
hiện khi tất cả các điều kiện phù hợp. Ta có các Rule action như sau :
- Pass: hành động này hướng dẫn snort bỏ qua gói tin này
- Log: có thể log gói tin vào file hay cơ sở dữ liệu
- Alert: gửi thông điệp cảnh báo khi có dấu hiệu xâm nhập

- Activate: tạo 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
- Dynamic: đây là luật được gọi bởi các luật khác có hành động là Activate
Ngoài ra khi chạy chế độ snort inline ta sẽ có thêm các tùy chọn sau :
- drop: cho phép iptables bỏ qua packet này và log lại packet vừa bỏ qua.
- reject: cho phép iptables bỏ qua packet này, log lại packet, đồng thời gửi thông báo từ
chối đến máy nguồn.
- sdrop: cho phép iptables bỏ qua packet này nhưng không log lại packet, cũng không
thông báo đến máy nguồn.
b. Protocol :
Chỉ ra loại gói tin mà luật sẽ áp dụng, Hiện nay Snort chỉ hỗ trợ bốn giao thức sau:
TCP, UDP, ICMP, IP. Trong tương lai có thể hỗ trợ thêm các giao thức khác như: ARP,
IGRP, GRE, OSPF, RIP…
c. Address :
Có địa chỉ nguồn và địa chỉ đích. Địa chỉ có thể là 1 địa chỉ IP đơn hoặc địa chỉ của một
mạng. Ta dùng từ any để áp luật cho tất cả các địa chỉ.
Ví dụ : alert tcp any any -> 192.168.1.10/32 80 (msg: “TTL=100”; ttl: 100;)
Luật trên sẽ tạo ra một cảnh báo đối với tất cả các gói tin từ bất kì nguồn nào có TTL =
100 đi đến địa chỉ 192.168.1.10 tại cổng 80.
d. Ngăn chặn địa chỉ hay loại trừ địa chỉ:
Sử dụng dấu (!) ở trước sẽ chỉ cho Snort không kiểm tra gói tin đến hoặc đi từ địa chỉ
đó
Ví dụ :alert icmp ![192.168.1.0/24] any -> any any (msg: “Ping with TTL=100”; ttl:
100;)
luật sau sẽ áp dụng cho tất cả các gói tin ngoại trừ các gói có nguồn xuất phát từ mạng lớp
192.168.2.0/24
e. Danh sách địa chỉ :
Ta có thể định rõ ra danh sách các địa chỉ trong một luật của Snort.
Ví dụ : alert icmp ![192.168.2.0/24, 192.168.8.0/24] any -> any any (msg:“Ping with
TTL=100”; ttl: 100;)
Cảnh báo tất cả các gói tin trừ các gói xuất phát từ hai mạng lớp 192.168.2.0/24 và

192.168.8.0/24
f. Cổng (Port number):
Áp dụng luật cho gói tin đến hoặc đi từ 1 cổng hay phạm vi cổng, chỉ dùng trong giao
thức TCP, UDP. Từ any cũng dùng để đại diện cho bất kỳ cổng nào.
Ví dụ : alert tcp 192.168.2.0/24 23 -> any any (content: “confidential”; msg: ”Detected
confidential”;)
Ta sử dụng số cổng nguồn là 23 để áp dụng luật cho tất cả các gói tin đến từ một server
Telnet.
g. Dãy cổng hay phạm vi cổng :
Ta có thể áp dụng luật cho dãy các cổng thay vì chỉ cho một cổng nào đó. Cổng bắt đầu
và cổng kết thúc phân cách nhau bởi dấu hai chấm “:”
Ví dụ : alert udp any 1024:2048 -> any any (msg: “UDP ports”;)
g. Direction :
Chỉ ra hướng đi của rule, có hai loại đó là:
→ : chỉ ra hướng của rule bắt nguồn từ địa chỉ IP và port bến trái .
↔ : Hướng của rule này là hai chiều, điều này sẽ thuận lợi cho việc phân tích cả hai mặt
của một traffic, như là telnet hoặc POP3…
1.2.4.2 Rule Options
Nằm ngay sau phần Rule Header được bao bọc trong dấu ngoặc đơn, một rule option bao
gồm: keyword: “value”. Nếu có nhiều option thì phân cách nhau bằng dấu “;” và các tùy
chọn này phải đồng thời thỏa mãn. có 4 loại rule options chính: general, Payload, Non-
Payload, Post-detections.
a. General options :
Cung cấp thông tin về rule nhưng không gây ra bất kỳ ảnh hưởng nào đến quá trình
phát hiện packet.
- msg: được sử dụng để thêm một chuỗi kí tự vào việc ghi log hoặc đưa ra cảnh báo.
Thêm vào thông điệp sau dấu ngoặc kép.
Định dạng : msg: “<message text>”;
Ví dụ : alert tcp 192.168.1.0/24 any → any any (msg: “<HTTP matched>”;
content: “HTTP”, offset: 4)

- reference: Là từ khóa cho phép tham chiếu đến các hệ thống phát hiện các kiểu tấn
công ở bên ngoài. Nó không đóng một vai trò quan trọng nào trong cơ chế phát hiện. Có
nhiều hệ thống tham khảo như CVE và Brugtraq những hệ thống này giữ thông tin về các
kiểu tấn công đã được biết.
Định dạng: reference: <id system>, <id>;
Ví dụ : alert tcp any any -> any 21 (msg:"IDS287/ftp-wuftp260-venglin-linux";
flags:AP; content:"|31c031db 31c9b046 cd80 31c031db|"; reference:arachnids,
IDS287; reference:bugtraq,1387; reference:cve,CAN-2000-1574;)
- gid: Là từ khóa dùng để xác định bộ phận nào của snort sẽ tạo ra sự kiện khi thực thi,
nó giúp cho quá trình giải mã của preprocessor. Nếu không được định nghĩa trong
rule nó sẽ lấy giá trị là 1. Để tránh xung đột với các rule mặc định của snort, khuyến cáo
lấy giá trị lớn hơn 1.000.000. Từ khóa gid được sử dụng với từ khóa sid.
Định dạng: gid: <generator id>;
Ví dụ : alert tcp any any -> any 80 (content:"BOB"; gid:1000001; sid:1; rev:1;)
- Sid : Là từ khóa duy nhất để xác định snort rule, nó cho phép các thành phần
output xác định các rule dễ dàng hơn. Option này nên dùng với từ khóa dev.
Định dạng: sid: <snort rules id>;
+ id <100: Dự trữ cho tương lai.
+ 100<id<1.000.000: Xác định rule đi kèm theo bảng phân phối.
+ id>1.000.000: Do người viết rule tự định nghĩa.
Ví dụ: alert tcp any any -> any 80 (content:"BOB"; sid:1000983; rev:1;)
- rev: Từ khóa để chỉ ra số revision của rule. Nếu rule được cập nhật, thì từ khóa này
được sử dụng để phân biệt giữa các phiên bản. Các module output cũng có thể sử dụng từ
khóa này để nhận dạng số revision. Option này nên dùng với từ khóa dev.
Định dạng : rev: <revison integer>;
Ví dụ: alert tcp any any -> any 80 (content:"BOB"; sid:1000983; rev:1;)
- Classtype : Classtype là từ khóa sử dụng để phân loại rule phát hiện tấn công khác
nhau.
Định dạng: classtype: <class name>;
Ví dụ: alert tcp any any -> any 80 (msg:"EXPLOIT ntpdx overflow"; dsize: >128;

classtype:attempted-admin; priority:10 );
Ta có bảng classtype sau :
Classtype Decription Priority
Attempted-admin
Attempted-user
Shellcode-detect
Successful-admin
Trojan-activity
Web-application attack
Attempted-recon
Suspicuous-login
Successful-dos
Unusual-client-port-
connection
Icmp-activity
Network-scan
Attempted administrator privilege gain
Attempted user privilege gain
Executable code was detected
Successful administrator privilege gain
A network Trojan was detected
Web application attack
Attempted information leak
An attempted login using a suspicious user
name detected
Denial-of-service attack
A network client was using an unusual port
Generic ICMP event
Detection of a network scan
High

High
High
High
High
High
Medium
Medium
Medium
Medium
Low
Low
- priority : Đây là từ khóa chỉ độ ưu tiên cho rule, từ khóa classtype chỉ ra độ ưu
tiên mặc định. Tuy nhiên nếu ta thiết lập thêm giá trị này nó có thể ghi đè lên giá trị mặc
định đó.
Định dạng: priority: <priority interger>;
Ví dụ: alert TCP any any -> any 80 (msg: "WEB-MISC phf attempt"; flags:A+;
content: "/cgi-bin/phf"; priority:10;)
- metadata: Cho phép người dùng nhúng thêm thông tin về rule.
Định dạng:
Metadata : key1 value1
Metadata : key1 value1, key2value2
Ví dụ: alert tcp any any -> any 80 (msg: "Shared Library Rule Example";
metadata:engine shared, soid 3|12345;)
b. Payload Detection Rule Options
Tìm kiếm thông tin trong phần payload của packet. Phần này gồm các từ khóa
như: content, nocase, rawbytes, depth, offset, distance, within, http client body, http
cookie, http header, http method, http uri, fast pattern, uricontent, urilent, isdataat,
pcre, byte test, byte jump, ftpbuonce, asn1, cvs.
- content Content là từ khóa điểm quan trọng trong Snort, nó cho phép người
dùng thiết lập các rule nhằm tìm ra nội dung đặc biệt trong gói tin. Việc lựa chọn dữ liệu

cho gói content tương đối phứt tạp, nó có thể chứa dữ liệu ở dạng văn bản hoặc ở dạng
nhị phân
Định dạng: content : [!] “ <content string>”;
Ví dụ: alert tcp any any -> any 139(content:"|5c00|P|00|I|00|P|00|E|00 5c|";)
Hoặc phủ định: alert tcp any any -> any 80 (content:!"GET";)
- Nocase : Là từ khóa được sử dụng kết hợp với từ khóa content. Nó không có đối
số, mục đích của nó là thực hiện việc tìm kiếm mẫu cụ thể không phân biệt kí tự hoa
hoặc thường.
Định dạng : No case;
Ví dụ: alert tcp any any -> any 21 (msg:"FTP ROOT"; content:"USER root"; nocase;)
- offset: là từ khóa sử dụng kết hợp với từ khóa content. Sử dụng khóa này, có thể bắt
đầu tìm kiếm từ một vị trí xác định so với vị trí bắt đầu của gói tin. Sử dụng một con số
như là đối số của từ khóa này
Định dạng: Offset: <number>;
- depth : depth là từ khóa được sử dụng kết hợp với từ khóa content để xác định giới
hạn của việc so sánh mẫu. Sử dụng từ khóa này, có thể xác định một vị trí so với vị trí bắt
đầu. Dữ liệu sau vị trí này sẽ không được tìm kiếm để so mẫu. Nếu dùng cả từ khóa
offset và depth thì có thể xác định một khoảng dữ liệu thực hiện việc so sánh
mẫu.
Định dạng: depth :<number>;
Ví dụ: alert tcp any any -> any 80 (content: "cgi-bin/phf"; offset:4; depth:20;)
- distance : Từ khóa distance cũng tương tự như offset, điểm khác biệt là offset cho biết
vị trí tìm kiếm tính từ đầu payload, trong khi distance sẽ tính từ vị trí của mẫu trước đó.
Từ khóa này được dùng kết hợp với từ khóa content.
Định dạng: distance: <byte count>;
Ví dụ: alert tcp any any -> any any (content:"ABC"; content: "DEF";
distance:1;)
c. Non-Payload Detection Rule Options
Tìm kiếm thông tin trong phần non-payload của packet, bao gồm các từ khóa:
frag ,offset, ttl, tos, id, ipopts, fragbits, dsize, flags, flow, flowbits, seq, ack,

window, itype, icode, icmp id, icmp seq, rpc, ip proto, sameip, stream size.
- ttl : Là từ khóa được sử dụng để kiểm tra trường TTL (time to live) trong phần
header ip của gói tin. Từ khóa này có thể sử dụng với tất cả các giao thức xây dựng trên
IP như ICMP, UDP và TCP. Sử dụng từ khóa ttl để kiểm tra ai đó đang cố gắng traceroute
hệ thống mạng.
- tos : Đây là từ khóa được sử dụng để phát hiện một giá trị cụ thể trong trường
TOS (Type of service) của IP Header.
Định dạng: tos: [!] <number>;
- id : id là từ khóa được sử dụng để kiểm tra trường ID của header gói tin IP. Mục đích
của nó là phát hiện các cách tấn công một số ID cố định.
Định dạng: id: <number>;
- dsize dsize là từ khóa được sử dụng để tìm chiều dài một phần dữ liệu của gói tin.
Nhiều cách tấn công sử dụng lỗ hổng tràn bộ đệm bằng cách gửi gói tin có kích
thướt lớn. Sử dụng từ khóa này để tìm thấy gói tin có chiều dài dữ liệu lớn hoặc nhỏ hơn
một số xác định.
Định dạng: dsize : [<>] <number> [<><number>];
- flags : flags là từ khóa được sử dụng để tìm ra bit flag nào được thiết lập trong
header TCP của gói tin. Các bit sau có thể được kiểm tra: F- FIN, S-SYN, R-RST, P-PSH,
A-ACK ,U-URG, 1- Reserved bit 1, 2- Reserved bit 2, 0- No TCP flags set
Một số tùy chọn khác được sử dụng
+ Phù hợp với một hoặc nhiều bit được chỉ ra.
* Phù hợp với bất kì bit nào được thiết lập
! Phù hợp với các bit không được thiết lập.
Định dạng: flags:[!|*|+]<FSRPAU120>[,<FSRPAU120>];
Ví dụ: alert tcp any any -> any any (flags:SF,12;)
c. Post-Detection Rule Options
Xảy ra khi một rule được kích hoạt, gồm các từ khóa: logto, session, resp, react,
tag, activated by, count.
1.2.4.3 Một số rule ví dụ đơn giản:
Log tất cả các traffic đang cố kết nối tới port telnet:

log tcp any any -> 10.0.10.0/2 23
Log ICMP traffic tới mạng 10.0.10.0:
log icmp any any -> 10.0.10.0/24 any
Cho phép tất cả các truy cập web đi qua, không log:
pass tcp any 80 -> any 80
Tạo một cảnh báo với thông điệp bất kỳ:
alert tcp any any -> any 23 (msg: “Telnet Connection Attemp”;)
Cảnh báo khi có các hành vi scan SYN/FIN trong mạng:
alert tcp any any -> 10.0.10.0/24 any (msg: “SYN-FIN scan detected”; flags: SF;)
Cảnh báo khi có hành vi scan TCP NULL trong mạng:
alert tcp any any -> 10.0.10.0/24 any (msg: “NULL scan detected”; flags: 0;)
Cảnh báo khi có truy dấu vết OS :
alert tcp any any -> 10.0.10.0/24 any (msg: “O/S Fingerprint detected”; flags: S12;)
Lọc nội dung:
alert tcp any $HOME_NET -> !$HOME_NET any (content: “Hello”; msg: “Hello
Packet”;)
1.2.4.4 Các rule đã được thiết lập sẵn
Một số IDS rule cơ bản đã được thiết lập sẵn và cho phép ta chọn sử dụng trong quá
trình cài đặt Snort. Ngoài ra có thể download nhiều rule khác tại trang www.snort.org.
Download các rule được thiết lập sẵn là đăng ký thành viên trên trang www.snort.org.
Các thành viên đã đăng ký có thể nhận được tất cả các snort rule mới nhất, nhưng các rule
đó chỉ có khi chúng đã được cung cấp cho các Sourcefice subscriber.
Người dùng không đăng ký trên trang www.snort.org cũng có thể download snort rule
đã thiết lập sẵn. Họ chỉ có thể download các ruleset cung cấp kèm theo bản release chính
thức của Snort.
a. Kiểm tra rule DDoS:
Tấn công từ chối dịch vụ là một trong những kiểu tấn công "cổ điển" nhưng chưa bao giờ
mất đi tính nguy hiểm đối với một hệ thống mạng.
DDoS gây nghẽn một website hay một cơ sở hạ tầng, khiến người sử dụng không thể truy
cập giống như hiện tượng nghẽn mạng di động trong dịp lễ tết do có quá nhiều người gọi

cùng lúc. Phương pháp này bị coi là "bẩn thỉu" nhưng đem lại hiệu quả tức thì: website bị
tê liệt kéo dài cho tới khi cuộc tấn công chấm dứt.
Bản chất của DDoS là không thể khống chế mà chỉ có giảm giảm bớt cường độ tấn công.
Việc phát hiện kịp thời có thể giúp phần nào ngăn ngừa rất nhiều cuộc tấn công từ chối dịch
vụ. Ví dụ khi đang bị tấn công, chủ website có thể mở rộng băng thông dù đây là giải pháp
rất tốn kém.
Dưới đây là ví dụ mẫu:
alert tcp $EXTERNAL_NET any -> $HOME_NET 27665
(msg: “DDOS Trin00 Attacker to Master default startup
password”);flow: established,to_server;
content:“Betaalmostdone”;reference:arachnids,197;
classtype:attempted-dos;sid: 233, rev: 3;)
b. Kiểm tra rule Backdoor:
Trên máy chủ thường có các cổng dịch vụ chính thức, được xem là "cổng chính". Khi một
máy chủ nào đó đã bị thâm nhập và đã đoạt được chủ quyền, kẻ tấn công cài vào máy chủ
một dịch vụ nào đó để tạo "cổng sau" nhằm mục đích để trở lại máy chủ này một cách dễ
dàng và kín đáo khi nào cần.
Khi thiết lập rule này, ta có thể phát hiện khi backdoor được cài vào hệ thống. Dưới đây là
ví dụ mẫu cho rule để phát hiện backdoor:
alert tcp $HOME_NET 12345:123456 -> $EXTERNAL_NET any
(msg: “BACKDOOR netbus active”);
flow: from_server,established; content “NetBus”;
reference:arachnids,401; classtype:misc-activity;
sid: 109, rev: 5;)
c. Kiểm tra rule khi bị Web attack:
Một trong những phương thức tấn công phát triển nhanh nhất là tấn công trên các dịch vụ
web. Từ khi các dịch vụ web bùng nổ, chúng đã trở thành mục tiêu tấn công cho các hacker
từ nghiệp dư cho đến chuyên nghiệp. Do đó, Snort cũng có nhiều rule được thiết kế để
kiểm tra các cuộc tấn công web.
alert tcp $EXTERNAL_NET 12345:123456 -> $EXTERNAL_NET any

(msg: “WEB-attack etc/shadow access”);
flow: to_server,established; content “/etc/shadow”;nocase;
d. Kiểm tra rule dành cho IIS Server:
Khi Microsoft IIS Web Server ngày càng phổ biến, thì các cuộc tấn công lên hệ thống
server này gia tăng theo cấp số mũ. Bởi vì thế, có một ruleset dành riêng cho IIS Server. Vd
một ISS rule:
Alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS
(msg: “WEB-IIS Directory transversal attempt”; flow:
to_server, established; content: “ |5C| ”; reference:
bugtraq, 2218; reference:cve, 1999-0229; classtype: web-
application-attack; sid: 974; rev: 10;)
Rule này xác định một lỗi bảo mật nổi tiếng: khi một người chỉ cần nhập vào một URL là
đã có thể truy cập vào máy tính. Hành động này gọi là Directory Transversal Attack,
attacker dùng / trong URL như một phần của cuộc tấn công.
Trong rule này, cảnh báo được thiết lập trên TCP traffic hướng từ mạng bên ngoài trên tất
cả các port tới các webserver trên các webserver port. Kết nối phải được thiết lập và hướng
về phía server. Điểm mấu chốt của rule này đó chính là “ |5C| ” trong content option của
rule. Nó chính là “ / ” chuyển đổi từ mã ASCII. Điều này đã được phân loại là kiểu web
attack, có Snort ID là 974 và có 10 luật phân nhánh.
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"WEB-IIS
ISAPI .ida attempt"; flow:to_server,established;
uricontent:".ida?"; nocase; reference:arachnids,552;
reference:bugtraq,1065; reference:cve,2000-0071; classtype:web-
application-attack; sid:1243; rev:11;)
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS
(msg:"WEB-IIS ISAPI .ida access"; flow:to_server,established;
uricontent:".ida"; nocase; reference:arachnids,552;
reference:bugtraq,1065; reference:cve,2000-0071; classtype:web-
application-activity; sid:1242; rev:10;)
1.3. Snort inline

1.3.1. Giới thiệu
Snort-inline là một nhánh phát triển của Snort do William Metcalf khởi xướng và lãnh
đạo. Đến phiên bản 2.3.0 RC1 của Snort, inline-mode đã được tích hợp vào bản chính
thức do snort.org phát hành. Sự kiện này đã biến Snort từ một IDS thuần túy trở thành
một hệ thống có các khả năng của một IPS, mặc dù chế độ này vẫn chỉ là tùy chọn chứ
không phải mặc định.
Ý tưởng chính của inline-mode là kết hợp khả năng ngăn chặn của iptables vào bên trong
snort. Điều này được thực hiện bằng cách thay đổi môđun phát hiện và môđun xử lý cho
phép snort tương tác với iptables. Cụ thể, việc chặn bắt các gói tin trong Snort được thực
hiện thông qua Netfilter và thư viện libpcap sẽ được thay thế bằng việc sử dụng ipqueue
và thư viện libipq. Hành động ngăn chặn của snort-inline sẽ được thực hiện bằng devel-
mode của iptables.
1.3.2. Iptables
Iptables là một ứng dụng tường lửa lọc gói dữ liệu rất mạnh, miễn phí và có sẵn trên hệ
điều hành linux (kernel 2.4 trở đi).
Netfilter/iptables gồm có 2 phần chính. Netfilter ở trong nhân và iptables nằm
ngoài nhân. Iptables chịu trách nhiệm giao tiếp với người sử dụng và netfilter để đẩy các
luật của người dùng vào cho netfilter xử lý. Netfilter tiến hành lọc các gói dữ liệu
ở mức IP. Netfilter làm việc trực tiếp trong nhân, nhanh và không làm giảm tốc độ
của hệ thống.
Hình 5 : Ứng dụng IPtables
Tiền thân của iptables là ipchain (kernel 2.2) và một trong những điểm cải
tiến quan trọng của iptables là stateful packet filtering.
Iptables còn cung cấp các tính năng như NAT (Network Address Tranlation)
và rate limit rất hữu hiệu khi chống DoS.
Cấu trúc của Iptables:
Iptables được chia làm 4 bảng (tables):
- Bảng filter dùng để lọc gói dữ liệu.
- Bảng NAT dùng để thao tác với các gói dữ liệu được NAT nguồn hay NAT
đích.

- Bảng Mangle dùng để thay đổi các thông số trong gói IP.
- Và bảng conntrack dùng để theo dõi các kết nối.
Mỗi tables có nhiều chuỗi (chains). Chain gồm nhiều luật (rule) để thao tác
với gói dữ liệu. Rule có thể là:
- ACCEPT-Chấp nhận gói dữ liệu.
- DROP-Thả gói.
- REJECT-Loại bỏ gói.
- REFERENCE-Tham chiếu đến chain khác.
Các đổi địa chỉ IP động (dynamic IP):
NAT động là một trong những kĩ thuật chuyển đổi địa chỉ IP NAT (Network Address
Translation). Các địa chỉ IP nội bộ được chuyển sang IP NAT như sau :
NAT Router đảm nhận việc chuyển dãy IP nội bộ 169.168.0.x sang dãy IP mới
203.162.2.x. Khi có gói liệu với IP nguồn là 192.168.0.200 đến router, router sẽ đổi IP
nguồn thành 203.162.2.200 sau đó mới gửi ra ngoài. Quá trình này gọi là SNAT
(Source-NAT, NAT nguồn). Router lưu dữ liệu trong một bảng gọi là bảng NAT động.
Ngược lại, khi có một gói từ liệu từ gửi từ ngoài vào với IP đích là 203.162.2.200,
router sẽ căn cứ vào bảng NAT động hiện tại để đổi địa chỉ đích 203.162.2.200 thành
địa chỉ đích mới là 192.168.0.200. Quá trình này gọi là DNAT (Destination-NAT, NAT
đích). Liên lạc giữa 192.168.0.200 và 203.162.2.200 là hoàn toàn trong suốt
(transparent) qua NAT router. NAT router tiến hành chuyển tiếp (forward) gói dữ liệu
từ 192.168.0.200 đến 203.162.2.200 và ngược lại.
Cách đóng giả địa chỉ IP:
NAT Router chuyển dãy IP nội bộ 192.168.0.x sang một IP duy nhất là
203.162.2.4 bằng cách dùng các số hiệu cổng (port-number) khác nhau. Chẳng hạn khi
có gói dữ liệu IP với nguồn 192.168.0.168:1204, đích 211.200.51.15:80 đến router,
router sẽ đổi nguồn thành 203.162.2.4:26314 và lưu dữ liệu này vào một bảng gọi là
bảng masquerade động. Khi có một gói dữ liệu từ ngoài vào với nguồn là
221.200.51.15:80, đích 203.162.2.4:26314 đến router, router sẽ căn cứ vào bảng
masquerade động hiện tại để đổi đích từ 203.162.2.4:26314 thành
192.168.0.164:1204. Liên lạc giữa các máy trong mạng LAN với máy khác bên

ngoài hoàn toàn trong suốt qua router.
Cơ chế xử lý gói tin:
Tất cả mọi gói dữ liệu đều được kiểm tra bởi iptables bằng cách dùng các bảng
tuần tự xây dựng sẵn (queue). Có 3 loại bảng này gồm :
- Mangle table: chịu trách nhiệm biến đổi quality of service bits trong TCP
header. Thông thường loại table này được ứng dụng trong SOHO (Small
Office/Home Office).
- Filter queue: chịu trách nhiệm thiết lập bộ lọc packet (packet filtering), có
ba loại built-in chains được mô tả để thực hiện các chính sách về firewall
(firewall policy rules).
o Forward chain: Cho phép packet nguồn chuyển qua firewall.
o Input chain: Cho phép những gói tin đi vào từ firewall.
o Output chain: Cho phép những gói tin đi ra từ firewall.
NAT queue: thực thi chức năng NAT (Network Address Translation), cung
cấp hai loại built-in chains sau đây:
- Re-routing chain: NAT từ ngoài vào trong nội bộ. Quá trình NAT sẽ thực
hiện trước khi thực thi cơ chế routing. Điều này thuận lợi cho việc đổi
địa chỉ đích để địa chỉ tương thích với bảng định tuyến của firewall, khi cấu hình
ta có thể dùng khóa DNAT để mô tả kỹ thuật này.
- Post-routingchain: NAT từ trong ra ngoài. Quá trình NAT sẽ thực hiện sau khi
thực hiện cơ chế định tuyến. Quá trình này nhằm thay đổi địa chỉ nguồn của gói
tin. Kỹ thuật này được gọi là NAT one-to-one hoặc many-to-one, được gọi
là Source NAT hay SNAT.
Target
Target là hành động sẽ diễn ra khi một gói dữ liệu được kiểm tra và phù hợp với một yêu
cầu nào đó. Khi một target đã được nhận dạng , gói dữ liệu cần nhảy để thực hiện các xử
lý tiếp theo : ACCEPT, DROP, LOG, REJECT, DNAT, SNAT, MASQUERADE.
1.3.3. Snort-inline và Iptables
Netfilter là một module của kernel linux có sẵn ở các phiên bản kernel 2.4 trở đi.
Nó cung cấp 3 chức năng chính:

- Packet filtering: Accept hay drop các gói tin.
- NAT : Thay đổi địa chỉ nguồn/ đích của địa chỉ IP của các gói tin.
- Packet mangling : định dạng các gói tin.
IPtables là một công cụ cần thiết để cấu hình netfilter, nó cần phải được chạy bởi quyền
root.
Sau đó, nếu một gói tin phù hợp với dấu hiệu tấn công của Snort_inline, nó được gắn thẻ
libipq và gửi trả lại Netfilter nơi mà nó được drop.
Snort_inline có hai chế độ: Drop mode và Replace mode.
a. Drop mode:
Một packet được drop khi nó phù hợp với các dấu hiệu tấn công. Có 3 tùy chọn
trong chế độ này:
- Drop: Drop một gói tin, gửi một thiết lập đến máy chủ, ghi lại sự kiện.
- Sdrop: Drop một gói tin mà không gửi thiết lập đến máy chủ.
- Ignore: Drop một packet, gửi một thiết lập đến máy chủ, không ghi lại
sự kiện.
b. Replace mode:
Hình 6 : Chế độ Replace mode Iptables
1.2.4.Những bổ sung cho cấu trúc luật của Snort hỗ trợ Inline mode
Để hỗ trợ tính năng ngăn chặn của Snort-inline, một số thay đổi và bổ sung đã được đưa
vào bộ luật Snort. Đó là đưa thêm 3 hành động DROP, SDROP, INJECT và thay đổi trình
tự ưu tiên của các luật trong Snort.
- DROP
Hành động DROP yêu cầu iptables loại bỏ gói tin và ghi lại thông tin như hành
động LOG.
- SDROP
Hành động SDROP cũng tương tự như hành động DROP, điều khác biệt là ở chỗ
Snort sẽ không ghi lại thông tin như hành động LOG.
- REJECT
Hành động REJECT yêu cầu iptables từ chối gói tin, có nghĩa là iptables sẽ loại
bỏ và gửi lại một thông báo cho nguồn gửi gói tin đó. Hành động REJECT

không ghi lại bất cử thông tin gì.
Trình tự ưu tiên của các luật
Trong các phiên bản gốc, trình tự ưu tiên của các hành động trong Snort là :
activation->dynamic-> alert->pass->log
Trong inline-mode, trình tự ưu tiên này được thay đổi như sau :
activation->dynamic->pass->drop->sdrop->reject->alert->log
2. Mô hình triển khai
Hình 7 : Mô hình demo
Mô hình triển khai:
- Gồm 2 máy tính được nối trực tiếp với nhau, trên máy thứ nhất có địa chỉ ip
192.168.0.211 chạy Windows 7 và máy thức 2 chạy hệ điều hành CentOS
- Máy win7 được dùng để ping tới máy chạy CentOS
- Trên máy CentOS được cài chương trình Snort_Inline qua đó ta có thể đưa ra
cảnh báo hoặc cấm ping từ máy win7.
Các bước triển khai :
Trên máy Win7 chạy lệnh: Ping 192.168.0.105 -t
Trên máy CenOS:
- Cấu hình ICMP.rules với dòng lệnh sau:
Alert ICMP any any -> 192.168.0.105/24 any (msg:”Ping”, sid:1000001;)
- Chạy snort_inline với dòng lệnh:
Snort_inline –c /etc/snort_inline/snort_inline.conf –I eth0
- Mở http://localhost/base chúng ta sẽ thấy được những thông báo với msg là
“Ping”
Hình 8 : Thông báo phát hiện ping từ máy win 7
- Tương tự ta tạo ra rules.rules với dòng lệnh sau:
Drop ICMP any any -> 192.168.0.105/24 any (msg:”Snort_inline blocking”,
sid:1000001;)
- Chạy snort_inline với dòng lệnh:
Snort_inline –c /etc/snort_inline/snort_inline.conf –I eth0
- Lúc này tại máy Win7 sẽ không ping thấy và ta nhận được thông báo trong

http://localhost/base.
Hình 8 : Thông báo gói tin khi đã bị drop
3. Triển khai ứng dụng
Triển khai những tính năng quan trọng liên quan đến bảo mật ( làm việc trực tiếp với giảng
viên để nắm rõ yêu cầu, trên tinh thần là khoảng 30% tính năng của ứng dụng)

×