0%

NSS杂谈

2023-10-05 00:00By
xenny
  • 本篇包含以下主题

    1. 叙事回忆
    2. 开发者Q&A
    3. 现状探讨

叙事回忆

前世今生

  • 这里我并不想太多碎碎念的介绍我们是如何如何发展的,我们在描述故事的时候总是喜欢使用宏大的叙述词、跌宕的故事线、戏剧性的转折...点缀那平淡如一的事实。所以这里只客观的介绍一些关于平台和团队的背景资料:

    1. SWPU包含两个校区,我(Xenny)所在校区当时无CTF团队。
    2. 2017年秋,在参加完一次Defcon沙龙后参观了另一校区CTF团队(SWPU 08067),了解了CTF相关形势。
    3. 2018年秋发现学校网站漏洞后,与院长反馈并提出CTF团队的想法,正式创办CTF团队。
    4. 2019年春编写第一版校内训练平台,初始功能包含一个匿名排行榜(从今天的话讲的话算是一个0知识证明排行榜,匿名的考虑是不使团队显得那么功利,但是又能看到和别人的差距激励自己)。
    5. 2019年夏参加第一次省赛,三等奖,同时参加了一次安全夏令营。
    6. 2019年秋重构平台,能够在上面解题以及添加了一些工具。
    7. 2020年和同学一起写了一个ACM OJ平台(届时我同时还在ACM团队中),这是一个失败的项目,后续将该项目工作重心放在了一些不应该(不代表地方错了,或许是时机不对)的地方。为什么要写该事情是因为这对我后续对NSS平台的开发影响很大,会在后续探讨中再提及。
    8. 2020年夏我进入安恒实习。
    9. 2020年秋第一次以NSS团队打入CISCN决赛,然后以72名(总80队)归来,这次谈不上什么遗憾,只能说不会是真的不会。但是这让我看到了“或许我们真的有能力做点什么”的可能。
    10. 2020年冬和一起实习的同事第一次取得线上赛“纵横杯”Rank 1,也正式确认了NSS重构计划。
    11. 2021年春开始重写NSS平台,同时作为毕设项目。
    12. 2021年夏再次以NSS团队打入CISCN决赛取得二等奖,同时工作转正在安恒当安全研究员。
    13. 2021年夏末,NSS平台正式上线。
    14. 2022年夏,预想不再作为幕前推动NSS发展,与新站长Strl取得合作。
    15. 2022年冬季,对工作的一些烦恼使得我决定离职(我在安恒学院部一个非常好的小组中,时至今日我仍感谢各位同事与领导,当时的烦恼主要来自于疫情影响和一些主观因素)。
    16. 2023年春正式离职,同时对平台运维成本的考虑决定商业化。

    以上为从NSS平台的整个时间线中比较重要的一些事件。后续会对这些事件进行再说明,感谢您的聆听。

能做什么(17-19)

  • NSS平台包括NSS团队的一大部分思想和路线都来自于这段时间的所见所得所想,当时我们使用过的平台包括不限于南邮CTF、WeChall、实验吧、合天实验室等,很长一段时间里我们并不知道我们能做些什么?

    不过也没有什么要求需要我们做到什么,迷惘岁月的一大好处就是似乎有无限的时间去试错,没有目标的一大好处就是似乎也不会留下任何遗憾。

  • 此时我的目标分为两块,我需要什么和团队需要什么,作为个人来说,我的目标便是取得赛事排名和做一些有趣的事,但我并不知道该给团队中的队员提供什么。于是那时我在不断的倾听任何人的想法,从沙龙的主持人对安全的展望、从安全公司对人员的要求、从其他团队的计划和目标、从其他行业的人员历程中窥视一丝共性。

    那便是益,无论是金钱、目标、奖牌、兴趣,都是有益于自身或自身所在团队,那么对于当时来说我能做何于团队有益的事呢?我想到了记录,记录使得不用再重复,于是我便开始“有为”,各项训练开始展开,同时确立了要做一个内部平台的想法,让后来者无须再次重复走无用的路。

