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

ĐỒ ÁN CHUYÊN NGHÀNH XÂY DỰNG ỨNG DỤNG SNORT TRONG HỆ THỐNG IDS TRÊN MÃ NGUỒN

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.42 MB, 48 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN CHUYÊN NGHÀNH

XÂY DỰNG ỨNG DỤNG SNORT TRONG HỆ
THỐNG IDS TRÊN MÃ NGUỒN

Giảng viên hướng dẫn: ThS. VƯƠNG XUÂN CHÍ
Sinh viên thực hiện:
NGUYỄN BẢO ANH
MSSV:
1800003565
Chuyên ngành:
Kỹ thuật máy tính
Mơn học:
Đồ án chun nghành KTMT
Khóa:
2018

Tp.HCM, tháng …. năm 2021

Trường Đại học Nguyễn Tất Thành
Khoa Công Nghệ Thơng Tin
   

1

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM


Độc lập – Tự do – Hạnh phúc
   


1

NHIỆM VỤ ĐỒ ÁN CHUYÊN NGHÀNH

2

(Sinh viên phải đóng tờ này vào báo cáo

3

Họ và tên: Nguyễn Bảo Anh…………………………..…...MSSV: 1800003565……………

4

Chuyên ngành: Mạng Máy tính và Truyền thơng……….. Lớp: 18DTH3A………………..

5

Email:

6

Tên đề tài: Xây dựng ứng dụng Snort trong hệ thống IDS trên mã nguồn mở……………

7


Gíao viên hướng dẫn: Vương Xuân Chí

8
9
10

SĐT: 0767995019……………...

Thời gian thực hiện:

/

/2021 đến

/

/2021

Nhiệm vụ/nội dung (mô tả chi tiết nội dung, yêu cầu, phương pháp… ) :
MÔ TẢ ĐỀ TÀI:

11

Hệ thống phát hiện xâm nhập (IDS) là hệ thống có nhiệm vụ theo dõi, phát hiện và có thể

12

ngăn cản sự xâm nhập, cũng như các hành vi khai thác trái phép tài nguyên của hệ thống

13


được bảo vệ mà có thể dẫn đến việc làm tổn hại đến tính bảo mật, tính tồn vẹn và tính

14

sẵn sàng của hệ thống.

15

NỘI DUNG VÀ PHƯƠNG PHÁP:

16

- Tìm hiểu hệ thống IDS và IPS

17

- Triển khai Snort trong hệ thống IDS

18

- Xây dựng (mô phỏng) một ứng dụng Snort trong hệ thống IDS (Intrusion Detection

19

System) trên hệ điều hành Linux

20

YÊU CẦU:


21

Có kiến thức về mạng, đọc hiểu tài liệu tiếng Anh. Kỹ năng trình bày văn bản trên máy

22

tính tốt Có tác phong làm việc chăm chỉ, tinh thần trách nhiệm cao

23

Nội dung và yêu cầu đã được thông qua Bộ môn.

24

TP.HCM, ngày 20 tháng 6 năm 2021
TRƯỞNG BỘ MÔN

GIÁO VIÊN HƯỚNG DẪN

(Ký và ghi rõ họ tên)

(Ký và ghi rõ họ tên)

25
26
27
28
29


2

TS. Nguyễn Kim Quốc

ThS. Vương Xuân Chí

LỜI CẢM ƠN


30

Để có được Bài báo cáo này, Em xin bày tỏ lịng kính trọng và biết ơn sâu sắc tới

31

Thầy ThS.Vương Xuân Chí, người đã cố gắng nhắc nhở, chỉ dạy tận tình và động

32

hướng dẫn về mẫu chuẩn báo cáo và bài tập đồ án để chúng em thực hiện Đồ án

33

chuyên nghành KTMT.

34
35

Em xin chân thành cảm ơn các thầy cô giáo trong khoa Khoa Học Công Nghệ


36

trường Đại Học Nguyễn Tất Thành đã tận tình giảng dạy, truyền đạt cho chúng em

37

những kiến thức quý báu trong suốt thời gian qua.

38
39

Trong khoảng gian thực hiện đồ án, những điều sai và thiếu kinh nghiệm vì kiến

40

thức cịn rất hạn hẹp. Cho nên bài tập đồ án sẽ khơng tránh khỏi những sơ sót đáng

41

tiếc. Em xin cảm ơn thầy đã đọc hết bài tập đồ án của chúng em và mong thầy góp ý

42

nhận xét để chúng em hoàn thành đề tài này.

43
44
45
46
47


Họ và tên sinh viên

48

Nguyễn Bảo Anh

49
50
51
52
53

LỜI MỞ ĐẦU

54

Trong bối cảnh tiến trình hội nhập, vấn đề an ninh mạng và bảo mật dữ liệu đang

55

trở nên rất được quan tâm không chỉ ở Việt Nam mà trên toàn thế giới. Khi cơ sở hạ

3


56

tầng và các công nghệ mạng đã đáp ứng tốt các yêu cầu về băng thông, chất lượng


57

dịch vụ, đồng thời thực trạng tấn công trên mạng đang ngày một gia tăng thì vấn đề

58

bảo mật càng được chú trọng hơn bao giờ hết. Không chỉ các nhà cung cấp dịch vụ

59

Internet, các cơ quan chính phủ mà các doanh nghiệp, tổ chức cũng có ý thức hơn về

60

an tồn thông tin.

61
62

Triển khai một hệ thống thông tin và xây dựng được cơ chế bảo vệ chặt chẽ, an
toàn, là góp phần duy trì tính bền vững cho hệ thống thơng tin của doanh nghiệp đó.

63

Chúng ta đều hiểu rằng an tồn thơng tin là tài sản vơ giá đối với một doanh

64

nghiệp, không chỉ thuần tuý về mặt vật chất mà đây còn là giá trị về mặt chữ tín, nhất


65

là đối với những tổ chức thường xuyên hoạt động trên mảng thương mại điện tử, dịch

66

vụ, ngân hàng….Chính vì vậy, tất cả những hệ thống này cần được trang bị những

67

cơng cụ phịng chống đủ mạnh để có thể đối phó khi có những tấn cơng vào hệ thống

68

mạng. Am hiểu các cách thức tấn công cũng như những phương pháp phòng vệ khi

69

triển khai và xây dựng một hệ thống mạng là điều cần thiết đối với một người quản

70

trị, và đó là lý do để chúng tôi thực hiện đồ án “ Xây dựng ứng dụng Snort trong hệ

71

thống IDS trên mã nguồn mở ” này.

72


73

74

75

76

77
78
79
80

4

PHẦN NHẬN XÉT + CHẤM ĐIỂM CỦA GIẢNG VIÊN
.................................................................................................................
.................................................................................................................
.................................................................................................................


91

.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................

.................................................................................................................
.................................................................................................................
.................................................................................................................
.................................................................................................................

92

Điểm giáo viên hướng dẫn:

93

.................................................................................................................

94

Điểm giảng viên chấm vòng 2:

81
82
83
84
85
86
87
88
89
90

95
96

97

.................................................................................................................
.................................................................................................................
.................................................................................................................

98

Giảng viên chấm vòng 2

TPHCM, Ngày …… tháng …… năm
Giáo viên hướng dẫn

99
100
101
102
103
104
105
106
107
108
109
110
111
112
113

5


MỤC LỤC


114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139

140
141
142
143
144
145
146
147
148
149

6

DANH MỤC CÁC BẢNG BIỂU


150
151
152
153
154
155
156

157
158
159
160
161
162

163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190

7


DANH MỤC CÁC HÌNH ẢNH


191

DANH MỤC CÁC TỪ VIẾT TẮT

192
193
194

195

8

IDS

Intrusion Detection System

IPS

Intrusion Prention System

HIDS

Host Intrusion Detection System

NIDS


Network Intrusion Detection

FTP

File Transfer Protocol

TCP

Transport Control Protocol

IP

Internet Protocol

VPN

Virtual Private Network

DNZ

Domain Name System


9

196
197

CHƯƠNG 1: TỔNG QUAN VỀ IDS/IPS
1.1 GIỚI THIỆU VỀ IDS/IPS


198

- Hệ thống phát hiện xâm nhập – IDS(Intrusion Detection System) là một hệ

199

thống có nhiệm vụ giám sát các luồng dữ liệu traffic đang lưu thơng trên mạng, có

200

khả năng phát hiện những hành động khả nghi, những xâm nhập trái phép cũng như

201

khai thác bất hợp pháp nguồn tài nguyên của hệ thống mà từ đó có thể dẫn đến xâm

202

hại tính tồn ổn định, tồn vẹn và sẵn sàng của hệ thống.

203

- IDS có thể phân biệt được những cuộc tấn cơng xuất phát từ bên ngồi hay từ

204

chính bên trong hệ thống bằng cách dựa vào một database dấu hiệu đặc biệt về những

205


cuộc tấn công (smurf attack, buffer overflow, packet sniffers….). Khi một hệ thống

206

IDS có khả năng ngăn chặn các cuộc tấn thì nó được gọi là hệ thống phòng chống

207

xâm nhập – IPS (Intrusion Prevention System).

208

 Sự khác nhau giữa IDS và IPS:

209

- Có thể nhận thấy sự khác biệt giữa hai khái niệm ngay ở tên gọi: “phát hiện”

210

và “ngăn chặn”. Các hệ thống IDS được thiết kế với mục đích chủ yếu là phát hiện và

211

cảnh báo các nguy cơ xâm nhập đối với mạng máy tính nó đang bảo vệ trong khi đó,

212

một hệ thống IPS ngồi khả năng phát hiện cịn có thể tự hành động chống lại các


213

nguy cơ theo các quy định được người quản trị thiết lập sẵn.

214

1.2 KHÁI NIỆM VỀ HỆ THỐNG PHÁT HIỆN XÂM NHẬP

215

1.2.1 Phát hiện xâm nhập là gì ?

216

- 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 để

217

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

218

xâm nhập có hai loại cơ bản: phát hiện xâm nhập dựa trên dấu hiệu signature và phát

219

hiện sự bất thường.

220


a) Phát hiện dựa trên dấu hiệu (signature)

