You are on page 1of 192

BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KỸ THUẬT MẬT MÃ

ThS. PHẠM DUY TRUNG, KS. HOÀNG THANH NAM

GIÁO TRÌNH

THU THẬP VÀ PHÂN TÍCH THÔNG TIN AN NINH MẠNG

HÀ NỘI, 2013

1
BAN CƠ YẾU CHÍNH PHỦ

HỌC VIỆN KỸ THUẬT MẬT MÃ

ThS. PHẠM DUY TRUNG, KS. HOÀNG THANH NAM

GIÁO TRÌNH

THU THẬP VÀ PHÂN TÍCH THÔNG TIN AN NINH MẠNG

HÀ NỘI, 2013

2
MỤC LỤC

CHƯƠNG 1 GIỚI THIỆU VỀ THU THẬP VÀ PHÂN TÍCH THÔNG


TIN AN NINH MẠNG.....................................................................................6

1.1 KHÁI NIỆM..................................................................................6

1.2 MỤC ĐÍCH, VAI TRÒ, Ý NGHĨA VÀ YÊU CẦU.....................6

1.2.1 Mục đích.................................................................................6

1.2.2 Vai trò, ý nghĩa.......................................................................9

1.2.3 Yêu cầu.................................................................................12

1.3 PHÂN LOẠI DỮ LIỆU THU THẬP..........................................13

1.3.1 Thông tin..............................................................................13

1.3.2 Gỡ lỗi....................................................................................13

1.3.3 Thông báo.............................................................................13

1.3.4 Lỗi........................................................................................14

1.3.5 Cảnh báo...............................................................................15

1.4 GIỚI THIỆU MỘT SỐ CÔNG CỤ, GIAO THỨC, ĐỊNH DẠNG
CHO THU THẬP VÀ PHÂN TÍCH THÔNG TIN AN NINH MẠNG.....16

1.4.1 Wireshark.............................................................................16

1.4.2 tshark....................................................................................25

CHƯƠNG 2 THIẾT LẬP HỆ THỐNG THU THẬP THÔNG TIN AN


NINH MẠNG..................................................................................................27

2.1 Kiến trúc và thành phần hệ thống...............................................28

2.1.1 Thu thập trên host.................................................................28

3
2.2.2 Thu thập trên mạng..............................................................29

2.2 Mô hình triển khai.......................................................................29

2.2.1 Triển khai chủ động.............................................................29

2.2.2 Triển khai thụ động..............................................................30

2.2.3 Honeypot/Honeynet.............................................................38

2.3.2 Phương thức thu thập sự kiện...............................................49

CHƯƠNG 3. QUY TRÌNH THU THẬP VÀ PHÂN TÍCH.................53

3.1 Thu thập và tập hợp dữ liệu.........................................................53

3.2 Sàng lọc, chuẩn hóa và tương quan dữ liệu................................55

3.3 Phân tích dữ liệu..........................................................................61

3.4 Tổng hợp và lập báo cáo.............................................................67

CHƯƠNG 4. KỸ THUẬT PHÂN TÍCH CƠ BẢN..............................74

4.1 Phân tích gói tin..........................................................................74

4.1.1 Phân tích giao thức...............................................................74

4.1.2 Phân tích nội dung gói tin....................................................81

4.2 Phân tích luồng dữ liệu................................................................85

4.2.1 Lọc dữ liệu...........................................................................86

4.2.2 Lựa chọn các giá trị nổi bật..................................................86

4.2.3 Chuẩn đoán...........................................................................86

4.3 Phân tích nhật ký sự kiện..........................................................102

4.4.1 Phân tích sự kiện trong hệ thống Windows........................104

4.4.2 Phân tích sự kiện trong hệ thống UNIX/Linux..................114

CHƯƠNG 5 KỸ THUẬT PHÂN TÍCH NÂNG CAO.......................127

5.1 Phân tích thống kê.....................................................................127


4
5.1.1 Phân tích tần suất...............................................................128

5.1.2 Đường cơ sở (Baseline)......................................................128

5.1.3 Học máy (Machine Learning)............................................132

5.2 Khai phá dữ liệu nhật ký...........................................................136

5.2.1 Khái niệm khai phá dữ liệu................................................136

5.2.2 Khai phá dữ liệu nhật ký....................................................136

5.2.3 Quá trình khai phá dữ liệu..................................................137

5.2.4 Kỹ thuật phân tích bản ghi.................................................138

5.3 Phân tích dữ liệu trên WLAN...................................................145

5.3.1 Phân tích phổ......................................................................149

5.3.2 Thu thập dữ liệu thụ động trên mạng không dây...............150

5.3.3 Phân tích giao thức 802.11.................................................151

TÀI LIỆU THAM KHẢO...................................................................171

PHỤ LỤC............................................................................................172

5
CHƯƠNG 1 GIỚI THIỆU VỀ THU THẬP VÀ PHÂN TÍCH
THÔNG TIN AN NINH MẠNG

1.1 KHÁI NIỆM


Thông tin an ninh mạng là những thông tin ghi lại các hoạt động của
hệ thống mạng
giúp người quản trị mạng khám phá ra nguồn gốc của các tấn công an
ninh vào hệ thống mạng hoặc những vấn đề khác trong hệ thống mạng.

Thu thập và phân tích thông tin an ninh mạng thực hiện nhiệm vụ thu
thập các dữ liệu, sự kiện thông tin an ninh mạng và phân tích chúng với mục
đích phát hiện ra các tấn công, các lỗi và lỗ hổng trong hệ thống từ những dữ
liệu nhật ký lưu lại được.

Việc thu thập và phân tích thông tin an ninh mạng có thể được thực
hiện trực tuyến hoặc ngoại tuyến.

Dữ liệu nhật ký chứa các thông tin ghi lại được trong hệ thống. Ví dụ,
một máy chủ web sẽ thường xuyên lưu lại bất cứ khi nào một người nào đó
truy cập tài nguyên (hình ảnh, tập tin, vv…) trên một trang web. Nếu người
dùng truy cập trang đã được xác thực, thông tin lưu lại sẽ chứa tên của người
dụng (username). Đây là một ví dụ về dữ liệu nhật ký: chúng ta có thể sử
dụng tên người dùng (username) để xác định người nào đang truy cập tài
nguyên.

6
Các sự kiện cần được lưu lại trong một các mục phân loại sau:
- Sự kiện liên quan chính sách truy cập và quản trị
- Sự kiện liên quan đến chính sách bảo mật dữ liệu và toàn vẹn dữ liệu
- Sự kiện liên quan đến độ sẵn sàng
- Sự kiện liên quan đến chính sách mật mã

1.2 MỤC ĐÍCH, VAI TRÒ, Ý NGHĨA VÀ YÊU CẦU


1.2.1 Mục đích
Thu thập và phân tích thông tin an ninh mạng cho biết những gì đang
điễn ra trên hệ thống mạng, từ thông tin hiệu năng mạng đến phát hiện điểm
yếu, lỗ hổng và các xâm nhập trái phép, … Các dữ liệu thu thập này là một
nguồn thông tin tốt để xác định những gì đang xảy ra sau một sự cố an ninh
trong hệ thống mạng. Ngoài ra, những dữ liệu này còn cung cấp các bằng
chứng đối với các hoạt động phá hoại của tin tặc, phục vụ cho công tác “điều
tra số”
Dưới đây là một số mục đích chính của việc thu thập và phân tích
thông tin an ninh mạng.

Quản lý tài nguyên

7
Nhật ký không chỉ cho chúng ta biết rằng một máy chủ đang hoạt động,
mà còn cho chúng ta biết các ứng dụng nào đang chạy trên máy chủ đó. Việc
hỏng hóc, sự cố trên phần cứng và phần mềm, sẽ được lưu lại trong các dữ
liệu nhật ký trước khi hệ thống thực sự hỏng hóc. Và khi hồi phục sau một
hỏng hóc, việc đăng nhập thường xuyên giúp chúng ta tìm ra nguyên nhân.
Dưới đây là một ví dụ điển hình của một hỏng hóc mà chúng ta có thể tìm
thấy trong các log:
May 21 08:33:00 foo.example.com kernel: pid 1427 (dd), uid 2 inumber 8329
on /var: filesystem full
Thông báo trên cho thấy rằng hệ thống tập tin var trên máy chủ đã bị đầy.

Phát hiện xâm nhập trái phép


Thông tin an ninh mạng được lưu lại (như các bản ghi NIDS) rất hữu
ích cho phát hiện xâm nhập. Ví dụ:
Sep 17 07:00:02 host.example.com: sshd[721038]: Failed password for illegal
user erin from 192.168.2.4 port 44670 ssh2
Thông tin đăng nhập này cho thấy một đăng nhập không thành công,
bằng cách sử dụng tên người dùng erin. Những từ người sử dụng bất hợp
pháp xuất hiện vì không có tài khoản đó trên hệ thống. Thông báo này là kết
quả của một kẻ tấn công sử dụng một bộ công cụ quét ssh cố gắng để đăng
nhập vào một máy chủ thông qua SSH, sử dụng một tập hợp các tên người
dùng phổ biến và mật khẩu thường được sử dụng. Ví dụ này được chọn từ
một tập hợp của hàng ngàn dò quét được thực hiện trong một khoảng thời
gian rất ngắn.
Chúng ta cùng xem một thông điệp từ Snort, một NIDS mã nguồn mở
Jan 2 16:19:23 host.example.com snort[1260]: RPC Info Query: 10.2.3.4 ->
host.example.com:111
Jan 2 16:19:31 host.example.com snort[1260]: spp_portscan: portscan status
from 10.2.3.4: 2 connections across 1 hosts: TCP(2), UDP(0)
Các thông điệp này cho thấy rằng kẻ tấn công đã thực hiện quét cổng
trên mạng tìm kiếm máy chủ chạy dịch vụ rcp.statd, do dịch vụ này có chứa
một số lỗ hổng mà kẻ tấn công có thể lợi dụng khai thác. Các thông điệp này
cũng cho thấy rằng việc quét cổng đã thành công trong việc kết nối đến hai
máy trong mạng.
8
Xử lý sự cố
Các bản ghi rất có giá trị trong việc đánh giá và xử lý sự cố nói chung
và sự cố an ninh nói riêng, từ những thông tin thu thập được giúp chúng ta tìm
ra nguyên nhân gây ra sự cố, từ đó tìm ra các biện pháp khắc phục và phòng
tránh sự cố.

Điều tra số
Điều tra số là quá trình xây dựng một hình ảnh của "những gì đã xảy
ra" sau khi sự kiện kết thúc. Hình ảnh thường được xây dựng ra các thông tin
không đầy đủ, nhưng độ tin cậy của thông tin là rất quan trọng. Các log có thể
là một phần thiết yếu của quá trình điều tra đó.
Nhật ký, một khi đã được ghi lại, không bị thay đổi thông qua quá trình
sử dụng bình thường của hệ thống, có nghĩa là họ là một loại hồ sơ "thường
trú". Như vậy, họ có thể cung cấp một bổ sung phần nào chính xác các dữ liệu
khác trên hệ thống mà có thể dễ bị thay đổi.
Thông thường trên dữ liệu thu thập thường có ghi lại thời điểm thu
nhận được và lưu lại trên mỗi bản ghi, chúng giúp cung cấp trình tự thời gian
của các sự kiện, không chỉ cho biết những gì đã xảy ra, mà nó còn cho biết sự
việc xảy ra theo trình tự thời gian. Và các bản ghi về phía trước đến một máy
chủ (thường là một nhà sưu tập nhật ký trung tâm), cũng là nguồn cung cấp
bằng chứng cho thấy là riêng biệt từ các nguồn có nguồn gốc. Nếu tính chính
xác của các thông tin về nguồn gốc được gọi vào câu hỏi (chẳng hạn như vấn
đề của một kẻ xâm nhập có thể đã thay đổi hoặc xóa các bản ghi), các nguồn
riêng biệt của thông tin có thể được xem là một bổ sung, nguồn đáng tin cậy
hơn.
Tương tự như vậy, các bản ghi từ các nguồn khác nhau, có thể chứng
thực bằng chứng khác và củng cố tính chính xác của các nguồn nhật ký. Bản
ghi phục vụ để củng cố chứng cứ khác được thu thập. Thường, tái tạo lại hình
ảnh của một sự kiện không dựa trên một phần hoặc nguồn gốc của thông tin,
nhưng dữ liệu từ nhiều nguồn khác nhau: các tập tin và thời gian của mình
trên hệ thống, lịch sử lệnh người sử dụng, dữ liệu mạng, và các bản ghi. Thỉnh
thoảng các bản ghi có thể bác bỏ bằng chứng khác, mà tự nó có thể cho thấy
9
các nguồn khác đã bị hỏng (ví dụ như bởi một kẻ xâm nhập). Bằng chứng thể
hiện trong bản ghi là lần gián tiếp hoặc không đầy đủ. Ví dụ, một bản ghi có
thể hiển thị một hoạt động cụ thể, nhưng không ai đã làm nó. Hoặc, như một
ví dụ, quá trình nhật ký kế toán hiển thị những gì lệnh người dùng đã chạy,
nhưng không phải là đối số cho các lệnh. Vì vậy, các bản ghi có thể không
luôn luôn được sử dụng như là một nguồn duy nhất của thông tin. Mặc dù, khi
một máy chủ bị tấn công, các bản ghi có thể là nguồn thông tin duy nhất đáng
tin cậy, cung cấp máy chủ đã được chuyển tiếp bản ghi tới một máy chủ trung
tâm đăng nhập.
Các bản ghi cho đến thời điểm máy chủ đã bị xâm nhập có thể được tin
cậy, nhưng các bản ghi sau khi bị tấn công là nghi ngờ tốt nhất. Nhưng các
báo cáo mà bạn thu thập được đến sự kiện này có thể giúp làm sáng tỏ những
gì đã xảy ra hoặc chỉ cho bạn đi đúng hướng

1.2.2 Vai trò, ý nghĩa


Quy trình bảo vệ an ninh mạng có thể được tiến hành một chu trình
được mô tả như sau:

Hình 1.1 Quy trình đảm bảo an ninh

Chu trình này bao gồm bốn giai đoạn:


 Đánh giá (Assessment),
10
 Bảo vệ (Protection),
 Phát hiện (Detection),
 Phản ứng (Response).

Hình 1.2 Các giai đoạn tấn công hệ thống


Ngày nay, có rất nhiều kỹ thuật để tấn công vào hệ thống mạng và hầu
hết các cuộc tấn công, xâm nhập thường khai thác các điểm yếu từ các nơi
như: hệ điều hành, ứng dụng, chương trình hoặc do cấu hình sai v.v… với
mục đích khai thác một trong bốn đặc tính về bảo mật: tính bí mật, tính xác
thực, tính toàn vẹn và tính sẵn sàng. Hình trên miêu tả 5 pha tấn công, xâm
nhập mà kẻ tấn công thường dùng:

11
- Pha 1 - Khảo sát thu thập thông tin: nhằm thu thập thông tin về nơi cần
tấn công
- Pha 2 - Dò tìm: sử dụng các thông tin thu thập được từ pha 1 để tìm
kiếm thêm thông tin lỗ hổng, điểm yếu của hệ thống mạng. Các công
cụ thường được sử dụng cho quá trình này là: các công cụ dùng quét
cổng, quét dãy địa chỉ IP, dò tìm lỗ hổng, v.v…
- Pha 3- Xâm nhập: các lỗ hổng, điểm yếu được dò tìm trong 2 pha ở trên
được sử dụng khai thác để xâm nhập vào hệ thống.
- Pha 4- Duy trì xâm nhập: Một khi kẻ tấn công đã xâm nhập được vào
hệ thống, bước tiếp theo là làm sao để duy trì các xâm nhập này để có
thể khai thác và xâm nhập tiếp trong tương lai. Một vài kỹ thuật được
sử dụng như backdoors, trojans. Một khi kẻ tấn công đã làm chủ hệ
thống chúng có thể sử dụng hệ thống để tấn công vào hệ thống khác,
trường hợp này hệ thống bị lợi dụng gọi là: zombie system.
- Pha 5- Che đậy, xóa dấu vết: Một khi kẻ tấn công đã xâm nhập và cố
gắng duy trì xâm nhập. Bước tiếp theo là phải làm sao xóa hết dấu vết
để không còn chứng cứ pháp lý xâm nhập. Kẻ tấn công phải xóa các tập
tin log, xóa các cảnh báo từ hệ thống phát hiện xâm nhập.

Pha 2 (dò tìm) và pha 3 (xâm nhập) kẻ tấn công thường làm lưu lượng,
kết nối mạng thay đổi khác với lúc mạng bình thường rất nhiều. Nếu phân tích
kỹ các bất thường này để rút trích ra các đặc trưng hữu ích của mạng có thể từ
đó phân tích, phát hiện các xâm nhập như: quét cổng, quét dãy địa chỉ IP, tấn
công từ chối dịch vụ (DoS), v.v…
Hầu hết các cuộc tấn công đều tiến hành tuần tự 5 pha trên. Làm sao để
nhận biết tấn công, xâm nhập ngay từ hai pha đầu tiên (khảo sát thông tin và
dò tìm thông tin) là hết sức quan trọng, vì sẽ hạn chế tấn công, xâm nhập ở
những pha tiếp theo. Do vậy, thu thập phân tích thông tin an ninh mạng đóng
vai trò quan trọng trong quy trình an ninh bảo vệ an ninh mạng và giúp người
quản trị mạng sớm phát hiện ra các pha tấn công đang diễn ra trong hệ thống
mạng.

1.2.3 Yêu cầu


12
Trong thu thập và phân tích thông tin an ninh mạng cần đảm bảo một
số yêu cầu sau:
 Dự phòng: dữ liệu thu thập được cần được lưu trữ dự phòng ở nhiều
nơi khác nhau, giảm thiểu nguy cơ mất mát dữ liệu.
 Sử dụng và kết hợp phù hợp nhiều phương pháp, kỹ thuật đánh giá
khác nhau đảm bảo việc thu thập và phân tích thông tin chính xác và
hiệu quả

1.3 PHÂN LOẠI DỮ LIỆU THU THẬP


Định dạng dữ liệu thu thập

Dữ liệu thu thập được thông thường được phân thành các nhóm sau:
1.3.1 Cung cấp thông tin (Information)
Dữ liệu loại này được thiết kế để cho phép người dùng và quản trị biết
rằng một cái gì đó lành tính đã xảy ra. Ví dụ, Cisco IOS sẽ tạo ra các thông
khi hệ thống được khởi động lại. quan tâm phải được thực hiện, tuy nhiên.
Nếu khởi động lại, ví dụ, xảy ra ngoài bình thường bảo dưỡng, kinh doanh
giờ, bạn có thể có lý do để lo lắng.

13
Hình Windows Event Log trong Event Viewer

1.3.2 Trợ giúp gỡ lỗi (Debugging)


Thông điệp gỡ lỗi thường được tạo ra từ hệ thống phần mềm trong
đặt hàng để hỗ trợ các nhà phát triển phần mềm khắc phục sự cố và các vấn
đề với chạy mã ứng dụng.
1.3.3 Đưa ra thông báo (Warning)
Thông báo có liên quan với tình huống nơi mà mọi thứ
có thể bị thiếu hoặc cần thiết cho một hệ thống, nhưng sự vắng mặt của mà sẽ
không hệ thống hoạt động tác động. Ví dụ, nếu một chương trình không được
đưa ra số lượng thích hợp các đối số dòng lệnh, nhưng nhưng nó có thể chạy
mà không cần họ, là điều mà chương trình có thể đăng nhập chỉ là một cảnh
báo cho người sử dụng hoặc điều hành.

14
1.3.4 Lỗi (Error)
Thông báo lỗi đăng nhập được sử dụng để chuyển tiếp các lỗi xảy ra ở
các cấp độ khác nhau trong một hệ thống máy tính. Ví dụ, một hệ điều hành
có thể tạo ra một lỗi đăng nhập khi nó không thể đồng bộ hóa bộ đệm vào đĩa.
Thật không may, nhiều thông báo lỗi chỉ cung cấp cho bạn một điểm khởi đầu
là tại sao chúng xảy ra. Tiếp tục điều tra thường được yêu cầu để có được ở
các nguyên nhân gốc rễ của lỗi

1.3.5 Cảnh báo (Alert)


Một cảnh báo là có nghĩa là để cho biết rằng một cái gì đó thú vị đã xảy
ra. Cảnh báo, nói chung, là những lĩnh vực thiết bị an ninh và bảo mật liên
quan hệ thống, nhưng đây không phải là một quy tắc cứng và nhanh chóng.
Một hệ thống ngăn chặn xâm nhập có thể ngồi trong dòng trên một mạng máy
tính, kiểm tra tất cả lưu lượng truy cập trong nước.
Nó sẽ đưa ra quyết định về việc có hay không một kết nối mạng nhất
định được cho phép thông qua dựa trên nội dung của các gói dữ liệu. Nếu IPS

15
gặp một kết nối đó có thể là độc hại có thể mất bất kỳ số lượng hành động cấu
hình sẵn. Việc xác định, cùng với hành động trên, sẽ được đăng nhập.

1.4 GIỚI THIỆU MỘT SỐ CÔNG CỤ, GIAO THỨC, ĐỊNH DẠNG
CHO THU THẬP VÀ PHÂN TÍCH THÔNG TIN AN NINH MẠNG

Trong quyển giáo trình này, hai công cụ được sử dụng nhiều nhất trong
việc thu thập và phân tích thông tin an ninh mạng là Wireshark và tshark.
Chúng ta sẽ tìm hiểu sơ lược về hai công cụ này. Trước hết chúng ta sẽ tìm
hiểu về định dạng mà hai ngôn ngữ này sử dụng để lưu trữ và hiển thị thông
tin nó lưu trữ.
Ngôn ngữ đánh dấu chi tiết gói tin (PDML – Packet Details Markup
Language) và Ngôn ngữ đánh dấu tóm lược gói tin (PSML – Packet
Summary Markup Language)
Ngôn ngữ đánh dấu chi tiết gói tin (PDML) định nghĩa một chuẩn cho
việc thể hiện chi tiết gói tin từ tầng 2 đến tầng 7 theo chuẩn định dạng XML.
Cú pháp ngôn ngữ này ở mức độ nào đó thể hiện một cách cơ bản “khả năng
đọc được” giữa máy tính và con người. Các phần mềm máy tính phải được
lập trình để thông dịch được ngôn ngữ này, con người có thể học để đọc hiểu
nó hoặc triển khai các công cụ khác để có thể sử dụng chúng. Ngôn ngữ đánh
dấu tóm lược gói tin (PSML) tương tự như ngôn ngữ XML cho việc thể hiện
những chi tiết quan trọng nhất của một giao thức.
PDML và PSML là một phần của bộ thư viện NetBee, bộ thư viện này
được thiết kế để hỗ trợ xử lý gói tin. PDML và PSML được tạo ra và được
cấp bản quyền bởi NetGroup nơi mà WinPcap cũng được phát triển đầu tiên.
Những chuẩn này được sử dụng bởi Wireshark và tshark.

1.4.1 Wireshark
16
1.4.1.1 Giới thiệu
Wireshark là công cụ rất mạnh cho việc phân tích gói tin, nó được tích
hợp sẵn các chức năng đọc hiểu các giao thức nên Wireshark có khả năng tự
động thông dịch và hiển thị chi tiết thông tin giao thức bên trong các gói tin.
Ngoài ra, nó cho phép chúng ta thực hiện sàng lọc dựa trên thông tin của các
trường xác định trong các giao thức nó hỗ trợ. Chúng ta cũng có thể tự viết
các tính năng này và tích hợp vào trong Wireshark dưới dạng plugins.

Hình 1.1 Màn hình chặn bắt gói tin trong Wireshark

1.4.1.2 Chức năng chính trong Wireshark


a) Chặn bắt gói tin
Sau khi cài đặt thành công Wireshark, chúng ta khởi động chương trình
và chọn thành phần trong Interface List để bắt đầu hoạt động. Ví dụ, nếu
muốn giám sát lưu lượng mạng qua mạng Wireless thì chọn card mạng Wifi
tương ứng. Nhấn nút Capture Options để hiển thị thêm nhiều tùy chọn khác:
17
Hình 1.2 Lựa chọn giao diện mạng để bắt gói tin trong Wireshark
Ngay sau đó, chúng ta sẽ thấy các gói dữ liệu bất đầu xuất hiện,
Wireshark sẽ chặn bắt từng gói tin ra và vào hệ thống mạng. Nếu đang giám
sát thông tin trên Wireless trong chế độ Promiscuous thì sẽ nhìn thấy các gói
dữ liệu khác trong toàn bộ hệ thống:

18
Hình 1.3 Thông tin về các gói tin được chặn bắt
Nếu muốn tạm ngừng quá trình này thì các bạn nhấn nút Stop ở phía
trên, như hình dưới đây:

19
Tại đây, chúng ta sẽ thấy có nhiều màu sắc khác nhau, bao gồm: xanh
lá cây, xanh da trời và đen. Wireshark dựa vào cơ chế này để giúp người dùng
phân biệt được các loại traffic khác nhau. Ở chế độ mặc định, màu xanh lá
cây là traffic TCP, xanh da trời đậm là traffic DNS, xanh da trời nhạt là
traffic UDP và màu đen là gói TCP đang có vấn đề.

b) Lọc gói tin


Cách cơ bản nhất để áp dụng filter là nhập thông tin vào ô Filter, sau
đó nhấn Apply hoặc nhấn Enter. Ví dụ, nếu gõ dns thì chúng ta sẽ chỉ nhìn
thấy các gói dữ liệu DNS. Ngay khi nhập từ khóa, Wireshark sẽ tự động
hoàn chỉnh chuỗi thông tin này dựa vào gợi ý tương ứng.

20
Hoặc nhấn menu Analyze > Display Filters để tạo filter mới:

21
Nhấn chuột phải vào từng package và chọn Follow TCP Stream:

Chúng ta sẽ thấy toàn bộ quãng thời gian giao tiếp giữa server và client:

22
Đóng cửa sổ này lại và filter sẽ tự động được áp dụng, Wireshark tiếp
tục hiển thị đầy đủ và chính xác các package có liên quan:

c) Thanh tra gói tin


Mặc định Wireshark hiển thị các gói tin với ba mục:
 Danh sách gói tin: phần này hiển thị các gói tin đã được chặn bắt, mỗi
gói tin một dòng với thông tin sơ lượt, bao gồm: thời gian gói tin bị
chặn bắt, địa chỉ IP nguồn và địa chỉ IP đích, giao thức tầng cao nhất
được sử dụng trong gói tin và một số thông tin khác trong nội dung gói
tin.

23
 Chi tiết nội dung gói tin: Đối với gói tin được tô sáng trong danh sách
gói tin, nó chỉ ra chi tiết các giao thức ở tất cả các tầng mà Wireshark
có thể thông dịch được
 Hiển thi byte trong gói tin: hiển thị dạng thập lục phân và định dạng
ACSII biểu diễn nội dung gói tin, bao gồm dữ liệu ở tầng 2.

Hình 1.4 Nội dung chi tiết gói tin trong Wireshark

24
Trong hình trên, trong khung 24, Wireshark xác định các giao thức
“Ethernet II”, “Internet Protocol” và “Transmission Control Protocol”. Nó
cũng chỉ ra các thông tin quan trọng trong mỗi giao thức (như cổng nguồn và
cổng đích cho giao thức TCP) và cho phép bạn khai thác sâu hơn nội dung
trong mỗi giao thức.

1.4.2 tshark
Tshark là công cụ phân tích giao thức mạng dạng dòng lệnh, là một
phần trong phiên bản của Wireshark. Giống như Wireshark, nó dựa trên
libpcap và có thể đọc và lưu lại tệp dưới cùng một định dạng giống như
Wireshark. Bên cạnh chức năng chính là phân tích, chúng ta có thể sử dụng
tshark để chặn bắt gói tin. Ví dụ dưới đây minh họa tshark chặn bắt luồng dữ
liệu trên giao diện mạng “eth0”, lọc loại bỏ toàn bộ luồng dữ liệu trên cổng 22
và lưu kết quả trong tệp “test.pcap”.

Trong tshark, mặc định đầu ra thông tin được hiển thị dưới dạng PSML, tuy
nhiên khi cờ “-V” được sử dụng, tshark hiển thị thông tin dưới dạng PDML.
Dưới đây là một vài ví dụ sử dụng tshark:
Đọc thông tin từ một tệp lưu trữ gói tin:
$ tshark – r capturefile.pcap
Vô hiệu hóa phân giải tên đối tượng mạng sử dụng cờ -n, chúng ta có thể xem
được địa chỉ thực IP và các cổng.
$tshark –n –r capturefile.pcap
Lựa chọn định dạng đầu ra sử dụng cờ T. Lựu chọn bao gồm pdml, psml, ps,
text và fields. Mặc định là “text”. Trong ví dụ này, chúng ta xuất ra dưới định
dạng PSML, định dạng này cung cấp chi tiết gói tin trong giao thức dưới định
dạng XML
$tshark – r capturefile.pcap – T pdml
Để hiển thị thông tin một trường cụ thể, sử dụng cờ -e kết hợp với lựa chọn
–“T fields”. Ví dụ dưới đây, đưa ra thứ tự khung Ethernet, địa chỉ IP và thông
tin về giao thức UDP
$tshark – r capturefile.pcap –T fields –e frame.number –e ip.addr –e upd

25
CÂU HỎI VÀ BÀI TẬP CHƯƠNG 1
1. Trình bày khái niệm thông tin an ninh mạng và thu thập phân tích
thông tin an ninh mạng?
2.

26
CHƯƠNG 2 THIẾT LẬP HỆ THỐNG THU THẬP THÔNG
TIN AN NINH MẠNG

