Tải bản đầy đủ (.pdf) (82 trang)

Phát hiện truy nhập bất thường vào máy chủ web (Luận văn thạc sĩ)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.35 MB, 82 trang )

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 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: “”
- 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 “” 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
" "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.


11

Hình 1.3. Phương thức GET trong HTTP
* Response Code
Response Code chỉ ra trạng thái của một Repsonse khi phản hồi một request
từ Web Client - Thành công hay thất bại, có lỗi hay không, lỗi của ai.

Hình 1.4. Phản hồi một request từ Web Client
Các thông báo lỗi cụ thể như sau:
 1xx - Informational
 2xx - Success (200 - OK, 202 - Accepted, 204 - No Content)
 3xx - Redirection (301 Moved Permanently: tài nguyên đã được chuyển
hoàn toàn tới địa chỉ Location trong HTTP response. 303 See other: tài nguyên đã
được chuyển tạm thời tới địa chỉ Location trong HTTP response. 304 Not Modified:
tài nguyên không thay đổi từ lần cuối client request, nên client có thể sử dụng đã
lưu trong cache.)
 4xx - Client Error (400 - Bad Request, 401 - Unauthorized, 403 Forbidden, 404 - Not Found, 405 - Method Not Allowed, 408 - Request Timeout,
429 - Too many requests)
 5xx - Server Error (500 - Internal Server Error, 503 - Service Unavailable,
504 - Gateway Timeout, 509 - Bandwidth Limit Exceed)


12


1.1.6. Một số nền tảng Apache, IIS, Ngin
* Nền tảng Apache
Có thể cài đặt một trang tin WordPress trên máy chủ Apache Web Server mà
không phải tùy chỉnh gì hết. Hơn nữa, Apache server hoạt động tốt với các hệ thống
quản trị nội dung lớn trên thế giới (Joomla, Drupal, …), web frameworks (Django,
Laravel, etc.), và các ngôn ngữ lập trình khác. Việc này giúp nó giữ vững vị trí số
một trong số các nền tảng web hosting, đặc biệt là đối với VPS hoặc shared hosting.
Apache là phần mềm Web Server miễn phí mã nguồn mở, đang chiếm
khoảng 46% thị phần trang Web trên toàn thế giới. Tên chính thức của Apache
là Apache HTTP Server, được điều hành và phát triển bởi công ty Apache Software
Foundation.
Apache Web Server là lựa chọn ưu việt để tạo ra một website ổn định và có
thể tùy chỉnh linh hoạt. Tuy nhiên, nó cũng có một số nhược điểm.
Ưu điểm:
1. Phần mềm mã nguồn mở và miễn phí, kể cả cho mục đích thương mại.
2. Phần mềm đáng tin cậy, ổn định.
3. Được cập nhật thường xuyên, nhiều bản vá lỗi bảo mật liên tục.
4. Linh hoạt vì có cấu trúc module.
5. Dễ cấu hình, thân thiện với người mới bắt đầu
6. Đa nền tảng (hoạt động được cả với server Unix và Windows).
7. Hoạt động cực kỳ hiệu quả với WordPress sites.
8. Có cộng đồng lớn và sẵn sàng hỗ trợ với bất kỳ vấn đề nào.
Nhược điểm:
1. Gặp vấn đề hiệu năng nếu website có lượng truy cập cực lớn.
2. Quá nhiều lựa chọn thiết lập có thể gây ra các điểm yếu bảo mật[2,22].
* Nền tảng IIS
IIS là viết tắt của từ (Internet Information Services ), được đính kèm với các
phiên bản của Windows. IIS gồm các dịch vụ máy chủ chạy trên nền hệ điều hành
Window, cung cấp và phân phối các thông tin lên mạng. IIS gồm có nhiều dịch vụ
khác nhau như Web Server, FTP Server…

Các thành phần chính của IIS như sau:
- Khối quản trị IIS (IIS Manager):


13

