You are on page 1of 22

1

§
VIỆN ĐẠI HỌC MỞ HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

Tìm hiểu kỹ thuật HTTP Post Dos, cách phòng chống

Giảng viên hướng dẫn: Trần Duy Hùng

Nhóm 10W.N10

SV thực hiện: Nguyễn Cao Tú

Ngô Đức Trung

Lại Văn Thái

Trần Lê Hải

Trần Thế Anh

Chuyên ngành: Tin học ứng dụng

Nguyễn Cao Tú

Trần Thế Anh


MÔN HỌC: AN TOÀN THÔNG TIN

Lớp:

Hà Nội - Năm 2013


2

Mục Lục
Đặt vấn đề..........................................................................................................3

Chương 1. Khái niệm về DOS..........................................................................4

1.1 DOS là gì ?...............................................................................................4

1.1.1 Khái niệm về DOS.............................................................................4

1.1.2 Các mục đích của tấn công DoS........................................................4

1.1.3 Mục tiêu mà kẻ tấn công thường sử dụng tấn công DoS...................5

1.2 HTTP Post Denial Of Service..................................................................6

1.2.1 Khải niệm về HTTP POST................................................................6

1.2.2 Phân loại dạng tấn công quan HTTP.................................................6

1.2.3 Cách thức hoạt động của HTT Post Dos............................................6

1.2.4. Quy trình cuộc tấn công DOS thông qua HTTP...............................7

Chương 2 Demo tấn công Dos thông qua HTTP POST.................................10

2.1 Những bước chuẩn bị hệ thống ảo.........................................................10

2.2 Cài đặt tệp tin gửi cho Server.................................................................13

Chương 3 Biện pháp phòng chống HTTP POST DOS...................................19

3.1 Nguồn mở với nền tảng (Apache hay NginX).......................................19

3.2 Nguồn đóng với nền tảng của Microsoft (IIS).......................................20

3.2.1 IIS 6..................................................................................................20

3.2.2 ISS 7.................................................................................................20

Chương 4 Tài liệu tham khảo..........................................................................22


3

Đặt vấn đề
Ngày nay với sự phát triển ngày một cao của công nghệ thông tin, con người
ứng dụng nhiều thiết bị công nghệ và thực hiện rất nhiều công việc trên nền
tảng mạng Internet như thảo luận, trao đổi thậm chí là mua bán, lưu trữ thông
tin cá nhân. Những việc này ngày càng phổ biến, vì thế việc phải bảo vệ
thông tin là rất quan trọng và mang tính tất yếu.

Thông tin được lưu trữ trên những chiếc máy chủ được đặt ở các trung tâm dữ
liệu lớn và tập trung gọi là các DATACENTER, tuy nhiên vẫn có thể giao
dịch và quản lý được từ xa, giao dịch của người dùng thông qua hệ thống
WEBSITE. Đi đôi với sự phát triển thị có những nguy cơ về mất an toàn
thông tin từ những hacker, những tổ chức mua bán và đánh cắp thông tin hay
việc cạnh tranh không lành mạnh. Có rất nhiều phương pháp có thể được sử
dụng để tấn công một Website như “Hack Local, Bypass, SQL injection…)
trong đó thì Dos (Ddos) là phương pháp rất hay được sử dụng và khá phổ biến
khi các phương pháp khác thất bại.

Vì vậy trong đề tài lần này, nhóm 10 - Web xin trình bày đề tài về HTTP
POST DOS và cách phòng chống để đảm bảo an toàn hoặc giảm thiểu những
hệ lụy mà DOS mang lại.
4

Chương 1

Khái niệm về DOS


1.1 DOS là gì ?

1.1.1 Khái niệm về DOS


Denial Of Service – Từ chối dịch vụ : Là một dạng tấn cộng được sử dụng
khá phổ biến, khắc với những phương pháp tấn công khai thác lỗ hổng khác
như ( Local attack, SQL injection, Bypass….) Tấn công DoS là kiểu tấn công
vô cùng nguy hiểm, để hiểu được nó ta cần phải lắm rõ định nghĩa của tấn
công DoS và các dạng tấn công DoS.

