Màn hình theo dõi tiến trình trận đấu trực quan của Cardinal

Một phần của tài liệu Nghiên cứu và phát triển nền tảng tổ chức thi tấn công phòng thủ máy tính efiens giai đoạn 1 thiết kế hệ thống và xây dựng module giao tiếp giữa các users vaf server, thành phần kiểm tra dịch vụ và tổng hợp trạng thái dịch vụ (Trang 25 - 29)

8 Tổng kết

3.2 Màn hình theo dõi tiến trình trận đấu trực quan của Cardinal

Nền tảng này có một số đặc điểm như sau.

• Máy chủ đội chơi: máy chủ chứa các lỗ hổng do các đội chơi tự vận hành và cung cấp.

• Điều khiển trung tâm: Controller nắm vai trò toàn bộ: sinh flag, đổi flag cho các độ, kiểm tra flag và kiểm tra trạng thái dịch vụ các đội.

• Kết nối: Các đội kết nối với nhau thông qua địa chỉ IP xác định của máy chủ. • Hỗ trợ theo dõi: Khán giả có thể theo dõi tiến trình trận đấu theo thời gian thực

thông qua ứng dụng trực quan.

• Một số yếu tố khác: Có trang quản lý trực quan cho ban tổ chức và các đội chơi, ngôn ngữ lập trình duy nhất là Golang nên hệ thống dễ dàng triển khai.

Mô hình nền tảng này có một số khuyết điểm.

• Về phần kết nối hệ thống chưa giúp các đội chơi ẩn danh trong quá trình thi đấu nên có thể dẫn tới tình trạng phân biệt đối xử giữa các đội chơi, ví dụ như đội A chặn truy cập theo địa chỉ IP của đội B.

• Thành phần điều khiển trung tâm thực hiện quá nhiều việc cùng lúc, khi thành phần này gặp vấn đề sẽ dẫn tới cả hệ thống bị dừng.

Máy chủ chứa các lỗ hổng do các đội chơi cung cấp điều này giúp giảm gánh nặng về chi phí vận hành cho ban tổ chức, việc này giúp sinh viên củng cố hơn về ý tưởng ban đầu đưa máy chủ đội chơi về do đội chơi tự host. Việc sử dụng Golang là ngôn ngữ lập trình chính cũng đưa ra gợi ý mới cho sinh viên.

4

Phân tích và thiết kế hệ thống

4.1 Đặt vấn đề

Dựa vào định nghĩa của cuộc thi CTF theo hình thức tấn công - phòng thủ và kiến trúc một số nền tảng đã khảo sát ở Chương trước, sinh viên nhận ra rằng để xây dựng một nền tảng tổ chức tấn công - phòng thủ cần phải có chức năng chức năng sau đây.

• Cung cấp máy chủ chứa các dịch vụ có lỗ hổng.

• Kết nối giữa các đội chơi với nhau và kết nối với hệ thống. • Đồng bộ thời gian về trận đấu.

• Cung cấp thông tin trong các đội chơi: thông tin số lượng các đội tham gia trận đấu, thời gian hiện tại của trận đấu.

• Thành phần cung cấp, đổi “flag” cho các đội mỗi vòng và kiểm tra “flag” các đội gửi về tính điểm tấn công.

• Kiểm tra dịch vụ các đội chơi: phục vụ cho việc tính điểm phòng thủ cho các đội và phát hiện các trường hợp gian lận.

• Tính toán tổng hợp điểm số và lưu trữ thông tin. • Hỗ trợ theo dõi tiến trình thi đấu.

Đi sâu hơn vào hai chức năng đầu.

Cung cấp máy chủ chứa các dịch vụ có lỗ hổng

Tất cả các máy chủ cung cấp cho các đội chơi phải có thiết lập giống nhau ngoại trừ phương thức dùng để định danh. Việc vận hành các dịch vụ không được phức tạp.

Chương 4

Quá trình vận hành các dịch vụ không ảnh hưởng đến nhau, việc một dịch vụ bị tấn công không ảnh hưởng đến dịch vụ khác.

