Quy tắc luật của Snort

Một phần của tài liệu (LUẬN văn THẠC sĩ) các giải pháp bảo mật mạng và ứng dụng cho mạng máy tính tại trường cao đẳng kỹ thuật thông tin (Trang 44 - 59)

Tệp quy tắc Snort là tệp ASCII có thể chỉnh sửa được theo ý muốn của bạn. Nội dung của tệp quy tắc bao gồm các phần sau:

Định nghĩa biến: những định nghĩa này xác định các biến có thể được sử dụng lại trong việc tạo quy tắc Snort.

Quy tắc Snort: đây là những quy tắc thực tế cho phép phát hiện xâm nhập. Những điều này phải phù hợp với chính sách Phát hiện xâm nhập tổng thể. Quy tắc snort được định nghĩa sau trong phần này.

Bộ tiền xử lý: chúng đồng nghĩa với các plugin và là công cụ mở rộng khả năng của Snort. Ví dụ, mô-đun quét cổng cho phép Snort phát hiện quét cổng.

Bao gồm các tệp: chúng cho phép bạn bao gồm các tệp quy tắc Snort khác. Mô-đun đầu ra: những mô-đun này cho phép người quản trị Snort chỉ định đầu ra để ghi nhật ký và cảnh báo. Các mô-đun đầu ra được chạy khi hệ thống con cảnh báo hoặc ghi nhật ký của Snort được gọi.

Đầu tiên là các quy tắc Snort phải được chứa hoàn toàn trên một dòng, trình phân tích cú pháp quy tắc Snort không biết cách xử lý các quy tắc trên nhiều dòng.

Rule header Rule options

Hình 3.5. Tiêu đề của Snort

Quy tắc snort được chia thành hai phần hợp lý, tiêu đề quy tắc và các tùy chọn quy tắc. Tiêu đề quy tắc chứa hành động, giao thức, địa chỉ IP nguồn và đích và mặt nạ mạng cũng như thông tin về cổng nguồn và cổng đích. Phần tùy chọn quy tắc chứa các thông báo cảnh báo và thông tin về những phần nào của gói tin cần được kiểm tra để xác định xem có nên thực hiện hành động quy tắc hay không.

Đây là một quy tắc ví dụ:

Hình 3.6. Mẫu qui tắc ngắn gọn

Văn bản cho đến dấu ngoặc đơn đầu tiên là tiêu đề quy tắc và phần nằm trong dấu ngoặc đơn là các tùy chọn quy tắc. Các từ trước dấu hai chấm trong phần tùy chọn quy tắc được gọi là từ khóa tùy chọn. Lưu ý rằng phần tùy chọn quy tắc không được yêu cầu cụ thể bởi bất kỳ quy tắc nào, chúng chỉ được sử dụng nhằm mục đích tạo ra các định nghĩa chặt chẽ hơn về các gói để thu thập hoặc cảnh báo về (hoặc bỏ qua, hoặc giữ lại gói tin). Tất cả các phần tử trong đó tạo nên quy tắc phải đúng với hành động quy tắc được chỉ định sẽ được thực hiện. Khi kết hợp với nhau, các phần alert tcp any any -> 192.168.1.0/24 111 (content:"|00 01 86 a5|"; msg: "mountd access";)

tử có thể được coi là để tạo thành một câu lệnh AND logic. Đồng thời, các quy tắc khác nhau trong tệp thư viện quy tắc Snort có thể được coi là để tạo thành một câu lệnh OR lôgic lớn.

1) Tiêu đề của quy tắc (Rule Header)

- Hành động của quy tắc (Rule Actions)

Tiêu đề quy tắc chứa thông tin xác định "ai, ở đâu và cái gì" của một gói, cũng như những việc cần làm trong trường hợp một gói có tất cả các thuộc tính được chỉ ra trong quy tắc sẽ hiển thị. Mục đầu tiên trong quy tắc là hành động quy tắc. Hành động quy tắc cho Snort biết phải làm gì khi nó tìm thấy một gói phù hợp với tiêu chí quy tắc. Có năm hành động mặc định có sẵn trong Snort, alert, log, pass, active và dynamic.

+ Alert - tạo cảnh báo bằng cách sử dụng phương pháp cảnh báo đã chọn, sau đó ghi lại gói tin.

+ Log - ghi lại gói tin. Có thể ghi vào file hoặc cơ sở dữ liệu. + Pass - cho phép snort bỏ qua gói tin

+ Activate - cảnh báo và sau đó bật một quy tắc động khác.

+ Dynamic - vẫn ở chế độ chờ cho đến khi được kích hoạt bởi một quy tắc kích hoạt, sau đó hoạt động như một quy tắc đã lưu trong nhật ký.

