0%

准备vibe coding一个安全技能平台

不知不觉,AI已经发展得能解决不少生活或者工作中的问题了。自从使用了chatgpt之后,从最开始的当作搜索引擎查询IT类的知识点,到后面开始和他聊聊社会、理想、职业发展等问题,觉得还是有不少获得感的。

在这期间,也尝试过用cursor和vscode的copliot进行半自动化的写代码,用copliot写了一个人脸识别打卡的系统,用cursor参加集团比赛拿了个奖。突然发现,只过了短短几年,像我这种野生程序员都算不上的人,写代码的方式和成本都发生了很大的变化。以前可能要以月为单位才能做好的东西,现在可能只需要几周甚至几天。只要能想明白业务系统逻辑,基本就能让AI协助写出来对应的能力。

正好今年有一个要展现我们自己实力的契机,自治区主管单位要开展网络安全的应急演练,由于过去的几次应急演练组织的并不理想。所以这次考虑让我们通过竞赛的方式进行开展。把应急演练的几个场景,用对应的网络安全竞赛进行承载,用于评估参演单位在网络安全攻防两端能力以及网络安全事件应急处置能力。领导最开始的想法是,把我们之前用的一些开源+二开的平台,承载这一系列的竞赛,通过大屏的酷炫效果+自己做的平台,对公司的技术实力做一个宣传。经过几番沟通,我还是准备直接用codex,vibe coding出一个新的竞赛平台,因为几个竞赛场景,综合渗透、安全运维、应急响应里面,除了应急响应部分题目可以用传统CTF的方式承载,其他的基本都没办法直接用现有平台(一个老版本的ctfd+ctfd_whale)进行承载。由于以前对现有平台改了很多内容,导致在现有代码上进行修改,谁知道会改成什么样。。。

综合考虑之后,准备以以下的逻辑,建设一个新的竞赛平台,这样以后竞赛用新平台,老得平台就让大家去做练习好了,这也很好解决了之前竞赛平台在日常练习上的缺失。

等后续开发完之后,开源项目吧,希望不是用AI拉了一坨屎出来,哈哈哈哈。

平台环境

1、通过Django实现

2、通过Docker部署

3、数据库采用Mysql

4、Python环境>=3.13

平台功能

1、用户管理

1)支持单用户和团队用户,在团队模式下,除了团队得分,需要能够展示个人的得分情况。

2)支持用户批量导入(团队+个人模式)

3)记录用户登陆情况

4)记录用户提交或答题情况

2、

题目管理

1)支持题目导入,记录题目的答案(flag),题目描述,题目难易程度,题目类型(题目类型包括CTF的Web、Misc、PWN、Reverse、Crypto,CFS类型,AWD类型,安全运维类型,应急响应类型),题目来源(原创、XX赛事、XX平台),赛题分值。

2)支持动态Docker的镜像赛题,动态flag(不同队伍或用户开启同一个题目,使用不同的docker镜像,flag也不一样)。

3)记录赛题是否被人解开过,赛题被赛事管理的哪个赛事引用过。

3、赛事管理

1)支持新建赛事,查看过去已结束的赛事情况概览,只是赛事类型选择(CTF、CFS、AWD、安全运维、应急响应等)。

2)赛事创建的时候,只是赛题选择,但是应该和赛题类型保持一致,即CTF赛事只能选择CTF的题目,CFS只能选择CFS的类型,以此类推。

3)选择赛题是可以自定义赛题描述,赛题分数,赛题类型等,其中比赛阶段,解题积分应该以赛事管理的题目积分为准。

4、接口管理

1)接口管理能够将接口给前端,然后实现大屏展示。

2)接口应该包括用户、积分排名、答题情况等等

3)接口访问需要验证,防止未授权访问。

5、积分管理

1)积分管理包括用户解题成功后,获得对应分数,以分数进行排名,相同分数以答题时间来排序。

2)支持first blood的开关(前三名给额外奖励),和动态分数的开关(答题人数越多,题目分数越少,并同步更新用户分数)。

6、大屏展示

1)CTF比赛,需要进行队伍排名,解题进度的大屏酷炫展示

2)CFS以渗透进度,排名,解题等信息进行展示。

3)AWD以攻击,排名,最新消息等内容进行酷炫展示。

7、动态flag

1)支持创建动态flag的题目(主要是CTF),以docker环境为主。

2)如果用户提交他人flag,以作弊方式扣除对应分数,并且不允许其继续答该题目。

8、答题管理

1)运维赛,需要支持check机制,通过check对其进行的基线整改、加固等进行加分。

2)动态flag的题目,如果提交他人flag,当前用户应该进行扣分,并以信息提示。

3)除了CTF和部分应急处置等题目为答题模式,其余的CFS、运维赛应该只有一个提交flag的地方。

4)页面提供通过接口提交答案的说明,让队伍可以通过接口进行提交答案,比如在AWD比赛中,让AI进行自动答题这类。

9、Writeup管理

1)前端开通WP上传通道,平台可以根据用户名、id、时间命名方式存储wp,并支持管理员一键下载等。

9、前端部分

1)、前端颜色以深蓝色、藏青色为主,凸显神秘和网络安全技能竞赛常见配色;

2)、平台支持在后台修改赛事名称,并同步显示在前端;

3)、参赛队伍的前端应该只包含登陆、赛事公告、赛事展示、答题页面、运维赛、应急处置等应该包含自动check点的情况和进度;

4)、页面支持比赛前开始倒计时,和比赛进行倒计时;

5)、页面提供wp上传通道。

10、安全部分

1)杜绝命令执行等漏洞;

2)杜绝sql注入、python模版注入等漏洞;

3)杜绝未授权访问接口等敏感信息;

4)杜绝越权访问;

5)杜绝xss等前端漏洞;

6)杜绝目录遍历等漏洞;

7)杜绝用户账号口令爆破漏洞,强化密码规则,不允许用户修改为弱口令;

8)杜绝上传处存在的各类漏洞。