Việc lưu trữ “flag” tương ứng với các dịch vụ phải được đảm bảo rằng các đội chơi khai thác dịch vụ thành công phải nhìn thấy “flag”. Nếu hệ thống lưu trữ các “flag” dưới dạng các tệp tin tĩnh trong các máy chủ thì các đội chơi có thể xoá các tệp tin này đi, dẫn tới các đội chơi khác tấn công dịch vụ thành công mà không thể tìm thấy “flag”. Các thành phần kiểm tra dịch vụ không thể dựa theo luồng thông thường tấn công vào và kiểm tra “flag” của các đội được vì đội chơi có thể sử dụng lại chính luồng kiểm tra này để tìm lỗ hổng.

Việc cung cấp máy chủ cũng sẽ ảnh hưởng đến số lượng đội tham gia. Sử dụng máy chủ do ban tổ chức cung cấp thì dễ vận hành hơn nhưng số lượng đội chơi bị giới hạn và tạo thành gánh nặng tài chính cho ban tổ chức. Để đảm bảo vận hành dưới hình thức này thì các đội chơi phải đăng ký với ban tổ chức từ trước, sau đó ban tổ chức mới có thể lên kế hoạch cung cấp máy chủ cho các đội chơi và số lượng ban tổ chức cung cấp chắc chắn là có hạn vì chúng ảnh hưởng đến tài chính khi phải thuê các máy chủ. Còn việc sử dụng máy chủ do các đội chơi cung cấp sẽ giảm thiếu gánh nặng tài chính cho ban tổ chức và gia tăng được số lượng đội chơi nhưng đánh đổi lại là khó khăn về thiết lập đồng bộ về giới hạn phần cứng của các đội về máy chủ khi mà máy chủ của một đội có một cấu hình mạnh yếu khác nhau và điều quan trọng để kết nối tới hệ thống đó là mạng. Tốc độ mạng, độ trễ bị ảnh hưởng bởi nhà mạng cung cấp và vị trí địa lý của máy chủ. Vậy nên việc vận hành hệ thống bằng máy chủ cá nhân của các đội chơi chắc chắn sẽ thiếu ổn định hơn so với một cụm máy chủ do ban tổ chức cung cấp trên cùng một hệ thống điện toán đám mây hoặc một bên cung cấp thứ ba.

Kết nối giữa các đội chơi với nhau và kết nối với hệ thống

Nền tảng cần phải hỗ trợ các đội chơi kết nối với nhau và với hệ thống. Ví dụ như cung cấp địa chỉ IP máy chủ các đội chơi để giúp các đội chơi tấn công lẫn nhau. Việc sử dụng địa chỉ IP trực tiếp như ở Cardinal lại có quá nhiều rủi ro. Các đội có thể dùng máy chủ ngoài hệ thống để tấn công hộ hoặc nghiêm trọng hơn là sử dụng một số lượng máy lớn để thực hiện cuộc tấn công DDoS. Ngoài ra nếu sử dụng như vậy thì cuộc thi sẽ bị ảnh hưởng bởi các cá nhân chống phá bên ngoài. Vì vậy việc đầu tiên hệ thống cần làm là đưa kết nối của các đội vào một mạng cục bộ thông qua mạng riêng ảo.

Về việc sử dụng mảng riêng ảo sử dụng cộng thêm với cơ chế dịch địa chỉ mạng - Network Address Translation ở hai nền tảng như iCTF hay saarrCTF đã sử dụng cách trên và tiếp tục dùng cơ chế dịch địa chỉ mạng - Network Address Translation (các đội khi truy cập vào một đội khác sẽ được thay đổi địa chỉ yêu cầu nguồn từ địa chỉ IP của mình sang một địa chỉ IP cố định do VPN Server cung cấp) để ẩn danh danh tính các đội chơi. Đây là một biện pháp đảm bảo cho hệ thống vận hành và các đội tham gia tấn công. Nếu đội chơi cố tình từ chối truy cập từ địa chỉ IP cũng đồng nghĩa đội chơi tự mình thoát ly khỏi trận đấu, sẽ không được ban tổ chức tính điểm phòng thủ. Nhưng ở nó lại mang lại điểm