Một điều quan trong quyết định cho việc thu thập và phân tích an ninh
mạng hiệu quả chính là vi trí thích hợp để thu thập các dữ liệu cần thiết phục
vụ cho việc phân tích hay nói một cách khác thiết lập được một hệ thống thu
thập thông tin an ninh mạng để lấy được các thông tin cần phân tích. Chúng ta
có thể xem xét một trường hợp điển hình chặn bắt gói tin trong mạng phục vụ
cho việc phân tích gói tin. Việc chặn bắt các gói tin không đơn giản là việc
chỉ cần cắm một máy tính xách tay vào một cổng mạng và chặn bắt gói tin
trong luồng dữ liệu. Trong thực tế, việc đặt thiết bị chặn bắt gói tin trong
mạng đôi khi khó khăn hơn việc thực hiện phân tích các gói dữ liệu.

Thách thức với vị trí đặt bộ chặn bắt đó là hệ thống mạng có một lượng
lớn các thiết bị phần cứng mạng được sử dụng để kết nối các thiết bị. Hình 2-
1 minh họa một tình huống điển hình. Do ba thiết bị chính trên mạng hiện nay
như hub, switch và router, mỗi thiết bị xử lý dữ liệu theo một phương thức
khác nhau, chúng ta cần cân nhắc việc thiết lập bộ chặn bắt dữ liệu căn cứ vào
thiết kế vật lý của mạng cần phân tích.

27
Một trong những thách thức đầu tiên của việc thu thập thông tin an ninh
mạng là cấu hình đúng các bộ thu nhận có khả năng chặn bắt các luồng thông
tin mạng

Trước khi chúng ta có thể chặn bắt gói tin trên mạng, chúng ta cấn phải
được trang bị một giao diện mạng (NIC) hỗ trợ chế độ chặn bắt gói tin. Chế
độ này cho phép NIC xem tất cả các gói tin truyền đi trên đường dẫn nó đang
theo dõi, hiện nay hầu hết các hệ điều hành mặc định đều không cho phép
NIC thực hiện ở chế độ này, do vậy chúng ta phải cấu hình chuyển sang chế
độ thực hiện việc chặn bắt gói tin.

2.1 Kiến trúc và thành phần hệ thống


2.1.1 Thu thập trên host
Trước đây, đa số các tương tác từ xa với hệ thống được thực hiện trên
các giao thức không bị mã hóa như FTP, HTTP hay Telnet. Chúng ta chỉ đơn
thuần phải thu nhận gói tin trong dữ liệu mạng để bắt các “keystroke” (những
lệnh mà hacker tương tác với host). Tuy nhiên ngày nay, hacker đã sử dụng
các giao thức mã hóa dữ liệu như SSH hay 3DES để giao tiếp với các máy
tính bị tấn công. Do vậy, chúng ta không thể bắt các “keystroke” trực tiếp như
trước mà phải bắt trên chính các honeypot. Trong giao tiếp có sử dụng thuật

28
toán mật mã để mã hóa dữ liệu truyền thống, đa số các dữ liệu mã hóa đều
phải được giải mã tại điểm cuối hệ thống, trong trường hợp này là các thiết bị
đầu cuối. Do vậy, việc thu nhận dữ liệu trên chính các thiết bị này sẽ
thu được các thông tin mà hacker giao tiếp với các thiết bị dưới dạng không bị
mã hóa.
Ngoài ra trên các host đều cài đặt các hệ điều hành, mỗi hệ điều hành
duy trì các log có thể cung cấp nhiều thông tin. Hệ thống log thường xuyên
ghi lại những cố gắng đăng nhập vào hệ thống dù thất bại hay thành công,
cũng như bất kỳ cảnh báo hệ điều hành đã đưa ra. Đây cũng là một kênh
thông tin rất hữu ích cho việc thu thập thông tin an ninh.
2.2.2 Thu thập trên mạng
2.2 Mô hình triển khai
Vấn đề đặt ra trong thực tế là chúng ta cần triển khai hệ thống thu thập
thông tin an ninh mạng ở vị trí nào trong mô hình mạng của chúng ta. Thông
thường chúng ta sẽ đặt hệ thống ở những nơi mà chúng ta cần giám sát thu
thập thông tin, có hai mô hình chính để thu thập dữ liệu đó là mô hình triển
khai thụ động (thu thập ngoài luồng) và mô hình triển khai chủ động (mô hình
trong luồng)
Mô hình ngoài luồng (mô hình thụ động):
 Trong mô hình ngoài luồng không can thiệp trực tiếp vào luồng dữ
liệu. Luồng dữ liệu vào/ra hệ thống mạng sẽ được sao một bản và
được chuyển tới nơi thu thập dữ liệu
 Theo cách tiếp cận này thì hệ thống không làm ảnh hưởng tới tốc độ
lưu thông của mạng
Mô hình trong luồng (mô hình chủ động):
 Trong mô hình này, hệ thống thu thập thông tin an ninh mạng được
đặt trực tiếp vào luồng dữ liệu vào/ra trong hệ thống mạng, luồng dữ
liệu phải đi qua trực tiếp hệ thống trước khi đi vào trong mạng

29
 Ưu điểm của mô hình này, hệ thống trực tiếp kiểm soát luồng dữ
liệu, tuy nhiên nó có nhược điểm là ảnh hưởng đáng kể đến tốc độ
lưu thông mạng
2.2.1 Triển khai chủ động
Triển khai chủ động đưa thiết bị thăm dò vào trong hệ thống mạng để
thu thập thông tin truyền tải trong mạng ít nhất hai điểm cuối trong mạng. Mô
hình triển khai này được minh họa trong hình 2-8 dưới đây. Tại đây, thiết bị
thu thập thực hiện bắt tất cả luồng dữ liệu vào ra của máy tính

30
2.2.2 Triển khai thụ động

Hình x. Lưu đồ thu thập thông tin an ninh mạng

Để thực hiện việc bắt các gói tin trên mạng, ta phải chỉ ra những vị trí
tương ứng để đặt “máy nghe” vào hệ thống đường truyền của mạng. Quá trình
này đơn giản là đặt “máy nghe” vào đúng vị trí vật lý nào trong một mạng
máy tính. Việc nghe các gói tin không đơn giản chỉ là cắm một máy xách tay
vào mạng và bắt gói. Thực tế, nhiều khi việc đặt máy nghe vào mạng khó hơn
việc phân tích các gói tin. Thách thức của việc này là ở chỗ là có một số
lượng lớn các thiết bị mạng phần cứng được sử dụng để kết nối các thiết bị

31
với nhau. Lý do là vì 3 loại thiết bị chính (hub, switch, router) có nguyên lý
hoạt động rất khác nhau. Và điều này đòi hỏi ta phải nắm rõ được cấu trúc vật
lý của mạng mà ta đang phân tích. Chúng ta sẽ nghiên cứu một số mạng thực
tế để chỉ ra cách tốt nhất để bắt các gói tin trong từng môi trường mạng sử
dụng Hub, Switch và Router.

Chế độ bắt tất cả các gói tin đi qua (Living Promiscuously)


Trước khi nghe các gói tin trên mạng, ta cần một card mạng có hỗ trợ
chế độ Promiscuous. Chế độ Promiscuous cho phép card mạng nhìn thấy thất
cả các gói tin đi qua hệ thống dây mạng. Khi một card mạng không ở chế độ
này, nó nhìn thấy một số lượng lớn các gói tin trên mạng nhưng không gửi
cho nó, nó sẽ huỷ (drop) các gói tin này. Khi nó ở chế độ Promiscuous, nó bắt
tất cả các gói tin và gửi toàn bộ tới CPU.

“Nghe” trong mạng có Hub


Việc nghe trong một mạng có hub là một điều kiện trong mơ cho việc phân
tích gói tin. Cơ chế hoạt động của Hub cho phép gói tin được gửi tất cả các
cổng của hub. Hơn nữa, để phân tích một máy tinh trên một hub, tất cả các
công việc mà bạn cần làm là cắm máy nghe vào một cổng còn trống trên hub.
Bạn có thể nhìn thấy tất cả các thông tin truyền và nhận từ tất cả các máy
đang kết nối với hub đó, của sổ tầm nhìn của bạn không bị hạn chế khi mà
máy nghe của bạn được kết nối với một mạng hub.

“Nghe” trong mạng Switched


ột môi trường switched là kiểu mạng phổ biến mà bạn làm việc. Switch cung
cấp một phương thức hiệu quả để vận chuyển dữ liệu thông qua broadcast,
unicast, multicast. Switch cho phép kết nối song công (full-duplex), có nghĩa
là máy trạm có thể truyền và nhận dữ liệu đồng thời từ switch. Khi bạn cắm
một máy nghe vào một cổng của switch, bạn chỉ có thể nhìn thấy các
broadcast traffic và những gói tin gửi và nhận của máy tính mà bạn đang sử
dụng.

32
Bắt gói tin trong mạng sử dụng Switch

Có 3 cách chính để bắt được các gói tin từ một thiết bị mục tiêu trên
mạng switch: port mirroring, ARP cache poisoning và hubbing out.

Port Mirroring
Port mirroring hay còn gọi là port spanning có thể là cách đơn giản nhất
để bắt các lưu lượng từ thiết bị mục tiêu trên mạng switch. Với cách này, bạn
phải truy cập được giao diện dòng lệnh của switch mà máy mục tiêu cắm vào.
Tất nhiên là switch này phải hỗ trợ tính năng port mirroring và có một port
trống để bạn có thể cắm máy nghe vào. Khi ánh xạ cổng, bạn đã copy toàn bộ
lưu lượng đi qua cổng này sang một cổng khác.

33
Hubbing Out
Một cách đơn giản khác để bắt các lưu lượng của thiết bị mục tiêu
trong một mạng switch là hubbing out. Hubbing out là kỹ thuật mà trong đó
bạn đặt thiết bị mục tiêu và máy nghe vào cùng một phân mạng bằng cách đặt
chúng trực tiếp vào một hub.

34
Rất nhiều người nghĩ rằng hubbing out là lừa dối, nhưng nó thật sự là
một giải pháp hoàn hảo trong các tình huống mà bạn không thể thực hiện port
mirroring nhưng vẫn có khả năng truy cập vật lý tới switch mà thiết bị mục
tiêu cắm vào.

Trong hầu hết các tình huống, hubbing out sẽ giảm tính năng song công
của thiết bị mục tiêu (full to haft). Trong khi phương thức này không phải là
cách sạch sẽ nhất để nghe, và nó thường được bạn sử dụng như là một lựa
chọn khi mà switch không hỗ trợ port mirroring.

Khi hubbing out, chắc chắn rằng bạn sử dụng một cái hub chứ không
phải là một switch bị gắn nhầm nhãn. Khi mà bạn sử dụng hub, hãy kiểm tra
để chắc chắn rằng nó là một hub bằng cách cắm 2 máy tính vào nó và nhìn
xem cái một máy có thể nhìn thấy lưu lượng của cái còn lại không.

ARP Cache Poisoning


Địa chỉ tầng 2 (địa chỉ MAC) được sử dụng chung với hệ thống hệ
thống địa chỉ tầng 2. Tất cả các thiết bị trong một mạng liên lạc với nhau
thông qua địa chỉ IP. Do switch làm việc tại tầng 2, vì vậy nó phải có khả
năng phiên dịch địa chỉ tầng 2 (MAC) sang địa chỉ tầng 3 (IP) hoặc ngược lại
để có thể chuyển tiếp gói tin tới thiết bị tương ứng. Quá trình phiên dịch được
thực hiện thông qua một giao thức tầng 3 là ARP (Address Resolution
Protocol). Khi một máy tính cần gửi dữ liệu cho một máy khác, nó gửi một
yêu cầu ARP tới switch mà nó kết nối. Switch đó sẽ gửi một gói ARP
broadcast tới tất cả các máy đang kết nối với nó để hỏi. Khi mà máy đích
nhận được gói tin này, nó sẽ thông báo cho switch bằng cách gửi địa chỉ
MAC của nó. Sau khi nhận được gói tin phản hồi, Switch định tuyến được kết
nối tới máy đích. Thông tin nhận được được lưu trữ trong ARP cache của
switch và switch sẽ không cần phải gửi một thông điệp ARP broadcast mới
mỗi lần nó cần gửi dữ liệu tới máy nhận.

ARP cache poisoning là một kỹ thuật nâng cao trong việc nghe đường
truyền trong một mạng switch. Nó được sử dụng phổ biến bởi hacker để gửi
35
các gói tin địa chỉ sai tới máy nhận với mục tiêu để nghe trộm đường truyền
hiện tại hoặc tấn công từ chối dịch vụ, nhưng ARP cache poisoning chỉ có thể
phục vụ như là một cách hợp pháp để bắt các gói tin của máy mục tiêu trong
mạng switch. ARP cache poisoning là quá trình gửi một thông điệp ARP với
địa chỉ MAC giả mạo tới switch hoặc router nhằm mục đích nghe lưu lượng
của thiết bị mục tiêu. Có thể sử dụng chương trinh Cain & Abel để thực hiện
việc này (http://www.oxid.it).

Poisoned ARP Cache

Nghe trong mạng sử dụng Router


Tất cả các kỹ thuật nghe trong mạng switch đều có thể được sử dụng
trong mạng router. Chỉ có một việc cần quan tâm khi mà thực hiện với mạng
router là sự quan trọng của việc đặt máy nghe khi mà thực hiện xử lý một vấn
đề liên quan đến nhiều phân mạng. Broadcast domain của một thiết bị được
mở rộng cho đến khi nó gặp router. Khi đó, lưu lượng sẽ được chuyển giao
sang dòng dữ liệu router tiếp theo và bạn sẽ mất liên lạc với các gói tin đó cho
đến khi bạn nhận được một ACK của các máy nhận trả về. Trong tình hướng
này, dữ liệu sẽ lưu chuyển qua nhiều router, vì vậy rất quan trọng để thực hiện
phân tích tất cả lưu lượng trên các giao diện của router.

36
Ví dụ, liên quan đến vấn đề liên kết, bạn có thể gặp phải một mạng với
một số phân mạng được kết nối với nhau thông qua các router. Trong mạng
đó, một phân mạng liên kết với một phân mạng với mục đích lưu trữ và tham
chiếu dữ liệu. Vấn đề mà chúng ta đang cố gắng giải quyết là phân mạng D
không thể kết nối với các thiết bị trong phân mạng A.

37
Khi mà bạn nghe lưu lượng của một thiết bị trong phân mạng D. Khi
đó, bạn có thể nhìn tháy rõ ràng lưu lượng truyền tới phân mạng A, nhưng
không có biên nhận (ACK) nào được gửi lại. Khi bạn nghe luồng lưu lượng ở
phân mạng cấp trên để tìm ra nguyên nhân vấn đề, bạn tìm ra rằng lưu lượng
bị huỷ bởi router ở phân mạng B. Cuối cùng dẫn đến việc bạn kiểm tra cấu
hình của router, nếu đúng, hãy giải quyết vấn đề đó của bạn. Đó là một ví dụ
điển hình lý do vì sao cần nghe lưu lượng của nhiều thiết bị trên nhiều phân
mạng với mục tiêu xác định chính xác vấn đề.

2.2.3 Honeypot/Honeynet
Mục đích chính của Honeynet nhằm thu thập toàn bộ dữ liệu về các
hoạt động của hacker khi thực hiện xâm nhập, tấn công vào bên trong hệ
thống. Từ các dữ liệu thu nhận được, chúng ta có thể khám phá ra các kỹ
thuật xâm nhập, tấn công, công cụ và mục đích của hacker đồng thời phát
hiện ra các lỗ hổng trên các honeypot mà hacker lợi dụng để giành quyền truy
cập vào các hệ thống khác trong mạng. Do vậy, thu thập dữ liệu đóng vai trò
vô cùng quan trọng trong Honeynet, không có modul thu thập dữ liệu
Honeynet không có giá trị.
Modul thu nhận dữ liệu có chức năng giám sát và ghi nhận tất cả các
hoạt động và thông tin đi vào và đi ra hệ thống Honeynet. Dữ liệu được thu
nhận trong quá trình này tạo ra nền tảng của dữ liệu chúng ta sử dụng trong
quá trình nghiên cứu và phân tích sau này.
Mục đích chính của modul thu nhận dữ liệu là thu thập càng nhiều
thông tin mà không để kẻ tấn công phát hiện ra quá trình theo dõi đó càng tốt.
Cũng như modul điều khiển dữ liệu, modul thu nhận dữ liệu cũng dựa trên
nhiều tầng khác nhau để đảm bảo tất cả hoạt động có thể được thu nhận đầy
đủ nhất và cũng tránh được sự cố tại một tầng đơn duy nhất.
Trong hệ thống Honeynet cơ chế thu nhận dữ liệu được triển khai trên
ba tầng: thu nhận dữ liệu từ tường lửa, thu nhận dữ liệu từ luồng dữ liệu mạng
và thu nhận dữ liệu từ hoạt động của các honeypot trong hệ thống.
38
Cơ chế thu thập trong Honeynet được phân thành ba tầng thu nhận dữ
liệu
- Thu nhận dữ liệu từ tường lửa
- Thu nhận dữ liệu từ luồng dữ liệu mạng
- Thu nhận dữ liệu từ hoạt động của honyepot trong hệ thống
Hình 3.1 dưới đây sẽ cho chúng ta thấy rõ cơ chế thu nhận dữ liệu dựa trên ba
tầng thu nhận trong Honeynet diễn ra như thế nào

Hình 3.1 Cơ chế thu nhận dữ liệu trong Honeynet

2.2.3.1 Thu nhận dữ liệu từ tường lửa


Tường lửa là một tầng thu nhận dữ liệu rất tốt, bởi vì tất cả luồng dữ
liệu phải đi qua nó. Thông tin một tường lửa mà ghi lại có thể bị giới hạn,
tương tự như honeypot tương tác mức thấp. Nó không thể thu nhận được
“keystroke” của hacker, cũng không thu được nội dung payload của gói tin.
Thay vào đó, tường lửa thường ghi lại các thông tin chung bao gồm:
- Địa chỉ IP nguồn của hacker

39
- Địa chỉ IP đích
- Giao thức đang sử dụng để tấn công
- Cổng nguồn
- Cổng đích hacker sử dụng tấn công
- Thời điểm diễn ra cuộc tấn công
Tuy nhiên, những thông tin như trên là cực kỳ hữu ích, đặc biệt cho phân tích
định hướng và mô hình thống kê. Đồng thời, bởi vì chúng không sử dụng cơ
sở dữ liệu các mẫu tấn công, nhật ký của tường lửa rất tốt cho phát hiện các
tấn công mới hay thay đổi hướng dò quét.
Hình 3.2 dưới đây chỉ ra một ví dụ về nhật ký sử dụng cho thu nhận dữ
liệu trên Honeynet thế hệ I. Nhật ký này chứa tất cả kết nối đi vào được tường
lửa ghi nhận trong thời gian 24 giờ.

Hình 3.2 Nhật ký bức tường lửa


Trong Honeywall triển khai tường lửa IPTables giúp chúng ta ghi lại tất
cả các kết nối vào/ra vào trong thu mục /var/log/message. Thông tin này rất
quan trọng vì giúp cho người phân tích tiếp cận được hacker xuất phát từ đâu,
chúng đang tiếp cận honeypot nào, đang định sử dụng dịch vụ, giao thức nào
(các dịch vụ, giao thức thường được gắn với một cổng nhất định. Đồng thời
40
nó cũng cảnh báo khi có tấn công ra bên ngoài được khởi tạo. Dựa trên kinh
nghiệm lâu năm, các chuyên gia cho rằng dữ liệu mà tường lửa ghi lại sẽ giúp
cho phát hiện dấu hiệu của các hành vi mới và chưa biết của hacker.
Dữ liệu tường lửa thu nhận đưa ra cho chúng ta nhiều điều thú vị, khi
một người nào đó sử dụng luồng dữ liệu không đúng chuẩn giao thức IP, đây
là dấu hiệu chứng tỏ chúng đang cố gắng thực hiện một kiểu tấn công hay một
phương thức tấn công mới.
Ví dụ trên thực tế:
Sau khi Hacker tấn công vào hệ thống Honeynet bằng việc khai thác lỗ
hổng WU-FTPD trên honeypot sử dụng hệ điều hành Windows, hacker đã cài
một backdoor vào honeypot đó. Nhờ các dữ liệu thu thập được bởi tường lửa,
người quản trị đã phát hiện ra con backdoor đó bởi nó sử dụng giao thức NVP
– Network Voice Protocol (Protocol 11) để giao tiếp với chương trình điều
khiển từ xa. Đây là giao thức gần như rất ít sử dụng trong thực tế.

Packet 7, 11:09:13.557615
Length of IP data: 402 bytes
94.0.146.98 -> 172.16.183.2
Length of IP data: 402
IP protocol is NVP
Direction: To backdoor
Command: 2 (Initialize communication parameters)
Response mode: 1 (To 1 specific IP address and 9 random IP addresses)
Respond to: 203.173.144.50
Trong Honeywall phân biệt bốn kiểu luồng dữ liệu khác nhau: TCP, UDP,
ICMP và OTHER, trong đó OTHER là các giao thức không phải giao thức IP
(gồm TCP, UDP và ICMP) ở trên.

41
2.2.3.2 Thu nhận dữ liệu từ luồng dữ liệu mạng
Tầng thu nhận dữ liệu quan trong thứ hai đó chính là thu nhận dữ liệu
từ luồng dữ liệu mạng. Thu nhận dữ liệu từ luồng dữ liệu mạng có nhiệm vụ
thu nhận mọi gói tin với đầy đủ nội dung payload của gói tin đi vào hay đi ra
hệ thống Honeynet. Trong chương trước, chúng ta biết rằng snort_inline có
thể hoàn toàn đảm trách được công việc này. Tuy nhiên, dưới góc độ của
người thiết kế chúng ta không thể giao phó để snort_inline thực hiện một lúc
nhiều công việc: vừa kiểm soát dữ liệu, vừa thu nhận dữ liệu dễ dẫn tới tình
trạng quá tải hay khiến snort_inline dễ gặp sự cố hỏng hóc.
Do vậy, chúng ta cần cấu hình và triển khai một cơ chế khác để thu nhận toàn
bộ dữ liệu mạng đó. Trong Honeynet, tầng thu nhận dữ liệu thứ hai được thực
hiện bởi Snort (tích hợp vào trong Honeywall) được cấu hình ở chế độ thu
nhận gói tin trong mạng. Snort thực hiện việc thu nhận gói tin trong mạng
thông qua libpcap và winpcap.

Hình 3.3 Bắt gói tin trong winpcap


42
Vai trò quan trọng nhất của Snort là thu nhận tất cả luồng dữ liệu mạng
vào/ra hệ thống Honeynet. Snort được sử dụng để bắt và ghi nhận mọi gói tin
và payload của gói tin trên đường truyền (thu nhận tất cả luồng dữ liệu IP,
không cần quan tâm đến kiểu dữ liệu IP nào).
Trong cấu hình ban đầu của Honeywall, chúng ta gán công việc thu
nhận dữ liệu này cho giao diện bên trong (thường là eth1). Đây là điều rất
quan trọng, bởi vì nếu chúng ta mắc lỗi khi gán công việc thu nhận dữ liệu
này cho giao diện bên ngoài (thường là eth0) nó không chỉ ghi nhận dữ liệu
của Honeynet, mà còn ghi lại tất cả dữ liệu khác ở mạng bên ngoài. Điều này
sẽ gây nhiễu và dư thừa cho dữ liệu ta thu nhận. Bằng cách thu nhận dữ liệu
từ giao diện bên trong, chúng ta sẽ chỉ thu nhận các luồng dữ liệu vào/ra của
honeynet, đây là những dữ liệu mà chúng ta cần.
Thông thường đối với một mạng thực tế thì lưu lượng dữ liệu là vô
cùng lớn, việc thu nhận đầy đủ nội dung tất cả luồng dữ liệu mạng là một
công việc cực kỳ khó khăn đòi hỏi rất nhiều tài nguyên, công sức và thời gian.
Thậm chí công việc này sẽ trở nên quá tải khi số lượng người dùng trên hệ
thống tăng cao. Tuy nhiên, đối với hệ thống Honeynet thì lưu lượng dữ liệu sẽ
giảm đi rất nhiều do trên các hệ thống Honeynet có rất ít các hoạt động. Bởi
vì, hệ thống Honeynet là một hệ thống giả nhằm thu hút và đánh lừa những kẻ
truy cập bất hợp pháp, những người dùng hợp pháp không bao giờ truy cập
vào những hệ thống giả đó, do vậy trên hệ thống Honeynet hầu như chỉ có
những hoạt động của hacker, mà những hoạt động như vậy sẽ ít hơn rất nhiều
lần so với những hoạt động thật.
Nhiệm vụ Honeyet cần phải tìm ra kiểu loại, kỹ thuật và phương pháp
tấn công vào hệ thống mà hacker sử dụng, do vậy chúng ta cần phải bắt tất cả
hoạt động gói tin trên mạng. Thông tin này hết sức quan trọng vì nó cho phép
Honeynet không chỉ phân tích tấn công tại tầng mạng (Network Layer) mà
còn bắt được keystrokes (lệnh tương tác giữa hacker với honeypot), toolkits
(công cụ hacker sử dụng) thậm chí các trao đổi giữa hacker với các honeypot.
43
Các thông tin thu nhận bởi Snort được lưu dưới dạng tệp log nhị phân dùng
cho quá trình phân tích sau này.
Tuy nhiên, ngoài việc thu nhận các dữ liệu từ luồng mạng, Snort có thể
đưa ra các thông tin phát hiện xâm nhập, tấn công hay các hoạt động bất
thường trong một kết nối dựa trên một cơ sở dữ liệu mẫu tấn công có sẵn hay
các luật do người quản trị mạng đưa ra. Ví dụ, hình 3.3 chỉ ra cảnh báo của
Snort về tấn công Web – based IIS của một loại sâu mạng – trong trường hợp
này là CodeRed thế hệ hai. Tường lửa sẽ ghi và cảnh báo cho ta về kết nối
HTTP đi vào, nhưng Snort giúp chỉ cho ta biết thêm có cuộc tấn công, bởi vì
nó có mẫu các tấn công.

Hình 3.4 Tấn công Web – based của sâu Code Red phát hiện bởi Snort

2.2.3.3 Thu nhận dữ liệu từ hoạt động trên các honeypot


Nhiệm vụ của modul thu nhận dữ liệu là ghi lại toàn bộ các hoạt động
của hacker tương tác với hệ thống Honeynet. Chúng ta có thể phân các hoạt
động tương tác đó thành bốn mức sau đây:
- Hoạt động mức mạng
- Hoạt động mức hệ thống
- Hoạt động mức ứng dụng
- Hoạt động mức người dùng
Hai tầng thu nhận dữ liệu đầu tiên (thu nhận dữ liệu từ tường lửa và thu
nhận dữ liệu từ luồng mạng) thu nhận được các hoạt động mức mạng. Tầng
44
thu nhận dữ liệu thứ ba sẽ thu nhận: hoạt động mức hệ thống, hoạt động mức
ứng dụng và hoạt động mức người dùng.
Trước đây, đa số các tương tác từ xa với hệ thống được thực hiện trên
các giao thức không bị mã hóa như FTP, HTTP hay Telnet. Chúng ta chỉ đơn
thuần phải thu nhận gói tin trong dữ liệu mạng để bắt các “keystroke” (những
lệnh mà hacker tương tác với honeypot). Tuy nhiên ngày nay, hacker đã sử
dụng các giao thức mã hóa dữ liệu như SSH hay 3DES để giao tiếp với các
máy tính bị tấn công. Do vậy, chúng ta không thể bắt các “keystroke” trực
tiếp như trước mà phải bắt trên chính các honeypot. Trong giao tiếp có sử
dụng thuật toán mật mã để mã hóa dữ liệu truyền thống, đa số các dữ liệu mã
hóa đều phải được giải mã tại điểm cuối hệ thống, trong trường hợp này là các
honeypot. Do vậy, việc thu nhận dữ liệu trên chính các honeypot sẽ thu được
các thông tin mà hacker giao tiếp với các honeypot dưới dạng không bị mã
hóa.
Dự án Honeynet đã phát triển một số công cụ có tính năng thu nhận
những hoạt động của hacker trên honeypot bao gồm cả việc bắt giữ các
“keystroke”. Công cụ đầu tiên Honeynet đưa ra là một shell được phát triển
bởi Antonomasia, có thể được sử dụng thay thế cho /bin/bash trong các hệ
thống Unix hay Linux. Shell thực hiện chuyển các keystroke của hacker tới
syslogd, sau đó dữ liệu từ syslogd được chuyển tiếp tới máy chủ syslog ở xa.
Hình 3.5 chỉ ra một ví dụ ghi lại keystroke từ hacker đã tấn công thành công
một honeypot. Keystroke chỉ cho chúng ta biết hacker tạo ra một thư mục ẩn,
đang tải phần mềm, biên dịch và cài đặt nó, sửa đổi tệp cấu hình và sau đó
khởi động chương trình này (đây là một chương trình IRC - Internet Relay
Chat).
Tuy nhiên công cụ này có rất nhiều hạn chế:
- Hacker sau khi chiếm quyền điều khiển honeypot có thể tắt dịch vụ
syslogd, khiến chúng ta không thể theo dõi được các hoạt động
hacker trên honeypot.
45
- Chỉ hoạt động trên môi trường Unix hay Linux.

Hình 3.5 Keystroke của hacker bị ghi lại


Honeynet triển khai sử dụng công cụ Sebek để khắc phục nhược điểm
của công cụ đầu tiên. Sebek được triển khai theo mô hình client/server gồm
hai modul: Sebek client và Sebek server.
Sebek client là modul nhân bị ẩn có khả năng ghi lại các hoạt động của
hacker. Một khi được cài đặt trên honeypot, Sebek client chạy trong nhân hệ
điều hành. Thông tin được thu thập bởi Sebek client không được lưu trữ trên
các honeypot bởi chúng có thể bị phát hiện bởi hacker. Thay vào đó, Sebek
client sẽ gửi những dữ liệu đó thông qua giao thức UDP đến một máy chuyên
lưu trữ dữ liệu (như cổng Honeywall, hệ thống lưu trữ dữ liệu từ xa ở một
mạng khác) được cài đặt Sebek Server. Khi truyền dữ liệu giữa Sebek client
và Sebek server, công cụ Sebek sẽ sử dụng một cơ chế bảo đảm an toàn cho
dữ liệu trong quá trình truyền khiến hacker không thể thấy và bắt được những
dữ liệu đó. Do vậy, công cụ Sebek đảm bảo hoàn toàn che dấu quá trình thu
nhận dữ liệu đối với hacker. Sebek được phát triển quá nhiều phiên bản khác
nhau sử dụng tốt trong các môi trường Unix, Linux hay Windows...

46
Mô hình kiến trúc chung Sebek
Sebek dựa trên nền tảng kiến trúc client/server. Sebek phía khách được
cài đặt trên các honeypot còn Sebek phía chủ được cài đặt thông thường trên
Honeywall, đây chính là một gateway của Honeynet, mọi dữ liệu đi vào/đi ra
Honeynet đều thông qua đây.

Hình 3.6 Mô hình kiến trúc Sebek


Sebek client bắt dữ liệu trên honeypot và đưa nó lên mạng nơi được tập
hợp bởi Sebek server. Sebek server tập hợp dữ liệu từ một trong hai nguồn
sau: đầu tiên là các gói tin trực tiếp từ mạng, thứ hai là các gói tin được lưu
trong tệp định dạng tcpdump. Một khi dữ liệu được tập hợp nó hoặc là được
tải vào cơ sở dữ liệu quan hệ hoặc tệp log của keystroke lập tức được rút ra.
Các giao tiếp được sử dụng bởi Sebek là dựa trên giao thức UDP.

47
2.3 Chính sách
2.3.1 Chọn nguồn sự kiện
a) Mục đích
Để xác định tốt nhất mà các nguồn sự kiện sử dụng để theo dõi, chúng
ta phải xác định nguồn sự kiện sẽ được sử dụng. Mục đích của chúng ta trong
việc thu thập bất kỳ nguồn sự kiện sẽ yêu cầu lưu trữ ảnh hưởng, chính sách
lưu giữ dữ liệu, và khoảng thời gian thu thập. một sự kiện nguồn có thể được
sử dụng cho một hoặc nhiều trong những lý do sau đây:
Giám sát
Bộ sưu tập sự kiện bao gồm các dòng liên tục cảnh báo ghi lại và phân
tích trong thời gian thực hoặc thời gian gần như thực. Tương ứng, hệ thống
chọn để giám sát có dung lượng lưu trữ thấp hơn và một chính sách duy trì dữ
liệu ngắn hơn vì cửa sổ của họ tập trung là rất ngắn hạn.
Ứng phó sự cố và điều tra
Ứng phó sự cố và điều tra thường đòi hỏi công suất và lưu trữ cao hơn
còn chính sách duy trì dữ liệu. Sự kiện thường được lưu trữ trong một cơ sở
dữ liệu cho truy vấn nhanh dữ liệu sự kiện gần đây (thường là trong vòng một
tháng). Khung thời gian này phụ thuộc rất nhiều trên tỉ lệ tai biến và khối
lượng, với khối lượng lớn và giá cao sự kiện giảm thời gian lưu giữ và gia
tăng yêu cầu lưu trữ.
Tuân thủ quy định, yêu cầu pháp lý và điều tra số
Hệ thống thuộc phạm vi của quy định chính phủ thường có đặc biệt yêu
cầu tuân thủ. Chúng bao gồm các lâu dài, lưu trữ kéo dài nhiều năm của sự
kiện dữ liệu, hỗ trợ điều tra về vấn đề pháp lý như các vụ kiện. Điều tra pháp
y thường kéo dài đến dữ liệu từ quá khứ xa xôi, đòi hỏi phải có quyền truy
cập vào dữ liệu được đặt trên băng sao lưu, thường được lưu trữ off-site. Truy
cập vào dữ liệu này là xa thời gian thực, như một khôi phục từ sao lưu băng
có thể yêu cầu giờ hoặc vài ngày để hoàn thành.
b) Nguồn sự kiện
Nguồn sự kiện ở đây không phải là một thiết bị trong hệ thống, mà là từ
các ứng dụng, thiết bị thuộc hệ thống đang hoạt động và ngừng hoạt động
được hệ thống máy chủ nhật ký, sự kiện ghi lại và tổng hợp lại trong hệ

