Tải bản đầy đủ (.pdf) (42 trang)

Tìm hiểu và triển khai hệ thống phát hiện xâm nhập ids snort

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 (2.47 MB, 42 trang )

005.8

TRƢỜNG ĐẠI HỌC VINH

KHOA CÔNG NGHỆ THÔNG TIN
--------------------------

NGUYỄN THANH LIÊM

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

TÌM HIỂU VÀ TRIỂN KHAI HỆ THÔNG PHÁT HIỆN
XÂM NHẬP IDS-SNORT

Nghệ An, tháng 12 năm 2014


TRƢỜNG ĐẠI HỌC VINH

KHOA CÔNG NGHỆ THÔNG TIN
--------------------------

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Sinh viên thực hiện:

Nguyễn Thanh Liêm

Mã sinh viên:

1051073777



Lớp:
Giáo viên hướng dẫn:

51K2
ThS. Lê Quốc Anh

Nghệ An, tháng 12 năm 2014


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

LỜI CẢM ƠN
Trên thực tế khơng có sự thành cơng nào mà khơng gắn liền với những sự hỗ
trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của ngƣời khác. Trong suốt thời
gian từ khi bắt đầu học tập ở giảng đƣờng đại học đến nay, em đã nhận đƣợc rất nhiều
sự quan tâm, giúp đỡ của quý Thầy Cô, gia đình và bạn bè.
Với lịng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở khoa Công nghệ
thông tin - Trƣờng Đại Học Vinh đã cùng với tri thức và tâm huyết của mình để truyền
đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trƣờng. Đặc
biệt là các Thầy Cô trong tổ Mạng máy tính và truyền thơng tạo mọi điều kiện tốt nhất
để em có thể hồn thành tốt Đồ án tốt nghiệp.
Em xin chân thành cảm ơn Th.S Lê Quốc Anh đã tận tâm hƣớng dẫn, chỉ bảo.
Nếu khơng có những lời hƣớng dẫn, dạy bảo của thầy thì em nghĩ cuốn Đồ án tốt
nghiệp này rất khó có thể hồn thiện đƣợc. Một lần nữa, em xin chân thành cảm ơn
thầy.
Cuốn Đồ án tốt nghiệp này đƣợc thực hiện trong vòng 14 tuần, một thời gian
cũng tƣơng đối, tuy nhiên do nhiều yếu tố khách quan lẫn chủ quan nên khơng tránh
khỏi những thiếu sót là điều chắc chắn, em rất mong nhận đƣợc những ý kiến đóng
góp q báu của q Thầy Cơ và các bạn học để kiến thức của em trong lĩnh vực này

đƣợc hồn thiện hơn.
Cuối cùng em xin kính chúc các Thầy Cô trong Khoa Công nghệ thông tin và
Th.S Lê Quốc Anh thật dồi dào sức khoẻ, niềm tin vui để tiếp tục sứ mệnh cao đẹp
của mình đó là truyền đạt kiến thức cho thế hệ mai sau.
Trân trọng!

Vinh, ngày 08 tháng 12 năm 2014
Sinh viên:
Nguyễn Thanh Liêm

Sinh viên: Nguyễn Thanh Liêm - 1051073777

1


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

MỞ ĐẦU
Với nhu cầu trao đổi thông tin, bắt buộc các cơ quan, tổ chức phải hịa mình vào
mạng tồn cầu Internet. An tồn và bảo mật thông tin là một trong những vấn đề quan
trọng hàng đầu, khi thực hiện kết nối mạng nội bộ của các cơ quan, doanh nghiệp, tổ
chức với Internet. Ngày nay, các biện pháp an tồn thơng tin cho máy tính cá nhân
cũng nhƣ các mạng nội bộ đã đƣợc nghiên cứu và triển khai. Tuy nhiên, vẫn thƣờng
xuyên có các mạng bị tấn cơng, có các tổ chức bị đánh cắp thông tin, …gây nên những
hậu quả vô cùng nghiêm trọng.
Những vụ tấn công này nhằm vào tất cả các máy tính có mặt trên Internet, các
máy tính của các công ty lớn nhƣ Microsoft, IBM, các trƣờng đại học và các cơ quan
nhà nƣớc, các tổ chức quân sự, nhà băng, …một số vụ tấn công với quy mơ khổng lồ
(có tới 100.000 máy tính bị tấn công). Hơn nữa những con số này chỉ là phần nổi của
tảng băng trôi. Một phần rất lớn các vụ tấn cơng khơng đƣợc thơng báo vì nhiều lý do,

trong đó có thể kể đến nỗi lo mất uy tín hoặc chỉ đơn giản những ngƣời quản trị dự án
không hề hay biết những vụ tấn công nhằm vào hệ thống của họ.
Không chỉ các vụ tấn công tăng lên nhanh chóng mà các phƣơng pháp tấn cơng
cũng liên tục đƣợc hồn thiện. Điều đó một phần do các nhân viên quản trị hệ thống
ngày càng đề cao cảnh giác. Vì vậy việc kết nối vào mạng Internet mà khơng có các
biện pháp đảm bảo an ninh thì cũng đƣợc xem là tự sát.
Một trong những giải pháp có thể đáp ứng tốt nhất cho vấn đề này là triển khai
hệ thống dị tìm xâm nhập trái phép Instruction Detect System (IDS). Có hai u cầu
chính khi triển khai một hệ thống IDS đó là chi phí cùng với khả năng đáp ứng linh
hoạt trƣớc sự phát triển nhanh chóng của Cơng nghệ thơng tin và Snort là phƣơng án
có thể giải quyết tốt cả hai yêu cầu này

Sinh viên: Nguyễn Thanh Liêm - 1051073777

2


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Nội dung chính của đề tài gồm 3 chƣơng nhƣ sau:
Chƣơng 1: Tổng quan về hệ thống phát hiện xâm nhập IDS
Chƣơng này mô tả khái niệm, vai trị, mơ hình kiến trúc và những ƣu nhƣợc
điểm của các hệ thống phát hiện xâm nhập IDS.
Chƣơng 2: Cấu trúc snort, chức năng snort, luật snort.
Nghiên cứu về hệ thống Snort bao gồm: cấu trúc, các thành phần, chế độ làm
việc, tập luật của Snort.
Chƣơng 3: Triển khai snort trên một hệ thống mạng.
Phân tích và đánh giá hoạt động của Snort thông qua mô phỏng một vài kiểu tấn
công mạng.


Sinh viên: Nguyễn Thanh Liêm - 1051073777

3


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

MỤC LỤC

LỜI CẢM ƠN ............................................................................................. 1
MỞ ĐẦU..................................................................................................... 2
MỤC LỤC................................................................................................... 4
CHƢƠNG 1: TỔNG QUAN VỀ HỆ THỐNG PHÁT HIỆN XÂM
NHẬP IDS ............................................................................................................ 5
1.1

Khái niệm. .................................................................................... 5

1.2

Cấu trúc hệ thống ......................................................................... 5

1.3

Phân loại IDS ............................................................................... 6

CHƢƠNG II: HỆ THỐNG PHÁT HIỆN XÂM NHẬP SNORT ......... 8
2.1

Tổng quan về Snort. ..................................................................... 8


2.2

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

2.3

Các chế độ làm việc của Snort. .................................................. 13

2.4

Làm việc với tập luật của Snort ................................................. 16

CHƢƠNG III: CÀI ĐẶT VÀ MƠ PHỎNG ......................................... 28
3.1

Mơ hình triển khai ...................................................................... 28

3.2

Cài đặt Snort trên sever CentOS 6.5 .......................................... 28

3.3

Cấu hình proxy cho client ra internet......................................... 33

3.4

Mơ phỏng tình huống ................................................................. 35


KẾT LUẬN ............................................................................................... 39
TÀI LIỆU THAM KHẢO ........................................................................ 40

Sinh viên: Nguyễn Thanh Liêm - 1051073777

4


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

CHƢƠNG 1: TỔNG QUAN VỀ HỆ THỐNG PHÁT HIỆN XÂM NHẬP
IDS
1.1 Khái niệm.
Phát hiện xâm nhập là một tập hợp các kỹ thuật và phƣơng pháp đƣợc sử dụng
để phát hiện những hành vi đáng ngờ ở cấp độ mạng và máy chủ. Hệ thống phát hiện
xâm nhập có 2 loại cơ bản: Phát hiện xâm nhập dựa trên dấu hiệu và Phát hiện sự bất
thƣờng.
1.1.1 Phát hiện xâm nhập dựa trên dấu hiệu.
Phƣơng pháp này nhận dạng cuộc tấn công bằng cách so sánh dấu hiệu nhận
đƣợc với một tập hợp các dấu hiệu đã biết trƣớc đƣợc xác định là sự tấn công.
1.1.2 Phát hiện sự bất thường.
Đây là phƣơng pháp thiết lập và ghi nhận trạng thái hoạt động ổn định của hệ
thống rồi so sánh với trạng thái đang hoạt động hiện hành để kiểm tra sự chênh
lệch. Nếu nhận thấy một sự chênh lệch lớn thì có khả năng đã xảy ra một cuộc
tấn công.
1.2 Cấu trúc hệ thống
Các thành phần cơ bản gồm:
1.2.1 Sensor / Agent.
Giám sát và phân tích các hoạt động. “Sensor” thƣờng đƣợc dùng cho dạng
Network-base IDS/IPS trong khi “Agent” thƣờng đƣợc dùng cho dạng Hostbase IDS/IPS.

1.2.2 Management Server:
Là 1 thiết bị trung tâm dùng thu nhận các thông tin từ Sensor / Agent và quản lý
chúng. Một số Management Server có thể thực hiện việc phân tích các thơng tin
sự việc đƣợc cung cấp bởi Sensor / Agent và có thể nhận dạng đƣợc các sự kiện
này dù các Sensor / Agent đơn lẻ không thể nhận diện đƣợc.
1.2.3 Databaseserver:
Lƣu trữ các thông tin từ Sensor / Agent hay Management Server.
1.2.4 Console:
Là 1 chƣơng trình cung cấp giao diện cho IDS users /Admins. Có thể cài đặt
trên một máy tính bình thƣờng dùng để phục vụ cho tác vụ quản trị, hoặc để
giám sát, phân tích.

Sinh viên: Nguyễn Thanh Liêm - 1051073777

5


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

1.3 Phân loại IDS
IDS đƣợc chia thành: Host-based IDS (HIDS) và Network-based IDS (NIDS).
1.3.1 Network-based IDS (NIDS)

Hình 1.3.1: Mơ hình NIDS

