育嬰假:第二個月
一句話總結
不工作比我想像的還要困難。
本月亮點
- 意外發現,要我不工作真的很難。
- 睡眠狀況稍微好轉了一些。
- 我用 Nix 打造了一個俐落且可重複使用的 fuzz testing(模糊測試) workflow。
目標評分
每個月月初,我都會訂下想完成的事情。以下是這個月的達成狀況:
好好享受家庭時光
- 結果:花了很多時間陪伴太太和剛出生的兒子,也常和親朋好友見面。
- 評分:A
暫時不工作一下也沒關係
我從來不覺得自己是那種非得一直工作不可的人,但我發現要真正放下工作休息,其實很不容易。
回顧過去三個月工作上的進展少之又少,我就會感到焦慮:「要是這就是我的新常態怎麼辦?要是往後每個月都只有幾小時能工作,要怎麼謀生?」
我知道這些擔心大多是非理性的。很多人都有小孩——他們照樣正常工作,一切也都好好的。更何況,我附近還有很多家人很樂意幫忙照顧小孩。
當我回頭看看時間都花到哪裡去,就會覺得擔心沒時間工作更顯得可笑:時間都花在和親友的長時間聚會,以及和家人一起從事的有趣活動上。
如果情況是:「天啊!光是餵奶、換尿布跟補眠就已經沒時間了!」那也就算了。但實際上,我的反應比較像是:「天啊!昨天吃了三小時的早午餐、又跟朋友聚了七小時,結果沒時間寫部落格!」
另一個原因是,我招待客人與拜訪他人的時間,遠比平常多得多,所以部分的焦慮其實只是內向者在額外的社交時間後感到疲憊。
所以,我只能不斷提醒自己:暫時不工作一下也沒關係,等兒子再大一點,我就會有更多時間,而且我對時間的運用仍大致掌握在自己手上。
調整我們的新生兒睡眠策略
身為新手父母,談論睡眠感覺有點老套,因為所有新手爸媽似乎都莫名地執著於睡眠。但良好的睡眠對我們的日常生活影響巨大,我想這就是為什麼大家都在談這件事。
一開始,我太太負責所有的餵奶,我則負責所有的換尿布。我們很快就發現,這意味著到了夜裡,我們兩個每 60 到 90 分鐘就得起床一次,所以兩人都睡不好。
幾週後,我們改為輪班制,一個人同時負責餵奶和換尿布,另一個人則睡覺。我負責第一班,從晚上約 9 點到凌晨 2 點,我太太則在我兒子凌晨 2 點後第一次醒來時接手。這是一大進步,因為這確保了我們在輪休時都能獲得 4 到 5 小時不間斷的睡眠,輪班期間還能零散地睡上幾小時。
我們也發現,認真重視睡眠衛生後,兒子睡得更好。我們有時喜歡晚餐後看一小時電視放鬆,但我們注意到,沒看電視的夜晚,大家都睡得更好,尤其是兒子。我以前常在兒子睡著時,在客廳讀一、兩個小時的書,但我們讀到開著燈可能會干擾嬰兒睡眠,所以我已經不再那樣做了,雖然我很懷念那段安靜陪著他閱讀的時光。
整體來說,我們的睡眠策略運作得不錯,我大多數時候都覺得有充分休息。隨著兒子睡眠狀況的變化,以及我們發現新的技巧,會持續調整。
Nix 是用於 fuzz testing 的絕佳工具
大約十年前,我擔任資安顧問時,曾使用 fuzz testing 來在 VLC 中發現一個嚴重漏洞,也就是那個開源影片播放器。
過去十年間,圍繞 fuzz testing 的工具已有大幅進步,所以我一直很想試試最新的技術發展。
我找到了 Antonio Morales(安東尼奧·莫拉雷斯)在 2021 年的 fuzz testing 教學系列。它使用 AFL++,我感覺它已經不再是最頂尖的 fuzzing 工具了,但我還是開始跟著做。第一個教學示範如何針對 xpdf 進行 fuzz,這是一套開源的 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 工具是什麼。
隨機一篇部落格