Đăng ký Đăng nhập
Trang chủ Phòng chống tấn công từ chối dịch vụ phân tán vào các website...

Tài liệu Phòng chống tấn công từ chối dịch vụ phân tán vào các website

.PDF
61
97
52

Mô tả:

ĐẠ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 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 Cán bộ hướng dẫn: TS. Nguyễn Đại Thọ HÀ NỘI - 2010 2    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 i    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 ii    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 iii    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 iv    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 v    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. 1    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. 2    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 3    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. 4    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 số các công cụ DDoS dùng kiến trúc handler/ agent bảo vệ truy cập đến các handler bằng mật khẩu, hoặc mật khẩu mã hóa, hoặc mã hóa danh sách các agent để tránh việc phát hiện ra địa chỉ, và điều khiển các agent khi handler bị phát hiện. 1.2.2 Gửi lệnh gián tiếp [17] Truyền thông trực tiếp gây ra một vài nhược điểm cho những kẻ tấn công. Vì handler cần thiết để lưu định danh của các agent, và thường xuyên, một máy tính handler sẽ lưu định danh của các agent này, một khi chúng ta phát hiện và nắm giữ 5    một máy, mạng máy DDoS toàn có thể được xác định. Hơn nữa, mô hình truyền thông trực tiếp đã tạo ra sự kiện bất thường có thể dễ dàng phát hiện khi kiểm soát mạng. Do cơ chế của tryền thông trực tiếp là handler và agent phải sẵn sàng chấp nhận lắng nghe trên một cổng nhất định, vì vậy khi kiểm tra bỗng nhiên thấy máy khởi tạo kết nối đến một máy khác trên một cổng lạ là có thể phát hiện việc máy bị chiếm dụng. Kiểm tra các gói tin gửi và nhận qua kết nối này, người quản trị mạng có thể xác định địa chỉ của máy mình kết nối. Ngay cả khi không có kết nối, dựa vào việc giám sát các cổng mở trên máy cũng có thể phát hiện được các tiến trình của handler hoặc agent. Cuối cùng, kẻ tến công cũng phải viết các mã riêng của mình cho việc truyền các lệnh và điều khiển. Đó là lý do các kẻ tấn công chuyển sang việc truyền thông qua các IRC. Lúc này cả kẻ tấn công và các agent sẽ kết nối đến một IRC server nào đó, vì vậy nó là hợp lệ và không tạo ra một sự kiện bất thường nào cả. Vai trò của hanlder giờ được thực hiện bởi một kênh đơn lẻ trên IRC server, và thường được bảo vệ bởi password. Thông thường có một kênh mã hóa cứng vào trong các con bot trong máy nạn nhân, nơi mà nó kết nối vào ban đầu để tìm hiểu xem kênh điều khiển thực sự nằm ở đâu. Và sau đó nó sẽ kết nối vào trong kênh điều khiển đó. Việc nhảy kênh thậm chí cũng có thể thực hiện trong mạng IRC thông qua cách này. Từ đó, con bot có thể nhận lệnh của kẻ tấn công đến qua kênh điều khiển mà nó tìm được và kết nối đến, để thực hiện lệnh, như quét tìm máy agent khác, tấn công DDoS, update, … Việc gửi lệnh gián tiếp có rất nhiều ưu điểm. Server thì vẫn tồn tại mà được duy trì bởi người khác, còn kẻ tấn công chỉ cần một kênh thông tin của server trong hàng ngàn kênh chat khác, nên sẽ rất khó để phát hiện, dù cho là nó có thể trở thành một kênh khác lạ khi có tới hàng ngàn, chục ngàn người đột nhiên tham gia chỉ trong vài phút. Thậm chí khi bị phát hiện thì cũng cần phải tiếp xúc được với người quản lý server mới có thể dừng kênh truyền, trong khi server IRC rất có thể lại là một server nước ngoài nào đó. Hơn nữa, theo cơ chế phân tán của IRC, không cần tất cả các client phải truy cập vào cùng một server IRC mới có thể tham gia vào kênh handler, mà chỉ cần truy cập vào một server trong cùng mạng. Hầu hết các công cụ xuất hiện sau Trinity đều lợi dụng cơ chế truyền thông này. 1.2.3 Unwitting Agent [17] Ngoài ra còn có một lớp của các cuộc tấn công DDoS với lực lượng tham gia là các máy tính có lỗ hổng bảo mật mà việc khai thác không nhất thiết đòi hỏi phải 6    cài đặt bất kỳ phần mềm độc hại trên máy tính này, nhưng, thay vào đó cho phép kẻ tấn công kiểm soát các máy chủ để làm cho chúng tạo ra các giao thông tấn công. Kẻ tấn công tập hợp một danh sách các hệ thống dễ bị tổn thương và, tại thời điểm vụ tấn công, có các agent thông qua danh sách này gửi các lệnh để bắt đầu khai thác các luồng giao thông. Các lưu lượng truy cập tạo ra là hợp pháp. Ví dụ, kẻ tấn công có thể lợi dụng một lỗ hổng hiện nay tại một máy chủ Web để làm nó để chạy chương trình PING.EXE. Một số nhà nghiên cứu đã gọi là các unwitting agent. Sử dụng các unwitting agent, thay vì phải cài đặt mã độc trên máy nạn nhân, kẻ tấn công sử dụng các lỗ hổng bảo mật để thâm nhập vào máy và chạy các phần mềm hợp pháp sẵn có trên hệ thống, vì vậy việc chống trả lại hành động tấn công này trở nên rất khó và phức tạp. Do trên máy nạn nhân không chứa mã độc hại, nên các chương trình quét cổng truy cập, quét file hệ thống, hoặc quét virus không thể phát hiện.Thường chỉ có thể phát hiện thông qua việc giám sát lưu lượng mạng, các chương trình quét lỗ hổng bảo mật như Nessus. Và chỉ có cách vá các lỗi bảo mật mới giúp việc bị lạm dụng máy và các phần mềm hợp pháp trong máy được hạn chế, giảm thiểu nguy cơ bị chiếm dụng máy làm agent cho cuộc tấn công. 1.2.4 Thực hiện tấn công Một số cuộc tấn công được lên lịch trước và mã hóa trong mã độc truyền đến các agent, và định sẵn một thời điểm thì sẽ hoạt động, đồng loạt tấn công vào một mục tiêu nào đó. Tuy nhiên, hầu hết các cuộc tấn công xảy ra khi kẻ tấn công phát đi một lệnh từ các handler đến các agent. Trong vụ tấn công, giao thông điều khiển hầu hết đều giảm. Tùy thuộc vào loại công cụ tấn công được sử dụng, những kẻ tấn công có thể hoặc không có khả năng phát lệnh dừng cuộc tấn công. Thời hạn của cuộc tấn công thường được quy định tại lệnh của kẻ tấn công hay kiểm soát bởi các thiết lập mặc định biến. Một điểm khá tốt cho việc phòng thủ nếu kẻ tấn công rời khỏi mạng tấn công vào thời điểm tấn công tràn ngập đã bắt đầu. Tuy nhiên, có khả năng là kẻ tấn công là quan sát các cuộc tấn công liên tục, tìm kiếm ảnh hưởng của nó vào các mục tiêu thử nghiệm. Một số công cụ, như Shaft, có khả năng cung cấp phản hồi về thống kê tấn công tràn ngập. Những kẻ tấn công đang thử nghiệm một số loại tấn công, chẳng hạn như tấn công tràn gói tin ICMP, TCP SYN, và UDP, trước khi chính thức tấn công thực sự nhằm vào nhiều mục tiêu . 7    1.3 Các cách thức tấn công từ chối dịch vụ Có một số phương pháp gây ra từ chối dịch vụ. Tạo ra một hiệu ứng DoS là tất cả các cách có thể để phá hỏng hoặc làm cho hệ thống ngừng hoạt động. Có nhiều cách để làm một hệ thống ngừng hoạt động, và thường sẽ tồn tại nhiều lỗ hổng trong hệ thống để những kẻ tấn công sẽ cố gắng khai thác hoặc định vị để tấn công vào trong chúng cho đến khi hắn nhận được kết quả mong muốn: mục tiêu bị phải chuyển sang trạng thái offline. 1.3.1 Khai thác các điểm yếu của mục tiêu Việc tấn công bằng cách khai thác các điểm yếu của mục tiêu bao gồm việc gửi các gói tin khai thác các lỗ hổng tồn tại trong máy mục tiêu đó. Ví dụ, có một lỗi trong Windows 95 và NT, và một số hạt nhân Linux, trong việc xử lý không đúng các gói phân mảnh. Thông thường, khi một gói tin quá lớn cho một mạng nào đó, nó được chia thành hai (hoặc hơn) các gói nhỏ hơn, và mỗi phần trong số họ được đánh số thứ tự phân mảnh. Việc đánh dấu chỉ ra thứ tự của byte đầu tiên và byte cuối cùng trong gói tin, đối với bản gốc. Tại máy nhận các gói tin, chúng được hợp lại thành các gói dữ liệu gốc thông qua việc nối các gói tin theo số thứ tự đã đánh. Tuy vậy các lỗ hổng trong hạt nhân trên đã khiến cho máy trở nên không ổn định khi nhận các gói tin không đúng số thứ tự phân mảnh, khiến nó có thể treo, sụp đổ, hoặc khởi động lại. Điểm dễ bị tổn thương này có thể được khai thác bằng cách gửi gói tin UDP với số thứ tự lặp cho nạn nhân. Có một số biến thể của việc khai thác này – gửi các mảnh có số thứ tự chồng nhau, một gói tin có offset chồng lên gói thứ hai trước khi bắt đầu tiêu đề trong gói đầu tiên, và như vậy. Chúng được biết đến như là các khai thác bonk, boink, teardrop, và newtear. Các cuộc tấn công đặc biệt dễ gây tổn thương xấu bởi vì chúng có thể làm sụp đổ hay treo máy bằng việc chỉ cần gửi lặp lại một hoặc hai gói tin được chọn lựa cẩn thận. Tuy nhiên, một khi lỗ hổng được vá, các cuộc tấn công ban đầu trở nên hoàn toàn không hiệu quả. 1.3.2 Tấn công vào giao thức [17][18]Một ví dụ lý tưởng của các cuộc tấn công giao thức đó là tấn công tràn ngập gói TCP SYN. Một phiên kết nối TCP bắt đầu với việc bắt tay ba bước giữa một máy khách và máy chủ. Khách hàng gửi một gói tin TCP SYN đến máy chủ, yêu cầu một số dịch vụ. Trong phần đầu gói SYN, khách hàng cung cấp số thứ tự - sequence 8    number của mình, một uniqueper- số kết nối sẽ được sử dụng để đếm dữ liệu được gửi đến máy chủ (vì vậy các máy chủ có thể nhận ra và xử lý mất tích, thứ tiệu dữ liệu không đúng, hoặc dữ liệu lặp đi lặp lại). Khi nhận được gói SYN, máy chủ cấp phát một khối điều khiển truyền dẫn (TCB), lưu trữ thông tin về khách hàng. Sau đó nó trả lời bằng một SYN-ACK, thông báo cho khách hàng có yêu cầu rằng dịch vụ của nó sẽ được cấp, ghi nhận số thứ tự của khách hàng và gửi thông tin về số thứ tự ban đầu của máy chủ. Các khách hàng, khi nhận được gói SYN-ACK, cũng cấp phát một khối điều khiển truyền dẫn, sau đó trả lời với một gói ACK đến máy chủ, để hoàn thành việc mở kết nối. Tiềm năng lạm dụng nằm trong việc cấp phát nguồn tài nguyên của máy chủ ngay từ khi nhận được gói SYN. Khi máy chủ giao TCB của mình và trả lời bằng một SYN-ACK, kết nối được cho là nửa mở. Nghĩa là tài nguyên máy chủ cấp phát sẽ được giữ để dành cho kết nối với khách hàng, cho đến khi khách hàng gửi một gói tin ACK, đóng kết nối (bằng cách gửi gói tin RST) hoặc cho đến khi hết hạn chờ và server ngắt kết nối, giải phóng không gian đệm. Và cho dù khách hàng có gửi lại gói tin khác, hay không, thì tài nguyên đó sẽ được cấp phát giữ trong một khoảng thời gian nhất định. Trong một cuộc tấn công tràn gói tin TCP SYN, kẻ tấn công tạo ra vô số các kết nối nửa mở bằng cách sử dụng giả mạo IP nguồn. Những yêu cầu nhanh chóng vắt kiệt bộ nhớ TCB của máy chủ, và khi đó máy chủ sẽ không còn có thể chấp nhận yêu cầu kết nối đến nữa. Để có thể giữ cho tình trạng này được kéo dài như mong muốn, kẻ tấn công cần phải tạo ra một dòng đều đặn các gói SYN đối với nạn nhân (để giành lấy những tài nguyên đã được giải phóng bởi thời gian tạm ngưng hoặc hoàn thành các phiên TCP). Đây là một cuộc tấn công đặc biệt nguy hiểm, khi mà máy chủ nhận được một số lượng lớn các gói SYN hợp pháp và không thể dễ dàng phân biệt các gói từ khách hàng hợp pháp với các gói từ giao thông tấn công. Để thực hiện thành công một cuộc tấn công tràn ngập gói SYN, kẻ tấn công cần xác định vị trí cổng mở trên máy của nạn nhân. Sau đó, chỉ cần gửi một lưu lượng gói tin nhỏ, tầm 10 gói SYN/ phút là có thể dần dần vắt kiệt tài nguyên của nạn nhân. Một kiểu tấn công SYN ít phổ biến hơn đó là tấn công tràn gói SYN với cổng ngẫu nhiên. Trong đó, kẻ tấn công tạo ra một khối lượng lớn các gói tin TCP SYN nhắm mục tiêu cổng ngẫu nhiên của nạn nhân, với mục tiêu áp đảo tài nguyên mạng của nạn nhân, hơn là làm đầy bộ nhớ đệm của nạn nhân. 9    Tấn công vào giao thức rất khó để có thể chống lại bằng phương pháp sửa chữa, tạo bản vá. Bởi tạo bản vá yêu cầu phải thay đổi giao thức, trong khi thực tế cho thấy việc thay đổi giao thức internet gần như là bất khả thi. Trong một số trường hợp, việc sử dụng giao thức hiện tại một cách thông mình có thể giải quyết vấn đề. Như việc sử dụng TCP SYN cookies có thể giải quyết được tấn công tràn gói SYN mà chỉ cần thay đổi cách server xử lý kết nối đến. 1.3.3 Tấn công vào Middleware Các cuộc tấn công có thể được thực hiện trên các thuật toán, chẳng hạn như hàm băm mà thông thường sẽ thực hiện các hoạt động của mình trong thời gian tuyến tính cho mỗi mục tiếp theo. Bằng cách chèn các giá trị mà tạo ra các trường hợp xấu nhất, kẻ tấn công có thể khiến các ứng dụng thực hiện chức năng của mình trong thời gian tiếp theo hàm mũ đối với mỗi tham số nhập vào. Khi kẻ tấn công có thể tự do gửi dữ liệu được xử lý bằng cách sử dụng hàm băm dễ bị tổn thương, hắn có thể gây ra việc CPU của máy chủ bị sử dụng quá năng lực khiến cho những hoạt động bình thường chỉ tốn vài phần của giây để xử lý, giờ phải mất vài phút để hoàn thành. Và nó cũng không cần đến một số lượng lớn request để thực hiện cũng có thể làm quá tải các ứng dụng, khiến nó không còn năng lực để phục vụ được người dùng hợp pháp. 1.3.4 Tấn công vào ứng dụng Những kẻ tấn công có thể nhắm mục tiêu một ứng dụng cụ thể và gửi gói tin để đạt tới giới hạn của yêu cầu dịch vụ ứng dụng này có thể xử lý. Ví dụ, các máy chủ web phải mất một thời gian nhất định để phục vụ yêu cầu trang Web bình thường, và do đó sẽ tồn tại một số hữu hạn các yêu cầu tối đa cho mỗi giây mà họ có thể duy trì. Nếu chúng ta giả định rằng các máy chủ Web có thể xử lý 1.000 yêu cầu mỗi giây để tải các file tạo nên trang chủ của một công ty, do đó nhiều nhất là 1.000 yêu cầu của khách hàng có thể được xử lý đồng thời. Chúng ta giả định là máy chủ Web này bình thường xử lý hàng ngày là 100 yêu cầu / giây (một phần mười công suất). Nhưng nếu kẻ tấn công điều khiển 10.000 máy agent, và có khả năng mỗi một máy trong số đó có thực hiện một yêu cầu mỗi 10 giây đến máy chủ Web? Đó là tần suất 1.000 yêu cầu / giây, cộng thêm vào giả định giao thông bình thường nữa trở 10    thành 110% công suất của máy chủ. Bây giờ một phần lớn các yêu cầu hợp pháp sẽ không thể thông qua bởi vì máy chủ bị bão hòa. Cũng như các cuộc tấn công vào middle ware, một cuộc tấn công ứng dụng có thể không làm tê liệt toàn bộ máy chủ lưu trữ hoặc xuất hiện như một số lượng lớn các gói tin gửi tới server. Vì vậy, một lần nữa, nhiều cách phòng thủ không thể giúp bảo vệ chống lại loại hình tấn công này. 1.3.5 Tấn công vào tài nguyên Những kẻ tấn công có thể nhắm mục tiêu một tài nguyên cụ thể như chu kỳ CPU hoặc khả năng chuyển đổi router. Trong tháng 1 năm 2001, Microsoft phải chịu một lỗi mất điện được báo cáo gây ra bởi một lỗi cấu hình mạng. Điều này đã phá vỡ một số lượng lớn tài sản của Microsoft. Khi tin tức về cuộc tấn công được công bố, người ta đã phát hiện ra rằng tất cả các máy chủ DNS của Microsoft ở trên cùng một network segment, phục vụ bởi cùng một router. Sau đó kẻ tấn công nhắm vào cơ sở hạ tầng định tuyến ở phía trước của các máy chủ và đánh sập tất cả các dịch vụ trực tuyến của Microsoft. Microsoft nhanh chóng di chuyển để giải tán các máy chủ tên miền của họ đi nơi khác và cung cấp định tuyến đường dẫn dự phòng đến các máy chủ để gây khó khăn cho kẻ tấn công trong việc phá hoại hoạt động dịch vụ của họ. Loại bỏ tắc nghẽn và nâng cao năng lực có thể giải quyết các cuộc tấn công tài nguyên, tuy nhiên kẻ tấn công có thể đáp lại bằng các cuộc tấn công mạnh mẽ hơn nữa. Và đối với các công ty có nguồn tài nguyên ít hơn so với Microsoft, vượt quá khả năng cung cấp và dịch vụ phân tán về mặt địa lý có thể không phải là một lựa chọn khả thi về tài chính. 1.3.6 Pure Flooding Với một số lượng đủ lớn các agent, kẻ tấn công chỉ cần gửi bất kì loại gói tin nào đến mục tiêu, càng nhanh càng tốt từ mỗi máy là đủ tiêu thụ hết băng thông mạng của mục tiêu. Đây được gọi là cuộc tấn công tiêu thụ băng thông. Nạn nhân không thể một mình chống đỡ lại được cuộc tấn công này, vì các gói tin hợp pháp được gửi vào liên kết giữa nhà cung cấp dịch vụ và mạng của nạn nhân. Vì vậy, nạn nhân thường phải yêu cầu sự giúp đỡ của các ISP để lọc ra các gói tin tấn công gửi tới. Trong các trường hợp đó, thường các ISP cũng bị ảnh hưởng bởi cuộc tấn công, ít nhất là trên router kết nối giữa mạng của ISP và của nạn nhân. Thường chính họ cũng cần phải lọc lại trên router và thậm chí còn phải yêu cầu nhà cung cấp đường 11    truyền upstream lọc các giao thông đến mạng của họ. Trong vài trường hợp, các gói tin tấn công là đơn giản để lọc như các gói tin UDP đến các cổng không được sử dụng, các gói tin với giá trị IP 255. Ở trường hợp khác, các gói tin rất khó để lọc, như gói DNS query, http request… thì việc lọc sẽ loại cả các gói tin hợp lệ, do đó sau khi lọc thì giao thông gửi tới khách hàng của nạn nhân sẽ trở về không, kẻ tấn công đạt được kết quả của tấn công DoS. 1.4 IP Spoofing Một chiến thuật được sử dụng trong các cuộc tấn công nguy hiểm, đặc biệt ở DDoS đó là IP Spoofing, hay IP giả mạo. Trong các gói tin mạng bình thường, trường tiêu đề sẽ là nơi chứa địa chỉ IP của máy nguồn, địa chỉ máy đích. Giả mạo IP diễn ra khi một phần mềm độc hại tạo ra các gói tin riêng và thay thế địa chỉ IP nguồn bằng một địa chỉ IP nào khác, thông qua việc tạo và thiết lập các raw socket, socket do người dùng định nghĩa. Có một vài mức giả mạo ip khác nhau: - Giả mạo IP một cách ngẫu nhiên: phần mềm sẽ tạo ra một địa chỉ IPv4 ngẫu nhiên trong khoảng từ 0.0.0.0 đến 255.255.255.255. Trong một số trường hợp, nó sẽ tạo ra các địa chỉ IPv4 sai, như địa chỉ thuộc miền 192.168.0.0 là miền dùng cho mạng cá nhân, hoặc địa chỉ multicast, broastcast, địa chỉ không tồn tại (như 0.1.2.3). Tuy vậy trong hầu hết trường hợp thì nó đều tạo được địa chỉ IP hợp lệ và có thể định tuyến được. - Giả mạo mặt nạ mạng: Nếu một máy thuộc mạng 192.168.1.0/24 thì nó dễ dàng giả mạo một máy nào khác ở trong cùng một mạng, ví dụ như máy 192.168.1.34 có thể giả mạo dễ dàng máy 192.168.1.35 hoặc 192.168.1.99. - Giả mạo chính địa chỉ của nạn nhân: Đây là một kiểu giả mạo rất nguy hiểm nếu như máy chủ nạn nhân không có được những thiết lập phòng chống. Kẻ tấn công chỉ cần đơn giản giả mạo địa chỉ của máy nạn nhân, gửi một gói tin request, ví dụ như gói tin TCP SYN, và nếu máy nạn nhân không có một cơ chế lọc tốt, nó sẽ nhận gói tin, cấp phát tài nguyên cho request và gửi trả lời lại cho chính nó. Điều này dẫn tới một vòng lặp vô tận trong chính máy nạn nhân, giữa một bên cần nhận thông tin phản hồi còn một bên thì không bao giờ gửi thông tin phản hồi đó cả. 12    Trong thực tế, giả mạo địa chỉ IP không phải là cần thiết cho một cuộc tấn công DDoS thành công, bởi vì kẻ tấn công có thể vắt kiệt tài nguyên và khả năng xử lý của nạn nhân với một lượng lớn các gói tin mà không cần liên quan gì đến địa chỉ nguồn cả. Tuy vậy một số kẻ tấn công sử dụng IP Spoofing cho một vài lý do, như để che giấu địa chỉ của các agent, từ đó che giấu được địa chỉ của handler và của kẻ tấn công tốt hơn, hoặc sử dụng cho tấn công phản xạ nhiều vùng DRDoS là hình thức tấn công mạnh nhất hiện nay giả mạo địa chỉ IP của nạn nhân để yêu cầu một số server lớn gửi các truy vấn hợp pháp đến server nạn nhân, kết quả là nạn nhân bị tấn công các server lớn trên thế giới, và không thể nào chống đỡ nổi. IP Spoofing cũng giúp kẻ tấn công vượt qua cơ chế bảo vệ của một số máy chủ khi họ lưu địa chỉ các khách hàng thường xuyên và dùng nó làm danh sách địa chỉ tin cậy ưu tiên truy cập trong trường hợp bị tấn công. 1.5 Xu hướng của DoS Có một cuộc chạy đua liên tục giữa những kẻ tấn công và người phòng thủ. Ngay sau khi có một phương thức hiệu quả bảo vệ chống lại một loại tấn công, những kẻ tấn công thay đổi chiến thuật, tìm kiếm một cách để vượt qua những biện pháp bảo vệ này. An ninh mạng được nâng cao, kẻ tấn công càng cải thiện công cụ của họ, thêm các tùy chọn chỉ định cấp giả mạo hoặc mặt nạ mạng giả mạo. Một số lượng lớn các cuộc tấn công giả mạo ngày nay sử dụng subnet, vượt qua được hầu hết các bộ lọc giả mạo ip. Các kỹ thuật mới trong chống phân tích khiến việc phát hiện ra nhiệm vụ của công cụ tấn công khó khăn hơn. Việc che giấu mã thực thi bằng mã hóa thực hiện trong cả hệ điều hành Windows và Unix. Các mã che giấu như burneye, Shiva, và burneye2 đang được giám sát bởi các nhà phân tích an ninh để giải mã được chúng. Xu hướng phát triển các công cụ tấn công DDoS theo các chiến lược nâng cao phản ứng phòng thủ sẽ vẫn tiếp tục. Điều này được dự báo trong phân tích trinoo gốc, và xu hướng sẽ tiếp tục không suy giảm. Có rất nhiều kịch bản tiềm năng của DDoS rất khó khăn cho cơ chế bảo vệ để xử lý. 13   
- Xem thêm -

Tài liệu liên quan