NIDS là hệ thống phát hiện xâm nhập bằng cách thu thập dữ liệu của các gói tin
lƣu thơng trên các phƣơng tiện truyền dẫn nhƣ (cables, wireless) bằng cách sử dụng
các card giao tiếp. Khi một gói dữ liệu phù hợp với qui tắc của hệ thống, một cảnh báo
đƣợc tạo ra để thông báo đến nhà quản trị và các file log đƣợc lƣu vào cơ sở dữ liệu.
1.3.1.1Ưu điểm của NIDS:

 Quản lý đƣợc một phân đoạn mạng (networksegment).
 Trong suốt với ngƣời sử dụng và kẻ tấn công.
 Cài đặt và bảo trì đơn giản, khơng làm ảnh hƣởng đến mạng.
 Tránh đƣợc việc bị tấn công dịch vụ đến một host cụ thể.
 Có khả năng xác định đƣợc lỗi ở tầng network.
 Độc lập với hệ điều hành.
1.3.1.2Hạn chế của NIDS:
 Có thể xảy ra trƣờng hợp báo động giả, tức là khơng có dấu hiệu bất thƣờng mà
IDS vẫn báo.
 Khơng thể phân tích đƣợc các lƣu lƣợng đã đƣợc mã hóa nhƣ SSH, IPSec,
SSL…
 Phải ln cập nhật các dấu hiệu tấn công mới nhất để thực sự an tồn.
 Khơng thể cho biết việc mạng bị tấn cơng có thành cơng hay khơng, để ngƣời
quản trị tiến hành bảo trì hệ thống.
Sinh viên: Nguyễn Thanh Liêm - 1051073777

6


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

1.3.2 Host Base IDS (HIDS):

Hình 1.3.2: Mơ hình HIDS
HIDS thƣờng đƣợc cài đặt trên một máy tính nhất định. Thay vì giám sát hoạt động
của một Network segment, HIDS chỉ giám sát các hoạt động trên một máy tính.
1.3.2.1Ưu điểm của HIDS
 Có khả năng xác định các user trong hệ thống liên quan đến 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ó khả năng phân tích các dữ liệu đƣợc mã hóa.

 Cung cấp các thơng tin về hót trong lúc cuộc tấn cơng diễn ra.
1.3.2.2Hạn chế của HIDS
 Thông tin từ HIDS là không đáng tin cậy ngay khi 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, thì đồng thời HIDS cũng bị “hạ đo ván”.
 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ố là chạy trên hệ điều hành Window. Tuy nhiên cũng có số ít chạy đƣợc
trên Linux và Unix.

Sinh viên: Nguyễn Thanh Liêm - 1051073777

7


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

CHƢƠNG II: HỆ THỐNG PHÁT HIỆN XÂM NHẬP SNORT
2.1 Tổng quan về Snort.
2.1.1 Khái niệm.
Snort đƣợc phát triển năm 1998 bởi Sourcefire và CTMO Martin Roeschm là
một phần mềm miễn phí. Ban đầu đƣợc gọi Cơng nghệ phát hiện và phịng chống xâm
nhập hạng nhẹ, song Snort dần phát triển và đƣợc triển khai rộng rãi trên toàn thế giới.
Mặc dù phƣơng pháp phát hiện xâm nhập này vẫn còn mới nhƣng Snort đƣợc đánh giá
là hệ thống tốt nhất hiện nay
Snort là một ứng dụng bảo mật hiện đại có ba chức năng chính: Nó có thể phục
vụ nhƣ là một bộ phận lắng nghe gói tin, lƣu lại thơng tin gói tin hoặc một hệ thống
phát hiện xâm nhập mạng (NIDS). Bên cạnh đó có rất nhiều Add-on cho Snort để quản

lý (ghi log, quản lý, tạo rules…). Tuy các thành phần này khơng phải là phần lõi của
Snort nhƣng nó lại một đóng vai trị quan trọng trong việc sử dụng cũng nhƣ khai thác
các tính năng của Snort..
2.1.2 Các đặc tính.
 Nó hỗ trợ cho nhiều nhiều nền tảng hệ điều hành khác nhau nhƣ: Linux,
OpenBSD, Solaris, Window… Snort cung cấp một số đặc tính nhƣ:
 Có khả năng phát hiện một số lƣợng lớn các kiểu thăn dò, xâm nhập khác nhau
nhƣ: buffer oveflow, CGI-Atack, Scan, ICMP, Virus…
 Phát hiện nhanh các xâm nhập theo thời gian thực.
 Cung cấp cho nhà quản trị các thông tin cần thiết để xử lý các sự cố khi bị xâm
nhập.
 Giúp ngƣời quản trị tự đặt ra các dấu hiệu xâm nhập mới một cách dễ dàng.
 Là phần mềm Open source và khơng tốn kém chi phí đầu tƣ.
Snort đƣợc xây dựng với mục đích thỏa mãn các tính năng cơ bản sau: Có hiệu
năng cao hơn, đơn giản và có tính uyển chuyển cao.

Sinh viên: Nguyễn Thanh Liêm - 1051073777

8


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Hình 2.1:Sơ đồ khối của hệ thống Snort
Sơ đồ khối của một hệ thống phát hiện xâm nhập bao gồm Snort, MySQL,
Apache, ACID, BASE, PHP, thƣ viện GD và PHPLOT. Theo hình trên, dữ liệu đƣợc
thu thập và phân tích bởi Snort. Sau đó, Snort lƣu trữ dữ liệu trong cơ sở dữ liệu
MySQL bằng cách dùng output plug-in. Web server Apache với ACID, PHP, thƣ viện
GD và PHPLOT sẽ biểu diễn dữ liệu này trên trình duyệt khi một ngƣời dùng kết nối
đến server. Ngƣời dùng có tạo nhiều kiểu truy vấn khác nhau để phân tích dữ liệu.

Snort chủ yếu là một IDS dựa trên luật, tuy nhiên các input plug-in cũng tồn tại
để phát hiện sự bất thƣờng trong các header của giao thức.
Snort sử dụng các luật đƣợc lƣu trữ trong các file text, có thể đƣợc chỉnh sửa
bởi ngƣời quản trị. Các luật đƣợc nhóm thành các kiểu. Các luật thuộc về mỗi loại
đƣợc lƣu trong các file khác nhau. File cấu hình chính của Snort là Snort.conf. Snort
đọc những luật này vào lúc khởi tạo và xây dựng cấu trúc dữ liệu để cung cấp các luật
để bắt giữ dữ liệu. Tìm ra các dấu hiệu và sử dụng chúng trong các luật là một vấn đề
đòi hỏi sự tinh tế, vì ta càng sử dụng nhiều luật thì năng lực xử lý càng đƣợc đòi hỏi để
thu thập dữ liệu trong thực tế. Snort có một tập hợp các luật đƣợc định nghĩa trƣớc để
Sinh viên: Nguyễn Thanh Liêm - 1051073777

9


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

phát hiện các hành động xâm nhập và ta cũng có thể thêm vào các luật của chính ta. Ta
cũng có thể xóa một vài luật đã đƣợc tạo trƣớc để tránh việc báo động sai.
2.2 Các thành phần của Snort.
Snort đƣợc chia thành nhiều thành phần. Những thành phần này làm việc với
nhau để phát hiện các cách tấn công cụ thể và tạo ra output theo một định dạng đƣợc
đòi hỏi. Một IDS dựa trên Snort bao gồm các thành phần chính sau đây:
Bộ phận giải mã gói (Packet Decoder).
Bộ phận tiền xử lí (Preprocessor).
Bộ phận phát hiện (Dectection Engine).
Hệ thống ghi và cảnh báo (Logging và Alerting System).
Bộ phận đầu ra (Output Modules).

Hình 2.2: Thành phần xử lý gói tin của snort.


2.2.1 Bộ phận giải mã gói.
Bộ phận giải mã gói lấy các gói từ các giao diện mạng khác nhau và chuẩn bị
cho việc gói tin đƣợc xử lí trƣớc hoặc đƣợc gửi cho bộ phận phát hiện.
Sinh viên: Nguyễn Thanh Liêm - 1051073777

10


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

2.2.2 Bộ phận xử lí trước.

Hình 2.2.2: Preprocessor của snort.
Bộ phận xử lí trƣớc là những thành phần đƣợc sử dụng với Snort để sắp xếp
hoặc chỉnh sửa gói dữ liệu trƣớc khi bộ phận phát hiện làm một vài xử lý để tìm ra gói
tin có đƣợc sử dụng bởi kẻ xâm nhập hay không. Một vài bộ phận xử lý trƣớc cũng
thực thi việc phát hiện bằng cách tìm các dấu hiệu bất thƣờng trong header của gói tin
và tạo ra các cảnh báo. Bộ phận xử lí trƣớc là rất quan trọng trong bất kì IDS nào,
chúng chuẩn bị cho các gói dữ liệu đƣợc phân tích dựa trên các luật trong bộ phận phát
hiện. Kẻ tấn công sử dụng nhiều kĩ thuật khác nhau để lừa IDS theo nhiều cách. Bộ
phận xử lí trƣớc cũng đƣợc sử dụng để tái hợp các gói tin. Trên IDS, trƣớc khi áp dụng
bất kì luật nào, bạn phải tái hợp các gói tin lại để tìm ra các dấu hiệu. Bộ phận xử lí
trƣớc trong Snort có thể tái hợp các gói tin, giải mã HTTP URI, ráp lại các dòng TCP,
v.v... Những chức năng này rất quan trọng trong hệ thống phát hiện xâm nhập.

Sinh viên: Nguyễn Thanh Liêm - 1051073777

11



ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

2.2.3 Bộ phận phát hiện.
Đây là phần quan trọng nhất của Snort. Trách nhiệm của nó là phát hiện
có sự xâm nhập tồn tại trong gói tin hay khơng. Bộ phận phát hiện sử dụng các
luật của Snort cho mục đích này. Nếu một gói tin khơng giống với bất kì gói tin
bình thƣờng nào thì một hành động tƣơng ứng sẽ đƣợc thực hiện. Những gói tin
có dấu hiện bất thƣờng bị phát hiện, hành động phát hiện đƣợc mô tả băng
những biểu thức bao gồm các toán tử và các toán hang hay so sánh dùng để
nhận dạng ra xâm nhập.
2.2.4 Hệ thống ghi và cảnh báo.

Hình 2.2.4: Logging và Alerting System của snort.
Phụ thuộc những đặc tính mà bộ phận phát hiện tìm thấy trong gói tin, gói tin
có thể đƣợc sử dụng để ghi lại các hành vi hoặc tạo ra một cảnh báo. Các thông tin ghi
lại đƣợc giữ trong các file text đơn giản hoặc các dạng khác.
Bộ phận này rất quan trọng nó khơng chỉ đảm nhận nhiệm vụ. Mà cịn có thể
cho chúng ta xem đƣợc các hành vi khi sự kiện đƣợc ghi lại, từ đó có thể để ý và thấy
sự bất thƣờng ở những lần kế tiếp. Bộ phận này giúp ích cho những ngƣời làm quản
trị.

