自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用命令行工具 Graudit 來查找你代碼中的安全漏洞

開發(fā) 前端 新聞
測試是軟件開發(fā)生命周期(SDLC)的重要組成部分,它有幾個階段。今天,我想談?wù)勅绾卧诖a中發(fā)現(xiàn)安全問題。

 測試是軟件開發(fā)生命周期(SDLC)的重要組成部分,它有幾個階段。今天,我想談?wù)勅绾卧诖a中發(fā)現(xiàn)安全問題。

在開發(fā)軟件的時候,你不能忽視安全問題。這就是為什么有一個術(shù)語叫 DevSecOps,它的基本職責是識別和解決應(yīng)用中的安全漏洞。有一些用于檢查 OWASP 漏洞 的開源解決方案,它將通過創(chuàng)建源代碼的威脅模型來得出結(jié)果。

處理安全問題有不同的方法,如靜態(tài)應(yīng)用安全測試(SAST)、動態(tài)應(yīng)用安全測試(DAST)、交互式應(yīng)用安全測試(IAST)、軟件組成分析等。

靜態(tài)應(yīng)用安全測試在代碼層面運行,通過發(fā)現(xiàn)編寫好的代碼中的錯誤來分析應(yīng)用。這種方法不需要運行代碼,所以叫靜態(tài)分析。

我將重點介紹靜態(tài)代碼分析,并使用一個開源工具進行實際體驗。

為什么要使用開源工具檢查代碼安全?

選擇開源軟件、工具和項目作為開發(fā)的一部分有很多理由。它不會花費任何金錢,因為你使用的是一個由志趣相投的開發(fā)者社區(qū)開發(fā)的工具,而他們希望幫助其他開發(fā)者。如果你有一個小團隊或一個初創(chuàng)公司,找到開源軟件來檢查你的代碼安全是很好的。這樣可以讓你不必單獨雇傭一個 DevSecOps 團隊,讓你的成本降低。

好的開源工具總是考慮到靈活性,它們應(yīng)該能夠在任何環(huán)境中使用,覆蓋盡可能多的情況。這讓開發(fā)人員更容易將該軟件與他們現(xiàn)有的系統(tǒng)連接起來。

但是有的時候,你可能需要一個功能,而這個功能在你選擇的工具中是不可用的。那么你就可以選擇復(fù)刻其代碼,在其上開發(fā)自己的功能,并在你的系統(tǒng)中使用。

因為,大多數(shù)時候,開源軟件是由社區(qū)驅(qū)動的,開發(fā)的速度往往是該工具的用戶的加分項,因為他們會根據(jù)用戶的反饋、問題或 bug 報告來迭代項目。

使用 Graudit 來確保你的代碼安全

有各種開源的靜態(tài)代碼分析工具可供選擇,但正如你所知道的,工具分析的是代碼本身,這就是為什么沒有通用的工具適用于所有的編程語言。但其中一些遵循 OWASP 指南,盡量覆蓋更多的語言。

在這里,我們將使用 Graudit ,它是一個簡單的命令行工具,可以讓我們找到代碼庫中的安全缺陷。它支持不同的語言,但有一個固定的簽名集。

Graudit 使用的 grep 是 GNU 許可證下的工具,類似的靜態(tài)代碼分析工具還有 Rough Auditing Tool for Security(RATS)、Securitycompass Web Application Analysis Tool(SWAAT)、flawfinder 等。但 Graudit 的技術(shù)要求是最低的,并且非常靈活。不過,你可能還是有 Graudit 無法滿足的要求。如果是這樣,你可以看看這個 列表 的其他的選擇。

我們可以將這個工具安裝在特定的項目下,或者全局命名空間中,或者在特定的用戶下,或者任何我們喜歡地方,它很靈活。我們先來克隆一下倉庫。

  1. $ git clone https://github.com/wireghoul/graudit 