48
thống. Cụ thể ở đây là những thiết bị cùng các chương trình và những ứng
dụng:
 Hệ thống hệ điều hành Windows/Unix
Trong hệ thống Unix cũng như hệ thống Windows đều có hệ thống
event log cho riêng từng hệ điều hành để ghi lại các hoạt động và các sự kiện
xảy ra trong hệ thống. Các công cụ này được tích hợp sẵn trong hệ điều hành,
nó ghi lại một cách chi tiết các tham số như: dịch vụ, thời gian, người dùng …
và chủ yếu ghi lại các loại sự kiện như: Sự kiện an ninh, sự kiện hệ thống, sự
kiện ứng dụng.
 Hệ thống định tuyến (router), hệ thống chuyển mạch (switch)
Trong router và switch đều có các hệ thống ghi lại sự kiện. ghi lại thời
gian hoạt động của thiết bị. Những hệ thống này thu thập nguồn từ sự kiện
xảy ra trong mạng lưới. Nó phân loại theo mức độ sau:
 Báo động: Mức này nó mô tả sự kiện gây rối loạn hoạt động và
yêu cầu sự can thiệp của người quản trị. Báo động luôn hoạt
động và yêu cầu sự can thiệp của người quản trị. Ngưỡng báo
động có thể được định nghĩa cho các lỗi cổng nhất định để tùy
chỉnh báo động
 Giới hạn: Mức độ giới hạn được mô tả trong các sự kiện mà nói
chung là gây rối cho hệ thống, nhưng đòi hỏi phải có giới hạn.
 Cảnh báo: Mức độ cảnh báo được mô tả trong sự kiện không
được phá hoại hệ thống, nhưng quan trọng hơn là các sự kiện ở
mức cao.
 Thông tin: Mức độ thông tin mô tả các sự kiện thường kết hợp
với một cấu trúc bình thường.

2.3.2 Phương thức thu thập sự kiện


Khi lựa chọn các nguồn sự kiện cho giám sát an ninh, bạn phải ảnh hưởng của
các phương pháp cho bộ sưu tập, vì nó sẽ ảnh hưởng đến hiệu suất và kịp
thời. Như mô tả trong hình 5-1, có hai phương pháp chung để thu thập các sự
kiện: đẩy và kéo.

49
Phương pháp đẩy
Với phương pháp đẩy, các sự kiện có nguồn gốc từ các thiết bị trong khoảng
thời gian quy định hoặc trong thời gian thực, như cấu hình trên các thiết bị
chính nó. Các nhà sưu tập sự kiện phải được chuẩn bị để nhận được sự kiện
khi chúng xảy ra. Ví dụ về các phương pháp này bao gồm các thông điệp
syslog, danh sách truy cập (ACL) các bản ghi, và NetFlow.
Phương pháp kéo
Với phương pháp kéo, các sự kiện được lưu trữ trên các thiết bị có nguồn gốc
và lấy ra bởi các nhà sưu tập. Có nghĩa là, các nhà sưu tập khởi bộ sưu tập của
sự kiện tin nhắn từ các thiết bị mà tạo ra các sự kiện. Hai giao thức phổ biến
cho kéo dữ liệu sự kiện là các thiết bị an ninh tổ chức sự kiện giá (SDEE) và
quen thuộc SNMP. SDEE được phát triển bởi một nhóm làm việc tại ICSA
Labs, được gọi là xâm nhập Phát hiện Systems Consortium (IDSC), trong đó
bao gồm Cisco, Fortinet, INFOSEC công nghệ, ISS, SecureWorks,

50
Sourcefire, Symantec, và Tripwire, cung cấp các thông tin sau đây liên quan
đến giao thức:
Các thiết bị an ninh tổ chức sự kiện giá (SDEE) xác định các định dạng của
các thông điệp như cũng như các giao thức được sử dụng để giao tiếp các sự
kiện được tạo ra bởi các thiết bị an ninh. SDEE được thiết kế linh hoạt và mở
rộng để các nhà cung cấp có thể sử dụng sản phẩm mở rộng cụ thể trong một
cách mà duy trì khả năng tương thích nhắn tin. SDEE xây dựng trên XML,
HTTP và SSL / TLS tiêu chuẩn công nghiệp để tạo điều kiện làm con nuôi
người các nhà cung cấp và người sử dụng bằng cách cho phép họ sử dụng
phần mềm hiện có mà thực hiện các giao diện tiêu chuẩn. SDEE Định dạng
dữ liệu
 Hiện nay các địa chỉ các định dạng dữ liệu phát hiện / bảo vệ cảnh báo
xâm nhập
 Các sự kiện được định dạng như các phần tử XML
 Các định dạng được chỉ định sử dụng lược đồ XML. Hỗ trợ xác nhận
sơ đồ

51
Câu hỏi và bài tập
1.
2.
3.

Thực hành
Xây dựng một hệ thống thu thập thông tin an ninh mạng theo yêu cầu

52
Trong hình học, chiều cao, chiều rộng và chiều dài là ba chiều chính hình
thành nên không gian. Tương tự, trong phân tích luồng dữ liệu những chiều
tương ứng là To, From và Service. Những chiều chức năng này là thành phần
của việc phân tích luồng dữ liệu. Bên cạnh đó, có một lượng lớn các chiều xác
định khác của IP cũng như rất quan trọng cho việc phân tích luồng dữ liệu IP.
Chúng bao gồm:
 ACK
 SEQ
 Định danh IP (IP Identification)
 Giá trị TTL đến (Arriving TTL values)
 Thời gian (Time)
 Các cờ (Flags)

Tiêu chí đầu tiên, tập trung chính vào địa chỉ IP nguồn và IP đích, cổng
nguồn, cổng đích
Sau đó tập trung vào ACK và TCP Flags.

Một trong những kỹ thuật phân tích luồng dữ liệu quan trong nhất là tìm kiếm
dấu hiệu chỉ ra một gói tin được tạo ra bởi phần mềm độc hại.

Quy trình cho việc tiến hành thực hiện phân tích nhật ký sự kiện rất đa dạng
tùy thuộc vào nguồn cung cấp các nhật ký sự kiện và mục đích cụ thể của việc
phân tích. Tuy nhiên, tựu chung có một số kỹ thuật phổ biến dưới đây:
+ Tìm kiếm từ khóa xác định trong nhật ký, những từ khóa này người ta còn
gọi là các “giá trị mục tiêu”
+ Sàng lọc: thu hẹp phạm vi không gian tìm kiếm bằng cách lựa chọn nhật ký
dựa trên các tham số như thời gian, nguồn/đích, nội dung hoặc các thông tin
khác
53
+ Phân tích nhật ký cho các mẫu hoạt động và xác định các hoạt động khả
nghi dựa trên kết quả
+ Tạo mẫu nhận dạng: Tạo ra bộ các mẫu phức tạp và tương quan những mẫu
này với các hoạt động cụ thể để tạo ra sự tiện lợi cho các lần phân tích tiếp
theo.

CHƯƠNG 3. QUY TRÌNH THU THẬP VÀ PHÂN TÍCH

Theo Edward G.Balas quá trình phân tích dữ liệu được thực hiện thông qua ba
bước:
 Sàng lọc, rút gọn dữ liệu: đây là quá trình loại bỏ các dữ liệu không cần
thiết và xác định các dữ liệu “đáng quan tâm” có ích cho quá trình phân
tích từ nguồn dữ liệu thô. Quá trình này nhằm: giảm thiểu thời gian xử
lý và không gian lưu trữ
 Kết hợp, phân lớp dữ liệu: tổ hợp dữ liệu từ nhiều nguồn khác nhau
thành các tập dữ liệu gắn kết có mối tương quan với nhau, xác định mối
quan hệ giữa các nguồn dữ liệu và đưa ra một vài phương thức truy cập
chuẩn hóa dữ liệu.

54
 Báo cáo, thống kê: xác định vấn đề, sự kiện trọng tâm (cuộc tấn công
và các dữ liệu liên quan) đê phân tích, loại bỏ dữ liệu không cần thiết.
Người phân tích sẽ đưa ra kết quả phân tích một sự kiện diễn ra trong
hệ thống. Quá trình này nhằm phát hiện tấn công, xâm nhập và các
hành vi bất thường, khả nghi.

Tuy nhiên, để thực hiện được quy trình phân tích dữ liệu ba bước nêu
trên chúng ta cần phải thực hiện quy trình thu thập và tập hợp dữ liệu.

3.1 Thu thập và tập hợp dữ liệu


Mục đích nhằm thu thập và tập hợp toàn bộ dữ liệu về các hoạt động an
ninh đang diễn ra bên trong hệ thống. Từ các dữ liệu thu nhận được, chúng ta
có thể khám phá ra các kỹ thuật xâm nhập, tấn công, công cụ và mục đích của
hacker đồng thời phát hiện ra các lỗ hổng trên các máy trạm mà hacker lợi
dụng để giành quyền truy cập vào các hệ thống khác trong mạng. Do vậy, quy
trình thu thập dữ liệu đóng vai trò vô cùng quan trọng.
Thu thập dữ liệu có chức năng giám sát và ghi nhận tất cả các hoạt
động và thông tin đi vào và đi ra hệ thống. Dữ liệu được thu nhận trong quá
trình này tạo ra nền tảng của dữ liệu chúng ta sử dụng trong quá trình nghiên
cứu và phân tích sau này. Bất kỳ hệ thống thông tin nào, chúng ta có thể phân
các hoạt động tương tác người dùng thành bốn mức sau đây:
- Hoạt động mức mạng
- Hoạt động mức hệ thống
- Hoạt động mức ứng dụng
- Hoạt động mức người dùng

Thu thập dữ liệu cũng dựa trên nhiều tầng khác nhau để đảm bảo tất cả hoạt
động có thể được thu nhận đầy đủ nhất và cũng tránh được sự cố tại một tầng
đơn duy nhất, ví dụ: trong hệ thống Honeynet cơ chế thu nhận dữ liệu được
triển khai trên ba tầng, như trong mô hình minh họa dưới đây:
 Thu nhận dữ liệu từ tường lửa
 Thu nhận dữ liệu từ luồng dữ liệu mạng
 Thu nhận dữ liệu từ hoạt động của các honeypot trong hệ thống.
55
Hình 3.1.Cơ chế thu nhận dữ liệu trong Honeynet

3.2 Sàng lọc, chuẩn hóa và tương quan dữ liệu

Luồng xử lý dữ liệu cho sàng lọc, chuẩn hóa và tương quan dữ liệu

56
Sàng lọc
Sàng lọc là quy trình loại bỏ các dữ liệu không cần thiết khỏi tập dữ
liệu thu thập được.
Sàng lọc thường được chia thành các hoạt động sau:
 Chọn lựa lưu giữ các dữ liệu đáng quan tâm và loại bỏ các dữ
liệu không cần thiết từ nguồn dữ liệu thô đưa vào.
 Trích xuất các dữ liệu thô và chuyển đổi chúng dưới định dạng
chung để chúng ta có thể sử dụng dễ dàng cho việc phân tích dữ
liệu sau này.
.
Ví dụ: sử dụng biểu thức chính quy để kiểm tra sự hợp lệ cấu trúc của địa chỉ
IP Address trong dữ liệu thu thập: \d+\.\d+\.\d+\.\d+
Câu lệnh này sẽ nhận ra định dạng của một địa chỉ IP, tuy nhiên để kiểm tra
địa chỉ IP có hợp lệ hay không ví dụ địa chỉ IP 10.0.3.1 là hợp lệ còn địa chỉ
IP 300.500.600.188 là không hợp lệ, chúng ta sử dụng biểu thức chính quy có
cú pháp như sau:
^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\. ([01]?\d\d?|2[0-
4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$

Chuẩn hóa
Như chúng ta đã biết, các hệ thống khác nhau không tự chuẩn hóa, và
có các định dạng dữ liệu thu thập khác nhau. Ví dụ, hệ thống log của Cisco có
định dạng lưu trữ hoàn toàn khác so với hệ thống log của Palo Alto Networks
hay Sonicwall. Bởi vậy để làm việc, sử dụng kết hợp thông tin trên các hệ
thống này với nhau chúng ta cần chuyển đổi chúng về một định dạng chung.
Chuẩn hóa thực hiện việc ánh xạ các thành phần trong dữ liệu thô (địa
chỉ IP nguồn, địa chỉ IP đích ...) sang một định dạng quy định chung. Các
bước thực hiện việc chuẩn hóa gồm:

57
1. Khảo sát các loại dữ liệu thu thập được: miêu tả, các thành phần và
nội dung trong dữ liệu, …
2. Sử dụng các phương pháp thích hợp để chuẩn hóa dữ liệu như sử
dụng biểu thức chính quy để chuẩn hóa dữ liệu
3. Kiểm tra logic trên các dữ liệu mẫu sau khi chuẩn hóa
4. Triển khai chuẩn hóa trên toàn bộ các dữ liệu thu thập cần phân tích.
Những thông tin chung thường được sử dụng cho việc chuẩn hóa dữ liệu thu
thập:
 Địa chỉ IP nguồn và địa chỉ IP đích
 Cổng nguồn và cổng đích
 Phân loại
 Thời gian
 Thông tin người dùng
 Độ ưu tiên
Chúng ta xem xét ví dụ dưới đây, ví dụ này chứa một thông báo từ Sourcefire
IPS Syslog như sau:

Thông báo này chứa rất nhiều thông tin, để chuẩn hóa nó chúng ta sử dụng kỹ
thuật trích xuất. Chuẩn hóa yêu cầu quét thông báo từ đầu tới cuối để lấy ra
các thông tin chúng ta quan tâm và đưa chúng vào các trường đã được chuẩn
hóa từ trước. Dưới đây là một ví dụ về tập các trường phổ biến được sử dụng
cho chuẩn hóa:
Kiểu: Attempted Information Leak (Rò rỉ thông tin)
Thời gian: July 16 2010, 10:54:39
Mức độ: Cao
Giao thức: ICMP
Địa chỉ IP nguồn: 210.22.215.77

58
Địa chỉ IP đích: 67.126.151.137
Cổng nguồn: NULL
Cổng đích: NULL
Raw log: Jul 16 10:54:39 SourceFire SFIMS: [1:469:1] ICMP PING NMAP
[Classification: Attempted Information Leak] [Priority: 2] {ICMP}
210.22.215.77 -> 67.126.151.137

Tương quan
Tương quan là liên hệ các dữ liệu riêng lẻ thành các dữ liệu có sự liên
kết với nhau mang một ý nghĩa nào đó. Tương quan đóng vai trò quan trong
trong việc thu thập và phân tích thông tin an ninh mạng, giúp liên kết các dữ
liệu riêng lẻ với nhau thành dữ liệu chung thống nhất phục vụ cho việc phân
tích. Thông thường người ta sử dụng phương pháp thống kê và tương quan
trên luật để thực hiện quá trình tương quan.

Luồng thông tin trong tương quan dựa trên thông kê và trên luật
Chúng ta sẽ xem xét ví dụ về tương quan trong hệ thống Honeynet, để
hiểu rõ hơn về tương quan. Như chúng ta đã biết, hệ thống Honeynet thu thập
dữ liệu từ rất nhiều nguồn khác nhau, do đó một trong những vấn đề đặt ra là
chuyển đổi sử dụng giữa các kiểu dữ liệu khác nhau và tìm ra được mối quan
hệ tương quan giữa các nguồn dữ liệu. Để kết hợp những dữ liệu với các định
dạng khác nhau từ các nguồn khác nhau, Edward G.Balas đưa ra một deamon

59
(chương trình trên Linux) cho phép xử lý những dữ liệu này đó chính là
Hflow.

Hflow triển khai một mô hình dữ liệu mới độc lập với các nguồn dữ
liệu. Mô hình này thiết lập mối liên hệ giữa bốn đối tượng khác nhau sau:
máy trạm (host) thể hiện cho honeypot, tiến trình (process) thể hiện chương
trình đang thực hiện trên máy trạm, tệp (files) thể hiện dữ liệu được lưu trữ
trên máy trạm và luồng mạng (network flow) thể hiện giao tiếp giữa các máy
trạm với nhau. Mối quan hệ giữa các đối tượng trong mô hình dữ liệu được
thể hiện ở hình dưới đây:

Mô hình quan hệ giữa các đối tượng

60
Hflowd có nhiệm vụ tương quan các dữ liệu từ modul thu nhận dữ liệu
gửi về (dữ liệu Snort, dữ liệu Sebek ...), sau đó lưu các dữ liệu đó vào trong
một cơ sở dữ liệu quan hệ (ở đây sử dụng phần mềm quản trị cơ sở dữ liệu
mysql).
Dữ liệu đầu vào:
 Dữ liệu Argus
 Snort IDS events
 Bản ghi sebek socket
 Xác định kiểu hệ điều hành p0f
Dữ liệu đầu ra:
Dữ liệu mạng Honeynet được chuẩn hóa, sau đó sẽ đưa vào cơ sở dữ
liệu quan hệ.

Hình 3.5 Minh họa chức năng của Hflow

61
3.3 Phân tích dữ liệu
Trong phân tích dữ liệu, chúng ta cần thu nhận nhiều kiểu dữ liệu khác nhau,
từ các nguồn thu nhận dữ liệu khác nhau như: dữ liệu mạng (được thu nhận
bởi tường lửa, Snort), dữ liệu từ Sebek gửi về...Do vậy, quá trình phân tích dữ
liệu sẽ gặp rất nhiều khó khăn: tiêu tốn nhiều thời gian, công sức cũng như
đối mặt với giải quyết nhiều vấn đề liên quan. Quá trình phân tích thường gặp
phải một số vấn đề sau:
- Mỗi kiểu dữ liệu thường đi kèm với một công cụ phân tích riêng cho
chúng, do vậy gây ra hiệu quả hạn chế, và mỗi kiểu dữ liệu lại phải lặp
lại 3 bước phân tích tách biệt riêng.
- Việc chuyển đổi sử dụng giữa các kiểu dữ liệu khác nhau là rất khó
khăn và khó tìm ra được mối quan hệ tương quan giữa các nguồn dữ
liệu. Thông thường việc đưa ra mối quan hệ tương quan này thường
được thực hiện hoàn toàn thủ công bởi người thực hiện phân tích.
- Quá trình tìm ra một đường để dò theo dấu vết chuỗi dữ liệu “đáng
quan tâm” giữa các nguồn dữ liệu không thể thực hiện một cách tự
động.
Việc phân tích dữ liệu dựa trên các kỹ thuật phân tích cơ bản bao gồm:
• Phân tích gói tin
• Phân tích luồng dữ liệu
• Phân tích nhật ký sự kiện
Ngoài ra chúng ta có thể sử dụng các kỹ thuật phân tích nâng cao như:
• Phân tích thông kê
• Khai phá dữ liệu nhật ký
• Phân tích dữ liệu trên WLAN
Các kỹ thuật phân tích sẽ trình bày cụ thể trong các chương sau. Thông
thường để giải quyết khó khăn trong việc phân tích người ta thường sử dụng
các công cụ hỗ trợ, ví dụ trong Honeynet người ta sử dụng công cụ hỗ trợ
Walleye.

Walleye là một công cụ phân tích dữ liệu Honeynet dựa trên giao diện Web,
giúp cho người quản trị hệ thống nắm được khung cảnh chung các hoạt động
62
hệ thống từ đó hiểu rõ về các bước tuần tự của một cuộc tấn công vào bên
trong hệ thống.
Walleye cung cấp cho chúng ta các thông tin hỗ trợ cho quá trình phân
tích:
- Các hoạt động bên trong các honeypot thông qua cây tiến trình
- Các hoạt động của mạng thông qua biểu đồ luồng mạng
- Cung cấp mối quan hệ giữ các tiến trình và biểu đồ luồng mạng
Khả năng của Walleye:
- Đối với mỗi kết nối ra bên ngoài, chỉ cho chúng ta các kết nối bên trong
gây ra
- Đối với mỗi kết nối vào chỉ cho chúng ta tất cả mối liên hệ với hoạt
động mạng
- Đối với luồng dữ liệu này, sẽ cung cấp cho chúng ta các gói tin liên
quan
- Đối với tiến trình này, chỉ cho chúng ta keystroke của người dùng

Hình Luồng dữ liệu mạng trong Walleye

Để quan sát trực quan các thông tin thu nhận được, Honeynet cài đặt một
webserver, được truy cập dựa trên SSL (Secure Socket Layer) kết nối được
mã hóa thông qua một giao diện quản lý. Giao diện đồ họa người dùng (GUI
– Graphical User Interface) gọi là Walleye giúp chúng ta tiếp cận dễ dàng để
cấu hình và bảo trì Honeywall. Gần như tất cả các phần được cấu hình trong
quá trình cài đặt Honeywall có thể được sửa đổi với sự trợ giúp của giao diện
web này.
Ngoài ra khả năng phân tích dữ liệu được tích hợp vào trong Walleye, cho
phép theo dấu và phân tích tất cả các hoạt động của Honeypot. Hình 4.7 chỉ ra
tổng quan tất cả luồng dữ liệu vào ra trong 24 giờ qua. Thật vậy, Walleye
nhanh chóng xác định từ biểu đồ luồng dữ liệu này, nếu có một tấn công xảy
63
ra, cho bất kỳ luồng dữ liệu đi ra là nghi ngờ. Luồng dữ liệu đi ra được thể
hiện bằng màu vàng, ngược lại các tấn công được ghi nhận bởi IDS được thể
hiện bằng màu đỏ.

Hình Cây tiến trình trong Walleye

Dữ liệu sebek có thể được quan sát với Walleye dưới dạng biểu đồ các tiến
trình (cây tiến trình), như hình 4.8. Biểu đồ này cung cấp cho người phân tích
một cái nhìn tổng quan chính xác về các hành vi của kẻ tấn công đang thực
hiện trong honeypot, cũng như các chương trình đang được thực hiện trong
đó.
Đối với một phân tích chuyên sâu (in – depth) các dữ liệu thu nhận được,
Walleye có khả năng trích ra các kết nối mạng dưới định dạng PCAP, chuẩn
định dạng cho dữ liệu gói thu nhận được. Với dữ liệu PCAP mà Walleye cung
cấp chúng ta có thể sử dụng các công cụ phân tích chuyên sâu như Ethereal để
xem nội dung của tệp tin PCAP.
Giao diện đồ họa web của Honeywall còn gọi là Walleye cho phép chúng ta
hiển thị và phân tích tất cả dữ liệu thu nhận được và tạo mối tương quan giữa
64
chúng trong Honeynet. Thông thường, một tấn công hay xâm nhập ban đầu
được khám phá thông qua việc phát hiện các sự kiện mạng khả nghi. Hình
dưới đây minh họa khả năng Walleye hiển thị chi tiết luồng dữ liệu mạng
được phát hiện bởi Honeywall

Hình Luồng dữ liệu mạng hiển thị bởi Walleye

Người thực hiện phân tích nên bắt đầu thanh tra sự kiện bằng việc phân
tích một luồng dữ liệu mạng. Trong ví dụ này, một sự tương tác giữa hệ
thống 192.168.100.66 (được kiểm soát bởi hacker) và một honeypot tại địa
chỉ mạng 1921.68.100.150 đã được phát hiện. Luồng dữ liệu mạng tương ứng
với luồng dữ liệu TCP với cổng nguồn là 1135 và cổng đích là 45295. Một
vài gói tin được trao đổi trong mỗi hướng kết nối và luồng dữ liệu mạng này
đã tạo ra hai cảnh báo Snort IDS khác nhau. Luồng dữ liệu này dường như có
mối quan hệ với tiến trình có số PID (số định danh tiến trình) là 2340 trên
honeypot.
Hình dưới đây minh họa mức chi tiết được cung cấp bởi modul phân tích
bằng cách chỉ ra biểu đồ tiến trình gắn với các luồng mạng trước đó.

65
Hình Minh họa một phần biểu đồ tiến trình

66
Ví dụ này chỉ ra một Honeypot nền Linux bị tấn công bằng phương
thức tấn công tràn bộ đệm thông qua lỗi “trans2open” Samba. Lỗ hổng này
được khai thác thành công bởi kết nối gắn với tiến trình PID 2340. Tiến trình
bị gây tổn hại này sẽ tạo ra hai tiến trình shell Unix khác nhau, “sh” (PID
2341 và PID 2342). Shell thứ hai được sử dụng bởi kẻ hacker để thực hiện
một vài câu lệnh trên honeypot, như là “uname”, “id”, “cat”, “ls” hay
“passwd”. Biểu đồ trên cung cấp cho chúng ta một cái nhìn chi tiết về đầy đủ
chuỗi các bước của một tấn công.

Tất cả các thông tin cần thiết để xây dựng nên biểu đồ tiến trình được
cung cấp bởi Sebek. Giao diện Walleye cung cho phép xem xét cụ thể chi tiết
thêm về các tiến trình được thu nhận bởi Sebek. Bằng cách sử dụng khả năng
này, người phân tích thậm chí có thể xác định các tệp được truy cập trong
suốt quá trình tấn công và nhận được các câu lệnh xác định được thực hiện
bởi kẻ tấn công.

Hình dưới đây minh họa các hoạt động gắn với tiến trình shell “sh”
(PID 2342) trong biểu đồ tiến trình ở hình trên. Tiến trình này mở rất nhiều
tệp thư viện khác nhau, như là “/etc/ld.so.cache” hay “lib/libtermcap.so.2.0.8”
và thực hiện một vài câu lệnh (command) được đánh bởi hacker và được thu
nhận bởi Sebek thông qua hàm hệ thống “read” như “uname –a”, “id”, “cat
/etc/passwd” hay “ls –l /”.

67
Hình “Keystroke” thu nhận được bởi Sebek trong Walleye
Mô hình dữ liệu trong Honeynet giúp cải thiện, nâng cao khả năng
phân tích dữ liệu, cho phép người phân tích dễ dàng thanh tra tất cả các hoạt
động đang diễn ra trong Honeynet.

3.4 Tổng hợp và lập báo cáo


Sau khi phân tích, bước cuối cùng trong quá trình thu thập và phân tích
là tổng hợp và lập báo cáo. Bước này sẽ tổng hợp các thông tin trong quá
trình thu thập và phân tích, đưa ra hiện trạng của hệ thống và các khuyến nghị
cho người quản trị mạng.

68
Câu hỏi và bài tập

Thực hành
Áp dụng quy trình thu thập và phân tích thông tin an ninh mạng từ hệ thống
Honeynet/Honeypot

Hướng dẫn cài đặt hệ thống Honeynet


Bước 1: Cài đặt và cấu hình Honeywall
a) Cài đặt
Quá trình thực hiện Honeywall khá đơn giản, sau khi đưa đĩa cài đặt
Honeywall Roo vào, màn hình sau xuất hiện:

Hình Màn hình cài đặt Honeywall


Sau đó thực hiện theo hướng dẫn, quá trình cài đặt sẽ diễn ra tự động.
Lưu ý: sau khi cài đặt, dữ liệu trên ổ cứng sẽ bị xóa hết, bởi vậy cần phải sao
lưu trước khi cài đặt

69
b) Cấu hình
Sau khi Honeywall được cài đặt, nhiệm vụ đầu tiên là cấu hình hệ
thống. Trên thực tế, Honeywall là một gateway - nơi luồng dữ liệu vào / ra hệ
thống Honeynet phải đi qua, hoạt động ở chế độ cầu (bridge) sử dụng iptable,
snort_inline để kiểm soát dữ liệu. Ngoài ra, Honeywall sử dụng snort,
pcap_api để thu nhận dữ liệu trên mạng. Honeywall bản roo 1.1-hw-1 (kernel
FC3) tích hợp Sebekd 3.0.3 để thu nhận dữ liệu Sebek từ phía Sebek client
gửi về, cùng với công cụ hỗ trợ phân tích Walleye, giao diện đồ họa dựa trên
nên Web. Honeywall cung cấp một giao diện kiểu hội thoại để cấu hình tệp
/etc/Honeywall.conf

