CÁC KĨ THUẬT TẤN CÔNG

Một phần của tài liệu nghiên cứu một số vấn đề về bảo mật ứng dụng WEB trên internet (Trang 113)

III.1. Khái nim v Tcp bt tay ba chiu:

Đầu tiên, để tìm hiểu phương pháp tấn công DoS , luận văn sẽ trình bày cơ chế

làm việc “tcp bt tay ba chiu”.

Gói dữ liệu TCP chứa flag bits (cờ) để mô tả nội dung và mục đích của gói dữ

liệu .

Ví dụ9.III.1-1:

• Gói dữ liệu TCP với cờ SYN (synchoronize) dùng để bắt đầu 1 kết nối

• ACK (acknowledgement)

• FIN (finish) dùng để cắt 1 kết nối Cách hoạt động của gói TCP:

Chương 9: Từ chối dịch vụ (Dos)

Hình 9.III.1-1: Cơ chếthiết lập kết nối trước khi truyền số liệu

Buớc 1: Máy con gửi gói tin SYN yêu cầu kết nối

Bước 2: Nếu máy chủ chấp nhận kết nối, máy chủ sẽ gửi gói tin SYN/ACK

Server bắt buộc phải gửi thông báo lại bởi vì TCP là chuẩn tin cậy nên nếu máy con không nhận được thông báo thì sẽ nghĩ rằng packet đã bị lạc và gửi lại một packet mới .

Bước 3: Máy con gửi hồi đáp bằng gói tin ACK

Báo cho máy chủ biết rằng máy con đã nhận được SYN/ACK packet và lúc này kết nối đãđược thiết lập.

Chương 9: Từ chối dịch vụ (Dos)

III.2. Li dng TCP thc hin phương pháp SYN flood truyn thng:

Hình 9.III.2-1: Tấn công DoS truyền thống

Nhưđãđề cập về vấn đề thiết lập kết nối trong phần 1, bất cứ 1 gói tin SYN, máy chủ cũng phải để 1 phần tài nguyên của hệ thống như bộ nhớ đệm để nhận và truyền dữ liệu cho đường truyền đó. Tuy nhiên, tài nguyên của hệ thống là có hạn và hacker sẽ tìm mọi cách để hệ thống tràn qua giới hạn đó. ( Đây cònđược gọi là half-open connection vì máy khách mở kết nối giữa chừng)

Theo hình 9.III.2-1: Nếu máy chủ sau khi gửi trả một gói tin SYN/ACK để thông báo chấp nhận kết nối cho máy yêu cầu nhưng nếu địa chỉ IP của máy yêu cầu này là giả mạo thì gói tin không thể đến được đích, nên máy chủ vẫn phải dành tài nguyên cho yêu cầu đó. Sau một thời gian không nhận được phản hồi từ máy khách, máy chủ lại tiếp tục gửi một gói tin SYN/ACK để xác nhận lần nữa và cứ

như vậy, kết nối vẫn tiếp tục mở.

Nếu như hacker gửi nhiều gói tin SYN đến máy chủđến khi máy chủ không thể

Chương 9: Từ chối dịch vụ (Dos)

Kết luận:

Chỉ với một đường truyền băng thông nhỏ, hacker đã có thể phá vỡ một hệ thống. Thêm vào đó, địa chỉ IP của hacker có thểđược sửa đổi nên việc xác định thủ

phạm là một vấn đề hết sức khó khăn.

III.3. Tn công vào băng thông III.3.1. Kiu tn công th 1

Hacker hoàn toàn có khả năng làm ngập hệ thống vì băng thông của hacker lớn hơn băng thông của máy đích. Kiểu tấn công này không bị hạn chế bởi tốc độ

truyền mạng.

Ví dụ 9.III.3.1-1: Hacker có một đường truyền tốc độ cao T1 ( 1.544- Mbps ) hay lớn hơn có thể dễ dàng phá vỡ một hệ thống có đường truyền 56Kbps.

III.3.2. Kiu tn công th 2

