6

使用 Snyk 檢查開源軟件依賴中的漏洞

 2 years ago
source link: https://www.frank.hk/blog/snyk/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

使用 Snyk 檢查開源軟件依賴中的漏洞

發佈:2020-07-09397 Views技術類SoftwareSecurity

如今基本任何一個 IT Project 都離不開開源社區中的軟件依賴包( Dependencies ), 在如今越來越注重資訊安全的年代,隨之而來的問題是,誰會能夠保證這些依賴包的安全性?如何監控這些開源軟件包的漏洞?人肉留意最新的漏洞信息,比如關注 CVE 網站之餘,有沒有更加自動化的方法?

答案當然是「有」。

Snyk 是一家美國的安全公司,致力於監控開源軟件包中的漏洞。Snyk 以其龐大的漏洞資料庫為基礎(由以色列和倫敦的資安研究專家團隊負責維護該資料庫),持續的監控開源社區中各種軟件包的安全情況,以及給出解決方案。 隨著 Snyk 的不斷發展,它已經可以做到輕鬆掃描,IDE配合,與原碼平台整合 (如 GitHub、BitBucket、GitLab等)、實現 CI/CD 流程。

screen 20200709110532

Snyk 雖然是一款商用漏洞掃描工具,但他對開源的項目免費。私有的項目,也可以用每月 200 次的掃描,對於一般的項目,個人感覺免費的計劃已經夠用。

Snyk 支援的語言

根據官網的文檔,目前 Snyc 支援以下語言:

  • Javascript
  • Python
  • Golang
  • Scala
  • Swift & Objectiv-C

對比 npm audit

npm audit 也是一個常用且免費的漏洞掃描工具,snyk 對比 npm audit ,檢測能力上要強很多。可以參考這篇文章,作者有對兩者進行對比。

Snyk 透過 CLI 方式運行, CLI 的安裝十分簡單, 官網有詳細的介紹。如果是本地使用,可以透過下列步驟快速安裝:

1npm install -g snyk

之後需要進行綁定你的 snyk 賬戶,進行授權

1snyk auth

在打開的網頁中授權即可。

安裝完成後,便可以使用 snyk 來檢測你的 Project 了。

1cd /my/project/
2snyk test
screen 20200709121228

IDE 插件

snyk 對於 IDE 有插件 ( Plug-In) 可以使用,以 Intellij IDEA 為例, 可以在 Market Place 中直接搜尋安裝。

screen 20200709105033

裝好後就可以在 IDE 中直接查看檢測結果。

screen 20200709105558

直接掃描 Git 中的項目專案

Snyk 也可以直接接駁 GitLab, Github 等平台,直接進行掃描。因為我自己一般使用 Gitlab 為主,所以以下便以 Gitlab 舉例:

首先登入你的 synk 賬戶 , 然後按照指示選擇代碼平台:

screen 20200709123232

如果是使用 Gitlab ,則要按 + 來選擇:

screen 20200709123306

然後需要你輸入 Gitlab 的 token:

screen 20200709122051

這個 token 可以在你的 Gitlab 中新建:

screen 20200709121956

之後,就可以選擇 Gitlab 中的 Project 來進行掃描了。

screen 20200709122335

完成後就可以查看掃描結果:

screen 20200709122446
screen 20200709122744

另外值得一提的是,在集成了 Git 之後, snyk 會自動對你的專案進行掃描,並且自動進行 patch。如果你查看 Gitlab 的 CI/CD , 會看到 snyk 已經默默的幫你 patch 了一些漏洞。

screen-20200710132014.png
snyk 自動進行的 patch
screen-20200710131915.png

Snyk 對於開源軟件的安全監控很有幫助,並且能夠非常簡單的使用,乃至整合到 CI/CD的流程中,是一個非常好的安全工具。但需要留意的是, Snyk 是一個依賴漏洞檢測工具,針對的僅僅是已知的軟件漏洞。它並不是一個防病毒工具,不能檢測任何惡意程式, 更不會檢測項目專案中自己寫的代碼。若要掃描自己的代碼,可以使用類似 SonarQubeFindbug等的工具,有時間的話會另文分享。

訂閱我的網站,接收更新以及其他有趣的消息 😙 。 訂閱不收費,走過路過別錯過。
Subscribe to my website, I will email you if any new posts or interesting stuff available.

如果你喜歡我的內容,請考慮用一杯咖啡支持我一下吧,非常感謝 🥰 。
If you like my contents, please support me via BuyMeCoffee, Thanks a lot.

其它相關文章


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK