BÀI TOÁN ĐẢM BẢO AN TOÀN TRONG HỆ PHÂN TÁN Hiện nay có nhiều cách định nghĩa hệ phân tán khác nhau. Có người nói “hệ phân tán là tập hợp các máy tính tự trị được kết nối với nhau bởi một mạng máy tính và được cài đặt phần mềm tương ứng cho hệ phân tán”. Có người lại định nghĩa “hệ phân tán là một hệ thống có chức năng và dữ liệu phân tán trên các trạm(máy tính) được kết nối với nhau bởi một mạng máy tính” hay “hệ phân tán là một tập các máy tính độc lập giá tiếp với người dùng như một hệ thống thống nhất, toàn vẹn”.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÀI TOÁN ĐẢM BẢO AN TOÀN TRONG HỆ PHÂN TÁN Giáo viên hướng dẫn: TS. Vũ Thị Hương Giang Học viên thực hiện : Trương Thảo Nguyên CB120098 Vũ Đình Phú CB120104 Nguyễn Thị Thùy Liên CB120046 Lớp: Công nghệ thông tin 2 (KT) Chuyên ngành: Công nghệ thông tin (KT) Đề bài: Đề số 07. Bài toán đảm bảo an toàn trong hệ phân tán HÀ NỘI 12 – 2012 Mục lục 2 1. Giới thiệu chung 1.1. Tổng quan về hệ phân tán 1.1.1. Khái niệm hệ phân tán Hiện nay có nhiều cách định nghĩa hệ phân tán khác nhau. Có người nói “hệ phân tán là tập hợp các máy tính tự trị được kết nối với nhau bởi một mạng máy tính và được cài đặt phần mềm tương ứng cho hệ phân tán”. Có người lại định nghĩa “hệ phân tán là một hệ thống có chức năng và dữ liệu phân tán trên các trạm(máy tính) được kết nối với nhau bởi một mạng máy tính” hay “hệ phân tán là một tập các máy tính độc lập giá tiếp với người dùng như một hệ thống thống nhất, toàng vẹn”. Tuy nhiên, dù định nghĩa theo cách này hay cách khác, hệ phân tán vẫn phải bao gồm những thành phần(máy tính) tự trị, tương tác qua lại với nhau thông qua mạng. Các máy tính tự trị này trao đổi, làm việc nhằm phục vụ một mục đích chung. 1.1.2. Đặc điểm hệ phân tán Theo như định nghĩa trên, hệ phân tán có một vài đặc điểm chính sau [6]: - Đa thực thể (Multiple entities): Một hệ phân tán bao giờ cũng là sự kết hợp của nhiều thực thể khác nhau. Thực thể ở đây có thể là người dùng, có thể là các máy tính tính toán, cũng có thể là một hệ thống hoạt động độc lập. - Không đồng nhất (Heterogeneity) - Hoạt động song song (Concurrency) - Chia sẻ tài nguyên (Resource sharing) 1.1.3. Phân loại hệ phân tán Hệ phân tán có thể được chia thành ba loại chính sau: - Hệ tính toán phân tán (distributed computing systems): hỗ trợ việc tính toán một cách phân tán - Hệ thông tin phân tán (Distributed information systems): hỗ trợ lưu trữ, truy cập và quản lý dữ liệu một cách phân tán - Hệ phân tán rộng khắp (Distributed pervasive systems): là thế hệ hệ phân tán hiện nay. 1.1.4. Các kiến trúc của hệ phân tán Có thể thiết kế một hệ phân tán theo 4 kiến trúc khác nhau [6] lần lượt là “client-server”, “multinode systems”, “P2P” và “service oriented systems”. Client-server là kiến trúc được biết tới nhiều nhất trong các kiến trúc của hệ phân tán. Kiến trúc này bao gồm hai thành phần là server và client. Server có nhiệm vụ cung cấp các dịch vụ cho client hoặc một nhóm các clients. Các client không cần quan tâm đến việc xử lý nghiệp vụ. Chức năng này sẽ được server đảm nhiệm. Khi cần các thao tác xử lý nghiệp vụ, client sẽ hỏi server để có được kết quả cần thiết. Trong kiến trúc client-server, chỉ tồn tài một server xử lý nghiệp vụ, phục vụ các client. Mở rộng hơn, kiến trúc multinode systems, server được chia thành nhiều phần nhỏ (nodes). Qua đó, 3 hỗ trợ quá trình xử lý song song nhằm nâng cao hiệu suất, chống lỗi và đảm bảo việc đáp ứng nhiều client hơn (tính chất mở rộng) Khác với hai kiến trúc đã đề cập trước, P2P (peer-to-peer) là mô hình ở đó không có sự phân cấp. Trong kiến trúc này, tất cả các máy (nodes) đều có chung một cấp độ và không còn khái niệm client cũng như server. Một máy tham gia vào hệ thống trao đổi với các máy khác sẽ có vai trò thay đổi phụ thuộc vào yêu cầu của bài toán cần thực hiện, phụ thuộc vào thời điểm xử lý công việc. Có thể hiểu, máy đó tại thời điểm A đóng vai trò như một server để xử lý một nghiệp vụ nào đó, nhưng tại thời điểm B khác lại đóng vai trò như một client yêu cầu dịch vụ từ một máy khác.Ưu điểm của kiến trúc này là khả năng mở rộng (có thể hình dung là không giới hạn) và khả năng chịu lỗi cao. Tuy nhiên kiến trúc này lại yêu cầu việc giải quyết bài toán bảo mật một cách cẩn thận và thấu đáo Cuối cùng, kiến trúc hướng dịch vụ (Service oriented architechture - SOA) được xây dựng trên mô hình client-server nhưng tập trung lấy dịch vụ làm trung tâm. Một dịch vụ có thể hiểu là một phần hoạt động tự chủ của một phần mêm với chức năng được định sẵn. 1.2. Tổng quan về bài toán đảm bảo an toàn trong hệ phân tán. Quá trình thiết kế và cài đặt một hệ phân tán đòi hỏi phải cân nhắc nhiều các vấn đề khác nhau như sự đồng bộ, sự thống nhất về mặt dữ liệu, khả năng chống lỗi cũng như bài toán bảo mật, an toàn thông tin…vv Trong đó, bài toán đảm bảo an toàn trong hệ phân tán là một trong những vấn đề quan trọng và khó khăn nhất. Trong những phần tiếp theo, nhóm sẽ trình bày về các vấn đề để của đảm bảo an toàn trong hệ phân tán. Để người đọc hiểu rõ, nhóm sẽ trình bày một số khái niệm cơ bản trong phần 1.2.1 dưới đây. Từ đó, nhóm sẽ đề cập đến các vấn đề thường gặp để đảm bảo an toàn trong hệ phân tán ở phần 1.2.2 1.2.1. Các khái niệm 1.2.1.1. Điểm yếu (Vulnerability) Điểm yếu là các đặc tính hoạt thiếu sót có thể bị khai thác và dẫn tới hậu quả vi phậm các yêu cầu về đảm bảo an toàn. Điểm yếu có thể tòn tại trong phần cứng, phần mềm, trong kiến trúc mạng, trong hệ thống dữ liệu. Điểm yếu có thể xuất hiện trong quá trình thiết kế hay cài đặt hệ thống, thậm chí trong carc bước, các thủ tục đảm bảo an toàn. Có thể phân chia điểm yếu ra làm hai loại: điểm yếu về mặt tính toán và điểm yếu về mặt thông tin [1]. Điểm yếu về mặt tính toán (operational-based) đề cập đén những lỗi không mong muốn xảy ra mà không lường trước được. Điểm yếu về mặt thông tin (information-based)có thể hiểu là những truy cập trái phép, sự không toàn vẹn của dữ liệu.vv 4 1.2.1.2. Đe dọa (Threats) Đe dọa được hiểu là các sự kiện tiềm ẩn có thể vi phậm các yêu cầu đảm bảo an toàn thông tin. Đe dọa cũng có thể hiểu là một kịch bản khai thác các điểm yếu của hệ thống từ đó gây ra các vị phạm về an toàn thông tin [1]. Mối đe dọa có thể được phân loại dựa vào hành động hoặc hậu quả của nó để lại. Dựa vào các hành động, đe dọa được chia thành các loại như các hành động xem thông tin trái phép, các hành động phá hủy, sửa chữa dữ liệu. Nếu phân chia theo hậu quả, đe dọa có thể chia thành mối đe dọa bị lộ thông tin, xuyên tạc, bóp méo thông tin, chối bỏ trách nhiệm, không toàn vẹn dữ liệu … 1.2.1.3. Tấn công (Attack) Một kẻ xấu thực hiện khai thác các điểm yếu thông qua các kịch bản, các mối đe dọa vốn có của hệ thống thì được gọi là một cuộc tấn công. Tấn công thường khiến cho hệ thống hoạt động không bình thường hoặc bị ảnh hưởng về mặt thông tin. 1.2.2. Các vấn đề thường gặp khi bảo đảm an toàn trong hệ phân tán Ngày nay, đảm bảo an toàn trong hệ phân tán nói riêng và bài toán an toàn thông tin nói chung quan tâm đến một số các vấn đề sau: - Quản lý truy nhập (Access control): Hệ phân tán là sự tương tác của nhiều máy tính có tính tự chủ, là việc sử dụng chung tài nguyên. Bài toán đặt ra là làm sao để quản lý được máy nào, thành phần nào được quyền yêu cầu dịch vụ, sử dụng tài nguyên nào trong từng trường hợp là một bài toán khó. - Xác thực (Authentication): Mọi hoạt động đều cần được xác thực. Làm thế nào để biết được một máy A đang thực hiện trao đổi trong mạng phân tán có phải là chính máy A hay không? Trong mô hình client-server, làm thế nào để server biết là đang giao tiếp với client nào và ngược lại. Để giải quyết vấn đề này, người ta hay sử dụng kĩ thuật mã hóa (crytography) Ngoài ra xác thực cũng có thể tiếp cận trên phương diện xác thực một thông điệp (message authentication). Ở đó, vấn đề xác định được một thông điệp không bị sửa đổi trong quá trình truyền tải, xác định nội dung của thông điệp là chính xác rất quan trọng. - Chống chối bỏ (Non-repudiation): Đây là yêu cầu đặt ra với một số hệ thống cần phải chắc chắn rằng thành phần gửi yêu cầu, hoặc gửi thông tin (sender) không thể chối bỏ được rằng mình đã gửi đi yêu cầu hay thông tin đó. Ví dụ như khách hàng không thể chối bỏ rằng mình đã thực hiện giao dịch chuyển tiền để mua một mặt hàng nào đó hay trong cuộc trao đổi giữa hai công ty A và B, A không thể chối bỏ là mình đã gửi hợp đồng có nội dung xác định cho bên B. Cũng như vậy, B không thể chối bỏ rằng đã đồng ý với các điều khoản trong bản hợp đồng khác với bản hợp đồng mà bên A gửi. Có thể thực hiện được điều này thông qua một số các kĩ thuật về chữ kí (liên quan đến nội dung tin nhắn) hoặc kĩ thuật mã hóa văn bản 2. Các điểm yếu và mối đe dọa của một hệ phân tán Tiếp theo, nhóm sẽ trình bày về các điểm yếu(vulnerability) và mối đe dọa (threats) có thể có trong một hệ phân tán nhằm giúp cho người đọc hình dung được các nguy cơ tiềm ần trong hệ 5 phân tán. Nhóm xem xét, đánh giá các điểm yếu, mối đe dọa trên các góc nhìn khác nhau từ phía máy chủ, cơ sở hạ tầng, ứng dụng và dịch vụ (tham khảo từ [6]) 2.1. Điểm yếu và mối đe dọa trong máy chủ (host- level) 2.1.1. Nghe lén Trong các mô hình hợp tác tính toán trên hệ phân tán, mô hình tính toán lưới, các máy tính phải trao đổi thông tin tính toán với nhau, người dùng phải chia sẻ tài nguyên tính toán, chia sẻ màn hình với nhau. Tuy nhiên tồn tại một điểm yếu khiến cho những kẻ xấu có thể chặn bắt ở giữa đường truyền giữa hai máy tính. Kẻ xấu truy cập vào các thông điệp được gửi qua lại giữa hai máy tính này và thay đổi các kết quả tính toán với hi vọng có thể làm hệ thống ngừng hoạt động hoặc thực hiện các thao tác sai. Đặc biệt, kiểu tấn công này chỉ thành công nếu như kết quả trả ra dưới dạng dễ dàng có thể hiểu được. 2.1.2. Tràn bộ nhớ Overflow Tràn bộ nhớ là một điểm yếu thường gặp trong các ứng dụng phần mềm. Các điểm yếu liên quan đến tràn bộ nhớ được nhắc đến rất nhiều trong các báo cáo của cấc tổ chức CERT[6]. Tràn bộ nhớ khiến cho quá trình truy nhập bào bộ nhớ có thể bị lỗi, bị dừng lại hoặc là thực hiện không đúng. Trong thực tế tràn bộ nhớ bao gồm hai loại là stack over flow và heap over flow, tận dụng hai đoạn bộ nhớ khác nhau là heap và buffer có thể gây tràn. Dựa trên cơ chế lập trình, kẻ tấn công có thể truyền dữ liệu đầu vào rất lớn, gây tràn bộ nhớ, thông qua đó chuyển hướng thực hiện chương trình sang thực hiện những đoạn mã độc đã được cài sẵn vào trong đoạn input nhập vào. Ví dụ đơn giản, một chương trình có chức năng chọn file để thực thi tính toán trên nội dung của file đó. Nếu lập trình lỗi có thể có lỗi buffer over flow (khi chương trình load nội dung của file đó vào bộ nhớ stack). 2.1.3. Tiêm nhiễm mã độc Tiêm nhiễm mã độc là những cố gắng của kẻ tấn công nhằm vào các chương trình mà không kiểm tra giá trị đầu vào của người dùng một cách cẩn thận. Thông thường, trong kiểu tấn công này, kẻ xấu sử dụng các đoạn mã thực thi , thông qua các giá trị đầu vào của chương trình tiêm nhiễm vào trong hệ thống. Một số ví dụ điển hình của loại hình tấn công này đó là kẻ tấn công có thể thông qua chức năng upload file của một trang web để chèn Shell, backdoor vào hệ thông. Sau đó kẻ xấu có thể truy nhập vào shell và backdoor này, thực hiện các thao tác xấu thông qua đó. Ví dụ khác là SQL injection. Lợi dụng khả năng chèn thêm thông tin vào câu truy vấn đề cơ sở dữ liệu, kẻ xấu có thể truy vấn ra được các thông tin nhạy cảm của dữ liệu như tên bảng, tên trường, thông tin đăng nhập của users. 6 2.2. Điểm yếu và mối đe dọa trong ứng dụng (application-level) 2.2.1. Injection Injection đề cập đến một tập các điểm yếu ở dó các ứng dụng không kiểm tra giá trị đầu vào một cách cẩn thận. Đặc biệt, injection hay xảy ra trong trường hợp mà giá trị đầu vòa của người dùng là một phần của câu lệnh hoặc câu truy vấn. Có nhiều hình thức tấn công khác nhau thông qua hình thức injection. SQL injection mà trình bày ở trên là một trong số đó. Ngoài ro có thể nhắc tới một số loại hình khác như: - Blind injection: Hình thức này gần giống với SQL injection.Nhưng thay vì kẻ tấn công có được thông tin về dữ liệu khi chèn đoạn truy vấn SQL vào trong giá trị đầu vào thì kẻ tấn công chỉ có thể xác định được sự đúng sai của câu truy vấn. Mặc dù vậy, vẫn có những kĩ thuật giúp cho kẻ tấn công lấy được thông tin cần thiết trong dữ liệu, thông qua việc kiểm tra tính đúng sai của các câu truy vấn con. Ví dụ, lấy pass của một admin có thể kiểm tra kí tự đầu tiên có phải là kí tự a. Nếu đúng kiểm tra tiếp kí tự thứ 2 cho đến hết. - XPATH injection: Đây là cách tấn công vào các ứng dụng sử dụng các văn bản XML. Xpath là cách để xác định chính xác đến một item trong XML document đó. Để truy vấn đền các phần tử này phải thông qua Xquery. Qua đó, kẻ tấn công có thể chèn các đoạn Xquery vòa trong giá trị đầu vào (tương tự SQL injection) 2.2.2. XSS XSS là một kĩ thuật được Hacker sử dụng cố gắng bắt một Website hiển thị một đoạn mã đôc hại. Đoạn mã đó sẽ được thực thi ở trên trình duyệt web của người dùng. Hay hiểu theo một cách chính xác hơn, XSS là một loại lỗ hổng máy tính trên ứng dụng web cho phép kẻ xấu hacker có thể chèn những đoạn client-script (đoạn mã được thực thi trên trình duyệt của người dùng) độc hại vào trong một trang web. Trang web này sau đó sẽ được người khác truy cập, và đoạn mã độc sẽ được thực hiện tại trình duyệt của người dùng. Một người dùng (client) khi truy nhập vào một website thông qua trình duyệt web của mình, sẽ gửi một http request đến server chạy ứng dụng cho website đó. Server sau khi nhận được request sẽ xử lý và gửi lại về phía client một http response. Kết quả trả lại bao gồm header để quản lý thông tin, mã html của trang web đã được tạo ra theo yêu cầu, các file style css, các đoạn thực thi ajax, javascript, các hình ảnh, video… Trình duyệt web của người dùng khi nhận được những thông tin này sẽ hiển thị cho người dùng các thông tin về website đó. Đồng thời, trong quá trình người dùng thao tác trên trình duyệt, một số đoạn mã client-script (ajax, javascript) cũng được thực thi. Do đó, nếu như trong response có chứa những đoạn mã client- script độc hại, thì người dùng sẽ vô tình thực thi những đoạn mã đó. Các đoạn mã này có thể gây ra nhiều tác hại như người dùng bị ăn trộm cookies, người dùng bị mất tài khoản hoặc mật khẩu, người dùng thực thi một worm Có ba cách thông thường để chèn một đoạn mã client-script vào nội dung của một website: 7 - Người quản lý website đó chèn đoạn mã vào nhằm mục đích xử lý ứng dụng thông thường. - Nội dung của website trong quá trình response bị thay đổi do tồn lại những lỗ hổng an ninh mạng hay trong hệ điều hành,. - Website tồn tại lỗ hổng XSS và bị khai thác. Phần tiếp theo sẽ trình bày cụ thể hơn về việc khai thác theo ba loại khác nhau của XSS 2.2.3. DoS Một cách tấn công phổ biến trên mạng là DoS. Đây là phương thức tấn công từ chối dịch vụ nhằm mục đích khiến cho một ứng dụng hoặc một dịch vụ không thể thực hiện các yêu cầu của người dùng hợp lệ. Có rất nhiều cách có thể làm một ứng dụng hoặc một dịch vụ ngừng phục vụ người dùng. Đó có thể xuất phát từ kiến trúc phần cứng, cấu hình mạng, ứng dụng phần mềm chạy trên server, máy cung cấp dịch vụ. Cụ thể về cách tấn công này, nhóm sẽ trình bày trong phần 3 tiếp sau đây. 2.2.4. Mã hóa không đúng cách Trong phần trước, bài toán án toàn thông tin có đề cập đến các vấn đề về chống chối bỏ, hay xác thực. Để đảm bảo được các vấn đề này đều cần phải dùng đến việc mã hóa. Tuy nhiên nếu như mã hóa không đúng cách, hoặc sử dụng phương thức mã hóa có lỗ hổng có thể tạo thành lỗ hổng để kẻ xấu lợi dụng. Ví dụ như trong ứng dụng web, tại form nhập username, password. Nếu đăng nhập chỉ dựa vào API mà thông tin password được truyền đi trên mạng bằng plantext (dạng không mã hóa) thì rất có thẻ user đó sẽ bị lộ mật khẩu (do đường link API lưu lại trong history của browser). Tương tự như vậy, nếu như mật khẩu chỉ được mã hóa bằng cách đơn giản, hai chiều như Base64 chẳng hạn. Kẻ xấu hoàn toàn có thể nhận biết được dấu hiệu của mã hóa base64 chỉ bằng việc nhìn vào đoạn mã, giải mã nó và lấy được thông tin cần thiết. Một ví dụ khác của mã hóa không đúng cách đó chính là Flick API, ứng dụng chia sẻ ảnh của Yahoo rất nổi tiếng. Flick đã từng bị tấn công do kẻ tấn công đã biết cách chèn được các đoạn xác thực giả vào đoạn giá trị được mã hóa bằng hàm mã hóa khối. Qua đó thay đổi được thông tin xác thực mà không càn phải biết nội dung của chuỗi kí tự bí mật (tấn công năm 2010) 2.2.5. Quản lý session không đúng cách Quản lý session là một bài toán phổ biến trong các ứng dụng web trong hệ phân tán. HTTP là một stateless protocol (giao thức truyền thôn xử lý từng yêu cầu như là một giao dịch độc lập. Quá trình xử lý yêu cầu này không phụ thuộc vào các yêu cầu trước). Do đó, một server có thể xử lý một chuỗi các yêu cầu từ cùng một người dùng. Để quản lý truy nhập của từng người dùng, server đưa ra khái niệm session cho họ. Mỗi người dùng tương ứng với một sessionID xác định. Mỗi session cũng có thời gian sống của nó. SessionId và thời gian sống của session phụ thuộc và cấu hình của hệ thống, cài đặt trên server. Do đó việc cấu hình và cài đặt session system trên server không hợp lý có thể tạo thành điểm yếu có kẻ xấu lợi dụng 8 Lấy một ví dụ thực tế cho các trang web được lập trình bằng ASP.NET. Mỗi một user có một session và sessionID nhất định. Tuy nhiên, ASP.NET có cớ chế quản lý sessionID dựa trên cookie. Nếu như người dùng truy nhập vào hệ thống mà trong cookies đã có sessionID thì hệ thống sẽ dùng sessionID đó luôn (kể cả khi sessionID của session đã hết thời gian sống). Nếu như cookies chưa có sessionID, hệ thống cấp một sessionId mới. Trong thực tế, kẻ gian có thể lợi dụng lấy được sessionID trong một máy dùng chung, lưu trữ lại tại một máy khác. Khi có một người dùng khác sử dụng máy dùng chung này đăng nhập vào hệ thống thì người dùng đó sẽ dùng sessionID đã được sao lưu kia. Kẻ xấu có thể truy cập vào hệ thống thông qua sessionID đó với tư cách của người dùng bị hại. Kịch bản này đã từng rất phổ biến trong các hệ thống ngân hàng năm 2010. Như vậy, có thể thấy, trong một hệ phân tán, tiềm ẩn rất nhiều các điểm yếu cũng như các mối đe dọa nếu như không được thiết kế và cài đặt một cách cẩn thận. Thông qua các điểm yếu, các mối đe dọa đó, kẻ xấu hoàn toàn có thể tấn công nhằm phá hoại hệ thống. Với mỗi loại đe dọa khác nhau, kẻ xấu có thể thực hiện tấn công theo nhiều cách khác nhau. Trong khuôn khổ của bài tiểu luận, nhóm thực hiện không tham vọng trình bày hết tất cả các loại hình tấn công vào một hệ phân tán. Nhóm thực hiện sẽ trình bày về loại hình tấn công phổ biến trong những nằm gần đây trên mạng là tấn công từ chối dịch vụ DoS. Đây cũng là loại hình tấn công khó phòng chống khiến nhiều nhà quản trị, thiết kế và xây dựng các hệ thống phân tán phải đau đầu. 3. Từ chối dịch vụ DoS. 3.1. Tổng quan về tấn công từ chối dịch vụ Tấn công từ chối dịch vụ còn được biết đến với cái tên là DoS (Denial of Service Attack). Đây là một loại tấn công tiêu tốn tài nguyên của mạng (network) host (server) khiến cho mạng này từ chối dịch vụ đối với người dùng hợp pháp. Tài nguyên ở đây có thể hiểu là băng thông của mạng, bộ nhớ, thời gian xử lý trên CPU. Bản chất của loại tấn công này nằm ở việc kẻ tấn công sẽ tìm cách chiếm dụng một lượng lớn tài nguyên trên server làm cho server có thể nhanh chóng bị ngừng hoạt động, đổ vỡ hoặc khởi động lại. Từ đó, server không thể nào đáp ứng các yêu cầu khác của những người dùng hợp lệ. 9 Hình 1: Phân loại tấn công từ chối dịch vụ theo kiểu tấn công Trên thực tế tồn tại nhiều cách thức tấn công từ chối dịch vụ khác nhau với nhiều mức độ ảnh hưởng khác nhau. Trong quá trình tìm hiểu, người thực hiện đã tiếp cận vấn đề dựa trên hai cách phân loại khác nhau: phân loại theo kiểu tấn công và phân loại theo mục đích tấn công. Hình 1 ở trên thể hiện cách phân loại theo kiểu tấn công. Ở đó, ngoài DoS, DDoS (Distributed denial of serivce attack) và DRDoS (Distributed Reflected Denial of Service Attack) là hai kiểu tấn công cần được tìm hiểu DDoS là kiểu tấn công từ chối dịch vụ phân tán. Ở đó, kẻ tấn công điều khiển hơn một hệ thống tấn công vào server cùng một lúc. Qua đó, hiệu quả của cuộc tấn công được nâng cao lên rất nhiều. DRDoS là kiểu tấn công phân tán sử dụng phương pháp ánh xạ. Trong kiểu tấn công này, những máy tính bị chiếm quyền điều khiển không trực tiếp gửi yêu cầu, gửi các gói tín đến server một cách trực tiếp. Các máy tính đó sẽ lợi dụng cơ chế request- response của một số giao thức trên mạng để thực hiện cuộc tấn công. Ở đó, các máy tính bị chiếm quyền điều khiển sẽ gửi các gói tin đến các reflectors (dns servers, một server bất kì khác) với địa chỉ IP nguồn trong các gói tin là địa chỉ IP của đối tượng bị tấn công. Các reflectors sẽ xử lý, trả lời các gói tin đó và gửi cho đối tượng bị tấn công. Như vậy reflectors vô tình đã đóng vai trò tấn công. Phân loại theo mục đích tấn công bao gồm flood attack và software attack được thể hiện trong Hình 2. 10 [...]... into w.start and 0 into w.distance else if w.distance = 0 then write R into w.end increment w.distance Path reconstruction procedure at victim Let G be a tree with root v Let edges in G be tuples (start,end,distance) for each packet w from attacker if w.distance = 0 then insert edge (w.start,v,0) into G else insert edge (w.start,w.end,w.distance) into G remove any edge (x,y,d) with d ≠distance x to v... truyền qua Nếu như item có trong BF-3, thì gói SYN có khả năng được truyền qua với xác suất p = 1/n Trong đó n là số lần item này được thêm vào BF-3 Điều này đảm bảo xác suất vượt qua càng nhỏ nếu như số lần gói SYN được gửi tới càng lớn 17 Tài liệu tham khảo Trong đó [4][5] là sách [1][7][8][9][10][11] là bài báo khoa học [1] Bharat Bhargava and Leszek Lilien, “Vulnerabilities and Threats in Distributed... một tập hợp với chi phí về không gian nhớ là hằng số Bloom filter cũng cho phép xác định một phần tử có thuộc về tập hợp đó hay không với thời gian tính toán không phụ thuộc vào số lượng phần tử trong tập hợp Counter bloom filter là cấu trúc dữ liệu mở rộng từ bloom filter Trong đó, counter bloom filter không chỉ cho phép xác định một phần tử có nằm trong tập hợp đang xét hay không mà còn cho phép xác... cần ghi 9bytes (cho bộ start, end, distance) Để áp dụng các phương pháp này vào thực tế, việc định nghĩa lại header của các gói tin để có chỗ cho thông tin ghi thêm là rất khó, do header của các gói tin đã tạo thành chuẩn và được nhiều ứng dụng sử dụng từ nhiều năm nay Do đó Stefan Savage, David Wetherall, Anna Karlin and Tom Anderson đã có những đề suất trong [8] trong việc mã hóa (encoding) thông tin... Pages 295-306 [9] Changhua Sun, Jindou Fan, Lei Shi, Bin Liu, “A Novel Router-based Scheme to Mitigate SYN Flooding DDoS Attacks”, in Proc IEEE INFOCOM (Poster), Anchorage, Alaska, USA, May 6-12, 2007 [10] Changhua Sun, Jindou Fan, Bin Liu, “A Robust Scheme to Detect SYN Flooding Attacks”, in Proc International Conference on Communications and Networking in China (ChinaCom), Shanghai, China, August... không gian trong gói tin (4bytes với mọi độ dài của đường đi) 3.2.1.4 Edge sampling Phương pháp edge sampling được xây dựng nhằm khắc phục nhược điểm tốn kém thời gian lâu trong việc xây dựng lại đường tấn công của node sampling Ở đó, phần thêm vào mỗi gói tin không phải địa chỉ của một node nữa mà bao gồm địa chỉ đầu (start), địa chỉ cuối(end) của một cạnh trong đường tấn công và một trường distance... Ihor Kuz, Felix Rauch, Manuel M T Chakravarty & Gernot Heiser, "Security in Distributed Systems" COMP9243 — Week 11 (12s1) [6] “DISTRIBUTED SYSTEMS SECURITY,Issues, Processes and Solutions” first edittion published 2009 © 2009 John Wiley & Sons Ltd [7] Memòria del projecte, “VULNERABILITY ASSESSMENT OF DISTRIBUTED SYSTEMS” [8] Stefan Savage, David Wetherall, Anna Karlin and Tom Anderson, “Practical Network... với phần tử đang xét trong tập hợp Cấu trúc dữ liệu bloom filter được ứng dụng trong nhiều lĩnh vực, đặc biệt trong các lĩnh vực nghiên cứu về mạng internet Một trong số những ứng dụng đó chính là phương pháp phòng chống và giảm thiểu tác hại của tấn công TCP/SYN flood 16 Phương pháp này là một cải tiến từ phương pháp SFD (SYN Flooding Detection) nhờ sử dụng cấu trúc dữ liệu bloom filter Trong tiểu luận... xuất và được tìm kiếm trong cả ba bộ bloom filter xem có thuộc về tập hợp nào hay không: - Nếu như item này chưa có trong bất kì BF nào thì có nghĩa rằng đây là kết nối mới Gói SYN sẽ bị xóa bỏ và thêm vào BF-1 Nếu như item này đã có trong BF-1, thì đây là gói SYN thứ hai Gói SYN sẽ được chuyển qua bộ giảm thiểu Item tương ứng với gói SYN sẽ được chuyển từ BF-1 sang BF-3 Nếu như item trong BF-2 nghĩa là... ra các hành động tương ứng - Các trạng thái và thông tin của một kết nối được lưu trữ trong TCBs, là một tập các cấu trúc dữ liệu TCB (tranmission control block) Mọi kết nối đều được lưu giữ thông tin trong một TCB - Các hoạt động của TCP sẽ được xác định nhờ các cờ trạng thái nằm trong TCB Một vài điểm cần chú ý trong cơ chế quản lý này đó là: - Mỗi khi nhận được một SYN hay gửi 1 SYN thì TCP sẽ tạo