The Defender's Window(防禦者之窗):資安主題演講(第 3/4 段)


🏦 台灣Pay 銀行轉帳 💙 PayPal
示範用 Codex Security plugin 與 CLI 掃描、修補漏洞,並把流程擴展到企業規模
- 23:48 本段示範透過本機 plugin 使用 Codex Security 的實務流程,也會提到 Daybreak、plugin 與 CLI,說明資安工程師從頭到尾的使用方式
- 29:39 security.md 讓 agent 在掃描時知道你認為最重要的事項、可能的威脅攻擊,以及你如何看待 trust boundaries 或 business logic
- 35:23 Lou 預告結尾會簡短提到產品消息,並說下週有 DevDay,接下來幾週也會陸續發布更多資安相關消息
💡 你可以怎麼用:即使妳不寫程式,也可以借用「先給背景再叫 AI 做事」的做法:請 AI 幫妳檢查東西前,先寫一頁說明,講清楚妳最在意什麼、哪些情況算有問題,存起來每次都附上。如果公司有工程團隊,可以把這段影片轉給他們,建議為每個專案準備一份 security.md。
看全部 41 條重點
🧑🏫 這段是 OpenAI 資安主題演講的實機示範:用 Codex Security 掃描一個真實的開源專案,從找到漏洞、驗證、產生修正,一直做到開工單、通知工程師、合併修改。最後也說明公司有上萬個專案時,怎麼把這套流程自動化。想知道 AI 實際上怎麼幫資安團隊做事,這段很具體。
- 23:48 本段示範透過本機 plugin 使用 Codex Security 的實務流程,也會提到 Daybreak、plugin 與 CLI,說明資安工程師從頭到尾的使用方式↳ 這段是實機操作:資安工程師怎麼用 Codex Security(Codex 裡專門找漏洞、修漏洞的功能),從掃描一路做到修補。plugin 是在自己電腦上用的介面,CLI 是打指令操作的版本。
- 24:23 示範環境是 Codex 桌面版 app,並在本機下載 Ladybird。Ladybird 是 GitHub 上熱門的 pre-alpha 開源瀏覽器↳ 示範用的是 Codex 桌面 app,對象是 Ladybird。它是 GitHub(存放程式碼的平台)上很熱門的開源瀏覽器,目前還在 pre-alpha 階段,比測試版更早,功能都還沒定型。
- 24:23 Ladybird 同意讓團隊拿來 demo,目前也透過 Patch the Planet 合作強化這個專案的安全性↳ 公開拿別人的專案找漏洞,要先取得同意。Ladybird 同意了,雙方也透過 Patch the Planet 這個合作計畫,一起補強這個瀏覽器的安全性。
- 24:54 Codex 的 security 區塊一開始是空的。示範情境是第一次替自己擁有的 repo 建立掃描↳ 一開始 security 區塊是空的,等於從零開始。示範情境是第一次替自己負責的 repo(一個專案的程式碼倉庫)設定掃描。
- 24:54 掃描設定有兩個選項:評估整個 code base,或只看變更(PR、尚未 commit 的變更,或特定 revision)↳ 可以掃整個 code base(全部程式碼),也可以只看改動:一個 PR(請人審核後併入的修改)、還沒 commit(正式存檔)的改動,或某個 revision(特定版本)。
- 24:54 第一次建立 repo 時通常先跑 full scan,用來找出現有資安工具可能漏掉的新漏洞↳ 第一次接手某個 repo,通常先做 full scan,把全部程式看過一遍。目的是抓出公司現有資安工具可能沒發現的新問題,先把底打好。
- 25:28 初次掃描建議把 reasoning 設為 high 或 extra high,並盡量使用最前沿的模型,例如 Sol 或 Astra↳ reasoning 是模型思考的深度,設得越高想得越細,也花越久。初次掃描值得多花時間,建議設成 high 或 extra high,並用最前沿的模型,例如 Sol 或 Astra。
- 26:00 講者最想強調的是 context。reasoning model 和現有資安工具的差別,在於能替掃描器與模型提供 context,讓它知道在你的環境裡該找什麼↳ 講者最在意的是 context(背景資訊)。傳統工具照固定規則找問題;會推理的模型能吸收你的環境資訊,知道在你們公司什麼才算問題、該往哪裡找。
- 26:00 示範中提供了三類 context:attack vectors、模型要聚焦的區域,以及額外的安全 context↳ 示範時給了三種背景資訊:attack vectors(攻擊者可能從哪裡進來)、希望模型特別盯著的程式區域,以及其他跟安全有關的補充。
- 26:30 可以把這些想成要讓模型知道的企業 context,例如 compensating controls、Authn、Authz、business logic,甚至你們怎麼定義 fraud,都能在掃描時提供↳ 可以告訴模型這些事:compensating controls(替代的保護措施)、Authn(驗證身分)、Authz(權限控管)、business logic(業務規則),甚至你們怎麼定義詐騙。
- 26:30 full scan 在底層會先為 repo 建立 threat model↳ full scan 開始找漏洞前,會先替 repo 建 threat model,也就是先整理誰可能攻擊、會從哪裡下手、什麼最值得保護,再照這張地圖去找。
- 27:02 這次掃描共檢視 28,000 個檔案。流程是產生 threat model,接著找出候選漏洞並逐一驗證,最後產出報告↳ 這次掃了 28,000 個檔案。步驟是先做 threat model,再列出 candidate vulnerabilities(疑似漏洞),一個個驗證是不是真的,最後整理成報告。
- 27:02 報告中的範例是 shared JavaScript bytecode cache 漏洞,內容包含摘要,以及依 Codex 判定為有漏洞的檔案整理出的完整攻擊路徑↳ 報告的例子是瀏覽器共用的 JavaScript 程式快取出了問題。報告有摘要,也會依被判定有漏洞的檔案整理出 attack path,說明攻擊者怎麼一步步造成傷害。
- 27:02 Codex 會在原始碼中驗證漏洞,從「可能是漏洞」確認到「我們認為是 true positive」↳ 疑似漏洞不會直接丟給你。Codex 會回原始碼確認,從「可能有問題」驗證到「我們認為是 true positive」,也就是確實是漏洞,不是誤報。
- 27:33 報告會標示影響程度。此例為 high impact、high likelihood,而這些結果取決於你提供的 context(包括掃描時加入的 context 或其他檔案)↳ 每個漏洞都會標出影響多大、多容易被利用,這個例子兩項都高。不過這個判斷會隨你給的背景資訊而變,同一段程式放在不同公司,風險可能不一樣。
- 27:33 目標不只是列出一堆漏洞,而是修補漏洞、實際降低風險,所以下一步是產生 patch↳ 列出一長串漏洞,系統並不會因此變安全,真正的目的是把洞補起來、降低風險。所以找到漏洞之後,下一步就是產生 patch(修正用的程式碼)。
- 28:04 Codex Security 是軟體開發 agent 的延伸,會運用模型的軟體工程能力,判斷漏洞是什麼,也判斷怎樣的 patch 才有效↳ Codex Security 建立在會寫程式的 agent(能自己動手完成任務的 AI 助手)上。它看得懂漏洞是什麼,也懂寫程式,能判斷怎麼改才真的修得好。
- 28:37 產生 patch 時,底層會呼叫 fixed finding skill。這個 skill 同時存在於 plugin 和 CLI 中↳ 產生 patch 時,背後其實是呼叫一個叫 fixed finding 的 skill(一套打包好的做事步驟)。plugin 和 CLI 裡都有這個 skill,用哪一種都一樣。
- 28:37 產生的 patch 可以先審查受影響的程式碼,再套用到本機 repo,最後驗證修補結果,確認漏洞已經消失↳ 修正不會直接硬改。你先看它動了哪些程式,覺得可以再套用到自己電腦上的 repo,最後重新驗證,確認漏洞真的消失了。
- 29:09 要讓掃描更貼近需求,可以使用 security.md 檔案。它本質上就像資安版的 agents.md,在 repo 層級說明你最在意什麼↳ 想讓掃描更貼合需求,可以在 repo 放一份 security.md。它類似 agents.md(寫給 AI 助手看的專案說明檔),只是專講資安,告訴 AI 你最在意什麼。
- 29:09 security.md 可以呼叫一個 skill 輕鬆產生,也可以自己撰寫↳ 這份檔案不用從零寫,可以叫一個 skill 自動產生,也可以自己動手寫。
- 29:39 security.md 讓 agent 在掃描時知道你認為最重要的事項、可能的威脅攻擊,以及你如何看待 trust boundaries 或 business logic↳ 有了這份檔案,agent 掃描時就知道你最重視什麼、可能遇到哪些攻擊,也知道你怎麼看 trust boundaries(從哪裡開始的資料不能直接信任)和業務規則。
- 29:39 講者說,透過提供 context 給 agent,是重新定義資安工作的核心要素↳ 講者認為資安工作的重心正在改變:不只是跑工具,而是把你對系統的了解交給 agent,讓它照你的標準做事。
- 29:39 審查完 security.md 後把它 commit 進 repo,之後的掃描都能沿用↳ security.md 檢查過沒問題,就 commit 存進 repo。之後每次掃描都會自動參考,不用每次重講一遍。
- 30:11 要在更大規模修補漏洞並串接既有工具,就要利用 Codex 的可擴充性↳ 一兩個漏洞手動修還應付得來。要大量處理、又要接上公司原本在用的工具,就得靠 Codex 可以擴充、可以串接其他系統的能力。
- 30:11 做法是請 Codex 讀取掃描結果,用 subagents 針對各個 finding 產生 patch 並分組,接著開 Jira ticket、開 PR 供審查,並在 Slack 通知相關工程師↳ 做法是請 Codex 讀掃描結果,派 subagents(分頭做事的子助手)各自修補並分組,接著開 Jira(工作追蹤系統)工單、開 PR 等人審,再用 Slack 通知負責的工程師。
- 30:41 組織裡常常是一個人負責掃描、另一個人負責修補。延伸的工作流程可以協助跨人員溝通,把事情做完↳ 公司裡常是資安人員掃出問題,另一組工程師負責修,中間很容易卡住。這套流程幫忙把資訊交到對的人手上,讓事情真的被處理完。
- 31:12 每個 subagent 都跑同樣的流程:看程式碼、找出漏洞、產生 patch,再進行驗證↳ 每個子助手做的事都一樣:讀程式碼、找出漏洞、寫修正、驗證修正有效。等於把剛才一個人的流程,複製給很多人同時做。
- 31:43 結果是 Jira ticket 和 GitHub PR 都已開好,相關人員也收到通知,得知有一個來自 Codex Security 掃描 finding 的 ticket 待審↳ 跑完之後,Jira 工單和 GitHub 上的 PR 都開好了,相關的人也收到通知:有一張來自 Codex Security 掃描結果的工單等你處理。
- 31:43 ticket 會附上 Codex 產生的 draft PR,工程師可以在裡面查看受影響的程式碼與建議修正↳ 工單會附上 Codex 準備好的 draft PR(還在草稿階段、尚未正式送審的修改)。工程師點進去,就能看到哪段程式有問題、建議怎麼改。
- 32:16 可以驗證修正是否有效、有沒有下游影響,也能依自己的 CI pipeline 調整,確保沒有 breaking changes、所有檢查都通過,讓工程師專心看程式碼↳ 工程師可以確認修正有效、沒有波及其他地方,也能配合自己的 CI pipeline(改程式後自動跑的檢查流程)調整,確保沒有 breaking changes(弄壞原有功能的改動)、檢查全部通過。
- 32:16 審查沒問題後標記 ready for review,確認 looks good to me,就可以 merge 這個 PR↳ 看過覺得沒問題,就改成正式送審。審核者回一句「looks good to me」(看起來沒問題),這個修改就能 merge,正式併進專案。
- 32:47 講者過去 6 個月見了約 1,000 位客戶,關鍵問題是規模:一個 repo、七個漏洞很好處理,但如果有 10,000 個 repo 該怎麼辦↳ 講者半年內見了約 1,000 家客戶,大家最卡的是規模。一個專案七個漏洞,手動處理很輕鬆;公司有 10,000 個專案時,不可能一個個去點。
- 33:18 規模化的解法是 CLI 與 SDK。plugin 裡的是可組合的 skills,是和許多團隊會談、觀察他們的工作流程後開發出來的↳ 解法是 CLI 和 SDK(讓工程師把功能接進自家程式的工具包)。plugin 裡那些可以自由組合的 skills,是團隊跟很多團隊聊過、看過他們實際怎麼工作後才做出來的。
- 33:18 團隊把這些 skills 的本機體驗從 Codex Security plugin 搬進 CLI,讓測試可以用程式化方式進行↳ 原本在 plugin 裡、要在自己電腦上點來點去的功能,團隊把它搬進 CLI。這樣就能寫成指令自動執行,不必靠人手操作。
- 33:18 CLI 可以執行 bulk scan,並設定要啟動多少個 workers↳ CLI 可以做 bulk scan,一次掃一大批專案,還能設定要開幾個 workers(同時工作的執行單位)。開得越多,能同時處理的專案就越多。
- 33:49 可以傳入 repositories.csv,裡面列出多個 GitHub 或其他 SCM 的 repo,再啟動掃描,從本機互動式體驗轉為程式化擴展↳ 準備一份 repositories.csv 清單,列出 GitHub 或其他 SCM(程式碼管理平台)上的專案,就能一次開掃。這樣就從一個人互動操作,變成程式自動大量處理。
- 33:49 CLI 也能放進 CI 使用,例如檢查 repo 是否有易受攻擊的元件、dependency 版本升級是否帶來漏洞,或在有人開 PR 時讓 CI check 失敗↳ CLI 也能放進 CI 自動檢查:查專案有沒有用到有漏洞的元件、升級 dependency(專案依賴的外部套件)時有沒有帶進漏洞,或在有人開 PR 時讓檢查不通過。
- 34:21 講者表示這些全部是開源的,並希望與各公司及更廣泛的生態系合作,加速資安工作↳ 講者說這些都是開源的,程式碼公開,大家都能用也能改。她希望跟各家公司和整個社群合作,讓資安工作做得更快。
- 34:53 下一位講者 Lou 是 OpenAI 資安領域的 Field CTO,他感謝 Vanessa 後,開始介紹 OpenAI 內部建立 Defense Factory 的做法與細節↳ 接著換 Lou 上台,他是 OpenAI 資安領域的 Field CTO(直接面對客戶的技術主管)。他謝過 Vanessa 後,開始介紹 OpenAI 內部怎麼打造 Defense Factory。
- 35:23 Lou 預告結尾會簡短提到產品消息,並說下週有 DevDay,接下來幾週也會陸續發布更多資安相關消息↳ Lou 預告結尾會簡單講產品消息,並提到下週有 DevDay 活動,接下來幾週也會陸續公布更多資安相關消息。
📘 術語
Codex Security(Codex 資安功能):Codex 的 security 區塊,可以掃描 repo、找出漏洞並產生 patch,是軟體開發 agent 的延伸
plugin(外掛):在本機使用 Codex Security 的方式,內含可組合的 skills
CLI(命令列工具):把 plugin 的 skills 搬過來,支援程式化測試、bulk scan,也能在 CI 中使用
SDK(軟體開發套件):和 CLI 並列,是面對大規模(如 10,000 個 repo)情境的解法
Ladybird(Ladybird 瀏覽器):GitHub 上熱門的 pre-alpha 開源瀏覽器,本段拿來當 demo 對象
Patch the Planet(Patch the Planet):Ladybird 透過這個計畫和團隊合作,強化專案的安全性
pre-alpha(前期測試版):用來形容 Ladybird 目前的開發階段
full scan(完整掃描):評估整個 code base。第一次建立 repo 時通常先跑,找出現有工具漏掉的新漏洞
revision(特定版本):「只看變更」選項可以指定的對象之一,另外兩種是 PR 和尚未 commit 的變更
reasoning (high / extra high)(推理強度(高/特高)):初次掃描建議設為 high 或 extra high
frontier model(前沿模型):建議使用最前沿的可用模型,例如 Sol 或 Astra
context(脈絡資訊):提供給掃描器與模型的資訊,讓它知道在你的環境該找什麼,也會影響漏洞影響程度的判定
attack vectors(攻擊向量):掃描時可以提供給模型的 context 之一
compensating controls(補償性控制):字幕舉的企業 context 例子之一,可在掃描時提供
Authn / Authz(身分驗證/授權):字幕舉的企業 context 例子,可在掃描時提供
business logic(商業邏輯):可以寫進掃描 context 或 security.md,讓 agent 參考
threat model(威脅模型):full scan 在底層會先替 repo 建立 threat model,再找候選漏洞
candidate vulnerabilities(候選漏洞):建立 threat model 後先找出的可能漏洞,之後再逐一驗證
attack path(攻擊路徑):報告依 Codex 判定為有漏洞的檔案,列出完整的攻擊路徑
true positive(真陽性):漏洞在原始碼中驗證後,確認為真的漏洞
patch(修補程式):Codex 為漏洞產生的修正,可以審查、套用到本機 repo,再驗證修補結果
skill(技能):可組合的功能模組,例如產生 patch 時呼叫的 fixed finding skill,plugin 和 CLI 都有
security.md(security.md 檔案):像資安版的 agents.md,在 repo 層級提供 context,說明你最在意的事項
agents.md(agents.md 檔案):字幕用來類比 security.md 的檔案
trust boundaries(信任邊界):可以寫進 security.md,讓 agent 知道你如何看待信任邊界
subagents(子代理):Codex 派出的子 agent,各自跑看程式碼、找漏洞、產生並驗證 patch 的流程
Jira ticket(Jira 工單):Codex 可以根據掃描結果自動開 Jira ticket
PR / draft PR(合併請求/草稿合併請求):Codex 可以在 GitHub 開 PR 或 draft PR,讓工程師審查後 merge
CI pipeline(持續整合流程):可以依自己的 CI pipeline 調整修正,確保沒有 breaking changes、所有檢查都通過
breaking changes(破壞性變更):調整修正時要確保不會出現的變更
bulk scan(批次掃描):CLI 的功能,可以設定 workers 數量,並傳入 repositories.csv 一次掃描多個 repo
workers(工作執行單元):bulk scan 時可以設定要啟動的數量
SCM(原始碼管理系統):repositories.csv 可以列 GitHub 或其他 SCM 的 repo
dependency(相依套件):CLI 可以在 CI 中檢查 dependency 版本升級是否帶來漏洞
Defense Factory(Defense Factory):Lou 要介紹的 OpenAI 內部建置成果
Field CTO(Field CTO):Lou 在 OpenAI 資安領域的職稱
plugin(外掛):在本機使用 Codex Security 的方式,內含可組合的 skills
CLI(命令列工具):把 plugin 的 skills 搬過來,支援程式化測試、bulk scan,也能在 CI 中使用
SDK(軟體開發套件):和 CLI 並列,是面對大規模(如 10,000 個 repo)情境的解法
Ladybird(Ladybird 瀏覽器):GitHub 上熱門的 pre-alpha 開源瀏覽器,本段拿來當 demo 對象
Patch the Planet(Patch the Planet):Ladybird 透過這個計畫和團隊合作,強化專案的安全性
pre-alpha(前期測試版):用來形容 Ladybird 目前的開發階段
full scan(完整掃描):評估整個 code base。第一次建立 repo 時通常先跑,找出現有工具漏掉的新漏洞
revision(特定版本):「只看變更」選項可以指定的對象之一,另外兩種是 PR 和尚未 commit 的變更
reasoning (high / extra high)(推理強度(高/特高)):初次掃描建議設為 high 或 extra high
frontier model(前沿模型):建議使用最前沿的可用模型,例如 Sol 或 Astra
context(脈絡資訊):提供給掃描器與模型的資訊,讓它知道在你的環境該找什麼,也會影響漏洞影響程度的判定
attack vectors(攻擊向量):掃描時可以提供給模型的 context 之一
compensating controls(補償性控制):字幕舉的企業 context 例子之一,可在掃描時提供
Authn / Authz(身分驗證/授權):字幕舉的企業 context 例子,可在掃描時提供
business logic(商業邏輯):可以寫進掃描 context 或 security.md,讓 agent 參考
threat model(威脅模型):full scan 在底層會先替 repo 建立 threat model,再找候選漏洞
candidate vulnerabilities(候選漏洞):建立 threat model 後先找出的可能漏洞,之後再逐一驗證
attack path(攻擊路徑):報告依 Codex 判定為有漏洞的檔案,列出完整的攻擊路徑
true positive(真陽性):漏洞在原始碼中驗證後,確認為真的漏洞
patch(修補程式):Codex 為漏洞產生的修正,可以審查、套用到本機 repo,再驗證修補結果
skill(技能):可組合的功能模組,例如產生 patch 時呼叫的 fixed finding skill,plugin 和 CLI 都有
security.md(security.md 檔案):像資安版的 agents.md,在 repo 層級提供 context,說明你最在意的事項
agents.md(agents.md 檔案):字幕用來類比 security.md 的檔案
trust boundaries(信任邊界):可以寫進 security.md,讓 agent 知道你如何看待信任邊界
subagents(子代理):Codex 派出的子 agent,各自跑看程式碼、找漏洞、產生並驗證 patch 的流程
Jira ticket(Jira 工單):Codex 可以根據掃描結果自動開 Jira ticket
PR / draft PR(合併請求/草稿合併請求):Codex 可以在 GitHub 開 PR 或 draft PR,讓工程師審查後 merge
CI pipeline(持續整合流程):可以依自己的 CI pipeline 調整修正,確保沒有 breaking changes、所有檢查都通過
breaking changes(破壞性變更):調整修正時要確保不會出現的變更
bulk scan(批次掃描):CLI 的功能,可以設定 workers 數量,並傳入 repositories.csv 一次掃描多個 repo
workers(工作執行單元):bulk scan 時可以設定要啟動的數量
SCM(原始碼管理系統):repositories.csv 可以列 GitHub 或其他 SCM 的 repo
dependency(相依套件):CLI 可以在 CI 中檢查 dependency 版本升級是否帶來漏洞
Defense Factory(Defense Factory):Lou 要介紹的 OpenAI 內部建置成果
Field CTO(Field CTO):Lou 在 OpenAI 資安領域的職稱
✏️ 小考一題
講者說 security.md 檔案本質上像是哪一種檔案的資安版?
A. repositories.csvB. README.mdC. agents.mdD. CI pipeline 設定檔看答案
答案:C。[29:09] 講者說 security.md「fundamentally like an agents.md, but for security」,在 repo 層級提供你最在意事項的 context。
💛 覺得有幫助?支持一下


課本免費、沒有廣告,支持與否都能照常讀 🐰