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 để phát hiện những hành vi đáng ngờ ở cấp độ mạng và máy chủ.. 1.3.1 Network-based IDS NIDS Hình 1.3.1: Mô hìn
Trang 3LỜI CẢM ƠN
Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Trong suốt thời gian từ khi bắt đầu học tập ở giảng đường đại học đến nay, em đã nhận được rất nhiều
sự quan tâm, giúp đỡ của quý Thầy Cô, gia đình và bạn bè
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở khoa Công nghệ thông tin - Trường Đại Học Vinh đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại trường Đặc biệt là các Thầy Cô trong tổ Mạng máy tính và truyền thông tạo mọi điều kiện tốt nhất
để em có thể hoàn thành tốt Đồ án tốt nghiệp
Em xin chân thành cảm ơn Th.S Lê Quốc Anh đã tận tâm hướng dẫn, chỉ bảo
Nếu không có những lời hướng dẫn, dạy bảo của thầy thì em nghĩ cuốn Đồ án tốt nghiệp này rất khó có thể hoàn thiện được Một lần nữa, em xin chân thành cảm ơn thầy
Cuốn Đồ án tốt nghiệp này được thực hiện trong vòng 14 tuần, một thời gian cũng tương đối, tuy nhiên do nhiều yếu tố khách quan lẫn chủ quan nên không tránh khỏi những thiếu sót là điều chắc chắn, em rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô và các bạn học để kiến thức của em trong lĩnh vực này được hoàn thiện hơn
Cuối cùng em xin kính chúc các Thầy Cô trong Khoa Công nghệ thông tin và
Th.S Lê Quốc Anh thật dồi dào sức khoẻ, niềm tin vui để tiếp tục sứ mệnh cao đẹp
của mình đó là truyền đạt kiến thức cho thế hệ mai sau
Trang 4MỞ ĐẦU
Với nhu cầu trao đổi thông tin, bắt buộc các cơ quan, tổ chức phải hòa mình vào mạng toàn cầu Internet An toàn và bảo mật thông tin là một trong những vấn đề quan trọng hàng đầu, khi thực hiện kết nối mạng nội bộ của các cơ quan, doanh nghiệp, tổ chức với Internet Ngày nay, các biện pháp an toàn thông tin cho máy tính cá nhân cũng như các mạng nội bộ đã được nghiên cứu và triển khai Tuy nhiên, vẫn thường xuyên có các mạng bị tấn công, có các tổ chức bị đánh cắp thông tin, …gây nên những hậu quả vô cùng nghiêm trọng
Những vụ tấn công này nhằm vào tất cả các máy tính có mặt trên Internet, các máy tính của các công ty lớn như Microsoft, IBM, các trường đại học và các cơ quan nhà nước, các tổ chức quân sự, nhà băng, …một số vụ tấn công với quy mô khổng lồ (có tới 100.000 máy tính bị tấn công) Hơn nữa những con số này chỉ là phần nổi của tảng băng trôi Một phần rất lớn các vụ tấn công không được thông báo vì nhiều lý do, trong đó có thể kể đến nỗi lo mất uy tín hoặc chỉ đơn giản những người quản trị dự án không hề hay biết những vụ tấn công nhằm vào hệ thống của họ
Không chỉ các vụ tấn công tăng lên nhanh chóng mà các phương pháp tấn công cũng liên tục được hoàn thiện Điều đó một phần do các nhân viên quản trị hệ thống ngày càng đề cao cảnh giác Vì vậy việc kết nối vào mạng Internet mà không có các biện pháp đảm bảo an ninh thì cũng được xem là tự sát
Một trong những giải pháp có thể đáp ứng tốt nhất cho vấn đề này là triển khai
hệ thống dò tìm xâm nhập trái phép Instruction Detect System (IDS) Có hai yêu cầu chính khi triển khai một hệ thống IDS đó là chi phí cùng với khả năng đáp ứng linh hoạt trước sự phát triển nhanh chóng của Công nghệ thông tin và Snort là phương án
có thể giải quyết tốt cả hai yêu cầu này
Trang 5Nội dung chính của đề tài gồm 3 chương như sau:
Chương 1: Tổng quan về hệ thống phát hiện xâm nhập IDS
Chương này mô tả khái niệm, vai trò, mô hình kiến trúc và những ưu nhược điểm của các hệ thống phát hiện xâm nhập IDS
Chương 2: Cấu trúc snort, chức năng snort, luật snort
Nghiên cứu về hệ thống Snort bao gồm: cấu trúc, các thành phần, chế độ làm
việc, tập luật của Snort
Chương 3: Triển khai snort trên một hệ thống mạng
Phân tích và đánh giá hoạt động của Snort thông qua mô phỏng một vài kiểu tấn công mạng
Trang 6MỤC LỤC
LỜI CẢM ƠN 1
MỞ ĐẦU 2
MỤC LỤC 4
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG PHÁT HIỆN XÂM NHẬP IDS 5
1.1 Khái niệm 5
1.2 Cấu trúc hệ thống 5
1.3 Phân loại IDS 6
CHƯƠNG II: HỆ THỐNG PHÁT HIỆN XÂM NHẬP SNORT 8
2.1 Tổng quan về Snort 8
2.2 Các thành phần của Snort 10
2.3 Các chế độ làm việc của Snort 13
2.4 Làm việc với tập luật của Snort 16
CHƯƠNG III: CÀI ĐẶT VÀ MÔ PHỎNG 28
3.1 Mô hình triển khai 28
3.2 Cài đặt Snort trên sever CentOS 6.5 28
3.3 Cấu hình proxy cho client ra internet 33
3.4 Mô phỏng tình huống 35
KẾT LUẬN 39
TÀI LIỆU THAM KHẢO 40
Trang 7CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG PHÁT HIỆN XÂM NHẬP
IDS
1.1 Khái niệm
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
để 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 xâm nhập có 2 loại cơ bản: Phát hiện xâm nhập dựa trên dấu hiệu và Phát hiện sự bất thường
1.1.1 Phát hiện xâm nhập dựa trên dấu hiệu
Phương pháp này nhận dạng cuộc tấn công bằng cách so sánh dấu hiệu nhận được với một tập hợp các dấu hiệu đã biết trước được xác định là sự tấn công
1.1.2 Phát hiện sự bất thường
Đây là phương pháp thiết lập và ghi nhận trạng thái hoạt động ổn định của hệ thống rồi 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 Nếu nhận thấy một sự chênh lệch lớn thì có khả năng đã xảy ra một cuộc tấn công
Trang 81.3 Phân loại IDS
IDS được chia thành: Host-based IDS (HIDS) và Network-based IDS (NIDS)
1.3.1 Network-based IDS (NIDS)
Hình 1.3.1: Mô hình NIDS
NIDS là 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
1.3.1.1 Ưu điểm của NIDS:
Quản lý được một phân đoạn mạng (networksegment)
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
Phải luôn cập nhật các dấu hiệu tấn công mới nhất để thực sự an toàn
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
Trang 91.3.2 Host Base IDS (HIDS):
Hình 1.3.2: Mô hình HIDS
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
1.3.2.1 Ư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
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ề hót trong lúc cuộc tấn công diễn ra
1.3.2.2 Hạn chế của HIDS
Thông tin từ HIDS là không đáng tin cậy ngay khi tấn công vào host này thành
công
Khi hệ điều hành bị “hạ” do tấn công, thì đồng thời HIDS cũng bị “hạ đo ván”
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
Đa số là chạy trên hệ điều hành Window Tuy nhiên cũng có số ít chạy được
trên Linux và Unix
Trang 10CHƯƠNG II: HỆ THỐNG PHÁT HIỆN XÂM NHẬP SNORT
2.1 Tổng quan về Snort
2.1.1 Khái niệm
Snort được phát triển năm 1998 bởi Sourcefire và CTMO Martin Roeschm là một phần mềm miễn phí Ban đầu được gọi Công nghệ phát hiện và phòng chống xâm nhập hạng nhẹ, song Snort dần phát triển và được triển khai rộng rãi trên toàn thế giới Mặc dù phương pháp phát hiện xâm nhập này vẫn còn mới nhưng Snort được đánh giá
là hệ thống tốt nhất hiện nay
Snort là một ứng dụng bảo mật hiện đại có ba chức năng chính: Nó có thể phục
vụ như là một bộ phận lắng nghe gói tin, lưu lại thông tin gói tin hoặc một hệ thống phát hiện xâm nhập mạng (NIDS) Bên cạnh đó có rất nhiều Add-on cho Snort để quản
lý (ghi log, quản lý, tạo rules…) Tuy các thành phần này không phải là phần lõi của Snort nhưng nó lại một đóng vai trò quan trọng trong việc sử dụng cũng như khai thác các tính năng của Snort
2.1.2 Các đặc tính
Nó hỗ trợ cho nhiều nhiều nền tảng hệ điều hành khác nhau như: Linux, OpenBSD, Solaris, Window… Snort cung cấp một số đặc tính như:
Có khả năng phát hiện một số lượng lớn các kiểu thăn dò, xâm nhập khác nhau
như: buffer oveflow, CGI-Atack, Scan, ICMP, Virus…
Phát hiện nhanh các xâm nhập theo thời gian thực
Cung cấp cho nhà quản trị các thông tin cần thiết để xử lý các sự cố khi bị xâm nhập
Giúp người quản trị tự đặt ra các dấu hiệu xâm nhập mới một cách dễ dàng
Là phần mềm Open source và không tốn kém chi phí đầu tư Snort được xây dựng với mục đích thỏa mãn các tính năng cơ bản sau: Có hiệu năng cao hơn, đơn giản và có tính uyển chuyển cao
Trang 11Hình 2.1:Sơ đồ khối của hệ thống Snort
Sơ đồ khối của một hệ thống phát hiện xâm nhập bao gồm Snort, MySQL, Apache, ACID, BASE, PHP, thư viện GD và PHPLOT Theo hình trên, dữ liệu được thu thập và phân tích bởi Snort Sau đó, Snort lưu trữ dữ liệu trong cơ sở dữ liệu MySQL bằng cách dùng output plug-in Web server Apache với ACID, PHP, thư viện
GD và PHPLOT sẽ biểu diễn dữ liệu này trên trình duyệt khi một người dùng kết nối đến server Người dùng có tạo nhiều kiểu truy vấn khác nhau để phân tích dữ liệu
Snort chủ yếu là một IDS dựa trên luật, tuy nhiên các input plug-in cũng tồn tại
để phát hiện sự bất thường trong các header của giao thức
Snort sử dụng các luật được lưu trữ trong các file text, có thể được chỉnh sửa bởi người quản trị Các luật được nhóm thành các kiểu Các luật thuộc về mỗi loại được lưu trong các file khác nhau File cấu hình chính của Snort là Snort.conf Snort đọc những luật này vào lúc khởi tạo và xây dựng cấu trúc dữ liệu để cung cấp các luật
để bắt giữ dữ liệu Tìm ra các dấu hiệu và sử dụng chúng trong các luật là một vấn đề đòi hỏi sự tinh tế, vì ta càng sử dụng nhiều luật thì năng lực xử lý càng được đòi hỏi để thu thập dữ liệu trong thực tế Snort có một tập hợp các luật được định nghĩa trước để
Trang 12phát hiện các hành động xâm nhập và ta cũng có thể thêm vào các luật của chính ta Ta cũng có thể xóa một vài luật đã được tạo trước để tránh việc báo động sai
2.2 Các thành phần của Snort
Snort được chia thành nhiều thành phần Những thành phần này làm việc với nhau để phát hiện các cách tấn công cụ thể và tạo ra output theo một định dạng được đòi hỏi Một IDS dựa trên Snort bao gồm các thành phần chính sau đây:
Bộ phận giải mã gói (Packet Decoder)
Bộ phận tiền xử lí (Preprocessor)
Bộ phận phát hiện (Dectection Engine)
Hệ thống ghi và cảnh báo (Logging và Alerting System)
Bộ phận đầu ra (Output Modules)
Hình 2.2: Thành phần xử lý gói tin của snort
2.2.1 Bộ phận giải mã gói
Bộ phận giải mã gói lấy các gói từ các giao diện mạng khác nhau và chuẩn bị cho việc gói tin được xử lí trước hoặc được gửi cho bộ phận phát hiện
Trang 132.2.2 Bộ phận xử lí trước
Hình 2.2.2: Preprocessor của snort
Bộ phận xử lí trước là những thành phần được sử dụng với Snort để sắp xếp hoặc chỉnh sửa gói dữ liệu trước khi bộ phận phát hiện làm một vài xử lý để tìm ra gói tin có được sử dụng bởi kẻ xâm nhập hay không Một vài bộ phận xử lý trước cũng thực thi việc phát hiện bằng cách tìm các dấu hiệu bất thường trong header của gói tin
và tạo ra các cảnh báo Bộ phận xử lí trước là rất quan trọng trong bất kì IDS nào, chúng chuẩn bị cho các gói dữ liệu được phân tích dựa trên các luật trong bộ phận phát hiện Kẻ tấn công sử dụng nhiều kĩ thuật khác nhau để lừa IDS theo nhiều cách Bộ phận xử lí trước cũng được sử dụng để tái hợp các gói tin Trên IDS, trước khi áp dụng bất kì luật nào, bạn phải tái hợp các gói tin lại để tìm ra các dấu hiệu Bộ phận xử lí trước trong Snort có thể tái hợp các gói tin, giải mã HTTP URI, ráp lại các dòng TCP, v.v Những chức năng này rất quan trọng trong hệ thống phát hiện xâm nhập
Trang 142.2.3 Bộ phận phát hiện
Đây là phần quan trọng nhất của Snort Trách nhiệm của nó là phát hiện
có sự xâm nhập tồn tại trong gói tin hay không Bộ phận phát hiện sử dụng các
luật của Snort cho mục đích này Nếu một gói tin không giống với bất kì gói tin
bình thường nào thì một hành động tương ứng sẽ được thực hiện Những gói tin
có dấu hiện bất thường bị phát hiện, hành động phát hiện được mô tả băng
những biểu thức bao gồm các toán tử và các toán hang hay so sánh dùng để
nhận dạng ra xâm nhập
2.2.4 Hệ thống ghi và cảnh báo
Hình 2.2.4: Logging và Alerting System của snort
Phụ thuộc những đặc tính mà bộ phận phát hiện tìm thấy trong gói tin, gói tin
có thể được sử dụng để ghi lại các hành vi hoặc tạo ra một cảnh báo Các thông tin ghi
lại được giữ trong các file text đơn giản hoặc các dạng khác
Bộ phận này rất quan trọng nó không chỉ đảm nhận nhiệm vụ Mà còn có thể
cho chúng ta xem được các hành vi khi sự kiện được ghi lại, từ đó có thể để ý và thấy
sự bất thường ở những lần kế tiếp Bộ phận này giúp ích cho những người làm quản
trị
Trang 152.2.5 Bộ phận đầu ra
Module đầu ra hoặc plug-in có thể hoạt động theo nhiều cách phụ thuộc vào việc bạn muốn lưu các output được tạo ra bằng hệ thống ghi và tạo cảnh báo như thế nào
Tuỳ thuộc vào cấu hình, Output Modules có thể làm việc giống như:
Ghi nhật ký vào file /var/log/Snort/alerts
Gửi ra SNMP traps
Ghi vào cơ sở dữ liệu giống như MySQL or Oracle
2.3 Các chế độ làm việc của Snort
2.3.1 Chế độ “lắng nghe” mạng
Hình 2.3.1.: Tính năng sniffer
Các công cụ sniffer mạng như tcpdump, ethereal, và Tethereal có đầy đủ các đặc tính và phân tích gói tin một cách xuất sắc, tuy nhiên, có lúc ta cần xem lưu lượng mạng trên bộ cảm biến Snort Trong trường hợp này, sử dụng Snort như là một sniffer
là khả thi Kết quả xuất của chế độ Snort sniffer hơi khác so với các sniffer dòng lệnh
Nó rất dễ để đọc và ta có thể thấy thích khả năng bắt giữ gói tin nhanh của nó Một đặc tính hay của chế độ này là việc tóm tắt lưu lượng mạng khi kết thúc việc bắt giữ gói tin Thỉnh thoảng, nó có thể là một công cụ gỡ rối hữu dụng cho nhà quản trị
Bật chế độ sniffer cho Snort bằng cờ -v:
# Snort –v
Trang 16Trong lúc khởi động, Snort hiển thị chế độ, thư mục ghi log, và các giao diện
mà nó đang lắng nghe Khi việc khởi động hoàn tất, Snort bắt đầu xuất các gói tin ra màn hình Kết quả xuất này khá cơ bản: nó chỉ hiển thị các header IP,TCP/UDP/ICMP
và một số cái khác Để thoát chế độ sniffer, sử dụng Ctrl-C Snort thoát bằng cách tạo
ra một bản tóm tắt các gói tin được bắt giữ, bao gồm các giao thức, thống kê phân mảnh và tái hợp gói tin Để xem dữ liệu ứng dụng, sử dụng cờ -d Tùy chọn này cung cấp các kết quả chi tiết hơn:
# Snort –vd
Dữ liệu ứng dụng có thể thấy được và ta có thể nhìn thấy các plain text trong gói tin Trong trường hợp này, văn bản gửi từ một server DNS được thể hiện dưới dạng plain text Để xem được chi tiết hơn, bao gồm các header lớp liên kết dữ liệu, sử dụng cờ -e Việc sử dụng cả hai tùy chọn –d và –e sẽ cho hiển thị hầu như tất cả các dữ liệu trong gói tin:
# Snort –vde
Các chuỗi thập lục phân hiển thị nhiều dữ liệu hơn Có địa chỉ MAC và địa chỉ
IP Khi thực hiện kiểm tra trên một mạng hoặc bắt giữ dữ liệu bằng Snort, việc bật –vde cung cấp nhiều thông tin nhất
Để lưu lại trong logfile thay vì xuất ra console, sử dụng Snort -dve > temp.log Tóm lại, đây là các tùy chọn có thể sử dụng với chế độ sniffer của Snort
2.3.2 Chế độ Packet logger
Bước tiếp theo sau khi sniffing các gói tin là ghi log chúng Việc ghi log chỉ đơn
giản bằng cách thêm tùy chọn –l, theo sau đó là thư mục mà ta muốn lưu trữ các log Thư mục mặc định trong Snort là /var/log/Snort Nếu ta xác định một thư mục không tồn tại thì Snort sẽ báo một thông điệp lỗi Ta có thể sử dụng các tùy chọn –d, -a và –e
để điều khiển số lượng thông tin sẽ được ghi log cho mỗi gói tin Trong ví dụ sau đây, thư mục log được thiết lập là /usr/local/log/Snort, và các logfile bao gồm các payload gói tin
ví dụ: # Snort -l /usr/local/log/Snort –d
Khi chạy trong chế độ này, Snort thu thập mỗi gói tin nó thấy và lưu chúng trong thư mục log theo kiểu phân cấp Nói cách khác, một thư mục mới được tạo ra cho mỗi địa chỉ được bắt giữ và dữ liệu liên quan đến địa chỉ này được lưu trong thư mục đó Snort lưu các gói tin thành các file ASCII, với tên file được tạo ra từ giao thức
và số cổng Cách tổ chức này làm cho nhà quản trị có thể dễ dàng thấy được ai đang
Trang 17mục log) Hãy nhớ xác định biến mạng (trong file cấu hình hoặc sử dụng -h) để xác định chỉ ghi log cho mạng
Cách tổ chức phân cấp này hữu dụng khi một số giới hạn các host được quan tâm hoặc ta muốn xem thoáng qua các địa chỉ IP của các host được bắt giữ Tuy nhiên, thư mục log có thể ngày càng nhiều vì sự gia tăng thư mục và các file Nếu ta ghi log tất cả lưu lượng trên một mạng lớn thì có thể sẽ bị tràn inodes (Unix giới hạn tổng số file trong một file hệ thống) trước khi bị tràn bộ nhớ Nếu một người nào đó thực hiện việc quét mạng của ta và ánh xạ tất cả 65536 cổng TCP cũng như 65536 cổng UDP, ta
sẽ đột ngột có hơn 131000 file trong một thư mục đơn Sự bùng nổ file này có thể là một thử thách lớn cho bất kì một máy nào, và rất dễ trở thành cách tấn công DoS Việc ghi log theo kiểu nhị phân có thể đọc được bởi Snort, tcpdump hoặc ethereal Cách này làm tăng tốc độ và khả năng vận chuyển của việc bắt giữ gói tin Hầu hết các hệ thống
có thể bắt giữ và ghi log với tốc độ 100 Mbps mà không có vấn đề gì Để ghi log các gói tin theo kiểu nhị phân, sử dụng lựa chọn –b
2.3.3 Chế độ phát hiện xâm nhập mạng (NIDS)
Snort là một công cụ phát hiện xâm nhập tuyệt vời Khi được sử dụng như là một NIDS, Snort cung cấp khả năng phát hiện xâm nhập gần như là thời gian thực Chúng ta sẽ xem rất nhiều cách mà Snort có thể được sử dụng như là một NIDS và tất
cả các tùy chọn cấu hình có thể Trong chế độ cảnh báo, Snort cần một file cấu hình (thật ra, chỉ cần xác định vị trí của file Snort.conf là đặt Snort trong chế độ này)
Vị trí mặc định của file này là /etc/Snort.conf Nếu ta muốn đặt ở một vị trí khác, ta phải sử dụng khóa –c kèm với vị trí đặt file Các cảnh báo được đặt trong file alert trong thư mục log (mặc định là /var/log/Snort) Snort sẽ thoát ra với với một lỗi nếu file cấu hình hoặc thư mục log không tồn tại
Các cài đặt mặc định cho hầu như tất cả các mục trong file này là khá tốt (mặc
dù sẽ có các cảnh báo nhầm) Biến duy nhất chúng ta mới thiết lập là biến RULE_PATH, chỉ cho Snort nơi của các file luật File cảnh báo nằm trong thư mục /var/log/Snort File này chứa các cảnh báo được tạo ra khi Snort đang chạy Các cảnh
Trang 18báo Snort được phân loại theo kiểu cảnh báo Một luật Snort cũng xác định một mức
độ ưu tiên cho một cảnh báo Điều này cho phép ta lọc các cảnh báo có độ ưu tiên thấp
2.3.4 Inline Mode
Inline Mode là một nhánh cơ chế hoạt động của Snort Snort Inline kết hợp khả năng ngăn chặn của Iptables vào bên trong Snort, sau đó đưa ra những bổ sung và thay đổi trong bộ qui tắc luật Snort để giúp iptables đưa ra những động cho phép hay hủy một gói tin Ba loại quy tắc mới được bổ sung khi hoạt động ở chế độ này đó là: Drop, reject, sdrop
2.4 Làm việc với tập luật của Snort
Giống như virut, hấu hết các hành vi xâm nhập đều có một vài dấu hiệu Thông tin về các dấu hiệu này được sử dụng để tạo ra các luật của Snort Bạn có thể sử dụng honey post để biết kẻ xâm nhập đang làm gì và thông tin về các công cụ và kĩ thuật của chúng Ngoài ra, có các sơ sở dữ liệu về các điểm yếu mà kẻ xâm nhập muốn khai thác Những cách tấn công đã biết này cũng có thể được sử dụng như là các dấu hiệu
để phát hiện một người nào đó muốn tấn công hệ thống của bạn Các dấu hiệu có thể tồn tại trong header của các gói tin Hệ thống phát hiện xâm nhập dựa trên Snort thì dựa trên các luật Các luật của Snort có thể được sử dụng để kiểm tra nhiều phần khác nhau của gói tin
Một luật có thể được sử dụng để tạo ra một thông điệp cảnh báo, ghi lại một thông điệp , hoặc trong Snort là “pass” gói tin Hầu hết các luật của Snort được viết theo từng dòng đơn Tuy nhiên, bạn cũng có thể mở rộng các luật thành nhiều dòng bằng cách sử dụng kí tự gạch chéo ngược tại cuối dòng Các luật thường được đặt
trong file cấu hình, thường là snort.conf Bạn cũng có thể sử dụng nhiều file bằng
cách gom chúng lại trong một file cấu hình chính
Cấu trúc chung của luật trong Snort:
Tất cả các luật Snort đều có hai phần chính: header và options
Rule header Rule Options
Phần header chứa các thông tin về hành động mà luật sẽ thực hiện Nó cũng chứa các tiêu chuẩn về việc so sánh một luật trên một gói tin Phần option thường chứa
Trang 19một thông điệp cảnh báo và thông tin về phần nào của gói tin được sử dụng để tạo ra cảnh báo Một luật có thể phát hiện một hoặc nhiều kiểu xâm nhập
2.4.1 Rule header
Cấu trúc tổng quát của phần header như sau:
Action Protocol Address Port Direction Address Port
Trường Rule header Mô tả trường Giải thích
tiêu chuẩn được so trùng và một luật giống với gói tin dữ liệu Hành động điển hình là việc tạo ra các cảnh báo hoặc ghi lại các thông điệp log Dưới đây là các action trong rule header
Pass Dùng thông báo cho Snort bỏ
qua gói tin Action này là một tuỳ chọn đóng vai trò quan trọng trong việc làm tăng tốc
độ xử lý của Snort khi ta không muốn kiểm tra nội dung của các gói tin
Log Action dùng để log những gói
tin, có rất nhiều cách khác nhau
để log các gói tin Như là log vào file text hoặc vào database Gói tin có thể được log với những độ ưu tiên khác nhau, tuỳ thuộc vào tham số dòng lệnh đi theo và file cấu hình
Alert Dùng để gửi một tin nhắn đến
admin khi một gói tin co dấu hiệu trùng hợp trong rule Có nhiều cách khác nhau để thực
Trang 20thi một alert như thông báo lên console, log vào file…
Activate Dùng để tạo một alert và khi
đó sẽ sử dụng các rule khác để kiểm tra nhiều mối rằng buộc hơn Dynamic rule dùng cho trường hợp này
User có thể tự tạo cho riêng mình những action khác nhau, theo trường hợp cụ thể
giao thức cụ thể Phần protocol được sử dụng để
áp dụng luật trên các gói tin chỉ đối với một giao thức cụ thể Đây là tiêu chuẩn đầu tiên được đề cập trong luật Một vài giao thức được sử dụng như là IP, ICMP, UDP, TCP
thể là của một host, nhiều host hoặc là địa chỉ mạng Lưu ý rằng trong một luật sẽ có 2 địa chỉ: địa chỉ nguồn và địa chỉ đích
xác định cổng nguồn và đích của một gói tin mà luật được áp dụng Trong trường hợp giao thức lớp mạng là IP và ICMP, số port là không có ý nghĩa
Trang 212.4.2 Rule option
Rule option theo sau rule header và được đóng gói trong dấu ngoặc đơn Có thể
có một hoặc nhiều option, được cách nhau bởi dấu phẩy Nếu bạn sử dụng nhiều option, những option hình thành phép logic AND Một action trong rule header chỉ được thực hiện khi tất cả các option đều đúng Tất cả các option được định nghĩa bằng các từ khóa Một vài option cũng chứa các tham số Thông thường, một option có thể
có 2 phần: từ khóa và đối số Các đối số được phân biệt với từ khóa bằng dấu hai chấm
Classtype
Name Tên được sử dụng cho
việc phân loại Tên được
sử dụng với từ khóa classtype trong luật Snort