Sinh viên: Nguyễn Thanh Liêm - 1051073777

12


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

2.2.5 Bộ phận đầu ra.
Module đầu ra hoặc plug-in có thể hoạt động theo nhiều cách phụ thuộc vào

việc bạn muốn lƣu các output đƣợc tạo ra bằng hệ thống ghi và tạo cảnh báo nhƣ thế
nào.
Tuỳ thuộc vào cấu hình, Output Modules có thể làm việc giống nhƣ:
Ghi nhật ký vào file /var/log/Snort/alerts.
Gửi ra SNMP traps.
Ghi vào cơ sở dữ liệu giống nhƣ MySQL or Oracle ....
2.3 Các chế độ làm việc của Snort.
2.3.1 Chế độ “lắng nghe” mạng.

Hình 2.3.1.: Tính năng sniffer.
Các cơng cụ sniffer mạng nhƣ tcpdump, ethereal, và Tethereal có đầy đủ các
đặc tính và phân tích gói tin một cách xuất sắc, tuy nhiên, có lúc ta cần xem lƣu lƣợng
mạng trên bộ cảm biến Snort. Trong trƣờng hợp này, sử dụng Snort nhƣ là một sniffer
là khả thi. Kết quả xuất của chế độ Snort sniffer hơi khác so với các sniffer dịng lệnh.
Nó rất dễ để đọc và ta có thể thấy thích khả năng bắt giữ gói tin nhanh của nó. Một đặc
tính hay của chế độ này là việc tóm tắt lƣu lƣợng mạng khi kết thúc việc bắt giữ gói
tin. Thỉnh thoảng, nó có thể là một công cụ gỡ rối hữu dụng cho nhà quản trị.
Bật chế độ sniffer cho Snort bằng cờ -v:
# Snort –v
Sinh viên: Nguyễn Thanh Liêm - 1051073777

13


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Trong lúc khởi động, Snort hiển thị chế độ, thƣ mục ghi log, và các giao diện
mà nó đang lắng nghe. Khi việc khởi động hồn tất, Snort bắt đầu xuất các gói tin ra
màn hình. Kết quả xuất này khá cơ bản: nó chỉ hiển thị các header IP,TCP/UDP/ICMP
và một số cái khác. Để thoát chế độ sniffer, sử dụng Ctrl-C. Snort thoát bằng cách tạo

ra một bản tóm tắt các gói tin đƣợc bắt giữ, bao gồm các giao thức, thống kê phân
mảnh và tái hợp gói tin. Để xem dữ liệu ứng dụng, sử dụng cờ -d. Tùy chọn này cung
cấp các kết quả chi tiết hơn:
# Snort –vd
Dữ liệu ứng dụng có thể thấy đƣợc và ta có thể nhìn thấy các plain text trong
gói tin. Trong trƣờng hợp này, văn bản gửi từ một server DNS đƣợc thể hiện dƣới
dạng plain text. Để xem đƣợc chi tiết hơn, bao gồm các header lớp liên kết dữ liệu, sử
dụng cờ -e. Việc sử dụng cả hai tùy chọn –d và –e sẽ cho hiển thị hầu nhƣ tất cả các dữ
liệu trong gói tin:
# Snort –vde
Các chuỗi thập lục phân hiển thị nhiều dữ liệu hơn. Có địa chỉ MAC và địa chỉ
IP. Khi thực hiện kiểm tra trên một mạng hoặc bắt giữ dữ liệu bằng Snort, việc bật –
vde cung cấp nhiều thông tin nhất.
Để lƣu lại trong logfile thay vì xuất ra console, sử dụng Snort -dve > temp.log.
Tóm lại, đây là các tùy chọn có thể sử dụng với chế độ sniffer của Snort
2.3.2 Chế độ Packet logger
Bƣớc tiếp theo sau khi sniffing các gói tin là ghi log chúng. Việc ghi log chỉ đơn
giản bằng cách thêm tùy chọn –l, theo sau đó là thƣ mục mà ta muốn lƣu trữ các log.
Thƣ mục mặc định trong Snort là /var/log/Snort. Nếu ta xác định một thƣ mục khơng
tồn tại thì Snort sẽ báo một thơng điệp lỗi. Ta có thể sử dụng các tùy chọn –d, -a và –e
để điều khiển số lƣợng thông tin sẽ đƣợc ghi log cho mỗi gói tin. Trong ví dụ sau đây,
thƣ mục log đƣợc thiết lập là /usr/local/log/Snort, và các logfile bao gồm các payload
gói tin.
ví dụ: # Snort -l /usr/local/log/Snort –d
Khi chạy trong chế độ này, Snort thu thập mỗi gói tin nó thấy và lƣu chúng
trong thƣ mục log theo kiểu phân cấp. Nói cách khác, một thƣ mục mới đƣợc tạo ra
cho mỗi địa chỉ đƣợc bắt giữ 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ừ giao thức
và số cổng. Cách tổ chức này làm cho nhà quản trị có thể dễ dàng thấy đƣợc ai đang
kết nối với mạng, số cổng và giao thức họ đang sử dụng (sử dụng ls –R để liệt kê thƣ

Sinh viên: Nguyễn Thanh Liêm - 1051073777

14


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

mục log). Hãy nhớ xác định biến mạng (trong file cấu hình hoặc sử dụng -h) để xác
định chỉ ghi log cho mạng.
Cách tổ chức phân cấp này hữu dụng khi một số giới hạn các host đƣợc quan
tâm hoặc ta muốn xem thoáng qua các địa chỉ IP của các host đƣợc bắt giữ. Tuy nhiên,
thƣ mục log có thể ngày càng nhiều vì sự gia tăng thƣ mục và các file. Nếu ta ghi log
tất cả lƣu lƣợng trên một mạng lớn thì có thể sẽ bị tràn inodes (Unix giới hạn tổng số
file trong một file hệ thống) trƣớc khi bị tràn bộ nhớ. Nếu một ngƣời nào đó thực hiện
việc quét mạng của ta và ánh xạ tất cả 65536 cổng TCP cũng nhƣ 65536 cổng UDP, ta
sẽ đột ngột có hơn 131000 file trong một thƣ mục đơn. Sự bùng nổ file này có thể là
một thử thách lớn cho bất kì một máy nào, và rất dễ trở thành cách tấn công DoS. Việc
ghi log theo kiểu nhị phân có thể đọc đƣợc bởi Snort, tcpdump hoặc ethereal. Cách này
làm tăng tốc độ và khả năng vận chuyển của việc bắt giữ gói tin. Hầu hết các hệ thống
có thể bắt giữ và ghi log với tốc độ 100 Mbps mà khơng có vấn đề gì. Để ghi log các
gói tin theo kiểu nhị phân, sử dụng lựa chọn –b.
Ví dụ:# Snort -b -l /usr/local/log/Snort/temp.log
Khi ta đã thực hiện việc bắt giữ gói tin, ta có thể đọc lại các file vừa tạo ra bằng
khóa –r. Kết quả giống nhƣ sniffer của Snort. Lƣu ý rằng –r không thể sử dụng với –C.
# Snort -r /usr/local/log/Snort/temp.log
Ở chế độ này, Snort không giới hạn việc đọc dữ liệu nhị phân đƣợc lƣu trữ
trong chế độ sniffer
2.3.3 Chế độ phát hiện xâm nhập mạng (NIDS)
Snort là một công cụ phát hiện xâm nhập tuyệt vời. Khi đƣợc sử dụng nhƣ là
một NIDS, Snort cung cấp khả năng phát hiện xâm nhập gần nhƣ là thời gian thực.

