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

Tài liệu về mod security

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 (627.07 KB, 38 trang )

Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

Mục Lục
Chương 1: Hoạt động của ứng dụng web và cá kiểu tấn cơng web.........................................................3
I. HTTP và Web Server............................................................................................................................3
1.

HTTP là gì ?.................................................................................................................................3

2.

Web Server.................................................................................................................................4

Các tiến trình cơ bản.........................................................................................................................4
Internet...............................................................................................................................................5
Máy chủ và máy khách.......................................................................................................................6
Địa chỉ IP (IPaddress)..........................................................................................................................7
Các máy chủ tên miền (Name servers)..............................................................................................8
Cổng (Ports)........................................................................................................................................9
Giaothức (Protocols)........................................................................................................................11
II. Các phương pháp tấn công webiste................................................................................................13
1.

Tấn công từ chối dịch vụ.........................................................................................................13

2.

Tấn công Phishing:...................................................................................................................16


3.

Tấn công CROSS-SITE SCRIPTING............................................................................................17

4.

Tấn công SQL-injection............................................................................................................18

5.

Tấn công Session Hijacking.....................................................................................................19

6.

Tấn công Social Engineering....................................................................................................20

7.

Tấn công dựa trên các lỗ hổng của website...........................................................................21

Chương 2: Modsecurity............................................................................................................................22
I. Các khả năng của mod_security.......................................................................................................22
II. Cài đặt...............................................................................................................................................24
1.

Download mod_security:........................................................................................................24

2.

Trước khi cài đặt......................................................................................................................24


3.

Giải nén....................................................................................................................................25

4.

Biên dịch...................................................................................................................................25
1


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

5.

Tích hợp modsecurity vào apache.........................................................................................25

6.

Khởi động lại apache...............................................................................................................25

III. Cấu hình cơ bản...............................................................................................................................25
1.

File cấu hình.............................................................................................................................25

2.


Turning Rule on and of...........................................................................................................25

3.

SecDefaultAction.....................................................................................................................26

IV. Rules................................................................................................................................................26
1.

Xây dựng rules như thế nào?.................................................................................................26

2.

Cấu trúc của rules....................................................................................................................27

2.1.

Variables..............................................................................................................................28

2.2.

Collections............................................................................................................................30

2.3.

Operators.............................................................................................................................30

2.4.

Actions..................................................................................................................................31


V. Logging..............................................................................................................................................32
1.

Debug Log................................................................................................................................32

2.

Audit logging............................................................................................................................33

3.

Tuỳ biến thơng tin log.............................................................................................................34

VI. Xây dựng chính sách trên Modsecurity chống lại một số tấn công..............................................34
1.

SQL Injection............................................................................................................................34

2.

XSS Attack................................................................................................................................35

3.

Website defacement...............................................................................................................35

4.

Brute force attacks..................................................................................................................36


5.

Directory indexing...................................................................................................................36

6.

Detecting the real IP address of an attacker..........................................................................37

7.

Một số tấn công khác..............................................................................................................37

VII. Tài liệu tham khảo..........................................................................................................................39

2


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

Chương 1: Hoạt động của ứng dụng web và cá kiểu tấn cơng web

I. HTTP và Web Server
1. HTTP là gì ?
HTTP là chữ viết tắt từ HyperText Transfer Protocol (giao thức truyền tải siêu
văn bản). Nó là giao thức cơ bản mà World Wide Web sử dụng. HTTP xác định
cách các thơng điệp (các file văn bản, hình ảnh đồ hoạ, âm thanh, video, và các
file multimedia khác) được định dạng và truyền tải ra sao, và những hành động

nào mà các Web server (máy chủ Web) và các trình duyệt Web (browser) phải
làm để đáp ứng các lệnh rất đa dạng. Chẳng hạn, khi bạn gõ một địa chỉ Web
URL vào trình duyệt Web, một lệnh HTTP sẽ được gửi tới Web server để ra lệnh
và hướng dẫn nó tìm đúng trang Web được yêu cầu và kéo về mở trên trình
duyệt Web. Nói nơm na hơn, HTTP là giao thức truyền tải các file từ một Web
server vào một trình duyệt Web để người dùng có thể xem một trang Web
đang hiện diện trên Internet.HTTP là một giao thức ứng dụng của bộ giao thức
TCP/IP (các giao thức nền tảng cho Internet).
Có một tiêu chuẩn chính khác cũng điều khiển cách thức World Wide Web
làm việc là HTML (HyperText Markup Language, ngơn ngữ đánh dấu siêu văn
bản), có chức năng quản lý cách thức mà các trang Web được định dạng và
hiển thị.
người ta gọi HTTP là một giao thức “phi trạng thái” (stateless) bởi vì mỗi
lệnh đều được thực thi một cách độc lập, lệnh sau không biết bất cứ điều gì về
các lệnh đã đến trước mình. Đây chính là một hạn chế, khiếm khuyết của HTTP.
Nó là ngun nhân chính của tình trạng rất khó thực thi các trang Web có khả
năng phản ứng thơng minh đối với lệnh mà người dùng nạp vào. Và sự hạn chế
này đang được các nhà phát triển khắc phục trong các công nghệ mới như
ActiveX, Java, JavaScript và cookies.
3


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

Phiên bản mới nhất của HTTP là 1.1. So với phiên bản nguyên thủy (HTTP
1.0), phiên bản mới này truyền tải các trang Web nhanh hơn và giảm tình trạng
tắc nghẽn giao thơng Web.
2. Web Server

Các tiến trình cơ bản
Khi bạn ngồi trước máy tính và đang duyệt web trên Internet. Có một
người bạn của bạn gọi điện thoại cho bạn và nói “Tơi vừa đọc một bài viết rất
hay! Bạn hãy đánh vào địa chỉ sau và xem thử nhé, địa chỉ trang web đó là
“. Khi bạn gõ vào địa chỉ
trang web đó trên trình duyệt web và ấn Enter, và thật là kỳ diệu, trang web đó
đã hiển thị trên màn hình của bạn.
Vậy, làm thế nào mà trang web có thể hiện thị được trên màn hình của
bạn, cơ chế hoạt động của máy chủ Web như thế nào?. Chúng tôi sẽ giúp bạn
hiểu rõ hơn bằng bài viết dưới đây.
Các bước cơ bản trong tiến trình truyền tải trang web đến màn hình của
bạn được thể hiện theo mơ hình sau:

Theo mơ hình trên, trình duyệt web thực hiện một kết nối tới máy chủ
web, yêu cầu một trang web và nhận lại nó. Sau đây, là thứ tự từng bước cơ
bản xảy đến đằng sau màn hình của bạn:
Trình duyệt web tách địa chỉ website làm 3 phần:



1.

Phần giao thức: (“http”)

2.

Máy chủ tên miền: (www.howstuffworks.com)
4



Khoa ATTT – Học viện KT Mật Mã

3.


Tìm hiểu Modsecurity

Tên tệp: (“web-server.htm”)
Trình duyệt liên hệ với máy chủ tên miền để chuyển đổi tên miền

"www.howstuffworks.com" ra địa chỉ IP (Internet Protcol).


Sau đó, trình duyệt sẽ gửi tiếp một kết nối tới máy chủ có địa chỉ IP
tương ứng qua cổng 80.



Dựa trên giao thức HTTP, trình duyệt gửi yêu cầu GET đến máy chủ, yêu
cầu tệp " (Bạn chú ý,
cookies cũng sẽ được gửi kèm theo từ trình duyệt web đến máy chủ)



Tiếp đến, máy chủ sẽ gửi đoạn text dạng HTML đến trình duyệt web của
bạn. (cookies cũng được gửi kèm theo từ máy chủ tới trình duyệt web, cookies
được ghi trên đầu trang của mỗi trang web)




Trình duyệt web đọc các thẻ HTML, định dạng trang web và kết xuất ra
màn hình của bạn.
Nếu bạn chưa từng bao giờ khám phá tiến trình trên, bạn sẽ gặp phải rất
nhiều thuật ngữ mới. Để hiểu hiểu một cách chi tiết, bạn cần biết thêm về các
khái niệm như địa chỉ internet (địa chỉ IP), các cổng (ports), các giao thức
(protocol)… Đoạn viết sau sẽ giúp bạn hiểu rõ hơn.
Internet
Internet là gì? Internet là tập hợp khổng lồ của hàng triệu máy tính, được
nối với nhau trên một mạng máy tính. Mạng máy tính này cho phép tất cả các
máy tính trao đổi thơng tin cho nhau. Một máy tính đặt ở nhà có thể tham gia
vào mạng Internet thơng qua đường điện thoại, đường thuê bao số hoặc cáp
modem kết nối đến nhà cung cấp dịch vụ Internet (Internet service provider ISP). Máy tính trong các cơng ty, trường học thường có 01 card mạng (Network
interface Card - NIC) để kết nối trực tiếp vào mạng nội bộ (Local Area Network)
của công ty hoặc trường học. Mạng nội bộ của công ty, trường học sẽ được nối
tới nhà cung cấp dịch vụ Internet ISP bằng một đường điện thoại có tốc độ cao,
5


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

ví dụ như đường T1. Mỗi đường T1 có thể đạt tốc độ 1.5 triệu bit trên 1 giây,
trong khi một kết nối điện thoại thông thường chỉ đạt 30.000 đến 50.000 bít
trên giây.Những nhà cung cấp dịch vụ ISP sẽ nối tới nhà cung cấp dịch vụ
Internet lớn hơn…Đối với các đường kết nối chính trong một quốc gia hay khu
vực, nhà cung cấp dịch vụ Internet thường sử dụng sợi cáp quang. Hệ thống
đường cáp chính trên tồn thế giới được kết nối bằng các loại đường sợi cáp
quang, cáp đi ngầm dưới biển hoặc bằng hệ thống vệ tinh (satellite). Bằng cách
như vậy, thì mỗi một máy tính trên Internet đều được kết nối với nhau trên

Internet.

