日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
從工具到實踐:如何在GitHub上保障開源項目安全?

1998年,Christine Peterson創(chuàng)造了 “開源軟件”這個詞。她解釋道:“這是刻意為之,為了讓其他人更容易理解這個領(lǐng)域”。同年,O’Reilly組織了首屆“開源峰會”。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比唐山網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式唐山網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋唐山地區(qū)。費用合理售后完善,10年實體公司更值得信賴。

開源軟件受到更多人青睞原因在于,用戶對軟件擁有更多的控制權(quán)因為他們可以檢查代碼。對于長期項目來說,開源軟件被認(rèn)為是穩(wěn)定的,因為這些項目遵循開放的標(biāo)準(zhǔn),即便維護(hù)者停止工作,也不會憑空消失?;钴S的開發(fā)者社區(qū)十分重要。

比起閉源軟件,開源需要更多地考慮安全問題,因為任何人都可以查看并修改代碼。貢獻(xiàn)者可以發(fā)現(xiàn)錯誤并提交一個PR對代碼進(jìn)行變更。與此同時,這也伴隨著一系列的安全問題。

什么是軟件供應(yīng)鏈攻擊?

當(dāng)有人利用外部供應(yīng)商或能夠訪問你的企業(yè)的數(shù)據(jù)和系統(tǒng)的第三方組件來滲透你的數(shù)字基礎(chǔ)設(shè)施時,就會發(fā)生軟件供應(yīng)鏈攻擊。供應(yīng)鏈攻擊的類型多種多樣,本文將聚焦于開源供應(yīng)鏈。

任何人都可以通過開源舉措為項目的開發(fā)做出貢獻(xiàn)。利用這個切入點,黑客可以將漏洞編入開源項目中,當(dāng)企業(yè)將該項目引入其軟件中時也引入了新的威脅,而且往往是在不知情的情況下,通過遍歷依賴或間接依賴引入。

Web 應(yīng)用安全的重要性

Web 應(yīng)用安全是一個概念,它涵蓋了一系列嵌入Web應(yīng)用程序的安全管控,以保護(hù)其資產(chǎn)免受潛在的惡意行為的影響。它涉及安全開發(fā)實踐,在整個軟件開發(fā)生命周期(SDLC)中實施安全措施,以發(fā)現(xiàn)項目及其配置中的安全漏洞。

好消息是你可以通過使用不同的應(yīng)用程序及 action 在 GitHub 內(nèi)實現(xiàn)安全保護(hù),不管是一個簡單的demo項目,還是大型開源項目?;诖耍_源項目可以擁有與閉源軟件相同的安全水平。

Section 1:GitHub Marketplace 及 GitGuardian 應(yīng)用

什么是 GitHub Marketplace?

2016年的GitHub Universe上,首次引入GitHub Marketplace。它是一個開發(fā)者可以找到集成插件并將其落實到工作流程中的地方。

如何利用安全工具創(chuàng)建基礎(chǔ)流水線并實現(xiàn)防護(hù)?

你可以利用GitHub Marketplace中的安全應(yīng)用和action來保護(hù)你的流水線每個開發(fā)階段的安全。

一個基礎(chǔ)的流水線包括:

  • 軟件成分分析工具,專注于識別代碼庫中的開放源碼,以便維護(hù)者和貢獻(xiàn)者能夠管理它們的安全和許可證合規(guī)問題
  • 防止密鑰泄露的工具
  • 代碼分析工具,它是一種在程序運行之前通過檢查源代碼進(jìn)行調(diào)試的方法,一般根據(jù)一組編碼規(guī)則分許一組代碼

如何為你的項目選擇相關(guān)應(yīng)用?你需要考慮些什么?

選擇工具、應(yīng)用或是action 主要取決于你的項目或團(tuán)隊的工作流程。你們使用的是什么類型的技術(shù)棧?你們是部署到Docker還是使用K8S?在你們的流水線中有多少個步驟?你能在每個步驟都實施防護(hù)嗎?