Kiểu tấn công này được sử dụng khi đường truyền mạng của hacker là quá thấp so với đường truyền của máy đích.

Không giống như kiểu tấn công DoS truyền thống ( phần 2 ), kiểu tấn công vào băng thông lớn hơn sẽ lợi dụng những gói tin từ những hệ thống khác nhau cùng một lúc tiến đến hệ thống đích khiến cho đường truyền của hệ thống đích không còn khả năng đáp ứng, máy chủ không còn khả năng nhận một gói tin nào nữa.

Chương 9: Từ chối dịch vụ (Dos)

Hình 9.III.3.2-1: Kiểu tấn công DoS vào băng thông

Theo hình 9.III.3.2-1, tất cả các gói tin đi vào 1 mạng máy tính qua 1 "Big-Pipe" (

ống dẫn lớn ), sau đó được router chia ra những "Small Pipe" ( ống dẫn nhỏ ) cho nhiều máy tính con tùy theo địa chỉ IP của gói tin.

Nhưng nếu toàn bộ "Big-Pipe" bị làm ngập bằng những gói tin chỉ hướng đến 1 máy nhất định trong mạng máy tính con này, router đành phải chấp nhận loại bỏ

phần lớn các packet để chỉ còn lại số lượng vừa đủ đi qua "Small Pipe" của máy tính đó. Kiểu tấn công này sẽ loại máyđích ra khỏi Internet.

Đây là phương pháp tấn công kiểu từ chối dịch vụ nhưng không là DoS mà gọi là DDoS ( kiểu từ chối dịch vụ phân tán ), nghĩa là cùng một lúc nhiều máy sẽ được phát động để gửi gói tin đến máy đích ( mặc dù đường truyền của mỗi máy không cao nhưng nhiều đường truyền lại hợp thành một ống dẫn “ Big Pipe”), làm cho máy đích không còn khả năng tiếp nhận gói tin và bị loại khỏi mạng Internet, như

Chương 9: Từ chối dịch vụ (Dos)

computer con tùy

Hình 9.III.3.2-2: Tấn công DDoS

™ DRDoS (Distributed Reflection Denial of Service) - Thế hệ tiếp theo của DDoS:

Đây cũng chính là nguyên nhân khiến cho trang grc.com bị phá vỡ. Hình sau sẽ minh họa kiểu tấn công DRDoS này.

Chương 9: Từ chối dịch vụ (Dos)

Hình 9.III.3.2-3. Tấn công kiểu DRDoS

Bằng cách giả địa chỉ IP của máy đích, hacker sẽ cùng lúc gửi nhiều gói tin

đến các hệ thống máy mạnh trên mạng, các hệ thống này khi nhận gói tin SYN giả này, chấp nhận kết nối và gửi trả một gói tin SYN/ACK để thông báo. Vì

địa chỉ IP của gói tin SYN bị hacker sửa đổi thành địa chỉ IP máy đích nên những gói tin SYN/ACK sẽ được gửi về cho máy đích. Cùng một lúc nhận

được nhiều gói tin, đường truyền của máy đích không đủ khả năng đáp ứng, hệ

thống máy đích từ chối nhận bất kì gói tin nào và lúc này hệ thống máy đích

Chương 9: Từ chối dịch vụ (Dos)

III.4. Kiu tn công vào tài nguyên h thng

Đây là kiểu tấn công nhằm vào tài nguyên hệ thống hơn là tài nguyên mạng như

CPU, bộ nhớ, file hệ thống, tiến trình…..Hacker là một người dùng hợp lệ của hệ

thống, và được một lượng tài nguyên giới hạn trên hệ thống. Tuy nhiên, hacker sẽ

lạm dụng quyền truy cập này để yêu cầu thêm tài nguyên. Như vậy, hệ thống hay những người dùng hợp lệ sẽ bị từ chối sử dụng tài nguyên chia sẻ.

Kiểu tấn công sẽ khiến cho hệ thống không thể sử dụng được vì tài nguyên đã bị

sử dụng hết, không còn tiến trình để thực thi nữa.

IV. BIỆN PHÁP PHÒNG CHỐNG