Hình 5.7 Màn hình cấu hình Honeywall


Dưới đây là các tham số quan trọng chứa trong tệp /etc/Honeywall.conf
# This Honeywall's public IP address(es)
HwHPOT_PUBLIC_IP=10.1.1.1 10.1.1.2

# The name of the externally facing network interface


HwINET_IFACE=eth0

# The name of the internally facing network interface


HwLAN_IFACE=eth1

# Enable the SEBEK collector which delivers keystroke and files


# to a remote system even if an attacker replaces daemons such as sshd
HwSEBEK=yes

70
# Specify the SEBEK destination host IP address
HwSEBEK_DST_IP=10.1.1.253

# Specify the SEBEK destination port


HwSEBEK_DST_PORT=1101

# Specy the network interface for remote management. If set to br0, it


# will assign MANAGE_IP to the logical bridge interface and allow its use
# as management interface. Set to none to disable the management
# interface.
HwMANAGE_IFACE=eth2

# IP of management Interface
HwMANAGE_IP=10.0.0.18
Toàn bộ nội dung tệp cấu hình Honeywall.conf có thể tham khảo tại phần phụ
lục.
Sau khi cấu hình xong trên Honeywall, chúng ta có thể quản lý Honeywall
thông qua giao diện Web tại địa chỉ: https://10.0.0.18 (như hình minh họa
dưới đây)

71
Hình Giao diện quản lý Honeywall
Bước 2: Cài đặt và cấu hình Sebek
a) Cài đặt
Chúng ta thực hiện cài đặt Sebek client trên các honeypot nhằm thực
hiện thu nhận các hành động của hacker trên từng honeypot.
Cài đặt Sebek client trên hệ điều hành WINDOWS
- Tải tệp tin Sebek – Win32 – 3.0.4.zip
- Giải nén tệp tin và chạy tệp cài đặt Setup.exe
- Sau khi cài đặt xong, thực hiện cấu hình thông qua chương trình
Configuration Winzard.exe (các tham số được đề cập ở phần cấu
hình)
Cài đặt Sebek client trên hệ điều hành LINUX RED HAT 9.0
- Tải tệp tin sebek – linux – 3.0.3.tar.gz
- Thực hiện quá trình cài đặt
tar –xzf sebek-linux-3.0.3.tar.gz
cd sebek-linux-3.0.3
./configure
make

72
make install
- Quá trình cài đặt tạo ra tệp sebek – linux – 3.0.3 – bin.tar, thực hiện
tiếp việc cài đặt
Tar –xf sebek-linux-3.0.3-bin.tar
Cd sebek-linux-3.0.3-bin
- Kết thúc quá trình cài đặt, thực hiện shell sbk_install.sh
./sbk_install.sh
Chú ý: Trước khi thực hiện shell sbk_install.sh chúng ta phải thực hiện sửa
đổi nội dung của tệp này theo các tham số cài đặt cho Sebek client (trình bày
ở phần tiếp theo)
b) Cấu hình
Dưới đây là một số tham số cơ bản sử dụng cấu hình cho Sebek client
Cấu hình trên Linux
#----- DESTINATION_IP:
#-----
#----- sets destination IP for sebek packets
#-----
DESTINATION_IP="10.1.1.253"

#----- DESTINATION_MAC:
#-----
#----- sets destination MAC addr for sebek packets
#-----
DESTINATION_MAC="00:16:35:0E:A2:82"

#----- DESTINATION_PORT:
#-----
#----- defines the destination udp port sebek sends to
#-----
DESTINATION_PORT=1101

Cấu hình trên Windows

73
Hình Cấu hình Sebek Client trên Windows

74
CHƯƠNG 4. KỸ THUẬT PHÂN TÍCH CƠ BẢN

4.1 Phân tích gói tin


Khái niệm: Phân tích nội dung gói tin là thực hiện thanh tra, phân tích
nội dung dữ liệu bên trong một hay nhiều gói tin. Quá trình phân tích này
thường được tiến hành để xác định các gói tin quan trọng, phát triển phân
tích luồng dữ liệu và xây dựng lại nội dung.
Phân tích nội dung gói tin được đề cập đến nghệ thuật phân tích và
thanh tra các giao thức trong một tập các gói tin. Việc phân tích gói tin để xác
định các gói tin quan tâm và hiểu được cấu trúc và mối quan hệ để thu thập
chứng cứ và tạo điều kiện cho việc phân tích sâu hơn. Để xác định các gói tin
quan tâm thì cần sử dụng kỹ thuật lọc để cô lập các gói tin dựa trên các trường
giao thức hoặc danh sách của nó. Ngoài ra còn có thể tìm kiếm cho các chuỗi
hoặc mẫu nội dung gói tin để xác định mục tiêu phân tích và cả các giao thức
sử dụng vẫn chưa được biết. Việc hiểu rõ cấu trúc gói tin là rất quan trọng
trong việc tái tạo thông tin liên lạc, tập tin chuyển giao, hoặc bất kỳ dòng dữ
liệu nào. Việc chia nhỏ một gói tin, một nhóm các gói tin thường xuyên sẽ
giúp cho chúng ta xác định được các công cụ thích hợp để khai phá bằng
chứng và khôi phục lại thông tin đã mất.

4.1.1 Phân tích giao thức


Phân tích giao thức là tiến hành kiểm tra một hoặc nhiều trường trong
một giao thức, điều này rất cần thiết cho việc phân tích gói tin bởi vì việc

75
thanh tra gói tin phải được thực hiện trên đúng cấu trúc truyền thông để có thể
hiểu được nội dung gói tin hay luồng dữ liệu.
Việc phân tích thông tin an ninh mạng luôn phải được chuẩn bị để có
thể phân tích và nắm vững các giao thức chưa từng được phổ biến. Hơn nữa,
tin tặc thỉnh thoảng phát triển các giao thức mới, hoặc phát triển, mở rộng các
giao thức trước đó nhằm giao tiếp và đưa thêm một số chức năng mới để thực
hiện ý đồ của kẻ tin tặc.
Việc phân tích giao thức bao gồm một số phần cơ bản: xác định giao thức,
giải mã giao thức, xuất dữ liệu và trích rút dữ liệu.

4.1.1.1 Xác định giao thức


Hiện nay, người ta sử dụng một số phương pháp chính để xác định một giao
thức:
- Tìm kiếm các giá trị nhị phân/thập lục phân/ASCII phổ biến thường
được đi kèm trong một giao thức cụ thể.
- Thông tin nhận dạng trong đóng gói giao thức
- Sử dụng các cổng TCP/UDP, nhiều trong số đó liên quan đến dịch vụ
đạt chuẩn.
- Phân tích các chức năng của địa chỉ nguồn, đích của máy chủ.
- Kiểm tra sự có mặt của giao thức nhận biết.

a) Tìm kiếm các giá trị nhị phân/thập lục phân/ASCII phổ biển thường đi
kèm trong một giao thức cụ thể.
Hầu hết các giao thức có chứa các chuỗi bit thường xuất hiện ở trong các gói
dữ liệu được kết hợp với giao thức, ở những nơi có thể đoán được. Theo
IANA.21 thì các giao thức đóng gói trong gói tin IP này là giao thức TCP.
Một cách đơn giản để xác định giao thức là kiểm tra các giao thức TCP/UDP
và số cổng được sử dụng. Có 65.535 số cổng cho mỗi giao thức TCP và UDP.
IANA đã công bố danh sách các cổng TCP/UDP tương ứng với các dịch vụ
mạng ở lớp cao hơn.

76
Trong ví dụ này chúng ta có thể thấy chuỗi thập lục phân “0x4500” thường
đánh dấu cho sự bắt đầu của một gói tin IPv4.
b) Thông tin nhận dạng trong đóng gói giao thức

Hình . Chi tiết giao thức IP trong Wireshark. Gói tin IP chứa thông tin về giao
thức bên trên nó (trong trường hợp này là giao thức TCP, 0x06).

Giao thức thường chứa thông tin chỉ ra kiểu giao thức được đóng gói, trong
hình 4.2 chúng ta có thể xác định giao thức ở tầng 3 là giao thức IPv4. Byte
thứ 9 của IP Header chỉ ra giao thức đóng gói bên trong gói tin IP. Trong
trường hợp này, giá trị byte thứ 9 là 0x06, tương ứng với giao thức TCP. Dựa
trên những thông tin này chúng ta có thể chỉ ra giao thức TCP được sử dụng
trong gói tin IP này.

77
c) Sử dụng các cổng TCP/UDP, nhiều trong số đó liên quan đến dịch vụ đạt
chuẩn.

Một cách đơn giản và phổ biến để xác định giao thức này là bằng cách kiểm
tra các số cổng TCP hoặc UDP sử dụng. Có 65.535 số cổng có thể cho mỗi
giao thức TCP và UDP. IANA đã công bố danh sách các cổng TCP / UDP
tương ứng với các dịch vụ mạng lớp cao hơn cụ thể. Bạn có thể xem danh
sách trên trang web của IANA, và hầu hết các thông tin tương tự cũng được
lưu giữ trong thư mục / etc / dịch vụ tập tin trên hầu hết các hệ thống UNIX /
Linux.

78
d) Phân tích các chức năng của địa chỉ nguồn, đích của máy chủ
Thông thường, tên máy chủ và các dịch vụ nó cung cấp có thể xác định các
giao thức sử dụng

79
4.1.1.2 Giải mã giao thức
Giải mã giao thức là kỹ thuật thông dịch các dữ liệu trong khung theo một cấu
trúc, cho phép hiểu đúng nghĩa mỗi bit trong truyền tin. Một số bít khác được
sử dụng để mô tả giao thức của nó và tạo điều kiện trong truyền tin. Các bít
khác mô tả giao thức đóng gói lớp cao hơn hoặc trong phần payload của nó.
Trong mọi trường hợp mục đích của việc hiểu biết của các bít cụ thể trong
một khung và giải thích chúng theo một cấu trúc giao thức. Để giải mã lưu
lượng mạng theo một đặc tả giao thức cụ thể thì chúng ta cần:
- Tận dụng bộ giải mã tự động tích hợp sẵn trong công cụ
- Tham khảo các tài liệu được công bố công khai và tự giải mã lưu
lượng truy cập
- Viết bộ giải mã cho riêng mình.

80
4.1.1.3 Trích xuất trường

81
Khi đã xác định được giao thức sử dụng và xác định được phương pháp để
giải mã nó. Bước tiếp theo là trích xuất các giá trị của trường cụ thể. Nó
không đáng kể trong việc phân tích giao thức sử dụng wireshark. Có thể sử
dụng tshark để xuất ra PDML bằng cách sử dụng tùy chọn “-T”. Đầu tiên là
thấy thông tin nói chung và lớp 2 khung dữ liệu, tiếp theo là lớp 3, chi tiết
giao thức IP, và sau đó là giao thức đóng gói cao hơn. Trường cuối cùng hiển
thị là tên của các tập tin đã được chuyển giao sử dụng OFT.

4.1.2 Phân tích nội dung gói tin


Hiện nay, người ta sử dụng ba kỹ thuật cơ bản để phân tích nội dung
gói tin: Khớp mẫu (Pattern Matching), trích xuất các trường trong giao thức
(Parsing Protocol Fields) và lọc chọn gói tin (Packet Filtering). Dưới đây sẽ
trình bày cụ thể về ba kỹ thuật cơ bản nói trên.
4.1.2.1 Khớp mẫu
Là phương pháp xác định các gói dữ liệu quan tâm bằng cách kết hợp
các giá trị cụ thể trong gói chụp. Một danh sách gói chụp mà một danh sách
các hoạt động cần điều tra và làm rõ. Chúng ta có thể tận dụng các danh sách
gói chụp để phân tích được quan tâm trong các hoạt động của hệ thống. Danh
sách gói chụp để xác định gói dữ liệu hoặc dữ liệu quan tâm trong lưu lượng
mạng.
Sử dụng công cụ Ngrep để chụp các hoạt động, cũng như các gói tin đáng
phân tích. Đầu tiên sẽ tạo ra các danh sách gói chụp được quan tâm
82
Hình. 2.2.Danh sách các gói chụp trong công cụ Ngrep

Đầu ra ở trên, chúng ta thấy được một số thông tin hữu ích cho việc phân tích:
- Địa chỉ IP nguồn của gói tin chứa đoạn giao dịch có địa chỉ
192.168.1.158
- Địa chỉ IP đích là 64.12.24.50
- Chuỗi tìm kiếm: secret/recipe/Ann

4.1.2.2 Trích xuất các trường trong giao thức


Là trích xuất các nội dung của các trường trong giao thức trong các gói tin
chúng ta quan tâm. Chúng ta sẻ dụng tshark để trích xuất tất cả dữ liệu AIM
từ tệp thu thập được.

83
4.1.2.3 Lọc chọn gói tin
Là nghệ thuật tách các gói tin dựa trên các giá trị của các lĩnh vực trong
siêu dữ liệu giao thức hoặc tải trọng. Thông thường lọc các gói tin bằng cách
sử dụng bộ lọc BPF hoặc bộ lọc hiển thị wireshark.
a) Ngôn ngữ lọc gói tin Berkely (BPF)
Trong thực tế luồng dữ liệu truyền trên mạng có dung lượng rất lớn
điều này gây rất nhiều khó khăn cho người phân tích trong việc thu thập và
phân tích thông tin an ninh mạng.
Libpcap cung cấp một ngôn ngữ lọc rất mạng với tên gọi cú pháp lọc
gói tin Berkeley (BPF). Sử dụng lọc BPF cho phép chúng ta quyết định luồng
dữ liệu nào được chặn bắt và phân tích, còn luồng dữ liệu nào chúng ta bỏ
qua. BPF cho phép chúng ta lọc luồng dữ liệu dựa trên việc so sánh giá trị
trong các trường ở giao thức tầng 2,3 và 4. Nó được xây dựng sẵn các hàm
“nguyên thủy” cho phần lớn các trường giao thức phổ biến. BPF được xây
dựng rất đơn giản từ các hàm “nguyên thủy” như “host” và “port”. BPF có thể
sử dụng các chuỗi điều kiện, sử dụng các hàm logic như AND và OR
Cú pháp BPF được sử dụng rộng rãi và hỗ trợ cho các công cụ thu thập
và phân tích .
Ví dụ, chúng ta muốn chỉ xem luồng dữ liệu với địa chỉ IP 192.168.0.1
giao tiếp với hệ thống khác ngoại trừ 10.1.1.1 trên cổng 138, 139 hoặc 445:

Lọc gói tin theo từng byte, ví dụ ip[8] < 64


Loc gói tin theo từng bit, vi dụ ip[0] & 0x0F > 0x05

Để giảm lưu lượng mạng, sử dụng công cụ tcpdum với bộ lọc BPF để tìm ra
các gói tin của địa chỉ IP nguồn và đích.

84
Hình. 2.3.Sử dụng tcpdum để lọc các gói tin
Sử dụng wireshark để bắt các gói dữ liệu lọc và xem có thể nhận được thêm
thông tin về cuộc trò chuyện.

85
4.2 Phân tích luồng dữ liệu
Trước khi thực hiện phân tích luồng dữ liệu, chúng ta cần xem xét khái niệm
về luồng dữ liệu là gì?

Định nghĩa luồng dữ liệu


Trong RFC 3679, một “luồng dữ liệu” được định nghĩa là "một chuỗi
các gói tin được gửi từ một nguồn cụ thể tới một đích, mọi đích hoặc nhiều
đích mà nguồn mong muốn để gán nhãn như một luồng riêng. Một luồng có
thể bao gồm tất cả các gói trong một kết nối truyền tải cụ thể hoặc một dòng
dữ liệu media. Tuy nhiên, một luồng không nhất thiết phải ánh xạ 1:1 tới một
kết nối truyền tải. Tùy theo mục đích thực tế, xác định tất cả các phân đoạn
TCP tạo ra luồng dữ liệu có thể được thực hiện chặt chẽ trong bản than giao
thức TCP tại tầng 4, bởi vì giao thức TCP được xây dựng theo cơ chế cung
cấp đảm bảo độ tin cậy, kiểm soát luồng và duy trì trạng thái. Luồng dữ liệu
có thể được xây dựng dựa trên các giao thức tầng vận tải khác, bao gồm UDP
(giao thức phi kết nối và không cung cấp cơ chế so sánh để giám sát hoặc xác
định luồng)
86
Như trong RFC 3679, nếu một điểm cuối muốn xác định một luồng,
bản thân luồng sẽ được xác định bởi một vài giao thức quản lý việc thiết lập,
bảo trì và hoàn tất. Như vậy, hệ thống trung gian (như bộ chuyển mạch, bộ
định tuyến hoặc tường lửa) có thể được cấu hình để theo sát và xác định
luồng.
Bất kể luồng nào được truyền qua giao thức TCP, một luồng cụ thể
được xác định bởi một vài giao thức thiết lập kết nối, theo dấu các phân đoạn
dữ liệu gửi nhận và kết thúc kết nối khi thích hợp.

4.2.1 Lọc dữ liệu


Lọc dữ liệu là thuật ngữ chung cho việc giới hạn một lượng lớn thông
tin thành một tập hợp thông tin nhỏ hơn có chung một số đặt điểm. Đây là
một trong những kỹ thuật cơ bản nhất được sử dụng hầu hết trong việc phân
tích luồng dữ liệu. Phân các kỹ thuật lọc dữ liệu đã được trình bày khá chi tiết
trong phần lọc chọn gói tin, chúng ta có thể tham khảo mục 4.1.2.3.

4.2.2 Lựa chọn các giá trị nổi bật


Trong việc phân tích luồng dữ liệu, thông thường chúng ta phải lựa
chọn các giá trị nổi bật hay còn gọi là từ khóa (keyword) có liên quan đến các
sự kiện hay việc phân tích. Căn cứ trên các giá trị này chúng ta tiến hành tìm
kiếm theo định dạng ASCII hay Unicode những luồng dữ liệu có chứa những
từ khóa đó. Điều này cho phép người phân tích chọn lọc ra những luồng dữ
liệu hoặc điểm mốc để tiến hành thu hẹp và tập trung phạm vi phân tích.
Thông thường, người phân tích thường chú ý đến các giá trị nổi bật như
các địa chỉ IP khả nghi, cổng, ngày tháng, thời gian …

4.2.3 Chuẩn đoán


Mọi hoạt động đều để lại dấu vết trên mạng, một dấu hiệu đơn giản như
một lượng lớn luồng dữ liệu định hướng tới một máy chủ cụ thể có thể chỉ ra
một hoạt động đáng nghi ngờ, và người phân tích có thể chỉ ra đó là dấu hiệu
của một cuộc tấn công từ chối dịch vụ vào hệ thống. Đối với những dấu hiệu
phức tạp hơn như hành vi hoạt động phá hoại của mã độc cụ thể được lưu lại

87
và khi người phân tích nhận biết những dấu hiệu này trong hệ thống mạng thì
có thể đưa ra suy đoán hệ thống đang bị lây nhiễm loại mã độc này.
Trong luồng dữ liệu mạng một số thành phần chúng ta cần quan tâm
khi đối sánh mẫu để phát hiện các hành vi bất thường:
 Địa chỉ IP nguồn và địa chỉ IP đích là những manh mối rất quan
trọng tiết lộ cho chúng ta biết về nguyên nhân và mục đích của
luồng dữ liệu. Các địa chỉ IP cung cấp cho chúng ta biết chúng xuất
phát từ mạng nội bộ, mạng Internet, vị trí địa lý hoặc tổ chức đăng
ký sử dụng và các yếu tố khác.
 Cổng: phần lớn thông tin số hiệu cổng giúp chúng ta nhận biết các
ứng dụng, các dịch vụ cụ thể đang được sử dụng, số hiệu cổng được
sử dụng trong luồng dữ liệu cũng có thể giúp chúng ta biết hệ thống
đang thực hiện việc dò quét cổng hoặc đạng bị thăm dò, từ đó giúp
xác định được các hoạt động nguy hại tới hệ thống.
 Giao thức và cờ hiệu: giao thức ở lớp 3 và lớp 4 thường được theo
dõi trong luồng dữ liệu nhằm xác định kết nối đã hoàn thành xong
hay chưa hoặc tìm ra sự khác biệt giữa các kết nối đã bị từ chối bởi
tường lửa, quét cổng và chuyển dữ liệu thành công. Ngoài ra còn có
thể dự đoán nội dung và mục đích của luồng dữ liệu.
 Hướng luồng dữ liệu: hướng của dòng dữ liệu là rất quan trọng, nó
có thể cho biết các dữ liệu trong hệ thống đang bị rò rỉ hoặc đang bị
các phần mềm gián điệp tải về.
 Khối lượng dữ liệu được truyền: khối lượng dữ liệu truyền đi giúp
chỉ ra kiểu hoạt động và xác định việc truyền dữ liệu ở các tầng trên
thành công hay thất bại. Ví dụ, nhiều gói tin TCP dung lượng nhỏ có
thể chỉ ra đây là dấu hiệu của hoạt động dò quét cổng, ngược lại gói
tin có dung lượng lớn hơn có thể chỉ ra đây là một việc truyền tệp.
Ngoài ra việc phân phối dữ liệu truyền đi trong khoảng thời gian
cũng có nhiều ý nghĩa, một lượng lớn truyền đi trong thời gian ngắn

88
sẽ có sự khác biệt khi cũng lượng dữ liệu này truyền đi trong một
thời gian lâu hơn.
Dưới đây là một ví dụ một số dấu hiệu mà người phân tích có thể sử
dụng để phán đoán trong quá trình phân tích:
 Quan hệ nhiều – một (Many to One) giữa các địa chỉ IP
Nếu nhiều địa chỉ IP gửi lượng lớn dữ liệu truy cập đến một địa chỉ IP,
điều này là có thể là dấu hiệu của:
- Một cuộc tấn công từ chối dịch vụ phân tán tới địa chỉ IP đích
- Syslog server
- “Drop box” kho lưu trữ dữ liệu trên địa chỉ IP đích
- Máy chủ thư tín tại địa chỉ IP đích
 Quan hệ một – nhiều (one to many) giữa các địa chỉ IP
Nếu một địa chỉ IP gửi lượng dữ liệu lớn tới nhiều địa chỉ IP, điều này
là dấu hiệu
- Web server
- Máy chủ thư tín tại địa chỉ IP nguồn
- SPAM bot
- Warez server
- Hoạt động quét cổng mạng
 Quan hệ nhiều – nhiều (Many to many) giữa các địa chỉ IP
Nếu nhiều địa chỉ IP gửi dữ liệu đến nhiều địa chỉ IP khác nhau thì dấu
hiệu đó có thể là:
- Chia sẻ dữ liệu mạng ngang hàng
- Lây nhiễm virus lan rộng
 Quan hệ một – một (One to one) giữa hai địa chỉ IP
Với một địa chỉ IP gửi dữ liệu cho một địa chỉ IP khác thì có thể đó là:
- Tấn công có mục tiêu đối với một hệ thống cụ thể.
- Truyền tin bình thường.

89
Tất nhiên, ngữ cảnh phân tích đóng vai trò quan trọng, các thông tin về cổng,
giao thức, thời gian và những thông tin khác giúp chúng ta giới hạn dữ liệu và
đối tượng phân tích trong phân tích luồng dữ liệu.
Ngoài những dấu hiệu đơn giản, chúng ta có thể chuẩn đoán dựa trên những
dấu hiệu phức tạp hợp tổ hợp từ nhiều dấu hiệu khác nhau, ví dụ: quét cổng
dựa trên TCP SYN thông thường có những đặc điểm sau:
- Chỉ có một địa chỉ IP nguồn
- Một hoặc nhiều địa chỉ IP đích
- Số điểm cổng tăng dần đều
- Lượng dữ liệu của các gói tin vượt qua một giá trị quy định trong một
khoảng thời gian
- Sử dụng giao thức TCP
- Cờ của giao thức TCP đối với kết nối ra bên ngoài được thiết lập cờ
“SYN” (không có kết nối TCP đầy đủ)
Ngoài ra, người phân tích thậm chí còn có thể xác định cụ thể những
công cụ tạo ra quá trình quét cổng, sử dụng ghi lại fingerprinting, kể từ khi
các công cụ tạo ra ứng dụng quét cổng, những thuật toán khác nhau để lựa
chọn cổng nguồn và cổng đích, kích thước của sổ TCP và các đặc điểm khác.
Chúng ta sẽ xem xét một ví dụ phân tích sử dụng kỹ thuật phân tích luồng dữ
liệu
Hệ thống mạng của công ty ANFRF thu thập được luồng dữ liệu mạng, họ
nhận thấy có hiện tượng kẻ tấn công thực hiện quét cổng từ địa chỉ IP bên
ngoài, 172.30.1.77 bắt đầu tại thời điểm 2011-04-27 12:51:46 từ bản ghi của
hệ thống Cisco ASA, dữ liệu thu thập được chuyển đổi định dạng Cisco’s
NetFlow v9.
Thiết bị Cisco ASA kết nối ba khu vực subnet của hệ thống mạng, ngoài ra nó
cũng được cấu hình với một cổng SPAN để giám sát subnet bên trong và khu
vực DMZ. Tại cổng SPAN có một bộ cảm biến thu thập của Argus thu thập
dữ liệu từ hai khu vực subnet (192.168.30.0/24 và 10.30.30.0/24).
90
Hai tệp sau đây chứa thông tin thu thập mạng:
 cisco-asa-nfcapd.zip: chứa thông tin luồng dữ liệu từ mạng vành đai
Cisco ASA.
 argus-collector.ra: chứa thông tin luồng dữ liệu định dạng của Argus từ
mạng bên trong và khu vực mạng DMZ nhờ cổng SPAN
Nhiệm vụ của chúng ta thực hiện phân tích luồng dữ liệu nhằm:
 Xác định hệ thống bị tấn công
 Xác định kẻ tấn công đã khám phá được gì về kiến trúc mạng của hệ
thống
 Đánh giá nguy cơ của dữ liệu bị kẻ tấn công khai thác

Chúng ta thực hiện các bước phân tích như sau:


Trước hết , chúng ta sử dụng nfdump để duyệt các bản ghi liên quan đến hệ
thống tấn công chúng ta đã biết (172.30.1.77), bắt đầu từ thời điểm (2011-04-
27 12:51:46.130)

Chúng ta thấy rằng, cổng nguồn của hệ thống phía kẻ tấn công giống
nhau, chúng cố gắng tạo kết nối nhanh đến các nguồn đích khác nhau trên hệ

91
thống mục tiêu tấn công (172.30.1.231). Đây thường là hành vi phổ biến của
một hệ thống do quét cổng tự động.
Sử dụng nfdump, chúng ta có thể xác định được cổng mà kẻ tấn công
phát hiện đang được mở trên hệ thống mục tiêu (172.30.1.231). Chú ý rằng
tường lửa “TỪ CHỐI” luồng dữ liệu đến hầu hết các cổng mục tiêu. Luồng
dữ liệu không bị từ chối bởi tưởng lửa nếu nó thực sự hướng tới hệ thống mục
tiêu và có phản hồi trả lại. Trong trường hợp này, chỉ duy nhất một cổng
không bị từ chối từ tường lửa là cổng 22, giao thức TCP trên 172.30.1.213
như dưới đây:

