1. Trang chủ
  2. » Công Nghệ Thông Tin

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

49 383 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 49
Dung lượng 1,11 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• 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 t

Trang 1

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

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC:

PGS TS Hà Quốc Trung

Hà Nội – Năm 2015

Trang 2

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

Trang 3

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 hoà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 đã luôn 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

Trang 4

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 TOÀ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

Trang 5

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

Trang 6

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

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

Trang 7

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 toà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

Trang 8

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

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

Trang 9

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:

• Yê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

Trang 10

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

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

Trang 11

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 quá 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

Trang 12

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

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

Trang 13

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

Trang 14

đế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

Trang 15

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 hoàn toà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

Trang 16

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 khoá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 (http://zone-h.org), 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 toà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

Trang 17

đơ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ử

• 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

Trang 18

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 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

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

Trang 19

• 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

1.5.3 Giới thiệu về Rules trong ModSecurity

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

Trang 20

• 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

Trang 21

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

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:

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:

Trang 22

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:

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

Trang 23

CHƯƠNG 2: GIẢI PHÁP ĐỀ XUẤT ĐỂ ĐẢM BẢO AN TOÀ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:

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

Trang 24

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 Ngoà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

Ngày đăng: 26/07/2017, 20:57

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w