Kiểu tấn công từ chối dịch vụ là kiểu tấn công gây nhiều khó khăn trong vấn đề bảo vệ cũng như điều tra tìm ra thủ phạm nhất, bởi vì hầu hết hacker đã thay đổi địa chỉ

IP của máy mình nên rất khó xác định ai là thủ phạm.

Để phòng chống khả năng khuyếch đại đường truyền, cần:

• Huỷkhả năng broadcast tại router biên

• Tăng kích thước hàng đợi kết nối

-> kết quả: có thể phòng tránh khả năng tràn hàng đợi qua nhiều kết nối, nhưng cách này sử dụng nhiều tài nguyên

• Giảm thời gian thiết lập kết nối

• Dùng những phần mềm phát hiện và phá hủy kiểu tấn công DoS:

Hầu hết những hệ điều hành hiện nay đều hỗ trợ khả năng phát hiện và phòng chống kiểu tấn công lụt SYN.

Chương 9: Từ chối dịch vụ (Dos)

Tuy nhiên cũng đã có những phần mềm được có khả năng tránh kiểu tấn công này. Ví dụ như với Linux kernels 2.0.30 và về sau cài đặt một tùy chọn gọi làSYN Cookie, kernel có nhiệm vụ truy tìm và lưu vết những khả năng có thể xảy ra kĩ thuật SYN. Sau đó, kernel sẽ sử dụng một giao thức mã hoá như SYN cookie cho phép người dùng hợp lệ của hệ thống tiếp tục kết nối đến hệ thống

Với WindowNT 4.0 trở về sau, sử dụng kĩ thuật backlog, mỗi khi hàng đợi kết nối không đủ đáp ứng, hệ thống tự động cung cấp tài nguyên cho hàng đợi, vì thế hàng

đợi sẽ không bị phá vỡ.

• Ứng dụng chỉcho phép mỗi một máy con chỉ được thiết lập sốkết nối tối đa theo quiđịnh tránh trường hợp hacker gửi cùng lúc nhiều yêu câu gây tắc nghẽn.

Nhận xét:

Kiểu tấn công từ chối dịch vụ tuy chỉ khiến cho hệ thống bị phá vỡ trong vài phút nhưng hậu quả thì khá to lớn (ảnh hưởng trên phạm vi tiền và uy tín). Đây là kĩ thuật thường được hacker sử dụng trong trường hợp không thể chiếm quyền quản trị trên hệ thống hoặc thông tin, hoặc muốn phá hủy uy tín của cơ quanđó.Thêm vàođó việc giả mạođịa chỉ khiến cho hacker càng dễ dàng thực hiện viêc tấn công mà không sợ

bị phát hiện. Thông thường kĩ thuật này được thực hiện kèm theo sự hỗ trợ của vài công cụ như ping of death, teardrop…Những công cụ này được liệt kê thêm trong chương 8 tiếp theo.

Chương 10: Một số kĩ thuật tấn công khác

Chương 10

MT S KĨ THUT TN CÔNG KHÁC

Nội dung:

I. Mã hóa URL.

II. Kiểu tấn công vượtđường dẫn III. Tấn công dựa vào kí tựrỗng IV. Ngôn ngữtrình chủ

Chương 10: Một số kĩ thuật tấn công khác

CHƯƠNG 10: MT S KĨ THUT TN CÔNG KHÁC

DE

I. MÃ HÓA URL (URL Encoding)

I.1. Khái nim

Theo RFC 1738 định nghĩa URL và RFC 2369 cho URIs, những kí tự được giới hạn sử dụng trên URL hoặc URI là một tập các kí tự US-ASCII. Theo RFC 1738, 2369 những kí tự chữ số, kí tự đặc biệt như “ $-_.+!*’() ” và một số kí tự dành riêng là không bị mã hoá trên URL hay URIs. Còn những kí tự đặc biệt khác thì

được mã hóa như khoảng trắng, < > ”…Sau khi trình chủ nhận được dữ liệu này, trình chủ sẽ tựđộng giải mãđể thao tác như bình thường.