IIS Manager dùng để quản trị IIS Server. Nó quản lý tài nguyên các file,
directory, và các thiết lập cho các ứng dụng như về security, performance và các
tính năng khác.
- Khối chính sách kiểm toán (Audit Policy):
Cần thiết lập Audit Policy trên IIS Server trong môi trường làm việc đảm bảo
toàn bộ thông tin của người dùng khi log vào hệ thống sẽ đều được ghi lại. Tất cả
những dữ liệu được truy cập đều được log lại.
- Khối cấp quyền người dùng (User Rights Assignments):
Cần thiết lập “Deny access to this computer from the network”. Thiết lập này
quyết định những users nào bị cấm truy cập tới IIS Server từ mạng.
Thiết lập khiến cho tài khoản người dùng sẽ bị hạn chế và đảm bảo tính bảo
mật cao hơn. Điển hình là các cấu hình: ANONOYMOUS LOGON, Built-in
Administrator, Suport_388945a0, ..
- Khối nhật ký sự kiện (Event Log):
Cần thiết lập trên IIS Servers lưu lại toàn bộ các sự kiện theo một thể thống
nhất với các tham số tuỳ vào yêu cầu. Có hai yêu cầu cần ghi lại là: Ghi lại quá trình
đăng nhập hệ thống, và ghi lại những đối tượng được truy cập (kể cả lỗi hay không
có lỗi xảy ra trong quá trình đăng nhập).
- Khối dịch vụ hệ thống (SYSTEM Services):
Các dịch vụ trong Microsoft Windows Server cần được thiết lập ở chế độ tự
động gồm:
+ HTTP SSL: được kích hoạt trong IIS Servers để thực hiện Secure Sockets
Layer (SSL). SSL là một chuẩn để thiết lập bảo mật khi truyền những thông tin
nhạy cảm. Nếu HTTP SSL bị tắt thì IIS Servers sẽ không làm việc với SSL. Dẫn tới

một số dịch vụ khác phụ thuộc vào nó bị ảnh hưởng.
+ IIS Admin Service: quản trị các thành phần trong IIS như FTP, Application
Pools, Web Sites, Web Service Extensions và cả NNTP và SMTP. IIS Admin Service
cung cấp các dịch vụ Web, FTP, NNTP và SMTP. Nếu dịch vụ này bị tắt, IIS sẽ
không thể cấu hình , tất cả những yêu cầu cho tới dịch vụ Web đều bị ngưng trệ.
+ World Wide Web Publishing Service: cung cấp kết nối và quản trị Website
qua IIS Snap-in. Dịch vụ này buộc phải chạy trên IIS Server để cung cấp kết nối
Web và quản trị trên IIS Manager.
- Thiết lập quyền trong IIS (IIS Web Site Permissions):


14

IIS có khả năng thiết lập Web site permissions để quyết định cho phép hay
cấm những hành động nào truy cập vào website. Một số quyền có thể gán trong
Web Site Permissions:
+ Read: Chỉ được xem các nội dung và các thuộc tính của các thư mục hoặc
tập tin.
+ Write: Có khả năng thay đổi nội dung và thuộc tính của các thư mục hoặc
tập tin.
+ Log Visits: Toàn bộ log ghi lại quá trình truy cập của người dùng vào web site
+ Excute: Thực thi script[2,23].
* Nền tảng Nginx
Nginx là một nền tảng máy chủ Web sử dụng phổ biến giao thức HTTP,
HTTPS, SMTP, POP3, IMAP đồng thời tạo cân bằng tải. Nginx tập trung vào việc
phục vụ số lượng lớn kết nối đồng thời, hiệu suất cao và sử dụng bộ nhớ thấp. Nginx
có sự ổn định cao, nhiều tính năng, cấu hình đơn giản và tiết kiệm tài nguyên.
Khác với các nền tảng máy chủ khác, Nginx không dựa vào luồng (threads)
để xử lý các truy vấn (request). Thay vào đó, Nginx sử dụng kiến trúc hướng sự
kiện (event-driven) không đồng bộ và có khả năng mở rộng. Nginx có hiệu suất cao

