3.1.1 Sự cần thiết của tìm kiếm và phát hiện xâm nhập
Ngày nay, an toàn mạng đã trở thành một vấn đề hết sức quan trọng. Những kẻ phá hoại (hacker) và xâm nhập mạng (intruder) đã đạt được nhiều thành công trong việc tấn công vào các thành phần và các dịch vụ mạng. Nhiều phương pháp đã được phát triển để đảm bảo an toàn cho hạ tầng và cho truyền thông trên mạng Internet, ta có thể kể tới một số phương pháp điển hình như: sử dụng bức tường lửa (firewall), mã hoá dữ liệu (encryption) và các mạng riêng ảo (virtual private networks). Phát hiện xâm nhập mạng (intrusion detection) là một kỹ thuật mới, được xuất hiện cách đây không xa. Sử dụng phương pháp phát hiện xâm nhập, ta có thể thu thập và sử dụng các dấu vết từ những kiểu tấn công đã được biết trước, từ đó tìm ra xem liệu có kẻ nào đó đang cố gắng tấn công vào mạng hay máy của bạn. Những thông tin được thu thập theo cách này sẽ được sử dụng để làm tăng khả năng an toàn cho mạng cũng như cho các mục đích khác. Kỹ thuật phát hiện xâm nhập mạng hiện đã được cài đặt trong các sản phẩm thương mại cũng như trong sản phẩm có mã nguồn mở. Ngoài ra, còn phải kể tới nhiều công cụ phát hiện các lỗ hổng (vulnerability) giúp phát hiện các lỗ hổng an toàn trong mạng.
3.1.1.1 Xâm nhập mạng là gì?
Để hiểu khái niệm “phát hiện xâm nhập – instrusion detection” thì cần phải biết khái niệm “xâm nhập - instrusion”. Một xâm nhập là một hành động không được uỷ quyền đối với một hệ thống trong mạng hoặc trên toàn bộ mạng của bạn. Hành động này có thể được thực hiện từ một người dùng không được uỷ quyền trên hệ thống và đang cố gắng tạo ra quyền truy nhập
hiệp với một dịch vụ đang chạy nhằm mục đích để tạo một tài khoản trên hệ thống...
3.1.1.2 Phát hiện xâm nhập mạng là gì?
Phát hiện xâm nhập là một bộ các kỹ thuật và các phương pháp được sử dụng để tìm kiếm và phát hiện các hành động nghi ngờ (suspicious activities) trên mạng và trên chính máy của bạn.
3.1.2 Một số khái niệm cơ bản trong hệ thống phát hiện xâm nhập 3.1.2.1 Hệ thống phát hiện xâm nhập (IDS) 3.1.2.1 Hệ thống phát hiện xâm nhập (IDS)
IDS (Intrusion Detection System) là phần cứng, phần mềm, hoặc kết hợp cả phần cứng và phần mềm được sử dụng để giám sát hoạt động trên hệ thống mạng và phân tích để tìm ra các dấu hiệu vi phạm đến các quy định bảo mật máy tính, chính sách sử dụng và các tiêu chuẩn an toàn thông tin. Các dấu hiệu này xuất phát từ rất nhiều nguyên nhân khác nhau như hackers xâm nhập trái phép, người dùng cuối truy nhập vào các tài nguyên không được phép truy cập..v.v. Mỗi hệ thống IDS sẽ có các khả năng khác nhau phụ thuộc vào sự phức tạp và sự tinh vi của các thành phần chứa trong đó. IDS có thể sử dụng các kỹ thuật phát hiện xâm nhập dựa trên dấu vết (signature- based) hoặc dựa trên sự bất thường (anomally-based) hoặc cả hai.
3.1.2.2 Network IDS – NIDS
NIDS là một hệ thống phát hiện xâm nhập mạng, nó bắt gói dữ liệu được truyền đi trên môi trường mạng (cables, wireless) và so sánh chúng với một cơ sở dữ liệu chứa các dấu hiệu xâm nhập. Nếu gói tin chứa mẫu mà phù hợp với một dấu hiệu xâm nhập, thì hệ thống sẽ sinh ra cảnh báo hoặc ghi lại xâm nhập này vào một tệp hoặc một cơ sở dữ liệu nhật ký.
3.1.2.3 Host IDS – HIDS
HIDS (Host-based intrusion detection system) được cài đặt trên máy cần bảo vệ. Hệ thống xâm nhập này sẽ tìm kiếm trong các tệp trên hệ thống hoặc các tệp nhật ký của ứng dụng để phát hiện bất kỳ một hành động xâm nhập nào.
3.1.2.4 Các dấu hiệu (Signatures)
Dấu hiệu (signature) là các mẫu (pattern) mà được tìm kiếm bên trong gói dữ liệu. Một dấu hiệu được sử dụng để tìm kiếm một hoặc nhiều các kiểu tấn công khác nhau. Cho ví dụ, sự hiện diện của một mẫu “script/iisadmin” trong một gói tin đi tới một Web Server có thể chỉ ra đây là một hành động xâm nhập trái phép.
Các dấu hiệu có thể có mặt trong các phần khác nhau của một gói dữ liệu phụ thuộc vào bản chất của tấn công đó. Cho ví dụ, ta có thể tìm thấy các dấu hiệu trong phần IP header, phần header của tầng vận chuyển (transport layer header) TCP hoặc UDP, hoặc trong phần nội dung của gói tin (payload).
Thường IDS dựa trên các dấu hiệu để tìm ra các xâm nhập trái phép. Do vậy, IDS cần phải thường xuyên cập nhật các dấu hiệu mới cho một kiểu tấn công mới tương ứng.
3.1.2.5 Sensor
Một máy trên đó đang chạy một hệ thống phát hiện xâm nhập thì được gọi là một sensor.
3.1.3 Chức năng của IDS
3.1.3.1 Các ứng dụng cơ bản của IDS
Nhận diện các nguy cơ có thể xảy ra.
Ghi nhận thông tin, log để phục vụ cho việc kiểm soát nguy cơ.
Nhận diện các hoạt động thăm dò hệ thống.
Nhận diện các yếu khuyết của chính sách bảo mật.
Ngăn chặn vi phạm chính sách bảo mật.
3.1.3.2 Các tính năng chính của IDS
Lưu giữ thông tin liên quan đến các đối tượng giám sát.
Cảnh báo những sự kiện quan trọng liên quan đến đối tượng quan sát.
Xuất báo cáo.
3.1.4 Phân loại
Có nhiều tiêu chí để phân loại một IDS:
3.1.4.1 Theo tiêu chí phương pháp phát hiện
Theo tiêu chí này thì có 2 loại IDS là: Phát hiện bất thường và phát hiện theo mẫu có sẵn:
Phát hiện bất thường (anomaly-based intrusion detection system)
Trong phát hiện bất thường, người quản trị hệ thống định ra các giới hạn về trạng thái, sự cố, giao thức và kích thước gói tin trong mạng. Bộ phát hiện bất thường sẽ giám sát các phân đoạn mạng để so sánh trạng thái của chúng với các giới hạn và xem chúng có bình thường hay không.
Có một số kỹ thuật giúp thực hiện phát hiện sự không bình thường của các cuộc tấn công như dưới đây:
o Phát hiện theo ngưỡng: Các mức ngưỡng (threshold) về các hoạt động bình thường được đặt ra, nếu có sự bất thường nào đó như đăng nhập (login) với số lần quá quy định, số lượng các tiến trình hoạt động trên vi xử lý (CPU), số lượng một loại gói tin được gửi vượt quá mức…
o Phát hiện kiểu tự học-(Self-learning detection): Kỹ thuật phát hiện này bao gồm hai bước, khi thiết lập hệ thống phát hiện tấn công, nó sẽ chạy ở chế độ tự học thiết lập một hồ sơ (profile) về cách cư xử của mạng với các hoạt động bình thường. Sau thời gian khởi tạo, hệ thống sẽ chạy ở chế độ sensor theo dõi cách hoạt động bất thường của mạng so với profile đã thiết lập. Chế độ tự học có thể chạy song song với chế độ sensor để cập nhật bản profile của mình nhưng nếu dò ra có tín hiệu tấn công thì chế độ tự học phải dừng lại tới khi cuộc tấn công kết thúc.
o Phát hiện giao thức bất thường: Kỹ thuật này căn cứ vào hoạt động của các giao thức, các dịch vụ của hệ thống để tìm ra các gói tin không hợp lệ, các hoạt động bất thường là dấu hiệu của sự xâm nhập, tấn công. Kỹ thuật này rất hiệu quả trong việc ngăn chặn các hình thức quét mạng, quét cổng để thu thập thông tin của các hacker.
Phương pháp phát hiện bất thường của hệ thống rất hữu hiệu trong việc phát hiện các cuộc tấn công kiểu từ chối dịch vụ. Ưu điểm của phương pháp này là có thể phát hiện ra các kiểu tấn công mới, cung cấp các thông tin hữu ích bổ sung cho phương pháp phát hiện theo mẫu, tuy nhiên chúng có nhược điểm thường tạo ra một số lượng các cảnh báo sai làm giảm hiệu suất hoạt động của mạng. Tuy nhiên, phương pháp này sẽ là hướng được nghiên cứu nhiều hơn, hoàn thiện các nhược điểm đưa ra ít cảnh báo sai để hệ thống chạy chuẩn xác hơn.
Phát hiện theo mẫu có sẵn (signature-based intrusion dectection system)
Trong phát hiện theo mẫu, IDS phân tích thông tin nó thu thập được và so sánh với cơ sơ dữ liệu chứa mẫu tấn công. Về cơ bản, IDS sẽ xem xét một cuộc tấn công dựa vào thông tin đã được biết giống như một hệ thống phát hiện virus.
3.1.4.2 Theo tiêu chí môi trường vận hành của IDS
Khả năng phát hiện xâm nhập của một hệ thống IDS phụ thuộc vào kiểu IDS và nơi đặt hệ thống IDS trong mạng. Nếu phân loại theo chức năng, môi trường hoạt động thì các hệ thống IDS có thể được chia thành 3 loại sau:
Hệ thống phát hiện xâm nhập mạng (Network-based Intrusion Detection System - NIDS).
Hệ thống phát hiện xâm nhập cho máy (Host-based Intrusion Detection System - HIDS).
Hệ thống phát hiện xâm nhập phân tán (Distributed Intrusion Detection System DIDS).
3.1.4.3 Theo tiêu chí cách phản ứng của IDS
Theo tiêu chí này thì có 2 loại IDS là: Phản ứng thụ động và Phản ứng chủ động.
3.1.5 Kiến trúc IDS
Ngày nay người ta phân biệt các hệ thống IDS khác nhau thông qua việc phân tích và kiểm tra khác nhau của các hệ thống. Mỗi hệ thống có những ưu điểm cũng như khuyết điểm riêng nhưng các hệ thống có thể được mô tả dưới mô hình tổng quát chung như sau:
3.1.5.1 Cơ sở hạ tầng của IDS
Nhiệm vụ chính của các hệ thống phát hiện xâm phạm là bảo vệ cho một hệ thống máy tính bằng cách phát hiện các dấu hiệu tấn công. Việc phát hiện các tấn công phụ thuộc vào số lượng và kiểu hành động thích hợp ( Hình 3.1).
Hình 3.1: Hoạt động của IDS
Để ngăn chặn xâm phạm tốt cần phải kết hợp tốt giữa “bả và bẫy” được trang bị cho việc nghiên cứu các mối đe dọa. Việc làm lệnh hướng sự tập trung của kẻ xâm nhập vào tài nguyên được bảo vệ là một nhiệm vụ quan trọng khác. Toàn bộ hệ thống cần phải được kiểm tra một cách liên tục. Dữ liệu được tạo ra từ các hệ thống phát hiện xâm nhập được kiểm tra một cách cẩn thận (đây là nhiệm vụ chính cho mỗi IDS) để phát hiện các dấu hiệu tấn công (sự xâm phạm).
Khi một hành động xâm nhập được phát hiện, IDS đưa ra các cảnh báo đến các quản trị viên hệ thống về sự việc này. Bước tiếp theo được thực hiện bởi các quản trị viên hoặc có thể là bản thân IDS bằng cách lợi dụng các tham số đo bổ sung (các chức năng khóa để giới hạn các session, backup hệ thống, định tuyến các kết nối đến bẫy hệ thống, cơ sở hạ tầng hợp lệ,…) – tùy theo các chính sách bảo mật của các tổ chức.
Hình 3.2: Cơ sở hạ tầng của IDS
Một IDS là một thành phần nằm trong chính sách bảo mật. Giữa các nhiệm vụ IDS khác nhau, việc nhận ra kẻ xâm nhập là một trong những nhiệm vụ cơ bản. Nó cũng hữu dụng trong việc nghiên cứu mang tính pháp lý các tình tiết và việc cài đặt các bản vá thích hợp để cho phép phát hiện các tấn công trong tương lai nhằm vào các cá nhân cụ thể hoặc tài nguyên hệ thống.
Phát hiện xâm nhập đôi khi có thể đưa ra các báo cảnh sai, ví dụ những vấn đề xảy ra do trục trặc về giao diện mạng hoặc việc gửi phần mô tả các tấn công hoặc các chữ ký thông qua mail.
3.1.5.2 Cấu trúc của IDS
Thông thường một IDS gồm có 3 module chính: module phân tích gói, module phát hiện tấn công, module phản ứng.
Hình 3.3: Các thành phần chính của 1 hệ IDS.
1. Module phân tích gói: Module này có nhiệm vụ phân tích cấu trúc thông tin trong các gói tin. Card mạng (NIC) của máy giám sát được đặt ở chế độ promiscuous mode, tất cả các gói tin qua chúng đều được bắt lại và chuyển lên lớp trên. Bộ phân tích gói đọc thông tin từng trường trong gói tin, xác định chúng thuộc kiểu gói tin nào, dịch vụ gì… Các thông tin này được chuyển đến module phát hiện tấn công.
2. Module phát hiện tấn công: Đây là module quan trọng nhất trong hệ thống, có khả năng phát hiện các cuộc tấn công.
3. Module phản ứng: Khi có dấu hiệu của sự tấn công hoặc xâm nhập, module phát hiện tấn công sẽ gửi tín hiệu báo hiệu có sự tấn công hoặc xâm nhập đến module phản ứng. Lúc đó module phản ứng thực hiện một số thao tác theo
chỉ định như kích hoạt bức tường lửa (firewall) thực hiện chức năng ngăn chặn cuộc tấn công. Tại module này, nếu chỉ đưa ra các cảnh báo tới các người quản trị và dừng lại ở đó thì hệ thống này được gọi là hệ thống phòng thủ bị động. Module phản ứng này tùy theo hệ thống mà có các chức năng khác nhau. Các IDS hiện nay hầu hết không chỉ phát hiện mà có thể ngăn chặn các cuộc tấn công.
Dưới đây là một số kỹ thuật phản ứng:
Thông báo thời gian thực (Real-time Alerting): Gửi các cảnh báo thời gian thực đến người quản trị để họ nắm được chi tiết các cuộc tấn công, các đặc điểm và thông tin về chúng.
Ngắt phiên: Cơ chế của kỹ thuật này là IDS gửi gói tin khởi tạo lại kết nối (reset), thiết lập lại cuộc giao tiếp tới cả client và server. Kết quả, cuộc giao tiếp sẽ được bắt đầu lại, các mục đích của hacker không đạt được, cuộc tấn công bị ngừng lại. Tuy nhiên phương pháp này có một số nhược điểm như thời gian gửi gói tin reset đến đích là quá lâu so với thời gian gói tin của hacker đến được máy mục tiêu, dẫn đến reset quá chậm so với cuộc tấn công, phương pháp này không hiệu quả với các giao thức hoạt động trên UDP như DNS, ngoài ra gói Reset phải có trường số thứ tự của gói tin (sequence number) đúng so với gói tin trước đó từ client, thì server mới chấp nhận, do vậy nếu hacker gửi các gói tin với tốc độ nhanh và trường Sequence number thay đổi thì rất khó thực hiện được phương pháp này.
Loại bỏ tấn công (drop attack): Kỹ thuật này dùng firewall để hủy bỏ gói tin hoặc chặn đường một gói tin, một phiên hoặc luồng dữ liệu. Kiểu phản ứng này là an toàn nhất nhưng lại có nhược điểm là dễ nhầm với các gói tin hợp lệ.
Thay đổi chính sách Firewall: Kỹ thuật này cho phép người quản trị cấu hình lại chính sách bảo mật khi cuộc tấn công xảy ra.
Ghi nhật ký gói tin (Log packet): Các dữ liệu của các gói tin sẽ được lưu trữ trong hệ thống các file nhật ký. Mục đích để các người quản trị có thể theo dõi các luồng thông tin và là nguồn thông tin giúp cho module phát hiện tấn công hoạt động.
Ba module trên hoạt động theo tuần tự tạo nên hệ thống IDS hoàn chỉnh. Một hệ thống IDS được xem là thành công nếu chúng hội tụ được các yếu tố: thực hiện nhanh, chính xác, đưa ra các thông báo hợp lý, phân tích được toàn bộ thông lượng, và chính sách quản lý mềm dẻo.
3.1.6 Cách thức làm việc của IDS
Cách thức làm việc của IDS phụ thuộc vào loại IDS là gì. Sau đây ta sẽ xem xét cách thức hoạt động của Network-Based IDS và Host-Based IDS cùng với ưu nhược điểm của mỗi loại.
3.1.6.1 Nework-Based IDS (NIDS)
NIDS giám sát toàn bộ mạng con (hoặc phân đoạn mạng) của nó bằng cách lắng nghe tất cả các gói tin trên mạng con đó (nó thay đổi chế độ hoạt động của card mạng (NIC) vào trong chế độ promiscuous). Bình thường, một NIC hoạt động ở chế độ nonpromiscuous, nghĩa là nó chỉ nhận chỉ các gói tin mà có địa chỉ MAC đích trùng với là địa chỉ của nó, các gói tin khác sẽ không được xử lý và bị loại bỏ. Để giám sát tất cả các truyền thông trong mạng con, NIDS phải chấp nhận tất cả các gói tin và chuyển chúng tới stack để xử lý. Do vậy nó sẽ phải thiết lập chế độ hoạt động cho card mạng là promiscuous.
Hình 3.4 minh hoạ một mạng mà sử dụng 3 NDIS. Các NIDS được đặt trên các mạng con khác nhau.
Hình 3.4: Một ví dụ về sơ đồ cài đặt NIDS.
Ưu điểm của Network-based IDS (NIDS): Network-based IDS có nhiều ưu điểm qua việc bắt gói và phân tích thời gian thực mà không