Máy chủ và máy khách
Nhìn chung, máy tính trên Internet có thể được chia làm loại: Máy chủ và
máy khách. Máy chủ là loại máy tính cung cấp dịch vụ (máy chủ dịch vụ web,
máy chủ dịch vụ thư điện tử) đến các máy khác. Máy khách là những máy tính
được sử dụng để kết nối tới các dịch vụ trên các máy chủ. Khi bạn kết nối tới
Yahoo! tại địa chỉ www.yahoo.com để xem trang web, trong trường hợp này,
6


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

Yahoo! đang sử dụng một máy tính, được gọi là máy chủ (cũng có thể là một
nhóm các máy chủ có cấu hình lớn) được kết nối trên Internet, nhằm cung cấp
dịch vụ cho bạn. Ngược lại, máy tính của bạn có thể khơng cung cấp dịch vụ
nào trên Internet để người khác truy cập, do đó nó chỉ được coi là máy tính sử
dụng thơng thường, hay cịn gọi là máy khách.
Một máy chủ có thể cung cấp một hay nhiều dịch vụ trên Internet. Ví dụ,
một máy chủ thì có thể có nhiều phần mềm chạy trên nó, cho phép nó hoạt
động như là máy chủ web, máy chủ email hoặc máy chủ FTP. Các máy trạm kết
nối tới máy chủ thường với “mục đĩch” cụ thể, nó hướng u cầu của mình tới
một máy chủ có ứng dụng phù hợp với “mục đích” đó, ví dụ nếu bạn đang chạy
chương trình duyệt web trên máy tính của bạn, có nghĩa máy tính của bạn đã
kết nối tới máy chủ dịch vụ web. Tương tự, chạy ứng dụng Telnet trên máy tính
của bạn sẽ kết nối tới máy chủ dịch vụ Telnet, chạy ứng dụng email sẽ kết nối
tới máy chủ dịch vụ email…
Địa chỉ IP (IPaddress)

Để tất cả máy tính trên Internet có thể liên hệ với nhau, mỗi máy tính
được cung cấp một địa chỉ duy nhất trên Internet, gọi là IP. Địa chỉ IP là viết tắt
của từ Internet Protocol. IP là một số 32 bít và được thể hiện dưới dạng con số
thập phân gồm có 4 “octet”, ví dụ 216.27.61.137. 4 con số trong một địa chỉ IP
được gọi là các “octet”, vì mỗi số có thể có giá trị từ 0 đến 255, có nghĩa mỗi
“octet” có đến 28 giá trị khác nhau.
Địa chỉ IP là duy nhất đối với mỗi máy tính khi tham gia Internet .Đối với
máy chủ, địa chỉ IP là cố định. Một máy tính, khi được kết nối Internet bằng
đường line điện thoại thơng qua modem, thì được cung cấp địa chỉ IP bởi nhà
cung cấp dịch vụ Internet (ISP). Địa chỉ IP này là duy nhất cho mỗi lần kết nối,
cũng đồng nghĩa nó sẽ thay đổi địa chỉ IP khác khi kết nối lần tiếp theo. Theo
7


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

cách này, thay vi phải cung cấp địa chỉ IP cho từng khách hàng truy cập, nhà
cung cấp dịch vụ Internet ISP chỉ cần một địa chỉ IP cho một modem.
Nếu bạn làm việc trên hệ điều hành windows, bạn có thể xem rất nhiều
thông tin liên quan Internet được ghi vào cấu hình máy tính của bạn, bao gồm
địa chỉ IP hiện tại, tên máy.. bằng cách sử dụng lệnh WINIPCFG.EXE
(IPCONFIG.EXE trên Windows 2000/XP). Trên máy Unix,để hiển thị địa chỉ IP,
tên của máy tính, bạn chỉ gõ dịng lệnh nslookup tại dấu nhắc.
Khi máy tính được kết nối Internet, thông số địa chỉ IP là quan trọng nhất giúp
bạn kết nối tới máy chủ. Ví dụ, trên trình duyệt web, bạn có thể gõ địa chỉ kết
nối http://209.116.69.66, lúc này, bạn đang kết nối kết máy chủ có địa chỉ IP là
209.116.69.66 và máy chủ đó có dịch vụ Web server cho website
HowStuffWorks.

Các máy chủ tên miền (Name servers)
Thông thường, người dùng Internet không thể nhớ hết các con số trên
địa chỉ IP, và một lý do nào đó địa chỉ IP cũng có thể thay đổi. Vì vậy, tất cả các
máy chủ trên Internet đều phải có một tên sao cho dễ đọc, thường được gọi là
“tên miền” – Domain names. Ví dụ, tên miền www.howstuffworks.com là tên
cố định, dễ đọc hơn so với việc phải nhớ địa chỉ IP 209.116.69.66.
Tên miền www.howstuffworks.com gồm có 3 phần:
1. Tên máy ("www")
2. Tên miền ("howstuffworks")
3. Tên miền cấp một ("com")
Tên miền được quản lý bởi một công ty, tên là VeriSign. VeriSign tạo ra các tên
miền “cấp một” và đảm bảo tất cả tên miền khác trong tên miền cấp một là
duy nhất. VeriSign cũng duy trì các thơng tin liên quan đến mỗi địa chỉ tên miền
trên cơ sở dữ liệu “whois”.
8


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

