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

Nghiên cứu các giải pháp multihosting an toàn và bảo mật cho các dịch vụ hỗ trợ virtual host

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 (1.24 MB, 49 trang )

..

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------

NGUYỄN THANH TÙNG

NGHIÊN CỨU CÁC GIẢI PHÁP MULTIHOSTING CHO
CÁC DỊCH VỤ HỖ TRỢ VIRTUAL HOST AN TOÀN
VÀ BẢO MẬT

LUẬN VĂN THẠC SĨ KỸ THUẬT
CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS. Hà Quốc Trung

Hà Nội – Năm 2015


LỜI CAM ĐOAN
Tơi xin cam đoan đây là cơng trình nghiên cứu của riêng tô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.
Tơi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện luận văn này đã
được cảm ơn và các thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn gốc.
Tác giả luận văn xin chịu trách nhiệm về nghiên cứu của mình.
Học viên thực hiện luận văn
Nguyễn Thanh Tùng



LỜI CẢM ƠN
Trước tiên, tôi xin được gửi lời cảm ơn đến tất cả quý thầy cô đã giảng dạy
trong chương trình Cao học Cơng nghệ thơng tin khóa CH2013B – Viện Công nghệ
thông tin và Truyền thông – Đại học Bách khoa Hà Nội. Các thầy cô đã truyền đạt
cho tơi những kiến thức hữu ích làm cơ sở để tơi hồn thành luận văn này.
Tơi xin chân thành cảm ơn PGS.TS. Hà Quốc Trung đã tận tình hướng dẫn
cho tôi trong thời gian thực hiện luận văn. Những gì Thầy hướng dẫn, chỉ bảo đã
cho tơi thêm nhiều kiến thức trong thời gian thực hiện luận văn.
Sau cùng tôi xin gửi lời biết ơn sâu sắc đến gia đình đã ln tạo điều kiện tốt
nhất cho tơi trong suốt quá trình học cũng như thực hiện luận văn.
Do thời gian có hạn và kinh nghiệm nghiên cứu chưa nhiều nên luận văn
khơng tránh khỏi những thiếu sót, rất mong nhận được ý kiến đóng góp của các
thầy/cơ và các anh chị học viên.
Học viên thực hiện luận văn
Nguyễn Thanh Tùng


MỤC LỤC
LỜI CAM ĐOAN
LỜI CẢM ƠN
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT.......................................... 3
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ .................................................................. 4
CHƯƠNG 1: CÁC MƠ HÌNH WEB HOSTING ................................................... 5
1.1

Định nghĩa ..................................................................................................... 5

1.2


Các dịch vụ web hosting................................................................................ 6

1.3

Các mô hình web hosting .............................................................................. 7

1.3.1

Một máy chủ với các máy ảo .................................................................. 7

1.3.2

Một máy chủ, máy ảo và phần mềm quản lý .......................................... 7

1.3.3

Nhiều máy chủ và phần mềm quản lý máy ảo ........................................ 9

1.3.4

Mơ hình sử dụng proxy ngược................................................................ 9

1.3.5

Mơ hình lai ............................................................................................ 10

1.4

Các vấn đề bảo mật của web hosting........................................................... 12


1.5

Sử dụng ModSecurity đảm bảo an toàn bảo mật cho web hosting ............. 14

1.5.1

Giới thiệu về ModSecurity.................................................................... 14

1.5.2

Các khả năng của ModSecurity ............................................................ 14

1.5.3

Giới thiệu về Rules trong ModSecurity ................................................ 16

CHƯƠNG 2: GIẢI PHÁP ĐỀ XUẤT ĐỂ ĐẢM BẢO AN TỒN BẢO MẬT
CHO WEB HOSTING ............................................................................................ 20
2.1

Mơ hình đề xuất ........................................................................................... 20

2.2

Các thành phần của mơ hình ....................................................................... 20

2.3

Hoạt động của mơ hình ................................................................................ 23


2.4

Xây dựng hệ thống phần mềm..................................................................... 26

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG THỬ NGHIỆM .................................. 31
3.1 Môi trường thử nghiệm .................................................................................... 31
3.2

Kịch bản thử nghiệm ................................................................................... 31

3.2.1 Web Application Firewall ......................................................................... 31

1


3.2.2

Reverse Proxy ....................................................................................... 31

3.2.3

Software Management .......................................................................... 32

3.3

Kết quả thử nghiệm ..................................................................................... 32

3.3.1

Web Application Firewall..................................................................... 32