Bạn cũng có thể xác định các loại quy tắc của riêng mình và liên kết một hoặc nhiều plugin đầu ra với chúng. Sau đó, bạn có thể sử dụng các loại quy tắc làm hành động trong quy tắc Snort.

- Các giao thức (Protocols)

Trường tiếp theo trong quy tắc là giao thức. Có ba giao thức IP mà Snort hiện đang phân tích để tìm hành vi đáng ngờ là tcp, udp và icmp. Trong tương lai có thể có nhiều hơn nữa, chẳng hạn như ARP, IGRP, GRE, OSPF, RIP, IPX, v.v.

 tcp

 udp

Phần tiếp theo của tiêu đề quy tắc đề cập đến địa chỉ IP và thông tin cổng cho một quy tắc nhất định. Từ khóa "bất kỳ" có thể được sử dụng để xác định bất kỳ địa chỉ nào. Snort không có cơ chế cung cấp tra cứu tên máy chủ cho các trường địa chỉ IP trong tệp quy tắc. Các địa chỉ được tạo bởi địa chỉ IP dạng số thẳng và khối CIDR. Khối CIDR chỉ ra mặt nạ mạng cần được áp dụng cho địa chỉ của quy tắc và bất kỳ gói nào đến được kiểm tra theo quy tắc. Mặt nạ khối CIDR của /24 chỉ ra mạng Lớp C, /16 là mạng Lớp B và /32 chỉ ra một địa chỉ máy cụ thể. Ví dụ, tổ hợp địa chỉ /CIDR 192.168.1.0/24 sẽ biểu thị khối địa chỉ từ 192.168.1.1 đến 192.168.1.255. Bất kỳ quy tắc nào sử dụng ký hiệu này, chẳng hạn, địa chỉ đích sẽ khớp với bất kỳ địa chỉ nào trong phạm vi đó. Các ký hiệu CIDR cho chúng ta một cách ngắn gọn hay để chỉ định các không gian địa chỉ lớn chỉ với một vài ký tự.

Trong Hình 3.4, địa chỉ IP nguồn được đặt để phù hợp với bất kỳ máy tính nào đang nói chuyện và địa chỉ đích được đặt để khớp trên mạng Lớp C. 192.168.1.0.

Có một toán tử có thể được áp dụng cho địa chỉ IP, toán tử phủ định. Toán tử này yêu cầu Snort khớp với bất kỳ địa chỉ IP nào ngoại trừ địa chỉ được chỉ ra bởi địa chỉ IP được liệt kê. Toán tử phủ định được biểu thị bằng dấu "!".

- Số cổng (Port Numbers)

Số cổng có thể được chỉ định theo một số cách, bao gồm cổng "bất kỳ", định nghĩa cổng tĩnh, phạm vi và bằng cách phủ định. Các cổng "bất kỳ" là một giá trị ký tự đại diện, nghĩa đen là bất kỳ cổng nào. Các cổng tĩnh được biểu thị bằng một số cổng, chẳng hạn như 111 cho portmapper, 23 cho telnet hoặc 80 cho http, v.v. Phạm vi cổng được chỉ ra bằng toán tử phạm vi ":". Toán tử phạm vi có thể được áp dụng theo một số cách để mang các ý nghĩa khác nhau, chẳng hạn như trong Hình 3.7.

log udp any any -> 192.168.1.0/24 1:1024

log udp traffic coming from any port and destination ports ranging from 1 to 1024

log tcp any any -> 192.168.1.0/24 :6000

log tcp traffic from any port going to ports less than or equal to 6000

log tcp any :1024 -> 192.168.1.0/24 500:

log tcp traffic from priveleged ports less than or equal to 1024 going to ports greater than or equal to 500

- Điều hành hướng (The Direction operator)

Toán tử điều hướng "->" cho biết hướng hoặc "Phương hướng" của lưu lượng áp dụng quy tắc. Địa chỉ IP và số cổng ở bên trái của toán tử hướng được coi là lưu lượng đến từ máy chủ nguồn, và địa chỉ và thông tin cổng ở phía bên phải của nhà điều hành là máy chủ đích. Ngoài ra còn có một toán tử hai chiều, được biểu thị bằng ký hiệu "<>". Điều này cho Snort xem xét các cặp địa chỉ / cổng theo hướng nguồn hoặc đích. Điều này rất tiện lợi cho việc ghi lại / phân tích cả hai phía của một cuộc trò chuyện, chẳng hạn như các phiên telnet hoặc POP3.

- Quy tắc kích hoạt động (Activate/ Dynamic Rules)

