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

XÂY DỰNG HỆ THỐNG BẢO VỆ VÀ CẢNH BÁO XÂM NHẬP HOSTING

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.63 MB, 72 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO

XÂY DỰNG HỆ THỐNG BẢO VỆ VÀ CẢNH BÁO XÂM
NHẬP HOSTING

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC


NHẬN XÉT

Nhận xét của giảng viên hướng dẫn:
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................


GIẢNG VIÊN HƯỚNG DẪN
(Ký và ghi rõ họ tên)

3


LỜI CAM ĐOAN

Em xin cam đoan đồ án tốt nghiệp “Xây dựng hệ thống bảo vệ và cảnh báo
xâm nhập Hosting cho cơng ty TNHH Cơng Nghệ Phẩm Ba Đình sử dụng
Modseurity” là cơng trình nghiên cứu của bản thân. Những phần sử dụng tài liệu
tham khảo trong đồ án đã được nêu rõ trong phần tài liệu tham khảo. Các số liệu,
kết quả trình bày trong đồ án là hoàn toàn trung thực, nếu sai em xin chịu hoàn tồn
trách nhiệm và chịu mọi kỷ luật của bộ mơn và nhà trường đề ra.

4


MỤC LỤC
NHẬN XÉT............................................................................................................... 3
DANH SÁCH CÁC THUẬT NGỮ...........................................................................8
DANH SÁCH HÌNH VẼ.........................................................................................10
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI................................................................11

1.1. Lý do chọn đồ án..........................................................11
1.2. Mục tiêu của đồ án.......................................................12
1.2.1. Mục tiêu tổng quát.................................................12
1.2.2. Mục tiêu cụ thể......................................................12
1.3. Giới hạn và phạm vi của đồ án....................................13
1.3.1. Đối tượng nghiên cứu.............................................13

1.3.2. Phạm vi nghiên cứu...............................................13
1.4. Nội dung thực hiện.......................................................13
1.5. Phương pháp tiếp cận..................................................14
CHƯƠNG 2: TỔNG QUAN VỀ TƯỜNG LỬA WEBSITE...................................15

2.1. Tổng quan về WAF.......................................................15
2.1.1. WAF........................................................................15
2.1.2. Nguyên lý hoạt động của WAF...............................16
2.1.3. Lợi ích của tường lửa ứng dụng web......................17
2.1.4. Các loại tường lửa ứng dụng web..........................19
2.2. ModSecurity.................................................................20
2.2.1. Khái niệm về ModSecurity.....................................20
2.2.2. Các khả năng của ModSecurity..............................22
2.2.3. Quy trình xử lý của ModSecurity............................23
2.2.4. Khuyến cáo khi triển khai thực tế..........................24
2.3. Giới thiệu về Nginx.......................................................25
2.3.1. Khái niệm...............................................................25
5


2.3.2. Nguyên lý hoạt động..............................................26
2.3.3. Những tính năng của Nginx...................................27
2.4. Giới thiệu về bộ ELK Stask...........................................28
2.4.1. Giới thiệu về Elasticsearch.....................................29
2.4.2. Giới thiệu về Logstash...........................................31
2.4.3. Giới thiệu về Kibana...............................................33
2.5. Quy trình làm việc........................................................36
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG BẢO VỆ VÀ CẢNH BÁO XÂM NHẬP
HOSTING CHO CÔNG TY TNHH CÔNG NGHỆ PHẨM BA ĐÌNH SỬ DỤNG
MODSECURITY....................................................................................................38


3.1. Khảo sát hệ thống........................................................38
3.1.1. Tổng quan về Cơng Ty TNHH Cơng Nghệ Phẩm Ba
Đình..................................................................................38
3.1.2. Khảo sát u cầu của cơng ty................................40
3.2. Phân tích u cầu hệ thống và thiết kế giải pháp triển
khai hệ thống......................................................................40
3.2.1. Phân tích yêu cầu..................................................40
3.2.2. Thiết kế sơ đồ logic cho hệ thống..........................41
3.2.3. Yêu cầu về hệ thống..............................................42
3.3. Triển khai hệ thống Nginx ModSecurity.......................42
3.3.1. Cài đặt Nginx.........................................................42
3.3.2. Cài đặt ModSecurity...............................................45
3.3.3. Cấu hình ModSecurity – Nginx...............................52
3.3.4. Kiểm tra hoạt động của ModSecurity - Nginx........55
3.4. Triển khai bộ 3 công cụ ELK Stack...............................56
3.4.1. Cài đặt Java 8.........................................................56
3.4.2. Cài đặt Elasticsearch..............................................57
3.4.3. Cài đặt Kibana........................................................60
6


