Tổng quan Capture the Flag [1] là một cuộc thi về an toàn thông tin trong đó các đội thi cạnh tranh với nhau để tìm ra những cờ bản chất chỉ là một chuỗi nhưng thường được đặc trưng bởi
Trang 1TO DINH NGUYEN - 20521683
NGUYEN DANG NGUYEN - 20520256
KHOA LUAN TOT NGHIEP
BO KHUNG TAN CONG VA PHONG THU CHO
CUOC THI CAPTURE THE FLAG
AN ATTACK AND DEFENSE FRAMEWORK FOR CAPTURE
THE FLAG COMPETITION
CU NHAN NGANH AN TOAN THONG TIN
GIANG VIEN HUGNG DAN:
ThS Nghi Hoàng Khoa
TS Phạm Văn Hậu
TP.Hồ Chí Minh - 2024
Trang 2LỜI CẢM ƠN
Trong quá trình thực hiện đồ án chuyên ngành, nhóm đã đón nhận sự hỗ trợ
và hướng dẫn đắc lực từ phía các giảng viên Nhóm chân thành biết ơn sự chia
sẻ về mặt kinh nghiệm cũng như sự tận tâm giúp đỡ của các thầy, đặt biệt là thầy Nghi Hoàng Khoa và thầy Phạm Văn Hậu Điều này thực sự là nguồn động
viên quan trọng, giúp nhóm vượt qua những thách thức và khó khăn trong quá
trình nghiên cứu, góp phần làm cho đề tài không ngừng hoàn thiện và đạt được kết quả tốt nhất.
Nhóm xin gửi lời cảm ơn đến gia đình và bạn bè đã động viên, đóng góp ý kiến trong quá trình làm khóa luận
Nhóm cũng chân thành cảm ơn các quý thầy cô trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM, đặc biệt là các thầy cô khoa Mạng máy tính và Truyền thông, các thầy cô thuộc bộ môn An toàn Thông tin đã giúp đỡ nhóm.
Tô Đỉnh Nguyên Nguyễn Đăng Nguyên
Trang 31.2 Phương pháp nghiên đứu
1.3 Mục tiêu nghiên ctu CS 202022220200 0000.
1.4 Pham vi và Đối tượng nghiên cđứu
1.5 Cấu tric Khóa luận tốt nghiệp
CHƯƠNG 2 CƠ SỞ LÝ THUYET
Trang 43.2.1 Tổng quan 2 Q2 24
3.2.2 Phuong pháp thết kế 25
3.23 Modduntaoshell 0 00000 26 3.3 Trường hợp st dung .2.20000 31 3.4 Dánh giá mô hình mạng và kinh nghiệm trong việc triển khai bộ lì vn HH Đ aỤỪặẶÝ 33 3.41 Đánh gia 2 va 33 3.4.2 Kinh nghiệm trong việc triển khai - 34
CHƯƠNG 4 HIEN THUC VÀ DANH GIÁ, THẢO LUẬN 36 41 Hiện thực v.v v vV 36 4.1.1 Xây dựng mấy chủ trò chơi 36
4.12 Xây dựng bộ khung phòng thủ 41
4.1.3 Xây dựng bộ khung tấn công - 46
4.1.4 Môi trường thực nghiệm 49
4.2 Kết quả thực nghiệm và thảo luận 50
4.2.1 Kịch bản thực nghiệm 50
4.2.2 Cac kết quả thực nghiệm 51
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIEN 54
5.2 Hướng phat triỂn ee 55
TÀI LIỆU THAM KHẢO 56
PHU LUC A.Mã nguồn Pl
Trang 5DANH MỤC CÁC KY HIỆU, CÁC CHU VIET TAT
CTF Capture The Flag
AD Attack - Defense
SLA Service Level Agreement
VM Virtual Machine
Trang 6DANH MỤC CÁC HÌNH VE
Hình 21 RealWorldCEF2018 8Hình 2.2 Góc nhìn tổng quan về AD CTF 10
Hình 2.3 Mô hình mang AD CTF từ một bài lab của trường đại học
Foscari Ca’ Ven@Zla LH HQ Ha 11
Hình 2.4 Mô hình mạng của cuộc thi Sinh viên với an toàn thông tin
2022 ‹- cam- đN 15
Hình 2.5 Mô hình mang trong RuCTF 2023 16
Hình 2.6 Mô hình mạng trong ACS Hacking Contest 2023 17
Hình 3.1 Hình ảnh mô tả kiến trúc tổng quát của bộ khung phòng thủ 20
Hình 3.2 Hình ảnh mô tả kiến trúc tổng quát của bộ khung tấn công 24
Hình 33 Websockethandshake 28 Hình 34 Webshell mô dun Ặ Ặ 29
Trang 7DANH MỤC CÁC BANG BIEU
Bảng 4.1 Bảng thông tin cấu hình máy ảo team VM_
Bảng 4.2 Bảng danh sách dịch vụ chứa lỗ hong trên môi trường thực
nghiệm kiểm thử SẺ s
Bảng 4.3 Bảng thông tin cấu hình máy ảo publicVPS Bảng 4.4 Bảng thông tin cấu hình máy ảo của đội viên Bảng 4.5 Bảng kết quả thử nghiệm của bộ khung phòng thủ với 4
Trang 8TÓM TẮT KHÓA LUẬN
Tính cắp thiết của đề tài nghiên cứu:
Trong bối cảnh ngày càng phát triển của công nghệ thông tin, an ninh mạng
trở thành một yếu tố đón nhận được nhiều sự quan tâm từ cộng đồng Hiện nay, những cuộc tấn công mạng ngày càng tinh vi và phức tạp, gây ra sự đe dọa
nghiêm trọng đến các cá nhân và tổ chức Bên cạnh đó, Capture The Flag nổilên như một sân chơi thú vị cho các kỹ sư an ninh mạng để họ nâng cao kỹ năng
và chuẩn bị cho các tình huống thực tế Trong các loại hình của Capture The
Flag, Attack Defense mang đến cho người chơi một trải nghiệm thực tế nhất Tuy nhiên theo chúng tôi được biết, mô hình ứng dụng trong cuộc thi từng được công bố vào năm 2019 và cũng không có nhiều nghiên cứu công khai về nó tại
thời điểm hiện tại Do vậy, việc xây dựng, cải tiến lại mô hình để áp dụng cho
cuộc thi Attack Defense là cần thiết.
Trong nghiên cứu này, chúng tôi đề xuất hai bộ khung tấn công và phòng thủ, nhằm cung cấp một giải pháp toàn diện và hiệu quả khi tham gia các giải
đấu Capture The Flag ở thể thức này
Trang 9CHƯƠNG 1 TONG QUAN
Tóm tắt chương
Trong chương này, chúng tôi xin trình bày tóm tắt về bài toán xây dựng một
bộ khung tấn công và phòng thủ dùng trong các cuộc thi Capture The Flag Đồng thời đưa ra mục tiêu, phạm vi nghiên cứu, cũng như cấu trúc của khóa
luận.
1.1 Lý do chọn đề tài
Trong bối cảnh ngày nay, không gian mạng đang phải đối mặt với những thách thức ngày càng phức tạp do sự gia tăng về cả quy mô và mức độ của các cuộc tấn công mạng Các cuộc tấn công này không chỉ xuất phát từ các hacker
đơn lẻ mà còn từ các tổ chức tội phạm mạng có tổ chức và thậm chí là từ các
quốc gia Những vụ tấn công mạng thực tế không chỉ đe dọa tính toàn vẹn và
bảo mật của dữ liệu mà còn gây ra những hậu quả nghiêm trong cho doanh
nghiệp và tổ chức Những hậu quả này có thể bao gồm mất mát tài chính, tổnhại uy tín, và thậm chí là ảnh hưởng đến an ninh quốc gia Sự phổ biến củaInternet đã mở ra không gian rộng lớn cho các hacker và kẻ xấu khác để triển
khai các chiến lược tấn công tỉnh vi, từ các cuộc tấn công mạng có chọn lọc như
phishing [5], ransomware [6] một vài cuộc tấn công gần điển hình đây nhắm vào
các tổ chức như VNDirect, Vietnam Post), đến những cuộc tấn công trên diện
rộng như Distributed Denial of Service (DDoS) [7].
Trong hoàn cảnh đó, Capture The Flag (CTF) nói chung hay Attack-Defense CTF (AD CTF) nói riêng đã trở thành một phương tiện quan trọng trong việc
nghiên cứu, kiểm thử, và đào tạo về an toàn thông tin CTF là các cuộc thi
Trang 10ma người tham gia phải vượt qua các thử thách về an ninh mạng, tim va khai
thác các lỗ hồng bảo mật để chiếm được "lá cờ" (flag) của đối phương AD CTF
không chỉ là một sân chơi cho giới trẻ có niềm đam mê về an toàn thông tin,
mà còn là một bước tiến quan trọng trong việc hiểu rõ về cách thức tấn công và
phòng thủ trong môi trường thực tế Các cuộc thi này tạo ra một môi trường
mô phỏng các tình huống tấn công và phòng thủ thực tế, giúp người tham gia
phát triển các kỹ năng thực tiễn và hiểu rõ hơn về các phương pháp bảo vệ hệ
thống.
Qua những nghiên cứu và thử nghiệm từ các cuộc thi CTF, chúng ta không chi
chứng kiến sự đa dạng của các kỹ thuật tấn công mà còn nhận thức được tầm quan trọng của việc xây dựng những hệ thống giám sát, phòng thủ linh hoạt và hiệu quả Các cuộc tấn công thực tế ngày càng tinh vi, phức tạp và khó dự đoán.
Do đó, các cuộc thi AD CTF tạo ra môi trường lý tưởng để tập huấn, nhằmtrang bị thêm kiến thức và các kỹ năng cần thiết để ứng phó với các tình huống
như vậy Những cuộc thi này cung cấp một cơ hội tuyệt vời để thử nghiệm các
chiến lược phòng thủ mới, đánh giá tính hiệu quả của các biện pháp bảo mật
hiện có, và tìm ra những lỗ hổng tiềm an trước khi chúng bị khai thác trong
thực tế Bằng cách liên tục học hỏi và cập nhật các phương pháp tấn công và
phòng thủ mới nhất, các chuyên gia an ninh mạng có thể duy trì một vị thế
vững chắc trước các mối đe dọa ngày càng gia tăng trong thế giới kỹ thuật số.
Tw những điều trên, chúng tôi nhận thấy việc xây dựng nên mô hình tấn công
và phòng thủ để áp dụng trong các cuộc AD CTF là cần thiết Nó sẽ đòng vaitrò như một bước đệm quan trọng trong việc tiếp cận với thế giới bảo mật.
1.2 Phương pháp nghiên cứu
Chúng tôi tập trung vào việc tìm hiểu các thành phần cơ bản trong môi
trường AD CTF Quá trình này bao gồm dựng lại gần giống môi trường của
cuộc thi AD CTF va mô phỏng các tình huống tấn công, phòng thủ phổ biến
Trang 114Tiếp đó tìm kiếm và tích hợp một số công cụ hỗ trợ để tối ưu hóa trong hai tình
huống trên Các công cụ được lựa chọn nhằm tăng cường hiệu quả trong việc tấn công các đội đối thủ đồng thời cung cấp khả năng quan sát các gói tin độc hại một cách trực quan nhất Điều này không chỉ giúp đội viên nhanh chóng phát
hiện và vá các lỗ hổng bảo mật mà còn nâng cao khả năng phòng thủ trước cáccuộc tấn công từ đội địch Bên cạnh đó, chúng tôi tiến hành triển khai, đánh
giá công cụ và đưa ra hướng mở rộng phù hợp trong tương lai.
1.3 Mục tiêu nghiên cứu
Khóa luận này bao gồm các mục tiêu chính như sau:
1 Tìm hiểu các thành phan cơ bản trong môi trường AD CTF: Nghiên cứu
về các yếu tố cấu thành nên một cuộc thi Attack-Defense CTF, bao gồm
máy chủ trò chơi, các máy ảo, mô hình mạng và cách thức tổ chức
2 Xây dựng hai mô hình tấn công và phòng thủ: Tìm kiếm, tích hợp và đánh
giá hiệu quả của các công cụ hỗ trợ quá trình tấn công và phòng thủ trong
môi trường AD CTF.
1.4 Pham vi và Đối tượng nghiên cứu
Chúng tôi thực hiện tìm hiểu và xây dựng mô hình dựa trên ý tưởng từ các
mô hình của những đội thi mà chúng tôi đã gặp trong các giải đấu AD CTF
trên CTFtime cũng như các giải đấu được tổ chức trực tiếp như "Sinh viên với
An toàn thông tin ASEAN" Mô hình của chúng tôi sẽ là một trợ thủ đắc lực cho hai giai đoạn: tấn công và phòng thủ.
Trong giai đoạn tấn công, mô hình của chúng tôi sẽ tự động hóa việc chạy các
script để tấn công hàng loạt dịch vụ của đội đối thủ Các script này sẽ đượcthiết kế để tận dụng các lỗ hồng bảo mật đã được phát hiện, từ đó thực hiện
Trang 12các cuộc tấn công nhằm cướp cờ (flags) Những cờ này sau khi bị cướp sẽ được
tự động nộp lên máy chủ trò chơi để ghi điểm Quá trình này không chỉ giúp
tiết kiệm thời gian mà còn nâng cao hiệu quả tấn công, giúp đội thi có thể tập
trung vào việc phát hiện và khai thác các lỗ hồng mới
Về giai đoạn phòng thủ, mô hình đề xuất sẽ cung cấp khả năng quan sát lưu lượng mạng một cách trực quan nhất Các gói tin đi đến các dịch vụ của đội nhà sẽ được giám sát và đánh tag phân loại theo loại hình tấn công Nhờ vào
việc phân loại này, đội thi có thể nhanh chóng nhận diện và phản ứng với các
cuộc tấn công đang diễn ra.
1.5 Cau trúc Khóa luận tốt nghiệp
Khóa luận được tổ chức trong 6 chương như sau:
e Chương 1: TONG QUAN ĐỀ TÀI
Trình bày khái quát định hướng nghiên cứu của khóa luận mà chúng tôi
muốn hướng tới.
e Chương 2: CƠ SỞ LÝ THUYET
Trình bày các định nghĩa, khái niệm cũng như những kiến thức nền tảng
để có thể thực hiện được nghiên cứu Đồng thời trình bày sơ lược một sốcông trình liên quan có cùng hướng nghiên cứu.
e Chương 3: PHƯƠNG PHÁP THỰC HIỆN
Là phần trọng tâm của khoá luận, trình bày những nội dung chính về
phương pháp thực hiện và mô hình được sử dụng.
e Chương 4: HIỆN THỰC, DÁNH GIÁ VÀ THẢO LUẬN
Đề cập đến quá trình hiện thực hóa phương pháp đề cập ở Chương 3 Sau đó trình bày phương pháp thực nghiệm, đánh giá kết quả và thảo luận chung.
Trang 13e Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIEN
Dưa ra kết luận về đề tài, đề xuất một số hướng phát triển mở rộng chocác nghiên cứu trong tương lai.
Trang 14CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Tóm tắt chương
Trong chương này, chúng tôi sẽ trình bày cơ sở lý thuyết cần thiết của khóa
luận Nội dung sẽ bao gồm cái nhìn tổng quan về các khái niệm liên quan đến
Capture The Flag (CTF) và đặc biệt là Attack-Defense Capture The Flag (AD
CTF) Phần nay sẽ tập trung vào các thành phan chính cấu tao nên môi trường của cuộc thi, vai trò của từng thành phần và nhiệm vụ của đội thi Đồng thời,
chúng tôi sẽ giới thiệu một số mô hình phổ biến được áp dụng tại các cuộc thi
CTF trong nước và trên thé giới, và đưa ra vài lời nhận xét về các mô hình này.
2.1 Tổng quan về Capture The Flag
2.1.1 Tổng quan
Capture the Flag [1] là một cuộc thi về an toàn thông tin trong đó các đội
thi cạnh tranh với nhau để tìm ra những cờ (bản chất chỉ là một chuỗi nhưng
thường được đặc trưng bởi một định dạng cụ thể) được giấu trong các tệp hoặc
dịch vụ, có thể lấy được thông qua việc khai thác các lỗ hồng Tùy thuộc vào
hình thức của cuộc thi, các đội cũng phải vá lỗ hong trong dich vụ của mình để
ngăn chặn đội khác tấn công và đánh cắp cờ.
CTF mang lại những trải nghiệm giáo dục quý báu, nhờ vào độ phức tap va
đa dạng của các thử thách, qua đó giúp các đội thi trau đồi khả năng làm việc
nhóm cũng như kĩ năng cá nhân của từng thành viên Việc chia sẻ công việc
yêu cầu mỗi thành viên của đội phải có những kỹ năng khác nhau, cố gắng tận
dụng những kỹ năng thế mạnh của từng cá nhân để đưa ra lời giải cho các thử
thách cũng như học hỏi thêm từ cuộc thi những kiến thức mới.
Trang 158Hình 2.1 là một bức tranh tổng thể về địa điểm diễn ra vòng chung kết cuộc
thi RealWorldCTF tại Trung Quốc - một sự kiện lớn mang tầm quốc tế, với
những thử thách được lấy ý tưởng dựa trên các lỗ hổng thực tế
CTF có ba hình thức chính: Jeopardy, Attack-Defense, và King of the Hill.
Jeopardy CTF không có su tương tac giữa các đội với nhau; trong cuộc thi sẽ có
nhiều mảng và trong mỗi mảng lại có các thử thách khác nhau về độ phức tạp.
Các đội phải tìm ra cờ ẩn phía sau các thử thách này để nhận số điểm tươngứng Số điểm nhận được phụ thuộc vào độ phức tạp của chúng
Các mảng chính của Jeopardy CTF bao gồm:
e Forensics: Hữu dụng trong việc đào tạo kỹ năng liên quan đến điều tra số,
phân tích dấu vết của một hệ thống để trích xuất thông tin cần thiết cho
việc điều tra.
e Network: Người tham gia phải thực hiện điều tra trên lưu lượng, dịch vụ
mạng và thực hiện phân tích gói tin, các dịch vụ liên quan.
Trang 16e Reverse Engineering: Bao gồm phân tích các chương trình được cung
cấp để hiểu cách chúng hoạt động và từ đó đi sâu hơn
e Web Exploitation: Người tham gia khai thác các lỗ hong trong ứng dụng
web.
e Crypto: Người chơi mảng này có nhiệm vụ khai thác các thuật toán được
ứng dụng trong mật mã, thường là các thuật toán được triển khai không
đúng, hoặc lỗi khi sử dụng các thư viện cũ, lỗi thời.
e Binary Exploitation: Thường liên quan đến việc tìm kiếm lỗ hồng trên
các tệp nhị phân hoặc tệp thực thi (thường là tệp ELF Linux).
Cuối cùng, đội có số điểm cao nhất sau cuộc thi sẽ là đội chiến thắng trong hình
thức Jeopardy CTF.
Attack-Defense CTF là một biến thể đặc biệt của CTF, nơi các đội không chi
phải bảo vệ hệ thống của mình mà còn phải tấn công hệ thống của đối thủ Mỗi
đội được cung cấp một hệ thống với các lỗ hong bảo mật và phải vừa vá lỗi đểbảo vệ hệ thống của mình, vừa khai thác các lỗ hổng của đối thủ để lấy điểm
Đây là một hình thức thi đấu mang tính tương tác cao, đòi hỏi sự kết hợp nhuần nhuyễn giữa kỹ năng phòng thủ và tấn công.
King of the Hill là một hình thức CTF khác, trong đó các đội thi đấu để chiếmquyền kiểm soát một hệ thống mục tiêu trong một khoảng thời gian nhất định.Đội nào giữ được quyền kiểm soát hệ thống lâu nhất sẽ giành được điểm cao
nhất Quá trình chiếm quyền kiểm soát bao gồm việc tấn công, khai thác lỗ
hồng và sau đó củng cố hệ thống để bảo vệ trước các cuộc tấn công của các đội
khác King of the Hill đòi hỏi các đội phải có khả năng tấn công và phòng thủ nhanh nhạy, cũng như kỹ năng quản lý hệ thống hiệu quả.
Trang 172.1.2 Attack-Defense Capture The Flag
Đối với AD CTF [1], tất cả các đội đều được cấp một máy ảo (VM) được cấu
hình trước bởi ban tổ chức và có thể truy cập trực tiếp và hoặc chỉ có quyềntruy cập vào proxy server nằm trước máy ảo đó tùy thuộc vào thể lệ của cuộc
thi Tất cả VMs của các đội đều chứa các dịch vụ giống nhau, và đặc trưng bởi
các 16 hong giống nhau Mỗi đội phải tìm ra các lỗ hong này và sau đó sẽ có hai
nhiệm vụ chính:
e Tan dụng 16 hong và khai thác các dịch vụ bên đội đối thủ để đánh cắp tất
cả cờ được lưu bên trong chúng.
e Vá các lỗ hồng ở dịch vụ của mình để không để ngăn các đội khác đánh cắp
Nhờ vào đó, các thí sinh có thé học được cách ứng biến khi dịch vụ bị tấn
công, cách phản ứng với những cuộc tấn công này cũng như cách giám sát, vá
lỗi cho hệ thống.
Trang 18có một mạng riêng và VMs của các đội không thể được truy cập từ bên ngoài.
Để làm cho việc tương tác giữa các đội dễ dàng hơn, mỗi đội thường có một mạngriêng biệt, dia chỉ của nó phụ thuộc vào ID của đội, chang hạn như 10.0.X.0/24cho mạng của đội số X Tất cả các đội đều có một cổng ra và các dịch vụ có lỗ
hồng được gan địa chi IP xác định, chẳng hạn như 10.0.X.1 cho cổng của đội X
và 10.0.X.3 cho tất cả các dịch vụ có lỗ hồng của đội X Mỗi dịch vụ này có thểtruy cập thông qua một cổng khác nhau và các dịch vụ giống nhau của các độikhác nhau có thể truy cập thông qua cùng một cổng
Tham khảo hình sau để có cái nhìn rõ nét hơn về mạng (network) của cuộc thi:
Team 1 laptops (ip 10 0 1 [150-200]) Team N laptops (ip 10 0.N [150-200])
Hành 2.3: Mô hành mang AD CTF từ một bài lab của trường dai hoc Foscari
Ca’ Venezia
Một cuộc thi AD CTF được chia thành các vòng, thời lượng của mỗi vòng do
Trang 1912ban tổ chức quy định trước Trong mỗi vòng, một hoặc nhiều cd mới sẽ đượcchèn vào tất cả các dịch vụ có lỗ hổng của tất cả các đội (tất nhiên, các cờ khác
nhau được gửi đến các đội khác nhau) Tất cả các cờ sẽ có một thời hạn xác
định (thường là số vòng xác định bởi tổ chức), sau đó chúng không còn giá trị
vì vậy các đội sẽ không nhận điểm dù có nộp.
Việc chèn các cờ được thực hiện bởi máy chủ trò chơi (Gameserver), đó là VM
của ban tổ chức và là lõi của cuộc thi AD No nằm trong cùng mạng của tất cảcác đội và có ba vai trò chính:
e Như đã nói ở trên, nó chèn một hoặc nhiều cờ vào tất cả dịch vụ của tất cả
các đội trong mỗi vòng.
e Nó kiểm soát xem tất cả các dịch vụ của tất cả các đội có hoạt động hay
không bằng cách gửi một số yêu cầu đến mỗi dịch vụ của mỗi đội và kiểmtra xem các cờ an trong các dịch vụ có thể lấy được hay không bằng cách sử
dụng một số thông tin đặc biệt mà các đội không có Nếu một hoặc nhiều
cờ của một dịch vụ không thể lấy được, điều đó có nghĩa là có ít nhất một
cờ đã bị xóa hoặc dịch vụ không hoạt động đúng (do vá lỗ hồng sai cáchhoặc đơn giản là do dịch vụ bị tắt) Trong cả hai trường hợp, điểm SLA
(xem bên dưới) liên quan đến dịch vụ của đội đó bị giảm.
e Nó nhận tất cả các cờ được gửi, kiểm tra tính hợp lệ của chúng, tính điểm
và cập nhật lại bảng xếp hạng.
Tất cả các địa chỉ IP nguồn của các gói tin được gửi bởi các đội và máy chủ trò
chơi đến dịch vụ các đội khác đều được an danh, theo cách này, mỗi đội sẽ nhận
được gói tin đặc trưng bởi cùng một địa chi IP nguồn (thông qua một router
hoặc proxy server).
Như vậy, các đội không thể phân biệt được gói tin nào bắt nguồn từ máy chủtrò chơi, kiểu thiết kế hệ thống này nhằm mục đích ngăn chặn người chơi cấu
Trang 20hình chi cho phép những gói tin của máy chủ trò chơi di qua và chặn hết những
gói tin từ các nguồn khác Khi muốn kiểm tra trạng thái của các dịch vụ, máy
chủ trò chơi sẽ gửi các yêu cầu như một người dùng bình thường đến dịch vụ
của các đội, sau đó dựa vào phản hồi để quyết định trạng thái tương ứng Nếucác đội triển khai chặn hoặc vá hệ thống sai cách đối với dịch vụ của đội mình,
sẽ dẫn đến bị trừ điểm ở phần này
Tương tự như Jeopardy CTF, đội cần có số điểm cao nhất để giành chiến thắng,nhưng tổng điểm của đội sẽ được tính theo cách khác Các tiêu chí tính điểm
được sử dụng bởi hầu hết tất cả các cuộc thi AD như sau:
e Diểm tấn công: Diễm này đạt được bằng cách gửi tất cả các cờ hợp lệ mà
đội đã đánh cắp bằng cách khai thác lỗ hong từ dịch vụ của đội đối thủ.
e Diểm SLA: Điểm được gan cho các đội ứng với việc duy trì dịch vụ của họ,
nếu không có điểm này, tất cả các đội sẽ tắt dịch vụ của họ để ngăn không
bị đánh cắp cờ.
Các tiêu chí ít được sử dụng khác bao gồm:
e Diểm phòng thủ: Điểm này bị giảm khi cờ bị đánh cắp từ dịch vụ của chính
đội đó, hoặc được cộng thêm khi một đội có thể bảo vệ cờ của mình trong
một khoảng thời gian nhất định.
e Diểm King of the Hill: Điểm được gan cho các đội khi đưa ra được giải pháp
tốt nhất cho một số thử thách định kì của ban tổ chức
Thường trong cuộc thi AD CTE, các đội thường sử dụng các công cụ riêng chẳng
hạn như Destructive Farm [3], giúp tự động hóa việc tấn công và nộp cờ, và các
công cụ được xây dựng cho việc phân tích lưu lượng mạng như Caronte [2] hoặc
Flower [4], chúng cho phép các đội viên có thể phân tích những yêu cầu từ cácđội khác, hiểu rõ loại tấn công và lỗ hổng nào đã bị khai thác, từ đó sử dụng
Trang 21thông tin này để tấn công lại dịch vụ của đội đối thủ cũng như củng cố lại hệ
thống của họ.
AD khó hơn so với Jeopardy, cả về cách chơi lin cách triển khai hệ thống vi
kiến trúc phức tạp của nó Cần phải bao gồm nhiều đội (đôi khi là hơn 100 đội),
chúng khó thiết kế, triển khai và vận hành Thực sự là như vậy, vào năm 2021,
dưới 10% tổng số các cuộc thi CTF được tổ chức ở dạng này
Trong một số cuộc thi CTF như DEF CON, thường sẽ kết hợp cả hai dang
Jeopardy và AD Bởi vì để tham dự vào vòng chung kết, thường được tổ chức
dưới hình thức AD, các đội thi phải tham gia và vượt qua vòng loại, thường
được diễn ra dưới dang Jeopardy.
2.1.3 Một số mô hành mang phổ biến
Dưới đây là một số mô hình mạng phổ biến trong các cuộc thi Attack-Defense
(AD), phần lớn được chia thành hai dạng tạm gọi là proxy-based AD và
VM-based AD.
2.1.8.1 Proxy-based Attack Defense
Mô hình này khá phổ biến trong các cuộc thi AD CTF tai Việt Nam, hay điển
hình là cuộc thi Sinh viên với An toàn thông tin ASEAN Trong mô hình này,
các đội chỉ có quyền kiểm soát trên proxy server, thành phần được đặt trước
dịch vụ của mỗi đội Tất cả lưu lượng mạng đến dịch vụ sẽ được điều hướng qua
proxy server này, vì vậy, các biện pháp phòng thủ chủ yếu sẽ được triển khaitập trung tại đây Điều này tạo ra một điểm kiểm soát quan trong để giấm sát
và đáp ứng lại các cuộc tấn công.
Trang 224004 Defense Senarios.
>| >| —— Team1: Only see source IP from Gateway
- iptables
- reverse proxy (nginx, mod_security)
>| >| - Custom proxy (python)
NBN ~ — sì vì
>) a! | ——>~ XN >! oJ
Hành 2.4: Mô hình mang cua cuộc thi Sinh vién vdi an toàn thông tin 2022
Mỗi thành viên sé được cung cấp thông tin để kết nối SSH vào proxy servercủa đội mình, và chỉ sau khi kết nối thành công mới có thể giao tiếp với các đội
khác trong cùng mạng của cuộc thi Ở mô hình 2.4, có thể thấy ban tổ chức đã
đặt ra quy định chung về cách truy cập vào một dịch vụ cụ thể của một đội nào
đó Ví dụ, để truy cập dịch vụ số 1 của đội 1, người dùng sẽ gửi yêu cầu đến địa
chỉ IP của gateway (trong hình là 10.254.0.254) và chỉ định cổng là 4011 (trong
đó, số 01 tương ứng với đội 1 và số 1 cuối cùng là số thứ tự của dịch vụ đó) Các thành phần như Checker, Flag Updater, và Scoreboard chính là các thành phần của Gameserver đã nêu ở trên.
Một điểm quan trọng khác là với thiết kế này, các đội sẽ chỉ thấy được IP nguồncủa các lưu lượng mạng chính là IP gateway mà không thể xác định được nguồngốc cụ thể là từ đội nào hay từ gameserver, điều này đồng thời đáp ứng các yêu
cầu đã được mô tả tại 2.1.2.
Trang 232.1.8.2 Virtual Machine-based Attack Defense
Day là mô hình phổ biến thường được sử dung tại các giải đấu CTF quốc
tế như saarCTF, RuCTF, và nhiều cuộc thi khác Trong kiến trúc này, người
chơi có toàn quyền kiểm soát trên một máy ảo, nơi đặt các dịch vụ của họ Cácthành viên cũng được cấp quyền để vá lỗ hổng trực tiếp trên các dịch vụ của
Trang 2417chính là IP router, không thể xác định được chính xác nguồn gốc ban đầu của
chúng.
Bên cạnh đó, nhóm còn gặp phải một mô hình khá độc đáo trong cuộc thi
ASEAN Cyber Shield Hacking Contest 2023.
Hành 2.6: Mô hành mang trong ACS Hacking Contest 2023
O mô hình này, các đội chơi không tấn công lẫn nhau Thay vào đó, mỗi đội
đều có hai vai trò chính là tự khai thác dịch vụ của đội mình, nộp cờ lên attack
server tương ứng với từng thử thách, và sau đó thực hiện vá lỗi trên chính dịch
vụ của mình Gameserver sẽ có thêm một vai trò, đó là tấn công dịch vụ của mỗi đội để đánh giá độ hiệu quả của bản vá và tiến hành cộng điểm.
Trang 252.1.4 Tính ứng dựng thực tiễn
Cuộc thi CTF được tổ chức đầu tiên vào năm 1996 tại DEF CON, một trong
những hội nghị lớn dành cho hacker và đón nhận được nhiều sự chú ý nhất.
Cuộc thi này được biết đến với tên gọi DEF CON CTF và kể từ đó, nó đã trởthành một trong những giải đấu nổi tiếng và thách thức nhất trong cộng đồng
an ninh mạng, thu hút các đội hàng đầu từ khắp nơi trên thế giới Đến nay, số lượng các cuộc thi và số đội đăng ký tham gia ở bộ môn CTF đã tăng lên đáng
kể (nguồn CTFtime)
Mọi người thường nghĩ CTF chỉ là nơi để các bạn sinh viên có những bước dau
vững chắc trong kiến thức chuyên ngành, nhưng hiện nay, chúng tôi tin rằng
quan điểm ay đã không còn như trước Bên cạnh cuộc thi Pwn2Own, một cuộc
thi lớn đành cho các chuyên viên nghiên cứu lỗ hồng bảo mật, các cuộc thi như
v8CTF hay kernelCTF cũng là nơi để họ "trình bày" thành quả của mình Các
kỹ thuật mới, các 16 hong bảo mat 0-day hay các attack vector độc đáo thườngđược cập nhật qua những bài blog và được chuyển thể thành dạng dé CTF để
người chơi thực hành, từ đó cùng làm rõ với nhau những vướng mắc cũng như
chia sẻ kinh nghiệm.
Hơn thế nữa, các công ty và tổ chức an ninh mạng cũng nhận ra giá trị của CTFtrong việc tuyển dụng và đào tạo nhân sự Tham gia các cuộc thi CTF giúp ứng
viên chứng minh được khả năng tư duy sáng tạo, kỹ năng giải quyết vấn đề và khả năng làm việc dưới áp lực Nhiều công ty như Viettel Cyber Security hay
VN Security thậm chí còn tổ chức các cuộc thi CTF nội bộ để đào tạo nhân
viên.
Trang 26Bộ khung phòng thủ nhằm mục tiêu bảo vệ cờ của đội nhà, giữ vững điểm số
defense và ngăn chặn các cuộc tấn công không mong muốn từ các đội đối thủ Một mô hình phòng thủ tốt không chỉ giúp bảo vệ cờ mà còn hỗ trợ người chơi
trong việc phát hiện nguyên nhân gây ra lỗ hồng, từ đó thực hiện ngăn chặn kịp
thời và còn làm cho quá trình tấn công lại các đội khác trở nên hiệu quả.
3.1.1 Tổng quan
Công cụ mà chúng tôi tiến hành xây dựng có kiến trúc như sau
Trang 27Máy ảo của đội
Hình 3.1: Hình ảnh mô tả kiến trúc tổng quát của bộ khung phòng thủ
Trong hệ thống nay, gateway là nơi mà moi traffic từ các đội đều phải di
qua để đến các đội đối thủ, hay nói cách khác, nó là cổng chính Proxy Server
là thành phần nằm trước dịch vụ của mỗi đội, đóng vai trò chuyển hướng các
lưu lượng đến dịch vụ đích và là nơi người chơi có quyền truy cập vào Custom Python Proxy là một proxy được người chơi viết bằng Python, đóng vai trò tương tự như Proxy Server trong việc điều hướng gói tin, tuy nhiên nó cung cấp
thêm các tính năng như chặn các traffic độc hại Tepdump có tác dụng dumpcác lưu lượng mạng tại interface kết nối với gateway và sau đó chuyển hướng
các lưu lượng này tới Separate Team VM - một máy ảo khác của đội nhà dành
Trang 28riêng cho việc quan sát các gói tin.
3.1.2 Phương pháp thiết kế
Bộ khung phòng thủ sẽ có hai chức năng chính: trực quan hoá các gói tin và
thực hiện chặn lọc các gói tin độc hại.
Về phần trực quan hoá, như đã đề cập tại 2.1.2, lưu lượng mạng đóng vai trò rất quan trọng trong quá trình phân tích các yêu cầu đến tất cả các dịch vụ của đội nhà cũng như các phản hồi từ chúng Phân tích này giúp các đội xác định
được nguyên nhân gây ra lỗ hồng, từ đó tạo ra chiến lược tấn công phù hợp đối
với đội đối thủ, đồng thời giúp củng cố và vá lỗi trên hệ thống của chính họ.
Mô hình này sẽ có một số khác biệt nhỏ khi được triển khai trên hai dạng
proxy-based và VM-based AD Nhưng trước tiên đều sẽ sử dụng các công cụ
như tcpdump để ghi lại lưu lượng mạng từ gateway (đối với mô hình proxy-based
AD) hoặc từ team router (đối với mô hình VM-based AD) và các bản ghi này
sẽ được vận chuyển đến một máy ảo khác, chỉ dành riêng cho việc quan sát lưu
lượng mạng (máy này sẽ phải kết nối vào mạng của cuộc thi), mục dich của việc
làm này là để tiện cho các đội viên trong việc truy cập cũng như phòng trườnghợp các máy mà ban tổ chức cung cấp không đủ tài nguyên
Tiếp theo sử dụng tulip [9], một công cụ được tạo ra dành riêng cho các cuộc thi AD CTF và được cải tiến từ Flower, nó đóng vai trò quan trong trong việc
trực quan hóa các dit liệu được dump, bên cạnh đó hỗ trợ thêm các tính năng
như IPv6, http decoding, tấn công phát lại Suricata [8] cũng được cài đặt và
đóng vai trò như một Intrusion Detection System trong mô hình.
Về chức năng chặn lọc các gói tin độc hại, chúng tôi sẽ đề xuất mô hình đối với dạng proxy-based AD, bởi vì đối với VM-based AD CTF người chơi đã có
toàn quyền kiểm soát trên VM từ đó thực hiện vá lỗi trực tiếp trên mã nguồn
của dịch vụ.
Trang 29Ỏ proxy-based AD, các đội sẽ khiển khai cơ chế phòng thủ hay cụ thể hơn là
chặn hoặc lọc đi các từ khóa được cho là độc hại đối với hệ thống, trước khi
chuyển hướng yêu cầu đến dịch vụ đích
Trong mô hình 2.4 của cuộc thi sinh viên với an toàn thông tin diễn ra năm
2022, ban tổ chức có đề xuất một số biện pháp cho việc phòng thủ chang han
như: iptables, reverse proxy (nginx, mod_security), custom proxy (python) Và
nhóm chúng tôi lựa chon custom proxy dựa trên tiêu chi dé cấu hình, sử dung cũng như cải tiến.
Custom proxy này có hai nhiệm vụ chính:
e Chuyển hướng traffic đến dịch vụ đích tương ứng ban dau.
e Chặn hoặc lọc các yêu cầu chứa những từ khóa độc hại đối với hệ thống.
3.1.2.1 Luôồng hoạt động
Nói một cách tổng quát, mô hình này hoạt động như sau:
1 Các gói tin từ bên ngoài (bắt nguồn là máy chủ trò chơi hoặc các đội khác)
sau khi đến Proxy Server sẽ được lưu ở dạng file bởi tepdump và được
chuyển đến một máy khác để thực hiện phân tích
2 Python proxy tại Proxy Server thực hiện kiểm tra các gói tin này lần thứ
nhất, nếu hợp lệ thực hiện chuyển tiếp đến dịch vụ đích ban đầu ngược lạidrop gói tin.
3 Dịch vụ đích ở Team VM thực hiện xử lí các gói tin sau đó trả về phản hồi.
4 Các gói tin phản hồi từ dịch vụ tiếp tục được xử lí bởi python proxy server,
nếu hợp lệ thực hiện chuyển tiếp về ip nguồn ngược lại drop gói tin.
3.1.2.2 Các bước cay dựng
Các bước để xây dựng bộ khung này như sau:
Trang 30e Bước 1: Cài đặt tcpdump trên proxy server (đối với proxy-based AD) hoặc
trên virtual machine (đối với VM-based AD) và thực hiện lắng nghe trên interface nằm chung mạng với gateway (đối với proxy-based AD) hoặc lắng nghe trên toàn interface (đối với VM-based AD).
e Bước 2: Cài đặt tulip và suricata trên máy ảo dùng riêng cho việc quan
sát (máy ảo tạo trên các nền tang như gcloud, azure ).
Vai trò của từng công cụ:
— Tulip: Cung cấp cho người chơi một giao diện dé dé dàng quan sát các
gói tin, thực hiện việc đánh tag cơ bản các gói tin đặc biệt như "Flag
In" (gói tin yêu cầu gửi đến dịch vụ có chứa cờ trong nội dung), "Flag
Out" (gói tin trả về từ dịch vụ có chứa cờ trong nội dung).
— Suricata: Thực hiện đánh tag các gói tin dựa trên một vài rule được
định nghĩa trước, góp phần tối ưu hóa thời gian phát hiện lỗ hồng
e Bước 3: Thực hiện vận chuyển các traffic dump được đến máy ảo cài đặt
tulip và suricata.
e Bước 4: Xóa các routing ban đầu trên hệ thống máy ảo được cung cấp (ví
dụ như trong kì thi Sinh viên với An toàn thông tin, nhóm chúng tôi đã
thực hiện backup sau đó xóa hết tất cả các rule ban đầu của iptables).
e Bước 5: Khởi chạy python proxy server tại vị trí các port ban đầu được
chỉ định trong rule của iptables.
Trang 31Hình 3.2: Hình ảnh mô tả kiến trúc tổng quát của bộ khung tấn công
Trong mô hình trên, Neo client được các đội viên cài đặt trên mấy cá nhân
của mình và đóng vai trò quan trọng trong việc tải các script tấn công lên Neo server Neo server sau đó sử dụng các script này để tiến hành tấn công hàng loạt vào các đội đối thủ, với mục tiêu thu thập càng nhiều cờ càng tốt Các cờ
Trang 32nay sau đó được gửi tới Farm Server.
Farm server không chỉ thực hiện lưu trữ các cờ thu thập được vào cơ sở dit liệu
mà còn đảm nhận nhiệm vụ nộp các cờ này lên máy chủ trò chơi để ghi điểm
3.2.2 Phương pháp thiết kế
Trong quá trình phòng thủ cũng như giải bài, khi các đội đã có được mã khai
thác sẽ tiến hành chuyển qua giai đoạn tấn công nhằm ghi điểm Tuy nhiên việc
Để tối ưu hoá trong việc tấn công và nộp cờ
3.2.2.1 Cac bước ray dung
Các bước để xây dựng bộ khung này như sau:
e Bước 1: Cai đặt Neo server và Farm server trên cùng may ảo chạy tulip.
e Bước 2: Cai dat Neo client ở máy người chơi.
e Bước 3: Cau hình các file config của Neo server, Neo client và Farm server
cho tương ứng với nhau và tương ứng với máy chủ trò chơi.
e Bước 4: Cuối cùng, thao tác với script dùng cho việc khai thác dịch vụ và
lay cờ ở phía Neo client.
3.2.2.2 Luong hoạt động
Tổng quan về luồng hoạt động của mô hình tấn công:
1 Đội viên viết script tấn công sau đó chạy lệnh để tải script lên phía neo
server thông qua neo client.
2 Neo erver nhận và lưu các script, chờ lệnh run từ phía Neo client để thực
hiện tấn công dịch vụ các đội đối thủ.
Trang 333 Sau khi hoàn thành tan công, Neo server trích xuất ra cờ và sau đó gửi đến
Farm server
4 Earm server trước tiên thực hiện lưu các cờ flag cơ sở dữ liệu, và sẽ thực
hiện nộp các cờ này đến GameServer trong khoản thời gian được cấu hình.
3.2.3 Mô dun tao shell
Ngoài bộ khung tấn công đã được trình bày, chúng tôi tiến hành phát triểnmột mô đun tạo shell để sử dụng trong giai đoạn Persistence, đặc biệt trong
tình huống có khả năng thực thi mã từ xa trên dịch vụ của đối thủ Mục tiêu của mô đun này là tạo ra một backdoor, cho phép trực tiếp cướp cờ trên các
dịch vụ của đội bạn dù cho những dịch vụ đó đã được vá lỗi.
Dưới đây là một số tiêu chí chúng tôi ưu tiên khi triển khai mô dun này:
e Khó bị phát hiện bởi công cu tulip, suricata.
e Khó bị dịch ngược.
e Dễ triển khai nhưng vẫn giữ được độ hiệu quả.
Dựa theo các loại dich vụ thường gặp ở các giải đấu ADCTF, chúng tôi chia ra
thành hai dạng shell: web và tệp thực thi.
3.2.8.1 Shell dạng web
Để triển khai shell ở dang này, chúng tôi lợi dung giao thức websocket Sơ
qua về Websocket, nó là một giao thức cung cấp các kênh giao tiếp full-duplex
qua một kết nối TCP! duy nhất Giao thức WebSocket đã được chuẩn hóa bởi
Thttps://wiki-wireshark.org/TCP/
Trang 34IETF? như là RFC 6455? vào năm 2011, và API WebSocket trong Web IDL
đang được chuẩn hóa bởi W3C
WebSocket được thiết kế để triển khai trên trình duyệt web và máy chủ web,nhưng có thể được sử dụng bởi bất kỳ ứng dụng client hoặc server nào Giao
thức WebSocket là một giao thức độc lập dựa trên TCP Mối quan hệ duy nhất
của nó với HTTP là bắt đầu bằng cách giao tiếp bắt đầu (handshake) được hiểu
bởi các máy chủ HTTP như một yêu cầu nâng cấp.
“https: //en.wikipedia.org/wiki/Internet pngineeringraskrorce/
3https://tools.ietf.org/html/rfc6455/
Trang 35Handshake (HTTP Upgrade)
Connection opened
Bidirectional Messages open and persistent connection
One side closes channel
eo ee —ễ
connection closed
Hinh 3.3: Websocket handshake
Nguồn: https://www.researchgate.net/figure/Web-socket-architecture_ fig3_ 338553959
Chúng tôi tận dụng việc giao thức HTTP được sử dụng trong giai đoạn
hand-shake để tạo ra một webshell (php) và thực hiện việc obfuscate trên shell này
Shell này chỉ có một nhiệm vụ duy nhất, đó là cướp flag, sau đó mã hoá nó bằng AES và gửi về cho người tấn công Sau đó, chúng tôi tải shell lên phía
dịch vụ của đối thủ thông qua lỗ hổng thực thi mã từ xa hoặc các lỗ hồng có
ảnh hưởng tương tự Cuối cùng, ở bên phía của người chơi, chúng tôi viết một