Phòng chống tấn công từ chối dịch vụ, đặc biệt là các cuộc tấn công từ chối dịch vụ phân tán vào các Website vẫn đang là đề tài nhận được rất nhiều quan tâm của các nhà nghiên cứu. Bên cạnh những khó khăn do cơ sở hạ tầng mạng còn yếu kém, sự phát triển không ngừng của các công cụ và phương pháp tấn công khiến cho việc phòng và chống tấn công từchối dịch vụ trở thành một vấn đề rất nan giải.
61 trang |
Chia sẻ: vietpd | Lượt xem: 1563 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Phòng chống tấn công từ chối dịch vụ phân tán vào các website - Phạm Xuân Bách, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Phạm Xuân Bách
PHÒNG CHỐNG TẤN CÔNG TỪ CHỐI DỊCH VỤ
PHÂN TÁN VÀO CÁC WEBSITE
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2010
2
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Phạm Xuân Bách
PHÒNG CHỐNG TẤN CÔNG TỪ CHỐI DỊCH VỤ
PHÂN TÁN VÀO CÁC WEBSITE
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS. Nguyễn Đại Thọ
HÀ NỘI - 2010
i
LỜI CẢM ƠN
Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo TS. Nguyễn Đại
Thọ đã hướng dẫn chỉ bảo em rất tận tình trong suốt năm học vừa qua.
Em xin bày tỏ lòng biết ơn đến các thầy cô giáo trong khoa Công nghệ thông tin,
trường Đại học Công nghệ, Đại học Quốc gia Hà Nội. Các thầy cô đã dạy bảo, chỉ dẫn
em trong suốt bốn năm học tại trường Đại học Công nghệ, tạo điều kiện tốt nhất giúp
em hoàn thành khóa luận tốt nghiệp.
Tôi xin cảm ơn các bạn sinh viên K51 trường Đại học Công nghệ, đặc biệt là các
bạn sinh viên lớp K51CA và K51MMT cùng các thành viên cùng phòng 202B kí túc
xá ngoại ngữ đã đoàn kết, giúp đỡ cùng tôi theo học các bộ môn bổ ích và thú vị trong
chương trình học đại học tại trường.
Cuối cùng, con xin gửi tới bố, chị gái, mẹ nuôi cùng gia đình lòng biết ơn và tình
cảm yêu thương.
Hà Nội, ngày 19/05/2010
Phạm Xuân Bách
ii
TÓM TẮT
Phòng chống tấn công từ chối dịch vụ, đặc biệt là các cuộc tấn công từ chối dịch
vụ phân tán vào các Website vẫn đang là đề tài nhận được rất nhiều quan tâm của các
nhà nghiên cứu. Bên cạnh những khó khăn do cơ sở hạ tầng mạng còn yếu kém, sự
phát triển không ngừng của các công cụ và phương pháp tấn công khiến cho việc
phòng và chống tấn công từ chối dịch vụ trở thành một vấn đề rất nan giải. Khóa luận
này sẽ trình bày về một phương pháp phòng chống tấn công từ chối dịch vụ hiệu quả
bằng cách sử dụng một kiến trúc mạng bao phủ để bảo vệ Website. Trong kiến trúc
này, một nhóm các SOAP, secure overlay Access Point, sẽ thực hiện chức năng kiểm
tra và phân biệt người truy cập với các chương trình độc hại của những kẻ tấn công, để
đưa yêu cầu của người dùng hợp lệ đến các node bí mật trong mạng bao phủ bằng kết
nối SSL thông qua mạng đó. Sau đó các node bí mật sẽ chuyển tiếp yêu cầu người
dùng, qua một vùng lọc, đến với Server đích. Việc dùng các bộ lọc mạnh để lọc các
yêu cầu độc hại gửi trực tiếp đến Server đích, chỉ cho phép các node bí mật được truy
cập, cùng với việc sử dụng mạng bao phủ để che giấu các node bí mật, và nhóm các
SOAP trong mạng bao phủ có thể bị tấn công để sẵn sàng được thay thế bằng các
SOAP khác, giúp cho Website được bảo vệ và hạn chế tối đa tác động của các cuộc tấn
công. Tuy vậy kiến trúc tỏ ra bất lực khi một hoặc một số các node trong mạng bao
phủ bị chiếm dụng trở thành node gây hại và tấn công mạng. Khóa luận đã thực hiện
các cải tiến, để có thể phát hiện tình huống node gây hại tấn công, và tự động chuyển
hướng truy vấn để tránh khỏi sự tấn công gây hại. Sau khi xây dựng một kịch bản tấn
công, kiến trúc cải tiến đã được kiểm tra cho thấy kết quả rất khả quan.
Từ khóa: Denial of Service, overlay node, Graphic Turing Test
iii
MỤC LỤC
LỜI CẢM ƠN............................................................................................ i
TÓM TẮT.................................................................................................. ii
MỤC LỤC ................................................................................................. iii
MỞ ĐẦU ................................................................................................... 1
Chương 1: CÁC CÁCH THỨC TẤN CÔNG TỪ CHỐI DỊCH VỤ ........ 3
1.1 Thiết lập nên mạng Agent .............................................................. 3
1.1.1 Tìm kiếm các máy dễ bị tổn thương ...................................... 3
1.1.2 Đột nhập vào máy dễ bị tổn thương....................................... 3
1.1.3 Phương pháp lây truyền ........................................................ 4
1.2 Điều khiển mạng lưới máy Agent .................................................. 5
1.2.1 Gửi lệnh trực tiếp ................................................................... 5
1.2.2 Gửi lệnh gián tiếp................................................................... 5
1.2.3 Unwitting Agent..................................................................... 6
1.2.4 Thực hiện tấn công................................................................. 7
1.3 Các cách thức tấn công từ chối dịch vụ .......................................... 8
1.3.1 Khai thác các điểm yếu của mục tiêu..................................... 8
1.3.2 Tấn công vào giao thức .......................................................... 8
1.3.3 Tấn công vào Middleware...................................................... 10
1.3.4 Tấn công vào ứng dụng.......................................................... 10
1.3.5 Tấn công vào tài nguyên ........................................................ 11
1.3.6 Pure Flooding......................................................................... 11
1.4 IP Spoofing ..................................................................................... 12
iv
1.5 Xu hướng của DoS ......................................................................... 13
Chương 2: CÁC BIỆN PHÁP PHÒNG CHỐNG TRUYỀN THỐNG .... 14
2.1 Biện pháp pushback........................................................................ 14
2.2 Biện pháp Traceback ...................................................................... 15
2.3 Biện pháp D-WARD ...................................................................... 18
2.4 Biện pháp NetBouncer.................................................................... 19
2.5 Biện pháp “Proof of Work” ............................................................ 20
2.6 Biện pháp DefCOM........................................................................ 21
2.7 Biện pháp COSSACK .................................................................... 22
2.8 Biện pháp Pi.................................................................................... 23
2.9 Biện pháp SIFF............................................................................... 24
2.10 Biện pháp lọc đếm chặng HCF..................................................... 25
Chương 3: SOS VÀ WEBSOS.................................................................. 27
3.1 Giao thức Chord ............................................................................. 27
3.2 Kiến trúc SOS................................................................................. 29
3.3 Kiến trúc WebSOS ......................................................................... 31
3.3.1 Giải pháp đề xuất ................................................................... 31
3.3.2 Kiến trúc của WebSOS .......................................................... 31
3.3.3 Cơ chế của WebSOS.............................................................. 32
3.3.3.1 Cơ chế chung................................................................... 32
3.3.3.2 Cơ chế định tuyến ........................................................... 34
3.3.4 Cơ chế bảo vệ ......................................................................... 34
3.3.5 Đánh giá ưu, nhược điểm của kiến trúc WebSOS ................ 36
Chương 4: THỰC NGHIỆM, CẢI TIẾN VÀ KẾT QUẢ ......................... 37
4.1 Môi trường thực nghiệm................................................................. 37
4.2 Cài đặt kiến trúc WebSOS.............................................................. 37
v
4.3 Kiểm tra độ trễ của các kết nối ....................................................... 38
4.4 Đề xuất cải tiến ............................................................................... 39
4.4.1 Vấn đề về mạng bao phủ của WebSOS ................................ 39
4.4.2 Đề xuất cải tiến ...................................................................... 40
4.4.3 Thực thi đề xuất ..................................................................... 42
4.4.3.1 Kịch bản thử nghiệm....................................................... 42
4.3.3.2 Kết quả thử nghiệm......................................................... 43
4.3.3.2.1 Với chương trình gốc ............................................... 43
4.3.3.2.2 Với chương trình cải tiến ......................................... 44
4.4.4 Đánh giá hiệu năng của chương trình cải tiến....................... 46
Chương 5: KẾT LUẬN ............................................................................. 50
5.1 Các kết quả đã đạt được.................................................................. 50
5.2 Các kết quả hướng tới..................................................................... 50
TÀI LIỆU THAM KHẢO ......................................................................... 52
1
MỞ ĐẦU
Tấn công từ chối dịch vụ (Dos, Denial of Services) đã ngày càng trở thành một
mối đe dọa lớn đối với sự tin cậy của mạng internet. Là các cuộc tấn công sử dụng
nhiều cách thức tổ chức và thực hiện khác nhau, từ việc dùng chỉ một máy tới việc thu
thập các máy agent dưới quyền với số lượng lên đến hàng chục ngàn máy phục vụ tấn
công, mục đích của các cuộc tấn công là làm tê liệt các ứng dụng, máy chủ, toàn bộ
mạng lưới, hoặc làm gián đoạn kết nối của người dùng hợp pháp tới Website đích. Một
nghiên cứu tại UCSD [23] đã chỉ ra rằng ngay từ đầu thập niên này các cuộc tấn công
từ chối dịch vụ đã diễn ra với một tỷ lệ lên tới 4000 cuộc tấn công mỗi tuần. Trong
năm 2002, một cuộc tấn công từ chối dịch vụ [22] đã làm sập tới 9 trong số 13 máy
chủ DNS root của toàn thế giới. Mức độ ảnh hưởng nghiêm trọng của các cuộc tấn
công từ chối dịch vụ, mà đặc biệt được nhắc đến nhiều nhất là tấn công từ chối dịch vụ
phân tán DDoS, đã dẫn đến một loạt các nghiên cứu nhằm hiểu rõ hơn về các cơ chế
tấn công, để đưa tới các cách thức giúp có thể phòng chống ảnh hưởng tiêu cực của nó.
Có nhiều phương pháp đã được đề xuất nhằm chống lại các cuộc tấn công từ chối dịch
vụ, từ việc lọc các gói tin để tránh giả mạo địa chỉ nguồn, chuyển hướng tấn công, đẩy
ngược luồng giao thông tấn công trở lại mạng, cách ly để phân biệt máy khách và giao
thông máy chủ, … Mỗi giải pháp đó đều rất tốt, và cung cấp kĩ thuật giúp chúng ta
định vị vấn đề tấn công từ chối dịch vụ. Song các phương pháp chỉ có thể bảo vệ lại
từng khía cạnh của tấn công từ chối dịch vụ. Khóa luận của tôi trình bày một phương
pháp phòng chống tấn công từ chối dịch vụ phân tán rất hiệu quả và toàn diện hơn thế.
Đó là việc áp dụng kiến trúc mạng bao phủ, để bảo vệ mục tiêu khỏi sự tiếp cận của kẻ
tấn công. Dựa trên kiến trúc mạng bao phủ, có một số đề xuất được đưa ra đó là kiến
trúc SOS và WebSOS. Kiến trúc SOS sử dụng một mạng bao phủ để chỉ cho các truy
vấn hợp pháp đã qua xác thực được phép đến server đích. Dựa vào việc sử dụng các
node bí mật, và chỉ có giao thông từ các node này mới có thể đến được server đích,
kiến trúc tỏ ra khá hiệu quả trong việc bảo vệ Website. Kế thừa kiến trúc SOS,
WebSOS triển khai mạng bao phủ với một số cơ chế cải tiến như xác thực người dùng
thông qua bài kiểm tra CAPTCHA, kết nối thông qua proxylet cùng với việc xác thiết
lập kết nối SSL và xác thực X.509, nhằm tăng mức độ bảo mật hơn cho hệ thống. Để
giúp cho WebSOS có thể tránh được cả các trường hợp các node trong mạng bao phủ
bị chiếm dụng trở thành nguồn tấn công, chúng tôi đưa ra các đề xuất cải tiến nhằm tự
động phát hiện, và thay đổi truy vấn để tránh được cuộc tấn công như vậy.
2
Phần tiếp theo của khóa luận được tổ chức như sau:
Chương 1: Các phương thức tấn công từ chối dịch vụ nêu lên một cách tổng quan
về các cách thức một kẻ tấn công phải thực hiện nhằm tạo ra một cuộc tấn công từ chối
dịch vụ.
Chương 2: Các phương pháp phòng chống tấn công từ chối dịch vụ đã được đề
xuất trước đây. Nhiều phương pháp hiện nay vẫn là những nghiên cứu đáng quan tâm
trong lĩnh vực phòng chống tấn công từ chối dịch vụ. Các phương pháp lọc, với sự
phát triển của cơ sở hạ tấng mạng, nếu được thực hiện đồng bộ có thể giảm thiểu nguy
cơ tấn công từ chối dịch vụ cho các Website.
Chương 3: SOS và WebSOS, giới thiệu về cơ chế của hai kiến trúc bảo vệ
Website khỏi tấn công từ chối dịch vụ thông qua việc sử dụng mạng bao phủ và node
bí mật. Từ đó nêu lên các đặc điểm cốt lỗi được tôi sử dụng để tham gia vào kiến trúc
được cải tiến nhằm phòng chống tấn công từ chối dịch vụ.
Chương 4: Thực nghiệm, cải tiến và kết quả nêu lên những kết quả của tôi trong
việc thực hiện triển khai mô hình kiến trúc WebSOS và các phân tích nhằm đưa ra cải
tiến giúp hệ thống trở lên mạnh mẽ hơn chống lại các cuộc tấn công ngay từ trong các
node thuộc mạng bao phủ khi một số node bị chiếm dụng trở thành nguồn tấn công.
Chương 4 cũng đưa ra các kết quả đánh giá hiệu năng của kiến trúc nguồn WebSOS và
kiến trúc cải tiến thông qua kịch bản tấn công được xây dựng và qua việc đo một số
thông số về độ trễ truy vấn thực hiện qua mô hình các kiến trúc này.
Chương 5: Kết luận tổng kết lại các kết quả đã đạt được, cùng với các kết quả mà
nghiên cứu khóa luận hướng tới nhằm hoàn thiện mô hình để hướng tới mục tiêu có
thể triển khai thực hiện.
3
Chương 1: CÁC CÁCH THỨC TẤN CÔNG TỪ
CHỐI DỊCH VỤ
Một cuộc tấn công DDoS cần phải được chuẩn bị kỹ lưỡng bởi kẻ tấn công.
Trước tiên là bước chiếm dụng các máy khác làm lực lượng cho bản thân. Việc này
được thực hiện bằng cách tìm máy dễ bị tổn thương, sau đó đột nhập vào chúng, và cài
đặt mã tấn công. Tiếp theo đó, kẻ tấn công thiết lập các kênh giao tiếp giữa các máy,
để chúng có thể được kiểm soát và tham gia cuộc tấn công một cách có phối hợp. Việc
này được thực hiện bằng cách sử dụng một kiến trúc handler/agent hoặc một điều
khiển và kênh điều khiển thông qua mạng IRC. Một khi các mạng DDoS được xây
dựng, nó có thể được sử dụng để tấn công nhiều lần, chống lại các mục tiêu khác nhau.
1.1 Thiết lập nên mạng Agent.
Tùy vào mỗi kiểu tấn công từ chối dịch vụ, kẻ tấn công cần tìm kiếm và thiết lập
cho mình một mạng lưới lớn các máy tính để dùng cho việc tấn công. Việc này có thể
thực hiện thủ công, bán tự động hoặc là tự động hoàn toàn. Trong các trường hợp của
hai DDoS công cụ nổi tiếng trước đây, trinoo và Shaft, chỉ quá trình cài đặt được tự
động, trong khi phát hiện và chiếm dụng các máy dễ bị tổn thương được thực hiện một
cách thủ công. Hiện nay, những kẻ tấn công thường sử dụng script để tự động hóa toàn
bộ quá trình.
1.1.1 Tìm kiếm các máy dễ bị tổn thương
Quá trình tìm kiếm dễ bị tổn thương được gọi là quét - scanning. Kẻ tấn công sẽ gửi
một gói vài mục tiêu lựa chọn để xem liệu nó có còn sống và dễ bị tổn thương. Nếu
nhận thấy máy phù hợp, những kẻ tấn công sẽ cố gắng đột nhập vào máy.
1.1.2 Đột nhập vào máy dễ bị tổn thương
Kẻ tấn công cần phải khai thác một lỗ hổng trong máy mà hắn đang có ý định
tuyển dụng để được truy cập vào và “sở hữu” chúng. Phần lớn các lỗ hổng bảo mật
cung cấp cho một kẻ tấn công quyền truy cập vào hệ thống với quyền cao nhất -
administrator, và hắn có thể thêm/ xóa/ thay đổi các tập tin hoặc hệ thống cài đặt theo
ý thích. Và để tạo thuận lợi cho việc truy nhập vào máy tính bị sở hữu trong tương lai,
kẻ tấn công thường cho chạy một chương trình cố gắng lắng nghe kết nối đến từ một
cổng nhất định. Chương trình này được gọi là backdoor. Kết nối thông qua backdoor
4
một số được bảo vệ bởi mật khẩu mạnh, một số lại mở và chấp nhận mọi kết nối bên
ngoài.
Thường các lỗ hổng bảo mật sao khi được phát hiện sẽ được giảm nhẹ bởi các
bản vá – patch. Tuy vậy các kẻ tấn công luôn cố gắng khai thác, tìm kiếm các lỗ hổng
khác mà máy có thể có. Và có một lỗ hổng không thể giảm nhẹ, hoặc được sửa bởi bản
vá, đó là một mật mã truy nhập máy tính yếu. Một số chương trình khai thác có chứa
các từ điển mật khẩu chung thường được sử dụng. Chúng thử các mật khẩu trong danh
sách đó để đột nhập vào máy tính. Có thể mất nhiều thời gian, song trong nhiều trường
hợp chúng cũng khai thác được các mật khẩu yếu của người dùng và đạt được quyền
truy nhập hợp lệ đến máy người đó. Người dùng thường nghĩ rằng không đặt mật khẩu
cho tài khoản Administrator là hợp lý, hoặc cho rằng, "password" hoặc một số từ đơn
giản khác là đủ để bảo vệ tài khoản. Và đó là những nhầm lẫn nghiêm trọng có thể
khiến họ phải trả giá đắt.
1.1.3 Phương pháp lây truyền
Kẻ tấn công cần phải quyết định một mô hình phát tán cho việc cài đặt phần mềm
độc hại của mình. Một mô hình đơn giản là kho lưu trữ trung ương, hoặc bộ nhớ cache,
với cách tiếp cận: Kẻ tấn công lưu các phần mềm độc hại trong một kho lưu trữ tập tin
(ví dụ, một máy chủ FTP) hoặc trang web của một Web, và các máy truy cập sẽ bị
nhiễm mã từ kho này. Kẻ tấn công cài đặt trinoo và Shaft sử dụng phương pháp tiếp
cận tập trung như vậy trong những ngày đầu. Năm 2001, sâu W32/Leaves sử dụng một
biến thể của các trang web bị cấu hình lại làm bộ nhớ cache của nó, cũng như các sâu
W32/ SoBig gửi thư hàng loạt trong năm 2003. Với người phòng chống, phương pháp
này có thuận lợi đó là dễ dàng trong việc nhận diện để loại bỏ nguồn tập trung mã độc
của kẻ tấn công.
Một mô hình khác là back-chaining, hay là kéo-pull, trong đó những kẻ tấn công
mang công cụ của mình từ một máy chủ lưu trữ ban đầu bị tổn hại đến máy chủ để
chiếm dụng máy mới, cứ như vậy thành một chuỗi nối tiếp.
Cuối cùng, phương pháp chủ động, push, hay lan truyền thẳng kết hợp giữa việc
khai thác và lây truyền trong cùng một tiến trình. Điểm khác biệt so với back-chaining
đó là trong ngay chính tiến trình khai thác đã chứa các mã độc để lan truyền đến máy
bị tốn hại, chứ không phải là copy mã độc đó sau khi đã chiếm dụng các máy tổn hại.
5
1.2 Điều khiển mạng lưới máy Agent
Khi mạng lưới các agent lớn dần, kẻ tấn công cần giao tiếp với các máy này để
điều khiển chúng cho hoạt động tấn công. Mục đích của việc giao tiếp này nhằm giúp
kẻ tấn công có thế đưa ra lệnh bắt đầu/ kết thúc các cuộc tấn công cụ thể cũng như
giúp hắn có thể lấy những số liệu cụ thể về hành vi của các máy agent.
1.2.1 Gửi lệnh trực tiếp
[17] Một số các công cụ DDoS như trinoo xây dựng một mạng lưới
handler/agent. Đây là kiến trúc các lớp bao phủ giúp kẻ tấn công có thể che giấu định
danh của bản thân. Hắn sẽ sử dụng một, hoặc một vài máy để chuyển các lệnh điều
khiển mạng DDoS đến các máy nạn nhân – agents. Các máy này được gọi là các
handler, hay master. Các câu lệnh có thể là các văn bản không được mã hóa, hay được
mã hóa, hoặc các chuỗi byte nhị phân. Phân tích lệnh và điều khiển giao thông giữa
các handler và các agent có thể cho cái nhìn sâu sắc khả năng của những công cụ mà
không cần phải truy cập vào các phần mềm độc hại hay mã nguồn của nó.
Để các handler và agent, theo các công cụ như trinoo, Stacheldraht, và Shaft có
thể hoạt động, các handler phải biết địa chỉ của các agent và nhớ được chúng sau khi
hệ thống hoặc chương trình khởi động lại. Các công cụ DDoS trước đây thường mã
hóa chúng lại, rồi gửi thông báo với handler trong khi chiếm dụng máy agent. Các
handler sẽ lưu giữ chúng trong một file để duy trì thông tin về mạng lưới DDoS. Trong
vài trường hợp các handler còn không chứa cơ chế xác thực, nghĩa là bất kì máy nào
cũng có thể gửi lệnh đến cho handler. Các nghiên cứu trước đây về một số công cụ
như trinoo, TFN, Stacheldraht, Shaft, và mstream đều cho thấy các handler và agent
đều có thể bị phát hiện và điều khiển lại. Điều này khiến một số kẻ tấn công có thể sử
dụng mạng lưới DDoS của kẻ khác, cũng như giúp một số người phòng thủ có thể điều
khiển ngược lại các handler để ngừng cuộc tấn công. Một