Chúng ta sẽ xem xét luồng dữ liệu này trong phần tiếp theo.
Kẻ tấn công bên ngoài và luồng dữ liệu trên cổng 22
Trong câu lệnh nfdump dưới đây, chúng ta thực hiện lọc các bản ghi dữ
liệu liên quan đến kẻ tấn công và cổng 22 trên giao thức TCP. Bắt đầu tại thời
điểm 2011-04-27 12:52:30.111, chúng ta sẽ thấy một loạt các kết nối trên
cổng 22 với dung lượng 3,755 byte. Những kết nối này diễn ra khá nhanh,
khoảng 6 giây một lần, kết thúc tại thời điểm 2011-04-27 13:00:45.452.

92
Trước hết, mặc định cổng 22 được gán cho giao thức SSH được quy
định bởi IANA. Như chúng ta thấy, tại thời điểm 2011-04-27 13:00:41.962,
số lượng byte được truyền đột ngột thay đổi. Theo sau đó là các kết nối
nhanh, và tại thời điểm 2011-04-27 13:01:00.133 một luồng được tạo ra giữa
kẻ tấn công (172.30.1.77) và mục tiêu (172.30.1.231) trên cổng 22, giao thức
TCP. Độ dài của luồng này ngụ ý rằng kết nối có khả năng đã thành công.
Chúng ta sẽ theo dõi bằng cách kiểm tra luồng dữ liệu bên trong và các nhật
ký xác thực nếu có thể.
Căn cứ vào thời thời gian, số cổng và kích cỡ dữ liệu truyền đi của
luồng, chúng ta giả thiết rằng những luồng này chỉ ra một tấn công dò mật
khẩu sử dụng phương pháp vét cạn tự động trên máy chủ SSH chạy trong hệ
thống mục tiêu có khả năng đã thành đăng nhập thành công.
Chúng ta chuyển qua luồng dữ liệu bên trong của Argus, tìm kiếm
luồng dữ liệu liên quan đến kẻ tấn công, 172.30.1.77 và cổng 22, chúng ta
thấy:

93
Địa chỉ NAT bên trong 10.30.30.20 tương ứng với địa chỉ bên ngoài
172.30.1.231 (chúng cùng trên một máy chủ). Thông kê cho thấy 8 giây/lần
giữa Cisco ASA và máy chủ Argus, luồng dữ liệu Argus chỉ ra cùng tạo kết
nối tới TCP cổng 22 trên cùng máy chủ trong cùng khoảng thời gian. Sử dụng
cờ -z, chúng ta cũng thấy trạng thái TCP thay đổi trong luồng như hình dưới
đây:

Từ thông tin này, chúng ta kẻ tấn công trước tiên khởi tạo một kết nối
tới 10.30.30.20:22 ba lần (gửi gói tin TCP SYN, nhận một SYN-ACK, và gửi
một RST). Kết nối này bị hủy bỏ bởi kẻ tấn công trước khi một bắt tay TCP
được hoàn thành. Điều này phù hợp với hành vi kiểm tra của bộ quét cổng
cho thấy cổng 22 đang được mở sử dụng quét TCP SYN. Nhận được a TCP
SYN/ACK trở lại từ máy chủ, kẻ tấn công kiểm tra lại cổng này thực sự đã
được mở:

Tiếp theo, chúng ta xem một loạt kết nối ngắn tới cổng 22 xấp xỉ 6
giây/lần. Trong luồng dưới đây, kẻ tấn công gửi một gói tin TCP SYN, nhân
một gói tin SYN ACK thiết lập một bắt tay TCP đầy đủ, gửi và nhận gói tin

94
FIN. Đây là một giao tiếp đầy đủ ở tầng 4 TCP, trên đó các dữ liệu ứng dụng
đã được gửi đi.

Cuối cùng, bắt đầu tại thời điểm 04-27-11 13:00:44 (tính theo thời gian
của Argus), chúng ta thấy hai kết nối nhỏ hơn, ngắn và hoàn tất theo sau hàng
loạt kết nối TCP dài trên cổng 22 trong đó gói tin FIN không được lưu lại
trong luồng. Những kết nối TCP được thiết lập này giữa 172.30.1.77 và
10.30.30.20:22 tiếp tục từ 04-27-11 13:01:08 tới 04-27-11 13:15:55, khoảng
hơn 15 phút:

Các kết nối ngắn xen kẽ giữa những kết nối dài phù hợp với mẫu của một tấn
công dò mật khẩu sử dụng phương pháp vét cạn đã thành công và theo sau bởi
một đăng nhập SSH từ bên ngoài bắt đầu từ thời điểm 13:15:55. Mẫu này
được minh họa bởi công cụ “ragraph” của Argus trong hình x.x. Câu lệnh
dưới đây sẽ tạo ra biểu đồ như dưới đây:

95
The DMZ Victim – 10.30.30.20 (aka 172.30.1.231)
Chúng ta sẽ lấy thêm thông tin về các hoạt động của 10.30.30.20, hệ thống
DMZ mục tiêu. Trước hết, chúng ta sẽ nhận thấy kết nối khác SSH từ
172.30.1.77 đến 10.30.30.20 xuất hiện tại thời điểm 04-27-11 13:01:08 (trong
dữ liệu bản ghi luồng Argus). Kích thước dữ liệu truyền đi trong luồng này
lớn hơn bất thường so với trước đó, điều này chỉ ra một kết nối thành công.
Hơn khoảng một phút sau, chúng ta thấy một kết nối khác trên cổng 22. Thời
gian chậm hơn của những kết nối này cũng ngầm cho chúng ta biết có khả
năng một kết nối sau khi sử dụng thành công cộng cụ vét cạn tự động.
Sau đó, 10.30.30.20 giao tiếp trên cổng 80 tới một địa chỉ IP bên ngoài,
91.189.92.16:80. Sau đó, tại thời điểm 13:03:44, những gói tin này được tập
trung tới một địa chỉ IP một cách tuần tự, tăng dần – rất phổ biến cho quét
cổng tự động. Chú ý rằng tất cả các đích địa chỉ IP tuần tự trên cùng cổng (80
và sau đó 443). Hệ thống 10.30.30.20 tiếp tục gửi các gói tin TCP SYN tới
cổng 80 và 443 ở mạng bên trong tới thời điểm 13:03:49. Trong hầu hết các
trường hợp, hệ thống mục tiêu không trả lời với gói tin TCP SYN/ACK hoặc
bất kỳ gói tin nào khác, như thể hiện trong cột “State” dưới đây:

96
Chúng ta có thể dễ dàng tìm kiếm trên các bản ghi luồng nơi số lượng
gói tin gửi đi từ hệ thống mục tiêu trở lại công cụ quét cổng lớn hơn 0.

Từ đây, chúng ta thấy hai hệ thống 192.168.30.30 và 192.168.30.90 gửi


gói tin TCP RST trở lại 10.30.30.20. Điều này chỉ ra rằng cổng 80 không
được mở trên những hệ thống trên, nhưng hệ thống vẫn hoạt động.
Tại thời điểm 04-27-11 13:03:49, 10.30.30.20 thay đổi hành vi và bắt
đầu gửi gói tin SYN tới khoảng cổng trên hai hệ thống đã phản hồi,
192.168.30.30 và 192.168.30.90. Việc này diễn ra tới thời điểm 13:03:50
(khoảng 2 giây). Hành vi này chỉ ra việc quét cổng đối với hai máy,
192.168.30.30 và 192.168.30.90 như dưới đây:

97
Chúng ta có thể sử dụng câu lệnh Bash shell để sắp xếp và đếm các
cổng đích mục tiêu. Như hình dưới, 10.30.30.20 nhắm đến 1,000 cổng khác
nhau.

Bằng cách lọc gói tin TCP SYN/ACK, chúng ta có thể thấy kẻ tấn công tìm
thấy 192.168.30.90:22 (TCP), 192.168.30.30:22(TCP) và
192.168.30.30:514(TCP) đang mở:

Tiếp theo, giữa khoảng thời gian 13:04:09 tới 13:04:14, 10.30.30.20 bắt đầu
gửi gói tin TCP SYN tới các địa chỉ IP tuần tự trên mạng 192.168.30.1/24,
nhưng chỉ nhắm tới cổng TCP 3389:

98
Điều này chỉ ra việc quét cổng nhắm tới cổng TCP 3389 (thông thường
được gắn liền với giao thức Microsoft’s Remote Desktop Protocol). Chúng ta
có thể thấy hệ thống nào trả lời bằng cách tìm kiếm các trả lời TCP
SYN/ACK trong khung thời gian này:

Kẻ tấn công tìm thấy ba hệ thống trên mạng 192.168.30.0/24 có mở


cổng TCP 3389: 192.168.30.100, 192.168.30.101 và 192.168.30.102.
Sau khi quét cổng 3389 hoàn tất, chúng ta sẽ thấy một loạt các luồng từ hệ
thống DMZ 10.30.30.20 tới 192.168.30.101 trên cổng 3389 (RDP), trải ra
trong khoảng thời gian 11 phút

Xem lại trong cùng khoảng thời gian này, kết nối SSH hoạt động giữa
kẻ tấn công bên ngoài, 172.30.1.77 và nạn nhân DMZ, 10.30.30.20. Dựa trên
các dữ liệu ghi lại được, chúng ta thấy hệ thống nạn nhân trên DMZ,
10.30.30.20 tiến hành quét cổng vào mạng bên trong ANFRF và sau đó kết
nối tới cổng 3389 (RDP) trên hệ thống bên trong, 192.168.30.101.
99
Nạn nhân bên trong – 192.30.1.101
Bây giờ, chúng ta sẽ lọc luồng dữ liệu liên quan đến 192.30.1.101.
Trong hình dưới đây, chúng ta lại thấy luồng dữ liệu quét cổng phía trong,
theo sau một kết nối 3389. Sau đó, tại thời điểm 13:05:33 chúng ta thấy một
kết nối ra ngoài trực tiếp từ 192.168.30.101 tới hệ thống kẻ tấn công
172.30.1.77 trên cổng TCP 21 (FTP).

Giao thức FTP được sử dụng để truyền tệp giữa các hệ thống. Luồng
dữ liệu này chỉ ra dữ liệu được truyền từ hệ thống bên trong, 192.168.30.101
tới kẻ tấn công, 172.30.1.77. Lọc luồng dữ liệu liên quan tới FTP (cổng mặc
định TCP 20/21) chúng ta thấy:

100
Luồng tại cổng 20 tại 13:07:03 có 16,874 byte được chuyển ra từ hệ
thống bên trong, 192.168.30.101, tới kẻ tấn công bên ngoài.
Nếu chúng ta tương quan dữ liệu Argus bên trong liên quan đến FTP
với luồng dữ liệu ASA. Chúng ta quay lại dữ liệu nfdump ban đầu (Ghi nhớ
địa chỉ bên trong 192.168.30.101 được NAT và tương đương với địa chỉ bên
ngoài 172.30.1.227, chúng cùng hệ thống). Điều chỉnh khoảng thời gian 8
giây, chúng ta thấy cùng kết nối trong đầu ra dưới đây. Chú ý rằng, luồng dữ
liệu này từ Cisco ASA chỉ ra kích thước payload lớp 4.
Bản ghi cuối trên cổng 20 chỉ ra tệp truyền ra bên ngoài từ
172.30.1.227 (192.168.30.101) tới kẻ tấn công (172.30.1.77) có kích thước
15,872 bytes (hoặc nhiều tệp được chia nhỏ ra).

Dòng thời gian


Dựa trên phân tích bản ghi luồng dữ liệu, chúng ta thống kê lại các sự kiện
theo dòng thời gian

101
Tổng kết sự kiện
 Kẻ tấn công (172.30.1.77) tiến hành quét cổng máy nạn nhân khu vực
DMZ 172.30.1.231 (10.30.30.20)
 Kẻ tấn công tìm thấy cổng TCP 22 (SSH) đã được mở trên máy nạn
nhân ở khu vực DMZ 172.30.1.231
 Kẻ tấn công (172.30.1.77) thực hiện tấn công dò quét mật khẩu sử dụng
phương pháp vét cạn trên giao thức SSH vào máy nạn nhân
172.30.1.231 (10.30.30.20). Sau khoảng 8 phút, tấn công thành công.
 Kẻ tấn công đăng nhập vào máy nạn nhân 172.30.1.231 (10.30.30.20)
sử dụng SSH và tiến hành quét cổng vào mạng bên trong.
 Hai hệ thống, 192.168.30.30 và 192.168.30.90, trả lời tại cổng TCP/22
 Từ máy nạn nhân 172.30.1.231 (10.30.30.20) kẻ tấn công cũng tiến
hành quét cổng mạng bên trong và phát hiện ra cổng 3389 (RDP) đang
mở
 Ba máy có cổng 3389 mở: 192.168.30.100, 192.168.30.101 và
192.168.30.102.
 Kẻ tấn công, thông qua máy nạn nhân 172.30.1.231 (10.30.30.20), đăng
nhập vào 192.168.30.101 nhờ giao thức RDP
 Trên máy 192.168.30.101 (172.30.1.227) kẻ tấn công sử dụng FTP kết
nối ra bên ngoài tới 172.30.1.77
 Kẻ tấn công truyền một tệp từ mạng bên trong 192.168.30.101
(172.30.1.227) tới hệ thống kẻ tấn công 172.30.1.77.

102
4.3 Phân tích nhật ký sự kiện
Các nhà phân tích thường sử dụng một số tập tin nhật ký để tiến hành
điều tra một máy tính bị xâm nhập. Thông thường họ sẽ bắt đầu từ nhật ký sự
kiện của hệ thống, chả hạn như hệ thống Windows sử dụng Windows Event
Logs, sau đó họ sẽ tiến hành phân tích các tệp nhật ký của các ứng dụng,
người phân tích có thể phục hồi một lượng lớn thông tin hỗ trợ như lịch trình
và nội dung của từng sự kiện diễn ra. Tùy thuộc vào loại máy, chức năng và
dịch vụ đang chạy, bạn có thể có nhiều bản ghi có thể chứng minh rất có giá
trị.
Đây là một điều rất tốt từ khía cạnh người phân tích bởi vì nó chỉ ra nếu
hệ thống nhật ký được kích hoạt thì những gì diễn ra bên trong hệ điều hành
đều được ghi lại. Trong trường hợp hệ thống bị xâm hại thì những dữ liệu
nhật ký đó có thể được xem xét và điều tra để tìm ra những dữ liệu liên quan
tới tổn hại đó.

103
Phương pháp chính để phân tích nhật ký các sự kiện bao gồm ba bước chính:
(i) tập hợp, (ii) sàng lọc, (iii) phân tích. Trước tiên, một khi nhật ký sự kiện
được tập hợp từ các hệ thống giám sát, sau đó việc sàng lọc được thực hiện để
loại bỏ các dữ liệu không cần thiết gây nhiễu cho quá trình phân tích. Bước
cuối cùng, dữ liệu sau khi sàng lọc được phân tích để thu được các đặc tính
của hệ thống. Hiện nay, có nhiều công cụ hỗ trợ chúng ta thực hiện quá trình
trên.

Trong phần này chúng tôi tập trung vào hai kỹ thuật quan tâm nhất đó là kỹ
thuật sàng lọc và kỹ thuật phân tích
(i) Sàng lọc
Đối với một khối lượng dữ liệu lớn được thu thập trong hệ thống thực
tế, một bước cực kỳ quan trọng đó là sàng lọc loại bỏ các dữ liệu không cần
thiết gây nhiễu cho quá trình phân tích. Quá trình sàng lọc bao gồm hai kiểu
hoạt động chính:
+ Loại bỏ các dữ liệu không cần thiết
+ Kết hợp các dữ liệu thành các nhóm dữ liệu liên quan đến cùng một
sự kiện, hoặc cùng một vấn đề quan tâm.
(ii) Phân tích

104
4.4.1 Phân tích sự kiện trong hệ thống Windows
Nhật ký sự kiện trong Windows, ký hiệu bởi phần mở rộng .evt
hoặc .evtx, chứa một lượng lớn dữ liệu cho người phân tích. Tệp nhật ký sự
kiện là tệp nhị phân chứa thông tin được tạo ra bởi hành động từ hệ thống,
ứng dụng, sự kiện truy cập hệ thống, hoặc sự kiện thống kê đối tượng truy
cập.
Nhật ký sự kiện của hệ thống Windows thường được đặt tại đường dẫn
dưới đây:
 %Systemroot%\system32\config\ (Windows XP).
 %Systemroot%\system32\winevt\Logs\ (Windows 7)
Trong một hệ thống Windows XP thông thường có 3 loại nhật ký sự kiện
chính nên được xem xét bởi một người phân tích. Hệ thống Windows Vista,
Server 2008 and 7 đưa bổ sung thêm một số kiểu nhật ký sự kiện phù hợp hơn
với các định dạng XML.

Log Miêu tả
Sự kiện an ninh Bao gồm các sự kiện như đăng nhập hợp lệ và không
(SecEvent.Evt) hợp lệ nỗ lực, sự kiện liên quan đến nguồn tài nguyên
sử dụng như tạo ra, và mở cửa hoặc xóa các tập tin hoặc
các các đối tượng. Các mặt hàng này phải được chọn để
kiểm toán để tạo ra mục đăng nhập

Sự kiện ứng Chứa các sự kiện đăng nhập bởi các chương trình. Ví
dụng dụ, một chương trình cơ sở dữ liệu báo cáo một lỗi tập
(AppEvent.Evt) tin
Sự kiện hệ thống Chứa các sự kiện hệ thống như một trình điều khiển
(SysEvent.Evt) thành công bắt đầu hoặc không tải hoặc một dịch vụ bắt
đầu hoặc không để bắt đầu khởi động hệ thống

Event Viewer là một công cụ tích hợp trong Windows cho phép xem lại các
sự kiện đã xảy ra trong hệ thống một cách chi tiết với nhiều tham số cụ thể
như: người dùng, thời gian, dịch vụ, … Các sự kiện rời rạc được tập hợp và

105
phân loại thành những sự kiện giống nhau giúp chúng ta lấy được những
thông tin cần thiết một cách nhanh chóng.
Event Viewer đã phân vùng các sự kiện riêng biệt cho từng ứng dụng, một
máy chủ cài đặt mặc định sẽ có ba phân vùng chính trong Event Viewer:
- Sự kiện ứng dụng (Application)
- Sự kiện an ninh (Security)
- Sự kiện hệ thống (System)

Hình x. Event viewer chia các vùng log riêng biệt cho các ứng dụng

a) Sự kiện ứng dụng


Sự kiện ứng dụng ghi lại các sự kiện của các ứng dụng khác từ các nhà
sản xuất khác như symantec hay các ứng dụng mail…Thường thiết lập trong
ứng dụng là mặc định của các ứng dụng nên chỉ có thể đọc nó mà không thiết
lập được.
Nhật ký loại sự kiện này có nhiều sự kiện được ghi lại bởi các ứng
dụng hoặc chương trình. Nhiều ứng dụng sẽ ghi lại các lỗi của chúng ở đây
trong các nhật ký ứng dụng. Điều này có thể rất hữu ích, đặc biệt là nếu thông
tin lưu lại trên một máy chủ mà có một máy chủ cơ sở dữ liệu như SQL
Server được cài đặt. Kiểm tra bản ghi này có thể cung cấp manh mối một
người nào đó đã được cố gắng để tổn hại cơ sở dữ liệu.

106
Hình : Sự kiện được lưu lại trong Application Log
b) Sự kiện an ninh
Đây là một trong những sự kiện quan trọng nhất trong hệ thống, nó ghi
lại toàn bộ các thiết lập audit trong group policy. Nhưng trong các thiết lập
group policy quan trọng nhất là thiết lập giám sát quá trình đăng nhập vào hệ
thống, truy cập dữ liệu.

Hình .Thiết lập Audit trong Group Policy

107
Trong thiết lập hình x, việc thiết lập giám sát quá trình truy cập đăng
nhập và đăng xuất trong hệ thống sẽ được thực hiện. Thiết lập như trên toàn
bộ người dùng đăng nhập hay đăng xuất vào/ra hệ thống đều được ghi lại sau
khi thiết lập trong Group Policy.

Hình .Sự kiện đăng nhập vào hệ thống của người dùng được ghi lại
Sau khi đăng nhập thành công vào máy tính mở Event viewer ra xem
và phát hiện ra hệ thống đã lưu lại thông tin như sau:
username: vangtrang
computer: vnexperts
event: success audit
time: 8:10:06 PM.
Vậy ý nghĩa của việc xem lại log này là gì: chúng ta hãy tưởng tượng
một dữ liệu trong máy của bạn đã bị mất và trong log ghi lại là đã được xoá
lúc 12h đêm vậy bạn cần quy trách nhiệm đó cho ai, bạn cần biết trong thời
điểm đó những ai đang online và logon, logoff trong thời gian đó.
Thiết lập giám sát một thư mục dữ liệu quan trọng, với yêu cầu đặt ra là giám
sát toàn bộ các quá trình truy cập các action cụ thể với thư mục này. Trong ổ
E có thư mục quan trọng VNEDATA việc cần thiết của bạn là đưa ra các thiết
lập giám sát toàn bộ truy cập vào thư mục này.
Bước 1: Thiết lập audit object access trong group policy ở cả chế đọ
success và fails

108
Hình. Thiết lập audit object access
Với thiết lập trong group policy có nghĩa bạn chỉ enable tính năng cho
phép hệ thống ghi lại mà thôi, mặc định hệ thống sau khi thiết lập này sẽ ghi
lại event với các đối tượng hệ thống như registry… Còn muốn một quá trình
truy cập vào folder mà được lưu lại thì phải thiết lập trên folder đó.
Bước 2: Thiết lập audit trên thư mục
Chuột phải vào folder chọn properties sang tab security chọn advanced,
chuyển sang tab audit chọn trong cửa sổ add chúng ta add group với tên là
everyone (everyone là một system group trong Windows).

109
Hình. Thiết lập audit toàn bộ các event truy cập vào folder:
Sau khi thiết lập bạn restart lại máy và thử truy cập vào folder này xem trong
event viewer có ghi các sự kiện với folder này không.

110
Hình. 2.4.Xem lại audit object acces
Nhìn vào event ta nhận thấy vào lúc 8:36:42 PM user với tên là vangtrang từ
máy tính có tên VNEXPERTS đã bị failure trong quá trình truy cập vào folder
E:\VNEDATA. Ứng dụng của tính năng audit và xem lại các event cho ta
phát hiện những kẻ truy cập bất hợp pháp và quy trách nhiệm cụ thể cho
những kẻ phá hoại.
c) Sự kiện hệ thống
Sự kiện hệ thống được thiết lập mặc định của hệ thống Windows giúp
chúng ta xem lại các sự kiện: khởi động, dừng, tạm dừng, vô hiệu hay kích
hoạt các dịch vụ trong hệ thống Windows. Hình x, minh hoạ một dịch vụ khi
khởi động bị lỗi tại một thời điểm được ghi lại. Nguyên nhân do hệ thống có
địa chỉ IP trùng với địa chỉ IP của hệ thống khác trong mạng.

111
Hình. 2.5.Xem một event trong system log
Log properties giúp chúng ta cấu hình dung lượng file log, cách xoá các event
cũ đi như thế nào, và những tính năng lọc các sự kiện.

112
Hình. 2.6.Tab General của system properties
Đây là thiết lập cho security properties: Với file log tên là gì và ở đâu: C:\
Windows\System32\Config\SecEvent.Evt
Dung lượng tối đa cho file log này là 512 KB bạn có thể cấu hình lại to hơn
hoặc nhỏ hơn, nếu dung lượng file long lớn hơn 512 KB hệ thống sẽ tự xoá
các sự kiện cũ theo thuật toán First in First out – (vào trước vào thì ra trước).
Nếu dung lượng chưa được 512KB nhưng với thiết lập mặc định các event sẽ
bị xoá sau 7 ngày.

113
Hình. 2.7.Tab filter của system properties
Trong tab này với khi chưa cấu hình lọc mặc định sẽ hiển thị toàn bộ các sự
kiện bạn có thể lọc chỉ hiển thị theo "event types: như information, waring,
erro, success audit, hay failure audit" hoặc có thể thiết lập lọc các sự kiện theo
thời gian và ID của các sự kiện

114
4.4.2 Phân tích sự kiện trong hệ thống UNIX/Linux
Có hai giao diện chính để tổ chức khai thác event logging theo quy
định của hướng dữ liệu thông tin. Chúng là những nhà cung cấp giao diện và
giao diện người dùng. Mọi giao diện được cung cấp bởi quản lý log.

Hình. 2.8.Dòng dữ liệu thông tin


Giao diện cung cấp được sử dụng bởi phần mềm để báo cáo sự kiện.
Với tất cả các sự kiện, cơ sở thông tin phải được cung cấp để làm cho dữ liệu,
sự kiện có ích cho việc phân tích và được chấp nhận trong đăng nhập.
Hệ thống sự kiện logging thu thập thêm thông tin, chẳng hạn như, thời gian
của sự kiện, kết hợp với các nhà cung cấp dữ liệu, cung cấp và tạo ra một bản
ghi sự kiện.
Các sự kiện đăng nhập hệ thống bảo gồm:
 Tùy chọn có pink () và syslog()/vsyslog() thông báo và ghi bản ghi sự
kiện POSIX.
 Tùy chọn và dựa trên ngưỡng quy định, ngăn chặn khai thác log của
các sự kiện trùng lặp được đăng nhập thành công nhanh chóng và giảm
suy thoái hiệu suất hệ thống.
 Tùy chọn và dựa trên các tiêu chí quy định, chụp các sự kiện được ghi
vào nhật ký
 Bộ lọc sự kiện được đọc từ nhật ký, dựa trên các tiêu chí cụ thể.
 Thông báo cho người dùng, khi các sự kiện phù hợp với các tiêu chí
của người dùng.
 Cung cấp một phương pháp để cấu hình sự kiện kích thước bộ đệm.

115
Giao diện người dùng:
- Lựa chọn sự kiện dữ liệu từ nhật ký
- Hiển thị sự kiện bản ghi trong một chuẩn, hoặc trong một định dạng tùy
chỉnh theo quy định.
- Đăng ký trong thông báo khi các sự kiện phù hợp với các tiêu chuẩn
được ghi vào nhật ký.
- Người dùng sử dụng giao diện bình thường bao gồm người sử dụng hệ
thống và các nhóm dịch vụ hỗ trợ.
Quản lý log cung cấp các phương pháp:
- Quản lý kích thước của bản ghi sự kiện.
- Xác định các tiêu chí để tự động loại bỏ các sự kiện bản ghi không
quan tâm, cắt bỏ các bản ghi.

Hệ thống UNIX và Linux như Solaris, Ubuntu Linux và Mac OS X sử


dụng hệ thống nhật ký sự kiện mặc định dựa trên “syslog”.
Syslog là một giao thức client/server được thiết kế cho truyền các thông tin và
sự kiện trong một mạng IP. Ban đầu, nó được phát triển vào những năm
1980s, mặt dù nó chưa được chuẩn hóa thành tài liệu bởi các tiêu chuẩn cho
tới năm 2001 (IETF RFC 3164), song nó là cơ chế mặc định ghi lại nhật ký
các sự kiện trong hầu hết các phiên bản hệ điều hành dựa trên nền tảng
UNIX/Linux. Mặc định, dịch vụ syslog chạy cục bộ và cho phép người quản
trị hệ thống có thể cấu hình ghi lại những sự kiện của hệ điều hành và các ứng
dụng. Syslog cũng có thể được cấu hình để nhận những nhật ký sự kiện từ
những hệ thống khác thông qua các kết nối socket mạng (tệp cấu hình mặc
định của syslog thường được đặt ở đường dẫn /etc/syslog.conf). Nhiều ứng
dụng với chức năng được xây dựng sẵn cho việc tương tác với dịch vụ syslog
cục bộ và từ xa. Một vài chương trình Windows phía client thu thập và
chuyển logs tới máy chủ syslog. Để có thể log từ xa, cổng syslog theo quy
định là UDP 514. Bởi vì syslog mặc định nhận qua UDP , việc truyền không
đòi hỏi độ tin cậy ở tầng mạng, và các gói tin có thể bị mất mà không cần

116
phục hồi. Bên cạnh đó, nó cũng không cung cấp chức năng mã hóa và xác
thực.
Theo IETF RFC 3164, syslog có định dạng dữ liệu như sau:
{PRI}: độ ưu tiên của thông báo
{VERSION}: phiên bản giao thức syslog đang sử dụng
{TIMESTAMP}: thời gian xác định theo chuẩn quy định RFC 3339
{HOSTNAME}: máy gửi thông báo
{PROCID}: định danh tiến trình
{MSGID}: định danh thông báo
{STRUCTURED DATA}: cấu trúc dữ liệu nơi nội dung thông báo
được chứa.

Trong syslog, tham số Facility (cơ sở) là nhóm phân loại khác nhau của các
thông báo. Logs được gửi tới một cơ sở dựa trên tiến trình nguyên bản của
chúng. Ví dụ: thông báo được tạo ra bởi một ứng dụng thư tín thông thường
được gửi tới cơ sở thư tín. Việc gán này hoàn toàn có thể tùy biến bởi người
quản trị, và các facility local0 đến local 7 được dành riêng cho việc tùy biến
này. Thông thường các facility bao gồm auth, cron, deamon, kẻn, lpr, mail,
mark, news … như bảng dưới đây:

117
Độ ưu tiên chỉ ra mức độ quan trọng của thông báo, độ ưu tiên bao gồm:
debug, infor … như trong hình dưới đây. Chúng ta có thể cấu hình syslog để
lưu trữ thông báo trong các tệp khác nhau. (Mặc định, logs trong hệ thống
UNIX/Linux thường được lưu trữ trong /var/log).