Vậy hacker có thể lợi dụngđược gì trong URL mã hóa này.

Những nhà phát triển ứng dụng có thể sẽ thiết kế ứng dụng để kiểm tra dữ liệu nhập vào của người dùng có hợp lệ hay không, những kí tự đặc biệc như < > trong thẻ script thường được dùng trong những kĩ thuật tấn công như XSS sẽ bị

lọai bỏ Vậy để hợp thức hóa nội dung dữ liệu cần nhập, hacker thay vì nhập trực tiếp kí tự đặc biệt vào ô nhập thì họ có thể nhập những kí tự đãđược mã hoá theo chuẩn RFC 1738, RFC 2369. Như vậy bằng cách đó, hacker có thể dễ dàng vượt qua kiểm soát này.

Chương 10: Một số kĩ thuật tấn công khác

Ví dụ10.I.1-1:

http://www.myserver.c0m/script.php?mydata=%3cscript%20src=%22htt p%3a%2f%2fwww.yourserver.com%2fbadscript.js%22%3e%3c%2fscript%3e

Biến mydata sẽ mang nội dung:

<script src="http://www.yourserver.com/badscript.js"></script>

I.2. Mt sbin pháp phòng chng

• Tránh sử dụng phương thức GET vì nếu dùng GET, dữ liệu dễ dàng được thêm vào URL. Vì thế, sử dụng phương thức POST bất cứ khi nào có thể.

• Trong trường hợp URL bắt buộc được sử dụng để chuyển dữ liệu lên trình chủ, cần giới hạn kiểu dữ liệu, nên kiểm tra dữ liệu trong ứng dụng trước khi sử dụng.

• Không nên sử dụng ngôn ngữ máy khách để kiểm tra tính đúng đắn của dữ

liệu.

II. KIỂU TẤN CÔNG VƯỢT ĐƯỜNG DẪN

II.1. Khái nim

Nhiều ứng dụng sử dụng tập tin hệ thống của trình chủ trong “lớp trình bày” để

hiển thị thông tin lưu trử tạm thời. Những tập tin này bao gồm những tập tin hình

ảnh , tập tin HTML, hay những ứng dụng CGI. Thư mục WWW-ROOT là một thư mục gốc ảo bên trong trình chủ, nơi mà được truy xuất bởi trình duyệt. Ứng dụng lưu trữ thông tin bên trong hoặc bên ngòai WWW-ROOT.

Nếu ứng dụng không kiểm tra những kí tự đặc biệt, thường được sử dụng trong

Chương 10: Một số kĩ thuật tấn công khác

vượt đường dẫn. Hacker có thể yêu cầu trình chủ trả về kết quả là nội dung những tập tin vật lí như /etc/password…

Tóm lại:

Kiểu tấn công này cũng dựa vào sự lỏng lẻo trong quá trình kiểm tra dữ liệu trên URL, cookie, HTTP Header yêu cầu. Lợi dụng quyền truy xuất một tập tin của

ứng dụng, nhờ đó hacker có thể xemđược file lưu trữ trên hệ thống. Ví dụ10.II.1-1:

http://maydich.com/show.asp?result= “dangnhapthanhcong.asp”

nhưng nếu hacker thayđổi tên tập tin cần truy xuất nhưsau:

http://maydich.com/show.asp?result= ../etc/password

nhưvậy hacker có thể xem nội dung file passwordđược lưu trữ trong hệ thống.

II.2. Mt s bin pháp phòng chng

Việc phòng chống kiểu tấn công vượt đường dẫn là một thử thách lớn cho những nhàứng dụng trong một hệ thống phân tán. Tuy nhiên, cách phòng chống tốt nhất vẫn là Ứng dụng cần kiểm tra việc truy xuất file trước khi xuất kết quả cho trình duyệt.

Chương 10: Một số kĩ thuật tấn công khác

III. TẤN CÔNG DỰA VÀO KÍ TỰ RỖNG

III.1. Khái nim