3.4.4. Cài đặt Logstash....................................................62
3.4.5. Cài đặt Filebeat (Trên máy client)..........................65
3.5. Giám sát bảo mật liên tục bằng ModSecurity & ELK....66
3.5.1. Cấu hình file conf của Logstash.............................66
3.5.2. Cung cấp dữ liệu vào Elasticsearch.......................67
3.5.3. Thiết lập Kibana.....................................................68
KẾT LUẬN............................................................................................................71


Kết quả đạt được của đồ án................................................71
Hạn chế của đồ án..............................................................71
Hướng phát triển của đồ án................................................71
TÀI LIỆU THAM KHẢO.......................................................................................72

7


DANH SÁCH CÁC THUẬT NGỮ

STT Từ viết tắt
Cụm từ tiếng Anh
1
CPU
Central Prossesing Unit
Distributed Denial of
2
DDoS
Service
3
DNS
Domain Name System
4
ELK
Elastic Stack
5
FLV
Flash Video
6
GPL

General Public License

Diễn giải
Trung tâm sử lý dữ liệu
Tấn công từ chối dịch vụ
Hệ thống phân giải tên miền
Phục vụ logging
Định dạng tệp vùng chứa
Giấy phép phần mềm tự do
Giao thức truyền tải siêu văn

7

HTTP

HyperText Transfer Protoco

8
9
10
11
12
13

IDS
IP
IPS
JSON
LAN
OS


14

OSVDB

Intrusion Detection Systems
Internet Protocol
Intrusion Prevention System
JavaScript Object Notation
Local Network Area
Operation System
OpenSource Vulnerability

bản
Hệ thống ngăn chặn xâm nhập
Giao thức hướng dữ liệu
Hệ thống phát hiện xâm nhập
Dữ liệu mở trong JavaScript
Mạng cục bộ
Hệ điều hành
Lỗ hổng bảo mật có nguồn

15

OWASP

Database
Open Web Application

gốc mở

Dự án bảo mật ứng dụng web

16

PERL

Security Project
Practical Extraction and

mở
Ngôn ngữ kết xuất và báo cáo

17

RAM

18

SCGI

Report Language
Random Access Memory
Simple Common Gateway

thực dụng
Bộ nhớ truy cập ngẫu nhiên
Giao diện cổng chung đơn

19
20


SQL
SSH

21

TCP

Interface
Structured Query Language
Secure Shell
Transmission Control

giản
Ngôn ngữ truy vấn
Đăng nhập từ xa
Giao thức điều khiển truyền

22
23
24

URL

Protocol
Uniform Resource Locator

vận
Định vị tài nguyên thống nhất


WAF
WSGI

Web Application Firewall
Web Server Gateway

Tường lửa ứng dụng
Giao diện cổng máy chủ Web

8


25

XML

26

XSS

Interface
eXtensible Markup

Ngôn ngữ đánh dấu mở rộng

Language
Cross Site Scripting

Tấn công mã độc


9


DANH SÁCH HÌNH VẼ

10


CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1. Lý do chọn đồ án
Tường lửa ứng dụng web không phổ biến như tường lửa mạng, nhưng nó đã
được đề cập đến trong các tin tức, bài báo và hội thảo bảo mật hiện nay. Các doanh
nghiệp đã chấp nhận sử dụng công nghệ này bởi vì nó nâng cao an tồn web một
cách đáng kể. Nhưng cấu hình, triển khai và duy trì cơng nghệ mới này khơng hề
đơn giản. Để triển khai chúng thành công, ta cần phải hiểu rõ các hoạt động của ứng
dụng một cách đầy đủ và cấu hình các quy tắc tường lửa một cách cẩn thận. Hơn
nữa, chi phí để mua được sản phẩm thương mại là rất đắt đỏ, các chuyên gia đã
khuyến khích bắt đầu sử dụng với các sản phẩm mã nguồn mở, chẳng hạn
ModSecurity, do đó ta có thể đưa ra quyết định, nếu giải pháp này là thích hợp với
ngân sách và môi trường mạng của bạn.
Trong vài năm gần đây, các lỗ hổng ứng dụng web đã trở thành mối đe dọa
lớn nhất trong môi trường công nghệ thông tin. Theo cơ sở dữ liệu lổ hổng mã
nguồn mở (OSVDB), các mối đe dọa ứng dụng web chiếm hơn 50% tất cả các lỗ
hổng trong năm 2010. Do đó, bảo mật các ứng dụng web đã trở thành một vấn đề
quan trọng nhất mà bạn cần phải chú ý như người dùng cuối hoặc một người kinh
doanh.
Tường lửa ứng dụng web (WAF) là một dạng tường lửa nhằm lọc các lưu
lượng HTTP dựa trên một tập quy tắc. Nó kiểm tra ở mức ứng dụng vì vậy nó
thường đi kèm như một thiết bị hoặc một mô đun trong máy chủ, có chức năng xác
định và ngăn chặn các tấn công web phổ biến như cross-site scritpting (XSS) và

SQL injection bằng việc tùy chỉnh các quy tắc. Do đó, việc tùy chỉnh các quy tắc
này là rất đáng quan tâm và u cầu bảo trì cao.
Có nhiều cách để bảo vệ ứng dụng web, chẳng hạn như thực hiện một đoạn
mã an tồn, quản lý cấu hình an tồn, thực hiện đánh giá lỗ hổng và triển khai tường
lửa ứng dụng web, nhưng khơng có một giải pháp nào là hoàn hảo, việc sử dụng
tường lửa ứng dụng web chỉ là một phương thức bảo mật ứng dụng. Kỹ thuật này

11


tương đối mới so với các công nghệ khác, nhưng nó có thể trở thành một giải pháp
hữu hiệu khi bạn cấu hình và sử dụng nó đúng cách.
Modsecurity sẽ được sử dụng để minh hoạ làm thế nào bảo mật ứng dụng
web sử dụng WAF. Modsecurity bảo vệ các ứng dụng web từ nhiều cuộc tấn công
và cho phép giám sát lưu lượng HTTP với sự can thiệp không nhiều của cơ sở hạ
tầng hiện có. Nó là một mô đun mã nguồn mở của ứng dụng máy chủ web Apache
và nó đã được bảo trì bởi SpiderLabs, Trustwave. Từ khi nó là một sản phẩm mã
nguồn mở, nó mặc nhiên là miễn phí và nhiều người dùng sử dụng đã góp phần cải
thiện và duy trì sản phẩm này.
WAF không phải là một công cụ mà chỉ nhằm ngăn chặn các hoạt động nguy
hiểm tại lớp ứng dụng. Nó cũng có thể được sử dụng để phân tích và phát hiện các
lưu lượng nguy hiểm tấn công vào các ứng dụng. Do đó, trong đồ án này em sẽ
minh họa làm thế nào phân tích các tấn cơng web phổ biến sử dụng WAF để phát
hiện và ghi lại các khả năng cùng với nhật ký máy chủ Web Apache.
Chính vì những lý do trên nên em chọn đề tài: “Xây dựng hệ thống bảo vệ và
cảnh báo xâm nhập Hosting cho công ty TNHH Công Nghệ Phẩm Ba Đình sử dụng
Modsecurity” làm đề tài tốt nghiệp.
1.2. Mục tiêu của đồ án
1.2.1. Mục tiêu tổng quát
Mục tiêu cần đạt được theo yêu cầu của đề tài " Xây dựng hệ thống bảo vệ và

cảnh báo xâm nhập Hosting cho cơng ty TNHH Cơng Nghệ Phẩm Ba Đình sử dụng
Modseurity", sinh viên có khả năng ơn tập, thực hành và phát triển vững chắc
những kiến thức cơ bản về WAF.
1.2.2. Mục tiêu cụ thể
Các firewall truyền thống không đủ mạnh để để bảo vệ các web server.
ModSecurity cho phép bảo vệ web server (một/nhiều) thông qua cơ chế can thiệp
trực tiếp ở mức độ ứng dụng.

12