Tên máy được tạo bởi công ty cung cấp dịch vụ lưu trữ tên miền. “www” là
tên máy phổ biến, nhưng nhiều nơi nó có thể được thay thế bởi tên khác, ví dụ
tên máy thể hiện một khu vực địa lý, ví dụ như “encarta.msn.com”, tên miền
của Microsoft's Encarta encyclopedia, tên máy "encarta" được thay thế cho
www.
Tập hợp các máy chủ tên miền (domain name servers - DNS) ánh xạ các tên
miền dễ đọc tới các địa chỉ IP tương ứng. Những máy chủ này lưu trữ cơ sở dữ
liệu tên miền ánh xạ đến địa chỉ IP, và chúng được bố trí nhiều nơi trên mạng
Internet. Các cơng ty, các nhà cung cấp dịch vụ Internet hoặc các trường đại

học đều duy trì máy chủ tên miền cỡ nhỏ để ánh xạ các tên máy tới các địa chỉ
IP tương ứng. Tại VeriSign, cũng có các máy chủ tên miền trung tâm sử dụng dữ
liệu được cung cấp bởi VeriSign để ánh xạ các tên miền đến địa chỉ IP.
Nếu bạn gõ địa chỉ />vào trình duyệt web, trình duyệt sẽ tách tên miền www.howstuffworks.com và
gửi nó tới máy chủ tên miền, sau đó máy chủ tên miền sẽ gửi ngược lại địa chỉ
IP đúng với tên miền www.howstuffworks.com.
Trên máy chủ UNIX, bạn có thể biết các thơng tin tương tự bằng cách sử
dụng lệnh

nslookup và đơn giản chỉ cần gõ vào một cái tên

www.howstuffworks.com trên dòng lệnh, câu lệnh sẽ tìm kiếm tên máy chủ và
chuyển địa chỉ IP tương ứng cho bạn.
Như vậy, Internet được tạo thành bởi hàng triệu máy tính, mỗi máy sẽ có
địa chỉ IP duy nhất. Trong số đó, rất nhiều các máy tính là các máy chủ cung
cấp dịch vụ cho các máy khác trên Internet, ví dụ như máy chủ e-mail, máy chủ
web, máy chủ FTP, máy chủ Gopher, máy chủ Telnet…
Cổng (Ports)
Bất kỳ máy chủ khi cung cấp các dịch vụ trên Internet, đều sử dụng cổng
được đánh số. Ví dụ, máy chủ chạy dịch vụ web và dịch vụ FTP, dịch vụ WEB
9


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

thường dùng cổng 80, dịch vụ FTP dùng cổng 21. Các máy khách khi kết nối tới
một dịch vụ, thường chỉ rõ địa chỉ IP và kết nối qua một cổng cụ thể.
Trên Internet, mỗi dịch vụ đều có sẵn cổng tương ứng. dưới đây là danh sách

các dịch cụ và các cổng tương ứng:


Echo : 7



daytime : 13



qotd : 17 (Quote of the Day)



ftp : 21



telnet : 23



smtp : 25 (Simple Mail Transfer, meaning e-mail)



time : 37




nameserver : 42



nicname : 43 (Who Is)



gopher : 70



finger : 79



www : 80

Khi máy chủ chấp nhận các kết nối từ bên ngoài qua một cổng nào đó và
nếu bức tường lửa khơng chặn cổng đó, bạn có thể kết nối cổng đó từ bất kỳ
nơi nào trên Internet và sử dụng dịch vụ tương ứng. Tuy nhiên, khơng bắt
buộc phải đặt chính xác số cổng với dịch vụ tương ứng, ví dụ với dịch vụ web
thường là cổng 80. Nhưng nếu bạn cài đặt máy chủ và phần mềm Web server
trên máy chủ đó, bạn có thể đặt dịch vụ web trên một cổng bất kỳ khơng sử
dụng, ví dụ cổng 918.
Sau đó, nếu máy chủ của bạn được đặt tên là xxx.yyy.com, một người duyệt
web nào đó trên Internet sẽ kết nối tới máy chủ của bạn với địa chỉ là
:918 “:918” thể hiện số cổng, và luôn đi kèm với địa chỉ kết


10


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

nối tới máy chủ của bạn. Nếu khơng có số cổng, trình duyệt web sẽ hiểu máy
chủ cung cấp dịch vụ web qua cổng 80.
Giaothức (Protocols)
Khi máy khách kết nối tới một dịch vụ trên một cổng nào đó, nó thường truy
cập dịch vụ thông qua một giao thức cụ thể. Giao thức là sự định nghĩa sẵn
cách thức mà đối tượng như phần mềm máy tính, trình duyệt web dùng để
“giao tiếp” với các dịch vụ mà chúng muốn sử dụng. Giao thức thường là các
đoạn text và đơn giản là mô tả cách thức máy khách và máy chủ “đàm thoại với
nhau”
Giao thức đơn giản nhất là daytime protocol. Nếu bạn kết nối tới cổng 13
trên máy chủ có dịch vụ daytime, máy chủ sẽ gửi tới máy tính của bạn thơng tin
ngày tháng và sau đó tự động ngắt kết nối.
Trên hệ thống UNIX hỗ trợ dịch vụ trên, nếu bạn muốn thử, bạn có thể kết
nối bằng ứng dụng Telnet. Ví dụ
%telnet web67.ntx.net 13
Trying 216.27.61.137...
Connected to web67.ntx.net.
Escape character is '^]'.
Sun Oct 25 08:34:06 1998
Connection closed by foreign host.
Trên hệ thống máy chủ Windows, bạn có thể truy cập dịch vụ trên bằng cách
gõ "telnet web67.ntx.net 13" tại dấu nhắc của MSDOS.
Trong ví dụ này, “web67.ntx.net” là tên máy chủ UNIX, và số 13 là số cổng

