Tất cả tài liệu: https://drive.google.com/drive/folders/1nBWniC3Q5ulu5cJZO2HIEufUtcEUC6k1?usp=sharing
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
Học phần: Chuyên đề an ninh mạng
Bài báo cáo:
Ứng dụng hệ thống IDS Security Onion vào giám sát
môi trường mạng doanh nghiệp
Giảng viên hướng dẫn: TS Nguyễn Ngọc Điệp
Sinh viên thực hiện:
Nguyễn Thành Nam B16DCAT111
HÀ NỘI, 2020
Trang 2Mục lục
CHƯƠNG 1 Tổng quan về hệ thống phát hiện xâm nhập 1
1.1.Tổng quan về xâm nhập 1
1.2 Hệ thống phát hiện xâm nhập 2
1.2.1.Hệ thống phát hiện xâm nhập cho mạng 2
1.2.2.Hệ thống phát hiện xâm nhập cho host 3
1.3 Kỹ thuật phát hiện xâm nhập 4
1.3.1.Phát hiện xâm nhập dựa trên chữ ký 4
1.3.2.Phát hiện xâm nhập dựa trên bất thường (Anomaly intrusion detection) 5
CHƯƠNG 2 Giới thiệu Security Onion 7
2.1 Giới thiệu 7
2.2 Các chức năng 7
2.2.1 Bắt tất cả gói tin (Full Packet Capture): 8
2.2.2.Phát hiện mạng và các điểm cuối: 9
2.2.3.Các công cụ phân tích 12
2.2.4 Các công cụ NIDS 19
2.2.5 Các công cụ hỗ trợ phân tích điểm cuối (Host Visibility) 20
CHƯƠNG 3 Cách thức hoạt động của Security Onion 21
3.1 Kiến trúc 21
3.1.1.Import 22
3.1.2.Evaluation 22
3.1.3.Standalone 23
3.1.4.Distributed 23
3.1.5.Các loại nodes 25
3.2.Cách thức hoạt động 25
3.2.1 IDS 26
3.2.2 IPS 26
3.3.Cài đặt 26
3.3.1.Yêu cầu phần cứng đối với Security Onion 26
3.3.2 Môi trường cài đặt 27
3.3.3.Các tác vụ cần thực hiện sau khi cài đặt xong: 28
CHƯƠNG 4 Luật trong Security Onion 30
4.1 Rule Header 31
Trang 34.1.1 Rule Action 31
4.1.2 Protocol 31
4.1.3 IP Address 32
4.1.4 Port 32
4.1.5 Điều hướng 32
4.2 Rule Option 33
4.2.1 General 33
4.2.2 Payload 35
4.2.3 Non-Payload 38
4.3: Add Local Rules 44
4.3.1.Giới thiệu 44
4.3.2.Chính sách IPS 44
4.3.3.Các bước thực hiện 45
CHƯƠNG 5 Ứng dụng Security Onion giám sát môi trường mạng doanh nghiệp 48
5.1 Các công cụ được sử dụng 48
5.1.1 Sguil 48
5.1.2 Wazuh 51
5.2 Sơ đồ môi trường demo giám sát/phát hiện xâm nhập 76
5.3 Các bước cài đặt Security Onion để thực hiện giám sát server theo mô hình môi trường demo trên 76
5.4 Thực hiện tấn công và phát hiện tấn công từ trong mạng, đưa ra cảnh báo/phân tích bằng Sguil 92
5.4.1 Phát hiện tấn công rà quét lỗ hổng 92
5.4.2 Phát hiện tấn công DOS 93
5.5. Các bước cài đặt Wazuh để thực hiện giám sát các điểm cuối trong mạng theo môi trường demo trên Ubuntu 98
5.5.1. Cài đặt Wazuh Server 98
5.5.2. Cài đặt Wazuh Agent 105
5.6 Demo Wazuh giám sát tính toàn vẹn của file (file integrity) 105
5.6.1 Tổng quan 105
5.6.2 Mô hình triển khai 106
5.6.3 Hướng dẫn cấu hình 107
Trang 4Danh mục hình ảnh
Ảnh 1.1 Vị trí hệ thống IDS trong sơ đồ mạng 2
Ảnh 1.2 Các NIDS được bố trí để giám sát phát hiện xâm nhập tại cổng vào và cho từng phân đoạn mạng 3
Ảnh 1.3 Sử dụng kết hợp NIDS và HIDS để giám sát lưu lượng mạng và các host 4
Ảnh 1.4 Lưu đồ giám sát phát hiện tấn công, xâm nhập dựa trên chữ ký 5
Ảnh 1.5 Biểu đồ tín hiệu entropy theo thời gian 6
Ảnh 2.1 Sơ đồ hoạt động của SO trong môi trường mạng doanh nghiệp truyền thống 8
Ảnh 2.2 Minh họa phát hiện tấn công trên cơ sở hệ thống mạng (NIDS) 9
Ảnh 2.3 Minh họa phát hiện tấn công dựa trên cơ sở hệ thống máy chủ/đầu cuối (HIDS) 11
Ảnh 2.4 Giao diện của SOC 12
Ảnh 2.5 Giao diện Hunt 12
Ảnh 2.6 Giao diện bắt và thu hồi gói tin của SOC 13
Ảnh 2.7 Giao diện Kibana 14
Ảnh 2.8 Giao diện Cyberchef 15
Ảnh 2.9 Giao diện CapME 16
Ảnh 2.10 Giao diện Squert 17
Ảnh 2.11 Giao diện Sguil 18
Ảnh 2.12 Giao diện Wireshark 18
Ảnh 3.1 Kiến trúc hoạt động tổng thể của Security Onion 21
Ảnh 3.2 Kiến trúc Evaluation 22
Ảnh 3.3 Kiến trúc Standalone 23
Ảnh 3.4 Kiến trúc Distributed 24
Ảnh 4.1 Cấu trúc luật trong Suricata 30
Ảnh 4.2 Ví dụ luật trong Suricata 30
Ảnh 4.3 Thông tin phân loại lớp quy tắc 35
Ảnh 4.4 Một số tuỳ chọn của Ipopts 38
Ảnh 4.5 Bảng Type của ICMP Header 42
Ảnh 4.6 Kiểm tra sguil để biết cảnh báo tương ứng 46
Ảnh 4.7 Xác minh payload 47
Ảnh 5.1 Giao diện Sguil 0.9.0 48
Ảnh 5.2 Barnyard nhận các cảnh báo từ Snort IDS, sử lý và lưu vào database 49
Ảnh 5.3 Tổng quan kiến trúc của Sguil 50
Ảnh 5.4 Tổng quan kiến trúc của Sguil (2) 51
Ảnh 5.5 Kiến trúc Single-node deployment của Wazuh 54
Ảnh 5.6 Kiến trúc Multi-node deployment của Wazuh 54
Ảnh 5.7 Sơ đồ giao tiếp giữa agent và server 55
Ảnh 5.8 Các file rule trong /var/ ossec/ruleset/rules 56
Ảnh 5.9 Rule liên quan đến ssh của hệ thống 0095-sshd_rules.xml 57
Ảnh 5.10 Cảnh báo hành vi đăng nhập sử dụng một non-existent user 57
Ảnh 5.11 Dữ liệu hiển thị trên Kibana dưới dạng Table 58
Ảnh 5.12 Dữ liệu hiển thị trên Kibana dưới dạng JSON 59
Ảnh 5.13 Các mức độ cảnh báo OSSEC 60
Ảnh 5.14 Luật OSSEC 61
Ảnh 5.15 Thông tin các file rule trong Wazuh 62
Ảnh 5.16 Các file rule của Windows 62
Ảnh 5.17 Các file Rules Linux 63
Trang 5Ảnh 5.18 Sơ đồ cấu trúc node Manager 64
Ảnh 5.19 Tạo bộ decoder mới trong file local_decoder.xml 66
Ảnh 5.20 Thêm thông tin cho rule vào đường dẫn 67
Ảnh 5.21 Kiểm tra rule 68
Ảnh 5.22 Sao chép decoders.xml 69
Ảnh 5.23 Loại bỏ decoders.xml bằng thẻ <decoder_exclude> 69
Ảnh 5.24 Rule có id 5710 70
Ảnh 5.25 Dán đoạn code rule id 5710 vào đường dẫn 71
Ảnh 5.26 Test rule vừa được sửa đổi 72
Ảnh 5.27 Các tham số trong thẻ <rule> 72
Ảnh 5.28 Rule id 5710 cũ 73
Ảnh 5.29 Các cảnh báo lặp lại 73
Ảnh 5.30 Thêm tham số ignore 74
Ảnh 5.31 Kết quả sao khi thêm tham số ignore vào rule 74
Ảnh 5.32 Rule id 5710 sử dụng noalert 74
Ảnh 5.33 Kết quả sau khi thay đổi 75
Ảnh 5.34 Sơ đồ demo giám sát phát hiện tấn công/xâm nhập 76
Ảnh 5.35 Cấu hình cài đặt máy ảo Security Onion trên máy server 77
Ảnh 5.36 Cài đặt Promiscuous Mode 78
Ảnh 5.37 Rà quét lỗ hổng máy server sử dụng công cụ Zenmap 92
Ảnh 5.38 Kết quả giám sát 93
Ảnh 5.39 Lệnh sửa file local.rules thông qua cửa sổ terminal 93
Ảnh 5.40 Thêm luật vào file local.rules 94
Ảnh 5.41 Thực hiện lệnh rule-update để cập nhật IDS ruleset 95
Ảnh 5.42 Thực hiện tấn công DOS trên máy Kali 96
Ảnh 5.43 Trạng thái website sau khi bị tấn công DOS 96
Ảnh 5.44 Giao diện Sguil hiện cảnh báo tấn công DOS thời gian thực cùng các thông tin liên quan .97 Ảnh 5.45 Cài đặt Wazuh-manager thành công 99
Ảnh 5.46 Thông báo cài đặt thành công Elasticsearch 101
Ảnh 5.47 Cài đặt thành công Filebeat 103
Ảnh 5.48 Giao diện quản trị Kibana của Wazuh-server 104
Ảnh 5.49 Sơ đồ cách thức hoạt động của FIM 106
Ảnh 5.50 Sơ đồ triển khai Wazuh manager/agent 107
Ảnh 5.51 Kiểm tra cấu hình giám sát FIM 108
Ảnh 5.52 File txt để thực hiện giám sát (1) 108
Ảnh 5.53 File txt để thực hiện giám sát (2) 108
Ảnh 5.54 Giao diện quản trị Wazuh-manager 109
Ảnh 5.55 Integrity monitoring trong Wazuh-manager 109
Ảnh 5.56 Kiểm tra tính toán vẹn của file txt (1) 110
Ảnh 5.57 Kiểm tra tính toán vẹn của file txt (2) 110
Trang 6Danh mục từ viết tắt
AF-PACKET Một socket trong các hệ điều hành nhân
Linux, cho phép ứng dụng gửi và nhận các gói tin
East-west traffic Lưu lượng truy cập trong 1 hệ thống trung
tâm dữ liệu
North-south traffic Lưu lượng truy cập từ bên ngoài đến trung
tâm dữ liệu(và ngược lại)
Language
(software repository được thiết kế cho ngườidùng Ubuntu)
Profiler
nguồn mở, dử dụng trong các tác vụ IT chủ động hướng sự kiện (event-driven IT automation), thi hành các tác vụ điều khiển
từ xa (remote task execution), quản lý cài đặt/cấu hình (configuration management) Cung cấp cách tiếp cận code-based với cơ
sở hạ tầng, các hệ thống cơ sở dữ liệu và các
hệ thống triển khai/quản lý, cài đặt/cấu hình
tự động, SecOps, cảnh báo rủi ro, công nghệđám mây
Trang 7SSH Secure Shell
“tickle”)[2]
(Transmission Control Protocol + Internet Potocol)
nền tảng, cung cấp các thành phần GUI cho nhiều ngôn ngữ lập trình khác nhau [3]
Description Format
Trang 8CHƯƠNG 1 Tổng quan về hệ thống phát hiện xâm nhập
- Giám sát lưu lượng mạng hoặc các hành vi trên một hệ thống để nhận dạng cácdấu hiệu của tấn công, xâm nhập
- Khi phát hiện các hành vi tấn công, xâm nhập, thì ghi logs các hành vi này chophân tích bổ sung sau này
- Gửi thông báo cho người quản trị về các các hành vi tấn công, xâm nhập đã pháthiện được
Thông thường hệ thống IDS thường được kết nối vào các bộ định tuyến, switch, cardmạng và chủ yếu làm nhiệm vụ giám sát và cảnh bảo, không có khả năng chủ động ngănchặn tấn công, xâm nhập
Trang 9Ảnh 1.1 Vị trí hệ thống IDS trong sơ đồ mạng
1.2 Hệ thống phát hiện xâm nhập
Hệ thống phát hiện xâm nhập IDS được chia thành hai loại chính đó là: Hệ thốngphát hiện xâm nhập cho mạng và hệ thống phát hiện xâm nhập cho host
1.2.1.Hệ thống phát hiện xâm nhập cho mạng
NIDS (Host-based IDS) phân tích lưu lượng mạng để phát hiện tấn công, xâmnhập cho cả mạng hoặc một phần mạng Trong một sơ đồ mạng, trong đó các NIDSthường được bố trí để giám sát phát hiện xâm nhập tại cổng vào và cho từng phân đoạnmạng
Trang 10Ảnh 1.2 Các NIDS được bố trí để giám sát phát hiện xâm nhập tại cổng vào và cho từng phân đoạn mạng
1.2.2.Hệ thống phát hiện xâm nhập cho host
HIDS (Host-based IDS) phân tích các sự kiện xảy ra trong hệ thống/dịch vụ đểphát hiện tấn công, xâm nhập cho hệ thống đó Trong một sơ đồ mạng các NIDS thường
sử dụng để giám sát lưu lượng tại cổng mạng và HIDS để giám sát các host thông qua cácIDS agent Một trạm quản lý (Management station) đƣợc thiết lập để thu nhập các thôngtin từ các NIDS và HIDS để xử lý và đưa ra quyết định cuối cùng
Trang 11Ảnh 1.3 Sử dụng kết hợp NIDS và HIDS để giám sát lưu lượng mạng và các host
1.3 Kỹ thuật phát hiện xâm nhập
Các kỹ thuật phát hiện xâm nhập được chia thành hai kỹ thuật chính đó là: pháthiện xâm nhập dựa trên chữ ký và phát hiện xâm nhập dựa trên bất thường
1.3.1.Phát hiện xâm nhập dựa trên chữ ký
Phát hiện xâm nhập dựa trên chữ ký (Signature-based intrusion detection) trước hếtcần xây dựng cơ sở dữ liệu các chữ ký, hoặc các dấu hiệu của các loại tấn công, xâmnhập đã biết Hầu hết các chữ ký, dấu hiệu được nhận dạng và mã hóa thủ công và dạngbiểu diễn thường gặp là các luật phát hiện (Detection rule) Bước tiếp theo là sử dụng cơ
sở dữ liệu các chữ ký để giám sát các hành vi của hệ thống, hoặc mạng, và cảnh báo nếuphát hiện chữ ký của tấn công, xâm nhập
Trang 12Ảnh 1.4 Lưu đồ giám sát phát hiện tấn công, xâm nhập dựa trên chữ ký
Ưu điểm lớn nhất của phát hiện xâm nhập dựa trên chữ ký là có khả năng phát hiệncác tấn công, xâm nhập đã biết một cách hiệu quả Ngoài ra, phương pháp này cho tốc độ
xử lý cao, đồng thời yêu cầu tài nguyên tính toán tương đối thấp Nhờ vậy, các hệ thốngphát hiện xâm nhập dựa trên chữ ký được ứng dụng rộng rãi trong thực tế Tuy nhiên,nhược điểm chính của phương pháp này là không có khả năng phát hiện các tấn công,xâm nhập mới, do chữ ký của chúng chưa tồn tại trong cơ sở dữ liệu các chữ ký Hơnnữa, nó cũng đòi hỏi nhiều công sức xây dựng và cập nhật cơ sở dữ liệu chữ ký, dấu hiệucủa các tấn công, xâm nhập
1.3.2.Phát hiện xâm nhập dựa trên bất thường (Anomaly intrusion detection)
Phát hiện xâm nhập dựa trên bất thường (Anomaly intrusion detection) dựa trên giảthiết: các hành vi tấn công, xâm nhập thường có quan hệ chặt chẽ với các hành vi bấtthường Quá trình xây dựng và triển khai một hệ thống phát hiện xâm nhập dựa trên bấtthường gồm 2 giai đoạn: là huấn luyện và là phát hiện
- Giai đoạn huấn luyện: Hồ sơ (profile) của đối tượng trong chế độ làm việc bìnhthường được xây dựng Để thực hiện giai đoạn huấn luyện này, cần giám sát đốitượng trong một khoảng thời gian đủ dài để thu thập được đầy đủ dữ liệu mô tảcác hành vi của đối tượng trong điều kiện bình thường làm dữ liệu huấn luyện
Trang 13Tiếp theo, thực hiện huấn luyện dữ liệu để xây dựng mô hình phát hiện, hay hồ sơcủa đối tượng
- Giai đoạn đoạn phát hiện: Thực hiện giám sát hành vi hiện tại của hệ thống vàcảnh báo nếu có khác biệt rõ nét giữa hành vi hiện tại và các hành vi lưu trong hồ
sơ của đối tượng
Ảnh 1.5 Biểu đồ tín hiệu entropy theo thời gian
Giá trị entropy của IP nguồn của các gói tin từ lưu lượng hợp pháp (phần giá trị cao, đều)
và entropy của IP nguồn của các gói tin từ lưu lượng tấn công DDoS (phần giá trị thấp)Hình trên biểu diễn giá trị entropy của IP nguồn của các gói tin theo cửa sổ trượt từ lưulượng bình thường và entropy của IP nguồn của các gói tin từ lưu lượng tấn công DDoS
Có thể thấy sự khác biệt rõ nét giữa giá trị entropy của lưu lượng bình thường và lưulượng tấn công và như vậy, nếu một ngưỡng entropy được chọn phù hợp ta hoàn toàn cóthể phát hiện sự xuất hiện của cuộc tấn công DDoS dựa trên sự thay đổi đột biến của giátrị entropy
Ưu điểm của phát hiện xâm nhập dựa trên bất thường là có tiềm năng phát hiện các loạitấn công, xâm nhập mới mà không yêu cầu biết trước thông tin về chúng Tuy nhiên,phương pháp này có tỷ lệ cảnh báo sai tương đối cao so với phương pháp phát hiện dựatrên chữ ký Điều này làm giảm khả năng ứng dụng thực tế của phát hiện xâm nhập dựatrên bất thường Ngoài ra, nó cũng tiêu tốn nhiều tài nguyên hệ thống cho việc xây dựng
hồ sơ đối tượng và phân tích hành vi hiện tại
Trang 14CHƯƠNG 1 Giới thiệu Security Onion
2.1 Giới thiệu
Security Onion (SO) là một phiên bản của Linux được thiết kế để phát hiện xâmnhập và giám sát an toàn mạng Bộ công cụ này dựa trên Xubuntu 10.04, gồm Snort,Suticata, Sguil, Squert, Snorby, Bro, NetworkMiner, Xplico, và nhiều các công cụ antoàn khác Đây là bộ công cụ rất hữu dụng trong giảng dạy và học tập, ngoài ra SecurityOnion còn được sử dụng cho các văn phòng và mạng lưới cá nhân
2.2 Các chức năng
Trong sơ đồ bên dưới, có thể thấy Security Onion trong môi trường mạng doanh nghiệp sẽ bao gồm tường lửa, máy trạm và máy chủ Người quản trị có thể sử dụng Security Onion để theo dõi lưu lượng truy cập từ phía bên ngoài trung tâm dữ liệu
(North-south traffic) để phát hiện kẻ xâm nhập một môi trường mạng, thiết lập lệnh và kiểm soát (Command and Control) hoặc có thể là xâm nhập dữ liệu Người quản trị cũng
có thể muốn theo dõi lưu lượng truy cập trong 1 trung tâm dữ liệu (East-west traffic) để
để phát hiện các động thái có nguy cơ từ bên trong Do ngày càng nhiều lưu lượng truy nhập trong mạng được mã hóa, việc khắc phục những điểm mù tới từ việc đó bằng cách bằng khả năng hiển thị bổ sung dưới dạng chuẩn đoán thiết bị đầu cuối (endpoint
telemetry) là rất quan trọng Security Onion có thể sử dụng được nhật ký (logs) từ các máy chủ và máy trạm, sau đó có thể tìm kiếm bao quát toàn bộ môi trường mạng và nhật
ký lưu trữ của máy chủ cùng một lúc
Trang 15Ảnh 2.6 Sơ đồ hoạt động của SO trong môi trường mạng doanh nghiệp truyền thống
Security Onion có ba chức năng cốt lõi chính:
2.2.1 Bắt tất cả gói tin (Full Packet Capture):
Bắt tất cả gói tin được thực hiện thông qua công cụ Stenographer
Stenographer là công cụ hỗ trợ bắt gói tin cho các gói dữ liệu đệm đến ổ đĩa, nhằmmục đích phát hiện xâm nhập và giúp người quản trị có thể có các động thái kịp thời khi phát hiện ra hiện tượng xâm nhập Stenographer cung cấp cơ chế cài đặt
Trang 16đọc và ghi các gói tin bắt được từ network adapter (card mạng) ra ổ đĩa disk packet writing), xử lý ngoại lệ khi ổ đĩa hết dung lượng bằng cách xóa bớt cácgói tin đi, cung cấp các phương thức để có thể đọc lại các gói tin cụ thể, nhanh chóng Sternographer sử dụng AP-PACKET để có thể thực hiện gửi và nhận các gói tin.
(NIC-to-2.2.2.Phát hiện mạng và các điểm cuối:
Phát hiện mạng và đầu cuối (network and endpoint detection) phân tích lưu lượng
gói tin trong mạng hoặc hệ thống máy chủ, đồng thời cung cấp dữ liệu nhật ký (các bản ghi log) và cảnh báo cho các sự kiện và hoạt động được phát
hiện Security Onion cung cấp nhiều tùy chọn:
Ảnh 2.7 Minh họa phát hiện tấn công trên cơ sở hệ thống mạng (NIDS)
Trang 17o NIDS hướng theo quy tắc (Rule-driven NIDS) Để phát hiện xâm nhập mạng theo quy tắc, Security Onion 2 sử dụng Suricata Hệ thống dựa trên quy tắc xem xét lưu lượng mạng để tìm dấu vân tay và số nhận dạng khớp với lưu lượng độc hại, bất thường hoặc đáng ngờ.
o NIDS hướng phân tích Để phát hiện xâm nhập mạng theo hướng phân tích (analysis-driven network intrusion detection), Security Onion cung cấp công cụ Zeek Zeek giám sát hoạt động mạng và ghi vào nhật ký (log) mọi kết nối, yêu cầu DNS, dịch vụ mạng và phần mềm được phát hiện, chứng chỉ SSL và hoạt động HTTP, FTP, IRC, SMTP, SSH, SSL và Syslog mà nónhìn thấy, cung cấp khả năng hiển thị đầy đủ và thiết thực trong ngữ cảnh
dữ liệu và sự kiện xảy ra với chúng bên trong môi trường mạng Ngoài ra, Zeek bao gồm các bộ phân tích cho nhiều giao thức phổ biến, và mặc định
có khả năng kiểm tra tổng MD5 cho các lần tải xuống tệp HTTP chống lại
dự án Đăng ký phần mềm mã độc của Team Cymru (Team Cymru’s
Malware Hash Registry project) Ngoài hoạt động ghi nhật ký và phân tích lưu lượng, Zeek cung cấp nhiều giải pháp cho việc mở rộng để phân tích dữliệu mạng trong thời gian thực Khung đầu vào cho phép cung cấp dữ liệu vào Zeek, có thể được script theo một bộ lọc nào đó, ví dụ, để đọc một file CSV của một nhân viên cấp quản lý và so sáng tương khắc của nó với các hoạt động khác trong mạng, ví dụ như hoạt động tải một file thực thi
(executable file) từ mạng internet xuống Framework phân tích dữ liệu cungcấp các cách thức phân tích dữ liệu độc lập về giao thức, cho phép bắt dữ liệu khi chúng đi qua môi trường mạng và tự động chuyển chúng vào môi trường sandbox hoặc một file chia sẻ kiểm tra vi-rút
Trang 18Ảnh 2.8 Minh họa phát hiện tấn công dựa trên cơ sở hệ thống máy chủ/đầu cuối (HIDS)
HIDS mã nguồn mở, miễn phí cho Windows, Linux và Mac OS X Khi thêm
bộ lọc/bộ quét của Wazuh vào các điểm cuối trên mạng, người quản trị có thể nắm bắt được các thông tin có giá trị từ các điểm cuối (endpoint) đến các điểm thoát (exit) trong môi trường mạng Wazuh thực hiện phân tích nhật ký, kiểm tra tính toàn vẹn của tệp, 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 hồi chủ động Một bổ sung mới cho Security Onion 2 là osquery – một công cụ mã nguồn mở miễn phí khác có chức năng tương
tự Ngoài ra, Security Onion có thể thu thập dữ liệu thông qua Syslog hoặc Beats
Trang 192.2.3.Các công cụ phân tích
Ảnh 2.9 Giao diện của SOC
Ảnh 2.10 Giao diện Hunt
Trang 20Ảnh 2.11 Giao diện bắt và thu hồi gói tin của SOC
Security Onion Console (SOC): Nó bao gồm một giao diện cảnh báo mới
cho phép người quản trị xem tất cả các cảnh báo NIDS và HIDS SecurityOnion Console (SOC) cũng bao gồm một giao diện Hunt mới để săn tìmmối đe dọa, cho phép người quản trị truy vấn không chỉ cảnh báo NIDS /HIDS mà còn cả nhật ký Zeek và nhật ký hệ thống Security Onion Console(SOC) cũng bao gồm một giao diện để truy xuất toàn bộ gói tin (PCAP)
TheHive: TheHive là giao diện quản lý case Khi đang làm việc với Alerts,
Hunt hoặc Kibana, người quản trị có thể tìm thấy các cảnh báo hoặc bản ghitiềm ẩn nguy cơ để gửi tới TheHive và tạo case
Trang 21Ảnh 2.12 Giao diện Kibana
Kibana: Kibana, được tạo ra bởi nhóm tại Elastic, cho phép nhanh chóng
phân tích và xoay vòng giữa tất cả các loại dữ liệu khác nhau do SecurityOnion tạo ra thông qua một “ô kính duy nhất” (“single pane of glass”.) Nókhông chỉ bao gồm cảnh báo NIDS / HIDS mà còn cả nhật ký Zeek và nhật
ký hệ thống được thu thập thông qua nhật ký hệ thống hoặc phương tiệntruyền tải đại lý khác Kibana có thể xoay vòng để chụp toàn bộ gói thôngqua Security Onion Console (SOC)
Trang 22Ảnh 2.13 Giao diện Cyberchef
CyberChef cho phép giải mã, giải nén và phân tích các đoạn mã/dữ liệu Playbook: Playbook là một ứng dụng web cho phép tạo Detection
Playbook Các Detection Playbook mô tả các khía cạnh khác nhau xungquanh chiến lược phát hiện tấn công cụ thể
Trang 23Ảnh 2.14 Giao diện CapME
CapME: một ứng dụng web cho phép:
Trang 24Ảnh 2.15 Giao diện Squert
Squert: một ứng dụng web được sử dụng để thực hiện các câu lệnh truy vấn (querry) và
xem các sự kiện từ log thu thập được trong cơ sở dữ liệu của Sguil (các cảnh báo IDS):
Ảnh 2.16 Giao diện Sguil
Trang 25Sguil: một ứng dụng phân tích/giám sát mạng, có GUI, cung cấp khả năng bắt và truy cập
các sự kiện thời gian thực, bắt toàn bộ gói tin và các dữ liệu phiên (session data) Sguil là một công cụ NSM và cũng là một công cụ phân tích hướng sự kiện (event driven)
Ảnh 2.17 Giao diện Wireshark
Wireshark: một ứng dụng phân tích dựa trên giao thức mạng rất phổ biến.
2.2.4 Các công cụ NIDS
Các công cụ NIDS là các công cụ giám sát, phát hiện xâm nhập hệ thốngmạng, bắt được các hành động khả nghi cụ thể và đưa ra các cảnh báo dựa vào luật(rule)
Security Onion có thể sử dụng Snort hoặc Suricata làm NIDS engine Trongquá trình setup, nếu tích chọn “Evaluation Mode”, Security Onion sẽ mặc địnhNIDS engine là Snort Các phiên bản cài đặt khác mặc định sử dụng Suricata trongchế độ AF_PACKET
Các cảnh báo NIDS có thể được phân tích kĩ hơn bằng các công cụ: Squert,Kibana, Sguil
sudo so-sensor-stop sudo sed -i 's|ENGINE=snort|ENGINE=suricata|g' /etc/nsm/securityonion.conf
Trang 26sudo rule-update sudo so-sensor-start
sudo so-sensor-stop sudo sed -i 's|ENGINE=suricata|ENGINE=snort|g' /etc/nsm/securityonion.conf
sudo rule-update sudo so-sensor-start
Suricata trong môi trường phân tán Salt:
sudo so-sensor-stop sudo sed -i 's|ENGINE=snort|ENGINE=suricata|g' /etc/nsm/securityonion.conf
sudo rule-update sudo so-sensor-start
#The remaining commands assume all sensor hostnames contain
"
securityonionsensor"
sudo salt '*securityonionsensor*' cmd.run 'so-sensor-stop' sudo salt '*securityonionsensor*' cmd.run 'sed -i " s|ENGINE=snort| ENGINE=suricata|g" /etc/nsm/securityonion.conf'
sudo salt '*securityonionsensor*' state.highstate sudo salt '*securityonionsensor*' cmd.run 'so-sensor-start'
Một số NIDS trong Security Onion:
2.2.5 Các công cụ hỗ trợ phân tích điểm cuối (Host Visibility)
Security Onion có thể sử dụng nhiều cách khác nhau để thu thập, phân tích bản ghi
từ các điểm cuối (end point) trong mạng Security Onion sử dụng các công cụ như:
Wazuh là một HIDS miễn phí, mã nguồn mở dành cho Windows, Linux
và Mac OS X Khi thêm Wazuh agent vào các điểm cuối (end points)
Trang 27trên hệ thống mạng, người quản trị có thể quan sát được từ điểm cuối (end point) đến điểm thoát (exit point) Wazuh thực hiện phân tích các bản ghi (log), kiểm tra tính toàn vẹn của file, giám sát theo chính sách, phát hiện rootkit, cảnh báo thời gian thực và phản hồi chủ động.
Trang 28CHƯƠNG 2 Cách thức hoạt động của Security Onion
3.1 Kiến trúc
Để triển khai Security Onion có rất nhiều kiểu triển khai tùy thuộc vào mục đích sử dụng
từ một máy ảo nhỏ hay đến một hệ thống doanh nghiệm lớp hơn Dựa trên mục đíchngười ta chia Security Onion thành các kiến trúc sau:
Trang 29Kiến trúc đơn giản nhất là Import node Import node là một node độc lập chạy vừa đủ cácthành phần để có thể nhập pcap bằng cách sử dụng so-import-pcap Khi người quản trịchạy so-import-pcap, nó sẽ phân tích pcap bằng cách sử dụng Suricata và Zeek và cácbản ghi kết quả được Filebeat thu thập và gửi đến Elasticsearch nơi chúng được phân tích
cú pháp và lập chỉ mục Sau đó, người quản trị có thể xem các nhật ký đó trong SecurityOnion Console (SOC)
3.1.2.Evaluation
Kiến trúc tiếp theo là Evaluation Nó phức tạp hơn một chút so với Import vì nó có giaodiện mạng dành riêng cho việc đánh giá lưu lượng truy cập trực tiếp từ TAP hoặc SPANport Các quy trình giám sát lưu lượng truy cập trên niffing interface và tạo nhật ký.Filebeat thu thập các bản ghi đó và gửi chúng trực tiếp đến Elasticsearch nơi chúng đượcphân tích cú pháp và lập chỉ mục Chế độ Evaluation được thiết kế để cài đặt nhanhchóng để tạm thời kiểm tra Security Onion Nó hoàn toàn không được thiết kế để sử dụngtrong sản xuất
Trang 31Ảnh 3.20 Kiến trúc Standalone
3.1.4.Distributed
Triển khai phân tán tiêu chuẩn bao gồm một manager node, một hoặc nhiều forwardnodes chạy các thành phần cảm biến mạng và một hoặc nhiều search nodes chạy cácthành phần Tìm kiếm đàn hồi Kiến trúc này có thể trả trước nhiều hơn, nhưng nó cungcấp khả năng mở rộng và hiệu suất cao hơn, vì người quản trị có thể chỉ cần thêm nhiềunút hơn để xử lý nhiều nguồn lưu lượng truy cập hoặc nhật ký hơn Kiến trúc này có thểtrả trước nhiều hơn, nhưng nó cung cấp khả năng mở rộng và hiệu suất cao hơn, vì ngườiquản trị có thể chỉ cần thêm nhiều nút hơn để xử lý nhiều nguồn lưu lượng truy cập hoặcnhật ký hơn Đây là loại kiến trúc được khuyên dùng
Có tùy chọn chỉ sử dụng hai loại nút - manager node và một hoặc nhiều heavy nodes , tuynhiên, điều này không được khuyến nghị vì lý do hiệu suất và chỉ nên được sử dụng chomục đích thử nghiệm hoặc trong môi trường thông lượng thấp
Trang 32Ảnh 3.21 Kiến trúc Distributed
Khi triển khai có thể rùy chọn sử dụng hai loại node đó là manager node và một hoặcnhiều heavy node Tuy nhiên, khuyến nghị không nên sử dụng heavy node vì hiệu xuấtthấp và chỉ sử dụng cho mục đích kiểm tra hoặc môi trường thông lượng thấp
- Khuyến nghị chỉ triển khai nếu tiêu chuẩn distribute không thể triển khai được
- Kiến trúc bao gồm một manager node và một hoặc nhiều heavy nodes
3.1.5.Các loại nodes
a Manager
Manager node chạy bản sao Elasticsearch trong local , quản lý cấu hình tìm kiếm nhiềucụm để triển khai Điều này bao gồm cấu hình cho các heavy nodes và search nodes (nếucó), nhưng không phải forward nodes, vì chúng không chạy các thành phần của ElasticStack Một nhà phân tích kết nối với máy chủ từ một máy trạm khách (thường là cài đặt
Trang 33máy ảo Security Onion) để thực hiện các truy vấn và truy xuất dữ liệu Một managernode chạy các thành phần sau: Elasticsearch, Logstash, Kibaba, Curator, Elastalert,Redis, Wazuh.
b Forward Node
Khi sử dụng một forward node, thành phần Elastic Stack không được cài đặt Filebeatchuyển tiếp tất cả các logs tới Logstash trên manager node, nơi chúng được lưu trữ trongElasticsearch trên manager node hoặc một search node Từ đó dữ liệu có thể được truyvấn thống qua việc sử dụng tìm kiếm nhiều cụm
Forward node chay các thành phần: Zeek, Suricata, Stenographer, Wazuh
c Search Node
Khi sử dụng một search node, Security Onion thực hiện triển khai phân tán sử dụng tìmkiếm chéo chụm của Elasticsearch Khi chúng ta cài đặt và chọn Search node, nó sẽ tạomột local Elasticsearch và sau đó cấu hình manager node để truy vấn phiên bản đó Điềunày được thực hiện bằng cách cập nhật _cluster/settings trên manager node vì thế nó sẽtruy vấn phiên bản local Elasticsearch
Search nodes chủ yếu thu thập các logs từ các node khác và lưu trữ chúng để tìm kiếm.Search nodes chạy các thành phần: Elasticsearch, Logstash, Curator, Wazuh
d Heavy node
Tương tự như search node, heavy node mở rộng lưu trữ và xử lý các manager node Tuynhiên, các heavy node cũng thực hiện các nhiệm vụ của cảm biến và do đó có hiệu suấttổng thể thấp hơn
Heavy node chạy các thành phần: Elasticsearch, Logstash, Curator, Zeek, Suricata,
Kiến trúc của IDS bao gồm:
thống
Trang 34 Hệ thống phân tích: phát hiện tấn công và các hành vi đáng nghi dựa trên hệ thống cảm biến
bảo mật và kiểm tra các sự kiện/bản ghi từ hệ thống phân tích3.2.2 IPS
kiện liên quan đến bảo mật hệ thống và lưu chúng vào trong các file nhật ký (log), đồng thời các cảnh báo cũng sẽ được xuất hiện dưới dạng cửa sổ hoặc thông qua một đường dẫn nào đó tới người quản trị hệ thống
thống IPS là mở rộng của các hệ thống IDS, do chúng có thể phản ứng với những sự kiện hay cuộc tấn công xảy ra trong thời gian thực, có thể bằng các hủy bỏ hoặc cấu hình lại tường lửa, hoặc chặn lưu lượng truy cập từ nguồn gốc tấn công Việc phản ứng chủ động này có thể được thực hiện một cách tự động hoặc thông qua các lệnh thực thi
Security Onion không hỗ trợ IPS
3.3.Cài đặt
3.3.1.Yêu cầu phần cứng đối với Security Onion
Security Onion 2 như một import node):
o 4GB RAM
o 2 nhân CPU
o 200GB không gian lưu trữ
o 12GB RAM
o 4 nhân CPU
o 200GB không gian lưu trữ
RAM, yêu cầu này sẽ gia tăng khi người quản trị giám sát và thu thập được thêm nhiều lưu lượng mạng và thu thập được thêm nhiều bản ghi (log)
không mong muốn, nhằm bảo vệ cho database của Security Onion không bị
hư hại trong quá trình giám sát mạng
Trang 35 NIC:
o Ít nhất 1 kết nối có dây kết nối tới môi trường mạng cần giám sát, nên là kết nối có địa chỉ IP tĩnh (static) Kết nối không dây vẫn có thể được sử dụng, nhưng sẽ không được hỗ trợ tốt, do Security Onion được thiết kế để sử dụng với kết nối có dây
o Security Onion yêu cầu ít nhất 1 network interface để thực hiện sniffing (kết nối tới PAT hoặc SPAN port) Network interface này nên là một thiết bị khác để tránh gây xung đột phần cứng trong máy Security Onion Network interface ảo hóa (virtualized) cũng có thể được sử dụng, nhưng hãy cân nhắc cân bằng phân bố tài nguyên để
hệ thống có thể hoạt động ổn định
o Nếu sử dụng Security Onion từ file ISO image, việc phân vùng không gian lưu trữ đã dược thực hiện trước
3.3.2 Môi trường cài đặt
securityonionsolutions.com/), hoặc tải về ISO image của Ubuntu (bản 16.04trở lên) và thực hiện cài đặt/thêm các Security Onion PPA và các package liên quan
Việc này sẽ rất hữu ích khi người sử dụng có thể thay đổi một cài đặtnào đó, hiểu trạng thái thay đổi sau khi cài đặt và có thể chuyển đổi
về trạng thái cũ (theo snapshot đã lưu)
Trang 363.3.3.Các tác vụ cần thực hiện sau khi cài đặt xong:
thiết bị:
o Xác nhận các server có hoạt động hay không bằng lệnh terminal:
sudo so-status
o Nếu có bất kì một service nào hiển thị không hoạt động, khởi động lại bằng
lệnh:
sudo so-start
o Đăng nhập vào Sguil, Squert, hoặc Kibana và xác nhận các công cụ đó có
ghi nhận được các log Nếu không hiển thị một IDS arlert nào, có thể kiểm tra IDS bằng câu lệnh terminal sau (yêu cầu có đường truyền internet):
curl http://testmyids.com
o Thêm người dùng mới bằng câu lệnh:
sudo so-user-add
o Trên hệ thống sử dụng cơ sở dữ liệu của Sguil, biến số DAYSTOKEEP
trong file config /etc/nsm/securityonion.conf cho phép người quản trị quyết
định bản ghi chỉ có thể được lưu trữ trong bộ nhớ trong vòng bao nhiêu ngày, mặc định được cài đặt là 30
o Cài đặt định dạng HOMENET: mặc định là chuẩn RFC1918
(192.168.0.0/16, 10.0.0.0/8,172.16.0.0/12), người quản trị có thể sẽ phải càiđặt lại nếu phải quản lý dải IP khác chuẩn RFC1918 File cài đặt cấu hình
sensor có thể được tìm thấy ở đường dẫn
/etc/nsm/$HOSTNAME-$INTERFACE/ Sửa file snort.conf hoặc suricata.yaml (phụ thuộc vào lựa
chọn IDS engine của người quản trị trong quá trình cài đặt) và cập nhật biến số HOME_NET (có thể thêm cả EXTERNAL_NET) Sau đó, cập nhật
file cài đặt/cấu hình của Zeek tại đường dẫn /opt/bro/etc/networks.cfg
Cuối cùng, khởi động lại sensor bằng lệnh:
sudo so-sensor-restart
o
o Cài đặt cảnh báo qua email
Trang 37o Cài đặt version control
o Cài đặt remote desktop đến server/sensor
Trang 38CHƯƠNG 3 Luật trong Security Onion
Ở các phiên bản cũ của Security Onion, chúng ta có thể lựa chọn Snort hoặcSuricata làm hệ thống phát hiện xâm nhập mạng (NIDS) Nhưng ở phiên bản SecurityOnion mới nhất (Security Onion 2), Snort được loại bỏ, vì vậy Suricata là hệ thống pháthiện xâm nhập mạng cho Security Onion Chính vì vậy, phần tìm hiểu về luật dưới đây sẽtập trung vào luật của Suricata
Một luật trong Suricata được chia thành hai phần đó là phần Rule header và Ruleoptions Phần Rule header bao gồm: Rule Action, Protocol, địa chỉ IP nguồn, địa chỉ IPđích, Subnetmask, Port nguồn, Port đích Phần Rule options bao gồm các thông điệp cảnhbáo, thông tin các phần của gói tin sẽ được kiểm tra để xác định xem hành động nào sẽđược áp dụng
Ảnh 4.22 Cấu trúc luật trong Suricata
Cấu trúc luật trong Suricata
Ảnh 4.23 Ví dụ luật trong Suricata
Để cập nhật rule cho master server, trong cửa sổ terminal, chạy lệnh:
sudo rule-update
Nếu triển khai theo mô hình phân tán với Salt và chạy rule-update trên máy server, thì
rule mới sẽ được cập nhật từ server đến các sensor trong vòng 15 phút., hoặc cũng có thể
ép sensor phải thực hiện update ngay lập tức bằng cách sử dụng lệnh sau:
Trang 39sudo salt '*' state.highstate
Nếu triển khai theo mô hình phân tán không có Salt và chạy rule-update trên máy server,
thì rule mới sẽ được cập nhật từ server đến các sensor sau một khoảng thời gian, hoặc cũng có thể ép sensor phải thực hiện update ngay lập tức bằng cách sử dụng lệnh sau:
Pass: nếu signature được so sánh trùng khớp và chỉ ra là pass thì Suricata sẽ
thực hiện dừng quét gói tin và bỏ qua tất cả các luật phía sau đối với gói tinnày
Drop: nếu chương trình tìm thấy một signature hợp lệ và nó chỉ ra là drop thì
gói tin đó sẽ bị hủy bỏ và dừng truyền ngay lập tức, khi đó gói tin không thểđến được nơi nhận
Reject: là hành động bỏ qua gói tin, bỏ qua ở cả bên nhận và bên gửi.
Suricata sẽ tạo ra một cảnh báo với gó i tin này
Alert: nếu signature được sánh là hợp lệ và có chứa một alert thì gói tin đó
sẽ được xử lý giống như với một gói tin không hợp lệ Suricata sẽ tạo ra mộtcảnh báo
4.1.2 Protocol
Trường tiếp theo trong luật đó là protocol Các giao thức mà Suricata hiện đangphân tích các hành vi bất thường đó là TLS, SSH, SMTP (tải thư điện tử qua mạng
Trang 40internet), IMAP (đặt sự kiểm soát email trên mail server), MSN, SMB (chia sẻ file), TCP,UDP, ICMP và IP, DNS.
4.1.3 IP Address
Mục tiếp theo của phần header đó là địa chỉ IP Các địa chỉ này dùng để kiểm tranơi đi và nơi đến của một gói tin Địa chỉ ip đó có thể là địa chỉ của một máy đơn hoặccũng có thể là địa chỉ của một lớp mạng Từ khóa “any” được sử dụng để định nghĩa mộtđịa chỉ bất kỳ
Một địa chỉ ip sẽ được viết dưới dạng ip_address/netmask Điều này có nghĩa lànếu netmask là /24 thì lớp mạng đó là lớp mạng C, /16 là lớp mạng B hoặc /32 là chỉ mộtmáy đơn Ví dụ: địa c hỉ 192.168.1.0/24 có nghĩa là một dải máy có địa chỉ IP từ192.168.1.1-192.168.1.255
Trong hai địa chỉ IP trong một luật Suricata thì sẽ có một địa chỉ IP nguồn và mộtđịa chỉ IP đích Việc xác định đâu là địa chỉ nguồn, đâu là địa chỉ đích phụ thuộc vào
“→”
Ngoài ra toán tử phủ định có thể được áp dụng cho việc định địa chỉ IP Có nghĩa
là khi sử dụng toán tử này thì Suricata sẽ bỏ qua việc kiểm tra địa chỉ của gói tin đó Toán
tử đó là “!” Ngoài ra ta có thể định nghĩa một danh sách các địa chỉ IP bằng cách viếtliên tiếp chúng cách nhau bởi một dấu “,”
Ví dụ:
Alert TCP any any → ![192.168.1.0/24, 172.16.0.0/16] 80 (msg: “Access”)
4.1.4 Port
Port có thể được định nghĩa bằng nhiều cách Với từ khóa “any” giống như địa
chỉ IP để chỉ có thể sử dụng bất kỳ port nào Gán một port cố định, ví dụ như gán kiểmtra ở port 80 http hoặc port 22 ssh Ngoài ra ta cũng có thể sử dụng toán tử phủ định để
bỏ qua một port nào đó hoặc liệt kê một dải các port
Ví dụ:
Alert UDP any any → 192.168.1.0/24 1:1024 => port bất kỳ tới dãy port từ 1 - 1024 Alert UDP any any → 192.168.1.0/24 :6000 => port bất kỳ tới dãy port nhỏ hơn 6000.