o Khái niệm chung về IDS (Intrusion Detection System)
IDS là hệ thống có thể được đặt vào một số vị trí trên mạng để có thể phát hiện và sinh ra các cảnh báo đối với bất kỳ sự xâm nhập bất hợp pháp nào từ bên ngoài vào một hệ thống, Tuy nhiên, IDS không ngăn chặn xâm nhập như Firewall. IDS đã phát triển từ những hệ thống đơn nhất kiểu gói (batch) đến mạng phân tán real-time.
Trong những hệ thống hiện nay, một số các khối chức năng có thể được phân biệt như sau:
Sensor, Probe: những module này tạo nên những thành phần thu thập dữ liệu nguyên thuỷ của một IDS. Chúng theo dõi lưu thông mạng, các log file hay các hành vi của hệ thống - chuyển đổi dữ liệu thô thành các sự kiện có thể sử dụng được.
Monitor: giám sát các thành phần, là bộ phận xử lí chính của IDS, nhận các sự kiện từ các sensor. Các sự kiện này được tập hợp lại và sinh ra các cảnh báo. Các cảnh báo, bản thân chúng cũng là các sự kiện, chỉ ra các sự cố đáng quan tâm đối với an ninh của hệ thống, và có thể chuyển tiếp đến các monitor bậc cao hơn, hoặc tới đơn vị giải quyết.
Resolver: bộ giải quyết nhận các báo cáo nghi ngờ từ các monitor (dưới dạng một hoặc nhiều cảnh báo), và quyết định phản ứng thích hợp – log, thay đổi hành vi của các bộ phận cấp thấp hơn, cấu hình lại biện pháp an ninh khác (thêm các quy định cho firewall, ...) và thông báo cho người điều hành.
Trong kiến trúc của nhiều IDS những sự phân chia này thường là không rõ ràng. Trong hệ thống ID đơn nhất, có thể tất cả các bộ phận này tạo thành một chương trình, hoặc có thể chia thành các tiến trình và các công cụ.
o Nguyên lí phát hiện tấn công
Những phương pháp phát hiện tấn công đơn giản nhất xuất phát từ kinh nghiệm của người quản trị mạng khi phát hiện những lần đăng nhập hỏng, sự xuất hiện của một tiến trình lạ, ... Dựa trên lý thuyết là: hành vi của kẻ tấn công sẽ khác so với người
Phát hiện sự bất thường
Nguyên lý này còn có cách gọi khác là phát hiện dựa trên hành vi (anomaly-based or behavior-based)
Hệ thống này không có tri thức gì về các kiểu tấn công cụ thể. Thay vào đó, chúng được trang bị thông tin về hành vi của hệ thống được giám sát trong lúc hoạt động bình thường.
Vấn đề lớn nhất của phương pháp này là trước hết phải định nghĩa được thế nào là bình thường. Hệ thống loại này có ưu điểm là không yêu cầu cơ sở dữ liệu cập nhật về các dấu hiệu tấn công. Nhưng có nhược điểm là các cảnh báo mà nó đưa ra đều không có ý nghĩa bởi vì nói chung nó không thể đưa ra bất cứ thông tin chuẩn đoán nào (chẳng hạn loại tấn công gặp phải). Nói cách khác là phương pháp này chỉ có thể báo hiệu có một điều gì đó không bình thường đã xảy ra.
Một số tiêu chí để đánh giá về sự bất thường:
Bất thường về thống kê
Trong phương pháp đánh giá bằng thống kê thì có một số kĩ thuật cụ thể đã được triển khai:
Trị trung bình và độ lệch tiêu chuẩn: Cơ cấu phát hiện bất thường thống kê hoạt động dựa trên nguyên lý là hệ thống mạng có các tiêu chuẩn rõ ràng về các loại và lưu lượng mạng trong một khoảng thời gian từ ngắn đến trung bình. Người ta xây dựng một bản mô tả (profile) của các hoạt động bình thường của mạng và các sai lệch khỏi giá trị chuẩn được coi là các sự kiện. Các tiêu chuẩn này có thể bao gồm số byte trong một phiên, thời gian kết nối. Nhưng nói chung thì nhiều kiểu tấn công có tính chất khá tinh tế, việc đo lường các thông số thống kê thường không phát hiện được hoặc đưa ra quá nhiều cảnh báo sai.
Cách tiếp cận bằng hệ thống miễn dịch
Cách tiếp cận này trước đây còn được coi là mang tính lý thuyết thì nay đã được nghiên cứu cả trong phương pháp phát hiện bất thường và phát hiện dựa trên dấu hiệu. Các chương trình ứng dụng tự nó đã cung cấp một mô hình hành vi bình thường, dưới dạng code path của ứng dụng. Trong cách tiếp cận hệ miễn dịch, các ứng dụng được mô tả bằng một chuỗi các lệnh gọi hệ thống dưới các điều kiện khác nhau: hành vi bình thường, lỗi, và một cố gắng khai thác. So sánh mô hình này đối với các sự kiện được theo dõi cho phép phân loại các hành vi bình thường hay đáng nghi. Ví dụ, một lời gọi hệ thống bất thường được kích hoạt trong một tiến trình của Web server có thể là biểu hiện của một cuộc tấn công tràn bộ đệm.
Xác minh giao thức
Nhiều kĩ thuật tấn công nhờ vào sử dụng các trường không bình thường của giao thức, mà các ứng dụng sẽ không xử lí đúng. Xác minh giao thức sẽ kiểm tra nghiêm ngặt các trường và hành vi đối với một chuẩn đã được ban hành. Dữ liệu vi phạm các giới hạn sẽ bị đánh dấu là đáng nghi.
Kĩ thuật này, được sử dụng trong một số hệ thống thương mại, có thể phát hiện nhiều loại tấn công, nhưng lại vấp phải vấn đề là việc triển khai của nhiều giao thức không phù hợp với tiêu chuẩn. Thêm nữa, sử dụng kĩ thuật này trên các giao thức độc quyền hoặc còn chưa cụ thể sẽ khó khăn hoặc dẫn đến các cảnh báo sai.
Kiểm tra file
Kĩ thuật này sử dụng checksum mã hoá của các dữ liệu nhạy cảm để truyền (bao gồm việc cài đặt phần mềm trái phép backdoor để lại sau những lần xâm nhập thành công và biến đổi hệ thống).
Những kĩ thuật này đặc biệt hữu ích trong việc khôi phục hệ thống và kiểm tra có tính pháp lý. Tuy nhiên, sẽ không phát hiện được nếu như checksum mã hoá bị thay đổi hay quá trình kiểm tra bị xâm phạm.
Mạng neural
Một mạng neural bản chất là một mạng lưới các đơn vị tính toán, cùng nhau thực hiện các thuật toán phức tạp. Ban đầu, mạng lưới được đào tạo với những hành vi bình thường của hệ thống. Những dòng sự kiện được quan sát sẽ được đưa vào mạng, nó sẽ phân loại những dòng sự kiện này là bình thường hay đáng nghi. Hệ thống có thể trải qua đào tạo liên tục, cho phép mạng lưới nhận biết các thay đổi trong hành vi của hệ thống.
Một vấn đề của hệ thống loại này là chỉ có kết quả là có thể quan sát được, nguyên nhân gây ra sự khác biệt giữa mô hình và hành vi quan sát được là không hiển hiện, nó nằm trong mạng neural.
Phát hiện dấu hiệu tấn công
Còn gọi là phát hiện trên cơ sở tri thức, hoạt động dựa trên một cơ sở dữ liệu của các loại tấn công đã biết. Khi gặp một hoạt động có dấu hiệu phù hợp được lưu trữ trong cơ sở dữ liệu, một cảnh báo tương ứng sẽ được phát ra. Ưu điểm của những hệ thống như vậy là những cảnh báo của nó có ý nghĩa, nó có thể chứa thông tin có giá trị chẩn đoán về nguyên nhân gây ra cảnh báo. Mặt khác, nhược điểm chính của hệ thống kiểu này là nó phụ thuộc vào cơ sở dữ liệu. Cơ sở dữ liệu tấn công phải được cập nhật, đây là công việc tẻ nhạt vì các điểm yếu được phát hiện ra hàng ngày. Tuy nhiên, hầu hết các sản phẩm thương mại ngày nay đều là dựa trên tri thức.
Tìm kiếm mẫu
Đây là dạng đơn giản nhất của phát hiện theo dấu hiệu, nó tìm trong dòng sự kiện những sự xuất hiện của một số mẫu cụ thể. Việc này trông giống như một số chương trình chồng virus nhưng thực tế khó hơn nhiều . Với chương trình chống virus, đoạn mã chỉ nằm trong file chạy và file này chỉ có vài kiểu cấu trúc, còn một mẫu tấn công chỉ có nghĩa khi nằm trong một giao thức nào đó , trong một ngữ cảnh nào đó. Vì vậy, việc xây dựng các dấu hiệu phải kết hợp với các trường trong giao thức mạng.
Hình 3.14Phân tích sự chuyển đổi trạng thái
Phương pháp phân tích sự chuyển đổi trạng thái sẽ mô hình hoá các hành động tấn công thành tập hợp các trạng thái và các sự kiện (là sự chuyển đổi từ trạng thái này sang trạng thái khác). Mỗi sự kiện quan sát được sẽ áp dụng cho các máy trạng thái hữu hạn (mỗi máy này mô tả một kịch bản tấn công) có thể gây ra chuyển đổi. Mỗi máy đến trạng thái cuối cùng cũng có nghĩa là đó là một hoạt động tấn công.
Các thuật toán di truyền
Kĩ thuật này, cũng giống như mạng neural, cho năng lực tốt nhưng không thể nhận dạng lí do phát hiện được tấn công.
Tiếp cận bằng hệ miễn dịch
Cách tiếp cận này dựa trên ý tưởng là từ cơ sở dữ liệu hiện có về tấn công, tức là nó đã có khả năng chống lại các kiểu tấn công này, thì nó sẽ tự phát triển các loại tấn công này để có thể chống lại các biến thể thực sự.
Phương pháp mềm dẻo - dựa trên các quy
tắc
Một phương pháp mềm dẻo khác phát hiện dựa trên các quy tắc (rules-based detection)
Một hệ thống phát hiện dựa trên quy tắc có thể được mô tả như là một sự kết hợp giữa nhiều phương pháp phát hiện khác nhau. Một hệ thống quy tắc cho phép người dùng ‘đặt cho IDS các câu hỏi’ về lưu lượng mạng mà nó phân tích. Nó bắt đầu bằng một bộ phân tích giao thức đơn giản, và đưa dữ liệu đến một bộ phát hiện. Bộ phát hiện được lập cấu hình khi được chạy bằng các quy tắc của người dùng cung cấp nhằm đặt ra các câu hỏi về lưu lượng mà nó đang có. Các cơ cấu dựa trên quy tắc cực kì linh động, nó cho phép người dùng chỉ ra hầu hết mọi kịch bản tấn công từ mạng có thể tưởng tượng ra, cũng như cho phép người dùng đặt ra nhiều câu hỏi hơn về các chính sách an ninh trên lưu thông mạng.
o Phân loại IDS
HIDS (Host-IDS) là một phần mềm IDS được cài đặt trên một máy tính (là server hay workstation) để theo dõi tính trạng hoạt động hoặc các hành vi xâm nhập vào chính máy tính này. Nó cung cấp các thông báo đều đặn theo thời gian của bất kỳ sự thay đổi nào ở máy tính này từ tác động bên trong hay bên ngoài. Nó là một trong những cách tốt nhất để giảm thiểu sự tổn thương của hệ thống. BlackICE là một phần mềm dạng HIDS trên Windows.
AIDS (Application-IDS)
AIDS (Application-IDS) là công cụ IDS theo dõi ứng dụng máy chủ dịch vụ.Khi được kết hợp với một HIDS, chúng đảm bảo rằng sự xâm nhập tới một máy chủ sẽ giảm thiểu.
NIDS (Network-IDS):
NIDS sẽ kiểm soát tất cả gói tin trên từng phân mạng, đánh dấu những gói tin bị nghi ngờ. IDS mạng sẽ tìm kiếm những dấu hiệu đáng ngờ - chỉ thị cho biết những gói tin có biểu hiện xâm nhập. Những dấu hiệu này có thể tìm thấy trong nội dung thực của gói tin bằng cách so sánh từng bit với kiểu mẫu đã biết về dạng tấn công. Các dấu hiệu tấn công thường nằm ở phần đầu (header) của gói tin TCP/IP, dạng cố ý dùng sai chức năng hay luận lý. (Ví dụ, kẻ tấn công có thể thử gửi một gói tin yêu cầu đồng thời đóng và mở một kết nối TCP, kiểu gói tin này có thể gây nên tình trạng tắc nghẽn mạng (denial-of-service) cho một số hệ thống).
Với các NIDS khi sử dụng trên mạng thì có 2 cách là:
NIDS ngoài luồng (out-stream): Hệ thống NIDS ngoài luồng không can thiệp trực tiếp vào luồng dữ liệu mà nó chỉ sao chép phần dữ liệu của luồng và phân tích, phát hiện các dấu hiệu của sự xâm nhập, tấn công. Với cách này NIDS có thể quản lý bức tường lửa, chỉ dẫn nó chặn lại các hành động nghi ngờ mà không làm ảnh hưởng đến tốc độ lưu thông của mạng.
NIDS trong luồng (in-stream): Vị trí NIDS nằm trước bức tường lửa, luồng dữ liệu phải đi qua NIDS trước khi tới bức tường lửa. Điểm khác chính so với NIDS ngoài luồng là có thêm chức nǎng chặn lưu thông. Điều đó làm cho NIDS có thể ngǎn chặn luồng giao thông nguy hiểm nhanh hơn so với NIDS ngoài luồng. Tuy nhiên, vị trí này sẽ làm cho tốc độ luồng thông tin ra vào mạng chậm hơn.
Hình 3.15Các vị trí đặt NIDS trong mạng
o Mô hình triển khai IDS trong mạng
Có 3 mô hình triển khai IDS trong mạng: mô hình điều khiển tập trung, mô hình điều khiển phân tán, mô hình điều khiển phân tán dựa trên agent. Mỗi mô hình có những ưu nhược điểm riêng, vì vậy cần căn cứ vào tình trạng thực tế của mạng để triển khai cho thích hợp.
Mô hình điều khiển tập trung
Trong mô hình này sử dụng các HIDS để theo dõi các host (máy trạm và server), AIDS để theo dõi các dịch vụ máy chủ (như Web server, Database, DNS,...), NIDS để theo dõi các lưu thông mạng, các thiết bị trên mạng như router, firewall. Sau đó kết xuất báo cáo đến một hệ thống IDS Console (điều khiển toàn bộ hệ thống IDS) và dựa vào các thông tin thu lượm được về các hành vi xâm nhập, tấn công để có các hành động đáp trả, phản ứng hay cảnh báo kịp thời về các xâm nhập, tấn công này.
Hình 3.16Mô hình điều khiển tập trung
Hình 3.17Mô hình điều khiển phân tán
Trong mô hình này vẫn sử dụng các HIDS để theo dõi các host (máy trạm và server) , AIDS để theo dõi các dịch vụ máy chủ (như Web server, Database, DNS,...), NIDS để theo dõi các lưu thông mạng, các thiết bị trên mạng như router, firewall. Sau đó kết xuất báo cáo đến một hệ thống IDS Console (điều khiển toàn bộ hệ thống IDS) cho riêng mạng con đó và dựa vào các thông tin thu lượm được về các hành vi xâm nhập, tấn công để có các hành động đáp trả, phản ứng hay cảnh báo kịp thời về các xâm nhập, tấn công này. Với mỗi mạng con có một IDS Console cho riêng nó gọi là Subnet IDS Console để điều khiển hệ thống IDS trong mạng con đó. Các Subnet IDS Console này được kết nối đến các Enterpise IDS Console của mạng lớn hơn để kết xuất báo cáo và tiếp nhận các thông tin điều khiển chung cho toàn mạng. Các Enterpise IDS Console lại được kết nối từ xa (có thể thông qua Internet) đến một Main IDS Console để điều khiển chung cho toàn bộ hệ thống mạng IDS này.
Mô hình điều khiên phân tán dựa trên Agent
Trong mô hình này vẫn sử dụng các HIDS để theo dõi các host (máy trạm và server) , AIDS để theo dõi các dịch vụ máy chủ (như Web server, Database, DNS,...), NIDS để theo dõi các lưu thông mạng, các thiết bị trên mạng như router, firewall. Tuy nhiên không dùng một IDS Console để điều khiển chung cho toàn bộ hệ thống IDS mà mỗi IDS riêng sẽ hoạt động theo kiểu agent độc lập. Mỗi khi IDS nào mà phát hiện được các hành vi xâm nhập, tấn công vào đối tượng nào mà IDS đó theo dõi thì nó sẽ tự động có những hành động cảnh báo, đáp trả, hay phản ứng tới riêng đối tượng này mà thôi.
o Các công nghệ đi cùng IDS
Tường lửa cá nhân
Với sự ra đời của các công nghệ truy cập như cable và xDSL, nhiều gia đình đã có thể kết nối Internet ngay tại nhà riêng. Và đây chính là mục tiêu tấn công mới của tội phạm mạng.
Một cách phản ứng lại là sự xuất hiện các tường lửa cá nhân (personal firewall), một phần mềm đồng thời làm firewall và IDS cho mỗi mạng host (ZoneAlarm). Một đặc điểm của một số hệ thống loại này là giới hạn các kết nối hướng ra ngoài tới những địa chỉ được chỉ định - đây là một cách ngăn chặn trojan và các phần mềm mở những kết nối trái phép (Spyware).
Honeynet
Honeynet là một hệ thống mồi được thiết kế chủ yếu để nghiên cứu, tìm hiểu và