cho dịch vụ daytime. Ứng dụng Telnet kết nối tới cổng 13, sau đó máy chủ gửi
trả lại thơng tin ngày tháng và ngắt kết nối.

11


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

Hầu hết các giao thức khác đều phức tạp hơn so với giao thức Daytime.
Danh mục các giao thức được nêu trong tài liệu Request for Comment (RFC) tại
website />Mỗi máy chủ Web trên Internet đều phải hỗ trợ giao thức HTTP. Hình thức
cơ bản nhất của giao thức này được biểu diễn qua câu lệnh: GET. Nếu bạn kết
nối tới máy chủ hỗ trợ giao thức HTTP và yêu cầu “GET tên tệp”, máy chủ sẽ trả
lời bạn bằng việc gửi nội dung của tệp và sau đó ngắt kết nối. Ví dụ như sau:
%telnet www.howstuffworks.com 80
Trying 216.27.61.137...
Connected to howstuffworks.com.
Escape character is '^]'.
GET /><html>
<head>
<title>Welcome to How Stuff Works</title>
...
</body>
</html>
Connection closed by foreign host.
Trong giao thức HTTP nguyên bản, bạn sẽ cung cấp đầy đủ đường dẫn của
tên tệp, ví dụ như “/” hoặc “/tên tệp.htm”. Sau đó, giao thức sẽ tự điều chỉnh
để có thể đưa ra một địa chỉ URL đầy đủ. Điều này cho phép các công ty kinh

doanh dịch vụ lưu trữ có thể lưu trữ nhiều virtual domains (tên miền ảo), có
nghĩa nhiều tên miền cùng tồn tại trên một máy chủ và sử dụng cùng một địa
chỉ IP duy nhất. Ví dụ, trên máy chủ của HowStuffWorks, địa chỉ IP là
209.116.69.66, nhưng nó có hàng trăm tên miền khác nhau cùng tồn tại.

12


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

II. Các phương pháp tấn công webiste.
1. Tấn công từ chối dịch vụ
Tấn cơng từ chối dịch vụ là gì? : Tấn công bằng từ chối dịch vụ DoS (Denial
of Service) có thể mơ tả như hành động ngăn cản những người dùng hợp pháp
khả năng truy cập và sử dụng vào một dịch vụ nào đó. Nó bao gồm làm tràn
ngập mạng, mất kết nối với dịch vụ… mà mục đích cuối cùng là máy chủ
(Server) khơng thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các máy trạm
(Client).
DoS có thể làm ngưng hoạt động của một máy tính, một mạng nội bộ, thậm
chí cả một hệ thống mạng rất lớn. Về bản chất thực sự của DoS, kẻ tấn công sẽ
chiếm dụng một lượng lớn tài nguyên mạng như băng thông, bộ nhớ… và làm
mất khả năng xử lý các yêu cầu dịch vụ từ các client khác.
Tùy theo phương thức thực hiện mà nó được biết dưới nhiều tên gọi khác
nhau. Khởi thủy là lợi dụng sự yếu kém của giao thức TCP (Transmision Control
Protocol) để thực hiện tấn công từ chối dịch vụ cổ điển DoS (Denial of Service),
sau đó là tấn cơng từ chối dịch vụ phân tán DdoS (Distributed Denial of Service)
và mới nhất là tấn công từ chối dịch vụ theo phương pháp phản xạ DRDoS
(Distributed Reflection Denial of Service). Theo thời gian, xuất hiện nhiều biến

thể tấn công DoS như: Broadcast Storms, SYN, Finger, Ping, Flooding,… với mục
tiêu nhằm chiếm dụng các tài nguyên của hệ thống (máy chủ) như: Bandwidth,
Kernel Table, Swap Space, Cache, Hardisk, RAM, CPU,… làm hoạt động của hệ
thống bị quá tải dẫn đến không thể đáp ứng được các yêu cầu (request) hợp lệ
nữa. Tấn cơng DoS nói chung khơng nguy hiểm như các kiểu tấn cơng khác ở
chỗ nó khơng cho phép kẻ tấn cơng chiếm quyền truy cập hệ thống hay có
quyền thay đổi hệ thống. Tuy nhiên, nếu một máy chủ tồn tại mà không thể
cung cấp thông tin, dịch vụ cho người sử dụng, sự tồn tại là khơng có ý nghĩa
nên thiệt hại do các cuộc tấn công DoS do máy chủ bị đinh trệ hoạt động là vô
cùng lớn, đặc biệt là các hệ thống phụ vụ các giao dịch điện tử. Đối với các hệ
13


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

