I. TỔNG QUAN HỆ THỐNG IDS 1. Khái niệm về hệ thống phát hiện xâm nhập IDS Hệ thống phát hiện xâm nhập – IDS (Intrusion Detection System) là một hệ thống có nhiệm vụ giám sát các luồng dữ liệu (lưu lượng) đang lưu thông trên mạng, có 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ư 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 hại tính toàn ổn định,tòan vẹn và sẵn sàng của hệ thống. IDS có thể phân biệt được những cuộc tấn công xuất phát từ bên ngoài hay từ 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 cuộc tấn công (smurf attack, buffer overflow, packet sniffers….). Khi một hệ thống IDS có khả năng ngăn chặn các cuộc tấn thì nó được gọi là hệ thống ngăn chặn xâm nhập – IPS (Intrusion Prevention System). Có rất nhiều công cụ IDS, trong đó Snort được sử dụng rất nhiều vì khả năng tương thích có thể hỗ trợ cài đặt trên cả hai môi trường Window và Linux. Khi Snort phát hiện những dấu hiệu của một cuộc tấn công, tùy thuộc vào cấu hình và những qui tắc do người quản trị qui định (Snort Rule) mà Snort có thể đưa ra những hành động khác nhau, như gửi cảnh báo đến người quản trị hay ghi log file,loại bỏ các gói tin xâm nhập hệ thống…. 2. Chức năng của IDS Hệ thống phát hiện xâm nhập cho phép các tổ chức bảo vệ hệ thống của họ khỏi những đe dọa với việc gia tăng kết nối mạng và sự tin cậy của hệ thống thông tin. Những đe dọa đối với an ninh mạng ngày càng trở nên cấp thiết đã đặt ra câu hỏi cho các nhà an ninh mạng chuyên nghiệp có nên sử dụng hệ thống phát hiện xâm nhập trừ khi những đặc tính của hệ thống phát hiện xâm nhập là hữu ích cho họ, bổ sung những điểm yếu của hệ thống khác…IDS có được chấp nhận là một thành phần thêm vào cho mọi hệ thống an toàn hay không vẫn là một câu hỏi của nhiều nhà quản trị hệ thống. Có nhiều tài liệu giới thiệu về những chức năng mà IDS đã làm được những có thể đưa ra vài lý do tại sao nên sử dụng hệ thống IDS: • Bảo vệ tính toàn vẹn (integrity) của dữ liệu, bảo đảm sự nhất quán của dữ liệu trong hệ thống. Các biện pháp đưa ra ngăn chặn được việc thay đổi bất hợp pháp hoặc phá hoại dữ liệu. • Bảo vệ tính bí mật, giữ cho thông tin không bị lộ ra ngoài. Bảo vệ tính khả dụng, tức là hệ thống luôn sẵn sàng thực hiện yêu cầu truy nhập thông tin của người dùng hợp pháp. • Bảo vệ tính riêng tư, tức là đảm bảo cho người sử dụng khai thác tài nguyên của hệ thống theo đúng chức năng, nhiệm vụ đã được phân cấp, ngăn chặn được sự truy nhập thông tin bất hợp pháp. • Cung cấp thông tin về sự xâm nhập, đưa ra những chính sách đối phó, khôi phục, sửa chữa… Nói tóm lại ta có thể tóm tắt IDS như sau: Chức năng quan trọng nhất là: giám sát – cảnh báo – bảo vệ Giám sát: lưu lượng mạng và các hoạt động khả nghi. Cảnh báo: báo cáo về tình trạng mạng cho hệ thống và nhà quản trị.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Viện Công nghệ thông tin và truyền thông
An Ninh Mạng
ĐỀ TÀI : Các hệ thống phát hiện xâm nhập dựa
trên dấu hiệu
Nhóm sinh viên thực hiện :
Trang 2I TỔNG QUAN HỆ THỐNG IDS
1 Khái niệm về hệ thống phát hiện xâm nhập IDS
Hệ thống phát hiện xâm nhập – IDS (Intrusion Detection System) là một hệthống có nhiệm vụ giám sát các luồng dữ liệu (lưu lượng) đang lưu thông trên mạng, có 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ư khaithá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 hạitính toàn ổn định,tòan vẹn và sẵn sàng của hệ thống
IDS có thể phân biệt được những cuộc tấn công xuất phát từ bên ngoài hay từ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
Trang 3cuộc tấn công (smurf attack, buffer overflow, packet sniffers….) Khi một hệ thống
IDS có khả năng ngăn chặn các cuộc tấn thì nó được gọi là hệ thống ngăn chặn xâmnhập – IPS (Intrusion Prevention System)
Có rất nhiều công cụ IDS, trong đó Snort được sử dụng rất nhiều vì khả năngtương thích có thể hỗ trợ cài đặt trên cả hai môi trường Window và Linux Khi Snortphát hiện những dấu hiệu của một cuộc tấn công, tùy thuộc vào cấu hình và những quitắc do người quản trị qui định (Snort Rule) mà Snort có thể đưa ra những hành độngkhác nhau, như gửi cảnh báo đến người quản trị hay ghi log file,loại bỏ các gói tin
xâm nhập hệ thống…
2 Chức năng của IDS
Hệ thống phát hiện xâm nhập cho phép các tổ chức bảo vệ hệ thống của họ khỏi những đedọa với việc gia tăng kết nối mạng và sự tin cậy của hệ thống thông tin Những đe dọa đốivới an ninh mạng ngày càng trở nên cấp thiết đã đặt ra câu hỏi cho các nhà an ninh mạng chuyên nghiệp có nên sử dụng hệ thống phát hiện xâm nhập trừ khi những đặc tính của hệthống phát hiện xâm nhập là hữu ích cho họ, bổ sung những điểm yếu của hệ thống khác…IDS có được chấp nhận là một thành phần thêm vào cho mọi hệ thống an toàn hay không vẫn là một câu hỏi của nhiều nhà quản trị hệ thống Có nhiều tài liệu giới thiệu về những chức năng mà IDS đã làm được những có thể đưa ra vài lý do tại sao nên sử dụng
hệ thống IDS:
• Bảo vệ tính toàn vẹn (integrity) của dữ liệu, bảo đảm sự nhất quán của dữ liệu trong hệ thống Các biện pháp đưa ra ngăn chặn được việc thay đổi bất hợp pháp hoặc phá hoại dữ liệu
• Bảo vệ tính bí mật, giữ cho thông tin không bị lộ ra ngoài Bảo vệ tính khả dụng, tức là
hệ thống luôn sẵn sàng thực hiện yêu cầu truy nhập thông tin của người dùng hợp pháp
• Bảo vệ tính riêng tư, tức là đảm bảo cho người sử dụng khai thác tài nguyên của hệ thống theo đúng chức năng, nhiệm vụ đã được phân cấp, ngăn chặn được sự truy nhập thông tin bất hợp pháp
• Cung cấp thông tin về sự xâm nhập, đưa ra những chính sách đối phó, khôi phục, sửa chữa…
Nói tóm lại ta có thể tóm tắt IDS như sau:
- Chức năng quan trọng nhất là: giám sát – cảnh báo – bảo vệ
Giám sát: lưu lượng mạng và các hoạt động khả nghi
Cảnh báo: báo cáo về tình trạng mạng cho hệ thống và nhà quản trị
Bảo vệ: Dùng những thiết lập mặc định và sự cấu hình từ nhà quản trị mà có những hành động thiết thực chống lại kẻ xâm nhập và phá hoại
3 Kiến trúc của hệ thống phát hiện xâm nhập
Kiến trúc của một hệ thống IDS bao gồm các thành phần chính sau: Thành
phần thu thập gói tin (information collection), thành phần phân tích gói tin (detection) và thành phần phản hồi (respotion) Trong ba thành phần này, thành phần phân tích gói tin là quan trọng nhất và bộ cảm biến (sensor) đóng vai trò quan quyết định nên cần được phân tích để hiểu rõ hơn về kiến trúc của một hệ thống phát hiện xâm nhập
Trang 4Bộ cảm biến được tích hợp với thành phần sưu tập dữ liệu Bộ tạo sự kiện Cáchsư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 Bộ tạo sự kiện (hệ điều hành, mạng, ứng dụng) cung cấp một số chính sáchthích hợp cho các sự kiện, có thể là một bản ghi các sự kiện của hệ thống hoặc các góimạng Số chính sách này cùng với thông tin chính sách có thể được lưu trong hệ thốngđược bảo vệ hoặc bên ngoài
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ươngthí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 (ví dụ: các ngưỡng) Thêm vào đó, cơ sở dữ liệu giữ các tham số cấu hình, gồm có các chế độ truyền thông với module đáp trả Bộ cảm biến cũng có cơ sở dữ liệu của riêng nó, gồm dữ liệu lưu về các xâm phạm phức tạptiềm ẩn (tạo ra từ nhiều hành động khác nhau)
IDS có thể được sắp đặt tập trung (ví dụ như được tích hợp vào trong tường lửa) hoặc phân tán Một IDS phân tán gồm nhiều IDS khác nhau trên một mạng lớn, tất cả chúng truyền thông với nhau Nhiều hệ thống tinh vi đi theo nguyên lý cấu trúc một tác nhân, nơi các module nhỏ được tổ chức trên một host trong mạng được bảo vệ
4 Phân loại hệ thống phát hiện xâm nhập
Có hai loại cơ bản là: Network-based IDS và Host-based IDS
4.1 Network-based IDS (NIDS)
NIDS là một 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
a Lợi thế của NIDS
Trang 5- Quản lý được một phân đoạn mạng (network segment)
- 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
b Hạ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…
- NIDS đòi hỏi phải luôn được cập nhật các dấu hiệu tấn công mới nhất để thực sự hoạt động hiệu quả
- 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
- Một trong những hạn chế là giới hạn băng thông Những bộ thu thập dữ liệu phải thu thập tất cả lưu lượng mạng, sắp xếp lại và phân tích chúng Khi tốc độ mạng tăng lên thìkhả năng của bộ thu thập thông tin cũng vậy Một giải pháp là phải đảm bảo cho mạng được thiết kế chính xác
Một cách mà hacker cố gắng che đậy cho hoạt động của họ khi gặp các hệ thống IDS là phân mảnh dữ liệu gói tin Mỗi giao thức có một kích cỡ gói dữ liệu có hạn, nếu
dữ liệu truyền qua mạng truyền qua mạng lớn hơn kích cỡ này thì dữ liệu bị phân mảnh.Phân mảnh đơn giản là quá trình chia nhỏ dữ liệu Thứ tự sắp xếp không thành vấn đề miễn là không bị chồng chéo dữ liệu, bộ cảm biến phải tái hợp lại chúng
Hacker cố gắng ngăn chặn phát hiện bằng cách gởi nhiều gói dữ liệu phân mảnh chồng chéo Một bộ cảm biến không phát hiện được các hoạt động xâm nhập nếu không sắp xếp gói tin lại một cách chính xác
Trang 64.2Host-based IDS (HIDS)
HIDS là hệ thống phát hiện xâm nhập được cài đặt trên các máy tính (host) HIDS cài đặt trên nhiều kiểu máy chủ khác nhau, trên máy trạm làm việc hoặc máy notebook HIDS cho phép thực hiện một cách linh hoạt trên các phân đoạn mạng
mà NIDS không thực hiện được Lưu lượng đã gửi đến host được phân tích và chuyển qua host nếu chúng không tiềm ẩn các mã nguy hiểm HIDS cụ thể hơn với các nền ứng dụng và phục vụ mạnh mẽ cho hệ điều hành Nhiệm vụ chính của HIDS là giám sát sự thay đổi trên hệ thống HIDS bao gồm các thàng phần chính
a Ư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, NIDSkhông có khả năng nà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ề host trong lúc cuộc tấn công đang diễn ra trên host
b Hạn chế của HIDS
- Thông tin từ HIDS sẽ không còn đáng tin cậy ngay sau khi cuộc tấn công vào host này thành công
- Khi hệ điều hành bị thỏa hiệp tức là HIDS cũng mất tác dụng
- 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 việc thăm dò mạng (Nmap, Netcat…) ·HIDS cần tài nguyên trên host để hoạt động
- HIDS có thể không phát huy được hiệu quả khi bị tấn công từ chối dịch vụ DoS
- Đa số được phát triển trên hệ điều hành Window Tuy nhiên cũng có một số chạy trên Linux hoặc Unix
Vì HIDS cần được cài đặt trên các máy chủ nên sẽ gây khó khăn cho nhà quản trị khi phải nâng cấp phiên bản, bảo trì phần mềm và cấu hình Gây mất nhiều
Trang 7thời gian và phứt tạp Thường hệ thống chỉ phân tích được những lưu lượng trên máy chủ nhận được, còn các lưu lượng chống lại một nhóm máy chủ, hoặc các hành động thăm dò như quét cổng thì chúng không phát huy được tác dụng Nếu máy chủ
bị thỏa hiệp hacker có thể tắt được HIDS trên máy đó Khi đó HIDS sẽ bị vô hiệu hóa
Do đó HIDS phải cung cấp đầy đủ khả năng cảnh báo Trong môi trường hỗn tạpđiều này có thể trở thành vấn đề nếu HIDS phải tương thích với nhiều hệ điều hành
Do đó, lựa chọn HIDS cũng là vấn đề quan trọng
Trang 9II.Tổng quan về Snort
1 Giới thiệu về snort
Snort là một NIDS được Martin Roesh phát triển dưới mô hình mã nguồn mở TuySnort miễn phí nhưng nó lại có rất nhiều tính năng tuyệt vời mà không phải sản phẩmthương mại nào cũng có thể có được Với kiến trúc thiết kế theo kiểu module, người dùng
có thể tự tăng cường tính năng cho hệ thống Snort của mình bằng việc cài đặt hay viếtthêm mới các module Cơ sở dữ liệu luật của Snort đã lên tới 2930 luật và được cập nhậtthường xuyên bởi một cộng đồng người sử dụng Snort có thể chạy trên nhiều hệ thốngnền như Windows, Linux, OpenBSD, FreeBSD, NetBSD, Solaris, HP-UX, AIX, IRIX,MacOS
Bên cạnh việc có thể hoạt động như một ứng dụng thu bắt gói tin thông thường,Snort còn có thể được cấu hình để chạy như một NIDS Snort hỗ trợ khả năng hoạt độngtrên các giao thức sau: Ethernet, 802.11,Token Ring, FDDI, Cisco HDLC, SLIP, PPP, và
PF của OpenBSD
2 Kiến trúc của Snort
Snort có 5 thành phần chính như sau:
- Bộ giải mã gói tin - Packet Decoder
- Các bộ tiền xử lý - PreProcessers
- Máy phát hiện - Detection Engine
- Hệ thống cảnh báo và ghi dấu - Logging and Alerting System
- Môđun xuất - Output Modules
Sơ đồ sau biểu diễn quan hệ giữa các thành phần của Snort Tại đó các gói dữ liệugiao tiếp từ mạng Internet vào trong hệ thống được đi qua Packet decoder Tại mỗi thànhphần các gói tin được xử lý rồi truyền kết quả cho thành phần kế tiếp trong hệ thống.Output modul sẽ loại bỏ các gói tin, ghi log hay sinh ra cảnh báo
Trang 10 Snort có 4 chế độ hoạt động như sau:
- Sniffer mode: ở chế độ này snort sẽ lắng nghe và đọc các gói tin trên mạng sau đó
sẽ trình bày kết quả trên giao diện hiển thị
- Packet Logger mode: lưu trữ các gói tin trong các tập tin log.
- Network instruction detect system (NIDS) : đây là chế dộ họat động mạnh mẽ và
được áp dụng nhiều nhất, khi họat động ở NIDS mode Snort sẽ phân tích các góitin luân chuyển trên mạng và so sánh với các thông tin được định nghĩa của ngườidùng để từ đó có những hành động tương ứng như thông báo cho quản trị mạngkhi xảy ra tình huống quét lỗi do các hacker /attacker tiến hành hay cảnh báovirus
- Inline mode: khi triển khai snort trên linux thì chúng ta có thể cấu hình snort để
phân tích các gói tin từ iptables thay vì libpcap do đó iptable có thể drop hoặc passcác gói tin theo snort rule
Trang 112.1 Module giải mã gói tin
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
Một gói tin sau khi được giải mã sẽ đưa tiếp vào module tiền xử lý
Trang 12có 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ậpdự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
2.3 Module phát hiện
Đâ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ệuxâ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
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ộtIDS 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ưulượ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
Trang 13 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ởinhiề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
2.4 Môđun log và cảnh báo
Tùy thuộc vào việc môđun Phát hiện có nhận dạng đuợc xâm nhập hay không mà góitin có thể bị ghi log hoặc đưa ra cảnh báo Các file log là các file text dữ liệu trong đó cóthể được ghi dưới nhiều định dạng khác nhau chẳng hạn tcpdump
2.5 Môđun kết xuất thông tin
Môđun này có thể thực hiện các thao tác khác nhau tùy theo việc bạn muốn lưu kếtquả xuất ra như thế nào Tùy theo việc cấu hình hệ thống mà nó có thể thực hiện các côngviệc như là:
• Ghi log file
Trang 14• Ghi syslog: syslog và một chuẩn lưu trữ các file log được sử dụng rất nhiều trêncác hệ thống Unix, Linux.
• Ghi cảnh báo vào cơ sở dữ liệu
• Tạo file log dạng xml: việc ghi log file dạng xml rất thuận tiện cho việc trao đổi vàchia sẻ dữ liệu
• Cấu hình lại Router, firewall
• Gửi các cảnh báo được gói trong gói tin sử dụng giao thức SNMP Các gói tindạng SNMP này sẽ được gửi tới một SNMP server từ đó giúp cho việc quản lý cáccảnh báo và hệ thống IDS một cách tập trung và thuận tiện hơn
• Gửi các thông điệp SMB (Server Message Block) tới các máy tính Windows.Nếu không hài lòng với các cách xuất thông tin như trên, ta có thể viết các môđun kết xuất thông tin riêng tuỳ theo mục đích sử dụng
3.Bộ luật của Snort
3.1 Cấu trúc luật của Snort
Tìm hiểu một ví dụ: