Paternity Leave: Month 2

Michael Lynch

陪产假:第 2 个月

一句话总结

不工作比我想象的要难。

亮点

  • 我发现不工作竟然出乎意料地困难。
  • 睡眠状况稍有好转。
  • 我用 Nix 创建了一个简洁、可复用的 fuzz testing(模糊测试)工作流。

目标评分

每月初我都会定下想要完成的目标。以下是本月目标的完成情况:

享受家庭时光

  • 结果:和妻子、新生的儿子共度了大量时光,并与亲朋好友频繁相聚。
  • 评分:A

暂时不工作也没关系

我从不觉得自己是个需要一直工作的人,但我发现休假其实很难。

回顾过去三个月在工作上完成的寥寥之事,我会产生一种焦虑感:“如果这就是我的新常态该怎么办?如果以后每个月只有几个小时能用来工作,我要怎么谋生?”

我知道这些担忧大多是不理性的。很多人都有孩子——他们都能正常工作,一切都好。而且,我身边还有很多家人乐于帮忙照看孩子。

当我回想时间的实际去向时,为工作时间太少而担忧就显得更加荒唐了:时间都花在了与家人朋友的长时间相聚和全家一起的有趣活动上。

如果情况是“天哪!喂奶、换尿布、补觉就已经占满所有时间了!”那还说得过去。但实际上我的反应更像是:“天哪!昨天除了三小时的早午餐和七小时的朋友聚会,我竟然没时间写博客了!”

还有一个原因是,我招待客人和拜访他人的时间比平时多得多,所以部分焦虑其实只是内向者在额外社交之后的疲惫。

所以,我只需要提醒自己,暂时不工作也没关系,等儿子再大一些,我会有更多时间,而且在很大程度上,我依然掌控着自己的时间分配。

完善新生儿睡眠策略

作为新手父母谈论睡眠似乎有点老生常谈,因为所有新手父母似乎都对睡眠异常执着。但良好的睡眠对我们的日常生活影响巨大,所以大家才会总在谈论它。

起初,妻子负责所有喂奶,我负责所有换尿布。我们很快意识到这意味着到了晚上,我们俩每隔 60 到 90 分钟就得起一次,谁都睡不好。

几周后,我们改成了轮班制,一人同时负责喂奶和换尿布,另一人则睡觉。我负责第一班,从晚上 9 点左右到凌晨 2 点,妻子则在我儿子凌晨 2 点后第一次醒来时接班。这是个巨大的改进,它保证了我们在非值班时能有 4 到 5 小时不间断的睡眠,值班期间也能零散地睡上几个小时。

我们还发现,认真做好睡眠卫生后,儿子的睡眠更好了。我们有时喜欢晚饭后看一小时电视来放松,但我们发现不看电视的夜晚,大家都睡得更好,尤其是儿子。我过去常常在客厅里一边让儿子睡觉,一边看一两个小时的书,但我们了解到开灯会影响婴儿睡眠,所以我不再那样做了,尽管我很怀念和他一起安静阅读的时光。

总体而言,我们的睡眠策略效果不错,大多数日子里我都感觉休息得很好。随着儿子睡眠模式的变化以及我们发现新的方法,我们会继续调整。

Nix 是个出人意料的好用的 fuzz testing 工具

大约十年前,我担任安全顾问时,曾利用fuzz testing在 VLC 中发现了一个严重漏洞,VLC 是一款开源视频播放器

过去十年间,围绕 fuzz testing 的工具链已经有了长足进步,所以我一直很好奇想试试最新的技术水平。

我找到了 Antonio Morales(安东尼奥·莫拉莱斯)2021 年的fuzz testing 教程系列。它使用了AFL++,我感觉它可能已不再是最顶尖的 fuzzing 工具,但我还是开始学习这个系列。第一篇教程演示了如何对xpdf进行 fuzz,xpdf 是一款开源 PDF 处理工具。我修改了步骤,将目标换成了最新版的 xpdf,并发现了一个新的越界内存读取漏洞,这很令人兴奋。

后来发现,早在 2024 年 9 月就有人发现了同一个漏洞,但那份报告被驳回了,因为更早之前已有人通过私人邮件向维护者报告过。我怀疑他们也是通过学习同一个教程发现的。在我找到这个系列几周后,它登上了 Hacker News 首页,所以似乎有不少人正偶然发现这个已有三年的教程。

在所有 fuzzing 教程中,让我印象深刻的一点是,仅仅是搭建环境就非常麻烦。莫拉莱斯指导读者在特定版本的 Ubuntu 上从源码编译 AFL++,但由于他提到的所有软件包都已更新,这些说明现在已经过时了。

与其去逐一寻找莫拉莱斯提到的那些软件包版本,我看到了使用 Nix 的机会。它让我可以在源文件中锁定工具版本,并确信它们未来不会悄然改变。

我得以用一个 Nix flake 创建了完整的 fuzz testing 工作流,所以我只需输入nix run,Nix 就会下载初始语料、编译目标程序并开始 fuzzing。我计划在本月晚些时候发布一篇博文来解释其工作原理。

收尾

完成了什么?

  • 享受了家庭时光。
  • 担心自己是不是花了太多家庭时间。

经验收获

  • 我对休假过长的担忧大多是不理性的。
  • Nix 是创建 fuzz testing 工作流的好工具。

下月目标

  • 享受家庭时光。
  • 发布我关于用 Nix 进行 fuzz testing 的教程。

求助

  • AFL++ 的现代替代品是什么?是honggfuzz吗?
    • 如果你在信息安全领域工作,请告诉我现在最酷、最新的 fuzz testing 工具是什么。

原文由 Michael Lynch 发布

本文章由 muse-spark-1.2-contributor 进行翻译