Hệ thống phát hiện xâm nhập

Hệthống phát hiện xâm nhập (IDSs) 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ịkhông giống nhưfirewall và VPN là ngăn ngừa các cuộc tấn công mà

IDSs 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, 1 IDS có thểthoả

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.

pdf13 trang | Chuyên mục: Lý Thuyết Thông Tin | Chia sẻ: dkS00TYs | Lượt xem: 1759 | Lượt tải: 4download
Tóm tắt nội dung Hệ thống phát hiện xâm nhập, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ường truyền và hiệu quả các cuộc tấn công ngày càng tăng, nên việc tạo ra các cảnh báo chính xác 
ngày càng trở nên khó khăn. Lượng dữ liệu cảnh báo được tạo nên bởi IDS cps thể nhanh chóng 
overwhelm thao tác của con người. Thật không may, việc lọc dữ liệu cho con người thường sử dụng hạn 
chế những hiệu quả của nó. 
Một giải pháp cho vấn đề này liên quan đến kỹ thuật phát triển visualization đồng thời được coi là hiển thị 
geometric dữ liệu. Con người hiểu được geometric shapes intuitively, bởi loại hiển thị này thường là cách 
dễ nhất để hiển thị một liượng dữ liệu (massive). Khi một theo tác cảm thấy 1 dấu hiệu bất thường trong 
màn hình đồ họa, nó có thể drill down muộn hơn để giải quyết vấn đề. Ví dụ, cho những ứng dụng bên 
trong, Airscanner Corporation mã hóa điều khiển linh hoạt ActiveX mà mimics a real-time human 
electrocardiogram (EKG). Tốc độ và giai điệu (màu sắc hoặc âm thanh) của dao động "heartbeat" trên màn 
hình để đáp trả lại sự thay đổi trên mạng. Giám sát giống như những người y tá trong bệnh viện đối với 
cardiac telemetry floor, Người quản trị mạng Airscanner có thể dễ dàng giám sát LAN bằng cách để ý đến 
màn hình. 
19.5 Nghiên cứu Snort IDS 
Phần này sẽ trình bày 1 ví dụ phát triển Snort IDS ( Snort thường được gọi là 
"lightweight IDS," nhưng nó có tên gọi đó tại thời điểm đó chứ không liên quan gì đến lightweight.. Snort chỉ 
nên được gọi là lightweight nếu nó đề cập đến công cụ phát hiện hiệu quả và dung lượng nhớ các dấu hiệu 
nhỏ. Nó là 1 bộ dịch IDS đầy đủ mà có thể phát triển theo hướng tốc độ xử lý cao và cấu hình phân bổ mà 
có thể đạt được đến tốc độ hàng giga bit. 
Thiết bị phát hiện xâm nhập được đề cập đến trong phần này xây dựng trên hệ điều hành Linux, cơ sở dữ 
liệu MySQL và một môi trường phân tích ACID. Tất cả mọi phiên bản Linux như Red Hat hoặc Debian đều 
có thể sử dụng. Bạn nên xây dựng 1 hệ thống Linux nhỏ nhất từ scratch (giống như những nhà bán phần 
mềm IDS thương mại bán IDS dựa trên Unix). Đối với việc phát triển những mạng nhỏ, bạn nên từ bỏ 
những biến Linux quá canned. Hệ thống phải được nhỏ gọn nhất và nhiều tính năng (tất cả những phần 
mềm không cần thiết đều nên gỡ bỏ). 
Bạn nên có ít nhất 2 card mạng trên máy tính phát triển Snort. Bởi vì giao diện sniffing (để phát hiện những 
cuộc tấn công) và giao diện quản lý (sử dụng để quản lý dữ liệu các sự kiện nhạy cảm, cập nhật các quy 
định và những thay đổi cấu hình) phải được đặt riêng rẽ. Lý do chính đó là giao diện sniffing không có địa 
chỉ IP. Trong môi trường Linux, rất là dễ để kích hoạt một giao diện mạng mà không cần địa chỉ IP mà chỉ 
cần sử dụng lệnh như ifconfig eth1 up. Mặc dù không cung cấp 1 biện pháp an toàn tổng thể (bằng định 
nghĩa), nhưng biện pháp này tốt hơn là sử dụng một giao diện thông thường để phát hiện xâm nhập. 
Snort và cơ sở dữ liệu có thể được cài đặt trên 1 máy, tuy nhiên trong trường hợp tốc độ truyền thông cao, 
bạn nên cài đặt cơ sở dữ liệu, Snort, và webserver trên những máy tính khác nhau. Tốt nhất là Snort trên 1 
máy, còn cơ sở dữ liệu và webserver trên máy còn lại 
Trong trường hợp cài đặt trên nhiều máy, các thành phần của IDS được kết nối với nhau qua mạng và do 
đó, các biện pháp an toàn phải được thực thi. Để bảo vệ đường truyền giữa thiết bị phân tích với cơ sở dữ 
liệu, chúng ta phải sử dụng kết nối SSL. Để hạn chế các truy cập bàp bàn điều khiển dựa trên ACID, chúng 
ta sẽ sử dụng những đặc chuẩn của Apache webserver, phương pháp xác thực HTTP cơ bản qua 
.htpasswd. Truyền thông giữa cảm biến snort với cơ sở dữ liệu có thể được tunneled qua SSL hoặc SSH. 
19.5.1 Cài đặt hệ thống: 
Đầu tiên bạn phải thiết lập 1 Linux hardened. Đối với Red Hat Linux, có thể chọn Custom Install từ những 
bộ cài đặt CD chính thức hoặc không chính thức, hoặc thu gọn các tùy chọn cài đặt của nó bằng cách gỡ 
bỏ các thành phần đồ họa . Phải chắc chắn rằng tất cả các gói tin MySQL server (có sẵn trên Red Hat CDs) 
được cài đặt. Câu lệnh: 
# rpm -U /mnt/cdrom/RedHat/RPMS/mysql*rpm 
sẽ quan tâm đến điều này, được cung cấp bởi Linux CD. 
Trong trường hợp môi trường Linux sử dụng là Red Hat, rất nhiều gói phần mềm Snort RPM (Red Hat 
Package Manager) có thể download từ website Snort.org . Bạn cần gói Snort và Snort-mysql cho những cài 
đặt trên. Cài đặt chúng lên trên hệ thống của bạn. Nếu RPM đòi hỏi sự độc lập, hãy download gói cài đặt 
thích hợp cho nó (có thể sẽ cần thư viện libpcap) . 
Cài đặt thêm phần mềm quan sát sự kiện ACID-IDS vào hệ thống. Trang chủ ACID có chứa tất cả các phần 
mềm và hướng dẫn cài đặt ( Các gói cài đặt ACID đòi hỏi phải được giải nén 
ở 1 thư mục có thể nhìn thấy được từ webserver (ví dụ trên Red Hat là /var/www/html). Bởi vậy ACID có thể 
được phát triển trên /var/www/html/acid. File cấu hình acid_conf.php là nơi chứa tất cả các sắp đặt cấu 
hình. Không có điều khiển truy cập nào được thiết lập bên trong, do đó bạn cần phải tạo.htpasswd trong 
/var/www/html/acid. 
Nếu trong lựa chọn phát triển (chẳng hạn như cài đặt RedHat) không có web server thì 1 Apache web 
server cần được cài đặt trên môi trường đó thông qua CD. 
# rpm -U /mnt/cdrom/RedHat/RPMS/apache*rpm 
Sau khi tất cả các thành phần đã được cài đặt, đến lượt chúng ta thiết lập cấu hình cho IDS. Đầu tiên, Snort 
phải được cấu hình để có thể log vào cơ sở dữ liệu. Sau đây là một số chỉ dẫn để làm điều đó: 
1. Khởi động cơ sở dữ liệu MySQL : 
# /etc/init.d/mysql start 
2. Tạo cơ sở dữ liệu Snort: 
# echo "CREATE DATABASE Snort_db;" | mysql -u root -p 
3. Tạo người sử dụng để sử dụng cơ sở dữ liệu: 
# adduser Snort 
4. Tạo các quyền cho người sử dụng này để thêm các dữ liệu cảnh báo vào trong cơ sở dữ liệu: 
# echo "grant INSERT,SELECT on Snort_db.* to Snort@localhost;" | mysql -u root -p 
5. Sử dụng các script có sẵn trong nguồn của Snort (không đi kèm cùng với gói nhị phân RPM) để tạo cấu 
trúc dữ liệu: 
# cat ./contrib/create_mysql | mysql Snort_db 
6. Thay đổi file cấu hình Snort để log vào cơ sở dữ liệu. Nói cách khác thay đổi /etc/Snort.conf như sau:: 
output database: log, mysql, user=Snort dbname=Snort_db host=localhost 
7. Thay đổi script khởi tạo Snort (/etc/init.d/Snortd) để snort thực hiện lệnh sau: 
/usr/sbin/Snort -D -l /var/log/Snort -i $INTERFACE -c /etc/Snort/Snort.conf 
Định vị trí để các log của snort có thể được đánh giá ở đây. 
Bây giờ, Snort có thể bắt đầu bằng lệnh: 
# /etc/rc.d/init.d/Snortd start 
IDS đã được cấu hình và có thể log tới cơ sở dữ liệu. Hãy kiểm tra chúng như sau: 
1. Kiểm tra rằng tiến trình đang chạy: 
# ps ax| grep Snort | grep -v grep 
Nếu kết quả khả quan,bạn sẽ thấy dữ liệu trả về không trống. 
Trên Linux, tồn tại 1 lệnh đơn giản tương tự: 
# ps u `pidof Snort` 
2. Kiểm tra rằng Snort phát hiện thấy tấn công trên lynx  và 
sau đó chạy lệnh: 
# tail /var/log/Snort/alert 
Nếu có kết quả tốt, bạn sẽ nhìn thấy 1 thông điệp cảnh báo chỉ rằng có 1 tấn công IIS web. Đừng chạy 
bước kiểm tra này thông qua 1 kết nối URL từ xa mà hãy thử nó trên máy cục bộ của bạn. Phải chắc chắn 
rằng cảm biến có thể cảm nhận được cuộc tấn công (kết nối này được thiết lập thông qua mạng được giám 
sát bởi Snort). 
Phương pháp quét cổng sử dụng nmap là 1 bước thử Snort hiệu quả, điều này đảm bảo cho việc phát hiện 
quét cổng được bật và được cấu hình chính xác. Trong thực tế, có tồn tại nhiều phương pháp để kiểm tra 1 
IDS. Nhiều người thích sử dụng những gói tin ICMP lớn (có thể thực hiện bằng 1 lệnh ping đơn giản) hoặc 
là những phương pháp khác. 
3. Kiểm tra logging cơ sở dữ liệu: 
# echo "SELECT count(*) FROM event" | mysql Snort_db -u root -p 
Nếu tốt, bạn sẽ nhìn thấy một lượng khác rỗng dữ liệu được chứa trong cơ sở dữ liệu. 
19.5.2 Cài đặt công cụ cảnh báo: 
Bây giờ, hãy thiết lập công cụ cảnh báo qua ACID. ACID (Trung tâm phân tích dữ liệu xâm nhập) là 1 ứng 
dụng được xây dựng trên PHP mà cho phép phân tích dữ liệu Snort được chứa trong cơ sở dữ liệu. 
ACID phải được phép truy cập vào cơ sở dữ liệu. Sử dụng lệnh sau để thực hiện điều này: 
# echo "grant CREATE,INSERT,SELECT,UPDATE,DELETE on Snort_db.* to acid@localhost;" | 
mysql -u root -p 
Để an toàn hơn, nên sử dụng SSL để quan sát cảnh báo. Hãy phát triển các gói SSL từ đĩa cài Red Hat: 
# rpm -U /mnt/cdrom/RedHat/RPMS/mod-ssl*rpm 
và khởi động lại Apache thông qua /etc/init.d/httpd restart. 
Để an toàn hơn nữa, chỉ những kết nối SSH mới được phép. Một host firewall script for the iptables Linux 
firewall có thể được sử dụng để chỉ cho phép TCP port 443 (HTTPS) và không cho phép TCP port 80 
(HTTP). 
Bây giờ, khởi động Apache web server và chỉ browser tới giao diện quản lý IP (hoặc địa chỉ 127.0.0.1 nếu 
chạy trên local browser). Địa chỉ đúng là:  Phàn mềm ACID sẽ hướng 
dẫn bạn lựa chọn khởi tạo cài đặt, cung cấp cho bạn theo những hướng dẫn trên. ACID có thể được sử 
dụng để quan sát các cảnh báo của Snort IDS trong những chế độ khác nhau, thực hiện việc tìm kiếm, và 
truy cập gói tin payload đầy đủ. 
Nếu cài đặt cơ sở dữ liệu không đúng, bạn đơn giản chỉ cần chuyển tiếp những cảnh báo tới syslog và sau 
đó sử dụng công cụ phân tích syslog để giải quyết nó. Những công cụ như Snortsnarf tồn tại để tổng kết và 
quan sát các sự kiện Snort. 
19.5.3 Điều chỉnh các quy tắc của IDS : 
Thảo luận đầy đủ về việc điều chỉnh các quy tắc của IDS được đưa ra trong cốt lõi của chương này. Tuy 
nhiên, một khi chúng ta tiến tới việc khởi tạo các quy tắc, chúng ta sẽ mất rất nhiều thời gian cho những 
cảnh báo, phân tích chúng và theo đó giảm bớt các quy tắc. Công đoạn này thích hợp hơn đối với việc phát 
triển 1 NIDS nội bộ và mạng nhỏ. Một giải pháp khác đó là thu hẹp các bộ quy tắc để giám sát chỉ những 
dịch vụ đang bị nguy hiểm. Công việc này tốt hơn khi cài đặt DMZ với độ an toàn cao trong đó các thiết bị 
đều được thống kê một cách cẩn thận và vững chắc. Trong trường hợp này, cảnh báo CodeRed sẽ gia tăng 
một cách tuyệt đối bởi vì Unix web server sẽ không bị tổn thương bởi những đe dọa tầm thường đó. 

File đính kèm:

  • pdfHe_Thong_Phat_Hien_Xam_Nhap.pdf
Tài liệu liên quan