Chúng ta sẽ xem rất nhiều cách mà Snort có thể đƣợc sử dụng nhƣ là một NIDS và tất
cả các tùy chọn cấu hình có thể. Trong chế độ cảnh báo, Snort cần một file cấu hình
(thật ra, chỉ cần xác định vị trí của file Snort.conf là đặt Snort trong chế độ này).
Vị trí mặc định của file này là /etc/Snort.conf. Nếu ta muốn đặt ở một vị trí
khác, ta phải sử dụng khóa –c kèm với vị trí đặt file. Các cảnh báo đƣợc đặt trong file
alert trong thƣ mục log (mặc định là /var/log/Snort). Snort sẽ thoát ra với với một lỗi
nếu file cấu hình hoặc thƣ mục log khơng tồn tại.
Các cài đặt mặc định cho hầu nhƣ tất cả các mục trong file này là khá tốt (mặc
dù sẽ có các cảnh báo nhầm). Biến duy nhất chúng ta mới thiết lập là biến
RULE_PATH, chỉ cho Snort nơi của các file luật. File cảnh báo nằm trong thƣ mục
/var/log/Snort. File này chứa các cảnh báo đƣợc tạo ra khi Snort đang chạy. Các cảnh
Sinh viên: Nguyễn Thanh Liêm - 1051073777

15


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

báo Snort đƣợc phân loại theo kiểu cảnh báo. Một luật Snort cũng xác định một mức
độ ƣu tiên cho một cảnh báo. Điều này cho phép ta lọc các cảnh báo có độ ƣu tiên
thấp.
2.3.4 Inline Mode
Inline Mode là một nhánh cơ chế hoạt động của Snort. Snort Inline kết hợp khả
năng ngăn chặn của Iptables vào bên trong Snort, sau đó đƣa ra những bổ sung và thay
đổi trong bộ qui tắc luật Snort để giúp iptables đƣa ra những động cho phép hay hủy
một gói tin. Ba loại quy tắc mới đƣợc bổ sung khi hoạt động ở chế độ này đó là: Drop,
reject, sdrop
2.4 Làm việc với tập luật của Snort
Giống nhƣ virut, hấu hết các hành vi xâm nhập đều có một vài dấu hiệu. Thơng
tin về các dấu hiệu này đƣợc sử dụng để tạo ra các luật của Snort. Bạn có thể sử dụng