118
Dưới đây là một ví dụ của thông báo syslog từ hệ thống Linux:
Apr 20 04:16:50 bbx-vip-1.blanco.com ntpd [4024]: synchronized to 10.13.136.1
Chúng ta thấy trường chứa độ ưu tiên trong này bởi vì nó không được yêu cầu
hoặc cấu hình trong hệ thống này. Khi chúng ta đưa thông báo này về đúng
định dạng của IETF, chúng ta sẽ thấy thông báo có dạng như sau:
Timestamp: Apr 20 04:16:50
Hostname: bbx-vip-1.blanco.com
ProcID: ntpd [4024]
Structured data: synchronized to 10.13.136.1
Thông báo này cho chúng ta biết tiến trình ntpd trên máy chủ bbx-vip-
1.blanco.com thực hiện đồng bộ thời gian với máy có địa chỉ 10.13.136.1 vào
ngày 20 tháng 04 tại thời điểm 04:16:50.

Ngoài các sự kiện do hệ điều hành chúng ta cần quan tâm đến nhật ký sự kiện
các ứng dụng. Bởi vì, bản ghi ứng dụng có thể cực kỳ hữu ích để thu thập, khi
họ cung cấp dữ liệu chuyên sâu về hoạt động ứng dụng giữa người sử dụng và
hệ thống. Bởi vì các định dạng ứng dụng đăng nhập thay đổi rất lớn, xác định
sự cố cụ thể và loại trừ sai tích cực có thể được thử thách, thậm chí với các
ứng dụng phổ biến như Apache Web Server và Squid proxy, với cơ sở người
dùng lớn và cũng thành lập của họ.

119
Như bạn thấy trong ví dụ 5-3, nhật ký máy chủ proxy bao gồm mức độ
chi tiết liên quan đến các giao dịch HTTP khác nhau. Khối lượng và chi tiết
của thông điệp trong một máy chủ proxy thường đòi hỏi các công cụ của bên
thứ ba để phân tích các bản ghi, chẳng hạn như AWStats, cưa, Sawmill,
Splunk.

Because application logs can be complex and capacious, you should only
collect them from the most critical systems, including those under regulatory
compliance requirements. If you’re not in IT, you’ll need to maintain a strong
relationship with IT application owners, as you will need their cooperation
and input to interpret the logs properly.

120
Bởi vì các bản ghi ứng dụng có thể phức tạp và dung lượng, bạn chỉ nên thu
thập chúng từ hệ thống quan trọng nhất, bao gồm những người dưới yêu cầu
tuân thủ quy định. Nếu bạn không phải trong lĩnh vực CNTT, bạn sẽ cần phải
duy trì một mối quan hệ mạnh mẽ với chủ sở hữu ứng dụng CNTT, vì bạn sẽ
cần sự hợp tác và đóng góp của họ để giải thích các bản ghi đúng.

121
Thực hành:
Thiết lập, cấu hình hệ thống phân tích sự kiện trong hệ thống Windows

122
Câu hỏi và bài tập
1. Trình bày sự khác nhau giữa luồng dữ liệu (flow) và phiên làm việc
(session)? Hãy đưa ra một ví dụ cụ thể để phân biệt sự khác nhau này.

2. Bạn hãy phân tích đoạn log dưới đây:

3. Đoạn log dưới đây cho chúng ta biết điều gì:

123
124
Bài thực hành 1: Phân tích dữ liệu thu thập từ tường lửa
Nhân viên an ninh tại ICCC tập hợp các nhật ký từ DHCP, bảng ARP và bảng
CAM, ngoài ra họ cũng cung cấp các tệp chứa dữ liệu cho việc phân tích:
fw-evidence.txt
dhcp.log
firewall.log

125
Bài thực hành 2: Phân tích dữ liệu thu thập từ hệ thống phát hiện xâm
nhập IDS
Hệ thống triển khai các bộ cảm biến Snort NIDS để phát hiện một loạt các sự
kiện bất thường bên trong hệ thống. Một cảnh báo đã được ghi lại tại thời
điểm 08:11:45 ngày 18/05/11 liên quan đến một đoạn mã thực thi bên trong
gửi đến cổng 80/TCP tại máy 192.168.1.169 từ một máy bên ngoài có địa chỉ
172.16.16.218. Đây là đoạn thông báo:

Hệ thống thu thập dữ liệu đã tập hợp các thông báo Snort và lưu trữ trong tệp
“tcpdump.log”. Hệ thống cũng tập hợp các cấu hình và luật liên quan đến cảm
biến Snort. Chúng được tập hợp trong các tệp dưới đây chứa các dữ liệu cho
việc phân tích:
alert – Một định dạng tệp văn bản chứa các thông báo mặc định của cảm biến
Snort, bao gồm thông báo như ở trên
tcpdump.log
snort.conf
rules
Hệ thống NIDS sử dụng MST (Mountain Standard Time).

126
Bài thực hành 3: Phân tích nhật ký từ hệ thống Window/Linux

127
CHƯƠNG 5 KỸ THUẬT PHÂN TÍCH NÂNG CAO

5.1 Phân tích thống kê


5.1.1 Phân tích tần suất
Một kỹ thuật rất đơn giản mà có thể được sử dụng là để đếm nguồn và
địa chỉ IP trong dòng nhật ký đến, trên tất cả các nguồn đăng nhập. Ý tưởng là
khá đơn giản: một thông số gắn với số lần xuất hiện của một địa chỉ IP đích
hoặc IP nguồn có thể là một dấu hiệu cảnh báo sớm rằng một cái gì đó đang
xảy ra, ví dụ như ai đó đang nhắm mục tiêu tấn công tại hệ thống này. Điều
này rất có ý nghĩa bởi vì các thiết bị an ninh và các thiết bị khác trong hệ
thống đều có địa chỉ IP. Ngay cả khi chúng ta không nhận được nguồn thông
tin IP, chúng ta biết điểm đến của các cuộc tấn công tiềm năng (thông thường
chúng thường được theo dõi bởi một bức tường lửa, hệ thống phát hiện xâm
nhập IDS hay một số phát hiện / kiểm soát bởi hệ thống khác).
Thời gian cũng là một yếu tố cần phải được xem xét ở dạng phân tích
này. Chúng ta không chỉ đơn giản thống kê các thông số về địa chỉ IP đích,
hay IP nguồn mãi mãi. Thông thường, sau một khoảng thời gian được xác
định trước (càng ngắn càng tốt), các tần số tích lũy cho một địa chỉ IP đích
hoặc địa chỉ IP nguồn nên được thống kê lại khi xuất hiện các địa chỉ IP đích
hoặc nguồn mới. Điều này cho phép máy chủ có địa chỉ IP với tần số thấp hơn
sẽ bị bỏ qua, trong khi những đối tượng khác có tần số cao hơn trong cùng
một khoảng thời gian sẽ được quan tâm phân tích kỹ hơn.
Phân tích thông kê tần suất là một kỹ thuật phân tích đơn giản, kỹ thuật
này có thể thực hiện tự động nhằm phát hiện khi một thống kê tần suất một
tham số nào đó vượt qua “giới hạn cảnh báo” hay còn gọi là đường cơ sở
128
5.1.2 Đường cơ sở (Baseline)
Đường cơ sở cung cấp một thước đo của một bộ dữ liệu. Trong đó nó
có thể giúp chúng ta:
- Nhận biết được các tình huống
- Phát hiện mối đe dọa mới
- Tính được giới hạn trung bình từ dữ liệu thu thập được để có thể tự
động đưa ra các cảnh báo phù hợp với tình huống dựa trên giới hạn đó.
- Ước lượng mức an ninh, độ an toàn của hệ thống thông qua một số
phép độ đo hay xu hướng …

Một số ví dụ thực thế của việc sử dụng đường cơ sở bao gồm:


- Số lượng truy cập trên cổng 443 trong một khoảng thời gian như một
ngày hay một tuần trước đó.
- Số lượng đăng nhập của người dùng trên máy chủ mỗi ngày
- Tần suất sử dụng lệnh su hàng giờ
- Thống kê số lượng cổng mới mở trên tường lửa hàng giờ
- Số lượng truy cập vào máy chủ mỗi ngày
Để tạo ra đường cơ sở, chúng ta cần một lượng dữ liệu lớn dưới dạng
chuẩn hoá và ý kiến phản hồi của các chuyên gia phân tích. Các thông tin
phản hồi là rất cần thiết để phân biệt các hoạt động không mong muốn xảy ra
với các hoạt động bình thường.
Ý tưởng ở đây là tính toán một đường cơ sở trong một khoảng thời gian
đủ để có thể thấy được hệ thống hoạt động bình thường là như thế nào. Sau đó
chúng ta có thể xem xét điều gì đang xảy ra ở ngoài đường cơ sở. Do đó vấn
đề có thể cải thiện độ chính xác của đường cơ sở đó là thu thập dữ liệu càng
nhiều càng tốt, thông thường chúng ta sẽ cần phải thu thập dữ liệu 4-6 tuần
hoặctối thiểu ít nhất là 1-2 tuần. Người quàn trị hệ thống có thể sử dụng các
công thức cơ bản để tính toán đường cơ sở. Trước tiên chúng ta có thể tính
trung bình để tìm giá trị trung bình cho các điểm dữ liệu theo công thức:

Tiếp theo là sử dụng công thức độ lệch chuẩn:

129
Độ lệch chuẩn được sử dụng để đo lượng biến đổi trong dữ liệu. Cuối cùng
chúng ta có thể tính sai số chuẩn theo công thức

Sai số chuẩn được sử dụng để xác định khoảng tin cậy. Công thức được sử
dụng để biểu thị một khoảng thời gian giữa cá giá trị và không được coi là có
liên quan đến thống kê.
Các bước để tính toán một đường cơ sở:
 Bước 1: Tính giá trị trung bình dữ liệu
 Bước 2: Tính độ lệch chuẩn
 Bước 3: Tính sai só chuẩn
 Bước 4: Nhân sai số chuẩn với 1.96. Một số văn bản sử dụng giá trị 2.
 Bước 5: Cộng và trừ các số thu được ở bước 4 để xác định khoảng tin
cậy 95%. So sánh dữ liệu tương lai với mốc thời gian này. Nếu giá trị
tương lai nằm trong giá trị này thì hệ thống bình thường và ngược lại.
 Bước 6: Thêm dữ liệu mới vào và loại dần dữ liệu cũ ra. Điều này rất
quan trọng. Cần cập nhật dữ liệu mới để phát hiện những thay đổi trong
hành vi.

Trong cơ sở dữ liệu nhật ký, chúng ta có thể sử dụng một số thông số dưới
đây để tiến hành quan sát và thực hiện kỹ thuật thống kê với đường cơ sở như:
- Số lần người dùng đăng nhập và đăng xuất thành công hoặc thất bại
- Lưu lượng mạng cả trong và ngoài hệ thống
- Lưu lượng mạng ở một số cổng, dịch vụ hay giao thức.
- Sử dụng hoặc truy cập bằng tài khoản quản trị hệ thống.
- Số lượng tiến trình đang chạy trên máy chủ
- Số lượng yêu cầu/ phản hồi giao thức DNS
- Số lượng yêu cầu/ phản hồi giao thức DHCP
- Tổng khối lượng dữ liệu nhật ký được gửi và nhận, điều này có thể
được sử dụng để phát hiện dữ liệu nguồn có thể đang bị tấn công.
130
- Số lượng tấn công mới
- Số lượng người dùng mới

Hình. Vòng đời đường cơ sở

a) Xác định giá trị ngưỡng


Ngưỡng được sử dụng để xác định khi một cái gì đó vượt qua giá trị cơ
bản. Ví dụ: Một máy chủ bình thường nhận được trung bình 10 lần đăng nhập
thất bại sau mỗi giờ. Nếu đột nhiên thấy con số này nhảy lên 23 thì đây là một
lý do khiến ta quan tâm và điều tra. Ở ví dụ này cho thấy trong một thời gian
nhất định nó đã vượt qua giá trị ngưỡng trung bình. Ngưỡng thường không
hữu ích khi được sử dụng với khoảng thời gian mở. Hoạt động bình thường
cũng có thể vượt qua ngưỡng nào đó. Đây là lý do tại sao đặt một thời gian

131
ràng buộc trên một ngưỡng sẽ giúp xác định những thứ ngoài định mức.
Nhưng trong một số thời gian bị ràng buộc là khá lớn.
Tự động hóa việc tạo ra các ngưỡng có thể hữu ích. Nhưng một cách tiếp cận
cho vấn đề này là xem dữ liệu nhật ký trong một khoảng thời gian cố định.
Trên cơ sở có thể thực hiện các phân tích sau:
- Thu thập lượng dữ liệu đăng nhập/ sự kiện mà không được nhìn thấy
trong khoảng thời gian nhất định đã cho phép.
- Thu thập dữ liệu đăng nhập/ sự kiện mà không được xem thời gian
ngưỡng cho phép.
Căn cứ vào số lượng thu thập được thì có thể xem được những hoạt động bất
thường. Điều này sẽ cung cấp lý do căn bản để phân tích cho thấy nguồn gốc
của những sự kiện này. Cũng có thể sử dụng cùng một logic với địa chỉ IP
đích xuất hiện trong DMZ, v.v…

b) Phát hiện bất thường


Phát hiện bất thường là phát hiện điều mà trước kia chưa từng được
nhìn thấy. Sử dụng một đường cơ sở để theo dõi khoảng tin cậy. Nếu ai đó
đang cố gắng tấn công vào hệ thống của bạn. Để làm cho họ không sẵn sàng
sử dụng, có thể gia tăng kết nối trong hệ thống và có thể phát hiện tấn công
DDOS trước khi nó tấn công vào hệ thống.

c) Tạo cửa sổ
Để xác định những trường hợp người sử dụng đăng nhập ngoài thời
gian thường thấy hoặc trái với thường lệ, sau thời gian làm việc bình thường.
Một điều đầu tiên mà cần theo dõi nhất là theo dõi các lần đăng nhập của mỗi
người dùng trong hệ thống. Sau đó thiết lập đường cơ sở để kiểm tra hành vi
và điều tra hành động của họ.
Kỹ thuật tạo cửa sổ mặc dù đơn giản nhưng là các hình thức để phân
chia khoảng cách, kích thước cửa sổ. Một ngưỡng nhỏ và tùy chọn có thể
được sử dụng để xác định xem độ lệch từ một mô hình trong thời gian đăng
nhập đã xảy ra.

132
5.1.3 Học máy (Machine Learning)
Học máy sử dụng thuật toán và phương pháp thống kê để tạo ra các hệ
thống đó để có thể học hỏi. Các khái niệm cơ bản của nhiều thuật toán không
giống như thiết lập đường cơ sở. Dữ liệu được sử dụng kết hợp với phương
pháp thống kê để học hỏi kinh nghiệm từ quá khứ và các hành vi để hoàn
thiện nhiệm vụ như Nhận dạng mẫu, hệ thống dự báo, phát hiện gian lận,
nhận dạng giọng nói. Học hỏi thiết bị thuật toán cơ bản rơi vào một trong hai
loại: có giám sát và không giám sát. Trong có giám sát có thể sửa các thuật
toán. Trong thuật toán không giám sát học hỏi từ dữ liệu có sẵn và cố gắng để
xác định trong các mối quan hệ trong bộ dữ liệu.
a) kNN (k-Neareast Neighbor)
kNN là một thuật toán về cơ bản nhằm mục đích phân loại các mẫu chưa biết
với một tậm của mô hình trước đây. Cần quan tâm trong việc phát hiện một
mô hình trong dữ liệu không có nhãn. Chìa khóa này là khoảng cách được sử
dụng để xác định mô hình được biết đến là không đúng với các khoảng cách.
Sử dụng công thức:

Những tiền đề cơ bản đằng sau lân cận gần nhất là xác định các tính năng của
các mô hình khác nhau. Mỗi tính năng biểu thị một cái gì đó độc đáo về mô
hình. Các mô hình và các tính năng đã có, nhiều khả năng có thể phát hiện
mẫu không rõ. Các mô hình đã xác định trước thì sẽ có thể phát hiện mẫu
không rõ. ở đây sử dụng công thức distance. Công thức này sử dụng hai
vector là p với q. Là một trong những tập mô hình được biết đến và khác mô
hình đang cố gắng để phát hiện. Việc lặp qua các vector và các tính năng của
mỗi mô hình.
Quy trình áp dụng các thuật toán kNN cho việc phân tích nhật ký như
sau:
Trước hết ta cần liệt kê một số thông số cần thiết như:
- Luồng dữ liệu ra ngoài vượt mức (Excessive outbound traffic – EOT)
- Luồng dữ liệu vào trong vượt mức (Excessive inbound traffic – EIT)

133
- Số lượng đăng nhập VPN sau mỗi giờ (VPN login after Hours –
VPNLI)
- Số lượng kết nối được tường lửa chấp nhận (Firewall Accepts – FWA)
- Số lượng kết nối được tường lửa loại bỏ (Firewall Drops – FWD)
- Login outside of internal network: LOIN
- Multiple Failed Login in a Row: MFL
- At Least 1 Successful Login: SL
- Single Source Probing Multiple Destination IPS: SSPMD.
- Single Source Probing Multiple Destination IPS and Port: SSPMDP
Tập hợp các mô hình cùng với những thiết lập đặc tính mà mỗi mẫu có. Một
cột cột trống có nghĩa là không có đặc tính này.

Bảng : Mẫu và các đặc tính

Bảng: mô hình với kết quả công nhận trong học máy

134
Phân loại và phát hiện kịch bản phải có nhiều sự kiện để tạo nên một
hành vi cấp độ cao hơn. Tức là phân loại các thông tin nhật ký nhưng cần
nhiều người để xác định mô hình.
Nếu áp dụng thuật toán k-NN thì có thể tạo ra một số kết quả. Như ở
bảng trên cho thấy kết quả chạy một vài mẫu chưa biết thông qua thuật toán
k-NN. Việc phân loại mẫu không xấu. Thuật toán k-NN được chọn bởi vì nó
dễ hiểu và dễ thực hiện. Một hạn chế sử dụng thuật toán k-NN là nó có thể
mất rất nhiều thời gian tính toán, nếu tập hợp các tính năng và các thiết lập.
Nó đòi hỏi nhiều bộ nhớ để xử lý.
b) Kết hợp phân tích thống kê với tương quan dựa trên luật
Ở phần trên kết quả thuật toán k-NN rất tương tự như trong quá trình quy
định. Các nhà cung cấp SIEM đã luôn luôn sử dụng phương pháp thống kê
cùng với việc xử lý thành phần quy định.
Điều này cho thấy dòng dữ liệu đầu cuối (end-to-end) của một bản ghi là các
cách thức thông qua đến đích cuối cùng. Tính toán thống kê nó đóng một vai
trò quan trọng. Khi cần mua một sản phẩm thương mại trên nền tảng SIEM
thì cần một số lưu ý:
- Một số nền tảng tất cả các quy tắc tương quan được tạo ra có chứa các
điều kiện thể hiện như tính toán thống kê.. Nền tảng khác cho phép
phân tích thống kê trong và say quy tắc tương quan và ngược lại.

Hình. Luồng xử lý cho mô hình thống kê và tương quan dựa trên luật

135
 Để dễ dàng mở rộng, nâng cấp thành phần thống kê của nền tảng thì có
thể tinh chỉnh các thành phần phân tích mà không cần một mức độ
thống kê.
 Sử dụng một số kỹ thuật khai phá dữ liệu để giúp ngăn chặc các mối đe
dọa của các tin tặc

5.2 Khai phá dữ liệu nhật ký


5.2.1 Khái niệm khai phá dữ liệu
Khai phá dữ liệu được dùng để mô tả quá trình phát hiện ra tri thức
trong CSDL, quá trình này kết xuất ra các tri thức tiềm ẩn từ dữ liệu giúp cho
việc dự báo trong kinh doanh, các hoạt động sản xuất, ... Khai phá dữ liệu làm
giảm chi phí về thời gian so với phương pháp truyền thống trước kia (ví dụ
như phương pháp thống kê).
Sau đây là một số định nghĩa mang tính mô tả của nhiều tác giả về khai phá
dữ liệu:
Định nghĩa của Ferruzza: “Khai phá dữ liệu là tập hợp các phương pháp
được dùng trong tiến trình khám phá tri thức để chỉ ra sự khác biệt, các mối
quan hệ và các mẫu chưa biết bên trong dữ liệu”.
Định nghĩa của Parsaye: “Khai phá dữ liệu là quá trình trợ giúp quyết định,
trong đó chúng ta tìm kiếm các mẫu thông tin chưa biết và bất ngờ trong
CSDL lớn”.
Định nghĩa của Fayyad: “Khai phá tri thức là một quá trình không tầm
thường nhận ra những mẫu dữ liệu có giá trị, mới, hữu ích, tiềm năng và có
thể hiểu được”.

5.2.2 Khai phá dữ liệu nhật ký


Khai phá dữ liệu còn gọi là khám phá kiến thức trong cơ sở dữ liệu, quá
trình khám phá các mô hình và các mối quan hệ với khối lượng lớn dữ liệu
thú vị và hữu ích. Kết hợp các công cụ thống kê và sự hiểu biết sẵn có với
quản lý cơ sở dữ liệu để phân tích lượng dữ liệu lớn được gọi là tập hợp dữ
liệu. Việc khai phá thông tin trong dữ liệu và việc lọc dữ liệu từ một lượng dữ

136
liệu lớn, cơ sở dữ liệu. Mục tiêu khai phá thông tin là để khám phá sự thật ẩn
trong cơ sở dữ liệu.
Điểm chung của việc khai phá dữ liệu
- Khai phá dữ liệu thực thi với một tập dữ liệu rất lớn
- Những dữ liệu này tồn tại trên một cấu trúc dữ liệu của một hệ
thống máy tính
- Dữ liệu có thể giúp chúng ta đưa ra một kết luận chính xác hoặc có
thể không
- Có một số kết quả hữu ích phân tích và tìm kiếm có thể đạt được
Việc khai phá dữ liệu một số cơ sở dữ liệu cho thấy điểm tương đồng nhất
định giữa nó và phân tích các bản ghi. Việc phân tích dữ liệu giúp chúng ta
hiểu và phân tích rõ các bản ghi. Khai phá dữ liệu bao gồm các phương pháp
như ứng dụng phần mềm, các kịch bản sử dụng. Việc khai phá dữ liệu liên
quan đến phân tích bản ghi bảo mật. Do đó nó được ứng dụng trong nhiều
lĩnh vực kinh doanh từ việc quản lý gian lận đến việc phân tích những rủi ro.
Có hai phương pháp khai phá dữ liệu đó là dự đoán và mô tả.
 Việc khai phá dữ liệu dự đoán được nhiều nhà quản trị sử dụng, việc
khai phá dữ liệu dự toán chỉ thực sự hiệu quả khi nó có thể biết được
những cái tiềm ẩn bên trong nó trong các bản ghi.
 Khai phá dữ liệu mô tả cũng được sử dụng để mô tả các bộ dữ liệu một
cách có thông tin, giải thích những gì đang xảy ra. Trong khai phá dữ
liệu dự đoán cho phép thực hiện dự báo về dữ liệu chưa có sẵn.

5.2.3 Quá trình khai phá dữ liệu


 Tiếp thu, tập trung phân tích các vấn đề trong vùng dữ liệu quan tâm và
liên quan đến nó. Các công cụ khai phá dữ liệu thực hiện phân tích, có
thể sẽ không tạo ra kết quả trừ khi người dùng hiểu được dữ liệu được
khai phá.
 Xác định mục tiêu là một bước tiến rõ ràng nhưng quan trọng. Trong
khi các kỹ thuật thăm dò được biết đến. Trong khi đó cũng cần phải thu
thập, chuẩn bị, và khai phá dữ liệu và những gì được thực hiện để đưa
ra kết quả.

137
 Cần xử lý và tiến hành làm sạch dữ liệu là cần thiết cho quá trình khai
phá dữ liệu được hiệu quả hoặc có thể xảy ra trong cơ sở dữ liệu. Qúa
trình này có thể chiếm tới 60% tất cả nỗ lực khai phá. Giai đoạn này
thường liên quan đến thiếu các bit thông tin cũng như có thể lặp lại
điểm dữ liệu, làm mềm dữ liệu bị nhiễu, xác định và điều chỉnh mâu
thuẫn khác trong tập dữ liệu
 Giảm và chuyển đổi dữ liệu liên quan đến giảm kích thước bổ sung của
dữ liệu cũng như áp dụng các thuật toán nhằm làm cho dữ liệu quản lý
hơn bằng loại bỏ một phần của tập dữ liệu
 Lựa chọn phương pháp để áp dụng là bước tiếp theo. Chúng ta cần
chọn một thuật toán cụ thể để thực hiện các phương pháp lựa chọn
trên. Cần thực hiện các thuật toán mới để tìm kiếm các mẫu cũng như
việc thực hiện các thuật toán hiện có. Sự lựa chọn đúng đắn là cơ sở
cho việc phân tích đúng đắn so với thảm họa của cơ sở dữ liệu bị lạm
dụng lâu dài.
 Chạy phần mềm khai phá để có được kết quả mong muốn.
 Các bước trên là phân tích bản ghi bình thường thì bước này là bước
hiểu được nguyên nhân và thu nhận được kết quả trả về chính xác
Khai phá dữ liệu là một công nghệ cho phép người tiếp cận ý tưởng trên gần
hơn so với bất kỳ phương pháp nào khác. Các kỹ thuật khai phá dữ liệu có thể
được áp dụng cho các mục đích phân tích các bản ghi.

5.2.4 Kỹ thuật phân tích bản ghi


Trong việc khai phá bản ghi là một kỹ thuật phân tích từ lúc bắt đầu
đăng nhập đến lúc đăng xuất. Lúc đăng nhập hệ thống đã thấy phát hiện bất
thường vì nó được thâm nhập từ trước, mặc dù nó không hoạt động khi hệ
thống không hoạt động nhưng nó được liên kết và tích hợp, cài sẵn vào trong
hệ thống. Các công nghệ khai phá dữ liệu được áp dụng từ việc khai phá dữ
liệu để đăng nhập dữ liệu.
Mục đích của việc khai phá dữ liệu:
- Nâng cao chất lương phân tích đăng nhập để cung cấp cho việc
khai phá dữ liệu dự đoán kịp thời

138
- Thực hiện các phương pháp tiên tiến, hiệu quả có sẵn mà nó không
ảnh hưởng đến chuyên môn của từng người.
Giám sát bao gồm các bản ghi, cũng như thông tin lưu lượng mạng, chẳng
hạn như công cụ netflow và bắt gói tin đầy đủ. Các nguyên lý chính của
phương pháp NSM là các nhà phân tích đánh giá cao tay nghề theo một quá
trình phân tích cũng được tối ưu hóa và chạy các công cụ để đạt được cái nhìn
sâu sắc từ dữ liện đến các bản ghi, cảnh báo. Một vấn đề nhỏ với điều này là
cần tập trung vào nhiệm vụ chính. Kết quả là toàn bộ phương pháp phá vỡ
không thành công. Vì nó dựa trên việc khả năng học hỏi, tư duy và phân tích.
Vì vậy phương pháp này sẽ còn hữu dụng trong vấn đề về an toàn mạng.
Bằng cách sử dụng khai phá dữ liệu và phân tích tùy chọn tự động khác, cần
di chuyển nhiều phương pháp phân tích tải trọng. Phần mềm và hệ thống tự
động. Khi tham gia phân tích sẽ cần chú ý đến giai đoạn đầu của quá trình,
khi thiết kế các phương pháp cụ thể như đã nêu ở các phương pháp trên.
Trong trường hợp này có thể xác định các chi tiết cụ thể của quá trình khai
phá, phân tích và sau đó cho phép các công cụ hoạt động để chạy các thuật
toán và hoạt động dựa trên các kết quả nhưng không giảm hiệu quả. Kỹ thuật
khai phá được áp dụng cho các bản ghi, ứng dụng các kỹ thuật khai phá dữ
liệu tiên tiến để phân tích bản ghi.
Cần phải xây dựng một hệ thống phân tích log tự động để giảm tải sức lao
động của con người. Trong thực tế nó chỉ là hứa hẹn nhưng nó còn phải đối
mặt một số pháh thức sau:
- Dữ liệu quá nhiều: Một khối lượng lớn dữ liệu của dữ liệu nhật ký
các hệ thống phân tích cũng như các nhà phân tích. Do đó cần ngăn
chặn và phá hủy lượng dữ liệu lớn như vậy đi vào hệ thống. Thật
vậy các bản ghi có thể tăng dần từ gigabytes lên đến terabytes. Vì
thế cần những công cụ để ngăn chặn lượng dữ liệu lớn đi vào hệ
thống.
- Không đủ dữ liệu: Phần quan trọng của dữ liệu bị mất là vì các lý
do khác nhau làm cho việc phân tích log nhiều pháh thức hơn.
- Hồ sơ khác nhau: Qúa nhiều nguồn đăng nhập khác nhau và giống
nhau, cần được phân tích để tìm ra địa chỉ thực. Vấn đề này là do
thiếu các tiêu chuẩn kiểm nghiệm phổ dụng. Hầu hết các ứng dụng
139
đăng nhập vào bất cứ định dạng phát triển bởi người sáng lập của
họ, dẫn đến pháh thức lớn hơn cho công việc phân tích.
- Báo động sai: Nhật ký là đầy đủ thông điệp, không phản ánh thực
tế trong bất kỳ trường hợp nào có thể lường trước được.
- Bản sao dữ liệu: Các bản ghi khác nhau chỉ đến các sự kiện tương
tự mà không có bất kỳ dấu hiệu nào cho thấy rằng. Tình trạng này
phức tạp bởi thiếu đồng bộ hóa thời gian giữa các nguồn đăng nhập
khác nhau.
- Khó có được dữ liệu: Trong khi một thiết bị có thể tạo ra các bản
ghi hoàn toàn hữu ích trong một định dạng riêng nó sẽ không hợp
tác với bộ sưu tập nhật ký. Định dạng như nhật ký hệ thống hoặc sự
kiện Windows NT. Tương tự như vậy, nhận được ghi lại sự hoạt
động của một hệ thống máy tính.
Các kỹ thuật được phát triển để đối phó với những thách thức, rủi ro.
Lý do khi khai phá các bản ghi thì cần có cả những cách tiếp cận khác:
- Giảm sự phụ thuộc vào kỹ năng phân tích bằng cách nhận biết và
đòi hỏi chuyên môn như ở giai đoạn đầu của việc phân tích
- Đối phó với lượng dữ liệu ít ỏi mà không thể phân tích một cách
hiệu quả bằng nhiều cách khác nhau và các công cụ và phương tiện
thông thường. Nhìn vào dung lượng GB thậm chí là TB dữ liệu và
tiếp cận hoàn toàn tự động.
- Khuyết điểm là có những bản ghi không nằm dưới tầm kiểm soát
của radar sẽ không xử lý triệt để được. Do vậy khai phá dữ liệu bản
ghi sẽ nâng cao hiệu quả phát hiện các dấu vết xâm nhập.
- Hệ thống tự động rà soát và kết luận: Vì thế mà nhiệm vụ này có
thể tự động phân tích. Các nhà phân tích sẽ phân tích trên các kết
luận của hệ thống mà họ không phải rà soát và xem những gì đang
xảy ra trên hệ thống.
- Cố gắng dự đoán các vấn đề: Chứ không phải tìm cách để đối phó
những gì đang xảy ra. Trong khi khai phá dữ liệu không cung cấp
một cách dễ dàng để dự đoán như vậy. Chắc chắn nó sẽ dễ khai
phá hơn các phương pháp khác.