thiệt thòi cho các đội phòng thủ. Trong suốt game đấu nếu bị để lộ danh tính (tên đội và địa chỉ IP), đội này có thể bị các đội còn tại thực hiện cuộc tấn công DDos dẫn tới việc tê liệt hoàn toàn trong thời gian còn lại của trận đấu. Ngoài ra thì việc giấu đi IP thật của các đội sẽ là một cách tiếp cận xa rời thực tế, vì hệ thống mạng bình thường không phải tất cả hệ thống đều sử dụng NAT và gây khó khăn hơn cho các đội phòng thủ phân tích các yêu cầu gửi đến.

4.2 Phương pháp đề xuất

Để giải quyết vấn đề phía trên và phù hợp với thời gian làm luận văn sinh viên đề xuất một số phương pháp như sau.

Về cung cấp máy chủ, sử dụng máy chủ của chính các đội chơi. Trước mỗi trận đấu ban tổ chức sẽ cung cấp cho các đội một ảnh của máy ảo bên trong chứa các thiết lập của một hệ thống máy chủ và các dịch vụ chứa lỗ hổng. Các dịch vụ chứa lỗ hỗng sẽ hoạt động độc lập với nhau không có sự tương tác với nhau trong một môi trường độc lập nhỏ hơn trong máy chủ. Mã bí mật bên trong các dịch vụ - “flag” sẽ được lưu bên trong một chương trình hoạt động. Việc cập nhập “flag” của từng dịch vụ sẽ do một chương trình khác hoạt động ở trong môi trường bên ngoài của máy chủ cung cấp sau mỗi vòng đầu. Về kết nối, hỗ trợ các máy chủ của các đội kết nối qua mạng riêng ảo và địa chỉ IP của mỗi máy chủ cùng với một số thành phần trong hệ thống sẽ được đổi cho nhau sau mỗi vài vòng đấu. Điều này sẽ giải quyết được vấn đề các đội chơi bị tấn công DDoS trong các vòng đấu khi bị lộ danh tính. Nguyên nhân bởi vì địa chỉ IP của các đội được thay đổi dẫn tới danh tính của các đội chơi được ẩn giấu sau mỗi tiến trình thay đổi địa chỉ IP. Ngoài ra việc đổi địa chỉ IP có thể giúp cho ban tổ chức xác định đội có dấu hiệu tấn công DDoS vì các đội tấn công theo địa chỉ IP cũ sẽ tấn công vào các thành phần của hệ thống. Về đồng bộ thời gian, đơn vị thời gian nhỏ nhất dùng trong hệ thống là tick, một vòng thi đấu sẽ có nhiều tick kết hợp lại. Các bộ phận trong phần quản lý sẽ vận hành theo tick còn các đội chơi sẽ được nhìn theo đơn vị thời gian là vòng. Khi đó kịch bản trận đấu có thể đẩy nhanh vào cuối trận bằng các giảm bớt các tick trong các vòng.

Về các chức năng còn lại, ứng với mỗi chức năng sinh viên tách ra thành một thành phần độc lập. Để tiện cho việc vận hành và đảm bảo tính sẵn sàng cho hệ thống, khi một thành phần gặp sự cố thì hệ thống chỉ cần tắt một thành phần đi thay vì một cụm thành phần chứa nhiều chức năng như saarCTF.

Chương 4

Một phần của tài liệu Nghiên cứu và phát triển nền tảng tổ chức thi tấn công phòng thủ máy tính efiens giai đoạn 1 thiết kế hệ thống và xây dựng module giao tiếp giữa các users vaf server, thành phần kiểm tra dịch vụ và tổng hợp trạng thái dịch vụ (Trang 25 - 29)

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

(62 trang)