ĈҤ,+Ӑ&48Ӕ&*,$73+&0
75ѬӠ1*ĈҤ,+Ӑ&%È&+.+2$
.+2$.+2$+Ӑ&9¬.Ӻ7+8Ұ70È<7Ë1+
/8Ұ19Ă17Ӕ71*+,ӊ3ĈҤ,+Ӑ&
1*+,Ç1&Ӭ89¬3+È775,ӆ11ӄ17Ҧ1*7Ә&+Ӭ&
7+,7Ҩ1&Ð1*± 3+Ñ1*7+Ӫ0È<7Ë1+(),(16
*,$,Ĉ2Ҥ17+,ӂ7.ӂ+ӊ7+Ӕ1*9¬;Æ<'Ӵ1*02'8/(*,$2
7,ӂ3*,Ӳ$&È&86(569¬6(59(57+¬1+3+Ҫ1.,ӆ075$'ӎ&+
9Ө9¬7Ә1*+Ӧ375Ҥ1*7+È,'ӎ&+9Ө
1JjQK.KRDKӑFYjNӻWKXұWPi\WtQK
+Ӝ,ĈӖ1*KHMT5
GVHD: 761*8<ӈ1$1.+ѬѪ1*
GVPB: 75Ҫ1+Ӗ1*7¬,
---o0o--SVTH: 1*8<ӈ10,1+48$1*- 1712778
73+Ӗ&+Ë0,1+
ĈҤ,+Ӑ&48Ӕ&*,$73+&0
75ѬӠ1*ĈҤ,+Ӑ&%È&+.+2$
.+2$.+2$+Ӑ&9¬.Ӻ7+8Ұ70È<7Ë1+
/8Ұ19Ă17Ӕ71*+,ӊ3ĈҤ,+Ӑ&
1*+,Ç1&Ӭ89¬3+È775,ӆ11ӄ17Ҧ1*7Ә&+Ӭ&
7+,7Ҩ1&Ð1*± 3+Ñ1*7+Ӫ0È<7Ë1+(),(16
*,$,Ĉ2Ҥ17+,ӂ7.ӂ+ӊ7+Ӕ1*9¬;Æ<'Ӵ1*02'8/(*,$2
7,ӂ3*,Ӳ$&È&86(569¬6(59(57+¬1+3+Ҫ1.,ӆ075$'ӎ&+
9Ө9¬7Ә1*+Ӧ375Ҥ1*7+È,'ӎ&+9Ө
1JjQK.KRDKӑFYjNӻWKXұWPi\WtQK
+Ӝ,ĈӖ1*KHMT5
GVHD: 761*8<ӈ1$1.+ѬѪ1*
GVPB: 75Ҫ1+Ӗ1*7¬,
---o0o--SVTH: 1*8<ӈ10,1+48$1*- 1712778
73+Ӗ&+Ë0,1+
ĈҤ,+Ӑ&48Ӕ&*,$73+&0
---------75ѬӠ1*ĈҤ,+Ӑ&%È&+.+2$
KHOA:KH & KT Máy tính
%Ӝ0Ð1 KHMT
&Ӝ1*+Ñ$;+Ӝ,&+Ӫ1*+Ƭ$9,ӊ71$0
ĈӝFOұS- 7ӵGR- +ҥQKSK~F
1+,ӊ09Ө/8Ұ1È17Ӕ71*+,ӊ3
Chú ý: Sinh viên pK̫LGiQWͥQj\YjRWUDQJQK̭WFͯDE̫QWKX\͇WWUuQK
+Ӑ9¬7Ç1 1JX\ӉQ0LQK4XDQJ
NGÀNH: .KRDKӑFMáy tính
MSSV: 1712778
/Ӟ3 MT17KH3
ĈҫXÿӅOXұQ YăQ: 1JKLrQFӭXYjSKiWWULӇQQӅQWҧQJWәFKӭFWKLWҩQF{QJ± SKzQJWKӫPi\
tính Efiens. *LDLÿRҥQ7KLӃWNӃKӋWKӕQJYj[k\GӵQJPRGXOHJLDRWLӃSJLӳDFiFXVHUVYj
server, thành SKҫQNLӇPWUDGӏFKYөYjWәQJKӧSWUҥQJWKiLGӏFKYө. (Building Efiens CTF
Platform: System design and developing a client-server interacting module, checking service and
summarizing service status)
1KLӋPYө\rXFҫXYӅQӝLGXQJYjVӕOLӋXEDQÿҫX
x 7uPKLӇXYӅFXӝFWKL&DSWXUH-The-)ODJWKHRKuQKWKӭFWKLWҩQF{QJ± SKzQJWKӫ .KҧRViW và
phân tích các QӅQWҧQJWәFKӭFWKLWҩQF{QJ± SKzQJWKӫKLӋQFy 7KLӃWNӃWәQJWKӇNLӃQWU~FQӅQ
WҧQJWәFKӭFWKLWҩQF{QJSKzQJWKӫ 7KLӃWNӃFKLWLӃWYjKLӋQWKӵFFiFWKjQKSKҫQ
o 0RGXOHJLDRWLӃSJLӳDFiFXVHUVYjVHUYHU,
o 7KjQKSKҫQNLӇPWUDGӏFKYө,
o 7KjQKSKҫQWәQJKӧSWUҥQJWKiLGӏFKYө
x Tích hӧSNLӇPWKӱYjÿiQKJLiFiFWKjQKSKҫQ ÿã hiӋQWKӵF.
1Jj\JLDRQKLӋPYөOXұQYăQ: 22/02/2021
1Jj\KRjQWKjQKQKLӋPYө 07/06/2021
+ӑWrQJLҧQJYLrQKѭӟQJGүQ
x
1JX\ӉQ$Q.KѭѫQJ, Ĉ+%K
x
1JX\ӉQ7UtĈӭF, Ĉ+George Mason
x
+RjQJ9ƭQK$Q, Zalora Group
3KҫQKѭӟQJGүQ
*ӧLêKѭӟQJÿӅWjLJLiPViW
qXiWUuQKWKӵFKLӋQ
ĈӏQKKѭӟQJÿӅWjLFөWKӇKѭӟQJGүQFKtQKNӻ
WKXұWF{QJQJKӋJLiPViWTXiWUuQKWKӵFKLӋQ
+ѭӟQJGүQNLӃQWKӭFQӅQWҧQJJӧLêFiF
KѭӟQJJLҧLTX\ӃWYҩQÿӅ
1ӝLGXQJYj\rXFҫX/971ÿmÿѭӧFWK{QJTXD%ӝP{Q
NJj\WKiQJQăP
&+Ӫ1+,ӊ0%Ӝ0Ð1
.êYjJKLU}K͕WrQ
ĈҤ,',ӊ17Ұ37+ӆ +ѬӞ1*'Ү1
.êYjJKLU}K͕WrQ
1JX\ӉQ$Q.KѭѫQJ
P+̮1'¬1+&+2.+2$%͠0Ð1
1JѭӡLGX\ӋWFKҩPVѫEӝ________________________
ĈѫQYӏ _______________________________________
1Jj\EҧRYӋ __________________________________
ĈLӇPWәQJNӃW _________________________________
1ѫLOѭXWUӳOXұQiQ _____________________________
75ѬӠ1*ĈҤ,+Ӑ&%È&+.+2$
KHOA KH & KT MÁY TÍNH
&Ӝ1*+Ñ$;+Ӝ,&+Ӫ1*+Ƭ$9,ӊ71$0
ĈӝFOұS- 7ӵGR- +ҥQKSK~F
---------------------------Ngày 11 tháng 08 QăP 2021
3+,ӂ8&+Ҩ0%Ҧ29ӊ/971
'jQKFKRQJ˱ͥLK˱ͣQJG̳Q
+ӑYjWrQ69 1JX\ӉQ0LQK4XDQJ
MSSV: 1712778 (MT17KH3)
Ngành (chuyên ngành): KHMT
ĈӅWjL 1JKLrQFӭXYjSKiWWULӇQQӅQWҧQJWәFKӭFWKLWҩQF{QJ± SKzQJWKӫPi\WtQK(ILHQV
*LDLÿRҥQ7KLӃWNӃKӋWKӕQJYj[k\GӵQJPRGXOHJLDRWLӃSJLӳDFiFXVHUVYjVHUYHUWKjQK
SKҫQNLӇPWUD GӏFKYөYjWәQJKӧSWUҥQJWKiLGӏFKYө(Building Efiens CTF Platform: System
design and developing a client-server interacting module, checking service and summarizing
service status)
+ӑWrQQJѭӡLKѭӟQJGүQ
x 1JX\ӉQ$Q.Kѭѫng, .KRD.+ .70i\WtQKĈ+%K
x 1JX\ӉQ7UtĈӭF, Ĉ+George Mason
x +RjQJ9ƭQK$Q, Zalora group
7әQJTXiWYӅEҧQWKX\ӃWPLQK
6ӕWUDQJ 48
6ӕFKѭѫQJ 08
6ӕEҧQJVӕOLӋX: 3
6ӕKuQKYӁ 17
6ӕWjLOLӋXWKDPNKҧR 7
3KҫQPӅPWtQKWRiQ
+LӋQYұWVҧQSKҭP:
7әQJTXiWYӅFiFEҧQYӁ
- 6ӕ EҧQYӁ
%ҧQ$
%ҧQ$
.KәNKiF
- 6ӕEҧQYӁYӁWD\
6ӕEҧQYӁWUrQPi\WtQK
1KӳQJѭXÿLӇPFKtQKFӫD/971
x LV viӃWWӕW trình bày PҥFKOҥFU}UjQJÿ~QJTX\Fách, tWOӛLFKtQKWҧQJӳSKiS7/7.WUuQK
Ej\ÿ~QJFKXҭQ
x 697+QҳPYӳQJNLӃQWKӭFQӅQWҧQJNӻWKXұWYjFiFF{QJQJKӋFyOLrQTXDQ ÿӇ[â\GӵQJ
ÿѭӧF QӅQWҧQJKӛWUӧWKLWҩQF{QJ± SKzQJWKӫ
x .ӃWTXҧÿҥWÿѭӧFFӫD/9FyêQJKƭDWKӵFWLӉQSKKӧSYӟLPөFWLrXYjJLӟLKҥQSKҥPYLÿӅ
WjLÿһWUDEDQÿҫX.
1KӳQJWKLӃXVyWFKtQKFӫD/971
x 1ӅQWҧQJGRVLQKYLrQ[k\GӵQJFKѭDFyFѫFKӃKӛWUӧNKLFiFÿӝLFKѫLNKLEӏPҩWNӃWQӕLWӟL
PҥQJULrQJҧRWURQJTXiWUuQKÿәLÿӏDFKӍ,3
x NӅQWҧQJYүQFKӍKӛWUӧPӝWKuQKWKӭFWKLFөWKӇOjWҩQF{QJ± SKzQJWKӫFKѭDWKӇPӣUӝQJ
SKҥP YLÿӇWәFKӭFFiFFXӝFWKLFyNӏFKEҧQULrQJ
x 69FKѭDÿӅ[XҩWU}FҩXKuQKKӋWKӕQJÿӇFyWKӇYұQKjQKWӕWÿѭӧFQӅQWҧQJÿmSKiWWULӇQ
ĈӅQJKӏĈѭӧFEҧRYӋ;
%әVXQJWKrPÿӇEҧRYӋ
.K{QJÿѭӧFEҧRYӋ
9. 0ӝWVӕ FkXKӓL69SKҧLWUҧOӡLWUѭӟF+ӝLÿӗQJ: Không có (69Vͅÿ˱ͫFK͗LWUFWL͇SWUrQ+Ĉ)
ĈiQKJLiFKXQJEҵQJFKӳJLӓLNKi7% *LӓL
ĈLӇP8.5/10
.êWrQJKLU}KӑWrQ
1JX\ӉQ$Q.KѭѫQJ
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KH & KT MÁY TÍNH
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
---------------------------Ngày 5 tháng 08 năm 2021
PHIẾU CHẤM BẢO VỆ LVTN
(Dành cho người hướng dẫn/phản biện)
1. Họ và tên SV: Nguyễn Minh Quang
MSSV: 1712778
Ngành (chuyên ngành): Khoa Học Máy Tính
2. Đề tài: 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 mô-đun giao tiếp giữa các users và server, thành phần kiểm
tra dịch vụ và tổng hợp trạng thái dịch vụ
3. Họ tên người hướng dẫn/phản biện: /Trần Hồng Tài
4. Tổng quát về bản thuyết minh:
Số trang:
Số chương:
Số bảng số liệu:
Số hình vẽ:
Số tài liệu tham khảo:
Phần mềm tính toán:
Hiện vật (sản phẩm)
5. Tổng quát về các bản vẽ:
- Số bản vẽ:
Bản A1:
Bản A2:
Khổ khác:
- Số bản vẽ vẽ tay
Số bản vẽ trên máy tính:
6. Những ưu điểm chính của LVTN:
- Luân văn đưa ra ứng dụng cụ thể sát với thực tế.
- Luận văn tìm hiểu ưu điểm, nhược điểm của các nền tảng, mô hình liên quan.
- Đưa ra đề xuất để thay đổi IP tự động để cải thiện rủi DDos trong quá trình vận hành
- Sử dụng một phần máy tính từ users sẽ giảm cấu hình yêu cầu cho server.
- Có định hướng phát triển tiếp theo cho đề tài.
7. Những thiếu sót chính của LVTN:
- Phần đánh giá hiện sử dụng giả lập chưa phân tích trên tình huống thực tế.
- Nên miêu tả rõ hơn phần cài đặt vật lý của hệ thống.
8. Đề nghị: Được bảo vệ
Bổ sung thêm để bảo vệ
Không được bảo vệ
9. 3 câu hỏi SV phải trả lời trước Hội đồng:
- Cấu hình yêu cầu cho các máy chủ hệ thống.
- Hướng xử lý trường hợp một đội chơi bị mất kết nối ngay trước quá trình thay đổi ip.
10. Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi
Điểm: 8.5/10
Ký tên (ghi rõ họ tên)
Trần Hồng Tài
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
LUẬN VĂN TỐT NGHIỆP
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
và server, thành phần kiểm tra dịch vụ và tổng hợp trạng thái dịch vụ
Hội đồng LVTN:
Khoa học máy tính
Tập thể hướng dẫn:
Nguyễn An Khương
Khoa KH & KT Máy tính, ĐHBK
Nguyễn Trí Đức
George Mason University
Hoàng Vĩnh An
Zalora Group
Giảng viên phản biện:
Trần Hồng Tài
Khoa KH & KT Máy tính, ĐHBK
Sinh viên thực hiện:
Nguyễn Minh Quang
1712778
Ngày 18 tháng 10 năm 2021
Lời cam đoan
Tôi xin cam đoan đây là công trình nghiên cứu của riêng chúng tôi dưới sự hướng dẫn
của TS.Nguyễn An Khương, anh Nguyễn Trí Đức, anh Hoàng Vĩnh An và sự hỗ trợ của
bạn Chế Minh Huy. Nội dung nghiên cứu và các kết quả đều là trung thực và chưa từng
được công bố trước đây. Các số liệu được sử dụng cho quá trình phân tích, nhận xét được
chính chúng tôi thu thập từ nhiều nguồn khác nhau và sẽ được ghi rõ trong phần tài liệu
tham khảo.
Nếu phát hiện có bất kỳ sự gian lận nào, tôi xin hoàn toàn chịu trách nhiệm về nội
dung luận văn tốt nghiệp của mình. Trường đại học Bách Khoa thành phố Hồ Chí Minh
không liên quan đến những vi phạm tác quyền, bản quyền do chúng tôi gây ra trong quá
trình thực hiện.
i
Lời cảm ơn
Lời nói đầu, tôi xin cảm ơn tất cả mọi người đã giúp đỡ tôi trong quá trình thực hiện
luận văn. Đầu tiên, tôi xin cảm ơn thầy Nguyễn An Khương, người đã tận tình hướng
dẫn tôi trong quá trình thực hiện đề tài. Không thể không nhắc đến anh Nguyễn Trí Đức
là người đã gợi mở ý tưởng đề tài, cố vấn về kỹ thuật và cùng tham gia thiết kế hệ thống.
Cảm ơn bạn Chế Minh Huy, người bạn đã cùng tôi và hiện thực hệ thống này. Cảm ơn
anh Hoàng Vĩnh An đã đưa ra gọi ý tới ý tưởng xây dựng nên kết nối chung của hệ thống.
Tôi cũng xin gửi lời cảm ơn đến các giảng viên trường Đại học Bách Khoa Thành Phố
Hồ Chí Minh, đặc biệt là các thầy cô trong Khoa Khoa học và Kỹ thuật máy tính, những
người đã truyền đạt kiến thức cho tôi trong suốt bốn năm học vừa qua.
Cuối cùng, tôi xin gửi lời cảm ơn tới gia đình, bạn bè, những người đã động viên hỗ
trợ tôi trong suốt thời gian học chương trình bậc đại học.
ii
Tóm tắt luận văn
Trong thời kỳ công nghệ 4.0 hiện nay, yếu tố an toàn mạng được đưa lên hàng đầu.
Học hỏi các kiến thức về an toàn thông tin thông qua các cuộc thi là một phương pháp
rất thực tiễn. Capture The Flag là một trong những cuộc thi nổi tíêng nhất trong lĩnh vực
này. Tuy nhiên cuộc thi này hiện nay chủ yếu tổ chức hiện nay theo hình thức Jeopardy
còn hình thức tấn công phòng thủ sát với thực tế hơn thì được tổ chức rất hạn chế.
Nguyên nhân nằm ở nền tảng hỗ trợ thi theo hình thức này vẫn chưa thực sự đủ mạnh
và hỗ trợ tốt cho ban tổ chức.
Để hình thức thi này được tổ chức rộng rãi hơn, mục tiêu của luận văn là xây dựng
một hệ thống nền tảng hỗ trợ tổ chức cuộc thi Capture The Flag theo thể thức tấn công
và phòng thủ dễ dàng trong việc vận hành, giảm chi phí cho ban tổ chức mà ở trong đó
các máy chủ đội chơi được vận hành trên các máy do các đội cung cấp.
iii
Mục lục
Lời cam đoan . . . . . . . . .
Lời cảm ơn . . . . . . . . . .
Tóm tắt luận văn . . . . . . .
Mục lục . . . . . . . . . . . .
Danh sách hình vẽ . . . . . .
Danh sách thuật ngữ viết tắt
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
. ii
. iii
. iv
. v
. vii
.
.
.
.
.
.
.
.
.
.
1
1
2
2
3
3
2 Kiến thức nền tảng
2.1 Capture the flag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Mạng riêng ảo - VPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
6
1 Giới thiệu
1.1 Đặt vấn đề . . . . . . . . .
1.2 Mục tiêu và phạm vi đề tài
1.2.1 Mục tiêu . . . . . . .
1.2.2 Phạm vi đề tài . . .
1.3 Bố cục của luận văn . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Một số nền tảng đã được phát triển
7
3.1 Mô hình nền tảng tấn công - phòng thủ của iCTF . . . . . . . . . . . . . . 7
3.2 Mô hình nền tảng tấn công - phòng thủ saarCTF . . . . . . . . . . . . . . 10
3.3 Mô hình nền tảng tấn công - phòng thủ Cardinal . . . . . . . . . . . . . . 10
4 Phân tích và thiết kế hệ thống
4.1 Đặt vấn đề . . . . . . . . . . .
4.2 Phương pháp đề xuất . . . . .
4.3 Kiến trúc đề xuất . . . . . . .
4.3.1 Khối đội chơi - kết nối
4.3.2 Khối vận hành . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
12
14
14
15
18
5 Một số công cụ phù
5.1 Docker Container
5.2 Wireguard . . . .
5.3 Go . . . . . . . .
5.4 RabbitMQ . . . .
hợp để phát
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
triển hệ thống
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 Hiện thực các thành phần hệ thống
6.1 Xây dựng hệ thống kết nối giữa các users và server . . . . . . . . . . .
6.1.1 Đặt vấn đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.2 Kiến trúc của kết nối . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Xây dựng thành phần kiểm tra trạng thái dịch vụ . . . . . . . . . . . .
6.2.1 Đặt vấn đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.2 Kiến trúc của thành phần kiểm tra trạng thái dịch vụ sơ khởi .
6.2.3 Kiến trúc của thành phần kiểm tra trạng thái dịch vụ hiện thực
6.3 Xây dựng thành phần tổng hợp trạng thái dịch vụ . . . . . . . . . . . .
6.3.1 Đặt vấn đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.2 Kiến trúc của thành phần tổng hợp trạng thái dịch vụ sơ khởi .
6.3.3 Kiến trúc của thành phần tổng hợp trạng thái dịch vụ hiện thực
7 Đánh giá và kiểm thử
7.1 Đánh giá hiệu năng của module kết nối giữa các users và server
7.2 Kiểm thử các thành phần hiện thực . . . . . . . . . . . . . . . .
7.2.1 Kiểm thử thành phần kiểm tra trạng thái dịch vụ . . . .
7.2.2 Kiểm thử thành phần tổng hợp trạng thái dịch vụ . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
24
24
25
26
26
.
.
.
.
.
.
.
.
.
.
.
27
27
27
28
31
31
32
32
35
35
35
36
.
.
.
.
41
41
43
43
44
8 Tổng kết
46
8.1 Các kết quả đạt được . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.2 Những hạn chế và hướng phát triển trong tương lai . . . . . . . . . . . . . 47
Tài liệu tham khảo
48
v
Danh sách hình vẽ
3.1
3.2
Kiến trúc mô hình tấn công - phòng thủ của iCTF[7] . . . . . . . . . . . . 7
Màn hình theo dõi tiến trình trận đấu trực quan của Cardinal . . . . . . . 11
4.1
4.2
4.3
Kiến trúc mô hình tấn công - phòng thủ đề xuất. . . . . . . . . . . . . . . 15
Kiến trúc chi tiết khối đội chơi - kết nối. . . . . . . . . . . . . . . . . . . . 16
Kiến trúc chi tiết khối đội vận hành mô hình đề xuất . . . . . . . . . . . . 19
5.1
Kiến trúc hoạt động của docker . . . . . . . . . . . . . . . . . . . . . . . . 25
6.1
6.2
6.3
6.4
6.5
Kiến trúc kết nối VPN . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Biểu đồ tuần tự hoạt động thay đổi địa chỉ IP . . . . . . . . . . . . . . .
Biểu đồ kiến trúc thành phần kiểm tra trạng thái dịch vụ sơ khởi . . . .
Biểu đồ kiến trúc thành phần kiểm tra trạng thái dịch vụ . . . . . . . . .
Biểu đồ tuần tự quá trình kiểm tra dịch vụ của thành phần kiểm tra trạng
thái dịch vụ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.6 Biểu đồ kiến trúc thành phần tổng hợp trạng thái dịch vụ sơ khởi . . . .
6.7 Biểu đồ kiến trúc thành phần tổng hợp trạng thái dịch vụ . . . . . . . .
6.8 Các giai đoạn hoạt động của Service Status trong một tick. . . . . . . .
6.9 Biểu đồ tuần tự phân phát việc hoạt động mỗi đầu tick . . . . . . . . .
6.10 Biểu đồ tuần tự xử lý một kết quả trả về từ Scriptbot . . . . . . . . . .
7.1
.
.
.
.
28
30
32
33
.
.
.
.
.
.
34
35
37
38
39
40
Biểu đồ tỉ lệ sử dụng CPU của VPN Server trong thời gian thay đổi địa
chỉ IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
vi
Danh sách bảng
7.1
7.2
7.3
Thông tin phản hồi và số lượng kết nối bị mất theo số lượng máy chủ tham
gia
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Các mã nguồn kiểm thử mức đơn vị của thành phần kiểm tra dịch vụ . . . 44
Các mã nguồn kiểm thử mức đơn vị của thành phần tổng hợp dịch vụ . . . 45
vii
Danh sách thuật ngữ viết tắt
DDoS
CTF
ISP
API
NAT
VPN
Distributed Denial-of-Service
Capture The Flag
Internet Service Provider
Application Programming Interface
Network Address Translation
Virtual Private Network
viii
1
Giới thiệu
1.1
Đặt vấn đề
An toàn thông tin đang là một lĩnh vực đang được chú trọng phát triển song song với
việc phát triển chung của ngành công nghệ thông tin. Việc tiếp cận các kiến thức về lĩnh
vực này hiện nay có nhiều cách như thông qua việc học qua các trường lớp, khóa học,
sách vở hoặc tham gia trực tiếp vào việc nghiên cứu các lỗ hổng. Tham gia các cuộc thi
về an toàn thông tin cũng là một cách để tiếp cận các kiến thức này một cách thực tiễn.
Một trong những cuộc thi nổi tiếng nhất về lĩnh vực này là cuộc thi Capture the Flag[4]
(CTF).
Cuộc thi CTF hiện nay có ba hình thức tổ chức chính.
• Jeopardy: Trong cuộc thi người chơi sẽ phải giải quyết các thử thách chia thành
nhiều lĩnh vực. Ví dụ như: Web, điều tra số, mật mã,... Đội chơi sẽ được điểm sau
khi giải quyết thử thách. Các thử thách càng phức tạp thì điểm càng cao. Thứ hạng
các đội sẽ được sắp xếp theo tổng điểm cuối cùng.
• Tấn công - phòng thủ: Trong cuộc thi mỗi đội chơi sẽ có một mạng riêng (hoặc là
máy chủ) chứa các dịch vụ có chứa các lỗ hổng phần mềm. Các đội chơi có thể vá
các lỗ hổng và viết mã khai thác để tấn công các đội khác. Đội chơi sẽ phòng thủ
dịch vụ của mình để lấy điểm phòng thủ và tấn công các đội khác với mục đích lấy
điểm tấn công.
• Hình thức thi hỗn hợp: đây là hình thức thi được kết hợp giữa các hình thức trên
để phù hợp với nhu cầu của ban tổ chức.
Trong bài thi Jeopardy các đội chơi có thiên hướng tập trung vào nghiên cứu về hình
thức tấn công vào các lỗ hổng là chủ yếu, còn việc làm sao để sửa chữa nó thì ít khi được
đề cập đến. Do đòi hỏi việc phải đảm nhận cả hai vai trò tấn công và phòng thủ nên thể
thức tấn công - phòng thủ có cách thức hoạt động sát với thực tiễn nhất và cũng là dạng
1
Chương 1
thi cung cấp cho đội chơi nhiều dạng kiến thức nhất.
Mặc dù lợi ích của bài thi theo dạng tấn công - phòng thủ là lớn hơn hẳn, thế nhưng bài
thi theo thể thức tấn công - phòng thủ thì chiếm chưa tới 10% trong số lượng các cuộc
thi tổ chức CTF được ghi nhận hằng năm trên CTFtime còn thể thức Jeopardy thì lại
chiếm tới hơn 80%. Thông qua quá trình tìm hiểu và phân tích, sinh viên nhận ra rằng
điều ảnh hướng lớn đến phân bố này chính là các nền tảng hỗ trợ tổ chức cuộc thi. Với
hình thức thi Jeopardy, hiện nay có nền tảng CTFd1 rất nổi tiếng. Đây là một nền tảng
với mã nguồn mở hỗ trợ ban tổ chức thiết lập một hệ thống cho phép hàng trăm đội tham
gia thi cùng lúc thông qua Internet. Còn tấn công - phòng thủ vẫn chưa có một nền tảng
thực sự đủ mạnh để làm chuyện này.
Nhu cầu xây dựng một nền tảng hỗ trợ tổ chức cuộc thi CTF theo thể thức tấn công phòng thủ là thực sự cần thiết. Việc xây dựng thành công một mô hình hỗ trợ tổ chức
CTF theo dạng tấn công - phòng thủ sẽ không chỉ là một bước tiến lớn về hình thức tổ
chức thi CTF mà còn là một bước tiến lớn trong công cuộc huấn luyện và rèn luyện các
kiến thức về ngành an toàn thông tin.
Trong phạm vi luận văn sinh viên sẽ phân tích và đánh giá một số nền tảng tổ chức
tấn công - phòng thủ đã được hiện thực. Đồng thời đề xuất một mô hình nền tảng tổ
chức tấn công - phòng thủ mới.
1.2
1.2.1
Mục tiêu và phạm vi đề tài
Mục tiêu
Mục tiêu ở đây sinh viên sẽ xây dựng một mô hình nền tảng tổ chức cuộc thi CTF theo
hình thức tấn công - phòng thủ với một số yêu cầu sau đây:
• Dễ dàng cho việc triển khai.
• Tốc độ kết nối giữa các đội chơi nhanh và ổn định.
• Có thể tổ thức theo hình thức trực tuyến thông qua internet.
• Số lượng đội chơi tham gia lớn trên 50 đội.
• Các đội chơi được hỗ trợ giấu danh tính trong suốt quá trình thi.
• Ban tổ chức dễ dàng điều khiển, thay đổi thông tin cuộc thi trong thời gian thực.
• Phục vụ cho nhu cầu tìm hiểu về kỹ thuật.
1
CTFd: https://github.com/CTFd/CTFd
2
Chương 1
1.2.2
Phạm vi đề tài
Để đảm nội dung nghiên cứu phù hợp với thời gian và khả năng hiện tại, trong đề tài này
sinh viên sẽ tập trung vào các điểm chính sau.
• Thiết kế tổng quát cho nền tảng.
• Đề xuất phương thức hiện thực phần kết nối giữa các users và server, thành phần
kiểm tra dịch vụ và tổng hợp trạng thái dịch vụ.
• Hiện thực phần kết nối giữa các users và server, thành phần kiểm tra dịch vụ và
tổng hợp trạng thái dịch vụ.
1.3
Bố cục của luận văn
Dựa theo các giai đoạn được phân chia như trên, bố cục của đề cương có thể tóm lược
như sau.
Chương 1 - Giới thiệu
Trình bày tổng quan về vấn đề cần giải quyết, mục tiêu của đề bài. Sau đó đưa ra kế
hoạch thực hiện và bố cục dự kiến của đề tài.
Chương 2 - Kiến thức nền tảng
Giới thiệu về các kiến thức về cuộc thi CTF, các yếu tố cần để xây dựng hệ thống nền
tảng tổ chức cuộc thi CTF theo hình thức tấn công - phòng thủ.
Chương 3 - Một số nền tảng đã và đang được phát triển
Giới thiệu về một số nền tảng đã và đang được phát triển.
Chương 4 - Một số công cụ phù hợp để phát triển hệ thống
Trình bày các công nghệ phù hợp sử dụng trong quá trình phát triển hệ thống.
Chương 5 - Thiết kế hệ thống
Trình bày về kiến trúc và mô hình vận hành của hệ thống.
Chương 6 - Hiện thực các thành phần hệ thống
Hiện thực các kết nối giữa các đội chơi và hệ thống, thành phần kiểm tra dịch vụ, thành
phần tổng hợp dịch vụ.
3
Chương 1
Chương 7 - Đánh giá và kiểm thử
Đánh giá và nhận xét module kết nối giữa các users và server. Kiểm thử ở mức đơn vị
hai thành phần Scriptbot và ServiceStatus.
Chương 8 - Tổng kết
Tổng kết về luận văn và trình bày các hướng phát triển của đề tài.
4
2
Kiến thức nền tảng
2.1
Capture the flag
Capture the flag (CTF) là một cuộc thi sử dụng kiến thức về an toàn thông tin. Trong
cuộc thi, các đội chơi sẽ phải giải quyết các vấn đề về bảo mật máy tính với mục tiêu tìm
ra một chuỗi ký tự đặc biệt được giấu bên trong thử thách được gọi là “flag”.
Các cuộc thi CTF thường được chia thành 3 hình thức như sau:
1. Jeopardy
Ở hình thức này ban tổ chức sẽ đưa ra một loạt các thử thách khác nhau, được
phân ra thành nhiều chủ đề như: Web, Pwn, Reverse, Crypto, Forensic,.... “flag” sẽ
được các đội chơi tìm thấy bên trong thử thách sau khi giải hoặc ở trong máy chủ
do ban tổ chức cung cấp. Điểm số sẽ được tính dựa vào số lượng “flag” và độ phức
tạp của thử thách.
2. Tấn công - phòng thủ
Ở hình thức thi này các đội chơi sẽ sử dụng máy chủ của mình hoặc do ban tổ chức
cung cấp để vận hành các dịch vụ có chứa lỗ hỗng do ban tổ chức cung cấp sau đó
cùng kết nối đến một mạng riêng. Các đội chơi sẽ có hai nhiệm vụ chính đó là tấn
công các đội khác để lấy “flag” thông qua các lỗ hổng và ngăn chặn sự tấn công của
các đội khác vào các dịch vụ do mình đang vận hành thông qua việc ngăn chặn các
yêu cầu tới hoặc vá lỗ hổng trên dịch vụ được cung cấp. Thời gian thi đấu sẽ được
chia thành các vòng, “flag” được chứa bên trong dịch vụ của các đội sẽ thay đổi sau
mỗi vòng. Điểm số của các đội sẽ được tính theo số lượng “flag” đội đó lấy được và
điểm thưởng từ việc phòng thủ thành công các dịch vụ của đội mình (phòng thủ
thành công nghĩa là không có đội nào lấy được “flag” của dịch vụ). Đây là hình
thức thi sát với thực tiễn nhất hiện nay khi mà đội ngũ bảo mật ngoài việc nghiên
cứu các lỗ hổng thông qua suy nghĩ cách tấn công họ còn có thể phân tích các nguy
cơ về lỗ hổng thông qua các yêu cầu gửi đến dịch vụ.
5
Chương 2
3. Hình thức thi kết hơp
Là sự phối hợp của hai hình thức trên, hình thức thi được tùy biến theo người tổ
chức dựa trên mục đích của cuộc thi.
2.2
Mạng riêng ảo - VPN
Mạng riêng ảo - Virtual Private Network [1] là một công nghệ mạng giúp tạo kết nối an
toàn khi tham gia môi trường công cộng như internet hoặc mạng riêng do một nhà cung
cấp dịch vụ sở hữu. Các máy tính tham gia mạng riêng ảo sẽ “nhìn thấy nhau” như trong
một mạng nội bộ - Local Area Network (LAN).
Dưới đây là một số lợi ích mà VPN mang lại:
• Truy cập mạng doanh nghiệp từ xa: VPN thường được sử dụng để truy cập vào
mạng lưới hệ thống của doanh nghiệp gồm các tài nguyên trên mạng cục bộ. Khi
có trở ngại về địa lý, nhân viên có thể kết nối thông qua VPN. Nhờ vậy mà các tài
nguyên này không phải tiếp xúc trực tiếp với internet, giúp tăng tính bảo mật.
• Duyệt web ẩn danh: các yêu cầu (request) được gửi thông qua VPN sẽ được mã
hóa, do vậy tất cả các thông tin, dữ liệu trao đổi qua lại giữa người dùng và website
sẽ được đảm bảo bí mật.
• Truy cập đến những website bị chặn do giới hạn địa lý: khi truy cập internet thông
qua VPN thì thiết bị sẽ sử dụng địa chỉ IP của máy chủ chứa VPN nên các hạn chế
về địa chỉ IP hiện tại sẽ được bỏ qua.
6
- Xem thêm -