Xây dựng hệ thống bảo vệ và cảnh báo xâm nhập Hosting cho cơng ty
TNHH Cơng Nghệ Phẩm Ba Đình sử dụng Modsecurity.
1.3. Giới hạn và phạm vi của đồ án
1.3.1. Đối tượng nghiên cứu
-

Tìm hiểu về 1 số tường lửa ứng dụng WAF.

-

Hệ thống bảo vệ hosting cho website ModSeucrity.

1.3.2. Phạm vi nghiên cứu
Đề tài giới thiệu được cái nhìn tổng quan về cơng nghệ này, đồng thời đưa ra
những giải pháp, cách thức cơ bản để ứng dụng cơng nghệ này cho một số mơ hình
doanh nghiệp vừa và nhỏ. Điển hình là cơng ty TNHH Cơng nghệ phẩm Ba Đình.
1.4. Nội dung thực hiện
Nghiên cứu lý thuyết:
-


Nghiên cứu về Web server Nginx.

-

Nghiên cứu sâu về ứng dụng tường lửa ModSecurity dựa trên web nguồn
mở.

-

Nghiên cứu về công cụ ghi log ELK Stask.

-

Ứng dụng công nghệ Nginx Modsecurity để bảo vệ và cảnh báo xâm nhập
hosting cho công ty TNHH Cơng Nghệ Phẩm Ba Đình.

Triển khai và cài đặt hệ thống:
Server 1
-

Cài đặt web server Nginx trên hệ điều hành Ubuntu 18.04.

-

Cài đặt ứng dụng tường lửa Modsecurity chạy trên máy chủ web Nginx.

-

Cài đặt Filebeat để chuyển dữ liệu sang Elk stask.


Server 2
-

Cài đặt Logstash để thu thập log từ cái máy chủ khác nhau.

-

Cài đặt Elasticsearch để tìm kiếm và query log.

-

Cài đặt Kibana để show ra giao diện quản lý.

Server 3

13


-

Cài Acunetix để thử nghiệm Modsecurity.

1.5. Phương pháp tiếp cận
-

Khảo sát thực tế, phân tích đánh giá yêu cầu của cơng ty.

-


Đặt ra các bài tốn và tìm hiểu các kiến thức nhằm giải quyết các bài tốn đặt
ra.

-

Phân tích, thiết kế mơ hình mạng.

-

Dựa vào mơ hình mạng đã đưa ra và các u cầu từ phía cơng ty để triển khai
cài đặt hệ thống cảnh báo xâm nhập hosting sử dụng Modseurity cho công ty
TNHH Công Nghệ Phẩm Ba Đình.

-

Nghiên cứu lý thuyết và cách triển khai hệ thống cảnh báo xâm nhập hosting
sử dụng Modseurity từ các nguồn tài liệu chính thống.

14


CHƯƠNG 2: TỔNG QUAN VỀ TƯỜNG LỬA WEBSITE
2.1. Tổng quan về WAF
2.1.1. WAF

Hình 2. 1 Tường lửa Website – WAF
Tường lửa ứng dụng web (Web Application Firewall – WAF) là tường lửa
giám sát, lọc và chặn các gói dữ liệu khi chúng di chuyển đến và đi từ một trang
web hoặc ứng dụng web.
WAF có thể dựa trên mạng, dựa trên máy chủ hoặc dựa trên đám mây và

thường được triển khai thông qua reverse proxy và được đặt trước một hoặc nhiều
trang web hoặc ứng dụng. Chạy như một thiết bị mạng, plugin máy chủ hoặc dịch
vụ đám mây, WAF kiểm tra từng gói và sử dụng cơ sở quy tắc để phân tích logic
ứng dụng web Layer 7 và lọc ra lưu lượng truy cập gây hại có thể tạo điều kiện cho
việc khai thác web.
Tường lửa ứng dụng web là biện pháp kiểm soát bảo mật phổ biến được các
doanh nghiệp sử dụng để bảo vệ hệ thống web chống lại việc khai thác zero-day,
nhiễm phần mềm độc hại, mạo danh cũng như các mối đe dọa và lỗ hổng bảo mật
đã biết và chưa biết khác. Thơng qua kiểm tra tùy chỉnh, WAF có thể phát hiện và

15