3.3.2

Reverse Proxy ....................................................................................... 33

3.3.3

Software Management .......................................................................... 33

KẾT LUẬN .............................................................................................................. 34
4.1

Những kết quả đạt được............................................................................... 34

4.2

Định hướng phát triển .................................................................................. 34

TÀI LIỆU THAM KHẢO ...................................................................................... 35
PHỤ LỤC ................................................................................................................. 36

2


DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Từ viết tắt

Ý nghĩa

WAF


Web Application Firewall – tường lửa ứng dụng web

XSS

Cross Site Scripting – kiểu tấn công chèn những script độc hại

SQLI

SQL Injection – kiểu tấn công lợi dụng lỗ hổng SQL

CPANEL

Control Panel – phần mềm quản lý web hosting

3


DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1. Mơ hình với một máy chủ duy nhất ............................................................... 7
Hình 2. Mơ hình một máy chủ, máy ảo và phần mềm quản lý ................................... 8
Hình 3. Mơ hình các máy chủ, các máy ảo và phần mềm quản lý ............................. 9
Hình 4. Mơ hình sử dụng proxy ngược ..................................................................... 10
Hình 5. Mơ hình lai ................................................................................................... 11
Hình 6. Quá trình xử lý các request của Apache và ModSecurity ............................ 15
Hình 7. Các biểu thức chính quy thường được sử dụng ........................................... 18
Hình 8. Siêu ký tự thường được sử dụng trong biểu thức chính quy ........................ 18
Hình 9. Mơ hình đề xuất đảm bảo an tồn bảo mật cho web hosting ....................... 20
Hình 10. Mơ hình của một hệ thống Tường lửa ứng dụng Web (WAF) .................. 21
Hình 11. Mơ hình Proxy ngược ................................................................................ 22

Hình 12. Hoạt động của Web Application Firewall.................................................. 23
Hình 13. Hoạt động của Reverse Proxy .................................................................... 24
Hình 14. Template virtual host.................................................................................. 26
Hình 15. Script tạo virtual host ................................................................................. 27
Hình 16. Bảng chứa thơng tin domain ...................................................................... 28
Hình 17. Bảng tạm kiểm tra xử lý domain ................................................................ 28
Hình 18. Kết quả thử nghiệm Web Application Firewall ......................................... 32
Hình 19. Kết quả thử nghiệm Reverse Proxy ........................................................... 33
Hình 20. Kết quả thử nghiệm Software Management .............................................. 33

4


CHƯƠNG 1: CÁC MƠ HÌNH WEB HOSTING
1.1 Định nghĩa
Web hosting là một dịch vụ cung cấp khả năng lưu trữ, ứng dụng cung
cấp chức năng tải lên/tải xuống giúp người dùng có thể cập nhật các ứng dụng
và các trang web của họ. Các ứng dụng phổ biến nhất như: PHP, .NET, Python,
Cold Fusion, JSP, …LAMP (Linux, Apache, MySQL and PHP) được sử dụng
phổ biến cho các trang web động.
Nhà cung cấp dịch vụ multiple hosting sẽ đảm bảo việc truy cập vào
website là an toàn và bảo mật. Khả năng lưu trữ, băng thông và khả năng xử lý
được giới hạn để giúp nhà cung cấp hosting có thể cung cấp dịch vụ đến cho các
khách hàng khác. Trong thực tế, các tài nguyên quan trọng nhất thường được
giới hạn là:
• Tài ngun phần cứng: băng thơng, dung lượng ổ cứng lưu trữ, khả
năng xử lý (Cpu và Ram).
• Tài nguyên mạng: hạn chế số lượng địa chỉ IP, hạn chế số lượng tên
miền.
Mơ hình đơn giản nhất là sử dụng kỹ thuật Virtual Host của phần mềm

máy chủ web mà cho phép nhiều tên miền cùng sử dụng chung một địa chỉ IP và
nằm cùng trên một máy. Mơ hình này sẽ gây ra một số khó khăn trong việc quản
lý tài khoản, quản lý phân quyền và quản lý bảo mật của hệ thống. Một số thành
phần và kiến trúc sẽ được thêm vào mơ hình này để giải quyết các vấn đề vừa
nêu trên.
Có năm mơ hình được đề xuất như sau:
• Một máy chủ với các virtual host.
• Một máy chủ với các virtual host và phần mềm quản lý.
• Nhiều máy chủ với các virtual host và phần mềm quản lý.
• Nhiều máy chủ và sử dụng proxy ngược.
• Mơ hình lai.

