®¹i häc th¸i nguyªn
Tr-êng ®¹i häc C¤NG NGHÖ TH¤NG TIN Vµ TRUYÒN TH¤NG
VŨ DUY TUÂN
NGHIÊN CỨU XÂY DỰNG
MODULE GIÁM SÁT AN NINH MẠNG DỰA TRÊN
MÃ NGUỒN MỞ SNORT
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
th¸i nguyªn - n¨m 2014
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
®¹i häc th¸i nguyªn
Tr-êng ®¹i häc C¤NG NGHÖ TH¤NG TIN Vµ TRUYÒN TH¤NG
VŨ DUY TUÂN
NGHIÊN CỨU XÂY DỰNG
MODULE GIÁM SÁT AN NINH MẠNG DỰA TRÊN
MÃ NGUỒN MỞ SNORT
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01
Người hướng dẫn khoa học: TS. TRẦN ĐỨC SỰ
Thái Nguyên, tháng 09 năm 2014
Học viên
VŨ DUY TUÂN
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
LỜI CAM ĐOAN
Để hoàn thành luận văn đúng thời gian quy định và đáp ứng được mục tiêu
đặt ra, bản thân em đã luôn cố gắng nghiên cứu, học tập và làm việc. Trong quá
trình làm luận văn em có tham khảo một số tài liệu (đã được nêu trong phần “TÀI
LIỆU THAM KHẢO” và không sao chép nội dung từ bất kỳ bản luận văn nào khác.
Toàn bộ luận văn là do bản thân nghiên cứu, xây dựng nên dưới sự định hướng,
hướng dẫn của thầy hướng dẫn.
Em xin cam đoan những lời trên là đúng, mọi thông tin sai lệch em xin hoàn
toàn chịu trách nhiệm trước thầy giáo hướng dẫn và nhà trường.
Thái nguyên, tháng 9 năm 2014
Học viên
VŨ DUY TUÂN
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
DANH MỤC CÁC TỪ VIẾT TẮT
CSDL
:
Cơ sở dữ liệu
OSSIM
:
Open Source Security Information Management
NIDS
:
Network-based IDS
HIDS
:
Host based IDS
CPU
Central Processing Unit
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
Hình 3.11: Sử dụng phần mềm Nmap dò quét các cổng trên máy WebServer ............. 68
Hình 3.12: Màn hình cảnh báo tấn công dò quét của Module giám sát an ninh mạng .. 68
Hình 3.13: Chức năng lưu trữ file giám sát của Module giám sát an ninh mạng .......... 69
Hình 3.14: Phân tích file Pcap sử dụng phần mềm Wireshark ...................................... 69
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
MỤC LỤC
LỜI NÓI ĐẦU .......................................................................................................1
1. Lý do chọn đề tài ........................................................................................... 1
2. Mục tiêu và nhiệm vụ nghiên cứu: ................................................................ 1
3. Đối tượng và phạm vi nghiên cứu .................................................................2
4. Hướng nghiên cứu của đề tài .........................................................................2
5. Bố cục của đề tài ............................................................................................ 2
Chương 1 – TỔNG QUAN VỀ GIÁM SÁT AN NINH MẠNG .......................... 3
1.1. Khái niệm ..................................................................................................3
1.1.1. Giới thiệu chung ..................................................................................3
1.1.2. Một số khái niệm liên quan .................................................................3
1.1.2.1. Thu thập dữ liệu ............................................................................3
1.1.2.2. Phân tích dữ liệu ...........................................................................3
1.1.2.3. Phát hiện và phản ứng ..................................................................4
1.2. Giám sát mạng ............................................................................................ 4
1.2.1. Khái niệm ............................................................................................ 4
1.2.2. Cách thức hoạt động và mục đích ứng dụng .......................................5
1.3. Hệ thống phát hiện xâm nhập ....................................................................6
1.3.1. Giới thiệu chung .................................................................................6
2.2. Kỹ thuật phát hiện dựa trên sự bất thường ...............................................28
2.2.1. Định nghĩa ......................................................................................... 28
2.2.2. Dữ liệu phát hiện bất thường ............................................................. 29
2.2.3. Kỹ thuật ............................................................................................. 31
2.2.4. Phương pháp ......................................................................................32
Kết chương: .....................................................................................................34
Chương 3 - XÂY DỰNG MODULE GIÁM SÁT AN NINH MẠNG DỰA
TRÊN PHẦN MỀM SNORT ....................................................................................35
3.1. Mô hình Module giám sát an ninh mạng ..................................................35
3.1.1. Mô hình tổng quan.............................................................................35
3.1.2. Mô hình chi tiết..................................................................................36
3.1.2.1. Máy trinh sát ...............................................................................36
3.1.2.2. Máy thu thập ...............................................................................41
3.1.2.3. Cơ sở dữ liệu...............................................................................41
3.1.2.4. Phân tích .....................................................................................43
3.1.2.5. Website .......................................................................................46
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
http://www.lrc-tnu.edu.vn/
3.2. Triển khai xây dựng Module giám sát an ninh mạng ............................... 46
3.2.1. Lựa chọn phần mềm ..........................................................................46
3.2.1.1. Giới thiệu về Snort .....................................................................46
3.2.1.2. Các thành phần của Snort ........................................................... 46
3.2.1.3. Các chế độ hoạt động của Snort ................................................49
3.2.1.4. Các tùy chọn trong việc sử dụng Snort .....................................53
3.2.1.5. Ưu điểm, hạn chế của Snort ......................................................55
3.2.2. Phân tích yêu cầu chức năng của Module .........................................55
vào bên trong hệ thống mạng cần bảo vệ, có một vấn đề là các công cụ bảo vệ hệ
thống được triển khai ở nước ta hầu hết đều mua của nước ngoài với giá thành rất
cao đây là một khó khăn lớn đối với các đơn vị vừa và nhỏ. Mặt khác vì là sản
phẩm thương mại nên công nghệ và kỹ thuật của các hệ thống đó luôn luôn được
giữ kín vì thế mỗi khi phát sinh các dạng tấn công mới, các nhà quản trị trong nước
không thể tự phát triển mở rộng được.
Từ đó phát sinh nhu cầu cần có một hệ thống hỗ trợ giám sát và bảo vệ hệ
thống mạng một cách hiệu quả, các nhà quản trị có thể chủ động mở rộng hay phát
triển cho phù hợp với các cuộc tấn công mạng kiểu mới. Đó là lý do mà tôi chọn đề
tài “ Nghiên cứu xây dựng Module giám sát an ninh mạng dựa trên mã nguồn
mở Snort” dưới sự hướng dẫn của TS Trần Đức Sự.
2. Mục tiêu và nhiệm vụ nghiên cứu:
Mục tiêu mà đề tài là tìm hiểu, nghiên cứu hệ thống phát hiện xâm nhập,
phân tích và đưa ra giải pháp hợp lý.
1
Nghiêm cứu xây dựng chương trình hỗ trợ phát hiện xâm nhập dựa trên phần
mềm mã nguồn mở Snort và các công cụ mã nguồn mở được phát triển hỗ trợ cho
hệ thống này.
3. Đối tượng và phạm vi nghiên cứu
- Các kỹ thuật và phương pháp giám sát trên hệ thống mạng;
- Các kỹ thuật xâm nhập trái phép vào mạng máy tính;
- Cơ sở, kiến trúc hệ thống phát hiện xâm nhập;
- Hệ thống phát hiện xâm nhập Snort.
4. Hướng nghiên cứu của đề tài
- Hiểu được các kỹ thuật và các khả năng xâm nhập trái phép vào hệ thống
mạng máy tính;
- Tìm hiểu các kỹ thuật và phương pháp giá sát các xâm nhập trái phép trên;
Tuy nhiên thực tế cho thấy chúng ta vẫn luôn thụ động trước các cuộc tấn
công đặc biệt là các tấn công kiểu mới vì vậy yêu cầu đặt ra là cần có một hệ thống
phát hiện và cảnh báo sớm trước các cuộc tấn công. Hệ thống phát hiện xâm nhập
được xem như là một lựa chọn tối ưu.
1.1.2. Một số khái niệm liên quan
1.1.2.1. Thu thập dữ liệu
Thu thập dữ liệu của các hệ thống phần mềm hay các ứng dụng chính là thu
thập các nhật ký, gói tin,... đi ra đi vào mạng. Đây là bước đầu tiên và cơ bản nhất
của việc giám sát.
1.1.2.2. Phân tích dữ liệu
Việc phân tích dữ liệu là công việc của con người. Các phần mềm có thể đưa
ra những kết luận từ những dữ liệu mà chúng thu thập được, con người sẽ phải xem
xét trong từng hoàn cảnh để đưa ra yêu cầu trong những bước tiếp theo. Một số sản
phẩm có thể hoàn toàn tùy biến cho phù hợp với hệ thống mà nó đang giám sát. Đây
không phải là trách nhiệm của người phát triển vì họ không thể tạo ra sản phẩm có
thể đáp ứng được hết những yêu cầu khác nhau của khách hàng. Có khả năng thay
đổi mã nguồn tùy vào người dùng cuối, nên những sản phẩm mã nguồn mở là
3
những phần mềm thích hợp nhất cho việc tùy biến. Cũng như vậy, người dùng cũng
phải được đào tạo để hiểu được những thông tin mà sản phẩm cung cấp.
1.1.2.3. Phát hiện và phản ứng
Phát hiện và phản ứng là hai thành phần quan trọng trong các yếu tố của tiến
trình. Sau khi bức tường phòng ngự cuối cùng bị phá vỡ, các tổ chức cần nhanh
trong phát hiện ra cách thức xâm nhập của kẻ tấn công và chúng sẽ làm gì tiếp theo.
Quá trình này được gọi là phạm vi ứng phó sự cố. Bởi xâm nhập không có nghĩa là
có quyền root. Một kẻ xâm nhập có thể leo thang đặc quyền của mình để thực hiện
những âm mưu sau đó.
Bất kỳ ai khi thực hiện công việc ứng phó sự cố thường xuyên sẽ hiểu được
làm nhiệm vụ chuẩn hóa thông tin. Máy thu thập sẽ đọc những thông tin thu được từ
các máy trinh sát và chuẩn hóa thông tin dựa trên những quy tắc chuẩn hóa biết
trước. Thông tin đầu ra sẽ có định dạng giống nhau và được lưu vào cơ sở dữ liệu
trung tâm.
Cơ sở dữ liệu trung tâm: là nơi lưu trữ dữ liệu của toàn bộ hệ thống giám
sát. Các dữ liệu ở đây đã được chuẩn hóa nên có thể sử dụng để tính toán các số liệu
thống kê trên toàn hệ thống
Công cụ phân tích (Analysis tool): Thành phần này sẽ đọc các dữ liệu từ
cơ sở dữ liệu trung tâm và tính toán để tạo ra bản báo cáo số liệu thống kê trên toàn
hệ thống.
1.2.2. Cách thức hoạt động và mục đích ứng dụng
Mỗi máy trinh sát sẽ có một danh sách những đối tượng mà máy trinh sát đó
cần giám sát. Những đối tượng này có thể là file nhật ký hoạt động trên một máy
tính, có thể là một dịch vụ trên hệ thống khác, cũng có thể là thành phần báo cáo
trạng thái của Tường lửa/Bộ định tuyến… Dựa vào bản danh sách này, Máy trinh
sát sẽ gửi truy vấn đến đối tượng để truy vấn thông tin. Thông tin thu thập được sẽ
gửi đến Máy thu thập để chuẩn hóa trước khi lưu trữ vào cơ sở dữ liệu trung tâm.
5
Tùy theo thiết kế của hệ thống, nếu những thông tin mà Máy trinh sát thu thập được
có định dạng giống nhau thì sẽ không cần đến thành phần Máy thu thập.
Trong một số trường hợp khác, các Máy trinh sát cũng có thể kiêm luôn vai
trò của Máy thu thập thực hiện việc chuẩn hóa dữ liệu trước khi lưu trữ. Tại cơ sở
dữ liệu trung tâm, mọi dữ liệu thu dược đã có định dạng rõ ràng. Bộ phân tích sẽ
đọc thông tin tại đây để tính toán và đưa ra những số liệu thống kê tạo thành một
bản báo cáo hoàn chỉnh. Báo cáo này sẽ được gửi tới người quản trị. Trong một số
hệ thống giám sát, để nâng cao mức độ tự động hóa, Bộ phân tích có thể có thêm
chức năng phát hiện dấu hiệu xác định trước để phát ra cảnh báo. Ví dụ, sau khi lấy
tùy theo chức năng của từng IDS.
1.3.2.1. Giám sát mạng (monotoring)
Giám sát mạng là quá trình thu thập thông tin về lưu thông trên mạng. Việc
này thông thường được thực hiện bằng các Sensor. Yêu cầu đòi hỏi đối với giai
đoạn này là có được thông tin đầy đủ và toàn vẹn về tình hình mạng. Đây cũng là
một vấn đề khó khăn, bởi vì nếu theo dõi toàn bộ thông tin thì sẽ tốn khá nhiều tài
nguyên, đồng thời gây ra nguy cơ tắc nghẽn mạng. Nên cần thiết phải cân nhắc để
không làm ảnh hưởng đến toàn bộ hệ thống. Có thể sử dụng phương án là thu thập
liên tục trong khoảng thời gian dài hoặc thu thập theo từng chu kì. Tuy nhiên khi đó
những hành vi bắt được chỉ là những hành vi trong khoảng thời gian giám sát. Hoặc
có thể theo vết những lưu thông TCP theo gói hoặc theo liên kết. Bằng cách này sẽ
thấy được những dòng dữ liệu vào ra được phép. Nhưng nếu chỉ theo dõi những liên
kết thành công sẽ có thể bỏ qua những thông tin có giá trị về những liên kết không
thành công mà đây lại thường là những phần quan tâm trong một hệ thống IDS, ví
dụ như hành động quét cổng.
1.3.2.2. Phân tích lưu thông (Analyzing)
Khi đã thu thập được những thông tin cần thiết từ những điểm trên mạng.
IDS tiến hành phân tích những dữ liệu thu thập được. Mỗi hệ thống cần có một sự
phân tích khác nhau vì không phải môi trường nào cũng giống nhau. Thông thường
ở giai đoạn này, hệ thống IDS sẽ dò tìm trong dòng traffic mang những dấu hiệu
đáng nghi ngờ dựa trên kỹ thuật đối sánh mẫu hoặc phân tích hành vi bất thường.
7
1.3.2.3. Liên lạc
Giai đoạn này giữ một vai trò quan trọng trong hệ thống IDS. Việc liên lạc diễn
ra khi Sensor phát hiện ra dấu hiệu tấn công hoặc Bộ xử lý thực hiện thay đổi cấu hình,
điều khiển Sensor. Thông thường các hệ thống IDS sử dụng các bộ giao thức đặc biệt
để trao đổi thông tin giữa các thành phần. Các giao thức này phải đảm bảo tính tin cậy,
bí mật và chịu lỗi tốt, ví dụ: SSH, HTTPS, SNMPv3…Chẳng hạn hệ thống IDS của
+ Network-based IDS (NIDS): 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.
1.4.1. Giám sát toàn bộ mạng (NIDS)
Trong hình thức này NIDS xác định các truy cập trái phép bằng việc giám sát
các hoạt động mạng được tiến hành trên toàn bộ các phân mạng của hệ thống, NIDS
sử dụng bộ dò và bộ cảm biến cài đặt trên toàn mạng. Những bộ dò này theo dõi
trên mạng nhằm tìm kiếm những lưu lượng trùng với những mô tả sơ lược được
định nghĩa hay là những dấu hiệu. Khi ghi nhận được một mẫu lưu lượng hay dấu
hiệu, bộ cảm biến gửi tín hiệu cảnh báo đến trung tâm điều khiển và có thể được cấu
hình nhằm tìm ra biện pháp ngăn chặn những xâm nhập xa hơn. NIDS là tập nhiều
sensor được đặt ở toàn mạng để theo dõi những gói tin trong mạng, so sánh với các
mẫu đã được định nghĩa để phát hiện đó là tấn công hay không.
9
Hình 1.1: Mô hình triển khai hệ thống NIDS
Ưu điểm
+ Chi phí thấp: Do chỉ cần cài đặt NIDS ở những vị trí trọng yếu là có thể giám
sát lưu lượng toàn mạng nên hệ thống không cần phải nạp các phần mềm và quản lý
trên các máy toàn mạng.
+ Phát hiện được các cuộc tấn công mà HIDS bỏ qua: Khác với HIDS, NIDS
kiểm tra header của tất cả các gói tin vì thế nó không bỏ sót các dấu hiệu xuất phát
từ đây. Ví dụ nhiều cuộc tấn công DoS, TearDrop (phân nhỏ) chỉ được phát hiện khi
xem header của các gói tin lưu chuyền trên mạng.
+ Khó xóa bỏ dấu vết: Các thông tin lưu trong log file có thể bị kẻ đột nhập
sửa đổi để che dấu các hoạt động xâm nhập, trong tình huống này HIDS khó có đủ
thông tin để hoạt động. NIDS sử dụng lưu thông hiện hành trên mạng để phát hiện
xâm nhập. Vì thế, kẻ đột nhập không thể xóa bỏ được các dấu vết tấn công. Các
Hệ thống dựa trên máy chủ cũng theo dõi OS, những cuộc gọi hệ thống, lịch
sử sổ sách (audit log) và những thông điệp báo lỗi trên hệ thống máy chủ. Trong khi
những đầu dò của mạng có thể phát hiện một cuộc tấn công, thì chỉ có hệ thống dựa
trên máy chủ mới có thể xác định xem cuộc tấn công có thành công hay không.
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. Nó thường được đặt trên các Host xung yếu của tổ chức, và các server
trong vùng DMZ. thường là mục tiêu tấn công đầu tiên. Nhiệm vụ chính của HIDS
là giám sát các thay đổi trên hệ thống, bao gồm:
11
- Các tiến trình.
- Các entry của Registry.
- Mức độ sử dụng CPU.
- Các thông số này khi vượt qua một ngưỡng định trước hoặc những thay đổi
khả nghi trên hệ thống file sẽ gây ra báo động.
Hình 1.2: Mô hình hệ thống HIDS
Ưu điểm
+ Xác định được kết quả của cuộc tấn công: Do HIDS sử dụng dữ liệu log
lưu các sự kiện xảy ra, nó có thể biết được cuộc tấn công là thành công hay thất bại
với độ chính xác cao hơn NIDS. Vì thế, HIDS có thể bổ sung thông tin tiếp theo khi
cuộc tấn công được sớm phát hiện với NIDS.
+ Giám sát được các hoạt động cụ thể của hệ thống: HIDS có thể giám sát
các hoạt động mà NIDS không thể như: truy nhập file, thay đổi quyền, các hành
động thực thi, truy nhập dịch vụ được phân quyền. Đồng thời nó cũng giám sát các
hoạt động chỉ được thực hiện bởi người quản trị. Vì thế hệ thống HIDS có thể là
một công cụ cực mạnh để phân tích các cuộc tấn công có thể xảy ra do nó thường
+ Chưa có tường lửa nên dễ bị tấn công.
+ Không có hệ thống giám sát an ninh nên không nhận biết được các cuộc tấn công.
+ Dễ lây lan virus trên diện rộng, và từ máy Client lây sang máy trạm lên sever.
+ Không theo dõi, quản lý được các máy client dùng vào việc gì.
Kết chương:
Như vậy trong nội dung chương 1 đã chỉ ra được thực trạng an toàn thông
tin hiện nay, yêu cầu cấp thiết của thực tế, nêu và làm rõ một số khái niệm, phân
loại được các mô hình giám sát theo từng cấp độ để người dùng, các nhà quản trị
có thể hiểu và áp dụng trường hợp hệ thống mạng của mình một cách hợp lý nhất.
Chương tiếp theo sẽ đi sâu chi tiết hơn về phân tích một số kỹ thuật được áp
dụng trong việc thiết kế một hệ thống giám sát an ninh mạng.
14
Chương 2 – KỸ THUẬT XÂY DỰNG HỆ THỐNG GIÁM SÁT AN NINH MẠNG
Một hệ thống giám sát an ninh mạng hoạt động dựa trên việc tìm kiếm, phát
hiện các cuộc xâm nhập trái phép vào hệ thống mạng để đưa ra những phân tích cho
hành động tiếp theo. Dưới đây chúng ta sẽ đi vào nghiên cứu các kỹ thuật để phát
hiện các xâm nhập trái phép.
2.1. Kỹ thuật phát hiện dựa trên dấu hiệu thông qua đối sánh mẫu
Phát hiện dựa trên dấu hiệu là phát hiện những kẻ xâm nhập đang cố gắng đột
nhập vào hệ thống mà sử dụng một số kỹ thuật đã biết. Nó liên quan đến việc mô tả
đặc điểm các cách thức xâm nhập vào hệ thống đã được biết đến, mỗi cách thức này
được mô tả như một mẫu. Hệ thống phát hiện xâm nhập dựa trên dấu hiệu chỉ thực
hiện kiểm soát đối với các mẫu đã rõ ràng. Mẫu có thể là một xâu bit cố định (ví dụ
như một virus đặc tả việc chèn xâu),…dùng để mô tả một tập hay một chuỗi các
hành động đáng nghi ngờ.
2.1.1. Giới thiệu bài toán đối sánh mẫu
Dạng phổ biến nhất của bài toán là: Cho trước nguồn tìm kiếm là một tập D các
quan tâm đặc biệt trong công nghệ thông tin nói chung và trong việc phát hiện mã
độc hại nói riêng.
2.1.3. Thuật toán Boyer-Moore
Thuật toán sẽ tìm kiếm các ký tự mẫu từ phải sang trái từ ký tự cuối cùng.
Giả sử trong trường hợp mis-match(hoặc là trường hợp đã tìm thấy 1 đoạn
khớp mẫu), nó sẽ dùng 2 hàm được tính toán trước để dịch cửa sổ sang bên
phải. Hai hàm dịch chuyển này được gọi là good-suffix shift (còn được biết
với cái tên phép dịch chuyển khớp) và bad-character shift (phép dịch chuyển
xuất hiện).
Đối với mẫu P [0..m-1] ta dùng 1 biến chỉ số i chạy từ cuối về đầu, đối với
chuỗi T [0..n-1] ta dùng 1 biến j để chốt ở phía đầu.
G/s rằng trong quá trình so sánh ta gặp 1 mis-match tai vị trí P[i] a của
mẫu và T [i
j ] b trong khi đang thử khớp tại vị trí j.
16