6. Bố cục của luận văn
2.2.3. Các tính năng chính
Biểu đồ: Hầu nhƣ tất cả mọi thứ trong cacti đều liên quan đến biểu đồ. Kể từ khi Cacti cung cấp một giao diện ngƣời dùng thân thiện với RRD mà không yêu cầu ngƣời dùng phải hiểu RRD làm việc ra sao. Với cơ chế này, mỗi biểu đồ trong Cacti đều đƣợc cài đặt và có ít nhất một công cụ biểu đồ liên kết với nó. Vì vậy, các công cụ xác định dữ liệu để hiển thị và xác định những gì sẽ đƣợc hiển thị trên chú giải của biểu đồ.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ Hình 2.4. Biểu đồ trong Cacti
Trong hình 2.4 là biểu đồ thể hiện băng thông của cổng ethernet 1 trên switch và đƣợc đo bằng bit/s. Trục tung thể hiện lƣợng dữ liệu, trục hoành chỉ thời gian theo dõi. Màu xanh lá thể hiện dữ liệu đi vào cổng (download), màu xanh ra trời chỉ dữ liệu đi ra (upload).
Cacti hỗ trợ nhiều kiểu biểu đồ cũng nhƣ nhiều dạng dữ liệu, có thể theo dõi lƣu lƣợng theo phút, giờ, ngày, tháng. Hoặc theo dõi lƣu lƣợng trong một khoảng thời gian cũng nhƣ hiệu năng CPU hoặc các thông số hệ thống khác.
Thu thập dữ liệu: Cacti có chức năng “data input” cho phép ngƣời dùng định nghĩa các đoạn mã sử dụng để thu thập dữ liệu. Mỗi đoạn mã chứa các tham số phải đƣợc nhập vào (ví dụ nhƣ địa chỉ IP) để có thể thu thập dữ liệu. Hỗ trợ các phiên bản của giao thức SNMP, sử dụng SNMP hoặc các đoạn mã viết sẵn để thu thập dữ liệu. Việc sử dụng SNMP giúp Cacti có thể thu thập dữ liệu từ bất cứ thiết bị nào hỗ trợ SNMP.
Giám sát băng thông của các liên kết trên topo mạng tổng thể. Cacti có chức năng thiết lập một topo mạng tổng thể, dựa vào đó, ngƣời quản lý có thể theo dõi tình trạng băng thông giữa các thiết bị, phát hiện những lƣu lƣợng bất thƣờng nhƣ tấn công Ddos từ bên ngoài hoặc những mối nguy từ bên trong và xử lý kịp thời nhờ vào chức năng thu thập dƣ liệu.
Trong hình 2.5. là bản đồ trạng thái của một hệ thống, các liên kết giữa các thiết bị đƣợc thể hiện bằng màu sắc cụ thể, các màu sắc đƣợc qui định cụ thể lƣu lƣợng theo % trong biểu đồ. Ví dụ: màu vàng là lƣu lƣợng đạt 55-70% nhƣ vậy nếu liên kết có thay đổi màu sắc đậm hơn, cụ thể nếu chuyển sang màu đỏ một cách đột
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ ngột, nghĩa là có lƣu lƣợng bất thƣờng trong hệ thống, hoặc hệ thống đang bị tấn công.
Hình 2.5. Weather map trong cacti [6]
Giám sát trạng thái của các thiết bị: Khi giám sát hoạt động mạng bằng Cacti, ngƣời quản lý có thể theo dõi xem thiết bị nào đang hoạt động tốt và thiết bị nào đang ngƣng hoạt động. cacti ping liên tục tới các thiết bị đƣợc giám sát để theo dõi trạng thái của thiết bị, nếu thiết bị không có phản hồi, nó sẽ đƣợc đánh dấu là ngừng hoạt động.
Trong hình 2.6 là bảng giám sát trạng thái thiết bị trong cacti. Khi một thiết bị đang hoạt động bình thƣờng, Cacti sẽ thể hiện thiết bị đó bằng màu xanh lá. Nếu thiết bị ngƣng hoạt động hoặc không có phản hồi, nó sẽ đƣợc thể hiện bằng màu đỏ và có thông báo bằng âm thanh. Thời gian mà thiết bị ngừng hoạt động đƣợc thể hiện rõ ràng trong bảng.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ Đƣa ra cảnh báo: Ngƣời quản lý có thể đặt ngƣỡng cảnh báo trên mỗi thiết bị, ví dụ khi lƣu lƣợng trên một tuyến đạt mức 10Gbps, hệ thống sẽ gửi cảnh báo bằng tin nhắn hoặc email cho ngƣời quản lý, hoặc hiển thị trực tiếp trên màn hình. Việc cấu hình tham số hoàn toàn có thể tùy chỉnh, đƣa ra cảnh báo sớm giúp ngƣời quản lý xác định và tiên đoán trƣớc rủi ro xảy đến với hệ thống mạng của mình và đƣa ra phƣơng án xử lý thích hợp. [6]
2.2.4. Lưu trữ và xử lý dữ liệu trong hệ thống giám sát mạng Cacti
Nhu cầu xây dựng hệ thống quản trị mạng cho phép giám sát theo thời gian thực cũng nhƣ phân tích tốc độ mạng cao là cần thiết. Để tăng độ chính xác của các phép đo lƣờng, quản trị mạng thƣờng làm tăng tần số lấy mẫu. Hậu quả của xu hƣớng này là hệ thống giám sát sản xuất một số lƣợng dữ liệu lớn cần đƣợc lƣu trữ và phân tích trong thời gian rất ngắn. Cơ sở dữ liệu quan hệ không thích hợp cho việc lƣu trữ và xử lý dữ liệu đo lƣờng phục vụ quản trị mạng vì các lý do sau:
- Tại mỗi khoảng thời gian đo lƣờng, các bảng sẽ cập nhập dữ liệu mới và nhƣ vậy làm tăng số bản ghi. Hậu quả là bảng dữ liệu cũng nhƣ các không gian thực đƣợc lƣu trên đĩa tăng cùng với số phép đo.
- Ngay sau khi chỉ số bảng trở nên đủ lớn sẽ cản trở việc lƣu trữ xuống RAM và việc lấy dữ liệu sẽ trở nên chậm chạp đáng kể, đặc biệt đối với các ứng dụng có dữ liệu ở phần đầu cơ sở dữ liệu. Để giải quyết những vấn đề này với cơ sở dữ liệu quan hệ, cơ sở dữ liệu chuỗi thời gian đã đƣợc tạo ra. Cơ sở dữ liệu xoay vòng (Round-Robin, Database) RRD là một bổ sung tuyệt vời để cơ sở dữ liệu quan hệ lƣu trữ chuỗi thời gian. Nó thực hiện một bộ đệm quay vòng cố định dựa trên tệp tin, nơi dữ liệu đƣợc lƣu trữ theo dấu thời gian của dữ liệu. Khi cơ sở dữ liệu đƣợc tạo ra, phải xác định thời gian tồn tại của dữ liệu cũng nhƣ các tần số (tên bƣớc của RRD) dữ liệu đƣợc lƣu trữ. Ví dụ, cứ 5 phút thực hiện một phép đo và lƣu giá trị đo lâu nhất là 30 ngày. Hình 2.7 mô tả nguyên lý của một cơ sở dữ liệu RRD. Vì tất cả các thông tin đƣợc quy định tại thời điểm tạo cơ sở dữ liệu, các file RRD không phát triển theo thời gian, kích thƣớc của chúng là tĩnh và bằng bộ đệm quay vòng của mỗi cơ sở dữ liệu RRD. Có thể lƣu trữ nhiều chuỗi thời gian, không nhất thiết tất cả chia sẻ cùng thông số thời gian
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ và tần số. Thƣờng cơ sở dữ liệu RRD có kích thƣớc nhỏ (64 KB hoặc ít hơn) và đƣợc lƣu trữ nhƣ các tập tin trên đĩa.
Các tập tin cơ sở dữ liệu có thể đƣợc thao tác bằng cách sử dụng công cụ dòng lệnh có tên rrdtool, (ví dụ nhƣ thông qua ngôn ngữ truy vấn) điển hình của cơ sở dữ liệu quan hệ. Từ các dữ liệu thu thập đƣợc trong RRD, ngƣời quản trị có thể thiết đặt để tính toán các giá trị AVERAGE, MIN, MAX, and LAST trong những khoảng thời gian nhất định và lƣu vào cơ sở dữ liệu lƣu trữ (Round
Robin Archives) RRA.
Hình 2.7. Nguyên lý của cơ sở dữ liệu RRD (RRA) [6]
Trong một hệ thống, có thể có nhiều cơ sở dữ liệu RRA, ngƣời quản trị có thể thiết đặt để tổ hợp giá trị AVERAGE, MIN, MAX, and LAST của các thông số trên mạng với các khoảng thời gian và số khoảng cho từng cơ sở dữ liệu lƣu trữ RRA.
Cả hai rrdtool và thƣ viện librrdtool đã đƣợc thiết kế nhƣ là công cụ để có thể truy cập từ của sổ dòng lệnh do đó mọi thứ đƣợc quản lý tập trung. Trong hệ quản trị mạng mã nguồn mở Cacti, ngoài việc sử dụng cơ sở dữ liệu RRD để lƣu trữ dữ liệu thu thập và tổ hợp theo chuỗi thời gian, các nhà công nghệ còn phát triển cơ sở dữ liệu RRD để biểu diễn dữ liệu dƣới dạng đồ thị.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ Hệ thống giám sát mạng quy mô lớn yêu cầu lƣu trữ và tổ hợp dữ liệu đo lƣờng hiệu quả cơ sở dữ liệu quan hệ và cơ sở dữ liệu xoay vòng RRD. Có những hạn chế khi xử lý một lƣợng lớn số chuỗi thời gian. Thời gian truy cập dữ liệu làm tăng đáng kể khi tập số dữ liệu, số phép đo lƣờng lớn. Chính vì vậy hệ thống quản trị và theo dõi mạng buộc phải giảm số các thông số đo lƣờng số liệu và tần suất lấy thông số để thời gian truy cập dữ liệu giới hạn trong phạm vi chấp nhận đƣợc. Có thể khai thác giải pháp nén cơ sở dữ liệu chuỗi thời gian và cải tiến RRD để có thể lƣu trữ và tổ hợp dữ liệu trong thời gian thực với mạng quy mô lớn. Tuy nhiên, các giải pháp cải tiến nhằm nâng cao hiệu năng quản trị nằm ngoài phạm vi nghiên cứu của đề tài.
2.3. Bộ công cụ chống tấn công mạng - Snort
2.3.1. Kiến trúc của Snort
Snort bao gồm nhiều thành phần, với mỗi phần có một chức năng riêng. Các phần chính đó là:
- Module giải mã gói tin (Packet Decoder) - Module tiền xử lý (Preprocessors)
- Module phát hiện (Detection Engine)
- Module log và cảnh báo (Logging and Alerting System)
- Module kết xuất thông tin (Output Module) - Kiến trúc của Snort đƣợc mô tả trong hình sau:
Hinh 2.9. Mô hình kiến trúc hệ thống Snort [5]
Khi Snort hoạt động nó sẽ thực hiện việc lắng nghe và thu bắt 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 đƣợc đƣa vào Module giải mã gói tin. Tiếp theo gói tin sẽ đƣợc đƣa vào module tiền xử lý, rồi module phát hiện. Tại đây tùy theo việc có phát hiện đƣợc xâm nhập hay không mà gói tin có thể đƣợc bỏ qua để lƣu thông tiếp hoặc đƣợc đƣa vào module Log và cảnh báo để xử lý. Khi
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ 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 cảnh báo ra theo đúng định dạng mong muốn. Sau đây ta sẽ đi sâu vào chi tiết hơn về cơ chế hoạt động và chức năng của từng thành phần. [5]
2.3.1.1. Module giải mã gói tin
Snort 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. Hình sau mô tả việc một gói tin Ethernet sẽ đƣợc giải mã thế nào:
Hinh 2.10. Quy trình xử lý một gói tin Ethernet [5]
Trong sơ đồ trên mô phỏng gói tin đƣợc đƣa vào decoder dành cho ethernet, hàm DecodeEthPkt đƣợc dùng. Sau khi decode gói tin, thông tin về MAC nguồn và MAC đích đƣợc làm rõ và dựa vào thông tin về lớp tiếp theo sẽ đƣợc gọi. Giả sử trong trƣờng hợp giá trị của ether_type lúc này là 2048 (ETHER_TYPE_IP) Snort biết đƣợc lớp tiếp theo sẽ là IP và gọi hàm DecodeIP. Quy trình sẽ tiếp tục cho đến khi không còn decoder nào đƣợc gọi. Trong trƣờng hợp gói tin có link type là Ethernet thì gói tin sẽ đƣợc chuyển vào hàm DecodeEthPkt, sau đó hàm này sẽ gọi DecodeIP, tiếp sau là DecodeTCP.
Sau khi decode cấu trúc của một gói tin sẽ đƣợc làm rõ, lúc nào gói tin cũng chứa nhiều con trỏ khác nhau trỏ đến những phần khác nhau của gói tin, điều này cho phép Snort có thể truy xuất nhanh đến những thành phần trong gói tin. Những
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ con trỏ này cho phép các thành phần của Snort nhƣ module tiền xử lý, module phát hiện và module kết xuất thông tin có thực hiện công việc một cách dễ dàng sau này. Một gói tin sau khi đƣợc giải mã sẽ đƣợc đƣa tiếp vào module tiền xử lý. [5]
2.3.1.2. Module tiền xử lý
Module tiền xử lý của Snort đóng một vai trò rất quan trọng với nhiều chức năng khác nhau phát hiện các protocol không hợp lệ, phát hiện thông qua các số liệu thu thập đƣợc hoặc phát hiện trực tiếp mà không cần dựa vào rule.
Module tiền xử lý là một đoạn code đƣợc biên dịch vào Snort nhằm xây dựng lại packet, traffic flow và kiểm tra traffic trong mạng để phát hiện tấn công và cảnh báo.
Protocol Decoder Traffic đầu tiên phải đi vào decoder, để decode thông tin ban đầu
IP
Defragmentation (frag3)
frag3 là module tiền xử lý để xây dựng lại gói tin từ những gói tin đã bị phân mảnh trong quá trình truyền
Stateful Inspection (stream5)
stream5 sau đó sẽ kiểm tra xem gói tin đó có phải là một phần của session hay không.
Stream Reasesembly (stream5)
stream5 tiến hành xây dựng lại gói tin thành 1 TCP stream từ những thông tin nó thu đƣợc.
Application
Layer Module tiền xử lý
Những module tiền xử lý này đƣợc dùng để xây dựng lại những gói tin, protocol thông thƣờng và thậm chí có thể đƣa ra cảnh báo nếu cần.
Module phát hiện Sau cùng gói tin sẽ đƣợc chuyển cho detection engine để tiến hành đánh giá dựa vào các rule.
Bảng 2.1. Các module tiền xử lý
Module tiền xử lý frag3 đƣợc phát triển nhằm thay thế cho frag2, frag3 có tốc độ xử lý nhanh hơn frag2, quản lý data phức tạp hơn frag2 và chống những thủ thuật nhằm vƣợt qua frag2.
Module tiền xử lý frag3 đƣa ra khái niệm “target-base” IDS, tức là frag3 sẽ xây dựng lại gói tin bị phân mảnh dựa vào địa chỉ đích mà gói tin sẽ đến. Bởi vì mỗi hệ điều hành xây dựng lại gói tin theo một các khác nhau và Snort không hề biết địa
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ chỉ đích của gói tin mà nó đang ráp mảnh là hệ điều hành gì. Một gói tin có thể xem là bình thƣờng với hệ điều hành này, nhƣng nó có thể đƣợc xem là bất thƣờng với một hệ điều hành khác.
Module tiền xử lý frag3 xây dựng lại gói tin từ những phân mảnh sau đó đẩy gói tin đi. Gói tin đƣợc log lại hoặc có thể đi qua module tiền xử lý tiếp theo và quy trình kiểm tra một lần nữa. Điều này có nghĩa là traffic sẽ đƣợc phân tích hai lần, trƣớc phân mảnh và sau khi phân mảnh.
Module tiền xử lý stream5 là một module tiền xử lý dành cho việc thiết lập lại các TCP session, giống nhƣ frag3 stream5 cung cấp chức năng target-based. Ngoài ra stream5 có thể theo dõi cả TCP và UDP session. Module tiền xử lý stream5 thay thế cho cả stream4 và flow. Vì stream5 là sự thay thế của stream4, do đó cả hai không thể đƣợc sử dụng đồng thời, nếu sử dụng stream5 thì phải gỡ bỏ stream4 và flow module tiền xử lý. Với stream5, flow và flowbits trong rule option đều có thể sử dụng. [5]
Chức năng
Transport protocol
Một TCP session đƣợc bắt đầu bằng three way handshake protocol và kết thúc bằng cờ FIN và đƣợc hai bên xác nhận bằng cờ ACK. Với UDP một session đƣợc xác định thông qua một chuỗi các gói tin UDP đƣợc trao đổi giữa 2 bên thông qua các port. ICMP sẽ đƣợc theo dõi cho mục đích kiểm tra unreachable và unavailable service của TCP và UDP.
Target-based
Module tiền xử lý stream5 cũng giống nhƣ frag3, stream5 đƣa ra khái niệm target-based để xử lý hiện tƣợng dữ liệu trùng lắp giữa những gói tin và những giao dịch TCP bất thƣờng. Phƣơng pháp dùng để xử lý trùng lắp dữ liệu, TCP Timestamps, Data on SYN, FIN và khởi tạo lại sequence numbers…và policy hỗ trợ bởi stream5 là kết quả của việc mở rộng nghiên cứu trên nhiều hệ điều hành khác nhau để có từng policy cụ thể cho từng hệ đều hành.
Stream API
Module tiền xử lý stream5 hỗ trợ stream API, cho phép các bộ phận kiểm tra tính hợp lệ của protocol và module tiền xử lý cấu hình việc tập hợp gói tin theo yêu
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/ cầu của ứng dụng ở lớp của application, xác định session nào nên bỏ qua và cập nhật thông tin nhận dạng về session nhƣ protocol, hƣớng gói tin…
Nhận dạng sự bất thường
Protocol TCP bất thƣờng, thƣờng là những gói tin SYN nhƣng có kèm theo data hay dữ liệu nằm ngoài TCP windows size…những chức năng này thƣờng đƣợc