5


1.2 Các dịch vụ web hosting
Dựa trên việc khảo sát các nhà cung cấp web hosting nổi tiếng trên thế
giới, có một số tính năng sẽ được cung cấp như sau:
• u cầu về mặt định lượng:
o Băng thơng: lưu lượng mạng mà người dùng yêu cầu cho các
dịch vụ của họ.
o Dung lượng ổ cứng: dung lượng ổ cứng mà người dùng yêu
cầu cho các dịch vụ của họ.
o Hệ điều hành và phần mềm: hệ điều hành (Windows, Linux,
like-Unix,…) và các phần mềm mà người dùng cần cài đặt để
cung cấp được các dịch vụ mong muốn.
• Yêu cầu về mặt chức năng:
o Cập nhật code và dữ liệu: nhà cung cấp dịch vụ phải đảm bảo
người dùng có thế đẩy code và dữ liệu lên, thậm chí người truy
cập cũng có thể đẩy dữ liệu lên và nhà cung cấp dịch vụ sẽ

quản lý quyền truy cập và các quyền tương ứng.
o Đảm bảo dữ liệu an toàn và bảo mật: nhà cung cấp dịch vụ phải
đảm bảo về sự an toàn dữ liệu của người dùng. Hơn nữa, nhà
cung cấp dịch vụ cần phải cung cấp các kỹ thuật sao lưu dự
phòng cho phép người dùng có thể sao lưu dữ liệu ở các nơi
khác nhau.
o Quản trị: đảm bảo vai trò của người quản trị: quản lý tên miền;
theo dõi các tên miền đang được sử dụng; chặn các tên miền
khi chúng bị nhiễm mã độc hoặc đang có dấu hiện tấn cơng các
tên miền khác.

6


1.3 Các mơ hình web hosting
1.3.1 Một máy chủ với các máy ảo
Virtual host ánh xạ từ một tên miền đến các thư mục tương ứng (chứa
code của web), khi người dùng truy cập tên miền, virtual host sẽ phân tích tên
miền và truy cập đến thư mục tương ứng.

Hình 1. Mơ hình với một máy chủ duy nhất
Virtual host đảm bảo người dùng có thể tải lên tập tin và thư mục theo ba
cách sau:
• Truy cập trực tiếp đến thiết bị máy chủ.
• FTP
• WWW
Các cơng cụ quản trị phức tạp cần được tự động hóa và phải dễ dàng quản
lý cũng như sử dụng dẫn đến nhu cầu cần có phần mềm quản lý mà sẽ được giới
thiệu trong mơ hình tiếp theo.
1.3.2 Một máy chủ, máy ảo và phần mềm quản lý

Mơ hình này sử dụng phần mềm quản lý cho phép chúng ta quản lý tất cả
các máy ảo trên máy chủ vật lý và các tên miền.

7


Hình 2. Mơ hình một máy chủ, máy ảo và phần mềm quản lý
Phần mềm này sử dụng một hệ cơ sở dữ liệu để quản lý toàn bộ user
MySQL, tên miền và tài khoản FTP. Giờ đây các công việc quản trị rời rạc có
trong mơ hình đầu tiên sẽ được thực hiện thông qua phần mềm quản lý này.
Như vậy q trình tự động hóa đã được giải quyết (nhờ vào việc sử dụng
phần mềm quản lý), tuy nhiên nó yêu cầu một cơ sở dữ liệu để quản lý tên miền,
cấu hình, do đó cơ chế đồng bộ hóa sẽ giúp chúng ta có thể quản lý nhiều máy
chủ, đây chính là mơ hình sẽ được giới thiệu tiếp theo.

8


1.3.3 Nhiều máy chủ và phần mềm quản lý máy ảo

Hình 3. Mơ hình các máy chủ, các máy ảo và phần mềm quản lý
Việc quản lý các máy ảo trên các máy chủ dẫn đến vấn đề cần quản lý tập
trung đã được giải quyết với mơ hình này. Với mơ hình này lại xuất hiện một
vấn đề liên quan đến bảo mật, đó là các máy ảo có thể bị tấn cơng trực tiếp khi
khơng có bất kỳ thiết bị bảo vệ nào đứng trước, chính vì thế với mơ hình tiếp
theo sẽ sử dụng proxy ngược để có thể giải quyết vấn đề này.
1.3.4

Mơ hình sử dụng proxy ngược
Reverse Proxy thường được xây dựng trên một máy chủ Proxy để thực