要做什么(19-20)

  • 在省赛取得甜头后(才了解SSH连接的状态参与比赛,三等奖也是不错的开始),我愈发觉得这个路线是可行的,至少不会比当前更差了,不过这个思路在后面OJ开发得到了改变,20年疫情初年,与同学开始名为DOJ的开发工作,目的是为了给ACM做同样的事以及增加实际项目经验,在设计开发的途中我们犯了一些很多个人开发者常犯的错误,我们并不知道我们需要什么,我们参考了很多OJ平台,把重心完全放在了各种技术实现上,作为开发的角度来说,这能学到很多东西,但实际上对于一个项目来说,技术往往是最不重要的(或许你还不相信这一点,但实际上数据从来不会说谎,只有开发者自身才更关注技术)。于是我们获得越来越多的负反馈以至于最后匆匆停止后续工作。

    (实际上DOJ中的一些技术是优秀的,一起开发的同学借此在同年顺利取得阿里研发岗Offer(当然不是仅靠这个项目就能进,只是该项目在履历中被多次问及各类技术实现),里面包含了各项Java框架技术、跨OS文件同步、容器集群调度、多级缓存/分布式设计、进程监控、优化等等,实际上现在去看当时的代码写的并不好,但不可置否从中学到了非常多的思想与项目经验。)

    当时我还在是投开发岗还是考研间做抉择,当时因为疫情还住在家里,彼时还正在当两名高三学生的家教,真想一辈子就那么活着啊其实,教学之余也会听到他们的烦恼和欢愉,害怕自己学不完了、又憧憬着考上后要去干嘛干嘛。于是投简历和认真考研这两件事都被搁置,直到他们开始高考,我不再需要考虑上一次讲解的试卷易错点是什么,这两件事情又被摆在了台前。我总是相信车到山前必有路,当时恰好就看见了CTF竞赛群内转发的安恒招聘推文,于是没有太多的考虑便投递了简历进入了安恒开始实习。

  • 以上是关于意识到“有为”的不够和路线的错误,在实习中看到了更多人的计划和目标后,我才知道我要做的到底是什么,实习中我才真正开始系统的学习CTF。而我要做的便是不仅记录我们做了什么,更要做知道以后要做什么这件事。于是我不经学习了Web,还开始涉猎PWN、RE、Crypto等方向。我开始编写系统的学习路线资料,开始给团队内成员上课,同时也开始在B站、博客等地方开始分享一些我的记录和资源。

怎么去做(20-21)

  • 20年的国决失利带给更多的不是打击而是激励,至少我看到了这样做是可行的,只是我现在做的还不够多,还不够好,于是这段时间我开始刷题,只有有实力之后才能去做一些事情,而提高实力的最简单办法便是不断的重复,后面的Rank1算是给我最好的奖励。

    此时我便大致知道我要怎么做了,上节说到我开始在公开平台发布一些内容,后续也创建了一个小群Anorld做一些聊天交流,在团队的讨论以及和群友的讨论中,我看到了CTFer们的所需所求,于是NSS平台开始正式立项着手编写,依然延续DOJ中开放、自由、共享的精神去做这件事。

    最初设计如下

    题库:核心的重点,让CTFer有题可做、有好题做是我们的目标。
    笔记:核心的重点,记录让其他人无需记路。
    比赛:核心的重点,查漏补缺节节高。
    奖励题:源于那时我会不定时将一些我学到的Web Trick做成题目分享到团队中并以红包的方式激励大家去做,很可惜目前因为维护难度高而暂时下线。
    团队:正因我是从0开始学习,我更知道一个开箱即用的私有团队空间的重要性,这也是过去现在以及未来都不会变的重点维护功能。

    于是我在终端敲下了关于NSS平台的第一行命令

    django-admin startproject balderich

    (为何命名为balderich?老用户或许在之前的文章界面中看到过balderich的图片,他是我所喜欢的OW中莱因哈特的导师)