- Tấn công DoS là một kiểu tấn công mà một người làm cho một hệ thống
không thể sử dụng, hoặc làm cho hệ thống đó chậm đi một cách đáng kể với
người dùng bình thường, bằng cách làm quá tải tài nguyên của hệ thống.

- Nếu kẻ tấn công không có khả năng thâm nhập được vào hệ thống, thì chúng
cố gắng tìm cách làm cho hệ thống đó sụp đổ và không có khả năng phục vụ
người dùng bình thường đó là tấn công Denial of Service (DoS).

Mặc dù tấn công DoS không có khả năng truy cập vào dữ liệu thực của hệ
thống nhưng nó có thể làm gián đoạn các dịch vụ mà hệ thống đó cung cấp.
Như định nghĩa trên DoS khi tấn công vào một hệ thống sẽ khai thác những
cái yếu nhất của hệ thống để tấn công, những mục đích của tấn công DoS:

1.1.2 Các mục đích của tấn công DoS


- Cố gắng chiếm băng thông mạng và làm hệ thống mạng bị ngập (flood), khi
đó hệ thống mạng sẽ không có khả năng đáp ứng những dịch vụ khác cho
người dùng bình thường.
5

- Cố gắng làm ngắt kết nối giữa hai máy, và ngăn chặn quá trình truy cập vào
dịch vụ.

- Cố gắng ngăn chặn những người dùng cụ thể vào một dịch vụ nào đó

- Cố gắng ngăn chặn các dịch vụ không cho người khác có khả năng truy cập
vào.

- Khi tấn công DoS xảy ra người dùng có cảm giác khi truy cập vào dịch vụ
đó như bị:

+ Disable Network - Tắt mạng

+ Disable Organization - Tổ chức không hoạt động

+ Financial Loss – Tài chính bị mất

1.1.3 Mục tiêu mà kẻ tấn công thường sử dụng tấn công DoS
Như chúng ta biết ở bên trên tấn công DoS xảy ra khi kẻ tấn công sử dụng hết
tài nguyên của hệ thống và hệ thống không thể đáp ứng cho người dùng bình
thường được vậy các tài nguyên chúng thường sử dụng để tấn công là gì:

- Tạo ra sự khan hiếm, những giới hạn và không đổi mới tài nguyên

- Băng thông của hệ thống mạng (Network Bandwidth), bộ nhớ, ổ đĩa, và


CPU Time hay cấu trúc dữ liệu đều là mục tiêu của tấn công DoS.

- Tấn công vào hệ thống khác phục vụ cho mạng máy tính như: hệ thống điều
hoà, hệ thống điện, hệt hống làm mát và nhiều tài nguyên khác của doanh
nghiệp. Bạn thử tưởng tượng khi nguồn điện vào máy chủ web bị ngắt thì
người dùng có thể truy cập vào máy chủ đó không.
6

- Phá hoại hoặc thay đổi các thông tin cấu hình.

- Phá hoại tầng vật lý hoặc các thiết bị mạng như nguồn điện, điều hoà…

1.2 HTTP Post Denial Of Service

1.2.1 Khải niệm về HTTP POST


Đây là kỹ thuật tấn công DDoS dựa trên một lỗ hổng về kiến trúc của phương
thức POST trong HTTP nhằm kéo dài thời gian kết nối để làm cạn kiệt tài
nguyên máy chủ. Một khi quá nhiều dữ liệu được gửi đến máy đích đồng thời
thì lúc đó máy chủ trở nên quá tải. (Người tạo: Wong Onn Chee và Tom
Brennan).

1.2.2 Phân loại dạng tấn công quan HTTP


Slowloris : Làm chậm lại tiêu đề (head) HTTP, làm cho máy chủ chờ đợi
thông tin CRLF.

SlowPOST: Làm chậm lại thông điệp nội dung (body) HTTP , làm cho máy
chủ chờ đợi cho đến khi tất cả nội dung Content-Length , hoặc cho đến khi
CRLF nhận được, Hoặc với HTTP 1.1 không có Content-Length được gửi đi.