thống máy chủ được bảo mật tốt, rất khó để thâm nhập vào thì tấn cơng từ
chối dịch vụ được các hacker sử dụng như là “cú chót” để triệt hạ hệ thống
đó.
a. Các cách thức tấn cơng từ chối dịch vụ:
 Tấn công từ chối dịch vụ cổ điển DoS (Denial of Service):
Là phương thức xuất hiện đầu tiên, giản đơn nhất trong kiểu tấn công từ chối
dịch vụ.

 Tấn công từ chối dịch vụ kiểu phân tán – DdoS:
Xuất hiện vào mùa thu 1999, so với tấn công DoS cổ điển, sức mạnh của DDoS
cao hơn gấp nhiều lần. Hầu hết các cuộc tấn công DDoS nhằm vào việc chiếm
dụng băng thông (bandwidth) gây nghẽn mạch hệ thống dẫn đến hệ thống
ngưng hoạt động. Để thực hiện thì kẻ tấn cơng tìm cách chiếm dụng và điều

khiển nhiều máy tính/mạng máy tính trung gian (đóng vai trị zombie) từ nhiều
nơi để đồng loạt gửi ào ạt các gói tin (packet) với số lượng rất lớn nhằm chiếm
dụng tài nguyên và làm tràn ngập đường truyền của một mục tiêu xác định nào
đó.

14


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

 Tấn công từ chối dịch vụ phản xạ nhiều vùng RDDoS:
Về cơ bản, DRDoS là sự phối hợp giữa hai kiểu DoS và DDoS. Nó có kiểu tấn
cơng SYN với một máy tính đơn, vừa có sự kết hợp giữa nhiều máy tính để
chiếm dụng băng thơng như kiểu DDoS. Kẻ tấn công thực hiện bằng cách giả
mạo địa chỉ của server mục tiêu rồi gửi yêu cầu SYN đến các server lớn như
Yahoo, Micorosoft,… chẳng hạn để các server này gửi các gói tin SYN/ACK đến
server mục tiêu. Các server lớn, đường truyền mạnh đó đa vơ tình đóng vai trị
zoombies cho kẻ tấn cơng như trong DdoS

15


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

2. Tấn cơng Phishing:
Tấn cơng Phishing là gì?

Nói mơt cách đơn giản, phising là một thủ đoạn đánh cắp thông tin cá
nhân của người dùng như: tên đăng nhập, mật khẩu, thơng tin thẻ tín dụng và
một số thơng tin nhạy cảm khác có giá trị đối với chúng.
Hacker thường đánh cắp thông tin người dùng bằng cách giả danh để
giao tiếp với họ. Ví dụ như email giả danh một mạng xã hội ảo ,giả danh yêu
cầu thanh toán trực tuyến hay như trong trường hợp xảy ra trong tuần rồi: giả
danh nhà cung cấp dịch vụ mail.
Các email này thường chuyển nạn nhân đến một trang web giả mạo
giống hệt với trang web thật,làm cho họ nhầm lẫn và điền các thông tin nhạy
cảm vào, kết quả là các thơng tin đó rơi vào tay các hacker.
Do cách tấn công đơn giản nhưng lại hiệu quả cao nên phising nhanh
chóng trở thành một trong những kiểu tấn cơng phổ biến nhất trên mạng.Các
cuộc lừa đảo được tạo ra hàng ngày bởi với mục đích chung là đánh cắp thơng
tin nhạy cảm của người dùng Internet
3. Tấn công CROSS-SITE SCRIPTING
16


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

Tấn cơng XSS là gì?
Cross-Site Scripting hay cịn được gọi tắt là XSS (thay vì gọi tắt là CSS để
tránh nhầm lẫn với CSS-Cascading Style Sheet của HTML) là một kĩ thuật tấn
công bằng cách chèn vào các website động (ASP, PHP, CGI, JSP ...) những thẻ
HTML hay những đoạn mã script nguy hiểm có thể gây nguy hại cho những
người sử dụng khác. Trong đó, những đoạn mã nguy hiểm đựơc chèn vào hầu
hết được viết bằng các Client-Site Script như JavaScript, JScript, DHTML và cũng
có thể là cả các thẻ HTML. Kĩ thuật tấn cơng XSS đã nhanh chóng trở thành một

trong những lỗi phổ biến nhất của Web Applications và mối đe doạ của chúng
đối với người sử dụng ngày càng lớn. Người chiến thắng trong cuộc thi eWeek
OpenHack 2002 là người đã tìm ra 2 XSS mới. Phải chăng mối nguy hiểm từ XSS
đã ngày càng được mọi người chú ý hơn
Tấn công XSS như nào?
Về cơ bản XSS cũng như SQL Injection hay Source Injection, nó cũng là
các yêu cầu (request) được gửi từ các máy client tới server nhằm chèn vào đó
các thơng tin vượt q tầm kiểm sốt của server. Nó có thể là một request
được gửi từ các form dữ liệu hoặc cũng có thể đó chỉ là các URL như là
Code:
/>
was