hiện nhiệm vụ public các dịch vụ bên trong ra ngoài Internet, bao gồm các
Website. Reverse Proxy có thể giúp public dịch vụ tới người dùng với một địa
chỉ URL đơn giản, dễ nhớ và sẽ chuyển hướng yêu cầu từ client đến đúng server
với dịch vụ tương ứng với một địa chỉ URL đầy đủ thông tin (dài, bao gồm
thơng tin IP, port,..). Đứng trên góc độ bảo mật thì như vậy thơng tin máy chủ
public dịch vụ thật sẽ được giấu đi, hacker không thể dễ dàng có được thơng tin
thực về server (IP, port, ứng dụng đang chạy,..) để tấn công

9


Hình 4. Mơ hình sử dụng proxy ngược
Mỗi máy chủ web sẽ nằm trên một máy chủ riêng biệt và việc ánh xạ giữa
tên miền và máy chủ web sẽ được quản lý bởi máy chủ proxy. Với mơ hình này
thì chỉ có máy chủ proxy là được kết nối đến Internet, cịn các máy chủ web thì
khơng kết nối trực tiếp đến Internet, mọi truy vấn đến máy chủ web đều phải đi
qua máy chủ proxy.
Tuy nhiên mơ hình này có một số nhược điểm như mỗi tên miền cần
được ánh xạ đến một máy ảo và việc tất cả các kết nối đến và ra từ các máy chủ
web đều phải đi qua máy chủ proxy sẽ dễ dẫn đến tình trạng thắt cổ chai khiến
hệ thống bị chậm hoặc dừng hẳn hoạt động.
1.3.5 Mơ hình lai
Trong khi mơ hình 3.3 có nhược điểm khi gặp phải các vấn liên quan đến
bảo mật, cịn mơ hình 3.4 sử dụng proxy ngược sẽ giúp bảo mật hơn tuy nhiên
nó lại khá giống với mơ hình một máy chủ với các máy ảo khi khơng sử dụng
phần mềm quản lý.
Chính vì thế mà mơ hình trong phần trình bày được đề xuất bằng cách
tích hợp proxy ngược vào mơ hình nhiều máy chủ và có sử dụng phần mềm
quản lý. Chúng ta có thể thấy với mơ hình này thì không chỉ vấn đề liên quan


10


đến bảo mật được đảm bảo mà vấn đề liên quan đến quản lý cũng được giải
quyết.

Hình 5. Mơ hình lai
Trong mơ hình này, máy chủ master sẽ được sử dụng để quản lý tất cả
các tên miền. Máy chủ proxy chịu trách nhiệm chuyển hướng truy vấn HTTP
được chứa trong URL đến đúng máy chủ đích bằng cách sử dụng phần tên miền
có trong URL đó. Điểm khác biệt giữa mơ hình này với mơ hình sử dụng máy
chủ proxy trong mơ hình trước đó là nhiều tên miền có thể được ánh xạ đến một
địa chỉ IP riêng duy nhất. Ở phía máy chủ proxy, kỹ thuật máy ảo được sử dụng
để ánh xạ các tên miền này tới các thư mục tương ứng. Cơ sở dữ liệu hay các
thư mục chứa mã nguồn web sẽ được quản lý bởi phần mềm quản lý.
Vậy có một câu hỏi được đặt ra là làm thế nào người sở hữu tên miền có
thể truy cập phần mềm quản lý? Có hai lựa chọn được đưa ra: chỉ truy cập từ
mạng nội bộ hoặc truy cập qua proxy, việc này sẽ cịn phụ thuộc vào chính sách
bảo mật của hệ thống.

11


Trong năm mơ hình đã trình bày ở trên chúng ta có thể dễ dàng nhận thấy
các mơ hình 3.1, 3.2 và 3.3 được sử dụng rộng rãi nhất do việc triển khai cài đặt
là khơng gặp nhiều khó khăn, tuy nhiên các mơ hình này lại gặp phải vấn đề lớn
về bảo mật, điều mà các mơ hình 3.4 và 3.5 đã giải quyết được phần nào thông
qua việc sử dụng máy chủ proxy ngược. Tuy nhiên việc sử dụng thêm máy chủ
proxy cũng chưa thể giúp giải quyết hồn tồn vấn đề bảo mật, phần tiếp theo sẽ

