Professional Documents
Culture Documents
GIÁO TRÌNH
HÀ NỘI, 2013
1
BAN CƠ YẾU CHÍNH PHỦ
GIÁO TRÌNH
HÀ NỘI, 2013
2
MỤC LỤC
1.3.2 Gỡ lỗi....................................................................................13
1.3.4 Lỗi........................................................................................14
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
3
2.2.2 Thu thập trên mạng..............................................................29
2.2.3 Honeypot/Honeynet.............................................................38
5.3.2 Thu thập dữ liệu thụ động trên mạng không dây...............150
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
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ã
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.
Đ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
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.
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
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
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
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 đề.
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:
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.
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
Để 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.
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 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).
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
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ờ.
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.4 Tấn công Web – based của sâu Code Red phát hiện bởi Snort
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.
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.
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.
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.
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
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:
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ệ.
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
Để 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 đỏ.
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
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.
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
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
70
# Specify the SEBEK destination host IP address
HwSEBEK_DST_IP=10.1.1.253
# 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
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
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.
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.
Đầ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
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:
Để 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ì?
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ấ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.
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:
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).
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
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.
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.
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.
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.
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
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
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…
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ô 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
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.
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.
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.
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.
Để 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
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?
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?
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
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”.
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)).””
156
Tham số SSID với tag (“Ment0rNet”)
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.
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
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
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
• 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á
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
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
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
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
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
169
170
TÀI LIỆU THAM KHẢO
[1]. Anton A.Chuvakin et.al, “Logging and Log Management”, Syngress, 2012
[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
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ế
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.
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
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
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ự
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
- Đ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
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