然后,你將會找到許多滿足你需求的工具和應(yīng)用。而對于開放源碼軟件的維護(hù)者來說,好消息是這些應(yīng)用程序通常對公開的代碼庫或開源軟件項目是免費的。

你可以在一個階段中采用2個工具,比如 Synk 和 Mend 掃描你的依賴項。這兩種工具在覆蓋率方面都會有其優(yōu)點和缺點,并會幫助你更好地了解你的項目的依賴項。如果你認(rèn)為一個工具比另一個好,你仍然可以刪除你不需要的那個。

讓我們來看看OWASP Zap基線掃描這個GitHub action,它會掃描目標(biāo)URL的漏洞,并在你提交PR時將其反饋給你的項目。

當(dāng)你打算在項目中采用一個action或一個應(yīng)用時,你應(yīng)該在項目頁上看到各種信息——GitHub是否驗證該action?上圖中顯示為已驗證,你可以在右側(cè)看到一個藍(lán)色的小勾。有多少貢獻(xiàn)者在為這個項目工作?該項目獲得了多少顆星?有多少issue和PR?

再導(dǎo)航到 GitHub 倉庫,看看維護(hù)者和貢獻(xiàn)者是如何積極推動這個項目的。它的文檔是否完善?他們是否提供了基本的使用范例?(比如一個簡單的YAML文件)是否容易實現(xiàn)?是否能與你項目的編程語言兼容?

接下來,我們來看看 GitGuardian 的實際用例。你可以直接在 Marketplace 中搜索到它。

點擊產(chǎn)品頁,你將獲得更多信息。作為項目的維護(hù)者,你將會用 OWASP Action 檢查我們前面提到的要求是否達(dá)標(biāo)。我們可以看到 GitHub 是否驗證了該應(yīng)用、應(yīng)用安裝數(shù)量以及更多關(guān)于該組織的其他信息。

劃到頁面底部,你將看到價格及安裝信息。GitGuardian為公開的代碼庫提供免費的監(jiān)控。選擇你想要安裝的賬號,并點擊“Install it for free”。

你可以在所有代碼庫上都安裝 GitGuardian 或者選擇其中幾個。你可以為需要安全防護(hù)的每個階段重復(fù)這一過程。

Section 2:管理開源項目

當(dāng)貢獻(xiàn)者提交PR時,它將觸發(fā)流水線中集成的所有應(yīng)用和action。理想狀況下,就GitGuardian而言,你希望憑證不被推送到源代碼中,并且在貢獻(xiàn)者提交PR之前停止這一行為。你可以在你的CLI上采用 GitGuardian Shield(ggsheild),并與預(yù)提交的 git hook集成以增強(qiáng)防護(hù),確保憑證沒有被推送到源碼中。

如果沒有設(shè)置 ggshield,在代碼庫上推送密鑰的貢獻(xiàn)者會在提交PR時收到告警。下圖虛擬PR提交的過程中,你可以看到一些工具被觸發(fā)。

你可以讓其中一些工具在主干分支上是必須觸發(fā)的。要做到這一點,需要進(jìn)入項目設(shè)置,在【Code and automation】中點擊【Branches】。在這里,你可以添加分支保護(hù)規(guī)則,要求在合并PR前必須通過狀態(tài)檢查。

如何從ChatOps中獲取價值?

ChatOps 是一個協(xié)作模型,將人、工具、流程和自動化連接到一個透明的工作流程中。使用Slack進(jìn)行討論,并為特定的工具設(shè)置專門的頻道,這將有助于你了解項目中發(fā)生的事情。監(jiān)控和設(shè)置告警是重要的一環(huán),可以幫助開發(fā)人員獲得正確的信息。

GitHub 項目:如何利用面板追蹤安全任務(wù)

在開發(fā)開源項目時,你可以利用GitHub projects來列出你為某一特定功能所要做的所有任務(wù)。你可以創(chuàng)建標(biāo)簽和epics(milestones)來跟蹤進(jìn)度或用于提出問題。還可以創(chuàng)建一個安全標(biāo)簽來追蹤你項目中的漏洞。