found !');</script>
Và rất có thể trình duyệt của bạn sẽ hiện lên một thông báo "XSS was
found !". Các đoạn mã trong thẻ <script> khơng hề bị giới hạn bởi chúng hồn
tồn có thể thay thế bằng một file nguồn trên một server khác thơng qua thuộc
tính src của thẻ <script>. Cũng chính vì lẽ đó mà chúng ta chưa thể lường hết
được độ nguy hiểm của các lỗi XSS. Nhưng nếu như các kĩ thuật tấn cơng khác
có thể làm thay đổi được dữ liệu nguồn của web server (mã nguồn, cấu trúc,
cơ sở dữ liệu) thì XSS chỉ gây tổn hại đối với website ở phía client mà nạn nhân
17


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

trực tiếp là những người khách duyệt site đó. Tất nhiên đôi khi các hacker cũng
sử dụng kĩ thuật này đề deface các website nhưng đó vẫn chỉ tấn cơng vào bề

mặt của website. Thật vậy, XSS là những Client-Side Script, những đoạn mã này
sẽ chỉ chạy bởi trình duyệt phía client do đó XSS khơng làm ảnh hưởng đến hệ
thống website nằm trên server. Mục tiêu tấn công của XSS khơng ai khác chính
là những người sử dụng khác của website, khi họ vơ tình vào các trang có chứa
các đoạn mã nguy hiểm do các hacker để lại họ có thể bị chuyển tới các
website khác, đặt lại homepage, hay nặng hơn là mất mật khẩu, mất cookie
thậm chí máy tính bạn có thể sẽ bị cài các loại virus, backdoor, worm ..

4. Tấn công SQL-injection
Tấn công SQL-injection là gì?
SQL Injection là một trong những kiểu hack web đang dần trở nên phổ
biến hiện nay. Bằng cách inject các mã SQL query/command vào input trước
khi chuyển cho ứng dụng web xử lí, bạn có thể login mà khơng cần username
18


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

và password, remote execution, dump data và lấy root của SQL server. Cơng cụ
dùng để tấn cơng là một trình duyệt web bất kì, chẳng hạn như Internet
Explorer, Netscape, Lynx, ...
Tấn công SQL-injection như nào?
1.

Dựa trên lỗi của cơ dở dữ liệu, qua đó Attacker tiến
hành khai thác lỗi trên website. Thông thường, các cơ sở dữ liệu bị truy vấn
qua đó, attacker có thể lấy được tài khoản của người dung.


2.

Thi hành lệnh bằng SQL injection. Đây là một ví dụ:
‘; exec master..xp_cmdshell ‘ping 10.10.1.2′–

5. Tấn công Session Hijacking
Tấn công Session Hijacking là gì?
Session Hijacking là quá trình chiếm lấy một session đang hoạt động, nhằm
mục đích vượt quaq trình chứng thực truy cập bất hợp lệ vào thông tin hoặc
dịch vụ của một hệ thống máy tính..Khi một user thực hiện kết nối tới server
qua quá trình xác thực, bằng cách cung cấp ID người dùng và mật khẩu của
19


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

mình. Sau khi người dùng xác thực, họ có quyền truy cập đến máy chủ vàhoạt
động bình thường.Trong quá trình hoạt động, người dùng không cần phải
chứng thực lại. Kẻ tấn công lợi dụng điều này để cướp session đang hoạt động
của người dùng và làm cho người dùng không kết nối được với hệ thống. Sau
đó kẻ tấn cơng mạo danh người dùng bằng session vừa cướp được, truy cập
đến máy chủ mà không cần phải đăng nhập vào hệ thống.Khi cướp được
session của người dùng, kẻ tấn cơng có thể vượt qua q trình chứng thực
dùng,có thể ghi lại phiên làm việc và xem lại mọi thứ đã diễn ra. Đối với cơ
quan pháp lý, có thể dùnglàm bằng chứng để truy tố, đối với kẻ tấn cơng, có
thể dùng thu thập thông tin như ID ngườidùng và mật khẩu. Điều này gây nhiều
nguy hại đến người dung
Phương pháp tấn công:

Kẻ tấn công chiếm session sau khi người dùng đã chứng thực với hệ thốngmay
tính. Bằng cách này, kẻ tấn cơng có thể truy cập vào hệ thống một cách hợp lệ,
sử dụngphiên làm việc của người dùng hợp lệ để giao tiếp với server

6. Tấn công Social Engineering
Tấn cơng Social Enginneering là gì?
Social Engineering là kiểu tấn cơng rất đơn giản, thường được hacker sử dụng.
Kiểu tấn công này có thể hịan tịan phi kỹ thuật hoặc kết hợp một ít kỹ thuật
đơn giản nhằm đánh lừa người sử dụng để ăn cắp mật khẩu và các thông tin cá
nhân khác.
20


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

Các phương pháp tấn cơng:
Google Hack: ví dụ