trình bày việc sử dụng ModSecurity để chống lại một số kiểu tấn công phổ biến
cho máy chủ web Apache, phần mềm máy chủ web phổ biến nhất trên thế giới
hiện nay.
1.4 Các vấn đề bảo mật của web hosting
Mạng Internet cùng với những ứng dụng của nó được coi là một trong
những phát minh vĩ đại của văn minh nhân loại. Với sự kết nối rộng lớn của
Internet, website xuất hiện và ngay lập tức nổi bật lên như một kênh thơng tin
hữu dụng trong mọi hoạt động. Có thể dễ dàng nhận thấy sự hiện diện của
website trong hầu hết các lĩnh vực: các công ty giới thiệu, quảng cáo và ra mắt
các sản phẩm dịch vụ của mình trên website; các tổ chức y tế sử dụng website để
tư vấn và mang thông tin sức khỏe đến mọi người; các trường học tiến hành
tuyển sinh, thậm chí đào tạo ngay trên website…Các cơ quan chính phủ cũng sử
dụng website như một kênh truyền thông nhằm tuyên truyền những chủ trương,
quy định mới hay tiếp xúc với người dân. Đặc biệt trong những năm gần đây,
trào lưu mạng xã hội đã đưa những Facebook, Twitter hay Linkedin trở thành
một phần không thể thiếu trong đời sống của nhiều người. Những điều tuyệt vời
mà web mang lại cho xã hội là không thể phủ nhận. Tuy nhiên, mặt trái của
những lợi ích đó là những hậu quả vơ cùng nghiêm trọng mỗi khi website mắc
các lỗ hổng an ninh. Những lỗ hổng có thể bị hacker lợi dụng để gây hại tới
chính tài nguyên của website hoặc tới những người truy cập, sử dụng nó. Ngày
nay, khi mà các dịch vụ như Internet Banking, ví điện tử hay giao dịch chứng
khoán trực tuyến đang phát triển rất nhanh theo xu thế chung của thương mại
điện tử thì tổn thất về tiền bạc sẽ chẳng thể đong đếm khi những hệ thống

12


website này bị tấn công. Không chỉ gây ra những tổn thất về kinh tế, website là
bộ mặt của các tổ chức, cá nhân, chính vì vậy, sẽ là một tổn thất cực kỳ lớn về
uy tín mỗi khi những website này bị tấn công. Gần đây, sự việc báo điện tử

Vietnamnet bị tấn công đã gây xôn xao dư luận và để lại những hậu quả vô cùng
nghiêm trọng cho đơn vị này. Hàng tháng có rất nhiều các website của Việt Nam
bị tấn công, chiếm quyền điều khiển. Đáng chú ý trong số này có khơng ít các
website của các ngân hàng, cơng ty chứng khốn, các tổ chức chính phủ và giáo
dục cũng mắc những lỗ hổng rất nghiêm trọng.
Theo một số liệu khác của tổ chức Zone-H (), hàng năm
ghi nhận có hàng triệu website bị deface (một hình thức tấn cơng thay đổi nội
dung trang chủ). Con số này trên thực tế còn lớn hơn rất nhiều và đang không
ngừng tăng lên. Điều này cho thấy tình trạng an ninh của các website là rất đáng
báo động.
Cùng sự phát triển của công nghệ thông tin, các phần mềm máy tính cũng
càng ngày càng trở lên phức tạp hơn. Số lượng các dòng mã cũng càng ngày
càng nhiều hơn. Được viết nên bởi chính con người nên việc tồn tại những lỗi
lập trình trong các dịng mã đó là điều khó tránh khỏi. Khơng lập trình viên nào
có thể khẳng định chắc chắn những dịng mã được viết ra là an toàn tuyệt đối.
Những lỗi lập trình đó chính là các lỗ hổng an ninh của phần mềm. Những lỗ
hổng này được các hacker tấn công và khai thác, từ đó có thể gây ra các tổn hại
cho hệ thống.
Có rất nhiều loại lỗ hổng an ninh mà một website có thể mắc phải, tương
ứng với nó là các kiểu tấn cơng khác nhau. Tuy nhiên, hiện nay đang tồn tại phổ
biến các loại lỗ hổng sau: HTTP Fingerprinting, Cross-site scripting (XSS),
Directory Traversal, SQL Injection, Brute Force,…
Lỗ hổng an ninh website xuất phát ngay từ khâu lập trình, khi mà hầu hết
các lập trình viên chỉ quan tâm chương trình của mình có chạy đúng hay khơng
chứ chưa thực sự quan tâm tới việc chương trình chạy có an tồn khơng. Các
khâu vận hành, duy trì và quản trị website cũng thường được thực hiện bởi các

