Chương 1: Tổng quan về phân tích log truy nhập: khái niệm log truy nhập, các dạng log truy nhập, các phương pháp thu thập, xử lý và phân tích log, ứng dụng của phân tích log và giới thiệu một số nền tảng, công cụ phân tích log. - Chương 2: Các kỹ thuật và mô hình xử lý, phân tích log truy nhập: Mô hình xử lý log; Thu thập và tiền xử lý; Các kỹ thuật phân tích log: Các kỹ thuật nhận dạng mẫu (Pattern Discovery), phân tích mẫu (Pattern Analysis), phân tích tương quan (Correlation Analysis). - Chương 3: Cài đặt, thử nghiệm và đánh giá: Giới thiệu môi trường và công cụ thử nghiệm; Cài đặt hệ thống: Cài đặt OSSEC, cài đặt ELK, kết hợp OSSEC và ELK; Nội dung thử nghiệm, kết quả và nhận xét. TỔNG QUAN VỀ PHÂN TÍCH LOG TRUY NHẬP 1.
Khái quát về log truy nhập 1. Khái niệm log truy nhập Log truy nhập hay nhật ký, hoặc vết truy nhập (gọi tắt là log) là một danh sách các bản ghi mà một hệ thống ghi lại khi xuất hiện các yêu cầu truy nhập các tài nguyên của hệ thống [1]. Chẳng hạn, log truy nhập web (gọi tắt là web log) chứa tất cả các yêu cầu truy nhập các tài nguyên của một website. Các tài nguyên của một website, như các file ảnh, các mẫu định dạng và file mã JavaScript.
Khi một người dùng thăm một trang web để tìm một sản phẩm, máy chủ web sẽ tải xuống thông tin và ảnh của sản phẩm và log truy nhập sẽ ghi lại các yêu cầu của người dùng đến các tài nguyên thông tin và ảnh của sản phẩm. Có nhiều nguồn sinh log trong hệ thống, như log sinh bởi hệ điều hành, log sinh bởi các máy chủ dịch vụ mạng, log sinh bởi các ứng dụng và log sinh bởi các thiết bị mạng và thiết bị đảm bảo an toàn thông tin [1]. Log sinh bởi hệ điều hành thường bao gồm các bản ghi các sự kiện khởi động hệ thống, sự kiện đăng nhập, đăng xuất của người dùng, yêu cầu truy nhập các file, các thư mục, các yêu cầu kích hoạt ứng dụng, các yêu cầu truy nhập phần cứng, các yêu cầu truy nhập dịch vụ mạng, các lỗi xuất hiện trong quá trình hoạt động. Hệ điều hành Microsoft Windows sử dụng công cụ Event Viewer (Hình 1.1), còn các hệ điều hành thuộc họ Unix/Linux sử dụng công cụ Syslog để quản lý và lưu trữ log do bản thân hệ điều hành và các module phụ trợ sinh ra.
Nguồn log sinh bởi các máy chủ dịch vụ mạng, máy chủ web, máy chủ DNS, máy chủ email và máy chủ cơ sở dữ liệu là một trong các nguồn log phổ biến nhất. Máy chủ web có thể ghi log truy nhập các trang web cho từng website dưới dạng các file văn bản thuần với mỗi dòng là một bản ghi log. Các thông tin trong mỗi bản ghi web log có thể khác nhau phụ thuộc vào phiên bản máy chủ web sử dụng. Các máy chủ tên miền DNS cũng sinh một lượng lớn log trong quá trình xử lý các yêu cầu phân giải tên miền sang địa chỉ IP và ngược lại từ người dùng.
Tương tự, các máy chủ email và cơ sở dữ liệu cũng sinh rất nhiều bản ghi log trong quá trình xử lý các 4 yêu cầu từ người dùng cũng như từ các ứng dụng.2 biểu diễn các bản ghi log tạo bởi máy chủ e-mail. Xem Windows log sử dụng công cụ Event Viewer Các bản ghi log tạo bởi máy chủ e-mail. Các thiết bị mạng và các hệ thống đảm bảo an toàn thông tin cũng là một trong các nguồn sinh nhiều log. Các thiết bị mạng phổ biến như các bộ định tuyến (router), các bộ chuyển mạch (switch) và các hệ thống đảm bảo an toàn thông tin, như tường lửa (Firewall), các hệ thống phát hiện và ngăn chặn tấn công, xâm nhập các hệ thống điều khiển truy nhập, cũng sinh nhiều bản ghi log trong quá trình xử lý các yêu cầu truy nhập mạng.
Log sinh từ các hệ thống này có thể được lưu tại chỗ, hoặc xuất ra các hệ thống lưu trữ bên ngoài. 5 Như vậy có thể thấy, có nhiều nguồn sinh dữ liệu log truy nhập với nhiều dạng khác nhau. Tùy vào mục đích sử dụng, người quản trị có thể cấu hình hệ thống để lựa chọn thu thập, quản lý và lưu trữ các thông tin cần thiết cho mỗi dạng log. Các dạng log truy nhập Như đã đề cập, có nhiều nguồn sinh log trong hệ thống, như log sinh bởi hệ điều hành, log sinh bởi các máy chủ dịch vụ mạng và log sinh bởi các thiết bị mạng và thiết bị đảm bảo an toàn thông tin.
Mục này trình bày khái quát về các dạng log này. Log sinh bởi hệ điều hành Log sinh bởi hệ điều hành (gọi tắt là log hệ diều hành) gồm các dạng log sinh bởi nhân hệ điều hành và các thành phần thuộc hệ điều hành. Log hệ điều hành được liên tục sinh ra và lưu trong hệ thống trong quá trình khởi động và hoạt động của hệ thống. Mỗi họ hệ điều hành (Windows, Linux, Unix,…) có định dạng và phương pháp quản lý log riêng.
Mục này cung cấp mô tả chi tiết hơn về Windows logs và Linux/Unix log. Windows logs Log của hệ điều hành Microsoft Windows (Windows Logs) gồm 6 thành phần chính có thể truy nhập và duyệt bởi trình Windows Event Viewer như biểu diễn trên Hình 1.3: Các thành phần của Windows Logs [2] 6 Một bản ghi Windows log mô tả lỗi dịch vụ [2] - Log ứng dụng (Application) là log sinh bởi các ứng dụng chạy trên Windows; - Log bảo mật (Security) là log sinh bởi các dịch vụ bảo mật của Windows, như xác thực, cấp quyền, quản trị người dùng,… - Log cài đặt (Setup) là log sinh trong quá trình cài đặt các thành phần của hệ điều hành và các ứng dụng; - Log hệ thống (System) là log sinh bởi các tính năng và các dịch vụ nền của Windows, như quản lý tiến trình, quản lý hệ thống file, dịch vụ mạng,.4 minh họa một bản ghi Windows log mô tả một lỗi vận hành dịch vụ. - Các sự kiện chuyển tiếp (Forwarded Events) là các sự kiện log được chuyển tiếp từ các máy khác khi máy Windows là trung tâm quản lý. Linux/Unix logs Hầu hết các hệ điều hành thuộc họ Linux/Unix đều được trang bị một hệ thống ghi log rất mạnh và mềm dẻo, cho phép ghi lại tất cả các sự kiện xảy ra trong hệ thống.
Công cụ quản lý log được sử dụng rộng rãi nhất trong các hệ điều hành thuộc 7 họ Linux/Unix là syslog. Syslog là công cụ quản lý log tập trung, có thể cấu hình được thông qua tập tin cấu hình syslog.conf, như minh họa trên Hình 1. Một phần tập tin cấu hình syslog - syslog.conf Syslog hỗ trợ quản lý log từ nhiều nguồn, gồm các thành phần của hệ điều hành, dịch vụ và ứng dụng. Một số dạng log tiêu biểu như auth (log xác thực), console (log gửi tới console), cron (log sinh bởi trình lập lịch cron), daemon (log sinh bởi các tiến trình thường trú trong hệ thống), kern (log sinh bởi nhân hệ điều hành),… Hình 1.6 biểu diễn một số bản ghi kern log của hệ điều hành Linux.
Một số bản ghi kern log của hệ điều hành Linux 1. Log sinh bởi các dịch vụ mạng Log sinh bởi các dịch vụ mạng là một trong các nguồn sinh nhiều dữ liệu log nhất và được sử dụng rộng rãi trong xử lý và phân tích log nhất [1]. Các dịch vụ mạng phổ biến như dịch vụ web, dịch vụ DNS, dịch vụ email, dịch vụ máy chủ CSDL đều là các dịch vụ được sử dụng rất rộng rãi và sinh nhiều log. Mỗi dịch vụ mạng có định dạng log riêng và có phương pháp quản lý log riêng.
Mục này đề cập đến log sinh bởi 8 các máy chủ web (Web log), log sinh bởi các máy chủ DNS (DNS log), log sinh bởi các máy chủ email (Mail Log) và log sinh bởi các máy chủ CSDL (Database log). Web log Các máy chủ web thông dụng như Mozilla Apache và Microsoft IIS thường hỗ trợ nhiều định dạng log, bao gồm W3C Extended log file format, Microsoft IIS log file format, and NCSA log file format, trong đó W3C Extended log file format là định dạng web log hỗ trợ bởi hầu hết máy chủ web và được sử dụng rộng rãi nhất.7 minh hoạt một phần file log theo định dạng W3C Extended log file format. Theo đó, các trường thông tin cơ bản của mỗi bản ghi web log mà định dạng này hỗ trợ bao gồm: - Date: ngày tháng ghi log - Time: thời gian ghi log - S-ip: địa chỉ IP của máy chủ web - S-port: số hiệu cổng dịch vụ máy chủ web - Cs-method: phương thức HTTP thực hiện yêu cầu (GET, POST, HEAD,…) - Cs-uri-stem: địa chỉ URI của trang, hoặc thành phần của trang yêu cầu - Cs-uri-query: phần truy vấn của yêu cầu - Cs-username: tên người dùng - C-ip: địa chỉ IP của máy khách - Cs(Referrer): trang, hoặc địa chỉ tham chiếu - Cs(User-Agent): thông tin trình duyệt, hoặc máy khách web - Sc-bytes: số byte máy chủ gửi trả lời - Cs-bytes: số byte máy chủ nhận được - Sc-status: mã thực hiện yêu cầu,… 9 Một phần file log theo định dạng W3C Extended log file format b. DNS log Các máy chủ DNS thông dụng như ISC Bind và Microsoft DNS server đều được trang bị khả năng ghi log theo các yêu cầu phân giải địa chỉ từ người dùng.
DNS log cũng thường được lưu ở dạng file văn bản thuần và định dạng log do máy chủ DNS ISC Bind được coi như chuẩn thực tế được sử dụng rộng rãi nhất.8 biểu diễn trích xuất một số bản ghi DNS log. Các trường thông tin cơ bản của mỗi bản ghi DNS log mà định dạng này hỗ trợ bao gồm: - Date: ngày gửi yêu cầu - Time: thời gian yêu cầu - Client IP Address: địa chỉ IP máy khách - Client Port: cổng máy khách - Server IP Address: địa chỉ IP máy chủ - Server Port: cổng dịch vụ máy chủ - Request Type: loại yêu cầu truy vấn - Request Name: tên miền truy vấn - Answer Type: loại trả lời yêu cầu - Answer Data: dữ liệu trả lời từ máy chủ,… 10 Trích xuất một số bản ghi DNS log c. Mail log Các máy chủ email hỗ trợ các giao thức gửi nhận email như SMTP và giao thức tải email từ hộp thư về máy khách như POP và IMAP cũng thường sinh các bản ghi log khi thực thi các yêu cầu gửi nhận email. Tương tự máy chủ web, hầu hết các dạng log truy nhập máy chủ email đều ở dạng file văn bản thuần.