7. Tấn cơng dựa trên các lỗ hổng của website.
Ngày nay các lỗ hổng website thường xuyên được công bố trên các chuyên
trang về An tồn thơng tin cũng như các trang của Hacker. Điều này có tác động
khơng nhỏ đến việc tấn cơng website. Các webmaster không updates các lỗ
hổng hoặc chưa kịp updates, từ đó kẻ tấn cơng có thể dễ dàng lợi dụng các lỗi
này để tấn công website.
Việc cộng đồng nguồn mở phát triển mạnh dẫn đến việc các extensions của các
mã nguồn đó phát triển theo. Các nhà sản xuất ứng dụng thứ 3 chính là nguyên

1.

2.
3.
4.

nhân gây ra các lỗ hổng lớn.
Các hình thức khai thác lỗ hổng website có 4 dạng:
Lỗ hổng về phần quyền files và thư mục
Lỗ hổng về lỗi upload files của website
Lỗ hổng về các ứng dụng nhỏ của lập trình hướng đối tượng
Lỗ hổng trực tiếp từ webserver

Chương 2: Modsecurity
Mod_security là một opensource web application firewall được Ivan
Ristic phát triển dành cho Apache Web Server. Ivan Ristic là tác giả quyển
sách.Ông là một người có rất nhiều kinh nghiệm trong bảo vệ Apache Web
21


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

Server. Ô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 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 mod_security sử dụng giấy phép GPL, hồn tồn miễn phí. Ngồi
ra nếu muốn có sự hỗ trợ thì bạn có thể mua nó tại cơng ty ThinkingStone của
ơng ()


I. Các khả năng của mod_security
- 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ý.
- Anti-evasion techniques : paths và parameters được chuẩn hố trước khi
phân tích để chống evasion techniques. Kỹ thuật này sẽ được thảo luận
ở phần sau.
- Understanding of the HTTP protocol : mod_security là web application
firewall nên nó có khả năng hiểu được HTTP protocol. Mod_security 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 parameters hay cookies của các requests ...vvV
- POST payload analysis: ngoài việc cản lọc dựa trên HTTP Header,
mod_security 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 )
để chúng ta có thể xem xét sau nếu cần.
- HTTPS filtering: mod_security có thể phân tích HTTPS.
- Compressed content filtering: mod_security sẽ phân tích sau khi đã
decompress các request data.
Q trình xử lý các request của Apache và mod_security
22


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

Modsecurity cho phép bạn đặ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 bod 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 application-oriented thương
được đặt ở đây. Ở thời điểm này bạn đã nhận đủ các request argument 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 tich dữ liệu XML

23


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

Phase Response Header: đây là thời điểm ngay sau khi phần response header
được gửi trả về cho client. Bạn đặ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 bạn muốn kiểm tra những dữ liệu
HTML gửi trả về
Phase logging: đây 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 cung là thời điểm cuối cùng để bạn chặn các connection
không mong muốn, kiểm tra các response header mà bạn không thể kiểm tra ở
phase 3 và phase 4.

II. Cài đặt
1. Download mod_security:

#wget
/>2. Trước khi cài đặt
Cần các thư viện apxs, libxml2 và cần file mod_unique_id.so
Cài đặt thư viện
#yum install httpd-devel (cài apxs)
#yum install libxml2
Thêm dòng sau vào file http.conf (file nằm trong /etc/httpd/conf) dòng
sau
LoadModule unique_id_module modules/mod_unique_id.so
(Chú ý: thêm vào đoạn có nhiều LoadModule đầu dòng)
3. Giải nén
#tar xzvf modsecurity-apache_2.5.13.tar.gz
4. Biên dịch
Tại thư mục apache2 gõ các lệnh sau
24


Khoa ATTT – Học viện KT Mật Mã

Tìm hiểu Modsecurity

#./configure
#make
5. Tích hợp modsecurity vào apache
Thêm dịng sau vào file httpd.conf
LoadModule security2_module modules/mod_security2.so
6. Khởi động lại apache
#service httpd restart

III. Cấu hình cơ bản

1. File cấu hình
Modsecurity là application firewall thuộc loại rules-based, nghĩa chúng ta
cần thiết lập các luật (rules) để mod_security hoạt động. Các rules này
được thể hiện dưới dạng các chỉ thị (directives) và có thể đặt trực tiếp trong
file cấu hình Apache (thơng thường là httpd.conf).
Ngồi ra có thể đặt các cấu hình này vào một file riêng, chẳng hạn
modsecurity.conf trong thư mục conf.d và sau đó chúng ta cần thêm vào
httpd.conf
Include conf.d/modsecurity.conf
(mặc định trong httpd.conf đã có dịng include conf.d/*.conf với dịng này
nó sẽ thực hiện tất cả các file có phần mở rộng là .conf)
2. Turning Rule on and of
Theo mặc định thì rule engine bị disable. Để kích hoạt modsecurity ta
cần thêm chỉ thị sau vào file cấu hình
SecRuleEngine On
Directive này dùng để điều khiển rule engine, chúng ta có thể sử dụng
các tuỳ chọn là On, Off hoặc DynamicOnly.
Off : Vơ hiệu hố modsecurity

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×