現(xiàn)在,我們需要創(chuàng)建一個 Graudit 的符號鏈接,以便我們可以將其作為一個命令使用。

  1. $ cd ~/bin &&; mkdir graudit 
  2. $ ln --symbolic ~/graudit/graudit ~/bin/graudit 

在 .bashrc (或者你使用的任何 shell 的配置文件)中添加一個別名。

  1. #------ .bashrc ------ 
  2. alias graudit="~/bin/graudit" 

重新加載 shell:

  1. $ source ~/.bashrc # 或 
  2. $ exex $SHELL 

讓我們通過運行這個來檢查是否成功安裝了這個工具。

  1. $ graudit -h 

如果你得到類似于這樣的結(jié)果,那么就可以了。

使用命令行工具 Graudit 來查找你代碼中的安全漏洞

圖 1 Graudit 幫助頁面

我正在使用我現(xiàn)有的一個項目來測試這個工具。要運行該工具,我們需要傳遞相應(yīng)語言的數(shù)據(jù)庫。你會在 signatures 文件夾下找到這些數(shù)據(jù)庫。

  1. $ graudit -d ~/gradit/signatures/js.db 

我在現(xiàn)有項目中的兩個 JavaScript 文件上運行了它,你可以看到它在控制臺中拋出了易受攻擊的代碼。

使用命令行工具 Graudit 來查找你代碼中的安全漏洞

JavaScript file showing Graudit display of vulnerable code

使用命令行工具 Graudit 來查找你代碼中的安全漏洞

JavaScript file showing Graudit display of vulnerable code

你可以嘗試在你的一個項目上運行這個,項目本身有一個長長的 數(shù)據(jù)庫 列表,用于支持不同的語言。

Graudit 的優(yōu)點和缺點

Graudit 支持很多語言,這使其成為許多不同系統(tǒng)上的用戶的理想選擇。由于它的使用簡單和語言支持廣泛,它可以與其他免費或付費工具相媲美。最重要的是,它們正在開發(fā)中,社區(qū)也支持其他用戶。

雖然這是一個方便的工具,但你可能會發(fā)現(xiàn)很難將某個特定的代碼識別為“易受攻擊”。也許開發(fā)者會在未來版本的工具中加入這個功能。但是,通過使用這樣的工具來關(guān)注代碼中的安全問題總是好的。

總結(jié)

在本文中,我只介紹了眾多安全測試類型中的一種:靜態(tài)應(yīng)用安全測試。從靜態(tài)代碼分析開始很容易,但這只是一個開始。你可以在你的應(yīng)用開發(fā)流水線中添加其他類型的應(yīng)用安全測試,以豐富你的整體安全意識。

責任編輯:張燕妮 來源: Linux中國
相關(guān)推薦

2020-09-03 13:41:03

Graudit安全漏洞開源工具

2011-01-18 19:11:26

Postfix命令行

2015-09-02 15:47:05

命令行fdupesLinux

2013-12-03 09:23:06

命令行網(wǎng)速

2012-11-20 16:16:05

Windows

2021-07-08 08:56:30

Linux命令刪除用戶

2022-08-14 19:19:14

Linux

2022-04-11 06:03:24

FdupesLinux命令行工具

2019-06-17 09:30:50

命令行Windows 10管理密碼

2024-11-18 15:05:34

MySQL數(shù)據(jù)庫

2010-05-17 15:41:26

2009-07-07 11:28:36

2020-12-10 16:16:08

工具代碼開發(fā)

2020-12-11 06:44:16

命令行工具開發(fā)

2022-10-25 13:01:36

Linux命令行空目錄

2022-10-14 19:30:29

Linux

2021-07-29 10:00:43

XMLXMLStarletLinux

2010-08-31 15:46:49

DB2命令行

2023-10-30 01:00:42

Go語言Cobra庫

2023-12-01 07:06:14

Go命令行性能
點贊
收藏

51CTO技術(shù)棧公眾號