元旦假期已至,顶着阳了之后一周没洗的头,跑来八方城小黑屋偷摸加个班。被设备与网线簇拥着,被两块显示屏包围着,要说我快乐吧,这冰冷的场景确实很孤独,要说我孤独吧,能找着安静的地方摸鱼也蛮快乐。好了,矫情的话不能写太多,接下来开始年终总结。

0. 梦想与现实

人不可避免地活在现实与梦想的交织中。

今年,我离梦想更近了多少?从技术层面来说,一言以蔽之,目前仍然处于“熟练使用工具”的状态,值得庆幸的是,可能稍微更加深入地熟悉了工具,并且还能顶着压力开发有稍微有点用的工具。

比如Fuzzing,今年刚开始时,我思考,为什么我没法通过AFL来刷洞?为什么我这么依赖AFL?为什么我写不出牛逼的harness?很庆幸,这些尴尬的现状最后都有所改观,多动手多总结总是好的,比如下面这些总结(仅仅只是对我有用):

  • harness本质上就是面向安全问题的unit test
  • RFC很重要,结合RFC来开发harness事半功倍
  • 永远相信AFL+unicorn!
  • … …

上半年给一些音视频直播协议栈狠狠刷了十几个GHSA/CVE,也认识了领域里的一些大佬比如老陈Sandro Gauci

除了Fuzzing,二进制级的漏洞扫描、相似性分析这些难啃的骨头,今年也稍微啃了啃,但啃得我内心不安。

倒不是说害怕搓轮子搓得没意义,只是在甲方安全,大家习惯优先去摘“低垂的果实”。但往往在低垂的果实采摘大半之后,会陷入“守成陷阱”——大量的精力被持续而低性价比地投入到反复的动员式的专项中。

就像攻坚,炮火洗地个来回其实就够了,接下来应当换其他兵种清场并继续向纵深推进,此时如果继续炮火洗地,虽然数据好看(炮火覆盖率持续99.9%),但其实完全是浪费。映射到甲方安全的场景中,反复炮火洗地就是反复展开专项、反复加班加点,最终把低垂的枝桠薅秃。不向纵深推进,不改良生产力工具,永远依赖动员式专项,永远沉迷于好看的数据,被碾压式对抗是早晚的事。

不过,无论如何,今年至少和muhe南梦一起顶着压力把这些并非低垂的果实给摘了,比如漏扫已经用于PICO VR的Framework层安全扫描,相似性分析也在PICO VR的固件功能变更监控中用上,虽然做不到业界顶尖,但至少迈出了这一步。

技术角度的梦想与现实说完,该唠唠非技术角度了~

今年最大的改变,就是开始明白“打太极”的意义。当然前提是,我仍然非常反感职场上的交换机、传话筒、复印机行为。之所以要“打太极”,是为了在不激怒别人的前提下提醒对方事先已划分的责任,是避免自己太激动飞坑里去被人埋了,是对学生时代“老好人”的告别,是对自己劳动成果的委婉保全(真tm不是为了摸鱼)

对安全的理解也在发生变化,曾经我对安全建设的理解就是——“挖洞,挖一个解决不了,那就挖两个”。但在字节待了一年半,才发现当年自己的浅薄。这一年半,最深刻的体会就是——“低成本,但高效”才是安全建设所应追求的

举个简单的例子,研发写了很多垃圾C/C++代码,溢出问题层出不穷,该怎么解决?

难道靠挖洞,靠我人肉逆向找到所有的溢出点?

很显然不是,从人力角度而言,性价比也太低了,被ROI狠狠教育过的我选择:

  1. 介入编译,redefine所有危险函数、打开所有保护机制
  2. 介入开发,搞两节安全开发培训敲打敲打研发同学
  3. 介入测试,拓展测试样例,引入更多sanitizer
  4. 如果基建和我司一样完善,经费和我司一样壕无人性,coverity,请

扯了这么多,今年的变化,其实归根结底一句话——一个曾经的垃圾洞爱好者被行业狠狠教育后向梦想爬行

1. 一些失望

谁能没有失望地度过这一年呢?

  • 从上文也能看出,技术的进步依然不够,也许已经有了“写core的能力”,但仍然缺少“写牛逼的core的能力”,比如至今还没搓完ACFG的Graph Embedding
  • 攒钱失败55555,攒钱真的难,每个月五险一金和个税扣的钱tm够我炸好几次机
  • 房间里的大象越来越修正主义了,我也不知道自己该持有怎样的政治倾向

2. 一些希望

太阳照常升起,希望是我们生活的动力,怎么能不写希望呢(doge)

  • 希望能成功助力明年我司某个重点项目,希望能把系统部SDLC做起来
  • 希望明年也能收割CVE,而且我特别希望能挖一些协议层逻辑洞,现在的内存洞太折磨了
  • 希望家人和自己都健康,希望明年有更多机会回家看看

3. 一些八卦

  • 结束了一段4年的感情,善始没善终,不过也好,是一种解脱
  • 又开启了一段3天的感情,没善始也没善终,不过也好,是一种解脱
  • 妈的,补一个希望:希望2023年可以开启一段正常的感情