Việc áp dụng phân tích dữ liệu log vào bảo mật của server là một lĩnh vực rất rộng lớn khó để có thể làm chi tiết do vậy trong khuôn khổ của đề tài này, nhóm chúng em sẽ tập trung vào tì
Trang 22
MỤC LỤC
MỤC LỤC 2
DANH MỤC HÌNH ẢNH 4
DANH MỤC BẢNG BIỂU 6
DANH MỤC TỪ VIẾT TẮT 7
LỜI MỞ ĐẦU 8
CHƯƠNG I TỔNG QUAN VỀ CHỨNG CỨ ĐIỆN TỬ VÀ LOG SERVER 9
1.1 Tìm hiểu về chứng cứ điện tử 9
1.1.1 Khái niệm 9
1.1.2 Đặc điểm của chứng cứ điện tử 9
1.1.3 Các thuộc tính của chứng cứ điện tử 10
1.2 Tổng quan về Server 10
1.2.1 Khái niệm 10
1.2.2 Phân loại 11
1.2.3 Vấn đề về bảo mật Server 12
1.3 Tổng quan về Log Server 13
1.3.1 File log server 13
1.3.2 Mục đích của việc thu thập và phân tích log 16
1.3.3 Vai trò của File log server 16
1.3.4 Phân tích file log trong bảo mật server 17
1.4 Kết luận chương 1 17
CHƯƠNG II THU THẬP VÀ PHÂN TÍCH NHẬT KÝ SERVER 18
2.1 Windows Log File 18
2.1.1 Event Log 18
2.1.2 Firewall Log 22
2.2 Linux Log File 23
2.3 Application Server Log File 26
2.3.1 Web Server log file 26
Trang 33
2.3.2 Database Server log file 29
2.3.3 Mail Server log file 32
2.4 Một số công cụ thu thập log phổ biến 36
2.4.1 Splunk 36
2.4.2 Syslog-ng 42
2.4 Kết luận chương 2 43
CHƯƠNG III: TRIỂN KHAI THỰC NGHIỆM 44
3.1 Mô tả thực nghiệm 44
3.1.1 Xây dựng mô hình 44
3.1.2 Quy trình thực hiện 44
3.2 Tiến hành thực nghiệm 45
3.2.1 Cài đặt Splunk 45
3.2.2 Cài đặt Xampp, DVWA và Splunk Forwarder 50
3.2.3 Tiến hành tấn công, thu và phân tích log 54
3.3 Kết luận chương 3 66
KẾT LUẬN 67
TÀI LIỆU THAM KHẢO 68
BẢNG PHÂN CÔNG CÔNG VIỆC 69
Trang 44
DANH MỤC HÌNH ẢNH
Hình 2.1 Giao diện lựa chọn đặt cảnh báo Splunk 39
Hình 2.2 Khắc phục sự cố trong Splunk 40
Hình 2.3 Biểu đồ dựa trên kết quả của một câu lệnh tìm kiếm 40
Hình 2.4 Lưu thông tin vào Dashboard 41
Hình 3.1 Mô hình triển khai thu thập và phân tích log từ server 44
Hình 3.2 Tạo một user và group cho Splunk 45
Hình 3.3 Giải nén Splunk package 45
Hình 3.4 liệt kê nội dung thư mục 46
Hình 3.5 Quá trình cài đặt Splunk 46
Hình 3.6 Giao diện đăng nhập vào splunk 47
Hình 3.7 Giao diện qủan trị của Splunk 47
Hình 3.8 Thêm dữ liệu vào splunk 48
Hình 3.9 Giao diện lựa chọn thêm dữ liệu 48
Hình 3.10 Giao diện lựa chọn nguồn dữ liệu đầu vào 49
Hình 3.11 Giao diện cà đặt Xampp 50
Hình 3.12 Khởi động apache và MySQL 50
Hình 3.13 Giao diện đăng nhập vào trang quản trị của DVWA 51
Hình 3.14 Giao diện của DVWA 51
Hình 3.15 Cài đặt Splunk Forwarder 52
Hình 3.16 Giao diện nhập IP và cổng của máy chủ Splunk 52
Hình 3.17 Giao diện mở cổng 9997 53
Hình 3.18 Lựa chọn thu thập log 53
Hình 3.19 Mở cổng trong Burp Suite 54
Hình 3.20 Lựa chọn options proxy 54
Hình 3.21 Vulnerability SQL injection 55
Hình 3.22 Giao diện Burp Suite thu lại được 55
Hình 3.23 Khởi chạy sqlmap 56
Hình 3.24 Lựa chọn CSDL DVWA 57
Trang 55
Hình 3.25 Dữ liệu thu được sau khi tấn công SQL Injection 57
Hình 3.26 Giao diện thiết lập tùy chọn thu log 58
Hình 3.27 Source của Splunk Forwarder 58
Hình 3.28 Các log được ghi lại 59
Hình 3.29 Thông tin Field 59
Hình 3.30 thông tin Field 60
Hình 3.31 Bảng uri_query 60
Hình 3.32 Bảng uri_path 61
Hình 3.33 Bảng submit 61
Hình 3.34 Bảng date_wday 62
Hình 3.35 Bảng danh sách ip attack 62
Hình 3.36 Kết quả sau khi thực hiện scan 63
Hình 3.37 Tấn công dò quét mật khẩu xác thực SSH 63
Hình 3.38 Kết quả sau khi lọc 64
Hình 3.39 Các trường thuộc tính chi tiết trong một kết nối cụ thể 65
Hình 3.40 Kiểm các kết nối 66
Trang 66
DANH MỤC BẢNG BIỂU
Bảng 2.1 Cấu trúc các trường của log 19
Bảng 2.2 Event ID liên quan đến quản lý tài khoản 20
Bảng 2.3 Event về Scheduled Task 20
Bảng 2.4 Event về các dịch vụ 20
Bảng 2.5 Event về LAN, Wireless 21
Bảng 2.6 Event ID liên quan đến tiến trình 21
Bảng 2.7 Event ID về thực thi chương trình 21
Trang 77
DANH MỤC TỪ VIẾT TẮT
USB Universal Serial Bus
CPU Central Processing Unit
FTP File Transfer Protocol
DHCP Dynamic Host Configuration Protocol ERP Enterprise Resource Planning
CRM Customer Relationship Management
IIS Internet Information Services
HTTP Hyper Text Transfer Protocol
SSIS SQL Server IntegrationServices SSH Secure Socket Shell
ETL Extract Transform Load
SMTP Simple Mail Transfer Protocol
POP3 Post Office Protocol Version 3
IMAP Internet Message Access Protocol TCP Transmisson Control Protocol
UDP User Datagram Protocol
SAN Storage Aera Networking
Trang 88
LỜI MỞ ĐẦU
Ngày nay, công nghệ thông tin đang chiếm một vị trí quan trọng trong mọi lĩnh vực cuộc sống Sự bùng nổ của khoa học công nghệ nói chung và công nghệ thông tin nói riêng đã đem lại rất nhiều lợi ích cho con người Bên cạnh đó, các tổ chức cũng đang phải đối mặt với nhiều thách thức, khi mà công nghệ càng phát triển, giá trị thông tin được truyền tải và lưu trữ trên các hệ thống máy tính ngày càng cao Bài toán an toàn thông tin luôn là vấn đề cần chú trọng khi các kỹ thuật tấn công ngày càng tinh vi song song với việc đảm bảo hệ thống vận hành an toàn, thì yêu cầu ứng phó và giải quyết khi có sự cố xảy ra để đưa hệ thống vào tình trạng hoạt động bình thường trong thời gian nhanh nhất cũng luôn là vấn đề trọng tâm
File log server cung cấp cho quản trị viên toàn bộ các thông tin hoạt động của server, hỗ trợ giải quyết các rắc rối mà server gặp phải miễn là họ biết phân tích
và ứng dụng các thông tin nhận được vào khắc phục Tác dụng của log là vô cùng to lớn, nó có thể giúp quản trị viên theo dõi hệ thống của mình tôt hơn, hoặc giải quyết các vấn đề gặp phải với hệ thống hoặc service Việc áp dụng phân tích dữ liệu log vào bảo mật của server là một lĩnh vực rất rộng lớn khó để có thể làm chi tiết do vậy trong khuôn khổ của đề tài này, nhóm chúng em sẽ tập trung vào tìm hiểu về một số
kỹ thuật thu thập và phân tích các thống tin an ninh mạng lấy được từ nhật ký Server cũng như triển khai hướng giải quyết Bản báo cáo có 3 phần:
Chương I: Tổng quan về chứng cứ điện tử và Log Server
Chương này giới thiệu một số nội dung như tổng quan về chứng cứ điện tử, log server; tầm quan trọng của file log và việc ứng dụng file log trong bảo mật server Chương II: Thu thập và phân tích Log Server:
Chương này đi sâu vào tìm các kỹ thuật và một số công cụ phổ biến được sử dụng để thu thập và phân tích nhật ký các loại Server
Chương III: Thực nghiệm:
Chương này sẽ áp dụng các quy trình kỹ thuật ở các phần trên để tiến hành điều tra thu thập, phân tích chứng cứ từ nhật ký Server
Trang 9Có thể nói một cách khái quát, chứng cứ điện tử là tất cả những thông tin, dữ liệu được thu thập từ các thiết bị điện tử như máy tính và các thiết bị lưu trữ thông tin, dữ liệu hay các thông tin dữ liệu từ mạng máy tính, điện thoại di động, máy ảnh
kỹ thuật số,… cũng như từ internet
1.1.2 Đặc điểm của chứng cứ điện tử
Ngoài những đặc điểm của chứng cứ truyền thống, chứng cứ điện tử có một
số đặc điểm riêng:
Không thể nhìn thấy bằng mắt thường: Chứng cứ điện tử được tìm thông qua
các lệnh, đôi khi chúng được tìm thấy ở những nơi mà các chuyên gia mới có thể tìm kiếm hoặc ở những nơi chỉ có thể tiếp cận bằng các công cụ đặc biệt
Dễ bị ẩn hay biến mất: Một số thiết bị và một số điều kiện nhất định bộ nhớ
máy tính (dữ liệu chứa chứng cứ) có thể bị đè (hoặc thay đổi) bởi chức năng hoặc hoạt động thông thường của thiết bị Điều này có thể do sự dừng đột ngột của hệ thống hay do cài đặt thông tin mới đè lên thông tin cũ do thiếu dung lượng bộ nhớ hay có thể yếu tố môi trường như nhiệt độ cao, làm hỏng bộ nhớ lưu trữ
Có thể bị thay đổi hoặc bị phá hủy: Trong quá trình sử dụng thông thường,
các thiết bị điện tử luôn thay đổi trạng thái bộ nhớ của chúng theo yêu cầu của người
sử dụng trong quá trình cập nhật dữ liệu hay lưu các thay đổi hay do quá trình cập nhật tự động dữ liệu của hệ điều hành, thiết bị
Tính nguyên bản: Dữ liệu điện tử có thể được sao chép vô thời hạn với bản
sao giống hệt như bản gốc Tức là, mặc dù bản sao nhưng vẫn có thể xem là chứng
cứ bởi mang đầy đủ các đặc tính nguyên bản của bản gốc
Trang 1010
1.1.3 Các thuộc tính của chứng cứ điện tử
Tính khách quan: Chứng cứ là những gì có thật, tồn tại khách quan, có nguồn
gốc rõ ràng, không bị làm cho sai lệch, biến dạng, đã được tìm thấy và đang lưu trên máy tính, điện thoại di động, máy tính bảng, USB, ổ cứng di động, đĩa quang, email, website, điện toán đám mây, account, nickname của đối tượng, server của nhà cung cấp dịch vụ Internet,…
Tính liên quan: Chứng cứ thu được có liên quan đến hành vi phạm tội, được
sử dụng để xác định các tình tiết vụ án Tính liên quan thể hiện ở nguyên lý, công nghệ hình thành dấu vết điện tử, thông tin về không gian, thời gian hình thành dữ liệu (logfile, IP, siêu dữ liệu, hàm hash), địa chỉ lưu trữ, nội dung dữ liệu chứa thông tin về đối tượng, hành vi phạm tội, nơi hoạt động của đối tượng, cookies truy cập, nguồn gốc và nội dung email, chat, tin nhắn, công nghệ thanh toán thẻ, nạn nhân, thiệt hại,…
Tính hợp pháp: Chứng cứ phải được thu thập đúng luật, trong cả quá trình
khám xét, thu giữ vật chứng, sử dụng công nghệ (thiết bị phần cứng và phần mềm) được cơ quan pháp luật công nhận, để sao lưu dữ liệu, bảo quản, phục hồi, phân tích, tìm kiếm và giám định dữ liệu làm chứng cứ Cơ quan điều tra phải thu thập theo đúng thủ tục tố tụng hình sự: Máy tính, máy điện thoại, email, USB, đĩa CD/DVD,
dữ liệu thu từ máy chủ, chặn bắt trên đường truyền,…phải được ghi vào biên bản, niêm phong theo đúng quy định, không bị tác động làm thay đổi dữ liệu kể từ khi thu giữ hợp pháp và không thể can thiệp để thay đổi Chuyên gia phục hồi dữ liệu
sử dụng công nghệ và phần mềm phục hồi dữ liệu, như thiết bị chống ghi (Read Only – chỉ đọc) sao chép dữ liệu và chỉ sử dụng bản sao này để phục hồi, phân tích, tìm kiếm dữ liệu, chuyển thành dạng đọc được, nghe được, nhìn thấy được
1.2 Tổng quan về Server
1.2.1 Khái niệm
Server (máy chủ) được hiểu theo ba nghĩa sau đây:
● Là một thiết bị được cấu hình IP tĩnh, có khả năng kết nối với internet, có khả năng xử lý cao và khả năng lưu trữ lớn Ở đó các phần mềm được cài
Trang 1111
đặt để cho các máy tính khác truy cập vào và yêu cầu cung cấp tài nguyên, dịch vụ
● Máy chủ là một hệ thống (phần cứng và phần mềm máy tính phù hợp) đáp ứng yêu cầu trên một mạng máy tính để cung cấp hoặc là hỗ trợ cung cấp một dịch vụ mạng Có thể chạy trên một máy tính chuyên dụng hoặc là nhiều máy tính kết nối mạng có khả năng lưu trữ
● Là một chương trình máy tính được hoạt động như một dịch vụ để phục vụ cho những yêu cầu hoặc nhu cầu của chương trình khác
● Máy chủ ảo: Được tạo thành nhờ công nghệ ảo hóa phần cứng, để chia tách
từ một máy chủ vật lý thành nhiều máy chủ ảo khác nhau có chức năng tương tự như một máy chủ vật lý bình thường
Theo chức năng có:
● Máy chủ web: Máy chủ web để phục vụ người dùng mua hàng như các site amazon, taobao, google shopping, phục vụ người dùng đọc tin tức …vv), được sử dụng cho việc cung cấp văn bản và hình ảnh đơn giản, chẳng hạn như tải lên và sao lưu tệp trực tuyến thông qua dịch vụ lưu trữ đám mây hoặc dịch vụ sao lưu trực tuyến
● Máy chủ cơ sở dữ liệu: Được cài đặt các phần mềm quản trị cơ sở dữ liệu, giúp cho việc quản lý, xử lý và truy xuất tài liệu dễ dàng hơn
Trang 12● Máy chủ DNS: Là hệ thống phân giải tên miền
● Máy chủ trò chơi: Máy chủ phục vụ cho các trò chơi
● Máy chủ ứng dụng: Dùng để chạy các phần mềm quản lý ERP, phần mềm CRM trong doanh nghiệp, cũng có thể hiểu chung là máy chủ cung cấp dịch vụ web, mail, file server, …)
Với việc mạng Internet đang được phổ cập mạnh mẽ như hiện nay việc bảo mật server sẽ càng khó khăn hơn với việc thông tin hướng dẫn tấn công server được cung cấp vô số trên mạng Những lỗ hổng hàng loạt, lỗ hổng riêng biệt, lỗ hổng từ phần mềm, phần cứng, vô số những tác nhân khiến cho server thành miếng bánh ngon Tuy nhiên đây cũng là điều không thể tránh khỏi khi server được đưa lên mạng Internet Khi server sẽ bị tấn công có thể dẫn đến nhiều hậu quả như ngừng hoạt động, tài nguyên bị lạm dụng,… gây ảnh hưởng đến việc duy trì dịch vụ và hệ thống
Do vậy mà việc có những thông báo sớm đến quản trị viên khi hành động tấn công vừa mới chớm nở để có những phương án phòng thủ thích hợp là lựa chọn tối ưu nhất cho doanh nghiệp Tuy nhiên câu hỏi đặt ra là làm thế nào để có thể phát hiện sớm được những tác động xấu gây ảnh hưởng đến server? Câu trả lời là thông qua
việc phân tích file log
Trang 1313
1.3 Tổng quan về Log Server
1.3.1 File log server
Log server là một tài liệu văn bản đơn giản chứa tất cả các hoạt động của một máy chủ cụ thể trong một khoảng thời gian nhất định (ví dụ: một ngày) Log server được máy chủ tự động tạo, duy trì và có thể cung cấp cho người quản trị cái nhìn chi tiết về cách thức, thời gian trang web hoặc ứng dụng được cài đặt trên server đó hoạt động như thế nào
Tuy nhiên không phải file log nào cũng có cấu trúc giống nhau, với mỗi hệ điều hành và ứng dụng khác nhau lại có những định dạng log riêng Sau đây là một
số định dạng file log server phổ biến hiện nay:
Common Log Format:
Common Log Format (CLF) hay còn gọi là NCSA Common Log Format là là một định dạng tập tin văn bản tiêu chuẩn được sử dụng bởi các máy chủ web khi tạo file log server Định dạng log CLF được đặt tên theo NCSA HTTPd, một phần mềm web server đã ngừng hoạt động Common Log Format được viết ở định dạng ASCII
cố định (không thể tùy chỉnh) và ghi lại thông tin cơ bản về các gói http request có cấu trúc như: Host Ident Authuser Date Request Status Bytes
Trong đó:
Host: cung cấp địa chỉ IP address đang gửi request lên server
Ident: danh tính của client
Authuser: user id của client đang gửi request
Date: Ngày và giờ gửi yêu cầu
Request: Dòng yêu cầu từ client, được đặt trong dấu ngoặc kép (“”)
Status: Mã trạng thái HTTP được trả về client(gồm ba chữ số)
Bytes: kích thước của dữ liệu được trả về client được đo bằng bytes
Trong định dạng này nếu bất kỳ trường dữ liệu nào thiếu sẽ biểu thị bằng một
dấu gạch ngang (-)
Trang 1414
Ví dụ một request được ghi lại ở định dạng CLF:
110.53.221.34 - - [21/Mar/2020:02:06:55 +0700] "GET / HTTP/1.1" 200 163
"http://210.211.1.88:80" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT6.1)"
Common Event Format
Common Event Format (CEF) là định dạng log có thể mở rộng được HP Arcsight giới thiệu và đề xuất giúp đơn giản hóa việc quản lý event log CEF đã được tạo ra với mục đích xây dựng một tiêu chuẩn event log chung cho các thông tin bảo mật của các thiết bị mạng, ứng dụng và công cụ từ các nhà cung cấp khác nhau Cấu trúc của CEF cho các event log bao gồm một tiêu đề tiêu chuẩn và một biến văn bản Tiêu đề tiêu chuẩn của CEF thường có dạng ngày và tên máy chủ: Feb
23 12:54:06 host message
Biến văn bản sẽ được định dạng như bên dưới bao gồm các tham số được phân tách nhau bằng dấu |: CEF:Version|Device Vendor|Device Product|Device Version|Signature ID|Name |Severity|Extension
Trong đó:
Version: một số nguyên xác định phiên bản của định dạng CEF
Device Vendor, Device Product and Device Version: trường xác định loại
thiết bị Loại thiết bị phải đáp ứng được yêu cầu không tồn tại hai sản phẩm
có thể sử dụng cùng một cặp device-vendor lẫn device-product
Signature ID: là Mã định danh duy nhất cho mỗi loại sự kiện có thể là một
chuỗi hoặc một số nguyên
Name: là một trường đại diện giúp quản trị viên có thể đọc và hiểu rõ hơn về
sự kiện Tên sự kiện không được chứa thông tin được đề cập cụ thể trong các lĩnh vực khác
Severity: là một số nguyên và phản ánh mức độ nghiêm trọng của sự kiện
Mức độ nghiêm trọng nằm trong khoảng từ 0 đến 10, trong đó số 10 phản ánh mức độ nghiêm trọng cao nhất
Extension: là tập hợp các cặp khóa - giá trị được mô tả trong trường mở rộng
CEF
Trang 1515
Ví dụ: Sep 19 08:26:10 host CEF:0|security|threatmanager|1.0|100|worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2 spt=1232
JSON Log Format
JSON Log Format là định dạng log được viết theo dạng chuỗi JSON JSON Log Format giúp quản trị viên có thể phân tích nhật ký theo dạng big data Định dạng này không chỉ giúp nội dung có thể dễ dàng đọc được mà còn hỗ trợ việc tạo một cơ sở dữ liệu có thể dễ dàng truy vấn, điều này phép tóm tắt và phân tích diễn
ra nhanh hơn giúp quản trị viên giám sát ứng dụng của mình và khắc phục sự cố nhanh hơn
Ý nghĩa của các trường được định nghĩa như sau:
Timestamp: Giá trị ngày và thời gian
Id: Bộ đếm sự kiện nhận dạng liệt kê các sự kiện có cùng giá trị dấu thời gian Class: Tên lớp của sự kiện
Event: Tên sự kiện của lớp được chỉ định
Trang 1616
Connection_id: Mã định danh của kết nối (phiên) đã kích hoạt sự kiện Account: Tài khoản phiên hiện tại đang sử dụng Điều này tương ứng với
người dùng và máy chủ lưu trữ trong mysql.users bảng
Login: Chi tiết đăng nhập được sử dụng để kết nối máy khách
Các trường còn lại của sự kiện phụ thuộc vào loại lớp sự kiện nằm trong file log để có thêm vào
1.3.2 Mục đích của việc thu thập và phân tích log
● Kiểm tra sự tuân thủ các chính sách an ninh;
● Kiểm tra sự tuân thủ vấn đề kiểm toán và luật pháp;
● Phục vụ điều tra số;
● Phục vụ phản ứng các sự cố mất an toàn thông tin ;
● Hiểu các hành vi của người dùng trực tuyến, trên cơ sở đó tối ưu hóa hệ
thống cho phục vụ tốt hơn cho người dùng
1.3.3 Vai trò của File log server
Từ việc xử lý các vấn đề bảo mật đến xử lý sự cố bất thường về hiệu suất của ứng dụng hoặc tuân thủ các quy định, file log cung cấp cho người quản trị rất nhiều thông tin
Xử lý hệ thống tốt hơn: Một trong những trường hợp sử dụng rõ ràng nhất để
phân tích log có lẽ là trong việc khắc phục sự cố máy chủ, mạng hoặc hệ thống, từ
sự cố ứng dụng đến sự cố cấu hình và lỗi phần cứng
Khắc phục sự cố với phân tích log server thường được sử dụng trong việc quản trị vì nó cho phép DevOps phát hiện và giải quyết các lỗi hệ thống quan trọng nhanh hơn, cải thiện hiệu quả hoạt động
Ứng phó tốt hơn với các vi phạm dữ liệu và các sự cố bảo mật khác: Khi nói
đến an ninh mạng, log server cung cấp một kho thông tin về những kẻ tấn công của người dùng, chẳng hạn như địa chỉ IP, các request giữa client /server, mã trạng thái HTTP, Tuy nhiên, nó vẫn bị đánh giá thấp Rất nhiều công ty không hiểu giá trị của việc phân tích log mà vẫn chỉ dựa vào tường lửa cơ bản hoặc phần mềm bảo mật
Trang 1717
khác để bảo vệ dữ liệu của họ trước các cuộc tấn công DNS Tuy nhiên, không có file log server, bạn không thể hiểu rủi ro bảo mật và phản hồi tương ứng
Phát hiện hành vi người dùng trực tuyến: Phân tích Log server là một trong
những cách tốt nhất để hiểu hành vi của khách truy cập ứng dụng cài đặt trên Server
Nó không chỉ cho biết bạn có bao nhiêu khách truy cập mà còn cho phép bạn theo dõi lại hành trình chính xác của họ và hiểu về những trang họ đã dành nhiều thời gian nhất, họ đã làm gì trên trang web của bạn, tại sao có sự thay đổi về số lượng khách truy cập
1.3.4 Phân tích file log trong bảo mật server
Phân tích log server là quá trình tìm hiểu ý nghĩa của thông điệp tường trình
do server tạo ra, còn được gọi là log events, audit trail records hoặc đơn giản là logs Phân tích log cung cấp các số liệu hữu ích vẽ nên một bức tranh rõ ràng về những gì
đã xảy ra trên cơ sở hạ tầng Quản trị viên hoàn toàn có thể sử dụng dữ liệu này để cải thiện hoặc giải quyết các vấn đề về hiệu suất trong một ứng dụng hoặc trên tổng thể server
Phân tích log server là một công việc bắt buộc đối với người quản trị server nào Họ phải thường xuyên theo dõi và phân tích Log server hệ thống để tìm kiếm lỗi, sự bất thường hoặc hoạt động đáng ngờ hoặc trái phép đi lệch khỏi định mức Điều này cho phép họ tạo lại chuỗi sự kiện dẫn đến sự cố và khắc phục sự cố một cách hiệu quả
Trong trường hợp xảy ra sự cố bảo mật, chẳng hạn như khi cơ sở dữ liệu bị chỉnh sửa, các trang web bị xóa hoặc xóa các tệp, log server có thể là bằng chứng duy nhất về những gì đã xảy ra
1.4 Kết luận chương 1
Trong chương này, bài báo cáo đã giới thiệu về chứng cứ điện tử gồm các đặc điểm, thuộc tính và các vấn đề khi thu thập chứng cứ điện tử Ngoài ra còn giới thiệu tổng quan về log server, vai trò và ứng dụng của file log từ đó thấy được tầm quan trọng của việc phân tích file log trong bảo mật server Chương 2 sẽ đi tìm hiểu sâu hơn về cách thức thu thập và phân tích log của một số loại server
Trang 1818
CHƯƠNG II THU THẬP VÀ PHÂN TÍCH NHẬT KÝ SERVER 2.1 Windows Log File
2.1.1 Event Log
2.1.1.1 Giới thiệu Event Log
Event log ghi lại các sự kiện diễn ra trong việc thực hiện của một hệ thống nhằm cung cấp cơ sở để kiểm tra lại hệ thống hoặc có thể được sử dụng để tìm hiểu hoạt động và chẩn đoán các vấn đề nếu có đối với hệ thống
Chúng rất cần thiết cho việc tìm hiểu các hoạt động của các hệ thống phức tạp, đặc biệt là trong trường hợp các ứng dụng với tương tác người dùng (chẳng hạn như các ứng dụng máy chủ)
Nó cũng rất hữu ích trong việc kết hợp các log file từ nhiều nguồn khác nhau
Sử dụng các biện pháp kết hợp với phân tích thống kê các log file này, có thể xác định các mối tương quan giữa các sự kiện dường như không liên quan trên các máy
chủ khác nhau
2.1.1.2 Định dạng cấu trúc của Event Log
Event Log của Windows được lưu trữ ở thư mục mặc định tại đường dẫn
%System root%\System32\winevt\logs
Cấu trúc của log gồm các trường sau:
1 Log Name Tên của log mà sự kiện được lưu trữ, ví dụ như loại log
liên quan đến Security thì nó là Security, nếu log liên quan đến ứng dụng thì nó là Application
2 Source Là hệ thống/ứng dụng sinh ra log, ví dụ sinh ra bởi
McAfee thì nó là “McAfee”
3 Event ID Là mã được gắn cho mỗi loại sự kiện
4 Level Mức độ của sự kiện, có mấy loại như Information,
Error, Warning,…
5 User Là user thực thi liên quan đến sự kiện đang ghi nhận
Trang 19Mô tả chi tiết
Bảng 2.1 Cấu trúc các trường của log 2.1.1.3 Một số log thường gặp để xử lý sự cố dựa vào Event ID
Event liên quan đến quản lý tài khoản: Là các event lưu lại khi tài khoản
được tạo, chỉnh sửa
1 4720 Tạo thành công tài khoản
2 4722 Enable tài khoản
3 4723 Thay đổi mật khẩu của user
5 4725 Disable tài khoản
7 4727 Nhóm global được tạo thành công
8 4728 Tài khoản được thêm vào nhóm global
9 4729 Tài khoản được xóa vào nhóm global
10 4730 Nhóm global bị xóa
11 4731 Nhóm local được tạo
12 4732 Tài khoản được thêm vào nhóm local
13 4733 Tài khoản được xóa vào nhóm local
14 4734 Nhóm local bị xóa
15 4735 Nhóm local được thay đổi
Trang 2020
16 4737 Nhóm global được thay đổi
17 4738 Thay đổi tài khoản
18 4741 Tại tài khoản thành cônh
19 4742 Thay đổi tài khoản
Bảng 2.2 Event ID liên quan đến quản lý tài khoản
Event liên quan đến đăng nhập, đăng xuất tài khoản: sinh ra khi có thao
tác đăng nhập hay đăng xuất tài khoản
Event về truy cập share folder/object: có ID từ 5140 đến 5145
Event về Scheduled Task: các event liên quan đến lập lịch
1 106 Scheduled Task được tạo thành công
2 140 Scheduled Task được cập nhật
4 200 Scheduled Task được thực thi
5 201 Scheduled Task thực thi thành công
Bảng 2.3 Event về Scheduled Task
Event về quản lý chính sách: sinh ra khi các thao tác thay đổi policy trên máy tính Event ID từ 1102 đến 4719
Event về các dịch vụ:
1 6005 Dịch vụ Event Log start
2 6006 Dịch vụ Event Log stop
3 7034 Đa số xuất hiện khi dịch vụ bị crash
4 7036 Dịch vụ bị dừng hoặc start
5 7040 Cấu hình service bị thay đổi
6 7045 Service được tạo bởi hệ thống
Bảng 2.4 Event về các dịch vụ
Trang 2121
Event về LAN, Wireless: sinh ra khi liên quan đến các kết nối mạng
1 8001 Kết nối thành công qua WLAN
2 8002 Kết nối không thành công quan WLAN
Máy tính kết nối mạng thành công
Bảng 2.5 Event về LAN, Wireless
Event liên quan đến tiến trình: liên quan đến các tiến trình trên windows
1 4688 Process được tạo/call thành công
Bảng 2.6 Event ID liên quan đến tiến trình
Event về thực thi chương trình: một số event thường gặp khi điều tra về các tiến trình lạ được thực thi liên quan đến các action của Windows Defender
1 1006 Các chương trình được nhận diện là malware
2 1007 Action ngăn chặn một chương trình có thể gây hại cho
hệ thống
3 1008 Action ngăn chặn một chương trình có thể gây hại cho
hệ thống nhưng không thành công
4 1013 Hệ thống xóa history
5 1015 Phát hiện một module dạng độc hại
6 1119 Gặp lỗi trong quá trình ngăn chặn hành động của
malware
7 5001 Disable real-time giám sát ngăn chặn
8 5004 Cấu hình real-time được thay đổi
Bảng 2.7 Event ID về thực thi chương trình
Trang 22● Sự kiện đã diễn ra: Hành động
● Date/Time: Thời gian xảy ra sự kiện
● Computers được đề cập: Source IP, Destination IP
● Ports được đề cập: Source port, Destination port
● Kiểu packet: Protocol, Tcp Ip Flags
Trang 2323
2.2 Linux Log File
Phân loại file log trong Linux:
Message log : /var/log/messages
Chứa dữ liệu log của hầu hết các thông báo hệ thống nói chung, bao gồm cả các thông báo trong quá trình khởi động hệ thống Ví dụ như, khi restart service network, sẽ có các log về networking xuất hiện Sử dụng câu lệnh sau để xem các file log được realtime:
File log message thể hiện rõ luồng xử lý của việc restart networking như sau: Shutdown dịch vụ networking
Các interface bị down xuống
Dịch vụ network được bật lên
Các interface được bật lên
Trang 2424
Dịch vụ network xác thực đã được bật
Những dòng log trên cho người dùng hai cách nhìn :
● Nếu như có lỗi liên quan tới network, việc đầu tiên cần làm là xem log trong file message
● Nếu cứ có các dòng log trên xuất hiện, thì nghĩa là đã có event Networking restart
Crontab log : /var/log/cron
File log cron chứa dữ liệu log của cron daemon Bắt đầu và dừng cron cũng như cronjob thất bại Cron daemon là tiến trình giúp người dùng thực hiện một hành động trên hệ thống một cách tự động theo mốc thời gian cố định Khi thực hiện chạy một crontab thực hiện việc backup database với thời gian là 2h/lần
Xem nội dung setup trong crontab với câu lệnh crontab -e :
Khi đó, trong file log /var/log/cron sẽ ghi lại quá trình crontab được thực hiện
Sử dụng câu lệnh sau để lọc thông tin về việc chạy cron cho file: /backup/backup_database.sh
Có thể thấy là việc chạy file /backup/backup_database.sh được diễn ra đều đặn 2h/lần
Trang 2525
Log về Login - Logout : /var/log/wtmp
File log wtmp chứa tất cả các thông tin đăng nhập và đăng xuất lịch sử Tuy nhiên, file log wtmp có định dạng khá đặc biệt Để đọc được file log này, chúng ta
sử dụng câu lệnh sau:
Mỗi khi có người dùng logout khỏi hệ thống, định dạng log sẽ như sau :
Còn đây là định dạng log mỗi khi có người login vào hệ thống :
Log phần cứng : /var/log/dmesg
Chứa thông tin bộ đệm kernel ring Khi hệ thống khởi động, file log sẽ chứa thông tin về các thiết bị phần cứng mà kernel phát hiện được Các message này có sẵn trong kernel ring buffer và bất cứ khi nào có message mới xuất hiện, message sẽ
bị ghi đè Cũng có thể xem nội dung của tệp này bằng lệnh dmesg
Trang 2626
Tập trung vào một số file log liên quan tới phần cứng như :
Hai log trên cho thấy thông tin về ổ cứng và SMBus của máy ảo được in ra khi máy ảo được khởi tạo
Log về SSH : /var/log/secure
Tiếp theo, phân tích một file log rất quan trọng và mang lại nhiều thông tin hữu ích Đó chính là file log secure chứa các nội dung về việc SSH tới hệ thống Việc SSH tới hệ thống có thể chia thành ba trường hợp chính :
Login SSH thành công
Login SSH thất bại
Logout SSH
2.3 Application Server Log File
2.3.1 Web Server log file
Web server là máy chủ cài đặt các chương trình phục vụ các ứng dụng web Web server có khả năng tiếp nhận request từ các trình duyệt web và gửi phản hồi đến client thông qua giao thức HTTP hoặc các giao thức khác
Một số Web server thông dụng nhất hiện nay: Apache, Nginx, IIS, Apache Tomcat, Lighttpd, …
Trang 2727
Mục đích chính của web server là lưu trữ các tệp của website và phát chúng qua internet để khách truy cập web có thể xem được Về bản chất, một web server đơn giản chỉ là một máy tính mạnh mẽ với khả năng lưu trữ và truyền dữ liệu qua internet Khi ai đó truy cập trang trên web của bạn, trình duyệt của họ sẽ giao tiếp với web server của bạn, gửi và nhận các thông tin mà chúng được ra lệnh để xuất hiện trên màn hình máy tính của khách truy cập Như vậy, vai trò chủ yếu của server
là lưu trữ và chuyển tải dữ liệu website theo yêu cầu từ trình duyệt của khách truy cập
Phân tích nhật ký máy chủ web, là quá trình thu thập, phân tích cú pháp và phân tích các tệp nhật ký được tạo bởi các máy chủ web, mục tiêu là trích xuất thông tin chi tiết về các yêu cầu được gửi đến máy chủ và bất kỳ sự cố nào có thể xảy ra Tệp nhật ký máy chủ web là một tệp văn bản thuần túy đơn giản ghi lại thông tin mỗi khi người dùng yêu cầu tài nguyên từ một trang web Tệp này được mở khi các dịch vụ web của máy chủ khởi động và vẫn mở dưới dạng máy chủ đáp ứng yêu cầu của người dùng Tệp nhật ký web cung cấp cho quản trị viên web nhiều loại thông tin hữu ích như:
● Những trang nào trên trang web của bạn đã được yêu cầu
● Những lỗi mà mọi người gặp phải là gì
● Trạng thái được máy chủ trả về theo yêu cầu của người dùng là gì
● Có bao nhiêu byte được gửi từ máy chủ đến người dùng
Web log file format:
Các web server như Apache và IIS thường tạo ra các thông điệp đăng nhập (logging message) mặc định trong đặc tả Common Log Format (CLF) Các tập tin CLF log chứa một dòng riêng biệt cho mỗi yêu cầu HTTP Một dòng gồm nhiều thẻ ngăn cách bởi khoảng trắng, nó mang những thông tin sau:
● Host: Chứa tên miền đầy đủ của client, hoặc địa chỉ IP của nó
● Ident: Thông tin nhận dạng của các client
● Authuser: Nếu các URL được yêu cầu cần xác thực thành công Basic HTTP, sau đó tên người sử dụng là giá trị của ký hiệu này
Trang 2828
● Date: Ngày và thời gian yêu cầu
● Request: Dòng yêu cầu từ client, được đặt trong dấu ngoặc kép (“”)
● Status: Các mã trạng thái HTTP gồm 3 chữ số được trả lại cho client
● Byte: Số byte trong đối tượng trả lại cho client, bao gồm tất cả các HTTP header
Nhật ký truy cập máy chủ (Access log)
Nhật ký truy cập chứa thông tin về thời điểm các yêu cầu đến máy chủ được thực hiện, nó đến từ đâu, các trang cụ thể được yêu cầu, mã phản hồi, Đây là một
ví dụ về nhật ký truy cập máy chủ apache:
Trong đó:
● 127.0.0.1: địa chỉ IP của máy khách (máy chủ từ xa) mà thực hiện yêu cầu tới máy chủ
● - : cho biết thông tin không có sẵn
● frank: đây là userid của người yêu cầu các tài liệu được xác định bằng cách xác thực HTTP
● [10/Nov/2021:13:55:36 0700]: Thời gian mà các máy chủ xử lý xong yêu cầu
● "GET/index.html HTTP/1.0": Dòng yêu cầu từ người dùng được đưa ra trong dấu ngoặc kép Dòng yêu cầu có chứa rất nhiều thông tin hữu ích Đầu tiên, các phương pháp được sử dụng bởi các người dùng là GET Thứ hai, người dùng yêu cầu tài nguyên /apache_pb.gif , và thứ ba, người dùng sử dụng các giao thức HTTP/1.0
● 200: Đây là mã trạng thái mà máy chủ gửi lại cho khách hàng (HTTP status code) Thông tin này là rất có giá trị, bởi vì nó cho thấy liệu các yêu cầu dẫn đến một phản ứng thành công, chuyển hướng, lỗi gây ra bởi client, một lỗi trong các máy chủ
127.0.0.1 - frank [10/Nov/2021:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0"
200 2326
Trang 2929
● 2326: Mục cuối cùng chỉ ra kích thước của đối tượng trả lại cho khách hàng, không bao gồm các tiêu đề ứng Nếu không có nội dung được trả lại cho khách hàng, giá trị này sẽ được " - "
Nhật ký lỗi máy chủ (Error log)
Các error log máy chủ, là log file rất quan trọng Đây là nơi mà máy chủ web
sẽ gửi thông tin chẩn đoán và ghi lại bất kỳ lỗi nào mà nó gặp trong các yêu cầu xử
lý Đây là nơi đầu tiên để xem xét khi một vấn đề xảy ra với khởi chạy máy chủ hoặc với những hoạt động của máy chủ, vì nó sẽ thường chứa các thông tin chi tiết về những gì đã xảy ra và làm thế nào để sửa chữa nó Error log thường được ghi vào một tập tin (thường là error_log trên các hệ thống Unix và error.log trên Windows) Trên các hệ thống unix nó cũng có thể có các máy chủ gửi lỗi tới syslog Định dạng của các error log là tương đối dạng tự do Nhưng có một số thông tin được chứa trong hầu hết các mục error log Ví dụ, đây là một thông điệp điển hình:
Mục đầu tiên trong mục ghi là ngày và thời gian của tin nhắn Mục thứ hai liệt
kê mức độ nghiêm trọng của lỗi được báo cáo Mục thứ ba cung cấp cho các địa chỉ
IP của client đã tạo ra lỗi Ngoài ra là thông điệp chính nó, mà trong trường hợp này chỉ ra rằng các máy chủ đã được cấu hình để từ chối truy cập từ client Các máy chủ báo cáo các đường dẫn tập tin hệ thống của tài liệu được yêu cầu
2.3.2 Database Server log file
2.3.2.1 SQL Server log file
Khi nói về SQL Server log file, suy nghĩ đầu tiên chính là transaction log, trong đó ghi lại các giao dịch cơ sở dữ liệu gần đây và được sử dụng để đảm bảo tính toàn vẹn cơ sở dữ liệu trong trường hợp của một hệ thống khôi phục lại Tuy nhiên, nhiều tập tin nhật ký khác cũng giúp chẩn đoán và khắc phục sự cố Dưới đây
là năm file log có vai trò quan trọng trong SQL Server
[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test
Trang 3030
SQL Server Setup Log
Vị trí của SQL Server Setup log: “\ProgramFiles\MicrosoftSQL Server\90\Setup Bootstrap\LOG\Summary.txt” Nếu tập tin log summary.txt hiển thị một thành phần thất bại, có thể điều tra các nguyên nhân gốc rễ bằng cách nhìn vào log của các thành phần, log đó sẽ tìm thấy trong thư mục:
\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Files
SQL Server Profiler Log
SQL Server Profiler, công cụ truy tìm ứng dụng chính trong SQL Server, nắm bắt hoạt động cơ sở dữ liệu hiện tại của hệ thống và viết nó vào một tập tin để phân tích sau Có thể tìm thấy các Profiler log trong file log trc trong thư mục:
\ProgramFiles\Microsoft SQL Server\MSSQL.1\MSSQL\LOG SQL Server Agent Log
SQL Server Agent, là hệ thống phụ lập lịch trình công việc SQL Server, duy trì một bộ các tập tin nhật ký với thông điệp cảnh báo và báo lỗi về việc nó đã chạy, được viết vào thư mục:
\ProgramFiles\Microsoft SQL Server\MSSQL.1\MSSQL\LOG SQL Server sẽ duy trì tối đa chín SQL Server Agent lỗi trong file log Các tập tin log hiện được đặt tên là SQLAgent.OUT, trong khi tập tin lưu trữ được đánh số tuần tự Có thể xem SQL Server Agent Log bằng cách sử dụng SQL Server
Management Studio (SSMS)
Windows Event Log
Một nguồn thông tin quan trọng cho việc xử lý sự cố lỗi của SQL Server, Windows Event Log chứa các bản ghi rất hữu ích Các application log ghi lại các sự kiện trong SQL Server và SQL Server Agent và có thể được sử dụng bởi và SQL Server Integration Services (SSIS) Các security log ghi lại thông tin xác thực, và system log ghi lại việc khởi động và tắt máy Để xem các Windows Event log, vào Administrative Tools, Event Viewer
Trang 3131
SQL Server Error Log
Error Log, là log file quan trọng nhất trong SQL Server, được sử dụng để khắc phục sự cố hệ thống SQL Server giữ lại bản sao lưu của sáu bản ghi trước đó, đặt tên mỗi file bản ghi lưu trữ theo tuần tự Các file error log hiện tại được đặt tên ERRORLOG Để xem các error log, nằm trong thư mục Program Files\Microsoft
SQL Server\MSSQL.1MSSQL\LOG\ERRORLOG
2.3.2.2 MySQL log file
Liên quan đến các máy chủ cơ sở dữ liệu MySQL cần phải tham khảo các Log file sau đây:
The Error Log: Chứa thông tin về các lỗi xảy ra trong khi máy chủ đang hoạt động (start và stop máy chủ)
The General Query Log: Các log chung liên quan đến MySQL (connect, disconnect, queries)
The Slow Query Log: Log ghi lại các query thực thi lâu đến MySQL (as indicated by its name)
Error Log
Gửi error log đi tới syslog trong: etc/mysql/conf.d/mysqld_safe syslog.cnf :
Đây là phương pháp được khuyến nghị Nếu vì một số lý do, nếu không muốn gửi Error log đến syslog, thêm ký tự # trước dòng trên trong
etc/mysql/conf.d/mysqld_safe syslog.cnf hoặc xóa hoàn toàn tập tin này Sau đó,
thêm vào trong /etc/mysql/my.cnf các dòng sau:
Khởi động lại MySQL server sau khi thay đổi:
Trang 3232
General Query Log
Để kích hoạt General Query Log, thêm dòng sau:
Khởi động lại MySQL server sau khi thay đổi:
Slow Query Log
Để kích hoạt Slow Query Log, thêm dòng sau:
Khởi động lại MySQL server sau khi thay đổi:
2.3.3 Mail Server log file
Mail Server, hay Email Server, Máy chủ Email Đây là một loại máy hoặc ứng dụng chịu trách nhiệm xử lý thư điện tử Nói dễ hiểu, một Email Server sẽ thực hiện công việc nhận và phân phối email Hệ thống máy chủ Mail này có khả năng thao tác với tốc độ ổn định, nhanh chóng, đảm bảo an toàn và khả năng khôi phục dữ liệu cao
Các loại Mail Server:
Mail Server gửi đi (Outgoing Mail Servers): SMTP – Giao thức dịch chuyển Mail đơn giản
Mail Server đến (Incoming Mail Servers): bao gồm 2 loại giao thức như sau:
Trang 3333
Một số Mail server phổ biến: Mdaemon, Kerio Mail Server, Marak Mail Server, MS Exchange Server, VisNetic Mail Server, SendMail, PostFix,…
Email log: là các tập tin có chứa thông tin về tất cả các email được gửi thông
qua Mail Server trong khoảng thời gian yêu cầu Có thể sử dụng log email để khắc phục các lỗi gặp phải Các thông tin bao gồm:
● Các địa chỉ email của từng người gửi và người nhận email
● Ngày và thời gian mỗi email được gửi đi
● Các trạng thái phân phối của từng email
● Bất kỳ mã lỗi liên quan với mỗi email
Hệ thống log bao gồm:
Log Config: Lưu lại toàn bộ các thay đổi trên server, Log config có 3 loại:
1 Lưu lại các thông tin đăng nhập trang quản trị
2 Lưu lại các thông tin thay đổi cấu hình trên database, nói cách khác là thay đổi cấu hình của user có liên quan đến database
3 Những thay đổi khác trong cấu hình
Ví dụ: [11/Nov/2021 04:40:42] attt@actvn.vn - Store backup started
● [11/Nov/2021 04:40:42]: thời gian khởi tạo log
● attt@actvn.vn: user trực tiếp thao tác
● Store backup started: nội dung hành động
● Khi nhìn vào log trên thì hiểu rằng, vào khoảng thời gian 4:40:42 ngày
11/11/2021 user attt@actvn.vn đã bắt đầu backup dữ liệu
Log Debug:
Sử dụng để giám sát các loại thông tin nhất định, theo mặc định nó sẽ hiển thị các thông tin liên quan đến khởi động và dừng các dịch vụ, giao thức trên Mail server Liệt kê các dịch vụ và port kết nối phục vụ cho quá trình vận hành của Mail server và các thông tin khác mô tả các quá trình xử lý của mail server
Trang 34Removed (moved) Item ( xóa và chuyển item):
Ví dụ: [11/Nov/2021 06:22:38] {MOVE} Protocol: HTTP/WebMail, User:
user2@act.vn, IP: 14.161.33.139, Folder: ~user2@act.vn /INBOX, Destination Folder: ~user2@act.vn /Junk E-mail, From: user1@act.vn, Subject: "spam", Msg-Id: <3113284122-30945@mail.biladen.com>, Delivered: 11/Nov/2021 06:22:09,
Size: 1015
● [11/Nov/2021 06:22:38]: thời gian khởi tạo log
● {MOVE}: loại hành động
● Protocol: giao thức kết nối
● User: user trực tiếp thao tác
● IP: IP của user thao tác
● Folder: đường dẫn thư mục cũ
● Destination Folder: đường dẫn thư mục mới
● From: từ người gửi