ngăn chặn ngay lập tức một số lỗi bảo mật ứng dụng web nguy hiểm nhất mà tường
lửa mạng truyền thống và các hệ thống phát hiện xâm nhập khác (IDSes) và hệ
thống ngăn chặn xâm nhập (IPSes) có thể khơng thực hiện được.
WAF đặc biệt hữu ích cho các công ty cung cấp sản phẩm hoặc dịch vụ qua
Internet như mua sắm thương mại điện tử, ngân hàng trực tuyến và các tương tác
khác giữa khách hàng hoặc đối tác kinh doanh.
2.1.2. Nguyên lý hoạt động của WAF
WAF phân tích các yêu cầu Hypertext Transfer Protocol (HTTP) và áp dụng
một bộ quy tắc xác định phần nào của cuộc hội thoại đó là lành tính và phần nào là
độc hại. Các phần chính của hội thoại HTTP mà WAF phân tích là các yêu cầu GET
và POST. Yêu cầu GET được sử dụng để truy xuất dữ liệu từ máy chủ và yêu cầu
POST được sử dụng để gửi dữ liệu đến máy chủ để thay đổi trạng thái của nó.

Hình 2. 2 Ngun lý hoạt động của WAF
WAF có thể thực hiện hai cách tiếp cận để phân tích và lọc nội dung có trong
các u cầu HTTP này hoặc kết hợp cả hai:
-


Whitelisting (danh sách trắng): Cách tiếp cận danh sách trắng có nghĩa là
WAF sẽ từ chối tất cả các yêu cầu theo mặc định và chỉ cho phép các yêu cầu
được biết là đáng tin cậy. Nó cung cấp một danh sách các địa chỉ IP được biết

16


là an tồn. Danh sách trắng ít tốn tài ngun hơn so với danh sách đen.
Nhược điểm của cách tiếp cận danh sách trắng là nó có thể vơ tình chặn lưu
lượng truy cập lành tính. Mặc dù nó tạo ra một mạng lưới rộng và có thể hiệu
quả, nhưng nó cũng có thể khơng chính xác.
-

Blacklisting (danh sách đen): Phương pháp tiếp cận danh sách đen mặc định
cho phép các gói tin đi qua và sử dụng chữ ký đặt trước để chặn lưu lượng
web độc hại và bảo vệ các lỗ hổng của các trang web hoặc ứng dụng web.
Nó là một danh sách các quy tắc chỉ ra các gói độc hại. Danh sách đen thích
hợp hơn cho các trang web và ứng dụng web công cộng vì chúng nhận được
nhiều lưu lượng truy cập từ các địa chỉ IP không quen thuộc mà không được
biết là độc hại hoặc lành tính. Nhược điểm của cách tiếp cận danh sách đen
là tốn nhiều tài nguyên hơn; nó u cầu nhiều thơng tin hơn để lọc các gói
dựa trên các đặc điểm cụ thể, trái ngược với việc mặc định là địa chỉ IP đáng
tin cậy.

-

Hybrid security (Kết hợp): Mơ hình bảo mật kết hợp sử dụng các yếu tố của
cả danh sách đen và danh sách trắng.


Bất kể mơ hình bảo mật mà WAF sử dụng là gì, nó cuối cùng vẫn hoạt động để
phân tích các tương tác HTTP và giảm hoặc lý tưởng nhất là loại bỏ lưu lượng độc
hại trước khi đến máy chủ để xử lý.
2.1.3. Lợi ích của tường lửa ứng dụng web

17


Hình 2. 3 Lợi ích của WAF

WAF có lợi thế hơn tường lửa truyền thống vì nó cung cấp khả năng hiển thị
tốt hơn đối với dữ liệu ứng dụng nhạy cảm được giao tiếp bằng cách sử dụng lớp
ứng dụng HTTP. Nó có thể ngăn chặn các cuộc tấn công lớp ứng dụng thường vượt
qua tường lửa mạng truyền thống, bao gồm những điều sau:
-

Các cuộc tấn công cross-site scripting (XSS) cho phép kẻ tấn công
đưa và thực thi các đoạn mã độc hại trong trình duyệt của người dùng
khác.

-

Các cuộc tấn công đưa vào ngôn ngữ truy vấn có cấu trúc (SQL) có
thể ảnh hưởng đến bất kỳ ứng dụng nào sử dụng cơ sở dữ liệu SQL và
cho phép kẻ tấn cơng truy cập và có khả năng thay đổi dữ liệu nhạy
cảm.

