i
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------
Nguyễn Quốc Trung
PHÁT HIỆN TRUY NHẬP BẤT THƯỜNG VÀO MÁY CHỦ WEB
Chuyên ngành: Khoa học máy tính
Mã số: 8.48.01.01
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TSKH HOÀNG ĐĂNG HẢI
HÀ NỘI - 2018
ii
LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của tôi dưới sự hướng dẫn của
PGS.TSKH. Hoàng Đăng Hải.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai
công bố trong bất kỳ công trình nào khác.
Học viên
Nguyễn Quốc Trung
iii
LỜI CẢM ƠN
Với tất cả lòng kính trọng và biết ơn sâu sắc, em xin gửi lời cảm ơn tới Thầy
giáo PGS.TSKH. Hoàng Đăng Hải, người đã tận tình dạy dỗ và hướng dẫn em trong
quá trình hoàn thành luận văn.
Em cũng xin gửi lời cảm ơn chân thành tới các Thầy giáo, Cô giáo công tác
tại Học viện Công nghệ bưu chính viễn thông, những người đã tận tình giảng dạy,
truyền thụ cho em những kiến thức khoa học căn bản trong quá trình học tập tại
trường.
Cuối cùng, em xin gửi lời cảm ơn chân thành đến gia đình, bạn bè, các đồng
nghiệp đã động viên, sát cánh cùng em trong quá trình học tập và thực hiện đề tài.
Hà Nội, ngày 19 tháng 11 năm 2018
Học viên
Nguyễn Quốc Trung
iv
MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CẢM ƠN ........................................................................................................... iii
MỤC LỤC ................................................................................................................. iv
DANH MỤC CÁC TỪ VIẾT TẮT .......................................................................... vi
DANH MỤC BẢNG ............................................................................................... viii
DANH MỤC HÌNH .................................................................................................. ix
MỞ ĐẦU .....................................................................................................................1
CHƯƠNG 1. MÁY CHỦ WEB VÀ VẤN ĐỀ AN TOÀN WEB ..............................3
1.1. Máy chủ Web và giao thức HTTP ........................................................................3
1.1.1. Giới thiệu máy chủ web ...................................................................................3
1.1.2. Các thành phần cơ bản của máy chủ web ........................................................4
1.1.3. Nguyên tắc hoạt động .......................................................................................5
1.1.4. Ghi nhật ký (Web Log) ....................................................................................7
1.1.5. Giao thức HTTP ...............................................................................................9
1.1.6. Một số nền tảng Apache, IIS, Ngin ................................................................12
1.2. Các lỗ hổng bảo mật Web ..................................................................................14
1.2.1. Khái niệm lỗ hổng bảo mật .............................................................................14
1.2.2. Các loại lỗ hổng phổ biến của Web ................................................................15
1.2.3. Phương pháp kiểm thử lỗ hổng .......................................................................17
1.3. Tấn công vào máy chủ Web ...............................................................................19
1.3.1. Giới thiệu về tấn công vào máy chủ Web ......................................................19
1.3.2. Một số loại tấn công điển hình vào máy chủ Web .........................................20
1.3.3. Thống kê tấn công máy chủ Web điển hình hiện nay ....................................21
1.3.4. Một số biện pháp điển hình chống tấn công vào máy chủ Web ....................23
1.4. Phát hiện truy nhập bất thường vào máy chủ Web.............................................24
1.5. Kết luận chương .................................................................................................25
CHƯƠNG 2. PHÁT HIỆN TRUY NHẬP BẤT THƯỜNG VÀO MÁY CHỦ WEB
........................................................................................................................26
v
2.1. Phạm vi phân tích, phát hiện truy nhập bất thường vào máy chủ Web ..............26
2.2. Kiến trúc hệ thống phát hiện truy nhập bất thường ............................................26
2.2.1. Tham khảo một số mô hình kiến trúc hệ thống ..............................................26
2.2.2. Kiến trúc hệ thống phát hiện truy nhập bất thường........................................30
2.3. Cấu trúc Weblog .................................................................................................30
2.4. Nguyên tắc hoạt động của khối xử lý Parse .......................................................32
2.5. Thu thập thông tin Weblog cho phát hiện bất thường ........................................35
2.5.1. Thu thập thông tin từ logfile hệ thống ...........................................................35
2.5.2.Thu thập thông tin từ công cụ ..........................................................................36
2.6. Phương pháp trích chọn đặc trưng dữ liệu .........................................................38
2.7. Cách thức phân tích Weblog phát hiện bất thường ............................................45
2.8. Phương pháp phân tích, đánh giá kết quả ...........................................................47
2.9. Kết luận chương .................................................................................................52
CHƯƠNG 3. THỬ NGHIỆM ...................................................................................53
3.1. Mô hình hệ thống máy chủ Web tại Công ty VCCorp .......................................53
3.2. Đặc tả dữ liệu máy chủ ghi nhận được ...............................................................55
3.3. Thử nghiệm phân tích, phát hiện bất thường với công cụ Weblog Expert ...............60
3.4. Một số kết quả thử nghiệm với Weblog Expert .................................................61
3.5. Kết luận chương .................................................................................................69
KẾT LUẬN ...............................................................................................................70
TÀI LIỆU THAM KHẢO
vi
DANH MỤC CÁC TỪ VIẾT TẮT
TT
Từ viết tắt
1
CPU
2
Nghĩa tiếng anh
Nghĩa tiếng việt
Central Processing Unit
Bộ xử lý trung tâm
CSDL
Database
Cơ sở dữ liệu
3
DDR
Double Data Rate
Tốc độ dữ liệu đôi
4
DNS
Domain Name System
5
DoS
Denial of Services
6
ECC
7
HDD
8
HTML
9
HTTP
Error Checking and
Correction
Hard Disk Drive
HyperText Markup
Language
HyperText Transfer
Protocol
hệ thống cho phép thiết lập tương
ứng giữa địa chỉ IP và tên miền
Từ chối dịch vụ
Kiểm tra và sửa lỗi
Ổ cứng
Ngôn ngữ Đánh dấu Siêu văn bản
Giao thức truyền tải siêu văn bản
Giao thức kết hợp giữa HTTP và
10
HTTPS
Hypertext Transfer
giao thức bảo mật SSL hay
Protocol Secure
TLS cho phép trao đổi thông tin
một cách bảo mật trên Internet
11
IIS
12
IMAP
13
IPSec
14
JS
15
LVF
Internet Information
Services
Internet Message Access
Protocol
Dịch vụ thông tin Internet
Giao thức truy cập thông báo
Internet Protocol Security
Bảo mật Giao thức Internet
JavaScript
Ngôn ngữ lập trình thông dịch
Las Vegas algorithm for
Thuật toán Las Vegas cho lựa chọn
Filter feature selection
tính năng Lọc
vii
16
MDAC
17
NTFS
18
ORM
Microsoft Data Access
Thành phần truy cập dữ liệu của
Components
Microsoft
New Technology File
System
Object-Relational
Mapping
Hệ thống tập tin công nghệ mới
Bản đồ quan hệ giữa các đối tượng
Là một giao thức tầng ứng dụng
19
POP3
Post Office Protocol 3
dùng để lấy thư điện tử từ server
mail
20
RAID
Redundant Arrays of
Inexpensive Disks
Là hình thức ghép nhiều ổ đĩa
cứng vật lý thành một hệ thống ổ
đĩa cứng.
21
RAM
Random Access Memory
Bộ nhớ truy cập ngẫu nhiên
22
SDR
Single Data Rate
Tốc độ dữ liệu đơn
23
SMTP
Simple Mail Transfer
Giao thức truyền tải thư tín đơn
Protocol
giản
24
SSL
Secure Sockets Layer
Chuẩn để thiết lập bảo mật
Vietnam Computer
25
VNCERT
Emergency Response
Team
26
WWW
World Wide Web
Trung tâm ứng cứu khẩn cấp máy
tính Việt Nam
Mạng lưới toàn cầu
viii
DANH MỤC BẢNG
Bảng 1.1. Ưu và nhược điểm của phương pháp kiểm thử hộp đen...........................17
Bảng 1.2. Ưu và nhược điểm của phương pháp kiểm thử hộp trắng ........................18
Bảng 1.3. Ưu và nhược điểm của phương pháp kiểm thử hộp xám .........................19
Bảng 2.1. Giải thích các trường Weblog ...................................................................31
Bảng 2.2. Các trường bổ sung trong một dòng định dạng log được kết hợp ............32
Bảng 3.1. Thống kê hoạt động chung của việc sử dụng trang web ..........................62
Bảng 3.2. Thống kê hoạt động hàng ngày của việc sử dụng trang web ....................63
Bảng 3.3. Thống kê hoạt động theo giờ trong ngày ..................................................64
Bảng 3.4. Các trang phổ biến nhất ............................................................................65
Bảng 3.5. Bảng thống kê lượng khách truy cập theo địa chỉ IP ................................66
ix
DANH MỤC HÌNH
Hình 1.1. Kiến trúc hệ thống máy chủ web ................................................................5
Hình 1.2. Các bước cơ bản trong tiến trình truyền tải web .........................................6
Hình 1.3. Phương thức GET trong HTTP .................................................................11
Hình 1.4. Phản hồi một request từ Web Client .........................................................11
Hình 1.5. Các lỗ hổng và mối đe dọa với máy chủ web ...........................................16
Hình 1.6. Các lỗ hổng bảo mật có nguy cơ tấn công cao nhất ..................................17
Hình 1.7. Mô hình tấn công mạng theo phương pháp truy cập trực tiếp ..................20
Hình 1.8. Các biện pháp bảo vệ theo chiều sâu ........................................................24
Hình 2.1. Mô hình kiến trúc hệ thống IBM QRadar SIEM ......................................27
Hình 2.2. Thống kê của Splunk .................................................................................28
Hình 2.3. Thống kê thu thập Web log từ các máy chủ cần giám sát của VNCS ......29
Hình 2.4. Hệ thống phân tích, phát hiện truy nhập bất thường .................................30
Hình 2.5. Cấu trúc của bộ Log Parser do Microsoft cung cấp ..................................33
Hình 2.6. Log Parser 2.2 của Microsoft Windows....................................................34
Hình 2.7. Định dạng File log dưới dạng text ............................................................35
Hình 2.8. Định dạng File log dưới dạng Excel .........................................................35
Hình 2.9. Access.log từ máy Metasploitable 2 .........................................................37
Hình 2.10. Kết quả sau khi ứng dụng Regex ............................................................38
Hình 2.11. Các thành phần chính của việc lựa chọn thuộc tính ................................40
Hình 2.12. Mô Hình Wrappe.....................................................................................41
Hình 2.13. Mô hình Filter .........................................................................................42
Hình 2.14. Tìm kiếm theo phương pháp Focus ........................................................43
Hình 2.15. Tìm kiếm theo phương pháp AAB ..........................................................43
Hình 2.16. Tìm kiếm theo kinh nghiệm Wrap1 ........................................................44
Hình 2.17. Tìm kiếm theo phương pháp LVF .........................................................45
Hình 2.18. Trình duyệt cảnh báo dấu hiệu bất thường..............................................47
Hình 2.19. Các IP có lượng truy cập lớn có dấu hiệu quậy phá ...............................48
Hình 3.1. Mô hình Mastrer – Slave Database Replication........................................53
x
Hình 3.2. Mô hình hệ thống máy chủ web của VCCorp ...........................................54
Hình 3.3. File dự đoán mật khẩu được tạo ra trên destop của kali ...........................55
Hình 3.4. Log của dịch vụ FTP .................................................................................56
Hình 3.5. Sử dụng công cụ sqlmap tấn công sql injection ........................................56
Hình 3.6. Cảnh báo tấn công vào dịch vụ FTP .........................................................56
Hình 3.7. Thông tin chung về cảnh báo ....................................................................57
Hình 3.8. Danh sách sự kiện ....................................................................................57
Hình 3.9. Thông tin chi tiết từng cảnh báo ...............................................................58
Hình 3.10. Lỗi HTTP 500 .........................................................................................58
Hình 3.11. Chi tiết lỗi HTTP 500 ..............................................................................59
Hình 3.12. Payload của request vào web server .......................................................59
Hình 3.13. Một số thông tin khác như IP nguồn, IP đích, thời gian, cổng ...............59
Hình 3.14. File log trên web server ...........................................................................60
Hình 3.15. Giao diện WebLog Expert ......................................................................61
Hình 3.16. Các truy cập vào Web theo ngày trong tuần ...........................................63
Hình 3.17. Các hành vi truy nhập thống kê theo giờ trong ngày ..............................63
Hình 3.18. Các truy cập vào Web theo từng ngày ....................................................64
Hình 3.19. Các trang phổ biến nhất ..........................................................................65
Hình 3.20. Công cụ tìm kiếm đã sử dụng .................................................................67
Hình 3.21. Các trình duyệt sử dụng nhiều nhất.........................................................67
Hình 3.22. Các loại lỗi xảy ra ...................................................................................68
Hình 3.23. File log phát hiện truy nhập bất thường ..................................................68
1
MỞ ĐẦU
Trong bối cảnh khoa học công nghệ ngày càng phát triển, phòng chống tội
phạm khủng bố mạng, chiến tranh mạng và ứng phó với những nguy cơ mới từ
không gian mạng là vấn đề toàn cầu được nhiều quốc gia xác định là một trong
những nhiệm vụ trọng tâm trong bảo vệ, phát triển đất nước. Việt Nam không phải
ngoại lệ [1].
Theo thống kê từ Trung tâm ứng cứu khẩn cấp máy tính Việt Nam
(VNCERT) có hơn 134.000 sự cố an ninh mạng đã xảy ra trong năm 2016. Máy chủ
Web là một thành phần vô cùng nhạy cảm, là mục tiêu của một lượng lớn các cuộc
tấn công. Phân tích logfile, phát hiện các truy nhập bất thường vào máy chủ Web là
một nhu cầu thực tế đặt ra, giúp phán đoán nguy cơ xảy ra các cuộc tấn công vào
máy chủ Web [4].
Trên cơ sở yêu cầu thực tiễn đặt ra, tôi đã chọn đề tài: “Phát hiện truy nhập
bất thường vào máy chủ Web”. Đây là một đề tài có ý nghĩa đối với lĩnh vực an
toàn thông tin và an ninh mạng nói chung và bảo đảm an toàn cho máy chủ Web nói
riêng. Hiện tại, những cuộc tấn công vào các hệ thống mạng nói chung và hệ thống
máy chủ Web nói riêng đang diễn ra hàng ngày, hàng giờ, thậm chí hàng phút trên
toàn thế giới. Chính vì vậy, đây là một vấn đề có tính cấp thiết, cần được nghiên cứu.
Phát hiện truy cập bất thường là bước quan trọng để phát hiện ra tấn công
vào máy chủ Web. Đây là bước cơ sở để thực hiện các bước tiếp theo trong việc
đảm bảo an toàn dịch vụ Web, phát hiện các hành động xâm nhập trái phép, các tấn
công vào máy chủ Web.
Nguyên lý chung để phát hiện bất thường là xây dựng một tập dấu hiệu bình
thường (trong điều kiện hoạt động bình thường, không có tấn công) của hệ thống,
tiếp đó thu thập các hành vi truy nhập vào máy chủ, so sánh với tập dấu hiệu bình
thường đã lưu sẵn. Nếu có sự khác biệt có nghĩa là có hành vi truy nhập bất thường.
Đối với máy chủ Web, khi thiết lập hệ thống có thể tạo lập tập dấu hiệu bình
thường và lưu trữ trong máy (có thể trên một máy tính ở bên ngoài máy chủ). Mọi
hành vi truy nhập vào máy chủ Web đều được ghi vào Logfile ví dụ Weblog. Thực
2
hiện thu logfile và phân tích sẽ có thể thu được và tách ra những thông tin cần thiết
để phát hiện truy nhập bất thường.
Một khả năng khác để thu thập thông tin về các hành vi là sử dụng công cụ
thu thập thông tin về máy chủ Web, ví dụ công cụ WLELite. Công cụ này cho phép
kết xuất nhiều thông tin liên quan đến hoạt động của Web. Ví dụ, có thể thống kê
được các sự kiện vi phạm chính sách bảo mật, liệt kê được các địa chỉ IP truy nhập
vào máy chủ Web, tìm kiếm các Hot-IP, tần suất truy nhập [15].
Kết quả thực hiện đề tài có ý nghĩa thiết thực khi được triển khai ứng dụng
tại một nhà cung cấp dịch vụ Hosting là VCCorp, là nơi tôi đang công tác. Kết quả
đề tài có thể được triển khai ứng dụng cho các đơn vị cung cấp dịch vụ máy chủ
Web, các trung tâm dữ liệu.
Bài luận văn gồm 3 chương chính với các nội dung sau:
Chương 1: Máy chủ web và vấn đề an toàn web
Chương 2: Phát hiện truy nhập bất thường vào máy chủ web
Chương 3: Thử nghiệm
3
CHƯƠNG 1
MÁY CHỦ WEB VÀ VẤN ĐỀ AN TOÀN WEB
1.1. Máy chủ Web và giao thức HTTP
1.1.1. Giới thiệu máy chủ web
Máy chủ web (Web server) được dùng để chỉ phần mềm máy chủ, hoặc phần
cứng dành riêng để chạy các phần mềm trên máy chủ, có thể cung cấp các dịch
vụ World Wide Web. Một máy chủ web xử lí các yêu cầu (request) từ các client
(trong mô hình server - client) thông qua giao thức HTTP và một số giao thức liên
quan khác [7].
Tất cả các Web Server đều hiểu và chạy được các file *.htm và *.html, tuy
nhiên mỗi Web Server lại phục vụ một số kiểu file chuyên biệt chẳng hạn như IIS
của Microsoft dành cho *.asp, *.aspx…; Apache dành cho *.php…; Sun Java
System Web Server của SUN dành cho *p…
Máy chủ Web thường có dung lượng lớn, tốc độ cao, lưu trữ thông tin như
một ngân hàng dữ liệu, chứa những website cùng với những thông tin liên quan
khác, ví dụ như các mã Script, các chương trình dịch vụ và các file Multimedia, v.v.
Máy chủ Web có khả năng gửi đến máy khách những trang Web thông qua
môi trường Internet (hoặc Intranet) qua giao thức HTTP (Hypertext Transfer
Protocol) – giao thức được thiết kế để gửi các file đến trình duyệt Web (Web
Browser), và các giao thức khác.
Tất cả các máy chủ Web đều có một địa chỉ IP (IP Address) hoặc một tên
miền (Domain Name). Ví dụ khi đưa http://www.vdo.vn/ vào dòng địa chỉ trên
trình duyệt nghĩa là gửi một yêu cầu đến một máy chủ Web có Domain Name
là www.vdo.vn. Máy chủ Web này sẽ tìm trang Web có tên là index.htm rồi gửi nó
đến trình duyệt.
Bất kỳ một máy tính – máy chủ nào cũng có thể trở thành một máy chủ Web
nếu cài đặt lên nó một chương trình phần mềm Web Server và có kết nối vào
Internet. Khi một máy tính của người dùng kết nối đến một Web Server và gửi yêu
cầu truy cập các thông tin trên một trang Web nào đó, Web Server sẽ nhận yêu cầu
và gửi lại trình duyệt của người dùng những thông tin mong muốn.
4
Giống như những phần mềm khác trên máy tính, phần mềm máy chủ Web
cũng chỉ là một ứng dụng phần mềm. Nó được cài đặt, và chạy trên máy tính – máy
chủ dùng làm Web Server. Nhờ có chương trình này, người sử dụng có thể truy cập
đến các thông tin của trang Web từ một máy tính khác ở trên mạng (Internet,
Intranet).
Phần mềm máy chủ Web có thể được tích hợp với cơ sở dữ liệu (CSDL), hay
điều khiển việc kết nối vào CSDL để có thể truy cập và kết xuất thông tin từ CSDL
lên các trang Web và truyền tải chúng đến người dùng.
Máy chủ Web thường hoạt động liên tục 24/24 giờ, 7 ngày một tuần và 365
ngày một năm, để phục vụ cho việc cung cấp thông tin trực tuyến. Vị trí đặt máy
chủ Web đóng vai trò quan trọng trong chất lượng và tốc độ lưu chuyển thông tin từ
máy chủ Web đến máy tính truy cập [8].
Các loại máy chủ Web phổ biến bao gồm:
- Apache: Đây là máy chủ Web thường được cài đặt trên Linux. Hầu hết các
trang web PHP được lưu trữ trên máy chủ Apache.
- Internet Information Services (IIS): là máy chủ Web được phát triển bởi
Microsoft. Hầu hết các trang web asp và aspx được lưu trữ trên máy chủ IIS.
- Apache Tomcat: Hầu hết các trang web Java (jsp) được lưu trữ trên máy
chủ này.
- Các máy chủ web khác: bao gồm Web Server của Novell và máy chủ Lotus
Domino của IBM, Nginx, v.v.[8]
1.1.2. Các thành phần cơ bản của máy chủ web
Như đã nêu ở trên, một máy chủ Web bao gồm một phần mềm Web server
cài đặt trên một máy tính hoặc máy chủ[14].
Máy tính hoặc máy chủ (server) là thiết bị phần cứng cần thiết để cài đặt
phần mềm Web server. Tùy vào phạm vi ứng dụng, yêu cầu cung cấp dịch vụ, phần
cứng máy chủ có thể có cấu hình từ đơn giản đến rất mạnh. Quan trọng đối với hiệu
năng của máy chủ Web là tốc độ CPU, dung lượng đĩa cứng lưu trữ và tốc độ kết
nối mạng.
Ngoài ra để máy chủ Web hoạt động, còn cần thêm các thành phần quan
trọng khác là máy chủ cơ sở dữ liệu (Database server) và máy chủ ứng dụng
5
(Application server). Trong một hệ máy chủ Web đơn gian, hai thành phần nêu trên
có thể cùng được cài đặt trên một phần cứng máy tính/máy chủ.
Trên hình 1.1 là kiến trúc đơn giản cho một hệ thống máy chủ Web. Web
server bao gồm thành phần giao diện Web (Presentation layer hay Web interface),
thành phần giao diện CSDL (Database interface). Máy chủ CSDL có thể đặt ngoài
máy tính cài Web Server, được kết nối với nhau qua giao diện TCP/IP. Giao diện
giữa máy chủ Web và trình duyệt của người dùng (Web Browser) được thực hiện
qua kết nối HTTP hoặc HTTPS. Toàn bộ hoạt động của máy chủ Web được ghi vào
nhật ký (Log file) phục vụ cho việc theo dõi, giám sát hoạt động và tìm lỗi).
Máy trạm
Bàn phím/Màn hình
Trình duyệt web
Người dùng
Kết nối HTTP/ HTTPS
Máy chủ web
Lớp trình bày
(Giao diện web)
Máy chủ CSDL
Cơ sở dữ liệu
MySQL
TCP / IP
Giao diện cơ sở dữ liệu
Tệp
nhật kí
Hình 1.1. Kiến trúc hệ thống máy chủ web
1.1.3. Nguyên tắc hoạt động
Nguyên tắc hoạt động cơ bản của máy chủ Web được thể hiện trên hình 1.2.
Người dùng gõ dòng địa chỉ máy chủ Web vào trình duyệt web và ấn Enter, trang
web sẽ hiển thị trên màn hình máy tính người dùng. Để trang web có thể hiển thị
được thì cơ chế hoạt động của máy chủ web được thể hiện qua các bước cơ bản
trong tiến trình truyền tải trang web đến màn hình người dùng như sau.
6
Các tiến trình cơ bản
Theo mô hình trên, trình duyệt web (bên trái) thực hiện một kết nối tới máy
chủ web (bên phải), yêu cầu một trang web và nhận lại nó. Trình tự từng bước cơ
bản xảy ra như sau.
* Trình duyệt web tách địa chỉ website làm 3 phần:
- Tên giao thức: “http”
- Tên miền của máy chủ web: “http://maychuvietnam.com.vn”
- Tên tệp HTML: “web-server.htm”
* Trình duyệt gửi yêu cầu kết nối tới máy chủ Web (bản tin HTTP request).
* Máy chủ Web trả lời bằng bản tin HTTP response.
* Căn cứ thông tin trong bản tin yêu cầu, máy chủ Web liên hệ với máy chủ
tên miền (DNS Server) để chuyển đổi tên miền “http://maychuvietnam.com.vn” ra
địa chỉ IP tương ứng. Sau đó, trình duyệt sẽ gửi tiếp một kết nối tới máy chủ của
website có địa chỉ IP này qua cổng 80. Dựa trên giao thức HTTP, trình duyệt gửi
yêu cầu GET đến máy chủ, yêu cầu tệp HTML “web-server.htm”.
Hình 1.2. Các bước cơ bản trong tiến trình truyền tải web
Chú ý: Một cookies cũng sẽ được gửi kèm từ trình duyệt web đến máy chủ.
Tiếp đến, máy chủ sẽ gửi một file văn bản có các thẻ HTML đến trình duyệt
web của máy yêu cầu (một cookies khác cũng được gửi kèm theo từ máy chủ tới
trình duyệt web, cookies này được ghi trên đầu trang của mỗi trang web).
Trình duyệt web đọc các thẻ HTML để xác lập định dạng trang web và kết
xuất nội dung trang ra màn hình yêu cầu.
Trong giao thức HTTP nguyên bản, cần cung cấp đầy đủ đường dẫn của tên
tệp. Ví dụ như “/” hoặc “/tên tệp.htm”. Sau đó, giao thức sẽ tự điều chỉnh để có thể
7
đưa ra một địa chỉ URL đầy đủ. Điều này cho phép các công ty kinh doanh dịch vụ
lưu trữ có thể lưu trữ nhiều tên miền ảo (virtual domains). Có nghĩa nhiều tên miền
cùng tồn tại trên một máy chủ và sử dụng cùng một địa chỉ IP duy nhất.
Rất nhiều máy chủ web đưa thêm các chế độ bảo mật trong nhiều tiến trình
xử lý. Máy chủ web hỗ trợ người quản lý trang web duy trì một danh sách tên và
password cho phép những người được phép truy cập vào trang web. Với máy chủ
web chuyên nghiệp, yêu cầu mức độ bảo mật lớn; chỉ cho kết nối đã được mã hóa
giữa máy chủ và trình duyệt. Do đó những thông tin nhạy cảm như password… có
thể được truyền tải tên Internet[14].
1.1.4. Ghi nhật ký (Web Log)
Web log file chính là các tệp nhật ký tự động tạo và duy trì bởi một máy chủ
web. Mỗi lần truy cập vào trang Web, bao gồm mỗi lần xem một tài liệu HTML,
hình ảnh hoặc các đối tượng của website đều được web server ghi nhận. Các máy
chủ web như IIS, Apache hay Nginx đều có các web log file để ghi lại các nhật ký
hoạt động của website[9].
Định dạng tệp nhật ký web thô chủ yếu là một dòng văn bản cho mỗi lần truy
cập vào trang web. Điều này chứa thông tin về ai đã ghé thăm trang web, nơi họ đến
và chính xác những gì họ đang làm trên trang web[2].
Với webserver có 2 dạng log file quan trọng:
* Access_log:
Access_log là nơi ghi lại tất cả những yêu cầu được xử lý bởi server. Vị trí
và nội dung của access log được điều khiển bởi CustomLog directive. Có thể dùng
LogFormat directive trong việc định dạng nội dung của tập tin access_log.
LogFormat chỉ ra những thông tin server cần theo dõi để ghi lại trong access log.
* Error_log:
ErrorLog là nơi mà httpd sẽ gửi những thông tin nhận dạng và bất kỳ những
lỗi nào gặp phải trong quá trình xử lý những yêu cầu. Tập tin này là nơi mà cần xem
xét đầu tiên khi gặp phải những lỗi khởi động httpd hay những thao tác của server,
vì nó lưu những thông tin chi tiết về những lỗi và cách sửa lỗi. Định dạng của tập
tin error_log không bị bó buộc[9].
8
* Định dạng các tệp log:
- Đối với Access_log:
Để thay đổi định dạng access log, có thể dùng directive log_format. Chỉ thị
này mặc định nằm trong block http {…}. Để xem được log format ví dụ của Nginx,
có thể vào chỉ dẫn thư mục /etc/nginx/nginx.conf (sử dụng hệ điều hành CentOS và
Ubuntu)[14].
Mẫu log_format mặc định trong Nginx là access combined như sau:
log_format combined '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent"';
Chỉ thị log_format để định dạng access log cho Nginx, ý nghĩa các biến như sau:
$remote_addr địa chỉ IP truy cập web site của bạn.
$remote_user ghi lại tài khoản truy cập web nếu trang của bạn có xác thực
người dùng, đa số là không dùng bạn có thể bỏ đi.
$time_local thời gian người dùng truy cập.
$request đoạn đầu của request.
$status trạng thái của response.
$body_bytes_sent kích thước body mà server response.
$http_referer URL được tham chiếu.
$http_user_agent thông tin trình duyệt, hệ điều hành mà người dùng truy cập.
Dưới đây là ví dụ về một bản ghi log trong Access_log (sample log):
118.69.244.106 - - [08/Jun/2016:08:08:10 +0700] "GET /wpcontent/plugins/wp-tab-widget-pro/css/font-awesome.min.css HTTP/1.1" 200 7027
"https://www.thuysys.com/server-vps/backup-restore/huong-dan-backup-websitetren-linux-toan-tap.html" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36"
- Đối với Error_log:
Log này để ghi lại thông tin các lỗi cài đặt cấu hình hay đơn giản chỉ là
những cảnh báo giữa Web Server và các dịch vụ của nó.
Ví dụ một bản ghi trong file error_log trên máy chủ Web Apache như sau:
[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server
configuration: /export/home/live/ap/htdocs/test
9
Cột đầu tiên chỉ ra ngày giờ entry này được tạo ra. Cột thứ 2 chỉ ra đây là
entry lỗi. Cột thứ 3 cho biết địa chỉ IP của client tạo ra lỗi. Tiếp theo là message có
nội dung chỉ ra rằng server được cấu hình để từ chối việc truy cập của client. Tiếp
theo là đường dẫn của document mà client cần truy cập.
Trong máy chủ Web Nginx, thực hiện ghi error_log bằng cách thêm chỉ thị
error_log vào block http {…} như sau:
server {
error_log /var/log/nginx/error.log error;
...}
Cú pháp chung của error log là:
error_log log_file log_level
Trong đó:
emerg log ở level này mang tính khẩn cấp, dạng như server sắp sập đến
nơi rồi.
alert cảnh báo các vấn cần cần được xử lý ngay.
crit các vấn đề quan trong nhưng không nhất thiết phải xử lý ngay lập tức,
để theo dõi thêm.
error ghi lại thông tin lỗi như đăng nhập hoặc cấu hình sai, mức độ thấp
hơn crit.
warn ở mức độ cảnh báo không phải lỗi.
notice để thông báo cái gì đó.
info ghi thông tin hệ thống, không có gì cả.
debug ghi lại tất cả mọi thứ, dùng để dò lỗi.
Ví dụ các trường trong một file log trên máy chủ IIS như sau:
Date , Time , ClientIP , UserName , ServerIP , Method , UriStem , UriQuery , TimeTaken ,
HttpStatus , Win32Status , ServerPort , UserAgent , HttpSubStatus , and Referer
1.1.5. Giao thức HTTP
HTTP (HyperText Transfer Protocol) là giao thức truyền tải siêu văn bản. Đây
là một trong năm giao thức chuẩn của mạng Internet, được dùng để liên hệ thông tin
giữa máy cung cấp dịch vụ Web (máy chủ Web) và máy sử dụng dịch vụ (Web client
10
hay Web browser) trong mô hình Client/Server dùng cho World Wide WebWWW. HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền
tảng cho Internet). HTTP này nằm trong tầng Application Layer, được sử dụng để
truyền nội dung trang Web từ Web Server đến trình duyệt Web ở Client[21].
Cơ chế hoạt động chính của HTTP là Request-Response: Web Client sẽ gửi
Request đến Web Server, Web Server xử lý và trả về Response cho Web Client.
Phương thức truy vấn (Request Method) phổ dụng của HTTP gồm: GET,
HEAD, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT, PATCH. Ngoài
Method, URI (Địa chỉ định danh của tài nguyên), HTTP Version thì trong Request
Header có một số trường thông dụng sau:
- Accept: Loại nội dung có thể nhận được từ thông điệp response. Ví dụ:
text/plain, text/html…
- Accept-Encoding: Các kiểu nén được chấp nhận. Ví dụ: gzip, deflate, xz, exi…
- Connection: Tùy chọn điều khiển cho kết nối hiện thời. Ví dụ: keep-alive,
Upgrade…
- Cookie: Thông tin HTTP Cookie từ server.
- User-Agent: Thông tin về user agent của người dùng.
Hai phương thức được sử dụng nhiều nhất trong HTTP request là GET và
POST. Với GET, câu truy vấn sẽ được đính kèm vào đường dẫn của HTTP request.
Ví dụ: /?username=”abc”&password=”def”. Một số đặc điểm của phương thức
GET như sau:
- GET request có thể được cached, bookmark và lưu trong lịch sử của trình duyệt.
- GET request bị giới hạn về chiều dài, do chiều dài của URL là có hạn.
- GET request không nên dùng với dữ liệu quan trọng, chỉ dùng để nhận dữ liệu.
Ngược lại, với POST thì câu truy vấn sẽ được gửi trong phần message body
của HTTP request, một số đặc điểm của POST như sau:
- POST không thể cached, bookmark hay lưu trong lịch sử trình duyệt.
- POST không bị giới hạn về độ dài.
- Xem thêm -