140
Xu hướng này sẽ có thể thay thế sức lao động của con người. Như vậy các
thuật toán sẽ luôn cần phải được xác định và điều chỉnh bởi các chi phí của hệ
thống. Tuy nhiên kỹ thuật khai phá dữ liệu sẽ giảm thiểu kỹ năng của nhân
viên giám sát hệ thống.
Trong trường hợp những người sử dụng hệ thống phân tích đăng nhập dựa
trên khai phá dữ liệu đã nhận xét cần điều chỉnh tương đối ngắn gọn sao cho
hệ thống tự động phân tích trở thành những nhà phân tích cơ sở. Trong trường
hợp này hệ thống sử dụng phương pháp phân tích đăng nhập đã được thực
hiện tại một ngân hàng để xem xét dữ liệu kiểm soát chi tiết từ phát hiện xâm
nhập với nhiều thiết bị tường lửa triển khai trên toàn hệ thống. Với việc điểu
chỉnh việc khai phá dữ liệu tại chỗ, Các nhà phân tích cần tập trung vào việc
điều tra các cảnh báo của hệ thống. Như vậy, chúng ta cần nhìn vào những gì
cần thiết trước khi có thể áp dụng để khai phá đăng nhập dữ liệu.

Các yêu cầu khai phá bản ghi


Nhiều yêu cầu cho việc khai phá bản ghi cũng giống như việc phân tích bất kỳ
các bản ghi nào. Tuy nhiên một số yếu tố nói thêm rằng xuất hiện một sự kiện
khác làm cho dữ liệu bản ghi phù hợp với việc khai phá hoặc chuyển đổi từ
các tùy chọn đến các yêu cầu bắt buộc:
- Tập trung dữ liệu: Chỉ nhìn vào một cách tầm thường để phân tích
bản ghi lọc,tổng hợp. Nhưng trở nên quan trọng khi thuật toán khai
phá dữ liệu, có thể làm quen với lượng dữ liệu nhiều hơn so với bất
kỳ việc phân tích đơn lẻ nào đó.
- Định mức: Nhìn qua các nguồn dữ liệu tập trung như mô tả ở trên
đòi hỏi phải có một định dạng thông tin thống nhất. Nó có thể
không phải là các tiêu chuẩn thực tế, chỉ là cách thống nhất đại diện
cho các dữ liệu bản ghi.
- Lưu trữ quan hệ: Lưu trữ quan hệ có thể được bỏ qua nếu chỉ phân
tích đơn giản và lọc được thực hiện. Bình thường như vậy được
thực hiện bằng cách tim kiếm các lĩnh vực phổ biến ở các bản ghi.
Chúng thông thường bao gồm:
 Thời gian
 Tài nguyên
141
 Điểm dến
 Giao thức
 Cổng
 Tền người dùng
 Các loại sự kiện tấn công
 Trao đổi lưu lượng
 Những thông tin khác
Do đó dữ liệu bình thường và tập trung có thể được áp dụng tơi các thuật toán
khai phá dữ liệu bản ghi.
Một số trường hợp hỗ trợ cho việc phâm tích và tìm kiếm:
- Hệ thống bị nhiễm và lây lan các phần mềm độc hại: Nhiều trường
hợp các hệ thống bị lây nhiễm và sau đó lây lan tới nhiều doanh
nghiệp và thậm chí lây lan qua cả mạng internet. Mặc dù phần mềm
chống virus và cácgiải pháp chuyên dụng khác đã hoạt động nhưng
không hiệu quả thực sự. Nhưng các bản ghi chứng minh sự theo dõi
của hệ thống với các phần mềm độc hại.
- Hệ thống bị xâm nhập: Kẻ tấn công hoặc phần mềm độc hại đã thực
hiện hành vi xâm nhập vào hệ thống và mạng lưới của hệ thống.
- Tấn công thành công: Nếu kẻ tấn công chỉ thành công trong việc
thâm nhập vào hệ thống của bạn thì nó sẽ tiếp tục phá hoại hệ thống
của bạn ở mức cao hơn. Sau đó nó sẽ thực hiện thực hiện leo thang
chiếm quyền điều khiển hệ thống của bạn.
- Lạm dụng người ở trong nội bộ để đánh cắp thông tin quan trọng:
Kẻ tấn công sẽ lợi dụng mạng nội bổ để ăn cắp các thông tin quan
trọng trong hệ thống. Tuy nhiên trong nội bộ hệ thống đang nắm
giữ các khóa và gây nguy cơ gây thiệt hại nhiều hơn.
- Kênh bí mật của thông tin liên lạc: Các kênh bí mật không được sử
dụng thường xuyên trên mạng nội bộ. Do đó nó được người quản
trị quan tâm và cho nó vào thông tin bí mật.
- Gia tăng trong thăm dò: Trong tất cả các mạng internet việc hoạt
động thăm dò trở nên cần thiết làm tiền đề cho các cuộc tấn công.
- Sụp đổ hệ thống: Trong khi tấn công từ chối dịch vụ đang gây ra
làm cho hệ thống không kiểm soát nổi hoạt động của nó. Người
142
quản trị có thể không thể giám sát được hoạt động được toàn bộ hệ
thống.
Các hoạt động trên là một số điều phổ biến mà có thể khai phá, khám phá từ
bản ghi.
Hoạt động của một kẻ tấn công là rất khó để phát hiện trên một hệ thống.
Nhưng có thể khai phá bản ghi từ các hoạt động của một kẻ tấn công. Một số
trường hợp phổ biến :
- Thăm dò : Hiện tượng dò và quét mạng xảy ra trong tất cả mọi thời
điểm. Cần phải chú ý đến nó, nhưng không có khả năng tìm ra ai
đang dò quét mạng hệ thống của mình. Đồng thời thay đổi các địa
chỉ dò đó theo lịch trình để có thể cho người khác dò ra được hệ
thống mạng của mình.
- Tấn công thất bại: Nếu an ninh của hệ thống mạng vững chắc thì
các cuộc tấn công vào hệ thống mạng sẽ khó khăn hơn rất nhiều.
Có thể nhiều lý do như kỹ năng của kẻ tấn công, kiến trúc an ninh
vững chắc, rà soát mạng.
- Thông điệp thông thường: Các bản ghi đầy đủ, các thông điệp cho
thấy một số tiến trình bình thường và các sự kiện hoàn toàn bình
thường khác. Ghi lại các sự kiện và các mục đích khác. Các vấn đề
thay đổi ở đây là những thông điệp không bình thường hoặc những
cái bắt đầu xuất hiện nhiều có hại cho hệ thống.
- Tấn công bị chặn: Tương tự như cuộc tấn công bị thất bại. Nếu biện
pháp đối phó của bạn ngăn chặn một cuộc tấn công, hành động kịp
thời có thể ngăn chặn được cuộc tấn công.
- Cập nhật tình trạng hệ thống: Tương tự như một sự kiện bình
thường, thường thì nó hoạt động theo chu kỳ. Do đó cập nhật trạng
thái hệ thống không đúng lúc cũng có thể là mối quan tâm cao.
Hãy xem trạng thái của hệ thống hoạt động thông qua các bản ghi để biết
được chi tiết hơn.

143
Đi sâu hơn trong khai phá dữ liệu nhật ký
Việc xem xét lại khai phá dữ liệu trước đó và xem xét lại phương pháp để áp
dụng cho nhiệm vụ tiếp theo. Đây là những điều có thể khai phá và tìm kiếm
những điều cần thú vị trong đó:
- Hoạt động hiếm thấy: Nó có thể xảy ra thường vì một lý do. Nếu
một số trường hợp không xảy ra trước đây nhưng hiện tại nó có thể
là độc hại. Như vật những sự kiện hiếm gặp là cái cần phân tích
hàng đầu. Các cuộc tấn công hiếm hoi, nhỏ lẻ, thông điệp hệ thống
người dùng không bao giờ đăng nhập lại là những phát hiện tiến bộ.
- Hoạt động khác nhau: Trong khi không quản lý được một số tài
khoản đăng nhập thì một số tài khoản đã thoát ra và những hành
động của nó đã làm trước đó. Đây là nơi mà phương pháp
baselining đi vào hoạt động.
- Các ký tự ngoài: trong khi có quan hệ chặt chẽ với các loại trên, hồ
sơ đăng nhập cái mà xuất hiện các ký tự ngoài cần được khai phá vì
chúng có rất nhiều nguy cơ tiềm ẩn.
- Những hoạt động bất thường: Nếu có một hoạt động gì đó được coi
là bất thường, hoặc là dấu hiệu của sự bất thường. Để xem một hoạt
động bất thường, chẳng hạn như DNS của bạn sẽ đi thới một địa
chỉ nào đó và tải về các công cụ khai phá nó. Và không yêu cầu bất
kỳ cơ sở nào thu thập dữ liệu trước đó.
- Những hoạt động đi theo một hướng khác thường: một số bản ghi
đăng nhập hoàn toàn thay đổi của họ để các nhà quản trị thay đổi
tùy chọn trên thông tin liên lạc.
- Hoạt động hàng đầu: Trong khi ngồi trong lĩnh vực tổng hợp, báo
cáo và không khai phá dữ liệu. Nhưng vẫn còn tìm kiếm các bản
ghi và mô hình của nó. Sau khi nó có được thì nó sẽ có được những
điều đó, nắm được các hoạt động của hệ thống.
- Hoạt động khác thường: Một số bản ghi đăng nhập hoàn toàn thay
đổi thích hợp để người quản trị tùy thuộc lên các thông tin liên lạc.
- Hoạt động cuối: Nó được biết rằng hệ thống thường thu hút lượng
nhỏ nhất và trở thành nền tảng cho các cuộc tấn công.

144
- Một số hoạt động bất thường: Ngay cả một loạt các bản ghi đăng
nhập hoàn toàn bình thường cũng có thể hình thành một cái gì đó là
mối tiềm ẩn nguy hiểm cho hệ thống.
- Một hoạt động đáng quan tâm: Một hoạt động nào đó không được
quan tâm cũng có thể tạo ra một số lỗ hổng. Một sự thay đổi đó sẽ
thường xuyên thậm chí còn quan trọng hơn. Một sự đột biến bất
ngờ trong gói tin ICMP ping ngay cả bên ngoài tường lửa cũng có
thể có một tấn công từ chối dịch vụ.
Minh họa cho điều này là một vụ thâm nhập liên quan đến sử dụng trái phép
của một hệ thống quét lỗ hổng được phá hiện. Một số lý do bao gồm số lượng
lớn các báo động giả trong các bản ghi của họ, phá hoại sự tin tưởng của
người quản trị trong hệ thống đó. Mà đặc biệt là áp dụng cho các hệ thống
dựa trên chữ ký. Để nhận ra giá trị từ IDS cũng có thể sử dụng các phương
pháp khai phá bản ghi, nhằm mục đích tấn công suy giảm hơn nhiều trong các
báo động giả. Vì vậy tổ chức sự kiện thu thập trong cơ sở dữ liệu của phiên
giao dịch và ghi lại số lượng các sự kiện độc đáo trong mỗi phiên giao dịch.
Sẽ có một cách để phân biệt tấn công từ lượng truy cập và báo động sai. Cách
tiếp cận khai phá bản ghi này sử dụng một mô hình chung để đi đến một kết
quả cụ thể của một cuộc tấn công.

5.3 Phân tích dữ liệu trên WLAN


5.3.1 Các chuẩn WLAN
Thu thập bằng chứng WAP

Để thu thập các luồng dữ liệu không dây, chúng ta cần một cạc không dây
802.11 có khả năng chạy ở chế độ giám sát. Ngoài ra, chúng ta cần đảm bảo
nó hoạt động ở chế độ thu thập thụ động.

Mạng không dây có một chút khác biệt so với mạng có dây truyền thống. Mặc
dù chúng ta vẫn đang làm việc với các giao thức truyền thông phổ biến như
TCP và IP, tuy nhiên chúng có thay đổi một chút khi di chuyển đến các tầng
145
thấp nhất trong mô hình OSI. Ở đây, tầng liên kết dữ liệu đặc biệt quan trọng
do bản chất của mạng không dây và tầng vật lý. Điều này sẽ đưa tới các hạn
chế mới về dữ liệu chúng ta truy cập và làm thế nào chúng ta có thể thu thập
chúng.

Tầng vật lý
Điều đầu tiên để xem xét về thu thập và phân tích dữ liệu được truyền qua
mạng không dây là đường truyền vật lý. Cho đến nay, chúng ta đã không
được xem xét tầng vật lý, bởi vì chúng tôi đã được giao tiếp qua hệ thống cáp
vật lý. Bây giờ chúng ta đang giao tiếp qua sóng vô hình, với các gói tin được
truyền tới chúng ta không qua đường cáp vật lý mà bằng đường sóng.

Việc xem xét duy nhất khi thu thập lưu lượng dữ liệu truy cập từ một
mạng nội bộ không dây (WLAN) bằng phổ tần không dây là phương tiện truy
cập. Không giống như các mạng có dây, trong đó mỗi khách hàng có cáp
mạng riêng của mình kết nối với một bộ chuyển mạch, các phương tiện truyền
thông không dây là chia sẻ khoảng không, được giới hạn trong kích thước.
Một mạng WLAN đơn sẽ chỉ chiếm một phần của phổ 802.11. Điều này cho
phép nhiều hệ thống hoạt động trong lĩnh vực vật lý như nhau trên các phần
khác nhau của quang phổ. Mạng không dây dựa trên chuẩn 802.11, được phát
triển bởi Viện Kỹ sư Điện và Điện tử (IEEE).

146
AirPcap (từ CACE Technologies, bây giờ là một phần của lòng sông,
http://www.cacetech.com/) được thiết kế để khắc phục những hạn chế nơi
Windows trên phân tích gói dữ liệu không dây. AirPcap là một thiết bị USB
nhỏ tương tự như một ổ đĩa flash, như thể hiện trong hình 11-5. Nó được thiết
kế để chụp giao thông không dây.

147
Mối quan tâm lớn nhất khi triển khai và quản lý một mạng không dây là sự an
toàn của dữ liệu được truyền qua nó. Với các dữ liệu bay trong không khí,
miễn phí cho việc lấy bằng bất cứ ai biết như thế nào, nó rất quan trọng là dữ
liệu được mã hóa. Nếu không, bất cứ ai có Wireshark và một thẻ AirPcap có
thể nhìn thấy nó.
Phương pháp ban đầu thuận lợi nhất để bảo vệ dữ liệu truyền qua mạng không
dây là phù hợp với Equivalent Privacy có dây (WEP) tiêu chuẩn. WEP là nhẹ
thành công trong nhiều năm cho đến khi một số điểm yếu đã được phát hiện
trong quản lý khóa mã hóa của nó. Để cải thiện an ninh, tiêu chuẩn mới được
tạo ra. Chúng bao gồm Wi-Fi Protected Access (WPA) và tiêu chuẩn mã hóa
WPA2. Mặc dù WPA và WPA2 sửa đổi an toàn hơn của nó vẫn còn có thể sai
lầm, họ được coi là an toàn hơn WEP.

148
Phân tích dữ liệu mạng không dây, ngoài đặc điểm và kỹ thuật phân tích như
trong mạng có dây đã trình bày cụ thể trong chương các kỹ thuật phân tích cơ
bản, việc phân tích này đòi hỏi có thêm một số độ phức tạp hơn so với thu
thập và phân tích trên mạng có dây.
5.3.1 Phân tích phổ
Theo lý thuyết, dữ liệu có thể được truyền trên mạng không dây sử
dụng không giới hạn số tần số. Đôi khi, phần khó khăn nhất của việc phân
tích mạng không dây là trước phải xác định được luồng dữ liệu trên mạng
không dây.
Đối với luồng dữ liệu Wi-Fi, IEEE sử dụng ba khoảng tần số cơ bản:
 2.4 GHz (802.11 b/g/n)
 3.6 GHz (802.11 y)
 5 GHz (802.11 a/h/j/n)
Mỗi khoảng tần số được chia thành các kênh riêng biệt, ví dụ IEEE có 14
kênh trong khoảng tần số 2.4 GHz. Mặc dù IEEE đã thiết lập ranh giới tần số
được công nhận trên toàn cầu cho giao thức 802.11, từng quốc gia thường chỉ
cho phép một tập hợp con của các dải tần số này.
Các tần số chính xác trong sử dụng khác nhau tùy theo quốc gia. Ví dụ,
Hoa Kỳ chỉ cho phép các thiết bị WiFi để giao tiếp trên kênh 1-11 trong phạm
vi 2,4 GHz, trong khi Nhật Bản cho phép truyền tải trên tất cả 14 kênh. Kết
quả là, thiết bị WiFi sản xuất để sử dụng ở Hoa Kỳ nói chung là không có khả
năng truyền và nhận giao thông trên tất cả các các kênh được sử dụng tại Nhật
Bản. Điều này tạo nên sự khác biệt quan trọng đối với các nhà phân tích. Ví
dụ, một kẻ tấn công có thể mua một WAP Nhật Bản hỗ trợ kênh 14 và cắm nó
vào một mạng công ty ở Hoa Kỳ, và khách hàng không dây của Mỹ sẽ không
"nhìn thấy" điểm truy cập.
Nhà nghiên cứu an ninh mạng không dây Joshua Wright cũng đã xuất
bản bài viết về việc sử dụng 802.11n trong chế độ "Greenfield" (GF). Thiết bị
802.11n hoạt động trong chế độ Greenfield là không thấy các thiết bị
802.11a/b/g. Kết quả là, các nhà điều tra quét các thiết bị không dây sử dụng
cạc 802.11a/b/g sẽ không phát hiện các mạng 802.11n.
Khi theo dõi sự hiện diện của luồng dữ liệu truy cập không dây, hãy
chắc chắn rằng chúng ta hoàn toàn hiểu khả năng của thiết bị theo dõi của
149
chúng ta, cũng như khả năng đối với các thiết bị hoạt động bên ngoài phạm vi
phát hiện của chúng ta.
Phân tích phổ theo dõi tần số RF và báo cáo về cách sử dụng, điều này
có thể rất hữu ích cho việc xác định các thiết bị tàng hình không dây lừa đảo
và các kênh WiFi trong sử dụng. Dòng sản phẩm MetaGeek của Wi-Spy hỗ
trợ 2,4 GHz và 5 băng tần số GHz (cũng như 900 MHz. AirMagnet (thuộc sở
hữu của Fluke Network) cũng đưa ra một bộ phân tích quang phổ không dây
phổ biến có thể "xác định, tên và tìm thấy: các thiết bị Bluetooth, điện thoại
không dây 2.4G, lò vi sóng, RF Jammer, video analog, máy ảnh, vv
.
5.3.2 Thu thập dữ liệu thụ động trên mạng không dây
Bất kể luồng dữ liệu WAP đã mã hóa hoặc không, chúng ta có thể kiếm một
lượng lớn thông tin bằng cách thu thập và phân tích luồng dữ liệu 802.11.
Thông tin chung bao gồm:
 Quảng bá SSIDs
 Địa chỉ MAC của WAP
 Thuật toán mã hóa/xác thực được sử dụng
 Địa chỉ MAC phía máy khách

Thiết bị thu thập dữ liệu trên mạng không dây

Ngay cả khi lưu lượng truy cập WAP được mã hóa, có một khóa được chia sẻ
cho tất cả các trạm. Điều này có nghĩa là bất cứ ai giành được quyền truy cập
vào các khóa mã hóa có thể nghe tất cả các lưu lượng truy cập liên quan đến
150
tất cả các trạm (như với các hub vật lý). Đối với các nhà điều tra, đây là hữu
ích bởi vì địa phương CNTT Nhân viên có thể cung cấp thông tin xác thực,
cho phép giám sát tất cả lưu lượng truy cập WAP.
Hơn nữa, có những sai sót nổi tiếng trong các thuật toán mã hóa WAP phổ
biến như WEP, có thể cho phép các nhà điều tra để phá vỡ hoặc crack khóa
mã hóa không rõ. Một khi một điều tra viên đã được tiếp cận đầy đủ để mã
hóa nội dung 802.11 giao thông, điều này dữ liệu có thể được phân tích theo
cách tương tự như bất kỳ khác không được mã hóa lưu lượng mạng.
5.3.3 Phân tích giao thức 802.11
Nếu chúng ta thu thập được một vài 802.11 frames, việc phân tích cần phải
tìm được câu trả lời cho các câu hỏi sau đây:
- Có tồn tại beacons trong luồng dữ liệu không dây?
- Có bất kỳ trả lời thăm dò nào không?
- Tìm tất cả các BSSID/SSID từ luồng dữ liệu được xác thực không?
- Luồng dữ liệu thu thập được có được mã hóa sử dụng WEP/WPA
không? Có ai đang tìm cách phá mã không?

a) Tìm các WAP


Tìm kiếm khung Beacon với tcpdump và các bộ lọc BPF là đơn giản, như
hình dưới đây. Khung Beacon là một loại khung quản lý (loại 0) với subtype
là 0x08. Với trường "Version" 0b00, 0-byte của phần đầu khung 802.11 (gọi
tắt là "wlan [0]") là 0b00001000. Để truyền tải trở thành 0b10000000, hoặc
0x80.
'wlan [0] = 0x80 '
Các đặc điểm kỹ thuật 802.11 bao gồm một trường 1 bit gọi là "khả năng
ESS," trong đó có một trường Wireshark tên là "wlan
mgt.fixed.capabilities.ess." Theo IEEE 802.11, "WAP thiết lập các trường con
ESS là 1 và IBSS trường con là 0 trong truyền khung Beacon hoặc khung
quản lý Probe Response”. Sử dụng tshark để tìm kiếm Beacon hoặc Probe
Response nơi trường ESS được thiết lập là 1 và trường IBSS như hình dưới
đây:

151
b) Tìm các khung dữ liệu được mã hóa
Tương tự như vậy, làm thế nào chúng ta có thể lọc một cách nhanh
chóng các khung dữ liệu mã hóa? Chúng ta sử dụng một bộ lọc BPF để thực
hiện điều này. Khung dữ liệu 802.11phiên bản 0, loại 2, subtype 0 (trong hệ
nhị phân 0b00100000). Để truyền tải, các byte đầu tiên ("Wlan [0]") là
0b00001000, mà trong hệ thập lục phân là 0x08.
Các bit "Protected” cho biết có khung được mã hóa bằng WEP, TKIP
hoặc AES-CCMP. Các bit bảo vệ được đặt ở bit 6 của byte đầu tiên của
khung 802.11. Với các trường đảo ngược trong byte khi truyền, các bit được
“Protected” là các bit thứ hai nhận được trong byte đầu tiên ("wlan [1]").
Do đó, chúng ta phải xây dựng một bitmask của 0b01000000 (0x40
trong hệ thập lục phân) để kiểm tra liệu bit Protected có được thiết lập.
Tổng hợp như hình dưới sẽ cho chúng ta tất cả các gói tin dữ liệu được
mã hóa trong luồng dữ liệu không dây thu thập được

152
Dựa trên các kỹ thuật phân tích dữ liệu trên WLAN, chúng ta sẽ tiến hành
áp dụng phân tích một trường hợp sau đây:
Hệ thống mạng không dây của một công ty do nhân viên Joe quản lý, anh ta
nhận thấy hệ thống mạng của công ty bị tấn công, Joe thu thập được luồng dữ
liệu tấn công sau đó cung cấp cho chúng ta nội dung gói tin được thu thập
(wlan.pcap). Ngoài ra, Joe cung cấp địa chỉ MAC của hệ thống là
00:11:22:33:44:55 và không ai khác sử dụng WAP này. Chúng ta cần trả lời
một số câu hỏi dưới đây?

 BSSID và SSID của WAP tấn công là gì?


 WAP có sử dụng mã hóa?
 Những trạm tương tác với các WAP hoặc các trạm khác trên mạng
WLAN?
 Có những hoạt động nào bất thường?
 Chúng bất thường ra sao: Những hoạt động phá hoại? Những hoạt động
vô hại?
 Chúng ta có thể xác định bất kỳ tác nhân xấu nào không?
 Chúng ta có thể xác định xem tác nhân xấu thực hiện thành công một
cuộc tấn công?

153
Bước 1: Điều tra trên WAP
Bước 1.a Kiểm tra khung Beacon
Trước hết, điểm đầu tiên chúng ta thường bắt đầu tiến hành phân tích là
Joe’s WAP. Chúng ta sẽ tiến hành phân tích khung Beacon, chúng ta xác định
các điểm WAP trong các gói tin thu thập được bằng các lọc khung Beacon sử
dụng Wireshark hoặc tcpdump với các kiểu khung tương ứng (0) hoặc (8):
“wlan.fc.type_subtype == 0x08”. Chú ý rằng, “BSSID” trong khung:
00:23:69:61:00:d0

Sử dụng tcpdump với ngôn ngữ BPF, chúng ta có thể dễ dàng tìm thấy khung
Beacon này

Bước 1.b: Lọc khung quản lý thông báo WAP


Chúng ta sử dụng tshark để lọc và hiển thị chi các khung Beacon và
khung Probe Response có trường ESS là 1 và IBSS được thiết lập là 0. Thậm
chí WAP không quảng bá các khung Beacon, nó vẫn gửi các Probe Response
tới các trạm khởi tạo Probe Requests.

154
Như trong hình trên, chúng ta có thể sử dụng lọc để hiển thị trong
Wireshark để tìm khung Beacon hoặc Probe Response xuất phát từ WAP. Để
liệt kê các BSSID của WAP đã biết trong gói tin thu thập được, sử dụng
tshark cùng với vài đoạn mã shell. Trong câu lệnh dưới đây, chúng ta sẽ in
trường BSSID (“wlan.bssid”), sau đó chúng ta sử dụng công cụ Linux “uniq”
để đếm số lượng BSSID

Chỉ có một WAP gửi khung Beacon hoặc Probe Response trong gói tin
thu nhận, nó gửi 174 khung tất cả. WAP này có BSSID “00:23:69:61:00:d0”.
Chúng ta có thể khẳng định nhãn Linksys trên thiết bị và được cấu hình với
SSID “Ment0rNet”.

Bước 1c: Kiểm kê các trạm hiện có trên WLAN


Chúng ta tiến hành điều tra Beacon frame, ta sẽ thấy thông tin chi tiết hơn về
WLAN. Trên hình 6-14, 6-15 và hình 6-16 chỉ rõ các thông tin BSSID, SSID
và kênh tương ứng. Trong những khung này, chúng tat hay BSSID của WAP
là “00:23:69:61:00:d0”, SSID là “Ment0rNet”, và WAP hoạt động trên kênh
số 2.

155
Một ảnh chụp màn hình của Wireshark sử dụng với một bộ lọc hiển thị rằng
các kiểm thử cho khung bắt nguồn từ WAP. Bộ lọc sử dụng: “((wlan.fc.type
subtype == 0x08 || wlan.fc.type subtype == 0x05) && (wlan
mgt.fixed.capabilities.ess == 1) && (wlan mgt.fixed.capabilities.ibss ==
0)).””

The BSSID (00:23:69:61:00:d0) được đánh dấu.

156
Tham số SSID với tag (“Ment0rNet”)

Kênh hiện tại kênh 2


Các hình trên chỉ ra BSSID, SSID và kênh tương ứng, chúng ta sẽ thấy
BSSID là “00:23:69:61:00:d0”, SSID là “Ment0rNet” và WAP đang hoạt
động trên kênh 2.

Bước 1d: Mã hóa trong WLAN


Trong Wireshark chúng ta thực hiện lọc “wlan.fc.type_subtype ==
0x20”. Hình 6-17 chỉ ra một ví dụ về khung dữ liệu. Chúng ta thấy Protected

157
bit được thiết lập giá trị 1, do vậy WLAN đang sử dụng chế độ mã hóa. Sử
dụng tcpdump ta sẽ đếm được tổng số 59274 frames đã được mã hóa.

Nếu chúng ta sử dụng tcpdump và ngôn ngữ BPF, ta sẽ tìm được tất cả khung
dữ liệu được bảo vệ bởi WEP. Trước hết, đếm số khung dữ liệu, bằng cách
lọc phiên bản (0), kiểu (2) và kiểu con (0) trong byte đầu tiên của khung và
gửi đầu ra tới câu lệnh “wc” để đếm số dòng, chúng ta sẽ thấy có 59274
khung dữ liệu

Tiếp theo chúng ta lọc bit “Protected” trong byte tiếp theo:

Kết quả cho thấy số lượng khung mã hóa trùng với số lượng khung dữ liệu,
như vậy toàn bộ dữ liệu đều được mã hóa
Bước 1e: Các trạm liên quan
Chúng ta sử dụng Wireshark để lọc các Association Response và byte
thứ 2 để chỉ ra các trạm kết nối thành công

158
Kết quả chỉ ra Joe kết nối thành công bốn lần và một kết nối khác không biết
kết nối 64 lần.

Bước 2: Thống kê nhanh các “điểm nổi bật”


Bước 2a: Xác định thông tin các đối tượng kết nối tới WAP
Bước này thực hiện việc điều tra trên các khung dữ liệu mã hóa:
- Có bao nhiêu khung dữ liệu được mã hóa?
- Những khung dữ liệu đó xuất phát từ đâu và đi tới đâu?
- Những khung dữ liệu này có bất thường không?
Thực hiện một vài thống kê trên luồng dữ liệu trong thu thập gói tin
này để hiểu rõ hơn các hoạt động bên trong nó.
Chúng ta sử dụng công cụ Tshark (đây là một công cụ rất tốt cho việc thực
hiện việc thống kê), chúng ta bắt đầu từ kết quả đã biết: số lượng khung dữ
liệu được bảo vệ trong việc chặn bắt. Bởi vì chúng ta biết BSSID của WAP
cái chúng ta đang tập trung điều tra (00:23:69:00:d0), chúng sẽ bao gồm việc
lọc như sau:

159
Chỉ ra tổng số khung dữ liệu được mã hóa từ mỗi địa chỉ MAC

- Một trạm chưa rõ định danh gửi khoảng gấp ba lần số khung dữ
liệu liệu mà trạm của Joe đã gửi.
- Chúng ta chú ý thấy “00:23:69:61:00:ce” chỉ khác byte cuối cùng
so với BSSID
- WAP cung cấp truy cập tới dịch vụ phân tán không dây và hoạt
động như một trạm cung cấp dịch vụ cho quản lý WAP, DHCP, ghi
lại nhật ký …

Chúng ta cùng so sánh số lượng khung dữ liệu phân loại theo địa chỉ đích tới

• Khoảng 42,837 khung dữ liệu mã hóa tới địa chỉ ff:ff:ff:ff:ff:ff


• Hầu hết chúng được gửi từ 1c:4b:d6:69:cd:07
• Trạm 00:23:69:61:00:ce nhận khoảng 14,076 khung dữ liệu
• Trạm 00:11:22:33:44:55 nhận khung dữ liệu xấp xỉ trạm của Joe,
điều nà cho thấy không phải sự trùng hợp ngẫu nhiên

Chúng ta cùng xem xét cả địa chỉ đích và địa chỉ nguồn
Chúng ta trích số lượng các khung quản lý được gửi đi, sử dụng tshark
để hiện thị những thông tin này:

160
• Trạm (1c:4b:d6:69:cd:07) gửi tất cả 42.816 frames
• Phần lớn các khung còn lại gửi từ giữa trạm của Joe và một trạm WAP
với giao diện STA
• Chú ý rằng trạm de:ad:be:ef:13:37 cũng giao tiếp với WAP

Chúng ta sẽ có thống kê như sau:


• 59,274 khung dữ liệu được gửi đi như sau:
• 72% được gửi từ một trạm chưa biết có địa chỉ MAC
(1c:4b:d6:69:cd:07) tới địac hỉ quảng bá (ff:ff:ff:ff:ff:ff)
• 25% được truyền đi giữa trạm của Joe (00:11:22:33:44:55) và
WAP (00:23:69:61:00:ce)
• 2% được truyền giữa trạm chưa rõ (de:ad:be:ef:13:37) và WAP
(00:23:69:61:00:ce)
Chúng ta sẽ đưa ra giả thuyết
• Lý do cho việc gửi tới địa chỉ quản bá MAC
• ARP request
• Khối lượng lớn dường như là ARP
• Lý do khác
• Tấn không phá khóa WEP
Bước 2b: Xem xét mẫu và khung thời gian

161
• Tìm kiếm các mẫu bất thường, sử dụng Wireshark để hiển thị độ dài
thời gian thu thập các gói tin

Chúng ta sử dụng tcpdump để hiển thị khung đầu và khung cuối:

• Tổng cộng thời gian thu thập gói tin 414 giây (6.9 phút), trạm của Joe
Joe 11:22:33:44:55:66 gửi khung dữ liệu với thống kê như sau:

Trong khoảng thời gian này một trạm 1c:4b:d6:69:cd:07 gửi 42,816 khung dữ
liệu quảng bá

Dữ liệu quảng bá từ 1c:4b:d6:69:cd:07 tồn tại ít hơn 69 giây từ 09:59:42 tới


10:00:50

162
Phân bố giao tiếp với 00:23:69:61:00:ce (giao diện STA của WAP)
• Các dịch vụ cung cấp từ lớp 3 trở lên, khả năng là các dịch vụ:
• DHCP
• ARP
• Quản trị từ xa thông qua giao thức HTTP hoặc HTTPS
• Khung dữ liệu đến từ : WAPs BSSID và địa chỉ MAC của STA
Kiểm tra các khung dữ liệu được gửi bởi WAP BSSID

Chúng ta thấy rằng trạm của Joe nhận nhiều khung dữ liệu hơn các trạm khác

Kiểm tra các khung dữ liệu được gửi bởi giao diện STA của WAP

Phần lớn dữ liệu được gửi từ trạm của Joe như dự đoán, còn lại khá
nhiều được gửi tới trạm chưa biết de:ad:be:ef:13:37

Chúng ta tiếp tục kiểm tra địa chỉ chưa biết này bằng cách lọc địa chỉ MAC
đích xuất phát từ địa chỉ MAC de:ad:be:ef:13:37

163
• Phần lớn khung được gửi tới giao diện STA của WAP
• Chúng ta sẽ xây dựng lên dòng sự kiện
• Sử dụng tshark để tìm thời gian bắt đầu và kết thúc của luồng dữ
liệu xuất phát từ địa chỉ MAC chưa biết

Bước 2c: Lập dòng sự kiện như sau:


• 09:56:41— Bắt đầu thu thập gói tin
• 09:59:42 tới 10:00:51—1c:4b:d6:69:cd:07 quảng bá một lượng lớn
khung dữ liệu
• 10:02:14 tới 10:03:33—de:ad:be:ef:13:37 gửi lượng nhỏ khung dữ liệu
tới giao diện STA của WAP (00:23:69:61:00:ce)
• 10:03:35—Kết thúc thu thập gói tin

Bước 3: Thanh tra các khung quản lý


• Kiểm tra các khung quản lý xác định các BSSID, sử dụng bộ lọc
Wireshark “(wlan.fc.type == 0) && (wlan.bssid ==
00:23:69:61:00:d0).”
• Thống kê tần suất bởi địa chỉ nguồn và đích để đưa ra số lượng khung
quản lý gửi

Khung quản lý bên ngoài WAP từ giao diện BSSID được sắp xếp theo địa chỉ
đích

164
Phần lớn đến địa chỉ MAC không biết, gấp 20 lần so với đến trạm của Joe .
Các trường con trong khung quản lý
• Cột thứ 1 – Số lượng khung được khớp
• Cột thứ 2 – Kiểu con trong khung quản lý
• Cột thứ 3 – Địa chỉ MAC đích

• Phần lớn khung dữ liệu được gửi từ địa chỉ MAC chưa biết and
có subtype 10
• Không kết nối thành công
• Có nhiều subtype 12 – không xác thực thành công

Thời điểm khung dữ liệu bị mất


• Thực hiện lọc tất cả kiểu subtype 10 gửi từ giao diện BSSID của WAP
tới trạm chưa biết và dự kiến là 12,076 khung dữ liệu

WAP cho biết địa chỉ MAC chưa biết, 1c:4b:d6:69:cd:07, bị kết nối
không thành công là 12,076 khung trong 65 giây
Các nhân tố xấu

165
• Giả thiết rằng 1c:4b:d6:69:cd:07 là nhân tố xấu khả nghi
• Lưu lại toàn bộ hoạt động từ trạm này
• Cập nhật theo dòng thời gian

• 42,816 khung dữ liệu


• 77 yêu cầu xác thực
• 69 yêu cầu kết nối
• Thời gian cho Authentication Request đầu tiên (type 0 subtype 0) từ
1c:4b:d6:69:cd:07

• Thời gian cho Authentication Request cuối cùng (type 0 subtype 0) từ


1c:4b:d6:69:cd:07

• Thời gian cho Authentication Request đầu tiên (type 0 subtype11) từ


1c:4b:d6:69:cd:07

• Thời gian cho Authentication Request cuối cùng (type 0 subtype11) từ


1c:4b:d6:69:cd:07

Timeline
• 09:56:41-Thu thập gói tin bắt đầu diễn ra
• 09:58:52-Trạm "1c: 4b: D6: 69: cd: 07" bắt đầu gửi cả xác thực và
Assciation Request về cơ bản cùng một lúc, với tốc độ khoảng một lần
trong một giây

166
• 09:59:03-WAP xuất hiện để bắt đầu phát sóng một lương lớn thông
điệp không xác thực
• 09:59:42-Trạm "1c: 4b: D6: 69: cd: 07" bắt đầu phát sóng một lượng
lớn khung dữ liệu
• •09:59:42-10:00:47-WAP xuất hiện để gửi 12.076 thông điệp
Disassociation đến 1c: 4b: D6: 69: cd: 07
• 10:00:47-Trạm "1c: 4b: D6: 69: cd: 07" ngừng gửi xác thực và
Assciation Requests
• 10:00:51- Trạm "1c: 4b: D6: 69: cd: 07" ngừng gửi phát sóng khung dữ
liệu
• 10:00:58—WAP dừng gửi Deauthentication
• 10:02:14—Trạm “de:ad:be:ef:13:37” gửi khung dữ liệu đầu tiên tới
giao diện STA của WAP
• 10:03:33—Trạm “de: ad: be: ef: 13:37” gửi khung dữ liệu cuối
cùng10:03:35—Quá trình thu thập gói tin kết thúc.

Giả thuyết
• Joe cho rằng trạm có địa chỉ MAC 1c:4b:d6:69:cd:07 là nơi kẻ tấn công
sử dụng để tấn công mạng
• Một lượng lớn khung dữ liệu quản bá là các yêu cầu có thể tấn
công phá khóa giao thức WEP
• Thực tế
• Việc bắt gói tin diễn ra tại 09:56:41.085810 và kết thúc tại
10:03:34.662764 ngày 17/09/ 2010.
• Trạm 1c:4b:d6:69:cd:07 gửi khung dữ liệu quảng bá tại thời
điểm 09:59:42.220425, kết thúc lúc 10:00:50.972590 cùng ngày

Trước khi gửi lượng khung dữ liệu lớn bắt đầu - 694 IV trong
181.134615 s = 3.831405 khung/ giây

• Suốt thời gian gửi – 13,657 IV trong 68.752165 s = 198.641017


khung/giây
167
• Sau khi gửi – 1240 IV trong 163.690174 s = 7.575287 khung/giây

Tấn công bẻ khóa WEP


• Trạm 1c:4b:d6:69:cd:07 thực hiện tấn công vào WAP
• Bắt đầu vào thời điểm 09:58:51
Địa chỉ MAC de:ad:be:ef:13:37 dường như được xác thực thành
công
Trả lời các câu hỏi
• BSSID và SSID của WAP?
• BSSID: 00:23:69:61:00:d0
• SSID: Ment0rNet
• WAP có mã hóa không?
• Có, các khung dữ liệu thu thập được đều mã hóa.
• Trạm nào tương tác với WAP và có trạm khác trên WLAN?
Có ba trạm:
• 0:11:22:33:44:55
• 1c:4b:d6:69:cd:07
• de:ad:be:ef:13:37
• Có các hoạt động bất thường?
• Gửi lượng lớn dữ liệu từ trạm không biết với IVs
• Chúng bất thường ra sao: Hoạt động có hại hay không?
• Tấn công bẻ khóa WEP
• Có thể xác định các nhân tố xấu?
• 1c:4b:d6:69:cd:07 thực hiện tấn công bẻ khóa WEP
• de:ad:be:ef:13:37 kết nối thành công tới WAP

168
Việc tấn công đối với WEP đã thành công?
• Sử dụng aircrack-ng để lấy khóa từ WEP

• Khóa tìm thấy, tấn công thành công


• Mạng của Joe đã bị tổn hại, do vậy khóa WEP cần phải thay đổi
• Chứng minh rằng WEP thực sự bị bẻ khóa
• Sử dung airdecap-ng để giải mã các khung dữ liệu được mã hóa
để khám phá ra khóa của WEP

• Thanh tra việc giải mã nội dung với Wireshark


• Tái xây dựng lại luồng
• de:ad:be:ef:13:37 (192.168.1.109) và 00:23:69:61:00:ce
(192.168.1.1) WAPs STA
• Chúng ta thấy rằng:
• Phần đầu xác thực

 Chỉ ra rằng de:ad:be:ef:13:37 cố gắng xác thực sử dụng


HTTP Basic Access Authentication

169
170
TÀI LIỆU THAM KHẢO

[1]. Anton A.Chuvakin et.al, “Logging and Log Management”, Syngress, 2012

[2]. Ryan Trost, “Practical Intrusion Analysis”, Addison – Wesley, 2010

[3]. Chris Prosise and Kevin Mandia, “Incident Response and Computer Forensic”,
2nd edition, McGraw-Hill, 2003

[4]. Richard Bejtlich, “The Tao of Network Security Monitoring Beyond Intrusion
Detection”, Addision Wesley 2004

171
PHỤ LỤC

THU THẬP VÀ PHÂN TÍCH TẤN CÔNG TRÊN HỆ THỐNG


HONEYNET

A. Kiến thức chung về tấn công sử dụng quá trình phân tích
1. Tấn công tràn bộ đệm
a) ShellCode
Theo Wikipedia, shell là một đoạn chương trình cung cấp một giao
diện người dùng (user interface) - thường là giao diện dòng lệnh (command
line interface) – giúp tương tác với hệ điều hành. Shell sẽ nhận lênh từ người
dùng, gửi tới nhân hệ điều hành để thực thi, nhận kết quả trả về và gửi lại cho
người dùng. Tóm lại, có shell trên một máy tính nào đó, người dùng có quyền
thực thi lệnh trên máy đó.
ShellCode là một đoạn mã máy (ngôn ngữ duy nhất mà máy tính hiểu được),
khi người dùng thực hiện đoạn mã này sẽ thu được một shell.

172
Hình 5.10 Ví dụ một đoạn ShellCode
ShellCode thường sử dụng như một đoạn mã khai thác (payload
exploit) đưa ra bởi kẻ hacker, sử dụng trong tấn công tràn bộ đệm
b) Tràn bộ đệm
Trong các lĩnh vực an ninh máy tính và lập trình, một lỗi tràn bộ nhớ đệm hay
gọi tắt là lỗi tràn bộ đệm là một lỗi lập trình có thể gây ra một ngoại lệ truy
nhập bộ nhớ máy tính và chương trình bị kết thúc, hoặc khi người dùng có ý
phá hoại, họ có thể lợi dụng lỗi này để phá vỡ an ninh hệ thống.
Lỗi tràn bộ đệm là một điều kiện bất thường khi một tiến trình lưu dữ liệu
vượt ra ngoài biên của một bộ nhớ đệm có chiều dài cố định. Kết quả là dữ
liệu đó sẽ đè lên các vị trí bộ nhớ liền kề. Dữ liệu bị ghi đè có thể bao gồm
các bộ nhớ đệm khác, các biến và dữ liệu điều khiển luồng chạy của chương
trình (program flow control).
Các lỗi tràn bộ đệm có thể làm cho một tiến trình đổ vỡ hoặc cho ra các kết
quả sai. Các lỗi này có thể được kích hoạt bởi các dữ liệu vào được thiết kế
đặc biệt để thực thi các đoạn mã phá hoại, thường là các shellcode hoặc để
làm cho chương trình hoạt động một cách không như mong đợi. Bằng cách
đó, các lỗi tràn bộ đệm gây ra nhiều lỗ hổng bảo mật (vulnerability) đối với
phần mềm và tạo cơ sở cho nhiều thủ thuật khai thác (exploit).
Dưới đây là một ví dụ về tấn công tràn bộ đệm

173
Hình 1 Ví dụ tấn công tràn bộ đệm
Vấn đề của việc tổ chức shellcode trên bộ nhớ là làm thế nào để chương trình
khai thác lỗi có thể xác định được địa chỉ bắt đầu của bộ đệm chứa shellcode
bên trong chương trình bị lỗi. Thông thường, ta không thể biết một cách chính
xác địa chỉ của bộ đệm trong chương trình bị lỗi (phụ thuộc vào biến môi
trường, tham số khi thực thi), do đó ta sẽ xác định một cách gần đúng. Điều
này có nghĩa chúng ta phải tổ chức bộ đệm chứa shellcode sao cho khi bắt đầu
ở một địa chỉ có thể lệch so với địa chỉ chính xác mà shellcode vẫn thực thi
không hề bị ảnh hưởng. Lệnh máy NOP (No OPeration) giúp ta đạt được điều
này. Khi gặp một lệnh NOP, CPU sẽ không làm gì cả ngoài việc tăng con trỏ
lệnh đến lệnh kế tiếp.
Như vậy, chúng ta sẽ lấp đầy phần đầu của bộ đệm bằng các lệnh NOP, kế đó
là shellcode. Hơn nữa, để không phải tính toán chính xác vị trí lưu con trỏ
lệnh bảo lưu trên stack, chúng ta sẽ chỉ đặt shellcode ở khoảng giữa của bộ
đệm, phần còn lại sẽ chứa toàn các giá trị địa chỉ bắt đầu của shellcode. Cuối
cùng, bộ đệm chứa shellcode sẽ có dạng:

174
Thông thường NOP đối với các máy i386 là “\x90”, bởi vậy nếu chúng ta thấy
những NOP trong gói tin, đó có thể là một cuộc tấn công tràn bộ đệm.
2 Tấn công thực thi tệp từ xa (RFI - Remote File Inclusion)
RFI cho phép hacker chạy đoạn mã PHP trên Web Server có lỗ hổng nghiêm
trọng này. Hacker được phép thực thi đoạn mã độc hại trong không gian được
cấp cho chương trình PHP trên trang web. Ví dụ, một đoạn mã của lỗ hổng
này:

Đoạn mã PHP này sau đó được dùng trong URLs giống như ví dụ sau:

Bởi vì biến $page không được xác định, hacker có thể chèn đường dẫn URL
đến một tệp chứa mã độc hại và thực hiện nó trên máy Web Server như trong
ví dụ:

Hacker thường chèn một đoạn script PHP độc hại còn được gọi là webshell,
hoặc PHP shell. Một webshell có thể hiển thị các tệp và thư mục trên Web
Server, webshell còn có thể sửa đổi, thêm hay xóa tệp và thực hiện các chức
năng khác. Thậm chí, hacker có thể sử dụng webshell để chiếm quyền admin,
hay root, truy cập vào Web Server.

175
B. Kịch bản tấn công diễn ra trongthực tế

Hình 2 Kịch bản tấn công hệ thống Honeynet


Kịch bản tấn công dựa trên mô hình triển khai hệ thống Honeynet diễn ra như
sau:
- Hacker sau khi thực hiện dò quét trên mạng, phát hiện ra Web
Server (địa chỉ IP 10.1.1.2) của hệ thống bị lỗi RFI (Remote File
Inclusion), hacker thực hiện khai thác lỗ hổng này và chạy trên Web
Server một đoạn mã có hại (malicious code) nhằm chiếm quyền điều
khiển toàn bộ Web Server.
- Sau khi giành quyền điều khiển Web Server, hacker cài đặt
backdoor trên Web Server để dễ dàng truy cập, kiểm soát hơn. Tiếp
theo, hacker thực hiện thay đổi nội dung trang Web, đưa những
thông tin hình ảnh mang tính chất phá hoại lên.
- Hacker thực hiện tải công cụ và thực hiện tấn công tràn bộ đệm máy
FTP Server (địa chỉ IP 10.1.1.1) từ máy Web Server. Hacker giành
toàn quyền điều khiển máy FTP Server, hacker sẽ thực hiện làm một

176
số việc như tạo account mới, sửa chữa hay xóa bỏ nội dung thông
tin trên máy FTP Server .

Toàn bộ thông tin quá trình tấn công của hacker vào hệ thống Honeynet sẽ
được ghi lại đầy đủ, chi tiết. Những thông tin hệ thống Honeynet thu thập sẽ
được người phân tích thực hiện phân tích, đánh giá dưới sự trợ giúp của công
cụ quản lý và hỗ trợ phân tích Walleye trong Honeynet và công cụ Etheral
nhằm đưa ra:
- Quá trình tấn công diễn ra như thế nào (chi tiết từng bước)
- Công cụ hacker sử dụng (công cụ webshell, công cụ tấn công tràn
bộ đệm FTP Server, ...)
- Kỹ thuật hacker sử dụng
Quá trình phân tích sẽ được trình bày cụ thể trong phần tiếp theo.

C. Phân tích kỹ thuật tấn công của Hacker


Với sự hỗ trợ của công cụ Walleye chúng ta thu được mối quan hệ giữa
các dữ liệu tấn công hệ thống. Hình 5.13 mô tả tổng quan các luồng dữ liệu
mạng vào/ra hệ thống Honeynet.

Hình 3 Tổng quan luồng dữ liệu vào/ra hệ thổng Honeynet


Hình dưới đây chỉ ra các gói tin được thu nhận bởi Honeywall và hiển
thị trên Walleye theo một chuỗi trình tự các bước tấn công.

177
Hình 4 Chuỗi các gói tin thu nhận trên Walleye
Ta sẽ lần lượt phân tích quá trình tấn công của hacker vào hệ thống
Honeynet:
- Phân tích gói tin thứ nhất ta sẽ thấy nội dung gói tin chứa đoạn mã (đánh
dấu trong ô vuông), chỉ ra đây là một tấn công RFI (Remote File
Inclusion) thực hiện tệp shell.txt trên một WebServer có địa chỉ 10.3.3.3

178
- Shell.txt có thể là một đoạn webshell, muốn biết được nội dung của đoạn
mã độc hại này chúng ta xem xét nội dung gói tin tiếp theo. Hình dưới đây
minh họa một phân nội dung của webshell với sự trợ giúp của công cụ
Ethereal

Hình 5 Một phần nội dung của đoạn webshell


- Tiếp theo chúng ta sẽ phân tích gói tin tiếp theo để thấy được hacker định
làm gì ?

Chúng ta sẽ thấy hacker định mở một backdoor cổng 9999, với password khi
kết nối cổng này là r57.
Trong Walleye chúng ta sẽ thấy rõ trên máy 10.1.1.2 sẽ xuất hiện một tệp
/tmp/bd.c, đây chính là backdoor hacker cài lên máy chúng ta, đồng thời ta sẽ
thấy một tiến trình bd chạy trên 10.1.1.2

179
Hình 6 Tệp chứa backdoor và tiến trình của nó trên máy nạn nhân

Ở gói tin tiếp theo, chúng ta sẽ thấy rõ hacker đã kết nối tới máy 10.1.1.2
cổng 9999

Phân tích chi tiết gói tin này chúng ta sẽ thấy rõ các “keystroke” hay các lệnh
hacker tương tác với 10.1.1.2. Chúng ta cùng xem xét nội dung các
“keystroke” này để biết được hacker đã làm gì với hệ thống của chúng ta khi
chúng kiểm soát được máy 10.1.1.2.

Hình trên chỉ ra hacker kết nối tới 10.1.1.2 thông qua backdoor ở trên
với mật khẩu truy cập là r57. Tiếp theo:

180
Đầu tiên, hacker sử dụng lệnh ls để xem nội dung thư mục hiện thời (thư mục
chứa nội dung trang web), sau đó hacker thực hiện lệnh rm baomat.jpg, để
xóa tệp ảnh giao diện của trang web. Do vậy, khi chúng ta duyệt trang web sẽ
không thấy ảnh giao diện trang web của chúng ta. Chúng ta sẽ thấy sự khác
nhau thông qua hai hình 5.15 và hình 5.16 dưới đây:

181
Hình 7 Giao diện trang web ban đầu

Hình 8 Giao diện trang web khi bị xóa ảnh giao diện

182
Chúng ta xem xét hacker sẽ làm gì tiếp theo

Chúng ta thấy sau khi xóa tệp ảnh giao diện, tệp baomat.jpg không còn trên
thư mục. Tuy nhiên, ở lệnh ls tiếp theo chúng ta lại thấy xuất hiện tệp
baomat.jpg. Như vậy, chúng ta phỏng đoán hacker đã tải lên một tệp ảnh khác
để thay thế. Chúng ta cũng vào lại trang web trên một lần nữa và sẽ thấy giao
diện của nó bị thay đổi.

183
Hình 9 Giao diện trang web sau khi bị tấn công
Phân tích gói tin tiếp theo, chúng ta sẽ thấy rõ được hacker đã tải lên Web
Server một tệp ảnh thay thế khác

Chúng ta tiếp tục quá trình phân tích

184
Chúng ta để ý rằng giữa hai lần dùng lệnh ls, thư mục hiện tại có thêm tệp
mới là ex_servu.c. Chúng ta có thể phán đoán kẻ tấn công đã tải lên trên
WebServer một tệp mới. Chúng ta thử kiểm tra nội dung gói tin tiếp theo để
xem có phát hiện hacker đã tải ex_servu.c lên WebServer bằng cách nào và
nội dung tệp ex_servu.c ra sao.

Đoạn đánh dấu ở trên chỉ ra haker định tải một cái gì đó lên máy 10.1.1.2
thông qua giao thức HTTP. Chúng ta xem tiếp nội dung gói tin, với sự hỗ trợ
của Ethereal, chúng ta sẽ thấy được nội dung của toàn bộ tệp ex_servu.c.
Hình dưới đây minh họa một phần nội dung của tệp ex_seruv.c

185
Hình 10 Một phần nội dung tệp ex_servu.c
Quay trở lại với gói tin chứa các “keystroke” của hacker, chúng ta xem hacker
tiếp tục làm gì khi đã tải lên được tệp ex_servu.c

Chúng ta thấy hacker thực hiện biên dịch tệp ex_servu.c bằng lệnh gcc
và thu được tệp thi hành ex_servu. Chúng ta xem xét tiếp:

186
Chúng ta thấy hacker thực hiện tệp ex_servu và nhằm vào máy 10.1.1.1 (đây
là máy FTP Server), sau đó thấy hiện tiếp ra cmd trong hệ điều hành
Microsoft Windows XP, chúng ta đoán rằng kẻ tấn công sử dụng tệp ex_servu
tấn công vào máy 10.1.1.1 và giành quyền điều khiển máy này.
Hình chỉ ra quan hệ các tiến trình diễn ra trong máy 10.1.1.2 khi bị
hacker tấn công dưới sự hỗ trợ của công cụ phân tích Walleye cho chúng ta
thấy rõ các lệnh mà hacker sử dụng.

187
188
Hình 5.20 Một phần sơ đồ quan hệ giữa các tiến trình trong 10.1.1.2
Hình tiếp theo dưới đây chỉ ra các tệp được sử dụng trên 10.1.1.2 trong quá
trình tấn công của hacker, trong đó có hai tệp index.php và ex_servu.c

Hình dưới đây chỉ ra các “keystroke” (lệnh) hacker sử dụng để tấn công
hệ theo trình tự

Chúng ta thấy trong hai gói tin tiếp theo:

Hình 11 Hai gói tin liên quan đến tấn công máy FTP Server
Hai gói tin này chỉ ra 10.1.1.2 tấn công sang máy 10.1.1.1 trên giao
thức ftp và được hệ thống Honeynet nhận ra đây là kiểu tấn công FTP

189
MDTM overflow, FTP invalid MDTM command. Trong tệp log của Snort
cũng chỉ ra điều này

Hình 12 Snort phát hiện tấn công tràn bộ đệm vào FTP Server
Tiếp tục đi sâu phân tích hai gói tin để thẩy rõ kỹ thuật tấn công của hacker

và trong mã nguồn của ex_servu


- Đoạn mã làm tràn bộ nhớ, giống như đoạn gạch chân đầu tiên trong gói tin

- Đoạn shellcode thực hiện mở giao diện dòng lệnh cmd trong Windows XP
từ xa, so sánh với đoạn gạch chân thứ hai trong gói tin (chỉ hiện một phần)

190
- Đoạn đánh dấu bằng ô vuông, hacker gửi câu lệnh “MDTM” của ftp để
thay đổi thời gian của tệp trên FTP Server. Quá trình tấn công tràn bộ đệm
diễn ra khi hacker gửi một vùng gian thời gian không hợp lệ (invalid time
zone) như một đối số của câu lệnh MDTM:
MDTM
20031111111111+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAA shellcode

Chú thích thêm


Serv – U là một chương trình FTP Server chạy trong môi trường Windows
XP. Serv – U FTPD phiên bản 4.1.0.11 và các phiên bản trước đó có một lỗ
hổng bảo mật mà hacker lợi dụng để tấn công tràn bộ đệm.

191
Mô phỏng tấn công này sẽ khai thác (exploit) đặc tính trong Serv – U, cái chỉ
ra thời gian sửa đổi mới nhất của tệp, thường được gọi là MODIFICATION
TIME (MTMD). Thuộc tính này của Serv – U có thể bị tấn công tràn và
hacker có thể chèn đoạn mã độc hại để giành quyền kiểm soát máy tính nạn
nhân.

Sau khi chiếm quyền điều khiển máy 10.1.1.1, hacker thực hiện một số lệnh
như xem nội dung các thư mục, xóa tệp trong thư mục C:\WINDOWS\
Prefetch, ... các hoạt động của hacker đều bị ghi lại

192

You might also like