-

Hack phiên web cho phép kẻ tấn công chiếm đoạt ID phiên và giả

dạng người dùng được ủy quyền. ID phiên thường được lưu trữ trong
cookie hoặc Uniform Resource Locator (URL).

-

Các cuộc tấn công từ chối dịch vụ (DDoS) phân tán áp đảo một mạng
bằng cách làm ngập nó với lưu lượng truy cập cho đến khi nó khơng

18


thể phục vụ người dùng. Cả tường lửa mạng và WAF đều có thể xử lý
kiểu tấn cơng này nhưng tiếp cận nó từ các lớp khác nhau.
Một ưu điểm khác của WAF là nó có thể bảo vệ các ứng dụng dựa trên web
mà khơng nhất thiết phải có quyền truy cập vào mã nguồn của ứng dụng. Trong khi
WAF dựa trên máy chủ có thể được tích hợp vào mã ứng dụng, WAF được lưu trữ
trên đám mây có khả năng bảo vệ ứng dụng mà khơng cần có quyền truy cập. Ngồi
ra, WAF đám mây rất dễ triển khai và quản lý, đồng thời cung cấp các giải pháp vá
lỗi ảo nhanh chóng cho phép người dùng tùy chỉnh nhanh các cài đặt của họ để
thích ứng với các mối đe dọa mới được phát hiện.
Có cả tùy chọn WAF thương mại và mã nguồn mở. Các nhà cung cấp thương
mại phổ biến bao gồm Radware, Citrix, F5 và Cloudflare. Các nhà cung cấp mã
nguồn mở phổ biến bao gồm ModSecurity, Naxsi và WebKnight.
2.1.4. Các loại tường lửa ứng dụng web

Hình 2. 4 Các loại tường lửa web
Network-based WAFs (WAF dựa trên mạng) thường dựa trên phần cứng và
có thể giảm độ trễ vì chúng được cài đặt cục bộ tại cơ sở thông qua một thiết bị
chuyên dụng, càng gần ứng dụng càng tốt. Hầu hết các nhà cung cấp WAF dựa trên
mạng lớn đều cho phép sao chép các quy tắc và cài đặt trên nhiều thiết bị, do đó có

thể triển khai, cấu hình và quản lý quy mô lớn. Hạn chế lớn nhất đối với loại sản
phẩm WAF này là chi phí – có chi phí vốn trả trước, cũng như chi phí vận hành liên
tục để bảo trì.

19


Host-based WAFs (WAF dựa trên máy chủ) có thể được tích hợp hồn tồn
vào mã ứng dụng. Các lợi ích của việc triển khai WAF dựa trên máy chủ bao gồm
chi phí thấp hơn và các tùy chọn tùy chỉnh tăng lên. WAF dựa trên máy chủ có thể
là một thách thức để quản lý vì chúng yêu cầu thư viện ứng dụng và phụ thuộc vào
tài nguyên máy chủ cục bộ để chạy hiệu quả. Do đó, có thể cần thêm nguồn nhân
viên, bao gồm cả nguồn lực của lập trình viên, nhà phân tích hệ thống và
DevOps/DevSecOps, có thể được yêu cầu.
Cloud-hosted WAFs (WAF được lưu trữ trên đám mây) cung cấp giải pháp
chi phí thấp cho các tổ chức muốn có sản phẩm chìa khóa trao tay yêu cầu tài
nguyên tối thiểu để triển khai và quản lý. Cloud WAF dễ triển khai, có sẵn trên cơ
sở đăng ký và thường chỉ yêu cầu hệ thống tên miền (DNS) đơn giản hoặc thay đổi
proxy để chuyển hướng lưu lượng ứng dụng. Mặc dù có thể khó khăn khi đặt trách
nhiệm lọc lưu lượng ứng dụng web của tổ chức với nhà cung cấp bên thứ ba, nhưng
chiến lược này cho phép các ứng dụng được bảo vệ trên nhiều vị trí lưu trữ và sử
dụng các chính sách tương tự để bảo vệ khỏi các cuộc tấn cơng lớp ứng dụng. Ngồi
ra, các bên thứ ba này có thơng tin tình báo về mối đe dọa mới nhất và có thể giúp
xác định và chặn các mối đe dọa bảo mật ứng dụng mới nhất.
2.2. ModSecurity
2.2.1. Khái niệm về ModSecurity