Lưu ý: Với HTTP thì bất kỳ phương thức (method) gửi nào (POST, GET,
PUT,HEAD…) thì khi đưa lên server nó đều là POST.

1.2.3 Cách thức hoạt động của HTT Post Dos.


Trên một số Website có sử dụng tính năng truy vấn vào cơ sở dữ liệu (CSDL)
để thực hiện việc tìm kiếm, đăng ký thành viên, gửi bài viết…Nếu website
không sử dụng các biện pháp để bảo vệ (giới hạn thời gian cho lần tìm kiếm,
xử dụng mã xác nhận trong phần đăng ký…) thì phương pháp này này thường
được tận dụng.
7

1.2.4. Quy trình cuộc tấn công DOS thông qua HTTP
Một kẻ tấn công (attacker) sẽ gửi một số lượng lớn các yêu cầu kết nối tới
máy chủ nhờ HTTP POST. Một trong những kết nối này có nội dung dài
(content-length) (VD: Content-Length: 10000000 byt) , Khi đó các máy chủ
sẽ chờ nội dung là 10000000 byte từ một trong những kết nối. Bí quyết không
phải là người 10000000 byte cùng một lúc, mà gửi chúng trong một thời gian
kết nối dài (VD: 1 byte là từ 10- 100 giây). Server sẽ vấn đề kết nối mở trong
một thời gian rất dài. Trong thời gian này các khách hàng khi truy cập vào
máy chủ sẽ mật một thời gian khó kết nối tới máy chủ, hay tệ hơn là không
thể kết nối tới máy chủ vì tất cả các kết nối đều đang bận rộn để xử lý những
yêu cầu của kẻ tấn công.

Để có thể hiểu cách hoạt động và tấn công hãy xem mô hình truyền dữ liệu
hiện tại với các lớp OSI, hay phương thức TCP/IP.

1.2.4.a Layer 4 DDos attack


Trong quá khứ HTTP Post thường tấn công chủ yếu sử dụng tầng thứ 4(Layer
4- Transport) - Layer 4 DDos attack.
8

1.2.4.a Mô hình OSI và TCP/IP (7 lớp)

Mục hiêu ảnh hưởng vào băng thông, các kết nối chủ, hoặc thiết bị mạng

Hiện tại giải pháp chống DOS hiện nay đã có khả năng ảnh hưởng và khắc
phục được Layer 4 Ddos attack.

1.2.4.b Layer 7 DDos attack


Hoạt động ở và tấn công vào lớp thứ 7 lớp ứng dụng (Layer 7 - Application)

VD: HTTP / HTTPs, FTP, SMTP…

Vì đây là phương thức mới, vì thế để nó mở rộng hơn, mức độ tấn công cao
hơn trước rất nhiều, ngoài ra để phát hiện và hạn chế cũng phức tạp hơn so
với trước đó.
9

Làm hợp pháp hóa các kết nối TCP hya UDP , làm hệ thống khó có thể phân
biệt giữa người dùng bình thường hay là kẻ tấn công. Độ phức tạp lớn hơn.

Yêu cầu ít kết nối tấn công  Nhưng lại mang lại hiệu quả cao hơn.

Làm đặt giới hạn tài nguyên của máy chủ, ảnh hưởng tới phần cứng máy chủ
10

Chương 2

Demo tấn công Dos thông qua HTTP POST


2.1 Những bước chuẩn bị hệ thống ảo
Demo một cuộc tấn công HTTP POST bằng công cụ “HPPT DOS TOOLS”
do Wong Onn Chee và Tom Brennan của tổ chức OWASP xây dựng đưa ra
tại hội nghị “AppSec DC” vào tháng 11/2010.

Hình 2.1.a Giao diện công cụ TOOLS HTTP Dos

Bước 1: Tiến hành tạo môi trường thử nghiệm của cuộc tấn công, nhóm sử
dụng một máy áo, có cài đặt môi trường web (php 5.3.8 . Apache 2.2.21,
phpMyadmin 5.3.4)
11