做完了吗(21-22)

  • 这一年中平台在不断的更新,实际上你可在更新日志中找到每个版本大致都干了些什么,到如今事实上每个界面和功能都几乎重写过,我们的维护团队也不断扩充,结识了非常多的有爱的CTF师傅,这一年里我开始考虑或许NSS平台就维持这个模样即可,我开始考虑不在负责幕前工作,于是开始寻找下一任站长,最终选择了Strl作为下一任站长。

    我开始从“有为”变成“无为”,但事实是“无为”的前提是系统本身是自洽的,但后续证明我做的还不够。

    彼时平台也开始承办了一些公共赛事,Strl也开始慢慢承担我的工作,平台更新的节奏也开始变慢,但随着我参与了更多的赛事,学习了更多的内容,我又愈发觉得我要做的还不够,同年冬开始看到了GPT-3的生成式AI,事实上最开始并不觉得他有多厉害,只是感慨于其内容之广,分析能力之强,直到后面23年的火爆以及GPT-4和更多AI应用的出现才开始又对平台、技术、生态有了进一步的了解。

怎么会变成这样呢?

  • 事实上,后续平台上线又下线了很多功能,也做了很多尝试,最终还是决定推出一些商业化的内容,期间收到了很多不满和支持,不论是不满还是支持,我都全盘接收。现在再次解释一下为何商业化:

    1. 运维成本,此前所有成本由赞助和我个人承担,在此再次感谢所有赞助人员,虽然一年下来也可能只需要垫几千就够了,但随着人员越来越多,成本支出的将不断增加,只靠个人赞助始终不是一个良性循环。

    2. 数据反馈,一项很重要的工作便是用户的需求是不断改变的,不需付出成本的反馈始终没有需要支出成本的反馈价值高,通过用户付费意愿,我们也能了解用户更需要什么。

    3. 运营成本,只有有了额外的资金我们才能去做些新的尝试,才能给帮助过我们的人反馈一些东西。

  • 无论你是否支持如今的NSS平台,它始终都是这样,我们的目标和宗旨也从未改变,我们要做的可能还很多,无论做完还是没做完,至少我们曾一起走过这便够了。

开发者Q&A