13



đơn vị ít có kinh nghiệm về an ninh mạng. Chính vì thế, việc hiểu sâu xa về các
lỗ hổng an ninh website là rất cần thiết.
Đứng dưới góc độ là một người quản trị hệ thống, trong phạm vi của luận
văn này em xin đề xuất, phân tích và trình bày về việc sử dụng Web Application
Firewall để chống lại một số kiểu tấn công phổ biến và nguy hiểm nhất hiện nay,
mà một trong những đại diện tiêu biểu là phần mềm mã nguồn mở ModSecurity.
Trong phần tiếp theo em sẽ trình bày tổng quan về ModSecurity.
1.5 Sử dụng ModSecurity đảm bảo an toàn bảo mật cho web hosting
1.5.1 Giới thiệu về ModSecurity
ModSecurity là một công cụ giúp bạn bảo mật các ứng dụng web của
mình. ModSecurity thường được gọi là một tường lửa ứng dụng web (web
application firewall) hay một công cụ phát hiện thâm nhập HTTP dựa trên
những gì mà ModSecurity có thể làm được.
ModSecurity được Ivan Ristic phát triển dành cho Web Server Apache.
Ông là một người có rất nhiều kinh nghiệm trong bảo vệ Web Server Apache.
Ơng đã có nhiều thời gian nghiên cứu Web Application Security, Web Intrusion
Detection, và Security Patterns. Trước khi chuyển sang lĩnh vực security, Ivan
đã có nhiều năm làm việc như một Developer, System Architect, Technical
Director trong việc phát triển phần mềm. Ơng là người sáng lập ra cơng ty
ThinkingStone làm các dịch vụ liên quan đến web application security. Hiện tại
ModSecurity sử dụng giấy phép GPL, hoàn toàn miễn phí.
1.5.2 Các khả năng của ModSecurity
ModSecurity có thể thực hiện các cơng việc như sau:
• Filter requests: Tất cả các request gửi đến web server đều được phân
tích và cản lọc 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.

14



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: Ngồi việc cản lọc dựa trên HTTP Header,
ModSecurity có thể dựa trên nội dung 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.
• 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.

Hình 6. Quá trình xử lý các request của Apache 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 Apache như sau:
• Phase Request Header: Rule được đặt tại đây sẽ được thực hiện ngay
say khi Apache đọc request header, lúc này phần request body vẫn
chưa được đọc.

15