honey post để biết kẻ xâm nhập đang làm gì và thơng tin về các cơng cụ và kĩ thuật
của chúng. Ngồi ra, có các sơ sở dữ liệu về các điểm yếu mà kẻ xâm nhập muốn khai
thác. Những cách tấn công đã biết này cũng có thể đƣợc sử dụng nhƣ là các dấu hiệu
để phát hiện một ngƣời nào đó muốn tấn cơng hệ thống của bạn. Các dấu hiệu có thể
tồn tại trong header của các gói tin. Hệ thống phát hiện xâm nhập dựa trên Snort thì
dựa trên các luật. Các luật của Snort có thể đƣợc sử dụng để kiểm tra nhiều phần khác
nhau của gói tin.
Một luật có thể đƣợc sử dụng để tạo ra một thông điệp cảnh báo, ghi lại một
thông điệp..., hoặc trong Snort là “pass” gói tin. Hầu hết các luật của Snort đƣợc viết
theo từng dịng đơn. Tuy nhiên, bạn cũng có thể mở rộng các luật thành nhiều dòng
bằng cách sử dụng kí tự gạch chéo ngƣợc tại cuối dịng. Các luật thƣờng đƣợc đặt
trong file cấu hình, thƣờng là snort.conf. Bạn cũng có thể sử dụng nhiều file bằng
cách gom chúng lại trong một file cấu hình chính.
Cấu trúc chung của luật trong Snort:
Tất cả các luật Snort đều có hai phần chính: header và options

Rule header

Rule Options

Phần header chứa các thông tin về hành động mà luật sẽ thực hiện. Nó cũng
chứa các tiêu chuẩn về việc so sánh một luật trên một gói tin. Phần option thƣờng chứa
Sinh viên: Nguyễn Thanh Liêm - 1051073777

16


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

một thông điệp cảnh báo và thơng tin về phần nào của gói tin đƣợc sử dụng để tạo ra

cảnh báo. Một luật có thể phát hiện một hoặc nhiều kiểu xâm nhập.
2.4.1 Rule header.
Cấu trúc tổng quát của phần header nhƣ sau:
Action

Protocol

Trƣờng Rule header
Action

Address

Port

Mô tả trƣờng

Direction

Address

Port

Giải thích

Xác định kiểu hành động đƣợc thực hiện khi một
tiêu chuẩn đƣợc so trùng và một luật giống với
gói tin dữ liệu. Hành động điển hình là việc tạo ra
các cảnh báo hoặc ghi lại các thông điệp log.
Dƣới đây là các action trong rule header.
Pass


Dùng thông báo cho Snort bỏ
qua gói tin. Action này là một
tuỳ chọn đóng vai trị quan
trọng trong việc làm tăng tốc
độ xử lý của Snort khi ta không
muốn kiểm tra nội dung của
các gói tin.

Log

Action dùng để log những gói
tin, có rất nhiều cách khác nhau
để log các gói tin. Nhƣ là log
vào file text hoặc vào database.
Gói tin có thể đƣợc log với
những độ ƣu tiên khác nhau,
tuỳ thuộc vào tham số dịng
lệnh đi theo và file cấu hình.

Alert

Sinh viên: Nguyễn Thanh Liêm - 1051073777

Dùng để gửi một tin nhắn đến
admin khi một gói tin co dấu
hiệu trùng hợp trong rule. Có
nhiều cách khác nhau để thực

17



ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

thi một alert nhƣ thông báo lên
console, log vào file…
Activate

Dùng để tạo một alert và khi
đó sẽ sử dụng các rule khác để
kiểm tra nhiều mối rằng buộc
hơn. Dynamic rule dùng cho
trƣờng hợp này.

User có thể tự tạo cho riêng mình những action
khác nhau, theo trƣờng hợp cụ thể.
Protocol

Đƣợc sử dụng để áp dụng luật trên gói tin cho một
giao thức cụ thể. Phần protocol đƣợc sử dụng để
áp dụng luật trên các gói tin chỉ đối với một giao
thức cụ thể. Đây là tiêu chuẩn đầu tiên đƣợc đề
cập trong luật. Một vài giao thức đƣợc sử dụng
nhƣ là IP, ICMP, UDP, TCP.

Address

Xác định đại chỉ nguồn và địa chỉ đích. Địa chỉ có
thể là của một host, nhiều host hoặc là địa chỉ
mạng. Lƣu ý rằng trong một luật sẽ có 2 địa chỉ:

địa chỉ nguồn và địa chỉ đích.

Port

Đƣợc áp dụng trong trƣờng hợp TCP hay UDP,
xác định cổng nguồn và đích của một gói tin mà
luật đƣợc áp dụng. Trong trƣờng hợp giao thức
lớp mạng là IP và ICMP, số port là khơng có ý
nghĩa.

Direction

Đƣợc dùng xác định địa chỉ và cổng nào đƣợc sử
dụng nhƣ là nguồn hay là đích.

Ví dụ: Xét một luật sau đây. Luật này sẽ tạo ra một thơng điệp cảnh báo bất cứ
khi nào nó phát hiện một gói tin ping ICMP (ICMP ECHO REQUEST) với TTL là
150, nhƣ sau:
alert icmp any any -> any any (msg: "Ping with TTL=150";\ ttl: 150 :)

Sinh viên: Nguyễn Thanh Liêm - 1051073777

18


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

2.4.2 Rule option.
Rule option theo sau rule header và đƣợc đóng gói trong dấu ngoặc đơn. Có thể
có một hoặc nhiều option, đƣợc cách nhau bởi dấu phẩy. Nếu bạn sử dụng nhiều

option, những option hình thành phép logic AND. Một action trong rule header chỉ
đƣợc thực hiện khi tất cả các option đều đúng. Tất cả các option đƣợc định nghĩa bằng
các từ khóa. Một vài option cũng chứa các tham số. Thông thƣờng, một option có thể
có 2 phần: từ khóa và đối số. Các đối số đƣợc phân biệt với từ khóa bằng dấu hai
chấm.
Ví dụ: msg: "Detected confidential";
Trong option này thì msg là từ khóa và "Detected confidential" là đối số của từ
khóa
Phần tiếp theo là các từ khóa đƣợc sử dụng trong phần option của luật Snort.
Trƣờng Rule option

