BÀI TOÁN ĐẢM BẢO AN TOÀN TRONG HỆ PHÂN TÁN Trình bày rất sơ lược về hệ phân tán nhằm giúp người đọc có khái niệm thế nào là hệ phân tán. Từ đó giúp cho người đọc có thể hiểu được các phần kế tiếp. Phần này 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ệ phân tán. Người viết 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ụ.
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 (introduction) (7trang) Trình bày khoảng 5 trang những kiến thức cơ bản 1.1. Tổng quan về hệ phân tán (tham khảo[06][Bài giảng của cô]) Trình bày rất sơ lược về hệ phân tán nhằm giúp người đọc có khái niệm thế nào là hệ phân tán. Từ đó giúp cho người đọc có thể hiểu được các phần kế tiếp 1.1.1. Khái niệm hệ phân tán 1.1.2. Đặc điểm hệ phân tán 1.1.3. Phân loại hệ phân tán 1.1.4. Các kiến trúc của hệ phân tán 1.2. Tổng quan về bài toán đảm bảo an toàn trong hệ phân tán [01 02 03 04] Trình bày một cách sơ lược các vấn đề gặp phải khi đảm bảo an toàn trong hệ phân tán. 1.2.1. Các khái niệm Làm rõ 3 khái niệm cơ bản khi nhắc đến đảm bảo an toàn 1.2.1.1. Điểm yếu (Vulnerability) - Định nghĩa [02], - Mô hình(models) [01] - Phân loại vulnerability [01] 1.2.1.2. Đe dọa (Threats) - Định nghĩa [02] - Mô hình(models)[01] - Phân loại của threats [01] 1.2.1.3. Tấn công (Attack) - Định nghĩa [02] - Mô hình(models)[04] - Phân loại của attack [04] 1.2.2. Các vấn đề thường gặp khi bảo đảm an toàn trong hệ phân tán [06][07] - Access control - Authentication - Non-repudiation … 1.2.3. Sơ lược về các kĩ thuật đảm bảo an toàn trong hệ phân tán [06] - Mật mã (Encryption) - Cơ chế xác thực (authentication mechanism) - … 3 2. Các điểm yếu và mối đe dọa của một hệ phân tán [06][07] (6trang) Phần này 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ệ phân tán. Người viết 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ụ. 2.1. Điểm yếu và mối đe dọa trong máy chủ (host-level) 2.1.1. Nghe lén 2.1.2. Thiếu tài nguyên 2.1.3. Tràn bộ nhớ Overflow 2.1.4. Tiêm nhiễm mã độc (injection) 2.2. Điểm yếu và mối đe dọa trong cơ sở hạ tầng (infrastructure-level) 2.2.1. Cơ sở hạ tầng mạng 2.2.2. Lưu trữ dữ liệu 2.3. Điểm yếu và mối đe dọa trong ứng dụng (application-level) 2.3.1. Injection 2.3.2. XSS 2.3.3. DoS 2.3.4. Mã hóa không đúng cách 2.3.5. Quản lý session không đúng cách 2.4. Điểm yếu và mối đe dọa trong dịch vụ (service-level) 2.4.1. Mô hình hướng dịch vụ SOA 2.4.2. Yêu cầu của đảm bảo an toàn cho dịch vụ 2.4.3. Một số đe dọa, và hình thức tấn công. 3. Từ chối dịch vụ DoS. Phần này đi vào trình bày cụ đến một mối đe dọa riêng biệt đối với một hệ thống phân tán đó là “từ chối dịch vụ” – DoS nhằm giúp người đọc hiểu sâu hơn về các mối đe dọa trong hệ phân tán. Người viết lựa chọn Dos vì đây là một trong những mối đe dọa phổ biến trong thực tế. Ngoài ra, đó cũng là phần nội dung mà người viết quen thuộc nhất. 4 3.1. Tổng quan về tấn công từ chối dịch vụ (7trang) 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ệ. 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. 5 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. Hình 2: Phân loại tấn công từ chối dịch vụ theo mục đích tấn công Flood attack là loại tấn công theo kiểu thác lũ. Trong đó, kẻ tấn công dựa trên các giao thức mạng để gửi một lượng lớn các gói tin không hợp lệ đến đối tượng bị tấn công. Số lượng gói tin này nhiều đến mức khiến cho đối tượng tấn công không còn tài nguyên dư thừa để cung cấp dịch vụ cho người dùng hợp lệ. Software attack lại tấn công và chính hệ thống của đối tượng bị tấn công. Qua đó, kẻ tấn công tìm cách gửi các gói tin không tuân theo giao thức mạng khiến cho hệ thống bị đổ vỡ, tê liệt do gặp phải lỗi khi xử lý các gói tin này. Khi đó, đối tượng tấn công không thể phục vụ bất cứ một người dùng nào cho đến khi được khởi động lại. 3.2. Một số phương pháp phòng chống và giảm thiểu 3.2.1. Dò vết IP 3.2.1.1. Tổng quan về dò vết IP Dò vết IP là một trong những phương pháp nhằn hạn chế, giảm thiểu tấn công từ chối dịch vụ. Tư tưởng chủ đạo của phương pháp này là sử dụng một biện pháp nào đó để lần ra được địa chỉ (IP), vị trí, cũng như con đường thực hiện của kẻ tấn công. Có nhiều phương pháp dò vết kẻ tấn công được trình bày trong [8] như Ingress filtering, Link Testing, Logging, ICMP traceback, và packet marking. Mỗi một phương pháp có những ưu điểm, hạn chế cũng như tình huống áp dụng riêng. Trong khuôn khổ giới hạn của tiểu luận, nhóm xin trình bày phương pháp dò vết IP PACKET MARKING. Packet marking là phương pháp dò vết cuộc tấn công DoS bằng cách ghi thông tin về đường đi của gói tin lên chính gói tin đó. Thông qua đó, đối tượng tấn công có thể xác định được gần đúng địa chỉ router mà gói tin đã đi qua (đường tấn công). Thông tin này, cuối cùng có thể chỉ ra được nguồn gốc của các gói tin xấu xuất phát từ đâu. Qua đó, phát hiện được kẻ tấn công. Phương pháp này xét một cách tổng quát, không yêu cầu sự tương tác chặt chẽ giữa các nhà cung cấp dịch vụ mạng (ISP), không yêu cầu thông tin về cấu trúc mạng (network topology) như một 6 số phương pháp đề cập phía trên [8]. Bên cạnh đó, packet marking còn hỗ trợ dò vết kể cả khi cuộc tấn công đã kết thúc, dò vết đa tấn công. Để hiểu rõ hơn về phương pháp này, cần phải hiểu rõ một số các khái niệm sau: - V(Victim): nạn nhân bị tấn công - A i (Attackers): kẻ tấn công. Kẻ tấn công có thể sử dụng nhiều máy (node mạng) tham gia vào cuộc tấn công như hình 3 ở dưới. - R i (Router): một node trong mạng - Attack path: Đường tấn công (đường chấm đứt trong hình 3 ở dưới) Hình 3: Minh họa các khái niệm trong packet marking Phương pháp packet marking, được chia làm hai bước. Bước 1, khi gói tin (packet) được truyền qua một router bất kì, router sẽ đánh dấu thông tin của mình vào gói tin đó. Đây còn gọi là quá trình đánh dấu lên gói tin (Marking procedure). Bước 2, được thực hiện khi có cuộc tấn công xảy ra. Nạn nhân sẽ dựa vào thông tin được đánh dấu trong các gói tin nhận được, để tính toán ra con đường tấn công cũng như vị trí của kẻ tấn công. Quá trình này còn gọi là quá trình tái dựng đường tấn công (Reconstruction procedure). Vấn đề đặt ra là thông tin nào được ghi vào trong gói tin, router nào sẽ đánh dấu thông tin của mình vào gói tin, việc xây dựng lại đường tấn công được thực hiện như thế nào? Dưới đây, nhóm sẽ trình bày cụ thể hơn về một số giải thuật đánh dấu và và tại dựng đường tấn công đã được đề suất. 3.2.1.2. Node append Đây là phương pháp đánh dấu đơn giản nhất. Mỗi khi router R nhận một gói tin gửi tới, R sẽ đính thêm địa chỉ IP của mình vào gói tin. Như vậy mỗi gói tin khi tới điểm nhận, sẽ chứa một danh sách lưu lại địa chỉ IP của các router mà nó đi qua. Khi nạn nhân phát hiện cuộc tấn công DoS, chỉ cần kiểm tra danh sách router trong mỗi gói tin là đã có thể xây dựng lại được đường tấn công. Tuy nhiên đây chỉ là một phương pháp lý tưởng nhưng không khả thi do độ dài đường đi của mỗi gói tin là không biết trước. Do đó không gian lưu trữ địa chỉ IP ở mỗi gói tin có thể không đủ. Việc thêm thông tin vào các gói tin như trên cũng khiến cho kích thước gói tin trở nên lớn, phát sinh thêm lưu lượng mạng, ảnh hưởng xấu đến các dịch vụ khác trên mạng. 7 3.2.1.3. Node sampling Để khắc phục hạn chế của node append, tại thời điểm router R nhận được gói tin, không phải lúc nào R cũng đính thêm địa chỉ IP của mình vào gói tin, mà chỉ ghi thông tin của mình với một xác suất p nào đó. Ngoài ra, địa chỉ IP cũng không phải được đính vào cuối danh sách như trên, mà sẽ được ghi đè lên địa chỉ IP của router trước đó. Chúng ta tạm gọi đây là trường node trong phần header của một gói tin. Người bị tấn công cần nhận được một số lượng gói tin đủ lớn để xây dựng lại được đường tấn công thông qua việc sưu tập đủ tất cả các địa chỉ IP của các router mà các gói tin đã đi qua(dựa trên phương pháp xác suất – nghịch lý birthday). Hình 4: Minh họa marking procedure trong phương pháp node sampling với xác suất p=0.51. Biến ngẫu nhiên x=0.2 < p, ghi địa chỉ của R2 vào trường node, đè lên giá trị trước đó là R7. Theo [8] đánh giá, phương pháp này do cần phải thu thập số lượng gói tin đủ lớn nên quá trình tái dựng đường tấn công là một quá trình rất chậm. Bên cạnh đó, nếu có nhiều kẻ tấn công, thì việc tái dựng đường đi cũng trở nên khó khăn và thiếu chính xác hơn. Tuy nhiên, đây là một phương pháp đáng được xem xét và cải tiến do việc chiếm ít 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 để lưu khoảng cách từ router đánh dấu đến nạn nhân. 8 Hình 5: Minh họa marking procedure trong phương pháp edge sampling với xác suất p=0.51. (a)Tại R2, biến ngẫu nhiên x=0.4 <p, ghi giá trị R2 vào start. (b)Tại R2, x=0.6 >p, ghi giá trị R2 vào end (c)Tại R2, biến ngẫu nhiên x=0.73 > p,không ghi giá trị mới mà chỉ tăng distance từ 1 lên 2. Giải thuật đánh dấu, xây dựng lại đường tấn công được trình bày bằng đọa giả mã như sau: Marking procedure at router for each packet w let x be a random number from [0 1) if x < p then write R 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 in G extract path(R i …R j ) by enumerating acyclic paths in G Theo đó, phương pháp tại dựng đường tấn công như trên không cần phải chờ đợi thống kê số lượng gói tin đủ lớn, quá trình xây dựng lại con đường đó hoàn toàn có thể được thực hiện ngay khi nhận được những gói tin đầu tiên của kẻ tấn công(từ thời điểm bắt đầu bị tấn công). Phương pháp này xây dựng một cây (đồ thị) từ nạn nhân tới kẻ tấn công, do đó có thể áp dụng được cả với cuộc tấn công mà attackers điều khiển nhiều máy. Đây là một ưu điểm rất đáng chú ý của phương pháp egde sampling 3.2.1.5. Packet sampling Tất cả các giải thuật marking đã nếu ở trên, đều phải ghi thêm thông tin vào gói tin. Với Node append, cần ghi thông tin với kích thước lớn. Node sampling cần ghi thêm 4 bytes cho địa chỉ của một node, còn edge sampling 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 ghi thêm này. Từ đó ghi lại thông tin trong một số trường ít được sử dụng có trong IP header. Các tác giả đề cập đến ba cải tiến từ edge sampling thông qua các phương pháp: 9 - XOR bit hai địa chỉ IP start và end và phân mảnh các địa chỉ IP nói trên (fragment) nhằm giảm kích thước - Thêm thành phần phát hiện lỗi đơn (nhờ giá trị băm). Trong khuôn khỏ tiêu luận, nhóm sẽ không đi sâu vào giải thích những cải tiến này. Như vậy, phần 3.2.1 trình bày về phương pháp giảm thiểu tấn công bằng cách truy tìm dấu vết của kẻ tân công. Thông qua phương pháp này nhằm chấm dứt sớm cuộc tấn công, răn đe những kẻ xấu không dám thực hiện tấn công vì khả năng có thể bị phát hiện cao. Tiếp theo, phần 3.2.2 sẽ trình bày phương pháp phát hiện sớm, hạn chế tác hại của cuộc tấn công. Đó là phương pháp giảm thiểu tác hại của loại hình tấn công TCP/SYN flood attack – loại hình tấn công phổ biến nhất hiện này. 3.2.2. Giảm thiểu TCP/SYN flood attack bằng phương pháp sử dụng Bloom filter 3.2.2.1. TCP/SYN flood attack TCP/SYN flood attack là loại tấn công từ chối dịch vụ nhằm vào các host sử dụng giao thức TCP. Kẻ tấn công lợi dụng cơ chế bắt tay bước khi bắt đầu thiết lập kết nối trong giao thức TCP để thực hiện tấn công. Hình 6a miêu tả quá trình bắt tay ba bước bao gồm: - Client A gửi một SYN tới server B yêu cầu kết nối (với sequence number là một giá trị ngẫu nhiên x). - Server trả lời lại client bằng cách gửi một SYN-ACK với acknowledgment là x+1 và sequence number là một số ngẫu nhiên y khác - Cuối cùng, client send ACK lại cho server với sequence number là x+1 và acknowledgement là y+1. Bắt đầu truyền dữ liệu. Hình 6: Mô tả quá trình tấn công TCP/SYN flood Cụ thể hơn, chúng ta có thể tóm tắt cơ chế hoạt động của TCP thông qua một vài dòng sau: 10 [...]... 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 12 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... 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... 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 11 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... Distributed Systems”, Conference: Distributed Computing and Internet Technology - ICDCIT, pp 146-157, 2004, DOI: 10.1007/978-3-540-30555-2_18 [2] Bài giảng: "Distributed Systems Security", Prof Steve Wilbur, Room G03, Ext 1397, s.wilbur@cs.ucl.ac.uk [3] Butler Lampson, "Security", TECS Week 2005, January 2005 [4] Distributed Systems Concepts and Design 5 th Edition, Copyright © 2012, 2005, 2001, 1994,... filter Trong tiểu luận này, tạm gọi phương pháp là SFD-BF SFD-BF được công bố [9] và thực nghiệm [10] vào năm 2007 bởi nhóm tác giả Changhua Sun, Jindou Fan, Bin Liu Ý tưởng chính của SFD-BF đó là dựa vào cơ chế nếu một gói tin SYN không được phản hồi sau một khoảng thời gian định trước, người dùng hợp lệ sẽ gửi lại gói SYN đó còn kẻ tấn công thì không Do đó, các tác giả của SFD-BF đề xuất ra một mô hình... ý 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 ra một TCB tương ứng cho kết nối đó - TCB chỉ được xóa đi khi kết nối được đóng lại - Trong thực tế, để tránh hiện tượng thắt cổ chai trong việc gửi nhận các gói tin, TCP sẽ có cơ chế điều phối hoạt động thông qua việc hạn chế tài nguyên cung cấp cho bộ đệm các gói tin gửi nhận Nghĩa là TCP sẽ hạn chế kích thước