问题来源于问卷、社区反馈、交流群反馈等。

  1. Q:能不能出个永久会员?

    A:目前不会考虑永久会员机制。

  2. Q:希望更多的开拓战队玩法,对于我们这种弱校,学校并不重视,我们很难拿到资金去购买一些公司的训练平台,所以希望可以开放更多的战队训练内容,然后以合适的价格出售,awd等其他模式希望尽快上线,太需要了!

    A:战队功能一直是我们的重视点,目前已经有很多计划中的工作,期待后续上线吧。

  3. Q:有些题的wp希望能及时更新,有时候是真找不到wp

    A:我们的愿景是为各位CTFer提供环境、社区和功能,资源搜索可以在交流群内询问万能群友。

  4. Q: 希望能有适配安卓的网站界面。

    A:由于资金等原因,目前暂无计划开发移动端平台。

  5. Q:多多开放API

    A:API由于安全问题目前更多的都是资源获取性质的接口,对于交互性质、资源管理等接口得在更晚的版本中推出。

  6. Q:ui好看点 做不好渐变就用纯色

    A:目前开发者仅一人,无专业前端及UI设计,见谅。

  7. Q:与rating值匹配的更多页面设置功能解锁

    A:这是一个很好的建议,但是目前rating赛不够多,未来或许能够看到这项功能。

  8. Q:把pwn靶机的libc完善下,有很多pwn的零解题是做不了的,我之前反馈的很多题目也还没修

    A:因为所有赛事复现题目来源于公开资料或选手手动复现,目前没办法保证每题都经过完整的测试流程及维护工作。

  9. Q:VIP功能太单调

    A:感谢您对付费项目的支持,我们目前也在不断的完善VIP各项功能和服务中。

  10. Q:不知道说啥。那说些大家都知道,但不容易放在心上的废话:去各种ctf平台的目的都是去做题、学技术的,且身份多为学生。

    A:是的,我们从未忘记用户为什么选择我们,我们也将继续保存初心继续走下去。

  11. Q:探索板块入门挺好的,希望可以尽快完善

    A:感谢您对探索功能的关注,冲冲冲!

  12. Q:是否可以添加贴吧微博那种交流社区一样的功能?用于技术交流也可以用来吹牛逼,让平台更加有活力一些

    A:感谢您对平台的建议,后续会对文章系统进行重设计,届时也会推出社区交流等功能。

  13. Q:是否会推出周边商场?

    A:目前我们所有周边都是通过比赛奖励、抽奖奖励、反馈奖励等方式免费赠予,我们希望它们能够承载我们的热爱到达每一个角落,我们不希望它们变成牟利的道具。我们会在各类赛事、活动中免费送出此类奖励。后续我们也计划以学校战队为单位寄出各类周边,故暂时不会考虑推出周边商场。

  • 以上为具体用户真实反馈,以下为对在社区、交流群等处收集到的声音。
  1. Q:标榜开放却很多功能需要注册登录是何为?

    A:无论是从技术的角度,还是从词语的本身解释,我不认为开放代表凡事不论大小都敞开大门仍人进出,不同的信息也有不同的等级,同时还夹着各位平台安全问题使得我们没有办法全部将各位内容开放给各位,实际上在迭代期间由于发现了一些恶意事件我们还曾关闭了一些信息接口。作为开发者和管理者的角度,我没有办法将为什么这样做完全公开。但对于开放精神,我们不觉得我们有何理解、执行不妥之处。

  2. Q:标榜自由却处处收集,以及为何要进行手机号实名?

    A:对于信息收集我们都是秉持最小化原则,如果你看到我们在某个地方收集了某样信息,那说明那信息是我们不得不收集的,我们在使用条例和隐私政策中表明了我们可能会收集的信息,在这件事情的抉择上,我们没有办法改变。
    对于个人用户来说我们的每一项限制都像是一层桎梏,但站在开发者的角度,事实上这世界的恶意要比想象多得多,我们不得不采取一些措施限制这些恶意行为。

  3. Q:标榜共享却处处收费?

    A:关于为何收费在上面已有详细解释,这里我再谈谈共享和收费是否相悖,事实上我们更多的是提供资源共享的环境,我们从来不会将用户共享的资源进行收费,例如用户上传的赛题复现,用户的WP,战队内部的各项资源等,再未来我们也会推出更多与共享有关的功能和服务。

  4. Q:你们一定赚了很多钱吧。

    A:实际上到目前为止平台所有收支可能刚好平衡(说可能是因为部分支出基本都是个人账户付了也没细算),如果将xenny的工坊算是我的个人收入不算平台收入的话,那平台目前是完全亏本状态,具体收支多少我不能透露,但是我们从未考虑平台是为了收割用户,如果赚不到钱,那就先保持目前状态,如果能赚到钱,那我们便可以做更多的事。
    以及可以透露的是,例如最近的二周年庆,制作徽章、衣服、贴纸等周边加寄出共花费8000元,包括今年续费服务器等资源又花费近4000元,因为我是开发者,我可以不在乎我的付出和回报,但我一定不会让各位爱好者给我们的付出没有回报。

  5. Q:怎么加入维护工作。

    A:专人维护是一个很艰难且繁琐的事情,后续我们会推出更多的功能以便能够方便的在平台上参与各类资源的维护工作,感谢您的关注与支持。

现状探讨

  • 目前我还在备考(24考研)中,从现在至12月底都不再更新维护各项内容,在寒假我会重新开始更新各项计划中的工作与内容。

    从个人的角度我很想发泄一些愤怒,这也是写本篇杂谈的本意,但从平台的角度我不能这么做,所以很多回复在用户角度可能看上去像说了又没说一样,此非我本意。平台运行至今也不断受到挑战,但我还是相信我们总能战胜他们。

    我从未忘记当初为何出发。

    因为热爱,所以长久 : )

还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有

加载中...

加载失败
广告
×
评论区
添加新评论

祝X师傅考研一切顺利。

NSS因为热爱,所以长久!

几年前第一次参加公司组织的安全培训,当时就是xenny老师上课。👍

什么时候出永久VIP,想支持一下

伟大无需多言,支持XENNY

支持

伟大 ,支持x师傅

伟大无需多言

支持

支持Xenny师傅

伟大!

支持!

支持!!!

爱死X师傅,不码!

伟大

共勉

呜呜呜X老师
真的哭死
因为热爱,所以长远!!

支持!

支持!