2022年3月第三周简报
这疫情怎么越来越严重了,烦躁。。我好想出去玩啊啊啊啊啊
生活
- 继续看美剧《太空部队》第一季,真的好看!
- 这周开始去看一些宠物视频,狗狗真好!想和女朋友养狗狗!
- 看着女朋友打老头环,算了算了,我这种手残果然不适合。还是想组个 3090 台式机打 CS:GO
- 看了很多 Mac Studio 的评测,糟糕,是心动的感觉,想一步到位 128G
- 和同事,以及和女朋友吃了南京大排档,这家店得到四省人民一致好评
- 家里的柠檬树开花了!
- 偶然又梦到和过世的老友吃饭,Fuck…
- 焦虑还在继续,不过 Everything is gonna be OK。
技术
离清明还有 0.5 月,大概,聊聊一些新的收获
老规矩,先聊聊工作里印象比较深的
- 这周合并代码让我吐了都,多人开发。。深感自己 Git 功力不足。滚回去背诵 Pro Git 了
- 上周提到的 Linux CVE-2022-0847 如同之前拿到的消息一样。研究者利用这个洞复活了 runc 经典逃逸漏洞 CVE-2019-5736, 能实现特定的 payload 完成非特权容器下非 root 用户的提权与逃逸,参见这篇文章。因为 Taichi 的 Repo 的 CI/CD 需要依赖特殊的图形学基础设施,因此依赖 self-hosted runner。因此这个洞对于我们存在一定的危险性。所幸虽然我们依赖的 513 内核在 Upstream 没有修复,不过 Ubuntu Security 团队给出了 5.13.0-35.40 这个修复后的内核。参见这里。不过开源状态下的 self hosted runner ,安全治理一直是个很头疼的问题。这里列一下我之前的一些随笔:
- 合理的利用 GitHub PR 本身的比如 First Time Contributor 的限制,在一些关键时间(比如第一次给仓库提交代码的用户发起的 PR,需要等待 Approve to Run Test 的信号)加入限制,来增加攻击者潜在的攻击成本
- 合理的隔离 Self Hosted Runner 和日常办公网之间的一些网络拓扑,控制爆炸面
- 在宿主机上不要明文存储任何敏感信息
- 提供给 Self Hosted Runner 的 PAT(Personal Access Token),尽可能控制权限粒度以及做好 Token 的获取审计。确保 token 遗失后能快速废弃与溯源。
- 即便有 Secrect 这样的机制,也尽可能不要在公开的 Run 流程中依赖一些 SSH_KEY/SSH_TOKEN 之类的极端敏感的信息。否则攻击者还是有可能进行嗅探与攻击
- 这周同时在做一些私有 Pypi repo 建设的工作,不得不感叹一下,Python 好用的 Pypi 实现真不多啊(比如原生支持 S3/OSS,原生支持接入云 CDN(没 CDN 拦着能被恶意打爆好嘛!)
继续聊聊自己的业余时间:
- 上周修的 nerdctl 一个历史遗留问题:默认的登录行为对 plain-http registry 有点问题,参见 PR894,这周合并进去了。当然还是额外补了一些测试。
- 上周写的我肝活很旺的 nerdctl 的 PR PR896(支持
--ip
参数指定容器 IP(和 docker 保持兼容))。这周花了两天测完,写了 e2e,开始接受 Review。不过受限于 rootless network 的问题,目前这个功能暂时只能支持 non-rootless mode。这个 PR 预计带在 0.18.0 里发布。等这个 PR 合并完后,我就可以开始做 Issue852 了,即实现docker-compose
里面指定容器 ip 的支持。再往后的计划就是支持 rootless mode 以及支持 ipv6(不过这个得先等我重构一波 nerdctl 的网络部分再说) - 再去看了下 go-cni 的实现,叹为观止。云原生,云原生。
- 因为折腾 rootless mode,去看了下 slirp4netns 一个用户态网络隔离方案的实现。有点意思,有些新的想法,不过以后再拿出来聊
- 上周开了一个新坑,帮 logseq 实现 Snap 的支持,参见 Issue4527。这周准备了一个小的基于 Gulp.js 的 PoC,不过受限于本人前端苦手的关系,进展不算太大。要加速了啊!
阅读方面:首先来说,为了加强我的 Git 技能,去仔细阅读了 Pro Git,受益匪浅。以及上周开的坑,《大教堂与集市》,老书新读,读得我酣畅淋漓。不愧是开源圣经。
简单总结
本周有点想偷懒,就不太写总结了。反正,一起努力的活着吧!
Comments