Hiện nay có nhiều kỹ thuật khác nhau được sử dụng trong phân tích weblog,trên thế giới đã có một số nền tảng và công cụ cho thu thập, xử lý và phântích các dạng log phiên bản thương mại
Trang 1BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
ĐỀ TÀINGHIÊN CỨU CÁC KỸ THUẬT VÀ CÔNG CỤ PHÂN TÍCH WEB LOG
Học viên thực hiện: Lê Như HậuKhóa: 14
Chuyên ngành: An toàn thông tinNgười hướng dẫn:TS Hoàng Xuân Dậu
Hà Nội, 2022
Trang 2BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
ĐỀ TÀINGHIÊN CỨU CÁC KỸ THUẬT VÀ CÔNG CỤ PHÂN TÍCH WEB LOG
Học viên thực hiện: Lê Như HậuKhóa: 14
Chuyên ngành: An toàn thông tinNgười hướng dẫn: TS Hoàng Xuân Dậu
Hà Nội, 2022
Trang 3LỜI CẢM ƠN
Trong thời gian thực hiện đồ án tốt nghiệp, em đã nhận được nhiều sựgiúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô, gia đình và bạn bè.Trong thực tế không có sự thành công nào mà trong đó không gắn liền với những
sự hỗ trợ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Với lòng biết
ơn sâu sắc, em xin gửi lời cảm ơn chân thành nhất đến cán bộ hướng dẫn Thầygiáo TS Hoàng Xuân Dậu – Khoa CNTT1, Học viện Công nghệ BC-VT người
đã giúp đỡ hướng dẫn em tận tình, chỉ bảo cho em trong suốt quá trình làm đồ
án
Em cũng xin cảm ơn và tri ân sâu sắc tới các thầy cô giáo trong trườngHọc viện kỹ thuật mật mã nói chung, các thầy cô trong khoa An toàn thông tinnói riêng đã dạy dỗ, truyền đạt cho em những kiến thức về các môn đại cươngcũng như các môn chuyên ngành, giúp em có được cơ sở lý thuyết tốt và tạo điềukiện giúp đỡ em trong suốt quá trình học tập
Cuối cùng, em xin chân thành cảm ơn gia đình, người thân và bạn bè, đãluôn tạo điều kiện, quan tâm, giúp đỡ em từ những vấn để nhỏ nhất, tạo cho emđiều kiện tốt nhất và động viên em trong suốt quá trình học tập và hoàn thành đồ
án tốt nghiệp
Trang 4LỜI CAM ĐOAN
Em xin cam đoan toàn bộ nội dung đồ án này là do em tìm hiểu, nghiêncứu dưới dự hướng dẫn của TS Hoàng Xuân Dậu
Các nội dung được trình bày trong đồ án là những kết quả đạt được trongthời gian em thực hiện đề tài dưới sự hướng dẫn của giáo viên hướng dẫn, emkhông sao chép nguyên bản kết quả của các nghiên cứu đã từng được công bố vàđây cũng là kết quả của quá trình tìm hiểu, học tập nghiêm túc của em trong suốtquá trình học đại học Bên cạnh đó, trong một số nội dung đồ án là kết quả phântích, nghiên cứu, tổng hợp từ nhiều nguồn tại liệu khác Các thông tin tổng hợphay các kết quả lấy từ các nguồn tài liệu khác đã được em trích dẫn một cách đầy
đủ và hợp lý trong mục tài liệu tham khảo Nguồn tài liệu tham khảo có xuất xứ
rõ ràng và được trích dẫn hợp pháp
Hà Nội, ngày tháng năm 2022
Học viên thực hiện
(Ký và ghi rõ họ tên)
Trang 7MỞ ĐẦU
Cùng sự phát triển mạnh mẽ của thương mại điện tử trong những năm gầnđây, các trang web bán hàng trực tuyến ngày càng trở nên phổ biến thì sự cạnhtranh ngày một trở nên khốc liệt Các doanh nghiệp muốn nắm được các hành vicủa người dùng trên website của mình nhằm đưa ra các chính sách tiếp thị phùhợp, hay giúp tối ưu hóa website, đưa ra được những gợi ý sát với nhu cầu củangười dùng nhất
Hiện nay có nhiều kỹ thuật khác nhau được sử dụng trong phân tích weblog,trên thế giới đã có một số nền tảng và công cụ cho thu thập, xử lý và phântích các dạng log phiên bản thương mại cũng như mã mở như IBM QradarSIEM, Splunk, Graylog và Logstash, Tuy nhiên, việc nghiên cứu sâu cácphương pháp xử lý và phân tích web log và ứng dụng ở Việt Nam vẫn cần đượctiếp tục thực hiện
Đồ án tốt nghiệp với đề tài " NGHIÊN CỨU CÁC KỸ THUẬT VÀCÔNG CỤ PHÂN TÍCH WEB LOG" theo hướng nghiên cứu này có mục đích lànghiên cứu các kỹ thuật xử lý và phân tích web log, sau đó áp dụng các kiến thứctìm hiểu được để triển khai thử nghiệm một hệ thống phân tích web log có chứcnăng thu thập, xử lý và phân tích các file web log để sinh các báo cáo về hành vitruy nhập web của người dùng
Đồ án được cấu trúc gồm ba chương chính với nội dung sau:
Chương 1:Tổng quan về web log và xử lý web log: giới thiệu các kháiniệm cơ bản về web log và các định dạng web log phổ biến hiện nay
Trang 8 Chương 2: Các kỹ thuật và công cụ xử lý, phân tích web log: phân tíchcác kỹ thuật xử lý và phân tích web log, giới thiệu một số công cụ quản
lý, phân tích web log
Chương 3: Cài đặt và thử nghiệm ứng dụng phân tích web log: triểnkhai cài đặt thử nghiệm một hệ thống thu thập, phân tích web log vàđưa ra một số kết quả
Trang 9Chương 1 TỔNG QUAN VỀ WEB LOG VÀ XỬ LÝ WEB LOG
1.1 Giới thiệu về web log
1.1.1 Định nghĩa
Một file web log là file dùng để ghi lại thông tin về hoạt động, thao tác củamột hay nhiều người dùng Web khi người dùng gửi 1 yêu cầu tài nguyên từ trangweb Nó giống như một quyển nhật ký hay một bản tin trực tuyến nhằm thôngbáo những sự kiện xảy ra hàng ngày trên 1 trang web
File web log cung cấp các thông tin hữu ích như:
Trang nào của website mà người dùng đã yêu cầu ?
Các lỗi mà người dùng gặp phải là gì ?
Trạng thái được trả về bởi máy chủ với yêu cầu của người dùng là gì ?
Số lượng byte được gửi từ máy chủ đến người dùng ?
Web log có thể sử dụng với nhiều mục đích khác nhau như : phân tích ,thống kê các số liệu , hành vi người dùng Từ những kết quả, số liệu đó giúpích rất nhiều đối với người quản trị Ngoài ra, khi hệ thống gặp sự cố, web logcũng là một nguồn cung cấp các dữ liệu quan trọng cho quản trị viên để tìm hiểunguyên nhân và khắc phục sự cố
1.1.2 Các loại web server log
Có 4 loại server log chính :
Trang 10 Access logs : dữ liệu của tất cả các yêu cầu đến và thông tin phía clienttới máy chủ Access log ghi lại tất cả các yêu cầu được xử lý bởi máychủ
Referrer logs: cung cấp thông tin về liên kết và chuyển hướng ngườidùng truy cập đến trang web
Agent logs: Lưu trữ thông tin về client gửi request tới web server Baogồm thông tin trình duyệt và hệ điều hành mà người dùng sử dụng đểtruy cập đến web3
Error logs: Lưu trữ thông tin về lỗi xảy ra với các yêu cầu đến máychủ Access log và error log là 2 log được sử dụng chính còn với agentlog và referrer log là 2 log có thể được kích hoạt hoặc không bởi máychủ
1.1.3 Các nguồn sinh web log
Phía Server
Web server log là một nguồn quan trọng để thực hiện phân tích vì nó ghilại tất cả những hành vi của người dùng truy cập web Dữ liệu được ghi trong logmáy chủ phản ánh (có thể đồng thời) truy cập của một trang web bởi nhiều ngườidùng Các file log này có thể được lưu trữ dưới các định dạng khác nhau nhưCommon Log hoặc Extended Log Tuy nhiên, dữ liệu này được ghi lại bởi máychủ có thể không được hoàn toàn đáng tin cậy do còn có ảnh hưởng từ nhiều yếu
tố khác Ví dụ như: Lượt xem trang được lưu trong bộ nhớ cache chứ khôngđược ghi lại trong log máy chủ Ngoài ra, thông tin quan trọng được gửi thôngqua các phương thức POST sẽ không được lưu lại trên server Sử dụng việc chặn
Trang 11gói tin là một phương pháp thay thế để thu thập dữ liệu sử dụng thông qua logmáy chủ Các gói tin được chặn bắt và dữ liệu được triết xuất trực tiếp từ gói tinTCP/IP.
Máy chủ Web cũng có thể lưu trữ các loại thông khác như cookie và dữliệu truy vấn Cookie là các mã thông báo được tạo ra bởi máy chủ Web cho cáctrình duyệt để tự động theo dõi khách truy cập trang web Cookie dựa trên sựhợp tác ngầm định của người và do đó đã gây ra mối quan ngại ngày càng tăng
về sự riêng tư của người dùng Bên cạnh dữ liệu sử dụng, phía máy chủ cũngcung cấp dữ liệu nội dung, thông tin cấu trúc và thông tin meta của trang web(chẳng hạn như kích thước của một tệp tin và thời gian sửa đổi cuối cùng)
Phía Client
Việc thu thập dữ liệu phía client có thể được thực hiện bằng cách sử dụngmột tác nhân từ xa ( ví dụ: Javascript hoặc Java applets) hoặc bằng cách sửa đổisource code ở trên trình duyệt để nâng cao khả năng thu thập dữ liệu Việc triểnkhai các phương thức thu thập dữ liệu phía client đòi hỏi phải có sự hợp tác củangười dùng, hoặc trình duyệt của người dùng phải được kích hoạt tính năng củaJavascripts và các Java applets, hoặc tự nguyện sử dụng trình duyệt đã sửa đổi
Thu thập phía Client có một lợi thế hơn thu thập phía máy chủ bởi vì nócải thiện cả vấn đề caching và nhận dạng phiên Tuy nhiên, Java applets thựchiện không tốt hơn log phía máy chủ trong việc xác định thời gian xem thực củamột trang Trong thực tế, nó có thể phải chịu thêm một số chi phí, đặc biệt là khiJava applets được tải lần đầu tiên Javascripts không thể bắt tất cả các nhấp chuộtcủa người dùng (chẳng hạn như nút tải lại hoặc quay lại trang trước của trìnhduyệt) Các phương pháp này sẽ thu thập chỉ hành vi duyệt web của một người
Trang 12dùng duy nhất Một trình duyệt đã sửa đổi rất linh hoạt và cho phép thu thập dữliệu về một người dùng trên nhiều trang web Phần khó nhất của việc sử dụngphương pháp này là việc làm sao để người dùng sử dụng trình duyệt đã sửa đổicho hoạt động duyệt web hàng ngày của họ.
Phía Proxy
Một proxy Web hoạt động như là một bộ nhớ đệm giữa các trình duyệtcủa khách hàng và máy chủ Web Proxy cache được sử dụng để giảm thời giantải trang Web của người dùng cũng như tải lưu lượng mạng tại máy chủ và máykhách Hiệu suất của proxy cache phụ thuộc vào khả năng dự đoán các yêu cầutrang một cách chính xác Các dấu vết trên Proxy có thể tiết lộ các yêu cầuHTTP thực từ nhiều máy khách tới nhiều máy chủ Web Đây có thể là nguồn dữliệu để mô tả hành vi duyệt web của một nhóm người dùng ẩn danh, sử dụng mộtmáy chủ proxy chung
1.2 Các định dạng web log phổ biến hiện nay
Các định dạng web log được sử dụng phổ biến hiện nay bao gồm địnhdạng web log chuẩn của NCSA (NCSA Common Log Format), định dạng weblog kết hợp (NCSA Combined Log Format), định dang web log mở rộng củaW3C (W3C Extended Log Format) và định dạng web log của máy chủ webMicrosoft IIS (Microsoft IIS Log Format) Trên thực tế hiện nay, mỗi máy chủweb đều hỗ trợ một số định dạng web log trong số các định dạng kể trên Chẳnghạn, máy chủ web Microsoft IIS hỗ trợ 3 định dạng, bao gồm: NCSA CommonLog Format, W3C Extended Log Format và Microsoft IIS Log Format Ngược
lại, máy chủ web Apache hay Apache HTTP Server sử dụng các chuỗi định
dạng để hỗ trợ 2 định dạng log bao gồm: NCSA Common Log Format và NCSA
Trang 13Combined Log Format Người quản trị có thể lựa chọn định dạng web log sửdụng để máy chủ sinh các file web log.
1.2.1 NCSA Common Log Format
NCSA Common Log Format, hay thường được gọi tắt Common LogFormat, là định dạng web log với trường cố định mà không thể tùy chỉnh Dạngweb log này ghi lại các thông tin cơ bản về yêu cầu người dùng, tên của máykhách, tên người dùng, ngày, giờ, loại yêu cầu, mã trạng thái HTTP trả về, sốlượng byte gửi về server
Các trường phân trong mỗi bản ghi log được phân cách bởi dấu trắng.Những trường không chứa dữ liệu sẽ được biểu diễn bằng dấu (-), các ký tựkhông in được sẽ biểu diễn bởi dấu (+)
Với máy chủ Apache HTTP Server, định dạng Common Log Format cóthể được cấu hình nhờ chuỗi định dạng như sau:
Trong đó, các trường thông tin của đầu mục này gồm:
127.0.0.1 (tương ứng kí hiệu %h): Địa chỉ IP của máy khách gửi yêucầu đến máy chủ
Trống (-) (tương ứng kí hiệu %l): Định danh của máy khách
Trang 14 frank (tương ứng kí hiệu %u): Định danh/tên của người dùng gửi yêucầu được xác định nhờ thủ tục xác thực HTTP
[12/Oct/2010:14:51:40 -0700] (tương ứng kí hiệu %t): Thời gian máychủ kết thúc xử lý yêu cầu, theo định dạng sau:[day/month/year:hour:minute:second zone], hayngày/tháng/năm:giờ:phút:giây và múi giờ Trong đó, day = 2*digit,month = 3*letter; year = 4*digit; hour = 2*digit; minute = 2*digit;second = 2*digit và zone = (‘+’ | ‘-‘) 4*digit
“Get /apache_pb.gif HTTP/1.0” (tương ứng kí hiệu \”%r”\”): Yêu cầucủa máy khách gửi lên máy chủ
200 (tương ứng kí hiệu %>s): Mã trạng thái mà máy chủ gửi trả về chomáy khách
2326 (tương ứng kí hiệu %b): Kích thước của gói tin trả về cho máykhách, không bao gồm header
1.2.2 NCSA Combined Log Format
NCSA Combined Log Format gọi tắt là Combined Log Format về cơ bảntương tự Common Log Format, ngoại trừ việc nó bổ sung thêm hai trường thôngtin ở cuối là Referrer (Liên kết tham chiếu) và User agent (Máy khách ngườidùng) Với Apache HTTP Server, định dạng này có thể được cấu hình nhờ chuỗiđịnh dạng như sau:
LogFormat “%h %l %u %t \”%r” %>s %b \”%{Referer}i\” \”% {Useragent}i\”” combined
Ví dụ, với Combined Log Format, một đầu mục sẽ như sau:
Trang 15127.0.0.1 - frank [12/Oct/2010:14:51:40 -0700] “GET /apache_pb.gif HTTP/1.0” 200 2326 “http://www.example.com/start.html” “Mozilla/4.08 [en] (Win98;I;Nav)”
Các trường được bổ sung bao gồm:
http://www.example.com/start.html (tương ứng kí hiệu \”%{Referer}i\”): Cho biết trang web người dùng đã thăm trước khi đếntrang hiện tại
Mozilla/4.08 [en] (Win98; I ;Nav)” (tương ứng kí hiệu \”%{Useragent}i\”): Cho biết thông tin về trình duyệt và hệ điều hành máykhách đang sử dụng
1.2.3 W3C Extended Log Format
Hiện nay, W3C Extended Log Format [6] đề xuất bởi The World WideWeb Consortium (W3C) là định dạng được sử dụng rộng rãi nhất và được hầuhết các máy chủ web hỗ trợ Định dạng web log này có các khả năng:
Hỗ trợ kiểm soát những thông tin sẽ được ghi trong web log
Hỗ trợ một định dạng web log chung cho cả proxy, máy khách và máychủ web
Cung cấp một cơ chế mạnh mẽ xử lý các vấn đề và các ký tự thoát(character escaping)
Cho phép trao đổi dữ liệu nhân khẩu học (demographic)
Hỗ trợ tổng hợp dữ liệu
Trang 16Một file log theo định dạng W3C Extended Log chứa một tập hợp cácdòng văn bản thuần gồm các ký tự theo chuẩn ASCII (hoặc Unicode) được phântách bởi ký tự xuống dòng (LF hoặc CRLF) Các file log khác nhau sẽ có ký tựkết thúc dòng khác nhau tùy thuộc vào quy ước kết thúc dòng của nền tảng hoạt
động Trên mỗi dòng thường có một chỉ thị (directive) hoặc một đầu mục (entry).
Phần tiếp theo mô tả chi tiết về 2 thành phần này
- Các chỉ thị:
Các dòng bắt đầu bằng ký tự “#” thì sẽ chứa các chỉ thị Chúng chứa cácthông tin mô tả về file log Các chỉ thị với định dạng W3C Extended Log baogồm:
Version: <integer>.<integer>: Chỉ ra phiên bản của định dạng log
được sử dụng
Fields: [<specifier>…]: Liệt kê danh sách các trường được ghi lại
trong tệp log
Software: string: Chỉ ra phần mềm tạo ra log:
Start-Date: <date> <time>: Ngày và giờ bắt đầu ghi log
End-Date: <date> <time>: Ngày và giờ kết thúc ghi log
Date: <date> <time>: Ngày và giờ thêm vào các đầu mục trong log.
Remark: <text>: Các thông tin chú thích Thông thường, các công cụ
phân tích log sẽ bỏ qua dữ liệu trong trường này
Các chỉ thị Version và Fields là bắt buộc và đứng trước tất cả các trường khác trong file log Chỉ thị Fields liệt kê một danh sách định danh của trường,
Trang 17xác định thông tin được ghi trong mỗi đầu mục Các định danh trường có thể là
một trong số các kiểu sau: Identifier (tên nhận dạng), Prefix-identifier (tiền tố
tên nhận dạng) và Prefix (header) (tiền tố (đề mục)).
Bảng 1.1: Danh sách các tiền tố
Tiềntố
Trang 18Bảng 1.2: Các định danh không yêu cầu có tiền tố
Thời gian để giao dịch được hoàn thành tính
bằng giây, kiểu <fixed>
bytes Số byte đã truyền, kiểu <integer>cached Ghi lại số lần cache hit, nếu bằng 0 thì tức là
cache miss, kiểu <integer>
Trang 19Bảng 1.3: Các định danh cần phải có tiền tốĐịnh
danh
Ý nghĩa
ip Địa chỉ Ip và cổng, kiểu <address>
status Mã trạng thái, kiểu <integer>
comment
Mô tả trạng thái trả về của mã trạng thái, kiểu
<text>
method Method, kiểu <name>
stem
uri-Phần thân của URL(bỏ qua phần truy vấn),
kiểu <uri>
query
uri-Phần truy vấn của URL, kiểu <uri>
host DNS hostname được sử dụng, kiểu <name>
Bảng 1.1 liệt kê danh sách các tiền tố (Prefix) cho các định danh, bảng 1.2cung cấp danh sách các định danh không yêu cầu có tiền tố và bảng 1.3 liệt kê
danh sách các định danh phải có tiền tố Ví dụ, định danh cs-method cho biết
method (phương thức) của gói tin gửi đi bởi client đến server, sc(Referer) tương
ứng với trường referer trong gói tin trả lời, định danh c-ip xác định địa chỉ IP của
client
- Các đầu mục:
Một đầu mục (entry) là một dãy các trường liên quan đến một giao dịchHTTP, gồm một dãy các trường được phân cách bởi khoảng trắng hoặc các ký tựtab, không chứa các ký tự ASCII điểu khiển và kết thúc bằng ký tự CR hoặc