Hình 2.1.b: Kiểm tra IP và kiểm tra truy cập nội bộ qua cổng 80

Địa chỉ IP máy ảo: 192.168.234.3 đã được cài đặt mặc định, đây chính là
server cài đặt Website.

Đây chính là IP mà chúng ta sẽ dùng để tạo một cuộc tấn công thử nghiệm
vào Server.

Bước 2: Kiểm tra kết nối giữa các máy với nhau, và tiến hành truy cập vào địa
chỉ IP hoặc domain của server tại 192.168.234.3
12

Hình 2.1.c : Kiểm tra khả năng truy cập vào Server, IP máy khách

Máy khách với địa chỉ IP : 192.168.234.2 (Phần tô màu vàng)

Tiến hành mở trình duyệt để truy cập thử website báo thành công.

Bước 3: Để thuận tiện trong việc kiểm tra số lượng các REQUEST và phương
thức tấn công, ta sẽ cài thêm công cụ “hdbNetStat” (Tương đương với lệnh
kiểm tra kết nối netstat trong command line)
13

Hình 2.1.d Công cụ NetStat đang kiểm tra các kết nối tới server.

Trong hình có một kết nối dùng giao thức TCP/IP từ địa chỉ 192.138.234.2
trước đó do ta tiến hành thử kết nối tại bước 02.

Mọi bước chẩn bị và tạo môi trường đã xong, bây giờ ta sẽ tiến hành chạy
phần mềm để tiến hành DDOS bằng phương thức HTTP POST.

2.2 Cài đặt tệp tin gửi cho Server


14

Hình 2.2.a : Cấu hình phần mềm và địa chỉ tấn công.

Như đã đề cập thì chúng ta sẽ tạo ra nhiều kết nối và kéo dài thời gian, đồng
thời tăng dung lượng dữ liệu gửi đi để làm cho Server bị quá tải.

Connectons: Số kết nối, cài đặt lần gửi 400 kết nối

Timeout (s): Thời gian để gửi hết dữ liệu.

Conntent Length : Độ lớn của mỗi tệp tin sẽ gửi lên Server.

Bước 4: Ta nhấn vào Run attack để tấn công


15

Hình 2.2.b Kết quả sau khi đã gửi REQUEST

Thống kê, ta có thể thấy số lượng Request Server xử lý được là 351 và từ


Request 352 Server đã bị quá tải và chúng không thể xử lý được tiếp.

Dùng trình duyệt truy cập địa chỉ 192.168.234.3 để kiểm tra
16

Hình 2.2c : Kết quả Server đã bị đánh sập với HTTP Post.
17

Hình 2.2.d Phần mềm hdb Netstat ghi nhận lại địa chỉ người gửi và số lượng
kết nối đã yêu cầu.
18

Hình 2.2.e Apache ghi lại các thông số khi có kết nối.

Vì vậy Apache và các máy chủ IIS sẽ rất rễ bị tổn thương bằng cách này. Cả
Apache và Microsoft đã được thông báo, nhưng không có kế hoạch “Sửa
chữa” nó, bời vì điều này là vốn có mặc định trong giao thức. HTTP sẽ phải
cho phép các kết nối chậm và liên tục, điều đó là bắt buộc.

Trong demo cuộc tấn công trên, chưa tiến hành khai thác lỗi để tiến hành gửi
và tác động thông qua các phương thức GET,POST trong những Website
thông qua tính năng gửi email, đăng ký thành viên, đăng nhập, gửi bài viết….
khi đó ngoài việc phải nhận thông tin, apache và mysql cũng phải xử lý, nó
khiến Server phải tốn thêm những tài nguyên để xử lý những công việc này.
Như vậy cuộc tấn công sẽ có thể mạnh hơn nữa (Có nghĩa nếu khai thác lỗi,
chúng ta có thể giảm được số lượng các conections trong ví dụ trên)
19

Chương 3

Biện pháp phòng chống HTTP POST DOS


3.1 Nguồn mở với nền tảng (Apache hay NginX)
Như đã đề cập ở bên trên, Apache và IIS của Microsoft khó có thể ngăn chặn
một cách triệt để được.

