TÌM HIỂU VỀ HỆ THỐNG PHÁT HIỆN XÂM NHẬP OSSEC (Phần I)
Bài đăng này đã không được cập nhật trong 5 năm
I. Tổng quan về IDS
1. Hệ thống phát hiện xâm nhập IDS
IDS là hệ thống phát hiện các dấu hiệu của tấn công xâm nhập, đồng thời có thể khởi tạo các hành động trên thiết bị khác để ngăn chặn tấn công. Khác với tường lửa, IDS không thực hiện các thao tác ngăn chặn truy nhập mà chỉ theo dõi các hoạt động trên mạng để tìm ra các dấu hiệu của tấn công và cảnh báo cho người quản trị mạng. Một điểm khác biệt khác đó là mặc dù cả hai đều liên quan đến bảo mật mạng, nhưng tường lửa theo dõi sự xâm nhập từ bên ngoài và ngăn chặn chúng xảy ra, nó giới hạn truy nhập giữa các mạng để ngăn chặn sự xâm nhập nhưng không phát hiện được cuộc tấn công từ bên trong mạng. Bên cạnh đó IDS sẽ đánh giá sự xâm nhập đáng ngờ khi nó đã diễn ra đồng thời phát ra cảnh báo, nó theo dõi được các cuộc tấn công có nguồn gốc từ bên trong một hệ thống. Chức năng ban đầu của IDS chỉ là phát hiện các dấu hiện xâm nhập, do đó IDS chỉ có thể tạo ra các cảnh báo tấn công khi tấn công đang diễn ra hoặc thậm chí sau khi tấn công đã hoàn tất. Càng về sau, nhiều kỹ thuật mới được tích hợp vào IDS, giúp nó có khả năng dự đoán được tấn công (prediction) và thậm chí phản ứng chủ động các tấn công đang diễn ra (Active response).
2. Phân loại
- Dựa trên phạm vi giám sát, IDS được chia thành 2 loại:
- Network-based IDS (NIDS): Là những IDS giám sát trên toàn bộ mạng. Nguồn thông tin chủ yếu của NIDS là các gói dữ liệu đang lưu thông trên mạng. NIDS thường được lắp đặt tại ngõ vào của mạng, có thể đứng trước hoặc sau tường lửa.
- Host-based IDS (HIDS): Là những IDS giám sát hoạt động của từng máy tính riêng biệt. Do vậy, nguồn thông tin chủ yếu của HIDS ngòai lưu lượng dữ liệu đến và đi từ máy chủ còn có hệ thống dữ liệu nhật ký hệ thống (system log) và kiểm tra hệ thống (system audit).
- Dựa trên kỹ thuật phát hiện, IDS cũng được chia thành 2 loại:
- Signature-based IDS: Signature-based IDS phát hiện xâm nhập dựa trên dấu hiệu của hành vi xâm nhập, thông qua phân tích lưu lượng mạng và log hệ thống. Kỹ thuật này đòi hỏi phải duy trì một cơ sở dữ liệu về các dấu hiệu xâm nhập (signature database), và cơ sở dữ liệu này phải được cập nhật thường xuyên mỗi khi có một hình thức hoặc kỹ thuật xâm nhập mới.
- Anomaly-based IDS: phát hiện xâm nhập bằng cách so sánh (mang tính thống kê) các hành vi hiện tại với hoạt động bình thường của hệ thống để phát hiện các bất thường (anomaly) có thể là dấu hiệu của xâm nhập. Ví dụ, trong điều kiện bình thường, lưu lượng trên một giao tiếp mạng của server là vào khỏang 25% băng thông cực đại của giao tiếp. Nếu tại một thời điểm nào đó, lưu lượng này đột ngột tăng lên đến 50% hoặc hơn nữa, thì có thể giả định rằng server đang bị tấn công DoS. Để hoạt động chính xác, các IDS loại này phải thực hiện một quá trình “học”, tức là giám sát hoạt động của hệ thống trong điều kiện bình thường để ghi nhận các thông số hoạt động, đây là cơ sở để phát hiện các bất thường về sau.
II. Tổng quan về hệ thống phát hiện xâm nhập OSSEC
1. Giới thiệu
OSSEC là hệ thống phát hiện xâm nhập dựa trên host (HIDS) dựa trên log mã nguồn mở, miễn phí, đa nền tảng có thể mở rộng và có nhiều cơ chế bảo mật khác nhau. OSSEC có thể phát hiện xâm nhập bằng cả chữ ký hoặc dấu hiệu bất thường. Các dấu hiệu bình thường và bất thường được mô tả trong bộ luật của OSSEC.
OSSEC có một công cụ phân tích và tương quan mạnh mẽ, tích hợp giám sát và phân tích log, kiểm tra tính toàn vẹn của file, kiểm tra registry của Windows, thực thi chính sách tập trung, giám sát chính sách, phát hiện rootkit, cảnh báo thời gian thực và phản ứng một cách chủ động cuộc tấn công đang diễn ra. Các hành động này cũng có thể được định nghĩa trước bằng luật trong OSSEC để OSSEC hoạt động theo ý muốn của người quản trị.
Ngoài việc được triển khai như một HIDS, nó thường được sử dụng như một công cụ phân tích log, theo dõi và phân tích các bản ghi lại, IDS, các máy chủ Web và các bản ghi xác thực. OSSEC chạy trên hầu hết các hệ điều hành, bao gồm Linux, OpenBSD, FreeBSD, Mac OS X, Sun Solaris và Microsoft Windows. OSSEC còn có thể được tích hợp trong trong các hệ thống bảo mật lớn hơn là SIEM (Security information and event management). OSSEC chỉ có thể cài đặt trên Windows với tư cách là một agent.
- Ưu điểm của HIDS
HIDS có một số điểm cải tiến hơn so với NIDS:- Phù hợp với môi trường dữ liệu mã hóa ngày càng phổ biến. HIDS có khả năng đọc được các dữ liệu (log) được mã hóa tại server nhận.
- Thích hợp trong các mạng được chuyển đổi nơi mà chỉ có máy chủ lưu trữ cuối cùng mới có thể nhìn thấy lưu lượng truy cập.
- Theo dõi được các tiến trình sử dụng của người dùng tại máy chủ.
- Có khả năng phát hiện và phản ứng với thời gian thực.
- Xác minh khả năng của một cuộc tấn công. NIDS thường đưa ra một cảnh báo sớm, còn HID có khả năng xác minh xem một cuộc tấn công hay xâm nhập trái phép có khả năng thành công hay thất bại.
- Khắc phục các cuộc tấn công mà NIDS không thể cảnh báo được như tấn công phân mảnh hay ghép nối phiên.
=> Vì những lý do như vậy mà OSSEC được phát triển theo HIDS chứ không phải NIDS.
- Các tính năng nổi bật của OSSEC là:
- Theo dõi và phân tích các log: OSSEC thu thập log theo thời gian thực từ nhiều nguồn khác nhau để phân tích (giải mã, lọc và phân loại) và đưa ra cảnh báo dựa trên bộ luật được xây dựng trước. OSSEC phát hiện các cuộc tấn công trên mạng, hệ thống hoặc ứng dụng cụ thể bằng cách sử dụng log làm nguồn thông tin chính. Log cũng rất hữu ích để phát hiện việc khai thác lổ hổng phần mềm, vi phạm chính sách và các hình thức hoạt động không phù hợp khác. Một số loại log mà OSSEC có thể phân tích là log proxy, log web, log ghi lại xác thực, system log.
- Kiểm tra tính toàn vẹn của file: Sử dụng hàm băm mật mã, có thể tính toán giá trị băm của mỗi file trong hệ điều hành dựa trên tên file, nội dung file và giá trị băm này là duy nhất. OSSEC có thể giám sát các ổ đĩa để phát hiện các thay đổi của giá trị băm này khi có ai đó, hoặc điều gì đó, sửa đổi nội dung của file hoặc thay thế phiên bản file này bằng một phiên bản file khác.
- Giám sát Registry: Hệ thống Registry là danh sách thư mục tất cả các cài đặt phần cứng và phần mềm, các cấu hình hệ điều hành, người dùng, nhóm người dùng, và các preference trên một hệ thống Microsoft Windows. Các thay đổi được thực hiện bởi người dùng và quản trị viên đối với hệ thống được ghi lại trong các khóa registry để các thay đổi được lưu khi người dùng đăng xuất hoặc hệ thống được khởi động lại. Registry cũng cho thấy kernel của hệ điều hành tương tác với phần cứng và phần mềm máy tính như thế nào. HIDS có thể giám sát những thay đổi này đối với các khóa registry quan trọng để đảm bảo rằng người dùng hoặc ứng dụng không cài đặt một chương trình mới hoặc sửa đổi chương trình hiện có với mục đích xấu.
- Phát hiện Rootkit: OSSEC phát hiên Rootkit dựa trên chữ ký, rootkit là công cụ cho phép kẻ đột nhập khả năng xâm nhập trở máy tính bị cài rootkit và xóa dấu vết về sự tồn tại của nó. Kẻ xâm nhập có thể sử dụng rootkit để ăn cắp thông tin và tài nguyên từ máy tính nạn nhân. OSSEC có khả năng phát hiện rootkit bằng cách đọc file cơ sở dữ liệu về rootkit và tiến hành quét hệ thống định kỳ, thực hiện các lời gọi hệ thống để phát hiện các file không bình thường, các tiến trình ấn, các dấu hiệu vượt quyền, các cổng ẩn và so sánh chúng với cơ sở dữ liệu để phát hiện rootkit.
- Phản ứng chủ động: Phản ứng chủ động cho phép các IDS nói chung và OSSEC nói riêng tự động thực thi các lệnh hoặc phản ứng khi một sự kiện hoặc tập hợp sự kiện cụ thể được kích hoạt. Phản ứng chủ động có thể được xác định bằng luật. Các lợi ích của phản ứng chủ động là rất lớn, nhưng cũng rất nguy hiểm, có thể ngăn chặn kết nối hợp pháp hoặc là lổ hổng để kẻ tấn công khai thác. Ví dụ: quản trị viên hợp pháp có thể tạo ra báo động sai và chặn người dùng/máy chủ hợp pháp truy cập nếu các luật được thiểt kế kém.
2. Kiến trúc và quy trình hoạt động của OSSEC
a. Kiến trúc
OSSEC được thiết ké theo mô hình client – server, gồm 2 thành phần chính là OSSEC server và OSSEC agent
- OSSEC SERVER:
- Đây là phần trung tâm và quan trọng nhất của OSSEC. Server là nơi lưu trữ dữ liệu. Tất cả các luật, bộ giải mã (decoder) cũng được lưu trữ trên server.
- Server còn đảm nhận nhiệm vụ quản lý các agent. Các agent kết nối với máy chủ trên cổng 1514 hoặc 514, giao thức UDP. Kết nối với cổng này phải được cho phép để các agent kết nối với manager.
- Nhiệm vụ quan trọng nhất của server là phân tích các log nhận được từ các agent hay agentless (gọi chung là client) và xuất ra các cảnh báo. Các cảnh báo này có thể xuất ra cho các các công cụ xử lý log như Logstash, Elastic Search để hiển thị cho người quản trị bằng Kibana, lưu trữ trong cơ sở dữ liệu.
- OSSEC Agent:
- Agent (đầy đủ là installable agent) là một chương trình nhỏ, hoặc tập hợp các chương trình, được cài đặt trên các hệ thống được giám sát.
- Agent sẽ thu thập thông tin và gửi cho manager để phân tích và so sánh. Một số thông tin được thu thập trong thời gian thực, những thông tin khác theo định kỳ.
- Agent có một bộ nhớ rất nhỏ và sử dụng rất ít CPU, không ảnh hưởng đến việc sử dụng của hệ thống. Server cấu hình cho các agent. Các agent được cài đặt trên các host và chúng gửi lại các log cho server thông qua giao thức thông điệp được mã hóa OSSEC.
- Các modul chức năng của agent là: giám sát host, kiểm tra tính toàn vện file trên máy host mà nó được cài, phát hiện rootkit trên máy host, đọc các log và gửi các log cho server.
- Agentless là tính năng hỗ trợ cho các thiết bị không cài đặt được agent theo cách bình thường như router, switch, tường lửa. Nó có chức năng như agent. Agentless kết nối để gửi thông điệp, log cho manager bằng các phương thức RPC.
Ngoài ra OSSEC cũng hỗ trợ thêm một số tính năng:
- Ảo hóa/Vmware ESX: OSSEC cho phép người quản trị cài đặt agent trên các hệ điều hành guest. Agent cũng có thể được cài đặt bên trong một số phiên bản của VMWare ESX, nhưng điều này có thể gây ra các vấn đề kỹ thuật. Với agent được cài đặt bên trong VMware ESX, người quản trị có thể nhận được thông báo về thời điểm một máy khách VM đang được cài đặt, gỡ bỏ, khởi động, vv…Agent cũng giám sát các đăng nhập, đăng xuất và lỗi bên trong máy chủ ESX.Thêm nữa, OSSEC còn có thể thực hiện kiểm tra an ninh (CIS) cho VMware, cảnh báo nếu có tùy chọn cấu hình không an toàn nào được bật hoặc bất kỳ vấn đề nào khác.
- Router, tường lửa và switch: OSSEC có thể nhận và phân tích các sự kiện trong syslog từ rất nhiều router, tường lửa và switch. Đây có thể là nguồn thu thập log rất hiệu quả để manager phân tích, đưa ra các dấu hiệu, cảnh báo về các cuộc xâm nhâp trên mạng cho quản trị viên vì OSSEC không phải là NIDS.
b. Quy trình hoạt động
OSSEC hoạt động theo mô hình Client – Server:
- Các agent có trách nhiệm theo dõi và thu thập log từ các máy host được cài đặt, mã hóa chúng và gửi cho server theo giao thức UDP, cổng 1514.
- Server chịu trách nhiệm nhận log từ agent và phân tích chúng, so sánh với các luật.
- Log đã được xử lý sẽ được server chuyển về hệ thống được tích hợp ELK để lưu trữ và hiển thị cảnh báo cho admin theo giao diện web.
III. Tổng kết
Trên đây mới chỉ là những cái nhìn tổn quát nhất về những khái niệm, kiến trúc và cách thức hoạt động của một hệ thống phát hiện xấm nhập dựa trên Host (Host base IDS). Trong phần tiếp theo của bài viết, chúng ta sẽ đi sâu vào cấu hình tạo luật của OSSEC, thử viết một vài luật, tiến hành thử nghiệm xem hệ thống hoạt động ra sao.
Hy vọng sau bài viết này, các bạn có thể tự cài đặt và cấu hình được một hệ thống phát hiện xâm nhập cơ bản trên hệ thống của mình. Xin cảm ơn!
All rights reserved