Mô tả trƣờng

Giải thích
TCP header chứa một
trƣờng cknowledgement
Number dài 32 bit.

Ack: < number>;

Trƣờng này chỉ ra rằng
sequence number kế tiếp
của ngƣời gửi đƣợc
mong đợi. Trƣờng này
chỉ có ý nghĩa khi cờ
flag trong trƣờng TCP
đƣợc thiết lập.

Name


Classtype

Sinh viên: Nguyễn Thanh Liêm - 1051073777

Tên đƣợc sử dụng cho
việc phân loại. Tên đƣợc
sử dụng với từ khóa
classtype trong luật
Snort.

19


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Description

Mô tả ngắn về kiểu phân
loại.

Priority

Thứ tự ƣu tiên mặc định
cho sự phân loại, có thể
đƣợc chỉnh sửa bằng từ
khóa priority. Priority
càng thấp thì độ ƣu tiên
càng cao

content

content: <straight text>;
content: <hex data>;

Một đặc tính quan trọng của Snort là khả
năng tìm thấy một mẫu dữ liệu trong một
gói tin. Mẫu đó có thể tồn tại dƣới dạng
một chuỗi ASCII hoặc là các kí tự thập
lục phân. Giống nhƣ virut, những kẻ xâm
nhập cũng có các dấu hiệu và từ khóa
content để có thể tìm ra các dấu hiệu
trong các gói tin.

Sinh viên: Nguyễn Thanh Liêm - 1051073777

20


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Từ khóa offset đƣợc sử dụng kết hợp với
từ khóa content. Sử dụng từ khóa này, bạn
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.
offset : < value>;

Một đặc tính quan trọng của Snort là khả
năng tìm thấy một mẫu dữ liệu trong một
gói tin. Mẫu đó có thể tồn tại dƣới dạng

một chuỗi ASCII hoặc là các kí tự thập
lục phân. Giống nhƣ virut, những kẻ xâm
nhập cũng có các dấu hiệu và từ khóa
content để có thể tìm ra các dấu hiệu
trong các gói tin. Vì Snort phiên bản 1.x
khơng hỗ trợ các giao thức ở lớp ứng
dụng nên từ khóa này, cùng với từ khóa
offset, cũng có thể đƣợc sử dụng để xem
xét header của lớp ứng dụng.

Depth: < value>;

Từ khóa depth cũng đƣợc sử dụng kết hợp
với từ khóa content để xác định giới hạn
trên của việc so sánh mẫu. Sử dụng từ
khóa này, bạn 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
bạn dùng cả hai từ khóa offset và depth
thì bạn có thể xác định một khoảng dữ
liệu thực hiện việc so sánh mẫu.

Sinh viên: Nguyễn Thanh Liêm - 1051073777

21


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Nocase


Từ khóa nocase đƣợ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
trong trƣờng hợp vơ tình.

Content_list:<filename>;

Từ khóa content-list đƣợc sử dụng với tên
của một file nhƣ là đối số của từ khóa
này. File này sẽ chứa một danh sách các
chuỗi sẽ đƣợc tìm kiếm trong một gói tin.
Mỗi chuỗi đƣợc đặt trên các dịng khác
nhau của file.

Drsize: [<|>] < number>;

Từ khóa dsize đƣợ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 các gói tin có kích
thƣớc lớn. Sử dụng từ khóa này, bạn có
thể tìm thấy các gói tin có chiều dài dữ
liệu lớn hoặc nhỏ hơn một số xác định.

Flags: < flags>;

Từ khóa flags đƣợc sử dụng để tìm ra bit
flag nào đƣợc thiết lập trong header TCP
của gói tin. Mỗi flag có thể đƣợc sử dụng

nhƣ một đối số của từ khóa flags trong
luật Snort. Những bit flag này đƣợc sử
dụng bởi nhiều các cơng cụ bảo mật với
nhiều mục đích trong đó có việc quét các
cổng nhƣ nmap.

Sinh viên: Nguyễn Thanh Liêm - 1051073777

22


ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Fragbits:<flag_settings>;

Sử dụng từ khóa này, bạn có thể tìm ra
những bit RB (Reserved Bit), DF(Don't
Fragment Bit), MF(More Fragments Bit)
trong header IP có đƣợc bật lên hay
không.

Icmp_id: < number>;

Option icmp_id đƣợc sử dụng để phát
hiện một ID cụ thể đƣợc sử dụng với một
gói tin ICMP.

Icmp_seq: < hex_value>;

Option icmp_seq giống nhƣ từ khóa

icmp_id.

Itype: < number>;

Header ICMP nằm sau header IP và chứa
trƣờng type. Từ khóa itype đƣợc sử dụng
để phát hiện các cách tấn công sử dụng
trƣờng type trong header ICMP của gói
tin.

Icode: < number>;

Trong gói tin ICMP, header ICMP đi sau
header IP. Nó chứa một trƣờng code. Từ
khóa icode đƣợc sử dụng để phát hiện
trƣờng code trong header gói tin ICMP.

Id: < number>;

Từ khóa id đƣợc sử dụng để đối chiếu
trƣờng fragment 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 sử dụng một số ID cố định.

Sinh viên: Nguyễn Thanh Liêm - 1051073777

23



×