Các cặp quy tắc kích hoạt động cung cấp cho Snort một khả năng mạnh mẽ. Bây giờ bạn có thể kích hoạt một quy tắc khác khi hành động của nó được thực hiện cho một số gói đã đặt. Điều này rất hữu ích nếu bạn muốn thiết lập Snort để thực hiện theo dõi quá trình ghi khi một quy tắc cụ thể "tắt". Quy tắc kích hoạt hoạt động giống như quy tắc cảnh báo, ngoại trừ chúng có trường tùy chọn * bắt buộc *: "kích hoạt". Quy tắc động hoạt động giống như quy tắc nhật ký, nhưng chúng có trường tùy chọn khác: "active_by". Quy tắc động cũng có trường bắt buộc thứ hai, "số". Khi quy tắc "kích hoạt" tắt, nó sẽ bật quy tắc động mà nó được liên kết với (được biểu thị bằng số tùy chọn bằng kích hoạt tự động) để "đếm" số gói (trong trường hợp này là 50).

Các quy tắc này yêu cầu Snort cảnh báo khi phát hiện tràn bộ đệm IMAP và thu thập 50 gói tiếp theo hướng đến cổng 143 đến từ bên ngoài $ HOME_NET hướng đến $ HOME_NET. Nếu sự cố tràn bộ đệm xảy ra và thành công, rất có khả năng dữ liệu hữu ích sẽ được chứa trong 50 gói (hoặc bất kỳ) gói tiếp theo đi đến cùng một cổng dịch vụ trên mạng, vì vậy có giá trị trong việc thu thập các gói đó để phân tích sau này.

2) Qui tắc tùy chọn (Rule options)

Các tùy chọn quy tắc tạo thành trung tâm của công cụ phát hiện xâm nhập của Snort, kết hợp tính dễ sử dụng với sức mạnh và tính linh hoạt. Tất cả các tùy chọn quy tắc Snort được phân tách với nhau bằng dấu chấm phẩy ";" tính cách. Các từ khóa

tùy chọn quy tắc được phân tách khỏi các đối số của chúng bằng ký tự dấu hai chấm ":". Các từ khóa tùy chọn quy tắc có sẵn cho Snort:

- Msg

Tùy chọn quy tắc tin nhắn báo cho bộ máy ghi nhật ký và cảnh báo tin nhắn sẽ in cùng với kết xuất gói tin hoặc cảnh báo. Nó là một chuỗi văn bản đơn giản sử

 msg - in tin nhắn trong cảnh báo và nhật ký gói.

 logto - ghi gói tin vào tên tệp do người dùng chỉ định thay vì tệp đầu ra tiêu chuẩn.

 ttl - kiểm tra giá trị trường TTL của tiêu đề IP.  tos - kiểm tra giá trị trường TOS của tiêu đề IP.

 id - kiểm tra trường ID phân đoạn của tiêu đề IP cho một giá trị cụ thể.  ipoption - xem các trường tùy chọn IP để biết các mã cụ thể.

 fragbits - kiểm tra các bit phân mảnh của tiêu đề IP.

 dsize - kiểm tra kích thước tải trọng của gói với một giá trị.  flags - kiểm tra cờ TCP cho các giá trị nhất định.

 seq - kiểm tra trường số thứ tự TCP cho một giá trị cụ thể.  ack - kiểm tra trường xác nhận TCP cho một giá trị cụ thể.  itype - kiểm tra trường loại ICMP với một giá trị cụ thể.  icode - kiểm tra trường mã ICMP với một giá trị cụ thể.

 icmp_id - kiểm tra trường ID ICMP ECHO với một giá trị cụ thể.  icmp_seq - kiểm tra số thứ tự ICMP ECHO với một giá trị cụ thể  content - tìm kiếm một mẫu trong tải trọng của gó.i

 content - lists - tìm kiếm một tập hợp các mẫu trong tải trọng của gói.

 offset - công cụ sửa đổi cho tùy chọn nội dung, đặt offset để bắt đầu thử so khớp mẫu.

 depth - công cụ sửa đổi cho tùy chọn nội dung, đặt độ sâu tìm kiếm tối đa cho lần thử đối sánh mẫu.

dụng "\" làm ký tự thoát để chỉ ra một ký tự rời rạc có thể gây nhầm lẫn cho trình phân tích cú pháp quy tắc của Snort (chẳng hạn như ký tự dấu chấm phẩy ";").

- Logto

Tùy chọn logto yêu cầu Snort ghi lại tất cả các gói kích hoạt quy tắc này vào một tệp nhật ký đầu ra đặc biệt. Điều này đặc biệt tiện dụng để kết hợp dữ liệu từ những thứ như hoạt động NMAP, quét HTTP CGI, v.v. Cần lưu ý rằng tùy chọn này không hoạt động khi Snort ở chế độ ghi nhật ký nhị phân.

- TTL