Từ phiên bản apache httpd 2.2.15 có thêm module mod_reqtimeout bằng


cách thiết lập thời gian chờ và tốc độ dữ liệu tối thiểu nhận được yêu cầu của
người dùng. Module này cho phép ấn định giá trị "timeout" của request. Có
hai phần chính trong directive RequestReadTimeout đó là timeout cho "body"
và timeout cho "header". Đối với slowloris, giá trị timeout cho "header" chính
là biện pháp chống chọi với dạng DDoS được nói ở trên. Nó tương tự với giá
trị client_header_timeout của nginx.

Hình 3.1.a : Cấu trúc của module mod_reqtimeout

Tuy nhiên, xét về mặt kỹ thuật thì RequestReadTimeout của apache hay hơn
client_header_timeout của nginx ở chỗ nó có thêm giá trị "MinRate" đi kèm.
Giá tri "MinRate" này là một phương tiện để ấn định khả năng gia giảm giá trị
"timeout" dynamically. Bởi vậy, nó uyển chuyển hơn client_header_timeout
của nginx.
20

Ví dụ: RequestReadTimeout header=5-10,MinRate=500

Dòng ấn định trên có nghĩa là một request được gửi lên SERVER sẽ được
httpd apache chờ đợi thông tin của request header (chỉ header chứ không bao
gồm body) là 5 giây. Nếu phía client gởi data cho phần header thì cứ mỗi 500
bytes mà httpd apache nhận được, nó sẽ gia tăng timeout thêm 1 giây. Nhưng
nếu sau 10 giây mà không có thêm thông tin gì cho header nữa thì apache
httpd sẽ huỷ connection của client đó. Tính uyển chuyển nằm ở chỗ nếu phía
client có thật sự gởi data thì gia tăng giá trị "timeout" để tạo điều kiện cho
client ấy tiếp tục gởi. Tuy nhiên, apache vẫn ấn định thời gian tối đa để gởi
một http header là 10 giây.

3.2 Nguồn đóng với nền tảng của Microsoft (IIS)

3.2.1 IIS 6
Thiết lập thuộc tinh của ConnectionTimeout, HeaderWaitTimeout và
MaxConnections trong Metabase để giảm thiểu và làm chậm tác động của các
cuộc tấn công HTTP. Làm việc với Metabase có thể phức tạp, vì vậy nên
tham khảo kỹ hướng dẫn Metabase của Microsoft.

3.2.2 ISS 7
Giới hạn các thuộc tính yêu cầu của <RequestLimits> đặc biệt là
maxAllowedContentLength, maxQueryString, và maxUrl attributes.

Đặt lại giá trị của <headerLimits> để cấu hình lại kiểu và kích thước của tiêu
đề khi máy chủ web của bạn sẽ chấp nhận.
21

Điều chỉnh lại giá trị của ConnectionTimeout, headerWaitTimeout, và


minBytesPerSecond gồm các thuộc tinh <limits> và <WebLimits> để giảm
thiểu tác động của cuộc tấn công.

Đây chỉ là một trong những việc khi ta xây dựng và cấu hình Server cần tính
đến, ngoài ra hiện nay còn rất nhiều những module thích hợp và được thiết kế
để hạn chế các cuộc tấn công rất hiệu quả như CSF Firewall
(Apache,NginX) , IIS Wall (IIS)….
22

Chương 4

Tài liệu tham khảo

 Website OWASP -
https://www.owasp.org/index.php/OWASP_HTTP_Post_Tool

 Diễn đàn trung tâm đào tạo Nhất Nghệ - nhatnghe.com

 Diễn đàn công nghệ CEH – ceh.vn

 Diền đàn Sinh viên IT – sinhvienit.net

 Apache - http://httpd.apache.org/docs/trunk/mod/mod_reqtimeout.html

 Cộng đồng QUALYS


https://community.qualys.com/blogs/securitylabs/2011/11/02/how-to-
protect-against-slow-http-attacks

 Tài liệu, bài giảng môn an toàn thông tin - Viện ĐH Mở Hà Nội

You might also like