Professional Documents
Culture Documents
§
VIỆN ĐẠI HỌC MỞ HÀ NỘI
Nhóm 10W.N10
Trần Lê Hải
Nguyễn Cao Tú
Lớp:
Mục Lục
Đặt vấn đề..........................................................................................................3
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.4. Quy trình cuộc tấn công DOS thông qua HTTP...............................7
Đặ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
- 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:
- 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ị:
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
- 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à…
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.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.
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.
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
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
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.
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
Conntent Length : Độ lớn của mỗi tệp tin sẽ gửi lên Server.
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
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
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.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
Đâ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
Website OWASP -
https://www.owasp.org/index.php/OWASP_HTTP_Post_Tool
Apache - http://httpd.apache.org/docs/trunk/mod/mod_reqtimeout.html
Tài liệu, bài giảng môn an toàn thông tin - Viện ĐH Mở Hà Nội