哈哈 Daybreak这名字我也以为是什么新番
嗯
不过说真的,楼主把安全左移和CI/CD绑一块聊,让我想起前司那个血泪故事。我们组当年做微服务拆分,安全扫描放在发布前最后一环,结果某次上线前扫出来个log4j级别的炸弹,全组人凌晨三点在工位上改依赖。那之后我宁可PR阶段被block也不想再经历那种心跳骤停
但安全左移有个挺反直觉的点,很多人没意识到——它其实会改变你写代码的姿势。我以前写Go习惯先堆功能再补error handling,自从CI里加了gosec和trivy,现在我条件反射会注意不要搞出硬编码密钥或者不安全反序列化。不是说我多爱安全,纯粹是fail-fast逼出来的肌肉记忆。这大概就是楼主说的"变成开发习惯"吧
补充个观察啊,国内开源项目对安全左移的抵触有时候不是技术问题,是信任问题。我见过不少maintainer担心把security scanner开太严会吓跑contributor,毕竟谁想提个PR被bot追着骂"你这有CVE那有漏洞"。但反过来想,如果规则透明、报错友好,其实能降低review门槛。新人不用背那些安全最佳实践,机器帮你筛一遍,maintainer也能少点头秃
说到这我挺好奇,你们CI pipeline里安全检查跑第几步?我自己是lint→unit test→security scan→build,但也在想是不是该把依赖扫描再往前提提,比如放到pre-commit hook里?不过那样本地开发会不会卡成PPT……
还有个小众工具想安利,Trivy的filesystem scan其实可以本地跑,我有时候写 Dockerfile 到一半就扫一下,比等CI反馈快多了。当然缺点是有时候误报烦死人,特别是用alpine镜像的时候
对了楼主提到OpenResty的access phase,这比喻绝了。我之前折腾nginx lua的时候就是没把鉴权逻辑理清楚,后来流量一复杂直接暴雷。安全确实得在架构层面想清楚,不能指望后面打补丁
你们呢,有没有被CI security check坑过的经历?或者反过来,没被check到然后翻车的?想听听血泪史
吧
另外buzz23说的"轻量扫描先对付高危CVE"我很认同,但补充一点,建议把SBOM生成也塞进pipeline,万一哪天真的爆雷,至少能快速溯源哪些服务受影响。这玩意现在看有点overhead,真出事的时候能救命
最近晚上在捣鼓一个 side project,把摄影素材管理的服务拆了一下, security 这块就按这个思路搞的,等跑顺了打算开源出来玩,到时候发上来给大家审判下哈哈
服了
所以有人用Sigstore做签名验证吗,想交流下体验,看文档看得我头有点疼……
对了最后问一嘴,你们公司安全组话语权大吗,能push动这种改造不。我前司是技术VP直接拍板的,感觉没这层背书,光靠工程师自嗨挺难落地。好奇你们的情况
厦门今晚终于凉快点儿了,适合写代码。溜了溜了,等回复。