Tải bản đầy đủ (.docx) (20 trang)

Báo cáo BTL VỀ OSSEC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (940.65 KB, 20 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THƠNG TIN

BÁO CÁO BÀI TẬP LỚN
MƠM: CƠ SỞ AN TỒN THÔNG TIN
ĐỀ TÀI: HỆ THỐNG PHÁT HIỆN TẤN CÔNG, XÂM
NHẬP OSSEC
NHĨM: 11

Họ tên giảng viên: PGS. TS. Hồng Xn Dậu
Sinh viên thực hiện: B20DCAT163-Tống Văn Tồn-Nhóm Trưởng
B20DCAT190-Lê Văn Tráng
B20DCAT191-Trần Đăng Trọng
B20DCAT193-Đỗ Xuân Trung
B20DCAT194-Nguyễn Đức Trung
B20DCAT197-Nguyễn Quốc Trưởng

Hà Nội tháng 10 năm 2022
1


Muc Lục

I Giới thiệu 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 các 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 thao tác ngăn chặn mà chỉ theo dõi các hoạt động
trên 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 cuộc tấn cơng từ bên trong hệ thống.
1.1 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 chỉ có thể cài đặt trên Windows với tư cách là một agent.
1.2 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 nhập log theo thời gian thực từ
nhiều nguồn khác nhau để phân tích và đưa ra cảnh báo. 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
hàm nguồn thơng tin chính. Log cũng rất hữu ích để phát hiện khai thác lỗ hổng
phần mềm, vi phạm chính sách và các hoạt động không phù hợp khác
+ Kiểm tra tính tồn vẹn của file: Sử dụng hàm bằng mật mã có thể tính tố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ị
2


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 file hoặc thay thế
phiên bản file này bằng 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 hoạt động 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 vào máy tính bị cài rootkit và xóa dấu
vết về sự tồn tại của nó. OSSEC có khả năng phát hiện root bằng cách đọc file cơ
sở dữ liệu về root 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 và so sánh chúng
với cơ sở dữ liệu để phát hiện root

+ Phản ứng chủ độ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.
1.3 Kiến trúc hệ thống ossec
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 SEVER
Đâ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, Elasticsearch để hiển thị
cho người quản trị bằng Kibana, lưu trữ trong cơ sở dữ liệu.
3


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ỳ.
Các module chức năng của agent là: giám sát host, kiểm tra tính tồ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.
1.4 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.
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 qt 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.
4


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.
08 - First time seen (lần đầu tiên nhìn thấy): Bao gồm các sự kiện lần đầu tiên được
xem. Lần đầu tiên một sự kiện IDS được kích hoạt hoặc lần đầu tiên người dùng
đăng nhập. Nếu bạn mới bắt đầu sử dụng OSSEC HIDS, những thơng báo này có
thể sẽ thường xun. Sau một thời gian sẽ giảm dần, Nó cũng bao gồm các hành
động bảo mật có liên quan (như bắt đầu của một sniffer).
09 - Error from invalid source (lỗi từ nguồn không hợp lệ): Bao gồm các lần đăng
nhập dưới dạng người dùng không xác định hoặc từ nguồn không hợp lệ. Có thể có
sự liên quan về bảo mật (đặc biệt nếu được lặp lại). Chúng cũng bao gồm các lỗi
liên quan đến tài khoản "quản trị" (root).
10 - Multiple user generated errors (tập hợp lỗi do người dùng tạo): Chúng bao
gồm nhiều mật khẩu không hợp lệ, nhiều lần đăng nhập khơng thành cơng, v.v. Họ
có thể chỉ ra một cuộc tấn cơng hoặc có thể chỉ là người dùng vừa qn thơng tin
đăng nhập của mình.
11 - Integrity checking warning (cảnh báo kiểm tra tính tồn vẹn): Chúng bao gồm
các thông báo liên quan đến việc sửa đổi các tệp nhị phân hoặc sự hiện diện của
rootkit (bằng kiểm tra root). Nếu bạn chỉ cần sửa đổi cấu hình hệ thống của bạn,
bạn sẽ được báo về các thơng báo "syscheck". Nó có thể chỉ ra một cuộc tấn công
thành công. Cũng bao gồm các sự kiện IDS sẽ bị bỏ qua (số lần lặp lại cao).
12 - High importance event (sự kiện quan trọng cao): Chúng bao gồm các thông
báo lỗi hoặc cảnh báo từ hệ thống, hạt nhân, v.v. Chúng có thể chỉ ra một cuộc tấn
công chống lại một ứng dụng cụ thể.
13 - Unusual error (high importance) - Lỗi bất thường (mức độ quan trọng cao):
Hầu hết các lần khớp với một kiểu tấn công chung.
14 - High importance security event (sự kiện bảo mật quan trọng cao): Hầu hết thời
gian được thực hiện với sự tương quan và nó chỉ ra một cuộc tấn công.
15 - Severe attack (tấn công nghiêm trọng): Cần chú ý ngay lập tức.
5



1.5 Phân loại luật
Trong OSSEC, luật được chia thành 2 loại: Luật nguyên tố và luật kết hợp:
- Luật nguyên tố - các luật xử lý 1 sự kiện: cảnh báo, thơng báo hay
hành động ứng phó sẽ xuất hiện khi có 1 sự kiện thỏa mãn. Ví dụ: Bao nhiêu
lần đăng nhập thất bại sẽ xuất hiện bấy nhiêu lần thông báo.
- Luật kết hợp – xử lý nhiều sự kiện một lúc trong 1 luật: Có thể sử
dụng với thẻ Frequency và Time Frame để xử lý một sự kiện được diễn ra
nhiều lần.
II Cài đặt OSSEC
2.1 Cài đặt OSSEC server:
Chú ý: Một điều cần lưu ý khi cài đặt OSSEC là hệ điều hành windows chỉ
hỗ trợ cài đặt ossec agent, nó khơng hỗ trợ cài đặt ossec server. OSSEC server chỉ
được hỗ trợ cài đặt trên các hệ điều hành hệ Linux/Unix.
Cài đặt hệ điều hành Linux bằng phần mềm ảo hóa Vmware.
Tải gói cài đặt OSSEC tại: />
Sau đó chọn server để cài đặt
Đến đây đã cài đặt xong ossec server. Toàn bộ dữ liệu cài đặt được lưu trong
/var/ossec.
Để kiểm tra hoạt động của OSSEC, sử dụng câu lệnh: /var/ossec/bin/ossec-control
start

6


Trước khi chuyển cài đặt ossec agent trên client, cần đảm bảo rằng đã mở cổng
1514 hoặc 514.
2.2 Cài đặt OSSEC agent:
Cài đặt agent trên hệ điều hành UNIX tương tự như cài đặt trên server, thay
đổi server thành agent.

Cũng tương tự như trên server cần mở port UDP 1514, 514 trên agent.
Cài đặt trên hệ điều hành windows.
Cài đặt hệ điều hành windows bằng phần mềm ảo hóa Vmware
Tải gói cài đặt OSSEC tại: />Tiến hành cài đặt bình thường:

2.3 Thêm Agent vào Server:
Để OSSEC Server và OSSEC Agent có thể giao tiếp với nhau, phía agent cần
xác minh với OSSEC Server. Traffic giữa OSSEC Server và OSSEC Agent được
mã hóa sử dụng khóa bí mật do phía server sinh, sau đó được imported cho
agent.
Quy trình:
Chạy manage agent trên máy chủ OSSEC.

7


Thêm agent.
- Tên

- Địa chỉ IP

- Sau đó, nó yêu cầu một ID duy nhất để gán cho máy khách.

Giải nén khóa cho agent.

8


Nhập địa chỉ IP.
Sao chép key nhập vào máy OSSEC Agent.


Khởi động lại quy trình OSSEC của manager. Khởi động agent.
Chạy OSSEC với quyền Administrator

Kiểm tra kết nối giữa agent và server:
Cài đặt win trên máy server:

9


Kiểm tra trên trang web: localhost/ossec-wui/

Như vậy Ossec server đã khởi chạy.
III Cấu hình OSSEC
Cấu hình cho OSSEC chủ yếu được tổ chức trong ossec.conf. Nó được viết
bằng XML lỏng lẻo và bao gồm một số phần
Chúng ta cùng tìm hiểu cụ thể về Cấu hình tập trung (agent.conf).
3.1 Giới thiệu:
Các tác nhân có thể được định cấu hình từ xa bằng cách sử dụng agent.conf
tệp.
Note:
Khi thiết lập lệnh từ xa trong cấu hình tác nhân được chia sẻ, bạn phải bật
lệnh từ xa cho Mô-đun tác nhân. Điều này được kích hoạt bằng cách thêm dịng
sau vào /var/ossec/etc/local_internal_options.conf tệp trong tác nhân: wazuh
command. remote commands=1
Angent Group:
Các tác nhân có thể được nhóm lại với nhau để gửi cho họ một cấu hình tập
trung duy nhất dành riêng cho nhóm. Mỗi tác nhân có thể thuộc nhiều hơn một
10



nhóm và trừ khi được định cấu hình khác, tất cả các tác nhân đều thuộc một nhóm
được gọi default.
Người quản lý đẩy tất cả các tệp có trong thư mục nhóm đến các tác nhân
thuộc nhóm này. Ví dụ: tất cả các tệp trong /var/ossec/etc/shared/default sẽ được
đẩy đến tất cả các tác nhân thuộc default nhóm.
Tệp ar.conf (trạng thái phản hồi hoạt động) sẽ luôn được gửi đến các tác
nhân ngay cả khi nó khơng có trong thư mục nhóm.
Tác nhân sẽ lưu trữ các tệp được chia sẻ /var/ossec/etc/shared, khơng phải
trong một thư mục nhóm.
Agent.conf:
Chỉ agent.conf hợp lệ trên cài đặt máy chủ.
Có agent.conf thể tồn tại trong mỗi thư mục nhóm tại /var/ossec/etc/shared.
Ví dụ, đối với group 1 nhóm, nó đang ở trong /var/ossec/etc/shared/group1.
Mỗi tệp này phải được wazuh người dùng đọc được.
Options:
Name: Cho phép gán khối cho một tác nhân cụ thể.
Giá trị được phép Bất kỳ tên đại lý nào
Os: Cho phép gán khối cho hệ điều hành.
Giá trị được phép Bất kỳ hệ điều hành nào
Profile: Cho phép gán tên hồ sơ cho một khối. Bất kỳ tác nhân nào được
định cấu hình để sử dụng cấu hình đã xác định đều có thể sử dụng khối.
Giá trị được phép Bất kỳ hồ sơ xác định nào
3.2 Quy trình cấu hình tập trung
Sau đây là một ví dụ về cách cấu hình tập trung có thể được thực hiện.
1. Định cấu hình agent.conf tệp:
Chỉnh sửa tệp tương ứng với nhóm tác nhân. Ví dụ: đối với default nhóm,
hãy chỉnh sửa tệp /var/ossec/etc/shared/default/agent.conf. Nếu tệp khơng tồn tại,
hãy tạo nó
11



2. Chạy /var/ossec/bin/verify-agent-conf:
Mỗi lần bạn thực hiện thay đổi đối với agent.conf tệp, điều quan trọng là
phải kiểm tra các lỗi cấu hình. Nếu bất kỳ lỗi nào được báo cáo bởi kiểm tra này,
chúng phải được sửa trước khi thực hiện bước tiếp theo. Việc không thực hiện
bước này có thể cho phép các lỗi được đẩy đến các tác nhân, điều này có thể ngăn
các tác nhân chạy. Khi đó, rất có thể bạn sẽ buộc phải đến từng đại lý theo cách thủ
công để khôi phục chúng.
3. Đẩy cấu hình cho các tác nhân:
Với mọi lưu giữ tác nhân (mặc định 10 giây), tác nhân sẽ gửi cho người
quản lý tổng kiểm tra của tệp merge.md của nó và người quản lý sẽ so sánh nó với
tệp hiện tại. Nếu tổng kiểm tra nhận được khác với tổng kiểm tra có sẵn, trình quản
lý Wazuh sẽ đẩy tệp mới đến tác nhân. Tác nhân sẽ bắt đầu sử dụng cấu hình mới
sau khi được khởi động lại.
4. Xác nhận rằng tác nhân đã nhận được cấu hình:
Cơng agent_groupscụ hoặc điểm cuối API Wazuh GET / agent / {agent_id} /
group / is_sync có thể cho biết liệu nhóm có được đồng bộ hóa trong tác nhân hay
khơng
5. Khởi động lại đại lý:
Theo mặc định, tác nhân sẽ tự động khởi động lại khi nhận được cấu hình
được chia sẻ mới.
Nếu auto_restart đã bị vơ hiệu hóa (trong <client>phần Cấu hình cục bộ), tác
nhân sẽ phải được khởi động lại theo cách thủ công để agent.conf tệp mới được sử
dụng.
Để sử dụng tính năng này, chúng ta cần đặt một tệp có tên files.yml dưới thư
mục /var/ossec/etc/shared/. Khi trình quản lý khởi động, nó sẽ đọc và phân tích cú
pháp tệp.
IV Tạo luật trong OSSEC:
Trước khi bắt đầu viết các quy tắc chúng ta nên biết một số quy tắc cần tuân

thủ:
1: Khi viết các quy tắc tùy chỉnh là không bao giờ sửa đổi các tệp quy tắc hiện có
trong thư mục /var/ossec/rules ngoại trừ local rules. xml. Những thay đổi đối với
12


các quy tắc đó có thể sửa đổi hành vi của toàn bộ chuỗi quy tắc và làm phức tạp
thêm việc khắc phục sự cố
2: Khi viết quy tắc tùy chỉnh là sử dụng các ID ở trên 100000 làm các ID bên dưới
được dung riêng. Việc can thiệp vào các ID đó cũng giống như việc can thiệp vào
chính các tệp quy tắc được phân phối. Bạn có nguy cơ cập nhật OSSEC làm tắc
nghẽn mọi cơng việc khó khăn của bạn
3: Duy trì trật tự trong các quy tắc của bạn. Khi trình phân tích cú pháp quy tắc
đang tải các quy tắc khi khởi động, nó xác nhận sự tồn tại của các quy tắc và nhóm
được tham chiếu. Nếu bạn tham chiếu đến một quy tắc chưa được tải, trình phân
tích cú pháp sẽ thành cơng
Lưu ý ba nguyên tắc giúp đảm bảo rằng các cài đặt của chúng ta sẽ không bị hư
hỏng khi nâng cấp và chúng ta ln có thể quay lai OSSEC bằng cách xóa
local_rules.xml
Để tìm ra bước đầu tiên, chúng ta cần tìm hiểu điều gì đang xảy ra để tạo cảnh
báo:
- Sử dụng ossec – logtest công cụ do ossec cung cấp. Nó hoạt động bằng cách chấp
nhận thơng báo nhật ký trên STDIN (đầu vào thiết bị đầu cuối của bạn) và giải
thích đường dẫn thơng qua các quy tắc. Đây là cách có thể chạy nó:
$ sudo /var/ossec/bin/ossec-logtest
- Sau đó chúng ta có thể dán vào các dịng nhật ký để xem dòng nào đang tạo cảnh
báo:
Ossec – testrule: Type one log per line.
May 4 19:12:03 server custom-app: Startup initiated.
** Phase 1: Completed pre-decoding.

Full event: ‘May 4 19:12:03 server custom-app: Startup initiated.’
Hostname: ‘server’
Program_name: ‘custom-app’
Log: ‘Startup initiated’
** Phase 2: Completed decoding.
No decoder matched
13


- Thơng báo log đầu tiên đã hồn thành việc phân tích cú pháp của dịng và khơng
có cảnh báo nào được tạo, VÌ vậy chúng ta thử thơng báo log tiếp theo:
** Phase 1: Completed pre-decoding.
Full event: ‘May
during startup!’

4 19:12:07 server custom-app: No error detected

Hostname: ‘server’
Program_name: ‘custom-app’
Log: ‘No error detected during startup!’
** Phase 2: Completed decoding.
No decoder matched
** Phase 3: Completed filtering (rules).
Rule id: ‘1002’
Lever: ‘2’
Description: ‘Unknown problem somewhere in the system.’
** Alert to be generated.
- Chúng ta có thể thấy từ kết quả này rằng vấn đề chưa biết của chúng ta đang được
tạo ra bởi dòng log này. Chúng ta nhận được ID quy tắc và cấp độ đang được tạo
và sử dụng thông tin này, chúng ta có thể viết quy tắc để bỏ qua no bằng cách sử

dụng OSSEC level =’0’
<!Local Rules for Example.com -- >
<group name = “local, syslog”>
<rule id =” 100000” level=”0”>
<if_sid> 1002< /if_sid>
custom-app< /program_name>
<description> Ignore errors for custom- app </description>
</rule>
</group>
14


- Khi chúng ta đã lưu local rules. xml tệp chúng ta có thể khỏi động lại osseclogtest và thử lại
**Phase 3: Completed filtering(rules)
Rule id: ‘100000’
Level: ‘0’
Description: ‘Ignore unknown errors for custom-app’
- Bây giờ chúng ta đã chuyển sự kiện này lên cấp độ 0, chúng ta có thể xem xét các
sự kiện đăng nhập không thành công:
May 419:12:08 server custom-app: Failed login from ‘4,5,6,7’ as testuser’
** Phase 3: Completed filtering (rules)
Rule id: ‘2501’
Level: ‘5’
Description: ‘User authentication failure.’
** Alert to be generated.
- Chúng ta sẽ sử dụng một đối sánh đơn giản với dữ liệu này để tắt thông báo này
khỏi 4.5.6.7
<rule id = “100001” level =”0”>
< if_sid> 2501</if_sid>
< program_name>custom-app</program_name>

<match>4.5.6.7</match>
<description>Ignore failed logins from scanner</description>
</rule>
- Bây giờ chạy lại ossec-logtest thấy:
May 4 19:12:08 server custom-app Failed login from ‘4.5.6.7’ as testuser’
** Phase 3: Completed filtering (rules).
Rule id: ‘100001’
Level: ‘1’
15


Description: ‘Ignore failed logins from our security scanner’
** Alert to be generated
V Xây dựng 3 kịch bản
5.1 Phát hiện tấn công vét cạn SSH (Brute Force Attack)
- SSH (Secure Socket Shell) là giao thức đăng nhập vào máy tính từ xa
thơng qua cơ chế dịng lệnh được mã hóa, cho phép người dùng kiểm soát, chỉnh
sửa và quản trị dữ liệu của máy tính qua nền tảng Internet.
- Brute Force Attack là phương thức tấn công bằng cách sử dụng lần lượt các
tổ hợp mật khẩu mà có thể được sử dụng được người dùng để tiến hành đăng nhập
liên tục vào hệ thống, nếu mật khẩu người dùng là một mật khẩu dễ đốn thì brute
force attack hồn tồn có thể lấy được mật khẩu người dùng.
- Việc phát hiện và cảnh báo các cuộc tấn công SSH brute-force được bật
mặc định trong OSSEC.
- OSSEC sử dụng SSHD log về các lỗi đăng nhập để đưa ra cảnh báo.
- Ðoạn code bộ giải mã mặc định của OSSEC nằm ở
/var/ossec/etc/decoders.xml
- Các luật được chọn từ file trong đường dẫn rules/sshd_rules.xml
- Phân tích sự tương tác giữa bộ giải mã và các bộ luật để thấy cách thức
hoạt động:

- Trước hết, bộ tiền giải mã trích xuất từ thơng báo lỗi tên chương trình, tên
host, thời gian. Sau đó nó được chuyển qua bộ giải mã để thêm các nội dung chi
tiết hơn cho cảnh báo.
- Các luật sẽ được đối chiếu và luật nào phù hợp thì sẽ được thêm vào nội
dung của alert. Nếu có 1 hành động được thực hiện cho sự kiện này (email, log,
active response), hành động đó sẽ được xử lý. Các chi tiết của sự kiện sau đó sẽ
được phân loại trong máy chủ OSSEC phục vụ cho việc thống kê và báo cáo.
- Ta xét ví dụ sau:
Ta có thơng báo:
-May 5 15:38:40 ether sshd [5857]: Failed password for root from
220.161.148.178 port 41037 ssh2‖
16


Sau khi bộ tiền giải mã trích xuất được dữ liệu, bộ giải mã xử lí thơng báo như sau:
1. Bộ giải mã sshd khớp thuộc tính program_name với giá trị sshd xuất hiện ở log.
2. Bộ giải mã ssh-invfailed tìm kiếm từ khóa Failed … for invalid user khơng
thành cơng, do đó bộ giải mã này khơng khớp.
3. Bộ giải mã ssh-failed hợp lệ do log có từ khóa Failed
4. Sau khi giải mã sẽ thu được xâu: root from 220.161.148.178 port 41037 ssh2
5. Thuộc tính regex trích xuất thu được các thơng tin:‘root’ , ‘220.161.148.178’
6. Thuộc tính order cho biết user và source ip tương ứng.
7. Thông báo được chuyển tới rule engine để phân tích cùng lúc bộ giải mã lấy dữ
liệu.
Luật 5720 có thuộc tính frequency được đặt thành 6, thuộc tính if_matched_sid sẽ
kiểm tra cứ mỗi 6 phút luật 5716 được kích hoạt <=6 lần và nó được kích hoạt trên
cùng 1 địa chỉ xuất hiện cảnh báo.
Nếu số lần giá trị của luật 5716 được kích hoạt >6 lần (đạt tới giá trị của luật 5720)
thì cảnh báo được viết lại.
Các bước quan trọng như thay thế rule_id, level và group cũng được thêm vào.


17


5.2 Kiểm tra tính tồn vẹn của file (FIM- File Integrity Monitoring):
Syscheck: là tên của q trình kiểm tra tính tồn vẹn trong OSSEC. Nó chạy định
kỳ để kiểm tra xem có bất kỳ tệp nào được cấu hình (hoặc Windows Registry) đã
thay đổi hay khơng.
- Kiểm tra tính tồn vẹn: Các cuộc tấn công không chỉ nhắm đến mật khẩu của
người dùng, mà còn nhắm tới cả hệ thống. Các cuộc tấn công vào hệ thống thường
sẽ để lại dấu vết như file thay đổi, xóa, sửa. Việc giám sát tính tồn vẹn là chỉ ra
rằng nội dung của tệp có bị thay đổi như kích thước, thời gian sửa đổi và tạo,
quyền sở hữu, quyền đối với tệp.
- Cách thức hoạt động: Khi một file mới được tạo, syscheck sẽ phát hiện đó là một
tệp mới và sử dụng các thuộc tính của file này làm cơ sở. Khi file xuất hiện các
thuộc tính khác với thuộc tính cơ sở thì sẽ xuất hiện cảnh báo. Ngồi ra cũng có thể
cấu hình để OSSEC cảnh báo khi file mới được tạo. Agent quét hệ thống vài giờ
một lần (do người dùng xác định) và gửi tất cả checksums đến máy chủ. Máy chủ
lưu trữ checksums và kiểm tra xem chúng có bị sửa đổi khơng. Sẽ có cảnh báo nếu
có bất kỳ điều gì thay đổi.
5.3 Phát hiện rootkit và các điểm bất thường
Rootkit là phần mềm hoặc bộ công cụ phần mềm che giấu sự tồn tại của một
phần mềm khác mà thường là virus xâm nhập vào hệ thống máy tính. Rootkit
thường được hacker dùng sau khi chiếm được quyền truy cập vào hệ thống máy
tính. Nó sẽ che dấu dữ liệu hệ thống, tập tin hoặc tiến trình đang chạy, từ đó hacker
có thể vào hệ thống máy tính mà khơng thể biết được. Một máy tính bị cài rootkit
được gọi là bị “chiếm quyền root”. Thuật ngữ “rootkit” lúc đầu được dùng cho hệ
thống dùng bộ cơng cụ Unix, nó có thể che dấu kỹ lưỡng vết tích của kẻ xâm nhập
cho dù đã dùng các lệnh “ps”, “netstat”, “w” and “passwd” để kiểm tra, vì vậy nó
cho phép kẻ xâm nhập duy trì quyền “root” trên hệ thống, thậm chí người quản trị

hệ thống cũng không thể thấy họ. Ngày nay thuật ngữ này còn được dùng cho
Microsoft Windows khi xuất hiện các công cụ tương tự.
Trojan là một loại mã hoặc phần mềm độc hại nhưng được ẩn dưới lớp vỏ
của các phần mềm hợp pháp. Một Trojan được thiết kế để làm hỏng, phá hoại,
đánh cắp hoặc nói chung gây ra một số hành động gây hại khác trên dữ liệu hoặc
mạng.
Rootcheck: OSSEC HIDS sẽ thực hiện phát hiện rootkit trên mọi hệ thống
mà agent được cài đặt. Rootcheck (công cụ phát hiện rootkit) sẽ được thực thi sau
18


X phút một lần (do người dùng chỉ định - mặc định là 2 giờ) để phát hiện bất kỳ
rootkit nào đã được cài đặt. Khi rootcheck kết hợp cùng việc phân tích log và các
cơng cụ kiểm tra tính toàn vẹn sẽ trở thành một giải pháp giám sát mạnh mẽ.
- File rootkit_trojans.txt chứa cơ sở dữ liệu về dấu hiệu của các tệp bị trojan
bởi rootkits. Kỹ thuật sửa đổi mã nhị phân với các phiên bản trojaned thường được
sử dụng bởi hầu hết các rootkit phổ biến hiện có. Phương pháp phát hiện này sẽ
khơng tìm thấy bất kỳ rootkit cấp kernel hoặc bất kỳ rootkit nào chưa được ghi
nhận.
- Quét thư mục /dev để tìm điểm bất thường. Thư mục /dev chỉ nên có các
tệp thiết bị và tập lệnh Makedev. Nhiều rootkit sử dụng /dev để ẩn tệp. Kỹ thuật
này có thể phát hiện những rootkit khơng cơng khai.
- Qt tồn bộ hệ thống tệp để tìm các tệp bất thường và các vấn đề về
quyền. Các tệp thuộc quyền sở hữu của người dùng root nếu được cấp quyền ghi
cho các user khác là rất nguy hiểm và việc phát hiện rootkit sẽ phát hiện điều này.
Các tệp Suid, thư mục ẩn và các tệp khác cũng sẽ được rà soát.
- Quét các tiến trình ẩn. Sử dụng getid() và kill() để kiểm tra xem có bất kỳ
pid nào đang được sử dụng hay không. Nếu pid đang được sử dụng, nhưng "ps"
không thể thấy nó, đó là dấu hiệu của rootkit cấp kernel hoặc phiên bản "ps" bị
trojan. Chúng ta cũng cần đảm bảo output của kill và getid là như nhau.

- Rà soát các port ẩn. Ta sử dụng bind() để kiểm tra tất cả cổng tcp và udp
trên hệ thống. Nếu ta không thể kết nối đến cổng (cổng đang được sử dụng), nhưng
netstat khơng hiển thị nó, có thể rootkit đã được cài đặt.
- Quét tất cả các loại giao tiếp mạng trên hệ thống và tìm kiếm những loại
được bật chế độ "promisc". Nếu nó đang ở chế độ promisc, output của ifconfig sẽ
hiển thị. Nếu khơng, có thể đã có rootkit được cài đặt.
VI Tài liệu tham khảo:
/> /> />19


20



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×