BỘ GIÁO DỤC VÀ ĐÀO TẠO HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG HỌC PHẦN AN TOÀN BẢO MẬT HỆ THỐNG THÔNG TIN CHỦ ĐỀ 16 Tìm hiểu về hệ thống phát hiện tấn công, đột nhập OSSEC kiến trúc, cài đặt, cấu hìn[.]
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
HỌC PHẦN
AN TOÀN BẢO MẬT HỆ THỐNG THÔNG TIN
CHỦ ĐỀ 16 : Tìm hiểu về hệ thống phát hiện tấn công, đột nhập OSSEC: kiến trúc, cài đặt, cấu hình, tạo luật; xây dựng
3 kịch bản phát hiện tấn công.
Thành viên nhóm 11 và phân công:
1 Hoàng Trung Trường (NT) - B20DCCN706 - Thuyết trình
2 Đặng Hữu Hiếu - B20DCCN243 - Viết báo cáo
3 Phạm Thanh Tú - B20DCCN610 - Slides
4 Nguyễn Việt Lương- B20DCCN413 – Viết báo cáo
Hà Nội, năm 2023
Trang 2I Giới thiệu
a) Giới thiệu về hệ thống phát hiện xâm nhập IDS
- Để hiểu hơn về hệ thống phát hiện xâm nhập OSSEC trước tiên ta nên hiểu qua về hệ thống phát hiện xâm nhập IDS (Intrusion Detection Tools) : +) Hệ thống phát hiện xâm nhập 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 firewall, 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
Firewall 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
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ác cuộc tấn công có nguồn gốc
từ bên trong một hệ thống
Dựa trên phạm vi giám sát, IDS được chia thành 2 loại:
o 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
o 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)
HIDS có một số điểm cải tiến hơn so với NIDS:
o 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
o 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
o Theo dõi được các tiến trình sử dụng của người dùng tại máy chủ
o Có khả năng phát hiện và phản ứng với thời gian thực
o 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
Trang 3tấ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
o 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
Dựa trên kỹ thuật phát hiện, IDS cũng được chia thành 2 loại:
o 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
o 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
b) Tổng quan về OSSEC
- Giới thiệu về OSSEC : 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
- Các tính năng nổi bật của OSSEC :
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
Trang 4việ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
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
- Ưu điểm của OSSEC so với các hệ thống khác :
Đa nền tảng (Linux, Mac OS , Window, Solaris)
Real-time Alert (Cảnh báo thời gian thực)
o Kết hợp với smtp,sms,syslog sẽ cho phép người dùng nhận cảnh báo trên các thiết bị có hỗ trợ email
o Ngoài ra tính năng Active-respone có thể giúp block 1 cuộc tấn công ngay lập tức
Có thể tích hợp với các hệ thống hiện đại (SIM/SEM)
Trang 5 Mô hình Server – Agent/Agentless, cho phép Server dễ dàng quản lý tập trung các chính sách trên nhiều OS
Giám sát trên agent, agentless (Client không cài đặt được gói agent) như router, firewall
II Nội dung
1) Kiến trúc
- Ossec hoạt động theo mô hình Server-Agent/Agentless, gồm 2 thành phần chính là OSSEC server và OSSEC agent
o Đâ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
o 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
o 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:
o 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
o 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ỳ
o 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
o 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
o 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ó
Trang 6chứ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
Trang 7vấ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
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
2) 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
3) Cài đặt và cấu hình
a) Cài đặt OSSEC
Để cài đặt OSSEC trên hệ thống của bạn, bạn có thể làm theo các bước sau:
- Bước 1: Tải xuống OSSEC
Bạn có thể tải xuống OSSEC từ trang chủ của nó tại ossec.net hoặc sử dụng lệnh wget để tải xuống:
$ wget https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz
- Bước 2: Giải nén và cài đặt OSSEC
Giải nén tệp tin:
$ tar -zxvf 3.6.0.tar.gz
Sau đó, di chuyển đến thư mục ossec-hids-3.6.0 và chạy script cài đặt:
$ cd ossec-hids-3.6.0 $ sudo /install.sh
Trang 8Theo mặc định, OSSEC sẽ được cài đặt vào thư mục /var/ossec trên hệ thống của bạn
- Bước 3: Khởi động OSSEC
Sau khi cài đặt, bạn có thể khởi động lại dịch vụ OSSEC bằng cách sử dụng lệnh sau:
$ sudo /var/ossec/bin/ossec-control start
Bạn có thể kiểm tra trạng thái của OSSEC bằng cách sử dụng lệnh sau:
$ sudo /var/ossec/bin/ossec-control status
Nếu mọi thứ đều hoạt động đúng, bạn sẽ thấy thông báo "ossec-server is running (pid: xxxx)"
b) Cấu hình cho OSSEC
Để cấu hình OSSEC, bạn có thể làm theo các bước sau:
Bước 1: Sửa đổi tệp tin cấu hình
Tệp tin cấu hình của OSSEC là /var/ossec/etc/ossec.conf Bạn có thể sử dụng trình chỉnh sửa văn bản để sửa đổi tệp tin này
Bước 2: Thêm các quy tắc IDS/IPS
Bạn có thể thêm, xóa hoặc chỉnh sửa các quy tắc của IDS/IPS bằng cách sử dụng các khối <rule> trong tệp tin cấu hình
Ví dụ, để thêm một quy tắc IDS để phát hiện các lỗ hổng bảo mật trên các cổng mạng, bạn có thể sử dụng khối sau:
<rule id="100001" level="10">
<if_sid>100</if_sid>
<if_group>firewall</if_group>
<if_matched>open port: 22</if_matched>
<description>Open port detected</description>
Trang 9<group>security_event</group>
<options>alert_by_email</options>
</rule>
Trong quy tắc này, các trường sau được sử dụng:
id: Mã số duy nhất của quy tắc
level: Mức độ nghiêm trọng của quy tắc
<if_sid>: ID của quy tắc cha, trong trường hợp này là 100
<if_group>: Nhóm của quy tắc cha
<if_matched>: Mô tả của quy tắc cha
<description>: Mô tả chi tiết của quy tắc
<group>: Nhóm của sự kiện bảo mật
<options>: Tùy chọn xử lý sự kiện bảo mật, trong trường hợp này là gửi cảnh báo qua email
Bước 3: Khởi động lại dịch vụ OSSEC
Sau khi sửa đổi tệp tin cấu hình, bạn nên khởi động lại dịch vụ OSSEC bằng cách sử dụng lệnh sau:
$ sudo /var/ossec/bin/ossec-control restart
Bước 4: Kiểm tra trạng thái của OSSEC
Bạn có thể kiểm tra trạng thái của OSSEC bằng cách sử dụng lệnh sau:
$ sudo /var/ossec/bin/ossec-control status
Nếu mọi thứ đều hoạt động đúng, bạn sẽ thấy thông báo "ossec-server is running (pid: xxxx)"
Trang 104) Luật và tạo luật trong OSSEC
- Luật (rules) là một phần vô cùng quan trọng trong hệ thống OSSEC, nó chính
là cốt lõi trong việc đảm bảo hệ thống OSSEC có được hoạt động theo quy trình, chính xác và hiệu quả hay không Rules có định dạng XML, được cấu hình trong ossec server /var/ossec/etc/ossec.config và nằm trong thẻ <ossec_config> Rules được lưu trong /var/ossec/rules
a) Các đặc điểm của luật OSSEC
OSSEC có 16 cấp độ luật:
00 - Ignored: Không thực hiện hành động nào Khi gặp luật có cấp độ này thì sẽ không có thông báo Các luật này được quét trước tất cả các luật khác Chúng bao gồm các sự kiện không có sự liên quan về bảo mật
01 - None (không)
02 - System low priority notification (hệ thống thông báo ưu tiên thấp): Thông báo hệ thống hoặc thông báo trạng thái Không có sự liên quan về bảo mật
03 - Successful/Authorized events (sự kiện thành công/được ủy quyền): Bao gồm các lần đăng nhập thành công, tường lửa cho phép sự kiện, v.v
04 - System low priority error (lỗi ưu tiên hệ thống thấp): Các lỗi liên quan đến cấu hình hoặc thiết bị/ứng dụng không sử dụng Chúng không có
sự liên quan về bảo mật và thường được gây ra bởi các cài đặt mặc định hoặc kiểm thử phần mềm
05 - User generated error (lỗi do người dùng tạo): Chúng bao gồm mật khẩu bị bỏ lỡ, hành động bị từ chối, v.v Chính chúng không có sự liên quan về bảo mật
06 - Low relevance attack (tấn công mức độ liên quan thấp): Chúng chỉ ra một con sâu hoặc virus không ảnh hưởng đến hệ thống (như mã màu đỏ cho các máy chủ apache, vv) Chúng cũng bao gồm các sự kiện IDS
thường xuyên và các lỗi thường xuyên
07 - “Bad word” matching (kết hợp “Từ xấu”): Chúng bao gồm các từ như
"bad", "error", v.v Những sự kiện này hầu như không được phân loại và
có thể có một số mức độ liên quan về bảo mật