và yêu cầu bộ nhớ thấpdo vậy Nginx có thể được sử dụng trên máy chủ cấu hình
thấp nhất cho đến một hệ thống lớn như trên đám mây.
Nginx được phát triển để xử lý các vấn đề được gọi là c10k problem (10,000
connections), có nghĩa là vấn đề không thể thực hiện được hơn 10,000 kết nối cùng
lúc đối với các nền tảng máy chủ truyền thống sử dụng threads. Nginx có kiến trúc
xử lý dạng “sự kiện” (event) không phải tạo process mới cho mỗi truy vấn. Nó xử lý
các truy vấn trong một thread duy nhất. Dạng quản lý sự kiện như vậy của Nginx
phân tán truy vấn một cách hiệu quả để đạt hiệu quả quản lý tốt hơn. Ưu điểm của
Nginx là nó có thể xử lý nhiều tiến trình với tài nguyên thấp nhất có thể[2,24].

1.2. Các lỗ hổng bảo mật Web
1.2.1. Khái niệm lỗ hổng bảo mật
Lỗ hổng bảo mật (Security Vulnerability): Một điểm yếu trong một hệ
thống cho phép kẻ tấn công khai tác gây tổn hại đến an ninh, an toàn hệ thống[21].
Những nguy cơ tiềm ẩn, đối với an toàn ứng dụng web đến từ nhiều nguyên
nhân khách quan và chủ quan sau đây:


15

- Thảm họa bất ngờ: Tác động đến từ bên ngoài, ảnh hưởng đến bảo vệ ở mức
vật lý của trang web như hỏa hoạn, bão lũ, động đất, khủng bố, tai nạn lao động ...
- Sự cố máy tính: Trục trặc vật lý ảnh hưởng đến hoạt động của trang web
như sự cố nguồn điện, hỏng phần cứng, thiết bị nối mạng hỏng, môi trường vận
hành thiết bị hỏng,...
- Sự cố vô tình: Sự kiện ảnh hưởng đến hệ thống do yếu tố con người như 20
- nhân viên thiếu hiểu biết về bảo mật, lơ là, cẩu thả khi quản lý hệ thống....
- Sự cố có chủ ý: Hoạt động phá hoại, khai thác tấn công làm ảnh hưởng đến
an toàn của trang web, bao gồm tội phạm máy tính, tình báo và khủng bố công nghệ
cao, nhân viên bất mãn với tổ chức, nhân viên gián điệp bán thông tin để nhận hối

lộ, nhân viên bị đánh lừa tài khoản hệ thống...
Loại bỏ các mối đe dọa trên đòi hỏi phải tốn nhiều thời gian và công sức.
Trước hết là cần ý thức rõ ràng và đầy đủ về những hiểm họa này, sau đó lên kế
hoạch thực hiện quản lý và phòng tránh rủi ro thích hợp trước mỗi loại nguy cơ.

1.2.2. Các loại lỗ hổng phổ biến của Web
Có 3 loại lỗ hổng phổ biến hiện nay:
+ Lỗ hổng loại C
Là loại lỗ hổng có mức nguy hiểm thấp, chỉ ảnh hưởng tới chất lượng dịch
vụ, làm ngưng trệ gián đoạn hệ thống, không làm phá hỏng dữ liệu hoặc đạt được
quyền truy cập bất hợp pháp. Internet (IP) nói riêng và bộ giao thức TCP/IP nói
chung đã ẩn chứa những nguy cơ tiềm tàng của các lỗ hổng loại này. Ví dụ, lỗ hổng
được tin tặc khai thác để thực hiện các hình thức tấn công theo DoS (Denial of
Services- Từ chối dịch vụ), làm hệ thống ngưng trệ dẫn đến tình trạng từ chối người
sử dụng hợp pháp truy nhập hay sử dụng hệ thống.
+ Lỗ hổng loại B
Là loại lỗ hổng thường có trong các ứng dụng trên hệ thống, có mức độ nguy
hiểm trung bình. Ví dụ lỗ hổng cho phép người sử dụng có thêm các quyền trên hệ thống
mà không cần kiểm tra tính hợp lệ dẫn đến mất mát thông tin yêu cầu cần bảo mật.
Một dạng khác của lỗ hổng loại B xảy ra với các chương trình viết bằng mã
nguồn C. Những chương trình này thường sử dụng một vùng trong bộ nhớ để lưu
trữ dữ liệu trước khi xử lý. Người lập trình thường sử dụng vùng đệm trong bộ nhớ
trước khi gán một khoảng không gian bộ nhớ cho từng khối dữ liệu.


×