Nhiều ứng dụng Web thường sử dụng ngôn ngữ lập trình như C, Java để tạo modul xử lý những công việc như thao tác trên những dữ liệu nhập vào từ người dùng. Lợi dụng kí tự kết thúc chuỗi mà hacker sẽ thêm vào một chuỗi nhập để đánh lừa ứng dụng.

Ví dụ10.III.1-1:

Giả sử hacker đưa vào một chuỗi “AA\0BB” thì qua chương trình lập trình bằng ngôn ngữ C, chuỗi này có thể bị cắt ngắn thành AAAA vì C xem \0 là dấu hiệu kết thúc chuỗi. Hacker có thể lợi dụng điều này để vượt qua các khâu kiểm tra nội dung chuỗi.

III.2. Mt s bin pháp phòng chng

Cách duy nhất để phòng chống trường hợp này đó là chỉ chấp nhận những dữ liệu hợp lệ. Những kí tự như “\” phải bị lọai bỏ trước khi ứng dụng sử dụng chúng.

IV. NGÔN NGỮ PHÍA TRÌNH CHỦ

IV.1. Khái nim

SSI là đoạn mã được nhúng vào trong trang Web để yêu cầu trình chủ cung cấp thông tinở một điểm nào đó trong trang.

Chương 10: Một số kĩ thuật tấn công khác

<!--#include file="test.asp"-->

Dòng lệnh trên nhúng nội dung file “test.asp” vào trong trang Web.

Tuy nhiên, SSI không phải được hỗ trợ trong hầu hết các trình chủ, Apache và IIS là 2 trình chủ hỗ trợ SSI. Trang Web có sử dụng SSI thường được lưu dưới dạng .shtml hoặc .stm (là phần mở rộng của .html hay .htm) để báo hiệu cho trình chủ

biết trang này có sử dụng SSI để tiết kiệm thời gian xử lí cho trình chủ (không mất thời gian tìm kiếm).

Quá trình thực hiện xửlí một trang Web yêu cầu:

Nếu không có bất kì chỉ thị nào khác, trình chủ chỉ gửi nội dung trang Web cho trình duyệt nhưng với một SSI, thì công việc tuần tựtheo những bước như sau:

• Trình chủ nhận dữ liệu và phân tích dữ liệu (tìm kiếm và phân loại những câu lệnh đặc biệt) để chỉ thị thực hiện

• Dưa trên những câu lệnh mà trình chủ tìm thấy, trình chủ thực thi những câu lệnh đó để trả kết quảcho trình duyệt.

• Trả kết quả vềcho trình duyệt

Có 3 khảnăng thực hiện:

• Nhận thông tin từ một file và chèn vào trong trang

• Gán giá trị cho một số biến

• Gọi chương trình CGI

Chương 10: Một số kĩ thuật tấn công khác

IV.2. Cách tn công

Hacker lợi dụng những ô nhậpđểchèn thêm vàođó nội dung một câu lệnh SSI. Ví dụ10.IV.2-1:

<!--#jdbc select="SELECT * FROM User" name="result" driver="org.gjt.mm.mysql.Driver"

url="jdbc:mysql://localhost:3306/project" -->

Thiết lập câu lệnh Select

<!--#jdbc name="result" next="true" -->

Câu lệnh này di chuyển con trỏđến dòngđầu tiên trong tập tin.

<!--#jdbc name="result" column="1" -->

Hiển thị nội dung dòngđầu tiên.

IV.3. Bin pháp phòng chng

Với người quản trị, cấu hình lại trình chủsao cho trình chủkhông hỗtrợSSI. Với người lập trình, kiểm tra kĩ nội dung dữ liệu gửi từ người dùng. Loại bỏ

những kí tựnhư< > # -- !…Tuy nhiên điều này nênđược thực hiện tại trình chủ, không nên kiểm tra tính đúngđắn của dữliệu bằng ngôn ngữphía trình khách, vì

Một phần của tài liệu nghiên cứu một số vấn đề về bảo mật ứng dụng WEB trên internet (Trang 113)

Tải bản đầy đủ (PDF)

(169 trang)