你可以使用自動化項目或面板,其中的卡片會根據(jù)PR的狀態(tài)相應(yīng)地移動。這個方式可以很好地展示功能開發(fā)進(jìn)度以及你可能需要幫助的地方。

在 README 文件中展示項目的健康狀態(tài)

如果你想為你的項目吸引更多的貢獻(xiàn)者,不要忘記使用應(yīng)用及action工作流程提供的標(biāo)簽或tag來展示項目的健康狀態(tài),并將其添加到項目的README文件頂部。你通過GitHub文檔了解更多徽章設(shè)置:

https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge

Section 3:安全加固開源項目

除了在流水線各環(huán)節(jié)添加安全防護(hù)外,你還可以通過采用以下最佳實踐加固開源項目:

采用最小權(quán)限:在成員權(quán)限部分將基本權(quán)限設(shè)置為無權(quán)限,這樣成員只能克隆和提取公共代碼庫。如果要給貢獻(xiàn)者更多的權(quán)限,維護(hù)者需要把他們加入團(tuán)隊或讓他們成為單個代碼庫的協(xié)作者。創(chuàng)建團(tuán)隊、添加用戶,并將他們分配到具有特定權(quán)限的特定代碼庫中。

讓所有維護(hù)者和貢獻(xiàn)者都必須使用2FA。到2023年底,GitHub將要求所有貢獻(xiàn)代碼的用戶啟用一種或多種形式的雙因素認(rèn)證。

保護(hù)主分支:如上所述,一定要保護(hù)主分支,以免被維護(hù)者意外刪除。

啟用提醒和告警:更新email地址以保證你能收到來自項目的提醒信息

添加正確的許可證:OSS許可證可以保護(hù)貢獻(xiàn)者和用戶。如果你不確定應(yīng)該選擇哪個許可證,可以查看這篇文章進(jìn)行簡單的入門,并且確保在你的代碼庫中有 LICENSE.md 或 LICENSE.txt 文件。

審查應(yīng)用程序、工具和Webhooks的列表:如果你在流水線中的一個步驟中使用了多個應(yīng)用程序、工具或webhooks,請review 它們是否仍然適用,并刪除任何陳舊過時的或未使用的組件。

如果你依賴 GitHub Actions 來構(gòu)建、測試和部署你的項目,一定要檢查你的工作流程配置。訪問下方鏈接可以查看 GitHub Actions 安全最佳實踐:

https://blog.gitguardian.com/github-actions-security-cheat-sheet/

總結(jié)

開源組件可以成為大規(guī)模網(wǎng)絡(luò)攻擊的一個載體。去年我們已經(jīng)看到了Apache Log4j 的漏洞,這是一個開源的Java包,用于支持許多Java應(yīng)用程序的活動記錄。雖然不是所有用Java編寫的軟件都有漏洞,但受影響的軟件包被開發(fā)人員廣泛使用,有許多應(yīng)用程序和服務(wù)都使用這個庫。大型科技公司,如微軟、VMWare、亞馬遜、IBM等都受到影響。

使用不同的工具和防護(hù)在整個流水線中擁有可見性對于減少攻擊面至關(guān)重要,在本文中我們已經(jīng)看到借助 GitHub Marketplace 的應(yīng)用和Action可以幫助達(dá)成這一目標(biāo)。軟件供應(yīng)鏈安全管理平臺SEAL 也可以幫助用戶獲取項目的全局安全可見性,目前已開放免費試用:seal.io/trial。

作為維護(hù)者和貢獻(xiàn)者,可以先創(chuàng)建一個小型流水線,并嘗試試用其中一些工具,為每個貢獻(xiàn)者安全加固GitHub項目。

不停地實踐是保證安全的關(guān)鍵一環(huán),但更重要的是,不要在GitHub上push你的密鑰!


網(wǎng)頁標(biāo)題:從工具到實踐:如何在GitHub上保障開源項目安全?
文章位置:http://m.5511xx.com/article/djshsio.html