• 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 (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:
o application/x-www-form-urlencoded: Dùng để truyền form dữ
liệu.

o multipart/form-data: Dùng để truyền file.
o 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 Apache. Đâ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.
Giới thiệu về Rules trong ModSecurity

1.5.3
1.5.3.1

Cú pháp SecRule
SecRule được sử dụng để tạo các rule cho ModSecurity, cú pháp cụ thể

như sau:
SecRule VARIABLES OPERATOR ACTIONS
Ba tham số của SecRule có ý nghĩa như sau:
• VARIABLES: Quy định cụ thể vị trí, mục tiêu của request hoặc
response mà SecRule sẽ kiểm tra. ARGS là một loại biến đặc biệt, nó
chỉ ra rằng tất cả các tham số của request sẽ được kiểm tra.

16



• OPERATOR: xác định phương pháp và cách thức so sánh khớp dữ
liệu để kích hoạt ACTIONS.
• ACTIONS: là một danh sách các hành động được thực hiện nếu phù
hợp (matching) rule. Nếu khơng có action nào được quy định, các
action mặc định của action SecDefaultAction sẽ được sử dụng (rule
chứa action này thường được khai báo đầu tiên).
1.5.3.1.1 Biến và bộ chọn lọc Collection
ModSecurity sử dụng hai loại biến: biến Standard, đơn giản chỉ chứa một
giá trị duy nhất, và biến Collection, có thể chứa nhiều hơn một giá trị.
Để truy cập vào một trường trong collection, chúng ta ghi tên collection,
tiếp theo là dấu hai chấm và sau đó là tên của trường hoặc tuỳ chọn mà chúng ta
muốn truy cập.
Ví dụ: SecRule REQUEST_HEADERS:Referer "bad-referer.com"
1.5.3.1.2 Chuyển đổi giữa các Collection
TX collection còn được gọi là các Transaction collection, chúng ta có thể
sử dụng nó để tạo ra các biến phục vụ riêng cho mình, chẳng hạn như:
SecRule REQUEST_URI “passwd” “pass,setvar:tx.hackscore=+5”
SecRule TX:HACKSCORE “@gt 10” deny
Trong rule đầu tiên sử dụng action setvar để thiết lập các biến collection.
Thực hiện tạo biến hackscore và tăng giá trị lên 5 nếu rule được thực thi. Đến
khi biến hackscore có giá trị bằng 10 thì thực thi rule thứ hai sẽ được thực thi
với action là deny.
1.5.3.2

Biểu thức chính quy – Regular expressions
Biểu thức chính quy là một thành phần quan trọng trong việc viết rule

ModSecurity. Biểu thức chính quy đặc biệt mạnh trong việc tìm xâu hoặc chuỗi
ký tự theo điều kiện mong muốn. Biểu thức chính quy hiện nay chúng ta có thể
thấy xuất hiện ở khắp mọi nơi và chúng thường được biết đến theo những cái tên

viết tắt như regexp hay regex.

17


Khi sử dụng biểu thức chính quy để tìm xâu hoặc chuỗi ký tự thì nó sẽ
tìm trong xâu hoặc chuỗi ký tự đích để xem nó có hợp lệ với biểu thức chính quy
được sử dụng để viết rule hay khơng. Ví dụ, rule sau sẽ tìm thấy trong dịng
protocol của bất kỳ request nào có chứa xâu HTTP , giống như HTTP/1.0 hoặc
HTTP/1.1:
Cách viết rule ModSecurity sử dụng biểu thức chính quy như trên khá
giống với cơng cụ grep trong Linux.
Một số ví dụ về biểu thức chính quy
Phần trình bày này khơng đi mơ tả chi tiết về biểu thức chính quy, nhưng
để có thể hiểu được hơn về cách thức hoạt động của biểu thức chính quy thơng
qua một số ví dụ sau. Các ví dụ sau đây bao gồm một số kiểu biểu thức chính
quy chính thường được sử dụng:

Hình 7. Các biểu thức chính quy thường được sử dụng
Biểu thức chính quy cũng có thể chứa siêu ký tự. Bảng sau đây sẽ liệt kê
các siêu ký tự thường được sử dụng trong biểu thức chính quy:

Hình 8. Siêu ký tự thường được sử dụng trong biểu thức chính quy
18


Ví dụ nếu muốn tìm favorite hoặc favourite thì chúng ta có thể sử dụng
biểu thức chính quy favou?rite. Tương tự nếu muốn previous hoặc previously
chúng ta có thể sử dụng biểu thức chính quy previous(ly)?, dấu ngoặc đơn ()
dùng để nhóm ký tự l và y, đồng nghĩ với việc khi sử dụng ? đằng trước ly có

nghĩa là ly xuất hiện một lần hoặc không xuất hiện.
1.5.3.3

Phases và sắp xếp Rules
Điều quan trọng là hiểu được việc sắp xếp rule của ModSecurity. Điều

này tránh các tình huống mà mọi phương thức, hoạt động đều bất ngờ bị chặn
hoặc cho phép khơng đúng với mục đích.
Có 5 phase theo thứ tự như sau:
• REQUEST_HEADERS (phase 1)
• REQUEST_BODY (phase 2)
• RESPONSE_HEADERS (phase 3)
• RESPONSE_BODY (phase 4)
• LOGGING (phase 5)
Một rule được thực hiện đúng từng phase theo thứ tự.Trong mỗi phase,
rule được xử lý theo thứ tự mà chúng xuất hiện trong các tập tin cấu hình. Chúng
ta có thể hiểu khi có action, ModSecurity sẽ duyệt các tập tin năm lần, một lần
cho từng phase.
Trong thời gian xử lý ModSecurity chỉ xem xét rule thuộc phase hiện
đang xử lý, và những rule được áp dụng theo thứ tự chúng xuất hiện trong các
tập tin cấu hình.
Phase LOGGING đặc biệt ở chỗ nó ln ln được thực hiện cả khi
request đã được cho phép hay từ chối trong các phase trước đó. Ngồi ra, một
khi phase LOGGING bắt đầu, chúng ta không thể thực hiện bất kỳ action ngăn
chặn nào vì response đã được gửi cho người truy cập. Vì vậy, chúng ta phải cẩn
thận không để cho bất kỳ action nào trái quy định được truyền vào rule ở phase
5.

19



CHƯƠNG 2: GIẢI PHÁP ĐỀ XUẤT ĐỂ ĐẢM BẢO AN TỒN
BẢO MẬT CHO WEB HOSTING
2.1 Mơ hình đề xuất
Dựa vào các mơ hình đã trình bày trong phần 1, em xin đề xuất sử dụng
mơ hình lai với kiến trúc như sau để đảm bảo an toàn bảo mật cho web hosting:

Hình 9. Mơ hình đề xuất đảm bảo an toàn bảo mật cho web hosting
2.2 Các thành phần của mơ hình
Mơ hình đề xuất ở trên bao gồm các thành phần như sau:
• Client: đối tượng truy cập dịch vụ từ Internet.
• Web Application Firewall - WAF: là một giải pháp nhằm bảo vệ cho
ứng dụng web tránh khỏi các lỗi bảo mật nói trên. WAF là một thiết bị
phần cứng hoặc phần mềm được cài lên máy chủ có chức năng theo
dõi các thơng tin được truyền qua giao thức http/https giữa trình duyệt
của người dùng và máy chủ web. Một WAF có khả năng thực thi các
chính sách bảo mật dựa trên các dấu hiệu tấn công, các giao thức tiêu
chuẩn và các lưu lượng truy cập ứng dụng web bất thường. Đây là
điều mà các tường lửa mạng khác không làm được.

20


Hình 10. Mơ hình của một hệ thống Tường lửa ứng dụng Web (WAF)
Máy chủ WAF cứng thường được đặt sau tường lửa mạng và
trước máy chủ ứng dụng web. Việc đặt WAF được thực hiện sao cho
tất cả các lưu lượng đến ứng dụng web cần qua WAF trước. Tuy
nhiên, đơi khi cũng có ngoại lệ khi WAF chỉ được dùng để giám sát
cổng đang mở trên máy chủ web. Ngồi ra, các chương trình WAF
cịn được cài đặt trực tiếp lên máy chủ web và thực hiện các chức

năng tương tự như các thiết bị WAF là giám sát các lưu lượng đến và
ra khỏi ứng dụng web.
Một WAF hoạt động dựa theo 2 mơ hình bảo mật: Positive và
Negative. Mơ hình Positive chỉ cho phép các lưu lượng hợp lệ được
định nghĩa sẵn đi qua và chặn tất cả các lưu lượng cịn lại. Mơ hình
Negative sẽ cho phép tất cả các lưu lượng vượt qua và chỉ chặn các
lưu lượng được mà WAF cho là nguy hại. Đơi khi cũng có các WAF

21


cung cấp cả 2 mơ hình trên, tuy nhiên thơng thường WAF chỉ cung
cấp 1 trong 2 mơ hình. Với mơ hình Postitive thì địi hỏi nhiều cấu
hình và tùy chỉnh, cịn mơ hình Negative chủ yếu dựa vào khả năng
học hỏi và phân tích hành vi của lưu lượng mạng.
WAF có thể hoạt động ở các mơ hình riêng biệt, tuy nhiên mơ
hình được sử dụng biến nhất khi triển khai chính là Reverse Proxy.
Trong mơ hình này, WAF giám sát tất cả các lưu lượng đi đến ứng
dụng web, sau đó thay vì cho các địa chỉ IP bên ngoài gửi yêu cầu
trực tiếp đến máy chủ web thì WAF đứng ra làm trung gian để gửi các
yêu cầu này đến máy chủ web thay cho trình duyệt gốc rồi gửi trả lại
kết quả cho các địa chỉ IP kia.
• Reverse Proxy: như đã biết, máy chủ proxy là một máy chủ trung gian
có nhiệm vụ chuyển tiếp các request từ các client đến các máy chủ
khác nhau qua mạng Internet. Một máy chủ proxy ngược là một kiểu
máy chủ proxy mà thường đứng đằng sau máy chủ tường lửa trong
một hệ thống mạng riêng và sẽ chuyển tiếp các request đến máy chủ
back-end thích hợp. Với việc sử dụng máy chủ proxy ngược thì các
máy chủ web sẽ khơng tiếp xúc trực tiếp với Internet, nhờ đó thơng tin
về các máy chủ web sẽ được giấu đi.


Hình 11. Mơ hình Proxy ngược
• Master: đây là máy chủ cài đặt phần mềm quản lý ở chế độ master,
thông qua master chúng ta có thể kết nối đến và quản lý tài nguyên
cấp phát cho các slave như tên miền, cơ sở dữ liệu,…

22


×