標題: 「Package Maintainers 應該要具備的資安概念」 類別: other 連結: https://sethmlarson.dev/blog/security-for-package-maintainers
本篇文章的作者是 python3 urllib3 套件的主要維護者,由於近年來軟體供應鏈的資安議題逐漸受到重視,特別是這些已經被廣泛使用的套件,一套受到入侵與修改,其影響危害程度難以想像 作者撰寫本篇文章分享自己的想法希望能夠讓所有套件維護者有一些基本的資安觀念,同時也讓所有使用 OSS 的使用者一起學習
捐贈給開源貢獻者
作者提到本文提到的所有資安意識都需要花時間精力去實作與維護,如果你的組織使用了大量的開源專案但是本身在意資安卻又不想要花時間研究資安,那就花點小錢捐贈給這些開源貢獻者,讓這些貢獻者有更多的動力去幫你維護這些套件。 如果該開源專案對於你公司來說有非常舉足輕重的角色,那甚至可以考慮雇用一兩個該專案的主要維護者讓他們定期分配時間來維護,對公司來說只是花一些小錢但是卻能夠有更有信心的使用這些開源專案,以免哪天這些專案一炸整個公司產品全炸
文章主要分成兩大類,分別是
- 如何保護好你的個人帳戶
- 如何保護好你的套件倉庫
Securing Your Accounts
對於一個套件維護者來說,你的個人帳號由於有超級大的權力,所以該帳號的資安管理必須是最高層級的注意,一但這個帳號被攻破,攻擊者就可以很輕鬆的去發布新版本,加入惡意程式碼等各種行徑,而通常使用者如果本身使用時沒有很好的限制版本,譬如採用大於1.1.0 這種比較寬鬆的用法就會不自覺升級而使用到危險版本 作者強調就算你本身不是套件維護者,這些帳戶保護方式對你來說也是非常實用的,良好的資安保護永遠不吃虧
接下來作者列出幾個大項,分別是
Email Securiy Is Your Top Priority Email 地址很重要,很多情況下這些地址都會是重設密碼的一個途徑,所以妥善保存 Email 地址是非常重要的,所以作者推薦使用那些大公司服務如 Gmail 與 Outlook。 如果你真的想要使用私人域名作為你的聯絡信箱,你就要保證你不會有忘記付費的那天,不會剛好有人買走你的域名然後順利的取走你的 Email 地址。
2FA 2FA 要求提供一個除了密碼以外的認證方式,常見的有手機或是一些硬體裝置,使用妥當的話基本上攻擊者很難登入你的帳號。 作者認為所有跟程式碼有關的帳號密碼最終都需要有一個不使用 SMS(簡訊) 的 2FA 機制保護,譬如 NPM 最近才宣布其 Top 500 的套件管理都需要強迫使用 2FA,作者希望 Python 有天也可以跟上這種趨勢。
Password Managers
Hardware Keys
Why Not SMS 2FA
Where Do I Put My Recovery Codes
What to do if your account is compromised?
上述範例我就不列出來了,每個項目都沒有很長,非常推薦大家閱讀,甚至可以讓團隊的所有工程師都有這些基本概念