221

- Phương pháp này có hiệu quả với những dấu hiệu đã biết trước, như virus máy

222

tính, có thể được phát hiện bằng `cách sử dụng phần mềm để tìm các gói dữ liệu có

223

liên quan đến sự xâm nhập trong các giao thức Internet. Dựa trên một tập hợp các dấu

224

hiệu và các quy tắc, hệ thống phát hiện xâm nhập có thể tìm thấy và ghi log lại các

225

hoạt động đáng ngờ và tạo ra các cảnh báo. Tuy nhiên phương pháp này hầu như

10
11

9


12


226

khơng có tác dụng với những cuộc tấn cơng mới, quy mô phức tạp, sử dụng các kỹ

227

thuật lẩn tránh (evation technique)… do chưa có được thơng tin về cuộc tấn công.

228

b) Phát hiện sự bất thường

229

- Phương pháp này thiết lập và ghi nhận trạng thái hoạt động ổn định của hệ thống,

230

sau đó 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.

231

Khi nhận ra sự khác biệt lớn trong hệ thống thì có khả năng đã xảy ra một cuộc tấn

232

cơng. Phát hiện xâm nhập dựa trên sự bất thường thường phụ thuộc vào các gói tin

233


hiện diện trong phần tiêu đề giao thức. Trong một số trường hợp các phương pháp

234

này cho kết quả tốt hơn so với IDS dựa trên signature. Thông thường một hệ thống

235

phát hiện xâm nhập thu thập dữ liệu từ mạng và áp dụng luật của nó với dữ liệu để

236

phát hiện bất thường trong đó. Snort là một IDS chủ yếu dựa trên các luật lệ, và

237

những plug-in hiện nay để phát hiện bất thường trong tiêu đề giao thức.

238

Q trình phát hiện có thể được mô tả bởi 3 yếu tố cơ bản nền tảng sau:

239

Thu thập thông tin (information source):
Kiểm tra các gói tin trên mạng.
Sự phân tích (Analysis): Phân tích các gói tin đã thu thập để nhận biết hành

240

241



242

động nào là tấn công.

243



244



Cảnh báo (response): hành động cảnh báo cho sự tấn cơng được phân tích ở
trên.

245

- Snort sử dụng các quy tắc được lưu trữ trong các tập tin văn bản có thể sửa đổi.

246

Nội quy được nhóm lại trong các chuyên mục và được lưu trữ trong các tập tin riêng

247

biệt. Những tập tin này sau đó được tập hợp trong một tập tin cấu hình chính gọi là


248

snort.conf. Snort đọc những quy định này trong thời gian khởi động và xây dựng cấu

249

trúc dữ liệu nội bộ hoặc dây chuyền để áp dụng những quy tắc này capture dữ liệu.

250

Tìm và sử lý dấu hiệu theo các luật là một việc khó khăn vì việc xử lý yêu cầu phải

251

capture và phân tích dữ liệu trong một thời gian. Snort đi kèm với một tập hợp phong

252

phú của các tiền quy tắc xác định để phát hiện hoạt động xâm nhập, bạn cũng có thể

253

tự thêm hoặc loại bỏ các quy tắc tùy thuộc vào mục đích cảnh báo của hệ thống.

254
255
256

13

14

10


15

257
258
259

1.3. CẤU TRÚC CỦA HỆ THỐNG
Hình 1.IDS/IPS
1 IDS và IPS

260

Các thành phần cơ bản

261
262

-

Sensor/Agent: Giám sát và phân tích các hoạt động.
Management Server: Là thiết bị trung tâm dùng thu nhận các thông tin từ

263

Sensor/Agent và quản lý chúng, management server thường là các máy trạm trọng


264
265
266
267

một hệ thông.
Database server: Dùng lưu trữ các thông tin từ Sensor/Agent hay
Management Server.
Console: Là chương trình cung cấp giao diện 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.

268
269

1.4. PHẤN LOẠI IDS/IPS

270

Các hệ thống IDS được chia thành 2 loại sau:
- Host-based IDS (HIDS): Sử dụng dữ liệu kiểm tra trên một hoặc vài máy đơn để

271
272

phát hiện xâm nhập.
- Network-based IDS (NIDS): Sử dụng dữ liệu trên tồn bộ lưu thơng mạng, cùng


273
274

với dữ liệu kiểm tra từ cá bộ cảm biến và một vài máy trạm để phát hiện xâm nhập.

275

1.4.1. Network based IDS – NIDS

276
277

-

NIDS thường bao gồm có hai thành phần logic:
Bộ cảm biến – Sensor: đặt tại một đoạn mạng , kiểm soát các cuộc lưu thơng nghi

-

ngờ trên đoan mạng đó.
Trạm quản lý: nhận các tín hiệu cảnh báo từ bộ cảm biến và thông báo cho một

-

điều hành viên.
Một NIDS truyền thống với hai bộ cảm biến trên các đoạn mạng khác nhau cùng

278
279

280
281
282
283

giao tiếp với một mạng kiểm soát.
1.5. GIỚI THIỆU VỀ HỆ THỐNG SNORT

284

- Snort được phát triển năm 1998 bởi Sourcefire và CTO Martin Roesch, là 1 phần

285

mềm miễn phí mã nguồn mở có khả năng phát hiện và phòng chống xâm nhập trái

286

phép vào hệ thống mạng có khả năng phân tích thời gian thực lưu lượng mạng, và ghi

287

log gói tin trên nền mạng IP. Ban đầu được gọi cơng nghệ phát hiện và phịng chống

288

xâm nhập hạng nhẹ, Snort đã dần phát triển và trở thành tiêu chuẩn trong việc phát

289


hiện và phòng chống xâm nhập.

16
17

11


18

290

- Snort thực hiện việc tìm kiếm và phân tích nội dung các giao thức của các traffic

291

lưu thông trên mạng, từ đó có thể phát hiện ra các kiểu thăm dị và tấn cơng như

292

buffer overflow, stealth ports scanning….Các thông tin thu thập sẽ được ghi log lại và

293

cảnh báo đến console của người quản trị trong thời gian thực.

294

Snort có thể sử dụng với một số cơ chế:


295
296

- Sniffer mode: là chế độ cho phép bạn có thể theo dõi và đọc các luồng dữ liệu ra
vào hệ thống mạng được hiển thị trên màn hình điều khiển.

297

- Packet Logger mode: cho phép ghi các logs dữ liệu vào đĩa lưu trữ.

298

- Network Intrusion Detection System (NIDS) mode: là cơ chế được cấu hình phức

299

tạp nhất, cho phép Snort phân tích các luồng dữ liệu, trong đó kiểm sốt cho (hay

300

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

301

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ì

302

mà Snort nhìn thấy.


303

1.6. CÁC THÀNH PHẦN CỦA SNORT

304

- Snort bao gồm nhiều thành phần. Mỗi phần có một chức năng riêng biệt nhưng

305

làm việc cùng nhau để góp phần đưa ra các nhận định giúp phát hiện các cuộc tấn

306

công cụ thể và tạo ra output theo một định dạng cần thiết từ hệ thống. Một IDS dựa

307

trên Snort bao gồm các thành phần chính sau đây:

308



309



310




311



312



313

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 xuất thông tin (Output Module)

a) Module giải mã (Packet Decoder)

314

- Module giải mã lấy các gói dữ liệu từ các giao diện mạng khác nhau và chuẩn bị

315

cho việc các gói tin sẽ được xử lý trước khi được gửi đến module phát hiện. Các giao

316


diện có thể là Ethernet, SLIP, PPP….

317
318
319

b) Module tiền xử lý (Preprocessors)

320

- Module tiền xử lý là những thành phần được sử dụng với Snort để sắp xếp hoặc

321

sửa đổi các gói dữ liệu trước khi module phát hiện kiểm tra xem gói tin đã được xử

19
20

12


21

322

dụng bởi kẻ xâm nhập hay không. Module tiền xử lý là phần rất quan trọng trong IDS

323


để chuẩn bị các gói dữ liệu cho việc phân tích dựa vào các luật trong module phát

324

hiện. Hacker sử dụng các kỹ thuật khác nhau để đánh lừa IDS bằng nhiều cách. Ví

325

dụ: bạn có thể đã tạo ra một quy tắc để tìm một chuỗi ký tự "scripts/iisadmin" trong

326

gói

327

HTTP. Nếu bạn đang kết hợp chuỗi này chính xác, bạn có thể dễ dàng bị lừa bởi một

328

hacker khi đã làm thay đổi chút ít các chuỗi này.

329

"scripts/./iisadmin"

330

"scripts/examples/../iisadmin"


331

"scripts\iisadmin"

332

"scripts/.\iisadmin"

333

c) Module phát hiện (Detection Engine)

334

- Một vấn đề rất quan trọng trong module phát hiện là thời gian thực thi, xử lý các

335

gói tin. Tùy thuộc vào hệ thống của bạn mạnh như thế nào mà sẽ tốn những khoảng

336

thời gian khác nhau để xử lý, vì một IDS thường nhận được rất nhiều gói tin, tương

337

ứng với việc cũng có rất nhiều các luật được thực thi. Nếu lưu lượng cần xử lý trên

338


mạng là quá lớn khi Snort đang hoạt động trong chế độ NIDS, bạn có thể mất một vài

339

gói tin hoặc thời gian đáp ứng khơng chính xác. Khả năng xử lý của module phát hiện

340

phụ thuộc vào các yếu tố sau:

341
342
343
344






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

345

- Khi xây dựng một hệ thống phát hiện xâm nhập, bạn phải lưu ý tất cả các yếu tố

346


này để hệ thống có thể hoạt động hiệu quả. Lưu ý là module phát hiện có thể phân

347

tích các gói tin và áp dụng các luật đối với các phần khác nhau của một gói tin. Đó là:

348
349
350
351
352






IP header của gói tin
Header của lớp vận chuyển, bao gồm TCP, UDP…Nó cũng có thể làm việc
Trên header ICMP
Header của lớp ứng dụng như header của DNS, FTP, SNMP hay SMTP…

- Tải trọng của gói: Điều này có nghĩa bạn có thể tạo ra các luật sử dụng module

353

phát hiện để tìm kiếm một chuỗi nằm trong dữ liệu của một gói tin.

354


d) Module ghi và cảnh báo (Logging and Alerting System)

22
23

13


24

355

- Tùy thuộc việc module phát hiện có nhận dạng được xâm nhập hay khơng mà

356

một gói tin có thể được ghi log hay đưa ra một cảnh báo. Các file log được lưu dưới

357

các định dạng đơn giản như tcpdump hoặc một vài dạng khác, tất cả được lưu trữ

358

trong folder mặc định /var/log/snort. Bạn có thể sử dụng tùy chọn –l trong command

359

line để thay đổi vị trí tạo ra các log file và cảnh báo.


360

e) Module Output (Output Module)

361

- Module đầu ra có thể hoạt động theo nhiều cách phụ thuộc vào việc muốn lưu

362

các kết quả được tạo ra bằng module ghi và cảnh báo như thế nào. Tùy theo việc cấu

363

hình hệ thống mà nó có thể thực hiện các cơng việc như là:

364
365
366
367
368
369
370
371
372











Ghi log file vào thư mục mặc định /var/log/snort/alerts hoặc một nơi khác.
Gửi các cảnh báo SNMP.
Gửi thông tin tới syslog.
Đăng nhập vào một cơ sở dữ liệu như MySQL hoặc Oracle.
Tạo ra các output XML.
Cấu hình lại Router, firewall.
Gửi các thơng điệp Server Message Block (SMB) tới các máy tính
Windows.

373
374
375
376
377
378
379

Bảng 1. 1 Snort

380
381
382
383


1.7. CÁC CHẾ ĐỘ HOẠT ĐỘNG CỦA SNORT

384

1.7.1. Sniffer Mode

385

- Đây là một tính năng cơ bản dễ dàng sử dụng nhưng rất hiệu quả trong việc

386

giám sát các luồng dữ liệu đang lưu thơng trên hệ thống. Nó có khả năng tạo ra một

387

bảng tóm tắt về các traffic trên mạng sau khi capture các gói tin, từ đó giúp người

25
26

14


27

388

quản trị có cái nhìn tổng quan về hệ thống. Nếu bạn chỉ quan tâm đến thơng tin của


389

những gói tin TCP/IP packet headers, hãy bắt đầu với khóa -v:

390

./snort –v

391

1.7.2. Packet Logger Mode
- Nếu bạn 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ư

392
393

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

394
395

1.7.3. Network Intrusion Detection System Mode gồm:
- Kích hoạt hệ thống phát hiện xâm nhập mạng (NIDS) để bạn khơng phải ghi lại

396
397

tất cả gói đơn lẻ được gửi xuống bằng lệnh:


398

./snort -d -h 192.168.1.0/24 -l file./log -c snort.conf

399

a) NIDS Mode Output Options.

400

- Có một số cách để cấu hình đầu ra output của Snort ở chế độ NIDS. Mặc định

401

log sẽ được ghi theo định dạng ASCII và được đặt trong cơ chế cảnh báo toàn phần.

402

Cơ chế cảnh báo tồn phần sẽ hiển thị thơng điệp cảnh báo cùng với tồn bộ các

403

packet headers. Ngồi ra cịn có các cơ chế cảnh báo bằng việc thực thi các dòng lệnh

404

cũng như việc log các dữ liệu.

405


- Cơ chế cảnh báo của Snort khá phức tạp với bảy chế độ hoạt động theo các dịng

406

lệnh, đó là: full, fast, socket, syslog, console, cmg, và none. Sáu trong số các chế độ

407

này thực hiện với khóa –A tại dịng lệnh.

408

b) Understanding Standard Alert Output.

409

Khi Snort tạo ra một thông điệp cảnh báo, nó thường dựa vào cấu trúc giống

410

như sau:

411

[**] [116:56:1] (snort_decoder): T/TCP phát hiện [**]

412

1.7.4. Inline Mode:


413
414

-

415

Inline Mode là một nhánh cơ chế hoạt động của Snort.
Có ba loại quy tắc có thể sử dụng khi chạy Snort với Snort Inline: Drop, Reject,
Sdrop.

416

a) Snort Inline Rule Application Order .

417

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à:

418

Activation->dynamic->drop->sdrop->reject->alert->pass->log.

28
29

15


30


419

Trong inline-mode, trình tự ưu tiên này được thay đổi như sau:

420

Activation->dynamic->pass-> drop-> sdrop-> reject-> alert-> log.

421

b) Cài đặt Snort Inline .

422

Để cài đặt Snort Inline, sử dụng lệnh sau đây:

423

# ./configure --enable-inline

424

# make

425

# make install

426


c) Chạy Snort Inline .

427

- Trước tiên, bạn cần đảm bảo rằng các module ip queue đã được tải. Sau đó, bạn

428

cần gửi lưu lượng truy cập để Snort Inline sử dụng các hàng đợi đối tượng.

429

Ví dụ: iptables -A OUTPUT -p tcp --dport 80 -j QUEUE

430

d) Pcaps

431

- Thay vì lắng nghe Snort trên giao diện, bạn có thể capture một gói tin để đọc.

432

Snort sẽ đọc và phân tích các gói tin và điều này có thể hữu ích cho việc kiểm tra và

433

phát hiện những lỗi trên hệ thống Snort.


434
435
436
437
438
439
440
441

Hình 1. 2 Inline Mode

442
443

e) Đối số dòng lệnh.

444
445
446
447
448
449

31
32

16



33

450
451
452
453
454
455
456
457

Bảng 1. 2 Snort

458
459
460
461
462
463
464
465
466
467
468
469
470
471

Hình 1. 3 Network


472

CHƯƠNG 2. CẤU HÌNH SNORT VÀ RULE SNORT

473

2.1 CÁC BIẾN TRONG SNORT

474

a) Includes

475

Từ khóa include cho phép định nghĩa một file tập hợp các luật được chỉ định trong

476

Snort command line. Chức năng hoạt động của nó cũng gần giống như khóa #include

477

trong ngơn ngữ lập trình C, như đọc các tên biến, tên tập tin và bổ sung nội dung tại

34
35

17



36

478

một số vị trí được quy định trong tập tin. Tập tin include sẽ thay các giá trị biến bằng

479

một biến số được xác định:
include <include file path/name>

480
481

b) Variables

482

Ba loại biến có thể được xác định trong Snort:

483
484
485
486

-

Var, portvar, ipvar .
Đây là các biến thay thế đơn giản được thiết lập với các biến ipvar, var, hoặc từ
khoá portvar .


2.1.1. Biến IP và Lists IP

487

- Địa chỉ IP có thể được quy định một cách riêng biệt, hoặc trong một danh sách

488

như một block CIDR, hoặc tổng hợp của cả ba phần. Nếu hệ thống hỗ trợ Ipv6, các

489

biến IP cần được sử dụng bằng biến “ipvar” thay vì “var” như thông thường. IPs,

490

danh sách IP, và block CIDR được phủ định bằng kí hiệu '!'.

491

2.1.2. Biến port và List Port

492

- Danh sách port hỗ trợ việc khai báo và quản lý phạm vi các port. Biến, phạm vi và

493

danh sách port bị phủ nhận bằng kí hiệu “!”. “any” được sử dụng để chỉ tất cả các


494

port, nhưng “!any” thì khơng được dùng. Phạm vi của port có giới hạn từ 0 đến

495

65535. Danh sách các port phải được đặt trong dấu ngoặc vuông, và khi muốn định

496

nghĩa phạm vi của các port nằm trong giới hạn nào, ta phải dùng dấu “:”.

497
498
499
500
501
502
503
504

Hình 1. 4 IP and Port
2.2. CẤU HÌNH TIỀN XỬ LÝ

505

- Module tiền xử lý được xây dựng để thực hiện nhiều nhiệm vụ. Nó bình thường

506


hố traffic cho các services, để chắc chắn rằng dữ liệu trong các packet qua nó là tốt

507

nhất để module phát hiện tiếp tục xử lý. Chức năng khác của module tiền xử lý là tự

508

phịng thủ bằng cách dự đốn những dấu hiệu tấn công qua việc so sánh các packet.

37
38

18


39

509
510

- Tiến trình tiền xử lý được nạp và cấu hình bằng cách sử dụng các khố xử lý. Các
định dạng của chỉ thị tiền xử lý trong tập tin quy tắc Snort là:

511

preprocessor <name>: <options>

512


preprocessor minfrag: 128

513

2.2.1. Frag3

514

a) Cấu hình Frag 3

515

Có ít nhất hai chỉ thị tiền xử lý cần thiết để kích hoạt frag3: Global Configuration và

516

Engine Configuration.

517

Global Configuration

518
519
520
521




Tên cơ chế tiền xử lý: frag3_global

Engine Configuration


Tên cơ chế tiền xử lý: frag3_engine

b) Cấu hình đề nghị

522

preprocessor frag3_global: prealloc_nodes 8192

523

preprocessor frag3_engine: policy linux, bind_to 192.168.1.0/24

524

preprocessor frag3_engine: policy first, bind_to [10.1.47.0/24,172.16.8.0/24]

525

preprocessor frag3_engine: policy last, detect_anomalies

526
527
528
529
530

531
532
533
534
535

Hình 1. 5 Frag
2.2.2. Stream5

536

- Tiền xử lý stream5 là một module của snort, có khả năng theo dõi các traffic TCP

537

và UDP đang lưu thơng trên mạng bằng cách sử dụng các khố rule “flow” và

538

“flowbits”.

539

40
41

a) Stream API

19



42

540

- Stream5 hỗ trợ Stream API, là một chuẩn giao thức tiền xử lý tự động được cấu

541

hình để sắp xếp các hành vi theo yêu cầu của giao thức lớp ứng dụng, xác định các

542

phiên có thể được bỏ qua (do dữ liệu truyền lớn, vv) và cập nhập các thông tin nhận

543

dạng về phiên (giao thức ứng dụng, direction, vv) mà sau này có thể được sử dụng

544

bởi các rule.
b) Stream5 Global Configuration

545

- Cấu hình này map hai network segments trong hai OS policy khác nhau, một cho

546
547


windows và một cho linux, với các traffic đi đến policy mặc định của Solaris.

548

2.2.3. sfPortscan

549

Cấu hình sfPortscan

550

Việc sử dụng tiền xử lý stream5 được yêu cầu cho sfPortscan để xác định

551

những kết nối không được đảm bảo như ICMP hay UDP.

552

Các thơng số bạn có thể sử dụng để cấu hình các module portscan là:

553

a) Proto

554

Các tùy chọn có sẵn:


555



556

b) Scan type <scan type>

557

Các tùy chọn có sẵn:

558

TCP, UDP, IGMP, ip proto, all .



portscan, portsweep, decoy portscan, distributed portscan

559

c) Sense level <level>

560

Có sẵn các tùy chọn:

561

562



“low” ,“medium” ,“high”

d) Watch ip <ip1|ip2/cidr[:[port|port2-port3]]>

563

- Xác định những địa chỉ IP, mạng lưới, và các port cụ thể trên các máy để theo dõi.

564

Danh sách này là một danh sách bằng dấu phẩy của địa chỉ IP, địa chỉ IP bằng cách sử

565

dụng ký hiệu CIDR. Tùy chọn, port được quy định sau các địa chỉ IP/CIDR sử dụng

566

một khơng gian và có thể là một port hoặc một dải ký hiệu bằng dấu gạch ngang. Các

567

địa chỉ IP hoặc mạng lưới không thuộc phạm vi này sẽ được bỏ qua nếu tùy chọn này

568


được sử dụng

569

e) Ignore scanners <ip1|ip2/cidr[:[port|port2-port3]]>

570

Bỏ qua các nguồn quét cảnh báo.

43
44

20


45

571

f) Ignore scanned <ip1|ip2/cidr[:[port|port2-port3]]>

572

Bỏ qua các điểm đến của quét cảnh báo.

573

g) Logfile <file>


574

- Tùy chọn này sẽ xuất port được scan đến các tập tin được chỉ định. Nếu tập tin

575

không chứa một dấu gạch chéo đầu hàng, tập tin này sẽ được đặt trong thư mục cấu

576

hình Snort.

577

h) Include midstream

578

- Tuỳ chọn này sẽ bao gồm các đặc điểm của Stream5. Điều này có thể dẫn đến các

579

cảnh báo giả, đặc biệt là việc load những dữ liệu nặng có thể làm drop các gói, đó là

580

lý do lựa chọn này được tắt theo mặc định.
i) Detect ack scans

581

582

- Tuỳ chọn này sẽ bao gồm các đặc điểm được tổng hợp lại giữa các dòng module

583

cần thiết để phát hiện quét các gói ACK. Tuy nhiên, điều này có thể dẫn đến các cảnh

584

báo giả, đặc biệt là việc load những dữ liệu nặng có thể làm drop các gói, đó là lý do

585

lựa chọn này được tắt theo mặc định.

586

2.2.4. Rpc_decode

587

- RPC’s traffic có thể phân chia ra nhiều packet và mã hoá theo nhiều kiểu khác

588

nhau. Rpc_decode preprocessor sẽ bình thường hóa các gói này vào một record duy

589


nhất không bị phân mảnh (packet buffer). Nếu stream5 được kích hoạt, nó sẽ chỉ xử

590



591

trên các traffic của máy client. Mặc đinh nó sẽ hoạt động trên port 111và 32771.

592

Cấu trúc: preprocessor rpc_decode: [ alert_fragments ]

593
594
595
596
597

2.2.5. Performance Monitor

598

- Yếu tố then chốt của module tiền xử lý là quản lý thời gian thực và hiệu suất xử

599

lý tối đa. Bất cứ khi nào module tiền xử lý hoạt động, nó cũng kích hoạt một chế độ


600

output, như in ra các số liệu thống kê lên màn hình console hoặc xuất ra một file dữ

46
47

21


48

601

liệu thống kê với tên chỉ định. Theo mặc định, số liệu thống kê thời gian thực của

602

Snort sẽ được xử lý.

603

2.2.6. HTTP Inspect

604

- HTTP Inspect là một bộ bộ giải mã HTTP chung cho các user ứng dụng, nó sẽ giải

605


mã các buffer, tìm và bình thường hóa cái trường HTTP. HTTP Inspect hoạt động trên

606

cả client request và server respone.

607
608
609
610
611
612
613

Hình 1. 6 HTTP

614
615

a) Global Configuration

616

Cấu trúc

617

preprocessor http_inspect: global \

618


iis_unicode_map <map_filename> \

619

codemap <integer> \

620

[detect_anomalous_servers] \

621

[proxy_alert]

622

b) Server Configuration

623

Có 2 kiểu cấu hình chính là: “default” và “by IP address”:

624

c) Server Configuration Options

625

profile <all|apache|iis >


626

ports { [<….>]}

627

no_alerts

628

2.2.7. FTP/Telnet Preprocessor

629

- FTP/Telnet là một cải tiến cho các bộ giải mã Telnet, cung cấp khả năng kiểm tra

630

trạng thái stateful trên các luồng dữ liệu FTP và Telnet. Chức năng của FTP/Telnet

631

Preprocessor là giải mã các luồng data, xác định các lệnh FTP, hồi đáp các tín hiệu,

49
50

22



51

632

thốt khoải Telnet và bình thường hóa các trường. FTP/Telnet hoạt động trên cả client

633

request và server response.

634

2.2.8. SSH

635

- Tiền xử lý SSH có khả năng phát hiện những khai thác sau: Gobbles, Challenge,

636

Response Buffer Overflow, CRC 32, Secure CRT, và Protocol Mismatch exploit. Để

637

phát hiện các dấu hiệu tấn công, các tiền xử lý SSH đếm số byte truyền đến server.

638

Nếu số byte vượt quá giới hạn cho phép được xác định trước của các gói


639

tin, cảnh báo được tạo ra. Theo mặc định, tất cả các cảnh báo đều được bật và tiến

640

trình tiền xử lý sẽ kiểm tra các traffic trên port 22.

641

2.2.9. DNS

642

- Tiến trình tiền xử lý giải mã các respone DNS và có thể phát hiện các khai thác

643

sau: DNS Client RDataOverflow, Obsolete Record Types, và Experimental Record

644

Types. DNS tìm kiếm các respone DNS trên các traffic UDP và TCP sau đó kích hoạt

645

tiến trình tiền xử lý để giải mã TCP. Theo mặc định, tất cả cảnh báo sẽ bị tắt và tiến

646


trình tiền xử lý sẽ kiểm tra trên port 53.

647

2.2.10. ARP Spoof Preprocessor

648

- Arpspoof được thiết kế cho tiến trình tiền xử lý để giải mã các gói ARP và phát

649

hiện các cuộc tấn công ARP, các request ARP và các u cầu mapping IP khơng đồng

650

nhất.

651

2.3. CẤU HÌNH LUẬT GIẢI MÃ VÀ TIỀN XỬ LÝ

652

- Decoder và Preprocessor Rules dùng để tắt hay kích hoạt việc sử dụng các luật

653

cho những tiến trình giải mã và tiền xử lý. Ví dụ nếu cấu hình disable_decode_alerts


654

trong file Snort.conf, tiến trình giải mã sẽ bị disable cho dù xuất hiện những tình

655

huống tương ứng với các luật.

656

- Lưu ý rằng tùy chọn enable_decode_drops sẽ được ưu tiên hơn các tùy chọn khác

657

khi hệ thống đang hoạt động ở chế độ Snort Inline

658

2.4. CẤU HÌNH MODULE OUTPUT

659

- Snort có thể output vào các file log hoặc output ra console, nhiều administrator

660

thích dùng các phần mềm của hãng thứ 3 (third party ) để tăng thêm chức năng giám

661


sát của Snort, các phần mềm data database đều có thể dùng được, lưu ý trước khi cài

662

đặt Snort muốn dùng database nào thì cần chỉ rõ khi cài đặt ví dùng dùng MySQL,

52
53

23


54

663

khi

664

biên dịch source thêm vào –mysql.

665

Ví dụ: ./configure – mysql

666

2.4.1. Alert_syslog


667

a) Cấu trúc

668

alert_syslog: <facility> <options>

669

output alert_syslog: [host=],] <facility>

670

<options>

671

output alert_syslog: 10.1.1.1:514, <facility> <options>

672

b) Các khóa trong syslog

673

Facilities

674


Priorities

675

Options

676

2.4.2. Alert_fast

677

- Các cảnh báo trong Snort sẽ được in ra một cách nhanh nhất đến một tập tin được

678

xác định. Đây là một phương pháp cảnh báo nhanh hơn phương pháp cảnh báo đầy

679

đủ vì nó khơng cần in ra tất cả các packet header trong file output

680

Cấu trúc : alert_fast: <output filename>
output alert_fast: alert.fast

681
682

683

2.4.3. Alert_full
- Cảnh báo sẽ được in ra với đầy đủ các packet header. Mặc định thông tin sẽ được

684

lưu trong /var/log/snort hoặc một thư mục được xác định. Snort sẽ tạo ra các thư

685

Cấu trúc :alert_full: <output filename>

686

output alert_full: alert.full

687
688
689

2.4.4. Alert_unixsock

690

- Thiết lập một UNIX domain socket và gửi cảnh báo với nó. Ngồi các chương

691

trình/tiến trình có thể nghe ở trên socket ta cịn nhận được những cảnh báo và gói dữ


692

liệu trong thời gian thực. Đây là hiện một giao diện thử nghiệm.

693

Cấu trúc

55
56

24


57

694

alert_unixsock

695

output alert_unixsock

696

2.4.5. Log_tcpdump

697


- Chức năng này sẽ ghi các bản log ở định dạng tcmdump. Do có rất nhiều cơng cụ

698

có thể đọc được định dạng này nên nó rất hữu ích cho việc tổng hợp và phân tích

699

thơng tin với số lượng lớn. Đối số của log_tcpdump là đầu ra tên của tập tin.

700

Cấu trúc

701

log_tcpdump: <output filename>

702

output log_tcpdump: snort.log

703

2.4.6. Database

704

- Database là nơi chứa tất cả các thông tin lưu trữ của Snort như các cảnh báo, các


705

host liên quan, các log packet gây ra các cảnh báo,….Snort sử dụng các đối số để

706

quản lý database và giúp cho các admin có thể quản lý thơng tin một cách có hiệu quả

707

hơn.

708

Cấu trúc của câu lệnh output ra database

709

database: <log | alert>, <database type>,

710

2.5 RULE SNORT

711

2.5.1 Giới thiệu

712


- Sử dụng Snort rule khá đơn giản và linh hoạt nhưng nó chứa đựng một sức mạnh

713

khơng nhỏ. Một số nguyên tắc cần phải biết và nhớ để phát huy hết sức mạnh của rule

714

trong Snort.

715

- Các phiên bản trước đây, hầu hết các rule điều viết 1 dòng nhưng từ phiên bản 1.8

716

trở lên, một rule ta có thể viết nhiều dòng (bằng cách sử dụng “\” để xuống dịng).

717

Snort rules có 2 phần: rule header và rule options.

718

Rule header gồm có:

719

Actions, Protocol, IP address, Port ,Hướng, IP address ,Port


720

Rule options: gồm có tên cảnh báo và thơng tin chứa trong gói dữ liệu cần kiểm tra.

58
59

25


×