20



a. Khái niệm

Hình 2. 5 ModSecurity

ModSecurity là một module mở rộng cho các chương trình web server như
Apache, Nginx, IIS và hoạt động như một firewall tại lớp ứng dụng web. Cùng với
sự gia tăng về phương pháp tấn công web thì modsecurity cũng đã cập nhật những
rule và đưa ra nhiều cách phòng chống trong mã nguồn của chương trình.
b. Một số tính năng của Modsecurity
Một số tính chất mà modsecurity có thể dùng làm Web Application Firewall:
Tính linh động (Flexibility)
Việc phân tích luồng HTTP theo một tiêu chí nhất định trong thực tế thường
gặp vấn đề là làm sao để có thể so trùng mẫu mà ta muốn. Ngoài ra, do nhu cầu của
từng hệ thống web là khác nhau dẫn đến việc phân tích trên từng loại ứng dụng
cũng khác nhau. Mod_security đã kết hợp với OWASP phát triển các tập rule mẫu
(Core Rule Set) nhằm tạo ra tính linh động cho từng mơ hình web khác nhau, hỗ trợ
người quản trị phân tích theo nhu cầu thực tế của hệ thống đang quản trị.
Tính thụ động (Passivity)

21


ModSecurity sẽ không thực thi các tác vụ nếu như người quản trị viên không
chỉ định công việc cụ thể cho chương trình, việc này là khá quan trọng trong một
ứng dụng có nhiệm vụ phân tích nguy cơ như ModSecurity. Mọi cảnh báo sẽ được
thực hiện thông qua cơ chế phân tích và quyết định tương tác với hệ thống sẽ do
người quản trị thực hiện.
Hiện tại ModSecurity sử dụng giấy phép GPL, hồn tồn miễn phí.
2.2.2. Các khả năng của ModSecurity


Hình 2. 6 Mơ hình tổng quan của ModSecurity

-

Request filtering: Tất cả các request gửi đến web server đều được phân tích
và cản lọc (filter) trước khi chúng được đưa đến các modules khác để xử lý.

-

Understanding of the HTTP protocol: ModSecurity là một tường lửa ứng
dụng nên nó có khả năng hiểu được giao thức HTTP. ModSecurity có khả
năng cản lọc dựa trên các thơng tin ở HTTP Header hay có thể xem xét đến
từng thơng số hay cookies của các request.

-

POST payload analysis: Ngoài việc cản lọc dựa trên HTTP Header,
ModSecurity có thể dựa trên nội dung (payload) của POST requests.

-

Audit logging: Mọi requests đều có thể được ghi lại (bao gồm cả POST) để
người quản trị có thể theo dõi nếu cần.

-

HTTPS filtering: ModSecurity có thể phân tích HTTPS.

22



-

Compressed content filtering: ModSecurity sẽ phân tích sau khi đã giải nén
các các dữ liệu được yêu cầu.

2.2.3. Quy trình xử lý của ModSecurity

Hình 2. 7 Quá trình xử lý các request của Nginx và ModSecurity

Modsecurity cho phép chúng ta đặt rule tại một trong năm thời điểm trong chu
kỳ xử lý của Nginx như sau:
Phase Request Header: Rule được đặt tại đây sẽ được thực hiện ngay say khi
Nginx đọc request header, lúc này phần request body vẫn chưa được đọc.
Phase Request Body: Đây là thời điểm các thông tin chức năng chung đưa vào
vào được phân tích và xem xét, các rule mang tính ứng dụng hướng kết nối

23


(application-oriented) thường được đặt ở đây. Ở thời điểm này, Server đã nhận đủ
các thông số của request và phần request body đã được đọc. Modsecurity hỗ trợ ba
loại mã hoá request body
+ application/x-www-form-urlencoded: Dùng để truyền form dữ liệu
+ multipart/form-data: Dùng để truyền file
+ text/xml: Dùng để phân tích dữ liệu XML
Phase Response Header: Đây là thời điểm ngay sau khi phần response header
được gửi trả về cho client. Chúng ta đặt rule ở đây nếu muốn giám sát quá trình sau
khi phần response được gửi đi.
Phase Response Body: Đây là thời điểm chúng ta muốn kiểm tra những dữ liệu

