Đăng ký Đăng nhập
Trang chủ 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...

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

.PDF
62
1
115

Mô tả:

ĈҤ,+Ӑ&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\ӋW FKҩ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ұW Vҧ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͗LWU͹FWL͇SWUrQ+Ĉ) ĈiQKJLiFKXQJ EҵQJFKӳJLӓLNKi7%  *LӓL ĈLӇP8.5/10 .êWrQ JKLU}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 -

Tài liệu liên quan