Tải bản đầy đủ (.doc) (49 trang)

Xây dựng giải pháp tường lửa lớp ứng dụng dựa trên modsecurity

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 (1020 KB, 49 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

LUẬN VĂN THẠC SỸ
Xây dựng giải pháp tường lửa lớp ứng
dụng dựa trên Modsecurity
TRẦN ĐỨC MẠNH


Ngành Công nghệ thông tin

Giảng viên hướng dẫn:

PGS.TS. Trần Quang Đức

Viện:

Công nghệ thông tin và truyền thông

:

HÀ NỘI, 10/2022


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc

BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn: Trần Đức Mạnh.
Đề tài luận văn: Xây dựng giải pháp tường lửa lớp ứng dụng dựa trên
ModSecurity.
Chuyên ngành: Công nghệ thông tin.


Mã số SV: 20202171M.

Tác giả, Người hướng dẫn khoa học và Hội đồng chấm lu ận văn xác
nhận tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng
ngày 29/10/2022 với các nội dung sau:
STT
1

Yêu cầu chỉnh sửa

Giải trình

Trang

Làm rõ việc áp dụng học máy
Mơ tả giai đoạn học máy và giai
vào trong tường lửa Modsecurity đoạn tấn cơng khi áp dụng vào
và trình bày kết quả thử nghiệm

tường

lửa

29-32

Modsecurity

Trình bày thêm kết quả thực nghiệm 33-38
2


Rà sốt chính tả, chỉnh sửa nội
dung Chương 3, phần Kết luận

Đã rà sốt các lỗi chính tả; Bổ sung
nội dung giải pháp và mơ tả chi tiết

trình bày giải pháp lựa chọn, thể hơn về
hiện rõ hơn kết quả nghiên cứu

3

kết quả

nghiên cứu.

Đã chỉnh sửa lại phần Kết luận

Dịch thuật ngữ tiếng Anh sang
Đã dịch các thuật ngữ tiếng Anh
tiếng Việt và rút gọn các phần cơ sang tiếng Việt và rút gọn một số
sở lý thuyết

26-38

39

1-40

phần cơ sở lý thuyết


Ngày 29 tháng 11 năm 2022
Giáo viên hướng dẫn

Tác giả luận văn

CHỦ TỊCH HỘI ĐỒNG


Lời cam đoan
Tôi xin cam đoan các nội dung trong luận văn với đề tài “Xây dựng giải
pháp tường lửa lớp ứng dụng dựa trên ModSecurity” là cơng trình nghiên
cứu độc lập của bản thân dưới sự hướng dẫn của PGS.TS. Trần Quang Đức. Các
số liệu, hình ảnh, trích dẫn có nguồn gốc rõ ràng và tuân thủ nguyên tắc. Luận
văn khơng có sự sao chép từ các cơng trình nghiên cứu của người khác mà không
ghi rõ trong danh mục tài liệu tham khảo. Mọi sao chép không hợp lệ, vi phạm
quy chế hay gian trá tơi xin hồn toàn chịu trách nhiệm.
Hà nội, ngày 29 tháng 11 năm 2022
Học viên

Trần Đức Mạnh


Lời cảm ơn
Đầu tiên, tôi xin gử i lời cảm ơn và lòng biết ơn sâu sắc tới thầy giáo
PGS.TS. Trần Quang Đức đã giúp tôi chọn đề tài, định hướng nghiên cứu, tận
tình hướng dẫn và tạo điều kiện cho tơi hồn thành luận văn này.
Trong q trình làm luận văn tốt nghiệp, các thầy cô trong Trường Công
nghệ thơng tin và Truyền thơng cũng đã nhiệt tình hướng dẫn và giúp đỡ tôi về
mọi mặt. Tôi xin cảm ơn rất nhiều!
Cuối cùng, tôi muốn gửi lời cảm ơn của mình tới gia đình, người thân và

bạn bè của tôi. Tất c ả mọi người đã luôn ở bên, động viên và giúp đỡ tơi rất
nhiều trong q trình thực thực luận văn.
Với thời gian nghiên cứu còn hạn chế, thự c tiễn công tác lại vô cùng sinh
động, luận văn khơng tránh khỏi những thiếu sót, tác giả rất mong nhận được các
ý kiến đóng góp chân thành từ các thầy giáo, cô giáo, đồng nghiệp, bạn bè. Hà
Nội, ngày 29 tháng 11 năm 2022

Học viên

Trần Đức Mạnh


TÓM TẮT NỘI DUNG LUẬN VĂN
Ngày nay, cùng với sự phát triển m ạnh mẽ và bùng n ổ của công nghệ thông
tin kéo theo các nguy cơ gây mất an tồn an ninh thơng tin trên khơng gian mạng
ngày một gia tăng về cả số lượng và mức độ nguy hiểm. Xu hướ ng tấn công vào các
cổng thông tin điện tử dần trở thành xu hướng chính gây rất nhiều khó khăn cho
những người quản trị bảo mật. Hệ thống phát hiện/chống tấ n công (Intrusion
Detection System-IDS/Intrusion Prevention System-IPS) được các cơ quan, tổ chức
đưa vào sử dụng như một giải pháp được đưa ra để bảo vệ các ứng dụng web như
trang thông tin điện tử. Tuy nhiên, vấn đề chính của các hệ thống IDS/IPS là chúng
không hiểu được logic của giao thức tứ c là chúng khơng thể biết được một gói tin
HTTP đúng hay sai định dạng. Để giải quyết vấn đề này tường lửa lớp ứng dụng
web (Web Application firewall–WAF) là một trong những giả i pháp tối ưu nhất
nhằm đảm bảo an tồn thơng tin cho các cổng thơng tin điện tử.
Luận văn cung cấp các mối nguy cơ, rủi ro về bảo mật web, thơng tin các giải
pháp an tồn thơng tin đặc biệt là trong lĩnh vực tường lửa ứng dụng web cho cổng
thông tin điện tử tại Việt Nam cũng như các giải pháp và xu hướng nghiên cứu hiện
nay về bảo mật trên toàn thế giới; xây dựng mơ hình giải pháp bảo mật cho lớp ứng
dụng web, tạo tính ổn định, chắc chắn, bảo vệ thơng tin quan trọng góp phần thúc

đẩy và triển khai chính phủ điện tử nâng cao hiệu quả kinh tế, xã hội.


MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI..................................................................1
1.1. Đặt vấn đề....................................................................................................1
1.2. Các giải pháp hiện tại và hạn chế................................................................1
1.3. Mục tiêu và định hướng giải pháp...............................................................2
1.4. Đóng góp của luận văn................................................................................2
1.5. Bố cục của luận văn.....................................................................................3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT...................................................................4
2.1. Các nguy cơ mất an toàn đối với ứng dụng Web.........................................4
2.1.1. Tổng quan về ứng dụng Web................................................................4
2.1.2. Các nguy cơ gây mất an toàn đối với ứng dụng Web...........................5
2.2. Đặc trưng trong header HTTP.....................................................................9
2.2.1. Request..................................................................................................9
2.2.2. Request Header.................................................................................... 11
2.2.3. HTTP Response................................................................................... 11
2.2.4. Các phiên bản của HTTP..................................................................... 12
2.3. Web Application Firewall.......................................................................... 14
2.3.1. Khái niệm............................................................................................ 14
2.3.2. Mơ hình hoạt động của WAF.............................................................. 16
2.4. Tường lửa ModSecurity............................................................................. 16
2.4.1. Khái niệm............................................................................................ 16
2.4.2. Các tính năng của Modsecurity........................................................... 16
2.4.3. Nguyên lý hoạt động............................................................................ 17
2.4.4. Quá trình hoạt động xử lý.................................................................... 18
2.4.5. Cấu trúc luật của ModSecurity............................................................ 19
2.5. Một số thuật toán học máy......................................................................... 20
2.5.1. Phương pháp Support Vector Machine (SVM)................................... 20

2.5.2. Phương pháp Cây quyết định (Decision Tree).................................... 22
2.5.3. Phương pháp Rừng ngẫu nhiên (Random Forest)............................... 23
2.5.4. Phương pháp Hồi quy Logistic (Logistic Regression)........................24
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ............................................ 26
3.1. Giải pháp đề xuất....................................................................................... 26
3.2. Kiến trúc tổng quan hệ thống..................................................................... 26


3.3. Bộ dữ liệu thử nghiệm............................................................................... 27
3.4. Phân tích lựa chọn đặc trưng...................................................................... 28
3.4.1. Lựa chọn đặc trưng.............................................................................. 30
3.4.2. Mô tả đặc trưng.................................................................................... 32
3.5. Đánh giá và thử nghiệm các thuật toán học máy....................................... 33
3.5.1. Lọc dữ liệu đầu vào với ModSecurity................................................. 33
3.5.2. Đánh giá kết quả dựa trên các phương pháp học máy.........................34
3.5.3. Tích hợp Modsecurity với hệ thống phát hiện truy vấn HTTP...........36
CHƯƠNG 4: KẾT LUẬN.................................................................................. 39
4.1. Đóng góp của luận văn.............................................................................. 39
4.2. Hướng phát triển của luận văn................................................................... 39
TÀI LIỆU THAM KHẢO................................................................................. 40


Danh mục các ký hiệu và chữ viết tắt
Viết tắt

Tiếng Anh

OWASP Open Web Application
Security Project


Tiếng Việt
Dự án mở về bảo mật ứng dụng
Web

SQL

Structured Query Language

Ngôn ngữ truy vấn cấu trúc

HTTP

HyperText Transfer Protocol

Giao thức truyền tải siêu văn bản

HTTPS

Hyper Text Transfer Protocol
Secure

Giao thức truyền tải siêu văn bản
bảo mật

Cross-Site Scripting

Tấn công thực thi mã script

HTML


Hypertext Markup Language

Ngôn ngữ đánh dấu siêu văn bản

CSRF

Cross-Site Request Forgery

Tấn công giả mạo yêu cầu

SSL

Secure Sockets Layer

Lớp socket bảo mật

TSL

Transport layer security

Giao thức bảo mật tầng giao vận

WAF

Web Application Firewall

Giải pháp bảo mật trong hệ thống

Internet Protocol


Giao thức Internet

Support vector machine

Máy véc tơ hỗ trợ

XSS

IP
SVM


Danh mục các hình ảnh vẽ và đồ thị
Hình 2.1: Cơ chế hoạt động của ứng dụng web.............................................................................4
Hình 2.2: HTTP Request.............................................................................................................. 10
Hình 2.3:Mơ tả các trường header HTTP................................................................................... 11
Hình 2.4: Web Application Firewall............................................................................................ 15
Hình 2.5: Quy trình xử lý của Modsecurity................................................................................. 18
Hình 2.6: Mơ tả hai bộ data trên cùng một mặt phẳng................................................................. 21
Hình 2.7: Mơ tả bộ data phức tạp trên khơng gian nhiều chiều................................................... 21
Hình 2.8: Mơ tả cách xác định margin......................................................................................... 22
Hình 2.9: Ví dụ về cây quyết định............................................................................................... 22
Hình 3.1: Mơ hình đề xuất........................................................................................................... 26
Hình 3.2: Kiến trúc tổng quan của hệ thống................................................................................ 26
Hình 3.3: Kết quả tính tốn tham số của 30 tính năng liên quan đến Web Attack......................30
Hình 3.4: Lựa chọn 10 tính năng tốt nhất sử dụng phương pháp Univariate Selection...............31
Hình 3.5: Lựa chọn 10 tính năng tốt nhất dựa trên phương pháp Feature Importance................31
Hình 3.6: Ma trận tương quan mơ tả các tính năng trong tập dữ liệu.......................................... 31
Hình 3.7: Cấu trúc của URI......................................................................................................... 32
Hình 3.8: Mơ tả phương pháp đánh giá kết quả Confusion Matrix............................................. 35

Hình 3.9: Hệ thống nhận diện truy vấn bình thường................................................................... 36
Hình 3.10: Hệ thống nhận diện truy vấn bất thường.................................................................... 36
Hình 3.11: Cấu trúc câu lệnh truy vấn......................................................................................... 37
Hình 3.12: Người dùng thực hiện truyền truy vấn bình thường.................................................. 37
Hình 3.13: Hệ thống trả kết quả đối với truy vấn bình thường.................................................... 38
Hình 3.14: Người dùng thực hiện truyền truy vấn bất thường..................................................... 38
Hình 3.15: Hệ thống trả kết quả đối với truy vấn bất thường...................................................... 38


CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI
1.1. Đặt vấn đề
Ngày nay, cùng với sự phát triển m ạnh mẽ và bùng n ổ của công nghệ
thông tin kéo theo các nguy cơ gây mất an tồn an ninh thơng tin trên không gian
mạng ngày một gia tăng về cả số lượng và mức độ nguy hiểm. Xu hướ ng tấn
công vào các cổng thông tin điện tử dần trở thành xu hướng chính gây rất nhiều
khó khăn cho những người quản trị bảo mật. Việc những kẻ tấn công lấy cắp các
thông tin, phá hoại hay thay đổi, xuyên tạc nội dung thông tin tại các cổng thông
tin điện tử mang lại những thiệt hại vô cùng lớn đặc biệt là đối với các cổng
thơng tin quan trọng của chính phủ.
Các cơ quan nhà nước, các tổ chứ c chính phủ đã và đang có nhiều biện
pháp tích cực trong việc phịng chống và phát hiện tấn cơng website, trong đó,
giải pháp triển khai tường lửa lớ p ứng dụng web (Web Application Firewall WAF) là một trong những giải pháp tối ưu nhất nhằm đảm bảo an tồn thơng tin
cho các cổng thông tin điện tử.
Hiện tại, trên thị trường có rất nhiều sản phẩm về WAF trong đó có cả
những bản thương mại và mã nguồn mở. Các giải pháp WAF thương mại thường
được đánh giá cao hơn tuy nhiên việc sử dụng các phần mềm, thiết bị thương mại
này tiềm ẩn rủi ro về việc rị rỉ thơng tin. Chính vì vậy, việc làm chủ cơng nghệ
và phát triển các phần mềm, thiết bị là thực sự cần thiết nhằm đảm bảo an ninh
an toàn cho các cổng thông tin điện tử quan trọng. Nhận thấy được tiềm năng và
lợi ích mà tưởng lử a lớp ứ ng dụng web mang lại, tôi đã quyết định chọn đề tài

“Xây dự ng giải pháp tường lửa lớp ứng dụng dựa trên Modsecurity” để
nghiên cứu về giải pháp công nghệ này.
1.2. Các giải pháp hiện tại và hạn chế
Các loại tường lửa phổ biến hiện nay đa số đều sử dụng các thông tin ở
tầng mạng (network layer) và tầng vận chuyển (transport layer) chủ yếu là số
cổng (port number) và giao thức để ngăn chặn các tấn công, truy cập trái phép.
Chính vì việc các giải pháp tường lửa này vẫn cho phép gói tin đi đến các dịch vụ
như máy chủ web, dns, FTP nên việc bảo vệ các dịch vụ này người quản trị có
thể tạo ra các ứng dụng với mã nguồn an toàn. Hiện tại, có nhiều tài liệu hướng
dẫn lập trình an tồn, tuy nhiên, không phải lúc nào các nhà phát triển ứng dụng
cũng nắm vữ ng và làm theo các hướng dẫn này dẫn đến việc mắc lỗi trong quá
trình thiết kế, cài đặt là điều không thể tránh khỏi. Hệ thống phát hiện/chống tấn
công (Intrusion Detection System-IDS/Intrusion Prevention System-IPS) là một
giải pháp được đưa ra để bảo vệ các ứng dụng web như trang thơng tin điện tử.
Có hai hướng tiếp cận chính trong việc phát triển các IDS/IPS. Giải pháp sử
dụng mẫu nhận dạng (signature-based IDS) và giải pháp dựa vào hành vi (behaviorbased IDS). Các kĩ thuật dựa vào mẫu nhận dạng phát hiện tấn công bằng cách so
sánh nội dung gói tin với các dấu hiệu nhận dạng (signature) từ cơ sở
1


dữ liệu đã tạo sẵn. Nếu có sự trùng khớp thì hệ thống sẽ cảnh báo có tấn cơng (ví
dụ hệ thống Snort). Ưu điểm của hướng tiếp cận này là độ chính xác cao, tuy
nhiên, nhược điểm là nó không thể phát hiện các dạng tấn công mới trong khi
thực trạng số lượng mã độc không ngừng gia tăng theo từng tháng, năm. Đối với
kĩ thuật dựa vào hành vi (behavior-based IDS), IDS/IPS sẽ xây dựng tập dữ liệu
(profile) mơ tả hoạt động bình thường của hệ thống mà chúng bảo vệ. Nếu đặc
tính của luồng dữ liệu (traffic) khác với tập mà hệ thống đã học trước đó, hệ
thống IDS/IPS sẽ thơng báo là có tấn cơng (ví dụ hệ thống Bro). Ưu điểm của
phương pháp tiếp cận này là có thể phát hiện được các dạng tấn công mới. Tuy
nhiên nhược điểm là tỉ lệ cảnh báo sai cao.

Tuy nhiên, vấn đề chính của các hệ thống IDS/IPS là chúng không hiểu
được logic của giao thức tức là chúng khơng thể biết được một gói tin HTTP
đúng hay sai định dạng. Để giải quyết vấn đề này tường lửa lớp ứng dụng web
(Web Application firewall–WAF) được đưa vào ứng dụng và sử dụng nhằm phát
hiện những loại tấn công mà IDS/IPS không thể phát hiện.
1.3. Mục tiêu và định hướng giải pháp
Mục đích nghiên cứu của luận văn bao gồm hai nội dung chính:
- Tìm hiểu về các đặc trưng cơ bản của website và vận dụng xây dựng
tường lửa lớp ứng dụng.
- Nghiên cứu các phương pháp học máy kết hợp với tường lửa
Modsecurity mã nguồn mở xây dựng giải pháp tường lửa lớp ứng dụng.
Giải pháp xây dựng tường lửa lớp ứng dụng (WAF) dựa trên mã nguồn mở
ModSecurity được nghiên cứu trong luận văn có thể phát hiện một số dạng tấn cơng
mà các hệ thống IDS/IPS không thể phát hiện như: SQL injection, cross-site
scripting, session hijacking, parameter/URL tampering, buffer overflows.

1.4. Đóng góp của luận văn
Luận văn “Xây dựng giải pháp tường lửa lớp ứng dụng dựa trên
ModSecurity” đã giải quyết được một số nội dung:
- Đối với các lĩnh vực khoa học có liên quan: Luận văn cung cấp các mối nguy
cơ, rủi ro về bảo mật web, thông tin các giải pháp an tồn thơng tin đặc biệt là trong lĩnh
vực tường lửa ứng dụng web cho cổng thông tin điện tử tại Việt Nam cũng như các giải
pháp và xu hướng nghiên cứu hiện nay về bảo mật trên toàn thế giới.

Đối với kinh tế - xã hội: Đóng góp giải pháp bảo mật các cổng thơng tin
điện tử, tạo tính ổn định, chắc chắn, bảo vệ thông tin quan trọng góp phần thúc
đẩy và triển khai chính phủ điện tử nâng cao hiệu quả kinh tế, xã hội.
2



1.5. Bố cục của luận văn
Luận văn được chia ra làm 05 chương cụ thể như sau:
CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI
1.1. Đặt vấn đề
1.2. Các giải pháp hiện tại và hạn chế
1.3. Mục tiêu và định hướng giải pháp
1.4. Đóng góp của luận văn
1.5. Bố cục của luận văn
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Các nguy cơ mất an toàn đối với ứng dụng Web
2.2. Đặc trưng trong header HTTP
2.3. Tường lửa lớp ứng dụng web
2.4. Tường lửa Modsecurity
2.5. Một số thuật toán học máy
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ
3.1. Giải pháp đề xuất
3.1. Kiến trúc tổng quan hệ thống
3.2. Dữ liệu thử nghiệm
3.3. Phân tích lựa chọn đặc trưng
3.4. Đánh giá và thử nghiệm các thuật toán học máy
CHƯƠNG 4: KẾT LUẬN
CHƯƠNG 5: TÀI LIỆU THAM KHẢO

3


CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Các nguy cơ mất an toàn đối với ứng dụng Web
2.1.1. Tổng quan về ứng dụng Web
Ứng dụng Web là các chương trình máy tính cho phép người dùng website

đăng nhập, truy vấn dữ liệu qua mạng Internet trên trình duyệt Web. Dữ liệu sẽ
được gử i tới người dùng trong trình duyệt theo kiểu thông tin động từ ứng dụng
web qua một máy chủ (web server).
Ứng dụng web có những đặc điểm khác biệt so với trang web thơng
thường đó là: tính tương tác cao, nhiều chức năng; được tạo bởi html (HyperText
Markup Language) và code ở back end (bằng ngôn ngữ lập trình PHP, C#,
Java,..); ngồi ra các ứng dụng web được dùng để thực hiện công việc và chức
năng của một ứng dụng nhất định; có u cầu khó, tính quản trị lớn và có thể
phân tích hệ thống, xây dựng cơ sở dữ liệu đặc thù riêng biệt.
Trong thực tế, cơ chế hoạt động của ứng dụng web được mô phỏng như sau:

Hình 2.1: Cơ chế hoạt động của ứng dụng web

- Người dùng sử dụng internet tiến hành kích hoạt yêu cầu đến máy chủ
web. Quá trình thực hiện thông qua giao diện người dùng (user interface) của
ứng dụng hoặc thơng qua trình duyệt web.
- Tiếp theo, web server sẽ tiến hành chuyển tiếp yêu cầu này đến máy chủ
ứng dụng web (Web Application Server) thích hợp.
- Máy chủ sử dụng ứng dụng web bắt đầu thực hiện các thao tác nghiệp vụ
được yêu cầu ví dụ như truy vấn cơ sở dữ liệu, xử lý các dữ liệu,…. Sau đó tạo ra
kết quả cho dữ liệu đã được yêu cầu.
- Sau khi có được kết quả máy chủ ứng dụng web sẽ gửi đến máy chủ web
các thông tin yêu cầu hay dữ liệu đã được tiến hành xử lý.
- Cuối cùng máy chủ web sẽ phản hồi lại khách hàng cụ thể những thông
tin đã được yêu cầu ban đầu.
4


2.1.2. Các nguy cơ gây mất an toàn đối với ứng dụng Web
Ngày nay việc sử dụng các website là rất phổ biến, do đó có nhiều nguy cơ

dẫn đến việc hệ thống bị tấn công. Nguy cơ đầu tiên xuất phát từ phiên bản máy chủ
web và máy chủ cơ sở dữ liệu đang sử dụng. Ở mỗi phiên bản sử dụng đều có những
lỗ hổng mà nhờ đó kẻ tấn cơng có thể xâm nhập vào hệ thống. Để khắc phục nguy
cơ này, người quản trị cần phải cập nhật các bản vá từ nhà cung cấp sản phẩm. Tuy
nhiên, đối với mỗi hệ thống tùy theo nhu cầu sử dụng sẽ có một cấu hình riêng, do
đó khi cập nhật các bản vá này có thể làm cho hệ thống hoạt động khơng ổn định có
thể khơng tương thích với các phần cấu hình và cài đặt thêm trên hệ thống.

Nguy cơ thứ hai xuất phát từ mã nguồn của Website. Đố i với nguy cơ này
có thể kh ắc phục b ằng cách sửa đổi mã nguồn để hạn chế các nguy cơ, lỗ hổng
phát sinh nhưng có thể dẫn đến Website hoạt động khơng đúng chức năng.
Nguy cơ thứ ba xuất phát từ bên ngoài gồm có:
- Nguy cơ bị tấn cơng từ chối dịch vụ (DoS, DDoS) làm cho hệ thống
khơng cịn khả năng phục vụ các yêu cầu từ phía người dùng.
- Nguy cơ bị thay đổi nội dung trang web làm giảm uy tín hay các hoạt
động bơi nhọ tổ chức, chính quyền.
- Nguy cơ bị kẻ xấu làm sai lệch các thông tin khi thực hiện các giao dịch
điện tử trên môi trường Internet.
- Nguy cơ bị đánh cắp các thông tin nhạy cảm như: thông tin tài khoản,
mật khẩu truy cập hệ thống và thơng tin thẻ tín dụng,…
Nguy cơ thứ tư xuất phát từ các dịch vụ khác của hệ thống mà cũng sẽ gây
ra khơng an tồn cho website như dịch vụ FTP, thư điện tử. Kẻ tấn cơng có thể
dựa vào các lỗ hổng trên dịch vụ này để tấn công vào máy chủ web của chúng ta.
OWASP viết tắt của Open Web Application Security Project là một tổ
chức phi lợi nhuận quốc tế chuyên về bảo mật ứng dụng web. Một trong những
nguyên tắc cốt lõi của OWASP là tất cả các tài liệu của tổ chức đều miễn phí và
dễ dàng truy cập trên trang web chính thức . OWSAP cung cấp
bao gồm tài liệu, công cụ, video và diễn đàn. Theo báo cáo năm 2021 dưới đây là
Top 10 nguy cơ dẫn đến mất an toàn an ninh trên các ứng dụng web.
Lỗi phân quyền trong hệ thống (Broken Access Control)

Đây là phương thức tấn công mà khi kẻ tấn công xâm nhập, chiếm quyền
sử dụng các tài nguyên được bảo vệ trên hệ thống một cách trái phép.
Những kẻ tấn cơng có thể truy cập tài khoản người dùng và thậ m chí có thể
xâm nhập tồn bộ hệ thống máy chủ thơng qua tài khoản quản trị, sử dụng các lỗ
hổng trong hệ thống xác thực. Các lỗ hổng xác thự c cho phép kẻ tấn công lấy được
mật khẩu, mã thông báo phiên, khóa xác thực và có thể bị lợi dụng nó tiến hành
5


các cu ộc tấn cơng khác để có thể truy cập trái phép bất kỳ tài khoản hoặc phiên
người dùng nào khác tạm thời hoặc vĩnh viễn.
Các lỗi phân quyền thường do thiếu các bộ phát hiện lỗi tự động hoặc cách
thức kiểm thử hay các hàm kiểm thử chưa hiệu quả khiến cho hệ thống bị rò rỉ.
Việc cấu hình an ninh khơng chặt chẽ tại các tầng kiến trúc của web như nền
tảng, framework, máy chủ, cơ sở dữ liệu và mã tùy chỉnh cũng là một trong các
ngun nhân dẫn đến hình thức tấn cơng này. Chính vì vậy, tất cả các tầng kiến
trúc của web phải được cập nhật thường xun.
Các loại tấn cơng này có thể được ngăn chặn bằng cách sử dụng hệ thống
xác thực đa yếu tố, luôn đặt mật khẩu với mức độ bảo mật mạnh; không sử dụng
thông tin đăng nhập mặc định; đảm bảo chính sách độ phức tạp của mật khẩ u; sử
dụng phía máy chủ trình quản lý phiên tạo ID phiên ngẫu nhiên mới sau khi đăng
nhập, v.v.
Lỗi mật mã (Cryptographic Failures)
Việc bảo m ật các thông tin cá nhân nhạ y cảm bằng cách sử dụng mã hóa
thơng tin theo các cách khác nhau là cần thiết. Tuy nhiên, nếu cách mã hóa đơn giản
mà kẻ tấn cơng có thể giải mã hay việc giải mã bằng một cách nào đó khơng đảm
bảo an tồn bản rõ thì những thơng tin cá nhân, nhạy cảm sẽ bị lộ lọt ra ngoài.

Nguyên nhân của lỗi mật mã xảy ra khi việc lưu trữ , hoặc chuyển dữ liệu
ở dạng bản rõ; bảo vệ dữ liệu bằng mã hóa đã cũ hoặc yếu; lọc và che giấu dữ

liệu khi chuyển tiếp khơng đúng cách, các chuỗi mã hóa không được xác thực.
Cách thức ngăn chặn:
- Không sử dụng những giao thức đã cũ như FTP, SMTP,... để vận chuyển
dữ liệu cá nhân nhạy cảm.
- Đảm bảo các thuật tốn mã hóa đạt tiêu chuẩn mạnh mẽ.
- Mã hóa dữ liệu trên đường truyền bằng TLS, HTTPS.
- Lưu trữ password bằng các hàm băm mạnh.
- Luôn sử dụng mã hóa được xác thực thay vì chỉ mã hóa.
Tiêm chèn lệnh (Injection)
Injection là một kĩ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng
trong việc kiểm tra dữ liệu nhập vào trong các ứng dụng web và các thông báo
lỗi của hệ quản trị cơ sở dữ liệu để "tiêm vào" (inject) và thực thi các câu lệnh
SQL bất hợp pháp. Tác hại của nguy cơ này có thể rất lớn vì nó cho phép những
kẻ tấn cơng có thể thực hiện các thao tác thêm, sửa, xóa, hiệu chỉnh,… do có tồn
quyền trên cơ sở dữ liệu của ứng dụng, thậm chí là máy chủ mà ứng dụng đó
đang chạy. Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lí
bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2,
Sysbase. Có 4 dạng tấn cơng kiểu SQL injection phổ biến như sau:
6


- Vượt qua kiểm tra;
- Sử dụng câu lệnh SELECT;
- Sử dụng câu lệnh INSERT;
- Sử dụng các Stored-Procedures.
Lỗi thiết kế không bảo mật (Insecure Design)
Đây là phương thức mà kẻ tấn cơng lợi dụng các sai sót trong thiết kế để
tấn công.
Cách ngăn chặn:
- Thiết lập sử dụng những thư viện mẫu thiết kế an tồn.

- Kiểm tra tính hợp lí ở mỗi cấp ứng dụng
- Hạn chế tiêu thụ tài nguyên người dùng hoặc dịch vụ
Cấu hình sai bảo mật (Security Misconfiguration)
Đây là phương thứ c mà kẻ tấn cơng lợi dụng các sai sót trong việc triển
khai hệ thống. Những lỗi phổ biến thường xảy ra đó là: các tính năng khơng cần
thiết được bật tại các cổng (port), dịch vụ (service), tài khoản(account); thiếu việc
tăng cường bảo mật cho từng phần của ứng dụng; các tài khoản và mật khẩu để
mặc định; phần mềm không được cập nhật thường xuyên và lỗi thời. Cách ngăn
chặn: loại bỏ những tài ngun, tính năng khơng cần thiết; cung cấp sự hiệu quả
và an toàn giữa các thành phần; liên tục cập nhật những phiên bản mới nhất.
Các thành phần dễ tấn công và lỗi thời (Vulnerable and Outdated
Components)
Nhữ ng lỗi phổ biế n là: không quét lỗ hổng thường xuyên và đăng ký
nhận các bản tin bảo mật liên quan đến các thành phần sử dụng; phần mềm dễ bị
tấn cơng (có thể khơng được hỗ trợ hoặc đã lỗi thời); không sửa chữa, nâng cấp
các nền tảng; khơng bảo mật cấu hình của các thành phần.
Cách ngăn chặn:
- Loại bỏ các tính năng, thành phần, tệp và tài liệu không cần thiết
- Liên tục kiểm tra các phiên bản của cả phần mềm phía máy khách và máy chủ

- Sử dụng và tải các phần mềm từ nguồn chính thức qua các liên kết an tồn.
Lỗi định danh và xác thực (Identification and Authentication Failures)
Xác nhận danh tính, xác thực và quản lí phiên người dùng rất quan trọng
trong việc bảo vệ khỏi các cuộc tấn công liên quan đến xác thực. Những lỗi xác thực
thường gặp phải: hệ thống khơng có biện pháp ngăn chặn các cu ộc tấn công brute
force; cho phép đặt các m ật khẩu yếu; xác thực đa yếu tố bị thiếu hoặc khơng hiệu
quả; sử dụng các quy trình khơi phục thông tin như "quên mật khẩu" một cách
7



khơng an tồn; hiển thị mã định danh phiên trong URL, sử dụng lại mã định danh
sau khi đăng nhập.
Cách ngăn chặn:
- Sử dụng xác thực đa yếu tố một cách an toàn
- Giới hạn số lần xác thực nhất định
- Thực hiện kiểm tra mật khẩu yếu và yêu cầu mật khẩu có độ phức tạp nhất định

- Đảm bảo các đường dẫn khôi phục thông tin xác thực và API được tăng
cường chống lại các cuộc tấn công
- Sử dụng trình quản lí phiên tích hợp an tồn, tạo ID ngẫu nhiên mới với
độ phức tạp cao
Lỗi về tính tồn vẹn của phân mềm và dữ liệu (Software and Data
Integrity Failures)
Các lỗi về tính tồn vẹn của phần mềm và dữ liệu liên quan đến code và
cơ sở hạ tầng khơng được đảm bảo tính tồn vẹn
Ứng dụng tích hợp vào các plugin, thư viện hoặc mơ-đun khơng đáng tin
cậy, khơng an tồn dẫn đến truy cập trái phép, thực thi các mã độc hại hoặc xâm
nhập hệ thống
Cách ngăn chặn:
- Sử dụng chữ kí số để xác minh phần mềm
- Đảm bảo các thư viện và phần phụ thuộc
- Có cơng cụ bảo mật để kiểm tra độ an toàn phần mềm
- Đảm bảo những dữ liệu chưa được kí hoặc chưa được mã hóa khơng gửi
đến các máy khách không đáng tin cậy
Lỗi bảo mật về giám sát và ghi nhật ký (Security Logging and
Monitoring Failures)
Ghi nhật kí bảo mật nhằm giúp phát hiện, báo cáo và phản hồi các vi
phạm nhằm kịp thời ngăn chặn các cuộc tấn cơng nguy hiểm. Hoạt động ghi nhật
kí giám sát và phản hồi khơng đầy đủ có thể xảy ra bất cứ lúc nào.
Các sự kiện quan trọng như đăng nhập khơng thành cơng hay những thao

tác có tác động lớn không được ghi lại
Các cảnh báo lỗi không thông báo, không đầy đủ hoặc không rõ ràng
Nhật kí các hoạt động API khơng được giám sát; ứng dụng không thể hoặc
phản hồi quá chậm các phát hiệ n, báo cáo hoặc cảnh báo về các cuộc tấn công
đang hoạt động trong thời gian thực
8


Cách ngăn chặn:
- Đảm bảo các lỗi đăng nhập, kiểm sốt truy cập và xác thực đầu vào phía
máy chủ được ghi lại đủ để xác định các tài khoản đáng ngờ
- Đảm bảo nhật kí được mã hóa chính xác tránh việc tiêm hoặc tấn công
vào hệ thống ghi nhật kí hoặc giám sát
- Đảm bảo các hành động tác động lớn được kiểm tra với các biện pháp
kiểm sốt tính tồn vẹn để ngăn chặn việc giả mạo hoặc xóa.
- Các nhóm Dev về bảo mật nên thiết lập giám sát và cảnh báo hiệu quả để
các hoạt động đáng ngờ được phát hiện và phản hồi nhanh chóng
u cầu truy vấn giả mạo phía máy chủ (Server-side Request Forgecy)

SSRF xảy ra bất cứ khi nào khi ứng dụng web đang tìm nạp tài ngun từ
xa mà khơng xác thực URL do người dùng cung cấp. Nó cho phép kẻ tấn công sử
dụng ứng dụng gửi một yêu cầu đến một điểm đích khơng mong muốn, ngay cả
khi được bảo vệ bởi tường lửa.
Cách ngăn chặn
- Đối với lớp mạng: Phân đoạn chức năng truy cập tài nguyên từ xa trong
các mạng riêng biệt để giảm tác động của SSRF; thực thi các chính sách tường
lửa “từ chối theo mặc định” hoặc các quy tắc kiểm soát truy cập mạng để chặn tất
cả trừ lưu lượng mạng nội bộ thiết yếu.
- Đối với lớp ứng dụng: làm sạch và xác thực tất cả dữ liệu đầu vào do
người dùng cung cấp; thực thi lược đồ URL, cổng là điểm đến với danh sách cho

phép xác thực; tắt chuyển hướng HTTP.
2.2. Đặc trưng trong header HTTP
2.2.1. Request
Trong phương thức HTTP, HTTP Request được gọi là các truy vấn tức là
các thông tin được gửi từ máy khách đến máy chủ và yêu cầu máy chủ thực hiện
truy vấn và trả về kết quả.
Nguyên lý hoạt động: Khi người dùng trình duyệt web gõ một địa chỉ cụ
thể (ví dụ google.com) thì ngay lập tức trình duyệt sẽ dựa vào tên miề n để gử i
yêu cầu truy cập đến địa chỉ IP mà tên miền này tr ỏ tới. Lúc này phía máy chủ sẽ
phân tích yêu cầu và gửi luồng xử lý tới vị trí lưu trữ mã nguồn. Tại đây sẽ tiếp
nhận các yêu cầu, phân tích truy vấn đó và trả lại kết quả cho máy khách.
Cấu trúc của HTTP Request
Máy khách gửi một HTTP request lên máy chủ nhờ một thơng điệp có
định dạng như sau:
<method> <request-URL> <http-serverion>
9


<headers>
<body>

Ý nghĩa của các đối tượng trong HTTP request

Hình 2.2: HTTP Request

- Dòng truy vấn (Request line): Bắt đầu của một HTTP Request sẽ là dịng
truy vấn chứa ba thơng tin:
+ Phương thức(Method):
Phương
thức

GET
POST
HEAD
PUT
PATCH
DELETE
CONNECT
OPTION
TRACE

Mơ tả
Câu truy vấn sẽ được đính kèm trong đường dẫn HTTP Request;
phương thức GET có thể được cached, bookmark hay lưu trong lịch sử
của trình duyệt nhưng bị giới hạn về chiều dài
Câu truy vấn được gửi trong phần message body của HTTP Request;
phương thức POST không thể cached, bookmark hay lưu trong lịch sử
của trình duyệt và không bị giới hạn về chiều dài.
Tương tự như GET nhưng chỉ truyền tải start-line và Header (sẽ khơng
có bất cứ thông tin nào trong phần sau của header)
Ghi đè tất cả thông tin của đối tượng với những gì được gửi lên (upload
file)
Ghi đè các thơng tin được thay đổi của đối tượng.
Được sử dụng để yêu cầu server xóa một file tại vị trí được xác định
bởi URL đã cung cấp
Thiết lập một kết nối tới server theo URL
Mô tả các tùy chọn giao tiếp cho resource
Thực hiện kiểm tra vịng lặp thơng điệp theo đường dẫn đến tài nguyên
đích, dùng để gỡ lỗi.

Một phương thức được coi là an tồn (safe) khi nó khơng làm thay đổi trạng

thái của máy chủ. Phương thức an toàn gồm các phương thức GET, HEAD,
OPTIONS; phương thức khơng an tồn là PUT, DELETE, POST và PATCH.
Các phương thức được coi là idempotent khi nó có thể thực hiên n + 1 lần
mà vẫn trả lại 1 kết quả như ban đầu.
10


+ URI: là địa chỉ định danh của tài nguyên được yêu cầu.
+ HTTP Version: Phiên bản HTTP đang sử dụng.
2.2.2. Request Header
Tiếp theo dòng Request-Line là các trường Request-header cho phép
client gửi thêm các thông tin bổ sung về thơng điệp HTTP request và về chính
máy khách. Một số trường thơng dụng như:

Hình 2.3:Mơ tả các trường header HTTP

- Accept: loại nội dung có thể nhận được từ thơng điệp phản hồi. 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…

- Accept Language: ngơn ngữ mặc định của phía client.
- Content-Length: kích cỡ phần thân của request.
- Host: được sử dụng để xác định Internet host và số hiệu cổng của nguồn
được yêu cầu.
- Accept-Charset: được sử dụng để chỉ các bộ thiết lập ký tự nào được
chấp nhận cho sự phản hồi.
- Cookie: chứa một cặp tên/giá trị của thông tin được lưu giữ cho URL đó
- Content-Type: định dạng kiểu dữ liệu trả về trong header của response
trước khi trả về dữ liệu cho client.
- Referer: cho biết URL đang sử dụng có nguồn gốc từ địa chỉ nào.

- Connection: tùy chọn điều khiển cho kết nối hiện thời. Ví dụ: keepalive,
upgrade…
- Cookie: thông tin HTTP Cookie từ server
- User-Agent: thơng tin về trình duyệt của người dùng.
2.2.3. HTTP Response
Trong phương thức HTTP, HTTP Response được gọi là các kết quả được
trả về từ máy chủ đến máy khách.
- Nguyên lý hoạt động của HTTP Response:
11



×