HTML gửi trả về.
Phase logging: Là thời điểm các hoạt động log được thực hiện, các rules đặt ở
đây sẽ định rõ việc log sẽ như thế nào, nó sẽ kiểm tra các error message log của
Nginx. Đây cũng là thời điểm cuối cùng để chúng ta chặn các kết nối không mong
muốn, kiểm tra các response header mà chúng ta không thể kiểm tra ở phase 3 và
phase 4.
2.2.4. Khuyến cáo khi triển khai thực tế
Nhằm bảo đảm tính tính linh động trong việc phát hiện cũng như bảo vệ theo
thời gian thực, ModSecurity cần sử dụng một lượng tài nguyên CPU và RAM để
bảo đảm hoạt động đúng mục đích khi triển khai. Việc sử dụng tài nguyên phụ
thuộc nhiều vào phần cấu hình và cách triển khai trên từng hệ thống khác nhau.
Dưới dây là một số điểm chính cần chú ý:
ModSecurity sẽ phân tích các cú pháp mà Nginx sẽ thực hiện, vì thế hệ thống
của bạn sẽ có thể tăng tiêu thụ tài nguyên CPU để thực hiện tác vụ.
Việc phân tích linh động trong một số trường hợp sẽ cần một lượng tài nguyên
khá lớn để phân tích. Ví dụ: XML, JSON, AJAX …
Việc quản lý dữ liệu upload từ phía client yêu cầu thêm tài nguyên I/O (như
HDD), trong một số trường hợp sẽ gây ra tình trạng trùng lặp dữ liệu trên hệ thống.

24


Dữ liệu trong request và resopone được lưu trữ đệm trong RAM để thực hiện
các tác vụ chặn theo thời gian thực.
Mỗi rule trong phần cấu hình sẽ sử dụng CPU (cho phần operartor) và RAM
(dùng để chuyển đổi dữ liệu đầu vào trước khi qua phiên phân tích)
Việc sử dụng các Regular expression sẽ tốn các tài nguyên nhiều hơn.
Các hoạt động I/O sẽ tăng cao cho việc ghi nhật ký trong quá trình hoạt động
của ModSecurity (full transaction loging).
Khi triển khai thực tế ModSecurity, ta cần chú ý đến những điều trên để có thể

xác định được tài nguyên cần thiết để ModSecurity hoạt động ổn định. Trong trường
hợp chúng ta không thể thay đổi tài nguyên phần cứng, thì chúng ta nên thường
xuyên theo dõi trạng thái hoạt động của hệ thống, rút ra những kinh nghiệm nhằm
điều chỉnh hoặc giảm bớt chức năng, ruleset phù hợp mà vẫn đảm bảo an toàn cho
việc hoạt động. Nếu như tổ chức mà bạn đang quản lý sử dụng một số cơng nghệ ảo
hóa thì việc điều chỉnh tài nguyên sẽ thuận tiện hơn để ModSecurity hoạt động.
Một cách khác để triển khai ModSecurity trên thực thế là dùng như một reverse
proxy, trong trường hợp này tài nguyên cho ModSecurity sẽ ổn định hơn so với hệ
thống tích hợp (CPU, RAM, I/O hoạt động ở trạng thái cao).
2.3. Giới thiệu về Nginx
2.3.1. Khái niệm
NGINX là một máy chủ mã nguồn mở nổi tiếng. Khi mới ra đời, NGINX được
dùng để phục vụ web HTTP. Tuy nhiên, hiện nay nó được dùng để làm Reverse
Proxy, Email Proxy (IMAP, POP3, SMTP) và HTTP Load Balancer. NGINX được
Sysoev cho ra đời chính thức vào tháng 10/2004. NGINX sử dụng kiến trúc sự kiện
khơng đồng bộ. Tính năng này giúp NGINX tăng tốc độ, mở rộng tính năng và đáng
tin cậy hơn. Rất nhiều website có traffic lớn đã sử dụng NGINX cũng vì khả năng
mạnh mẽ và xử lý hàng nghìn kết nối cùng lúc của nó.

25


Hình 2. 8 NGINX là phần mềm server mã nguồn mở nổi tiếng

2.3.2. Nguyên lý hoạt động

Hình 2. 9 NGINX hoạt động theo kiến trúc Asynchronous và Event Driven

26



×