Tùy chọn quy tắc này được sử dụng để đặt một giá trị thời gian tồn tại cụ thể để kiểm tra. Thử nghiệm nó thực hiện chỉ thành công trên một kết quả phù hợp chính xác. Từ khóa tùy chọn này được thiết kế để sử dụng trong việc phát hiện các nỗ lực theo dõi lộ trình.

- TOS

Từ khóa "tos" cho phép bạn kiểm tra trường TOS của tiêu đề IP để biết một giá trị cụ thể. Thử nghiệm nó thực hiện chỉ thành công trên một kết quả phù hợp chính xác.

- ID

Từ khóa tùy chọn này được sử dụng để kiểm tra đối sánh chính xác trong trường ID phân đoạn tiêu đề IP. Một số công cụ hack (và các chương trình khác) đặt trường này cho các mục đích đặc biệt khác nhau, ví dụ giá trị 31337 rất phổ biến với một số tin tặc. Điều này có thể chống lại họ bằng cách đưa ra một quy tắc đơn giản để kiểm tra điều này và một số "số hacker" khác.

- Ipoptions

Nếu các tùy chọn IP có trong một gói, tùy chọn này sẽ tìm kiếm một tùy chọn cụ thể đang được sử dụng, chẳng hạn như định tuyến nguồn. Các đối số hợp lệ cho tùy chọn này là:

 rr - Ghi lại tuyến đường.  eol - Cuối danh sách.

 ts - Dấu thời gian.

 sec - tùy chọn bảo mật IP.

 lsrr - Định tuyến nguồn lỏng lẻo.  ssrr - Định tuyến nguồn nghiêm ngặt.  satid - Mã định danh luồng.

Các tùy chọn IP được theo dõi thường xuyên nhất là định tuyến nguồn chặt chẽ và lỏng lẻo, không được sử dụng trong bất kỳ ứng dụng internet phổ biến nào. Chỉ một tùy chọn có thể được chỉ định cho mỗi quy tắc.

- Fragbits

Quy tắc này kiểm tra phân đoạn và các bit dành riêng trong tiêu đề IP. Có ba bit có thể được kiểm tra, bit dành riêng (RB), More Fragment (MF) bit và Don’t Fragment (DF) bit. Các bit này có thể được kiểm tra bằng nhiều cách kết hợp. Sử dụng các giá trị sau để chỉ ra các bit cụ thể:

R – Reserved bit (RB): Bit dự trữ

D – Don’t Fragment (DF) bit: Nếu bít này được thiết lập thì gói tin không bị phân mảnh.

M – More Fragments (MF) bit: nếu được thiết lập thì các thành phần khác của gói tin vẫn đang trên đường đi mà chưa tới đích. Nếu bít này mà không được thiết lập thì đây là phần cuối của gói tin.

Bạn cũng có thể sử dụng công cụ sửa đổi để chỉ ra tiêu chí đối sánh logic cho các bit được chỉ định:

+ - All flag, khớp trên các bit được chỉ định cộng với bất kỳ bit nào khác. * - ANY flag, khớp nếu có bất kỳ bit nào được chỉ định được đặt.

! – NOT flag, khớp nếu các bit chỉ định không được đặt.

- Dsize

Tùy chọn dsize được sử dụng để kiểm tra kích thước tải trọng gói. Nó có thể được đặt thành bất kỳ giá trị nào, cộng với việc sử dụng các dấu hiệu lớn hơn / nhỏ hơn để biểu thị phạm vi và giới hạn. Ví dụ: nếu bạn biết rằng một dịch vụ nhất định có bộ đệm có kích thước nhất định, bạn có thể đặt tùy chọn này để theo dõi các lần

cố tràn bộ đệm. Nó có thêm lợi thế là cách kiểm tra lỗi tràn bộ đệm nhanh hơn nhiều so với kiểm tra nội dung trọng tải.

- Nội dung (Content)

Từ khóa nội dung là một trong những tính năng quan trọng nhất của Snort. Nó cho phép người dùng thiết lập các quy tắc tìm kiếm nội dung cụ thể trong tải trọng gói và kích hoạt phản hồi dựa trên dữ liệu đó. Bất cứ khi nào khớp mẫu tùy chọn nội dung được thực hiện, hàm đối sánh mẫu Boyer-Moore được gọi và kiểm tra (khá mất thời gian về mặt tính toán) được thực hiện đối với nội dung gói. Nếu dữ liệu khớp chính xác với chuỗi dữ liệu trong hệ điều hành chứa ở bất kỳ đâu trong trọng tải của

Một phần của tài liệu (LUẬN văn THẠC sĩ) các giải pháp bảo mật mạng và ứng dụng cho mạng máy tính tại trường cao đẳng kỹ thuật thông tin (Trang 44 - 59)

Tải bản đầy đủ (PDF)

(72 trang)