BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO.
BÁO CÁO CUỐI KỲ
ĐỀ TÀI SỐ 1 : Tìm hiểu về Network
-Based IDS và thực nghiệm
Giảng viên hướng dẫn :
Nguyễn Thị Thanh Vân
Môn học :
Hệ Điều Hành Unix
Sinh viên thực hiện:
Trần Trung Tín
1
- 14110204
Mục Lục
Contents
I. Tổng quan về IDS
2
Hiện nay mạng Internet đã trở thành một phần không thể thiếu của con
người. Internet ngày càng phổ biến rộng rải cho mọi người để trao đổi thông
tin trên mạng. Khả năng kết nối trên toàn thế giới đang mang lại thuận tiện
cho tất cả mọi người, nhưng nó cũng tiềm ẩn những nguy cơ khó lường đe
dọa tới mọi mặt của đời sống xã hội. Việc mất trộm thông tin trên mạng gây
ảnh hưởng đến tính riêng tư cho các cá nhân, những vụ lừa đảo, tấn công từ
chối dịch vụ gây ảnh hưởng lớn đến hoạt động kinh doanh cho các công ty
và gây phiền toái cho người sử dụng Internet… làm cho vấn đề bảo mật trên
mạng luôn là một vấn đề nóng hổi và được quan tâm đến trong mọi thời
điểm.
Cho đến nay, các giải pháp bảo mật luôn được chú trọng và đã có những
đóng góp lớn trong việc hạn chế và ngăn chặn những vấn đề về bảo mật, ví
dụ như Firewall ngăn chặn những kết nối không đáng tin cậy, mã hóa làm
tăng độ an toàn cho việc truyền dữ liệu, các chương trình diệt virus với cơ sở
dữ liệu liên tục cập nhật về những loại virus mới nhất. Tuy nhiên hiện nay
các vụ vi phạm bảo mật xảy ra ngày càng tinh vi hơn cùng với sự gia tăng
những vụ lạm dụng, dùng sai xuất phát từ trong hệ thống mà những phương
pháp bảo mật truyền thống không chống được. Những điều đó dẫn đến yêu
cầu phải có một phương pháp bảo mật mới bổ trợ cho những phương pháp
bảo mật truyền thống.
Hệ thống phát hiện xâm nhập trái phép IDS là một phương pháp bảo mật có
khả năng chống lại các kiểu tấn công mới, các vụ lạm dụng, dùng sai xuất
phát từ trong hệ thống và có thể hoạt động tốt với các phương pháp bảo mật
truyền thống. Nó đã được nghiên cứu, phát triển và ứng dụng từ lâu trên thế
giới và đã thể hiện vai trò quan trọng trong các chính sách bảo mật. Tuy
nhiên ở Việt Nam hiện nay hệ thống phát hiện xâm nhập trái phép vẫn mới
đang được nghiên cứu, vẫn chưa được ứng dụng vào trong thực tế. Nguyên
nhân của việc này có thể do các hệ thống IDS hiện nay quá phức tạp, tốn
thời gian đào tạo để sử dụng, cũng có thể do nó là những hệ thống lớn, yêu
cầu nhiều trang thiết bị, nhiều công sức để quản lý bảo dưỡng, không phù
hợp với điều kiện của các hệ thống ở Việt Nam hiện nay.
1. Khái niệm IDS
3
Là một hệ thống nhằm phát hiện các hành động xâm nhập tấn công vào
mạng. IDS phát hiện dựa trên các dấu hiệu đặc biệt về các nguy cơ đã biết
hay dựa trên so sánh lưu thông mạng hiện tại với basedline để tìm ra các dấu
hiệu khác thường.
Phát hiện xâm nhập trái phép là một công việc đầy khó khăn do ảnh hưởng
của sự tăng trưởng nhanh chóng các kết nối mạng, môi trường máy tính
không đồng nhất, nhiều giao thức truyền thông và sự phân loại đáng kể của
các ứng dụng thông dụng và độc quyền. Hầu hết các kỹ thuật IDS được xây
dựng dựa trên sự khác biệt ứng xử của kẻ xâm nhập so với người dùng hợp
lệ.
Một IDS có nhiệm vụ phân tích các gói tin mà Firewall cho phép đi qua, tìm
kiếm các dấu hiệu đã biết mà không thể kiểm tra hoặc ngăn chặn bởi
Firewall. Sau đó cung cấp thông tin và đưa ra các cảnh báo cho các quản trị
viên.
IDS cung cấp thêm cho việc bảo vệ an toàn thông tin mạng một mức độ cao
hơn. Nó được đánh giá giá trị giống như Firewall và VPN là ngăn ngừa các
cuộc tấn công mà IDS cung cấp sự bảo vệ bằng cách trang bị cho bạn thông
tin về cuộc tấn công. Bởi vậy, IDS có thể thỏa mãn nhu cầu về an toàn hệ
thống của bạn bằng cách cảnh báo cho bạn về khả năng các cuộc tấn công và
thỉnh thoảng thì ngoài những thông báo chính xác thì chúng cũng đưa ra một
số cảnh báo chưa đúng.
Phân biệt những hệ thống không phải là IDS: Theo một cách riêng biệt nào
đó, các thiết bị bảo mật dưới đây không phải là IDS:
Hệ thống đăng nhập mạng được sử dụng để phát hiện lỗ hổng đối với vấn đề
tấn công từ chối dịch vụ trên một mạng nào đó. Ở đó có hệ thống kiểm tra
lưu lượng mạng.
Các công cụ đánh giá lỗ hổng kiểm tra lỗi và lỗ hổng trong hệ điều hành,
dịch vụ mạng.
4
Các sản phẩm chống virus đã thiết kế để phát hiện phần mềm mã nguy hiểm
như virus, Trojan horse, worm... Mặc dù những tính năng mặc định có thể
rất giống hệ thống phát hiện xâm nhập và thường cung cấp một công cụ phát
hiện lỗ hổng bảo mật hiệu quả.
Tường lửa và các hệ thống bảo mật, mật mã như VPN, SSL,S/MINE,
Kerberos, Radius...
2. Giới thiệu hệ thống IDS
Hệ thống phát hiện xâm nhập IDS là một hệ thống giám sát lưu lượng mạng
nhằm phát hiện ra hiện tượng bất thường, các hoạt động trái phép xâm nhập
vào hệ thống. IDS có thể phân biệt được các cuộc tấn công từ nội bộ hay tấn
công từ bên ngoài.
IDS phát hiện dựa trên các dấu hiệu đặc biệt về nguy cơ đã biết (giống như
cách phần mềm diệt virus phát hiện và diệt virus) hay dựa trên so sánh lưu
thông mạng hiện tại với baseline (thông số chuẩn của hệ thống có thể chấp
nhận được) để tìm ra các dấu hiệu bất thường.
Một hệ thống IDS cần phải thỏa mãn những yêu cầu:
• Tính chính xác (Accuracy): IDS không được coi những hành động thông
thường trong môi trường hệ thống là những hành động bất thường hay
lạm dụng
• Hiệu năng (Performance): Hiệu năng của IDS phải đủ để phát hiện xâm
nhập trái phpes trong thời gian thực
• Tính trọn vẹn (Completeness): IDS không được bỏ qua một xâm nhập trái
phép nào. Đây là một điều kiện khó thỏa mãn được .
• Chịu lỗi (Fault Tolerance): bản thân IDS cũng phải có khả năng chống lại
tấn công
• Khả năng mở rộng (Scalability): IDS phải có khả năng xử lý trong trạng
thái xấu nhất là không bỏ sót thông tin nào. Yên cầu này liên quan tới hệ
thống mà các sự kiện trong tương lai đến từ nhiều nguồn tài nguyên với số
5
lượng host nhỏ. Với sự phát triển nhanh và mạnh của mạng máy tính, hệ
thống có thể bị quá tải bởi sự tăng trưởng của số lượng sự kiện.
3. Kiến trúc, chức năng và quy trình hoạt động của IDS
Các thành phần của IDS
3.1.
IDS bao gồm các thành phần chính: thành phần thu thập gói tin (information
collection), thành phần phân tích gói tin (Detection), thành phần phản hồi
(response) nếu gói tin đó được phát hiện là một cuộc tấn công.
3.2.
Thành phần phân tích gói tin là quan trọng nhất và ở thành phần này bộ cảm
biến đóng vai trò quyết định. Bộ cảm biến tích hợp với thành phần là sưu tập
dữ liệu và một bộ tạo sự kiến. Cách sưu tập này được xác định bởi chính sách
tạo sự kiện để định nghĩa chế độ lọc thông tin sự kiện. Vai trò của bộ cảm
biến là dùng để lọc thông tin và loại bỏ dữ liệu không tương thích đạt được từ
các sự kiện liên quan với hệ thống bảo vệ, vì vậy có thể phát hiện được các
hành động nghi ngờ. Bộ phân tích sử dụng cơ sở dữ liệu chính sách phát hiện
cho mục này. Ngoài ra còn có các thành phần: dấu hiệu tấn công, profile hành
vi thông thường, các tham số cần thiết. Thêm vào đó, cơ sở dữ liệu giữa các
tham số cấu hình, gồm các chế độ truyền thông với module đáp trả. Bộ cảm
biến cũng có sơ sở dữ liệu của riêng nó.
Chức năng
6
3.3.
Chức năng quan trọng nhất của IDS là:
• Giám sát: giám sát lưu lượng mạng các hoạt động bất thường và các hoạt
động khả nghi
• Cảnh báo: Khi đã biết được các hoạt động bất thường của một truy cập
nào đó, IDS sẽ đưa ra cảnh báo về hệ thống cho người quản trị
• Bảo vệ: Dùng những thiết lập mặc định và những cấu hình từ nhà quản trị
mà có những hành động chống lại kẻ xâm nhập
Chức năng mở rộng của IDS:
• Phân biệt các cuộc tấn công từ trong hoặc từ bên ngoài: nó có thể phân
biệt được đâu là những truy cập hợp lệ (hoặc không hợp lệ) từ bên trong
và đâu là cuộc tấn công từ bên ngoài
• Phát hiện: dựa vào so sánh lưu lượng mạng hiện tại với baseline, IDS có
thể phát hiện ra những dấu hiệu bất thường và đưa ra các cảnh báo và bảo
vệ ban đầu cho hệ thống
Quy trình hoạt động của IDS
Một host tạo ra một gói tin mạng
Các cảm biến trong mạng đọc các gói tin trong khoảng thời gian trước khi
nó được gửi ra khỏi mạng cục bộ (cảm biến này cần phải được đặt sao cho
nó có thể đọc tất cả các gói tin).
Chương trình phát hiện nằm trong bộ cảm biến kiểm tra xem có gói tin nào
có dấu hiệu vi phạm hay không. Khi có dấu hiệu vi phạm thì một cảnh báo
sẽ được tạo ra và gửi đến giao diện điều khiển.
Khi giao diện điều khiển lệnh nhận được cảnh báo nó sẽ gửi thông báo cho
một người hoặc một nhóm đã được chỉ định từ trước (thông qua email, cửa
sổ popup, trang web v.v…).
Phản hồi được khởi tạo theo quy định ứng với dấu hiệu xâm nhập này.
Các cảnh báo được lưu lại để tham khảo trong tương lai (trên địa chỉ cục bộ
hoặc trên cơ sở dữ liệu).
Một báo cáo tóm tắt về chi tiết của sự cố được tạo ra.
Cảnh báo được so sánh với các dữ liệu khác để xác định xem đây có phải là
cuộc tấn công hay không.
7
4. Phân Loại IDS
Hệ thống IDS được chia làm 2 loại cơ bản:
•
Network-based IDS (NIDS): sử dụng dữ liệu trên toàn bộ lưu thông mạng
cùng 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
•
Host-based IDS (HIDS): 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
Network based IDS – NIDS
4.1.
Hệ thống IDS dựa trên mạng sẽ kiểm tra các giao tiếp trên mạng với thời
gian thực (real-time). Nó kiểm tra các giao tiếp, quét header của các gói tin,
và có thể kiểm tra nội dung của các gói đó để phát hiện ra các đoạn mã nguy
hiểm hay các dạng tấn công khác nhau. Một Network-Based IDS hoạt động
tin cậy trong việc kiểm tra, phát hiện các dạng tấn công trên mạng, ví dụ như
dựa vào băng thông (bandwidth-based) của tấn công Denied of Service
(DoS).
8
Ư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
Độc lập với OS
Nhược điểm:
Có thể xảy ra trường hợp báo động giả
Không thể phân tích các dữ liệu đã đượ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 hiện, 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
Hạn chế lớn nhất là 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 lại những lưu lượng đó và phân tích
chúng. Khi tốc độ mạng tăng lên thì khả năng của đầu dò cũng phải tăng
theo.
9
Host based IDS - HIDS
4.2.
Bằng cách cài đặt một phần mềm trên máy chủ, IDS dựa trên máy chủ quan
sát tất cả những hoạt động về hệ thống và các file log, lưu lượng mạng thu
thập. 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ử và những thông điệp báo lỗi trên hệ thống máy chủ. 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, HIDS chỉ giám sát các hoạt động trên một máy tính. HIDS
thường được đặt trên các host quan trọng và các server trong vùng DMS.
Nhiệm vụ của HIDS là theo dõi các thay đổi trên hệ thống gồm:
•
Các tiến trình
•
Các entry
•
Mức độ sử dụng CPU
•
Tình trạng RAM
•
Tính toàn vẹn của hệ thống
•
Các thông số này khi vượt qua một ngưỡng nhất định hoặc có những
thay đổi khả nghi sẽ gây ra báo động
10
Ưu điểm:
Có khả năng xác định user liên quan tới event
HIDS có khả năng phát hiện tấn công diễn ra trên một máy, NIDS thì
không
Có thể phân tích các dữ liệu mã hóa
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
Nhược điểm:
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 OS bị sập do tấn công, đồng thời HIDS cũng sập
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.
11
Những loại tấn công thường gặp và IDS tương ứng
5.
Tấn công từ chối dịch vụ Denial of Services
5.1.
Denial of Service (DoS) có mục đích đóng bang hay chặn đứng tài nguyên
hệ thống đích. Cuối cùng mục tiêu không thể tiếp cận và trả lời các gói tin
gửi đến. DoS tấn công vào các mục tiêu bao gồm 3 dạng: mạng, hệ thống và
ứng dụng.
Phá hoại mạng: kiểu tấn công SYN flood. Kẻ tấn công sẽ gửi các gói tin kết
nối SYN tới hệ thống cho tới khi công suất của máy chủ quá tải và sẽ không
thể nhận được bất kỳ gói tin nào nữa.
Phá hoại hệ thống: bao gồm các dạng như Ping of Death (gửi 1 gói dữ liệu
có kích thước lớn thông qua lệnh ping tới máy chủ), Teardrop (gửi tới máy
chủ một loại gói tin có giá trị offset chồng chéo khiến máy chủ không sắp
xếp được à crash hoặc reboot) … Các kiểu tấn công này nhằm lợi dụng lỗ
hổng trên hệ điều hành nhằm phá hoại, gây quá tải hệ thống.
Phá hoại ứng dụng: bằng cách lợi dụng điểm yếu trên ứng dụng, cơ sở dữ
liệu hay trang web…
Giải pháp: Network IDS có thể phát hiện được các cuộc tấn công dạng gói
tin
12
Quét và thăm dò (Scanning và Probe)
5.2.
Bộ quét và thăm dò tự động sẽ tìm kiếm hệ thống trên mạng để xác định
điểm yếu. Việc thăm dò có thể thực hiện bằng cách ping tới hệ thống cũng
như kiểm tra các cổng TCP hoặc UDP để phát hiện ra ứng dụng có những lỗi
đã được biết tới.
Giải pháp: Network IDS có thể phát hiện các hành động nguy hiểm trước khi
chúng xảy ra. Host IDS cũng có tác dụng đối với kiểu tấn công này
Tấn công vào mật khẩu (Password attack)
5.3.
Có các phương thức để tiếp cận:
•
Kiểu dễ nhận thấy nhất là ăn trộm mật khẩu, mang lại quyền quản trị cho
kẻ tấn công có thể truy cập mọi thông tin trong mạng.
•
Đoán hay bẻ khóa mật khẩu là phương thức tiếp cận bằng cách thử nhiều
lần mật khẩu để tìm được đáp án đúng. Với kiểu bẻ khóa, kẻ tấn công cần
truy cập tới mật khẩu đã được mã hóa hay file chứa mật khẩu đã mã hóa.
Và sử dụng chương trình đoán mật khẩu với thuật toán mã hóa để xác
định mật khẩu đúng.
Giải pháp: Một Network IDS có thể phát hiện và ngăn chặn cố gắng đoán
mật khẩu, nhưng nó không hiệu quả trong việc phát hiện truy cập trái phép
tới file bị mã hóa. Trong khi đó, Host IDS lại thể hiện hiệu quả trong việc
phát hiện đoán mật khẩu cũng như truy cập trái phép.
Chiếm đặc quyền (Privilege-grabbing)
5.4.
Khi kẻ tấn công đã xâm nhập được hệ thống, chúng sẽ cố chiếm quyền truy
cập. Khi thành công, chúng sẽ tìm cách phá hoại hệ thống hoặc đánh cắp
thông tin quan trọng. Một số kỹ thuật thường dung cho việc chiếm đặc
quyền:
13
•
Đoán hay đánh cắp mật khẩu root, admin
•
Gây tràn bộ đệm
•
Khai thác registry
•
Sử dụng file, script hay lỗi của hệ điều hành, ứng dụng.
Giải pháp: Cả NIDS và HIDS đều có thể xác định được việc thay đổi đặc
quyền trái phép
Cài đặt mã nguy hiểm (Hostile code insertion)
5.5.
Một số loại tấn công có thể cài đặt mã nguy hiểm vào hệ thống. Mã này có
thể lấy trộm dữ liệu, gây từ chối dịch vụ, xóa file hay tạo backdoor cho lần
truy cập tiếp theo.
Virus: khi được thực thi sẽ dẫn tới hành động tự động, có hoặc không có hại,
luôn tạo ra bản sao của file hệ thống, file ứng dụng hay dữ liệu.
Trojan Horse: được đặt tên như một chương trình người ta muốn sử dụng
nhưng thực tế chúng kích hoạt các hành động dẫn tới hỏng hệ thống
Giải pháp: không có loại IDS nào chống việc phá hoại từ virus hay Trojan.
Cách tốt nhất là cài đặt phần mềm diệt virus
Hành động phá hoại trên máy móc (Cyber vandalism)
5.6.
Hành động phá hoại bao gồm: thay đổi trang web, xóa file, phá block khởi
động và chương trình hệ điều hành, format ổ đĩa
Giải pháp: sử dụng HIDS trong trường hợp này là hoàn toàn phù hợp. Với
NIDS có thể sử dụng dấu hiệu tấn công được định nghĩa trước để phát hiện
chính xác việc truy cập trái phép vào hệ điều hành
5.7.
Tấn công hạ tầng bảo mật (Security infrastructure attack)
14
Có nhiều loại tấn công can thiệp vào việc điều khiển cơ bản của cơ sở hạ
tầng bảo mật như tạo tường lửa trái phép, chỉnh sửa tài khoản của người
dung hay thay đổi các quyền của file. Tấn công vào cơ sở hạ tầng cho phép
kẻ xâm nhập có them quyền truy cập hay tạo them nhiều đường xâm nhập
vào hệ thống
Giải pháp: HIDS có thể bắt giữ các cuộc đăng nhập mà thực hiện những
hành động như trên
II. Giới thiệu về snort
1. Khái niệm Snort
Snort là phần mềm IDS được phát triển bởi Martin Roesh dưới dạng mã
nguồn mở.
Snort ban đầu được xây dựng trên nền Unix nhưng sau đó phát triển sang
các nền tảng khác. Snort được đánh giá rất cao về khả năng phát hiện xâm
nhập. Tuy snort miễn phí nhưng nó lại có rất nhiều tính năng tuyệt vời. Với
kiến trúc 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. Snort có thể chạy trên nhiều hệ thống như Windows,
Linux, OpenBSD, FreeBSD, Solaris …
Bên cạnh việc có thể hoạt động như một ứng dụng bắt gói tin thông thường,
Snort còn được cấu hình để chạy như một NIDS.
Tuy nhiên snort cũng có điểm yếu. Đó là tương tự như các bộ quét virus
(virus scanner), snort chỉ có thể chống lại các cuộc tấn công một cách hiệu
quả nếu như nó biết được dấu hiệu (signature) của các cuộc tấn công đó.
Dựa vào điểm này, các hacker "cao thủ" có thể điều chỉnh các cuộc tấn công
để thay đổi signature của cuộc tấn công đó. Từ đó các cuộc tấn công này có
thể "qua mặt" được sự giám sát của snort.
Snort là một kiểu IDS (Instruction Detection System). Nói ngắn gọn IDS là
một hệ thống được cài đặt trên mạng (hay máy tính) của bạn và nhiệm vụ
của nó là giám sát những gói tin vào ra hệ thống của bạn. Nếu một cuộc tấn
15
công được phát hiện bởi Snort thì nó có thể phản ứng bằng nhiều cách khác
nhau phụ thuộc vào cấu hình mà bạn thiết lập, chẳng hạn như nó có thể gởi
thông điệp cảnh báo đến nhà quản trị hay loại bỏ gói tin khi phát hiện có sự
bất thường trong các gói tin đó.
Tuy nhiên snort cũng có điểm yếu. Đó là tương tự như các bộ quét virus
(virus scanner), snort chỉ có thể chống lại các cuộc tấn công một cách hiệu
quả nếu như nó biết được dấu hiệu (signature) của các cuộc tấn công đó.
Dựa vào điểm này, các hacker "cao thủ" có thể điều chỉnh các cuộc tấn công
để thay đổi signature của cuộc tấn công đó. Từ đó các cuộc tấn công này có
thể "qua mặt" được sự giám sát của snort.
Như vậy có thể thấy rằng, để snort hoạt động một cách hiệu quả thì một
trong những yếu tố quan trọng cần phải chú ý là các luật viết cho snort. Khi
snort hoạt động, nó sẽ đọc các tập luật, giám sát luồng dữ liệu chạy qua hệ
thống và sẽ phản ứng nếu có bất kì luồng dữ liệu nào phù hợp với tập luật
của nó. Cụ thể hơn, tập luật có thể được tạo ra để giám sát các nỗ lực quyét
cổng (scanning), tìm dấu vết (footprinting), hoặc nhiều phương pháp khác
mà các hacker dùng để tìm cách chiếm quyền hệ thống.
2. Kiến trúc của Snort
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
•
Module giải mã gói tin
•
Module tiền xử lý
•
Module phát hiện
•
Module log và cảnh báo
•
Module kết xuất thông tin
Kiến trúc của Snort được thể hiện qua mô hình sau:
16
Khi Snort hoạt động, nó sẽ lắng nghe tất cả các gói tin nào di chuyển qua nó.
Các gói tin sau khi bị bắt sẽ được đưa vào module giải mã. Tiếp theo sẽ vào
module tiền xử lý và rồi module phát hiện. Tại đây tùy vào việc có phát hiện
được xâm nhập hay không mà gói tin có thể bỏ qua để lưu thông tin tiếp
hoặ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 ra cảnh báo theo đúng
định dạng mong muốn.
Module giải mã gói tin
2.1.
Snort chỉ sử dụng thư viện pcap để bắt mọi gói tin trên mạng lưu thông qua
hệ thống.
17
Một gói tin sau khi được giải mã sẽ đưa tiếp vào module tiền xử lý.
Module tiền xử lý
2.2.
Module này rất quan trọng đối với bất kỳ hệ thống nào để có thể chuẩn bị
gói dữ liệu đưa vào cho Module phát hiện phân tích. 3 nhiệm vụ chính:
•
Kết hợp lại các gói tin: Khi một dữ liệu lớn được gửi đi, thông tin sẽ
không đóng gói toàn bộ vào một gói tin mà thực hiện phân mảnh, chia
thành nhiều gói tin rồi mới gửi đi. Khi Snort nhận được các gói tin này,
nó phải thực hiện kết nối lại để có gói tin ban đầu. Module tiền xử lý giúp
Snort có thể hiểu được các phiên làm việc khác nhau.
•
Giải mã và chuẩn hóa giao thức (decode/normalize): 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 thất bại khi kiểm tra các
giao thức có dữ liệu có thể được biểu diễn dưới nhiều dạng khác nhau. Ví
dụ: một Web server có thể nhận nhiều dạng URL: URL viết dưới dạng
hexa/unicode hay URL chấp nhận dấu / hay \. Nếu Snort chỉ thực hiện
đơn thuần việc so sánh dữ liệu với dấu hiệu nhận dạng sẽ xảy ra tình
trạng bỏ sót hành vi xâm nhập. Do vậy, 1 số Module tiền xử lý của Snort
phải có nhiệm vụ giải mã và chỉnh sửa, sắp xếp lại các thông tin đầu vào.
•
Phát hiện các xâm nhập bất thường (nonrule/anormal): các plugin dạng
này thường để xử lý với các xâm nhập không thể hoặc rất khó phát hiện
bằng các luật thông thường. Phiển bản hiện tại của Snort có đi kèm 2
plugin giúp phát hiện xâm nhập bất thường đó là portscan và bo
(backoffice). Portscan dùng để đưa ra cảnh báo khi kẻ tấn công thực hiện
quét cổng để tìm lỗ hổng. Bo dùng để đưa ra cảnh báo khi hệ thống
nhiễm trojan backoffice.
Module phát hiện
2.3.
Đây là module 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. 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, từ đó xác định xem có xâm nhập
xảy ra hay không.
18
Một vấn đề quan trọng đối với module phát hiện và vấn đề thời gian xử lý
gói tin: một IDS thường nhận rất nhiều gói tin và bản thân nó cũng có rất
nhiều luật xử lý. Khi lưu lượng mạng quá lớn có thể xảy ra việc bỏ sót hoặc
không phản hồi đúng lúc. Khả năng xử lý của module phát hiện phụ thuộc
vào nhiều yếu tố: số lượng các luật, tốc độ hệ thống, băng thông mạng.
Một module phát hiện có khả năng tách các phần của gói tin ra và áp dụng
luật lên từng phần của gói tin:
•
IP header
•
Header ở tầng transport: TCP, UDP
•
Header ở tầng application: DNS, HTTP, FTP …
•
Phần tải của gói tin
Do các luật trong Snort được đánh số thứ tự ưu tiên nên 1 gói tin khi bị phát
hiện bởi nhiều luật khác nhau, cảnh báo được đưa ra theo luật có mức ưu
tiên cao nhất.
Module log và cảnh báo
2.4.
Tùy thuộc vào module phát hiện có nhận dạng được xâm nhập hay không
mà gói tin có thể bị ghi log hay đưa ra cảnh báo. Các file log là các file dữ
liệu có thể ghi dưới nhiều định dạng khác nhau như tcpdump
Module kết xuất thông tin
2.5.
Module này thực hiện các thao tác khác nhau tùy thuộc vào việc cấu hình
lưu kết quả xuất ra như thế nào.
•
Ghi log file
•
Ghi syslog
•
Ghi cảnh báo vào cơ sở dữ liệu
19
•
Tạo file log XML
•
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
III. Thực nghiệm
1. Thực nghiêm tạo mô hình và cài đặt snort
Chúng ta sẽ có mô hình như sau, gồm 4 máy:
• Client: Windows 7 –Vmnet 11: 192.168.11.12
• Attacker: Kali Linux 2016.2 –Vmnet 12 : 192.168.11.10
• Snort IDS: Centos 6.9 –Vmnet 11 : 192.168.11.11
–Vmnet 12 : 192.168.10.12
• WEB Server: Centos 6.9 –Vmnet 12 : 192.168.10.13
Cấu hình cơ bản này các bạn tự làm, vì phần này đã học ở môn Hệ điều hành
Unix. Coi lại phần cấu hình ip và routing để có thể ping thông qua các máy.
Lưu ý 1 số điều:
• Tắt Firewall khi ping
• Trong file /etc/sysctl.conf -> Chỉnh dòng net.ipv4.ip_forward = 1
• Coi lại cấu hình routing
Sau khi ping thông giữa các máy, các bạn bắt đầu vào việc cài đặt Snort
Cài đặt Package
20
yum install -y gcc flex bison zlib* libxml2 libpcap* pcre* tcpdump git libtool curl
man make daq
yum groupinstall - y "Development Tools"
Chuẩn bị các file cài đặt riêng sau, chỉ cần có card mạng NAT ra ngoài internet thì
các bạn có thể dễ dàng cài đặt các file này
libdnet-1.12.tgz
libdnet-1.12-6.el6.x86_64.rpm
libdnet-devel-1.12-6.el6.x86_64.rpm
snortrules-snapshot-2983tar.gz
Tải file snort mới nhất tại Snort.org
daq-2.0.4.tar.gz
snort-2.9.8.3.tar.gz
Sau khi cài đặt các file thì chúng trong tình trang chưa giải nén như trong
máy mình đây
Lưu ý:
• Sau khi mình cài đặt Snort thất bại rất nhiều lần thì mình rút ra được kinh
nghiêm như thế này. Các bạn hãy lưu ý snort-2.9.8.3.tar.gz và snortrulessnapshot-2983tar.gz phải cùng phiên bản với nhau, của mình là 2983.
Các bạn có thể phiên bản bất kỳ nhưng 2 file này phài cùng phiên bản
nếu không thì khi cài được 1 nữa các bạn sẽ gặp lỗi và phải bắt đầu lại từ
đầu như mình, lúc sau mình sẽ cho các bạn xem lỗi đó.
21
Tiếp theo chúng ta bắt đầu công việc
Tùy các bạn để file ở đâu để giải nén nó, mình để ở desktop và muốn giải
nén nó vào file /usr/local/src
Tiếp tục các bước như mình hướng dẫn
22
23
Tạo user, group, cấp quyền
Cấu hình snort
vi /etc/snort/snort.conf
ipvar HOME_NET any
>
ipvar HOME_NET 192.168.10.0/24
24
ipvar EXTERNAL_NET any
var RULE_PATH ../rules >
var SO_RULE_PATH
/etc/snort/so_rules
>
ipvar EXTERNAL_NET !$HOME_NET
104 var RULE_PATH /etc/snort/rules
../so_rules
>
var PREPROC_RULE_PATH ../preproc_rules
PREPROC_RULE_PATH /etc/snort/preproc_rules
105 var SO_RULE_PATH
>
106
var
var WHITE_LIST_PATH ../rules
/etc/snort/rules
>
109 var WHITE_LIST_PATH
var BLACK_LIST_PATH ../rules
/etc/snort/rules
>
110 var BLACK_LIST_PATH
Cấp quyền start snort
Check
Lỗi
25