當(dāng)前位置:澤眾軟件測試網(wǎng)- 技術(shù)文章 -正文

靜態(tài)代碼分析和代碼審計(jì)的方法技巧

發(fā)布時(shí)間:2020-08-04

現(xiàn)在的軟件系統(tǒng)越來越多,這個(gè)行業(yè)的發(fā)展是非??焖俚模a的數(shù)量越來越多,系統(tǒng)的復(fù)雜程度也是在快速的增長。而且軟件開發(fā)的編程語言也從使用單一的語言發(fā)展為多種語言協(xié)同開發(fā)。這樣使測試的難度也在逐漸的增高。今天我們就先來簡單的了解一下靜態(tài)代碼分析和代碼審計(jì)。

CodeAnalyzer(代碼質(zhì)量管理)

靜態(tài)代碼分析

靜態(tài)代碼分析是指在不實(shí)際執(zhí)行程序的情況下,對代碼語義和行為進(jìn)行分析,由此找出程序中由于錯(cuò)誤的編碼導(dǎo)致異常的程序語義或未定義的行為。通俗的說,靜態(tài)代碼分析就是在代碼編寫的同時(shí)就能找出代碼的編碼錯(cuò)誤。你不需要等待所有代碼編寫完畢,也不需要構(gòu)建運(yùn)行環(huán)境,編寫測試用例。它能在軟件開發(fā)流程早期就發(fā)現(xiàn)代碼中的各種問題,從而提高開發(fā)效率和軟件質(zhì)量。

代碼審計(jì)

代碼審計(jì)(Code audit)就是檢查源代碼中的安全缺陷,檢查程序源代碼是否存在安全隱患,或者有編碼不規(guī)范的地方,通過自動(dòng)化工具或者人工審查的方式,對程序源代碼逐條進(jìn)行檢查和分析,發(fā)現(xiàn)這些源代碼缺陷引發(fā)的安全漏洞,并提供代碼修訂措施和建議。

代碼審計(jì)是一種以發(fā)現(xiàn)程序錯(cuò)誤,安全漏洞和違反程序規(guī)范為目標(biāo)的源代碼分析。軟件代碼審計(jì)是對編程項(xiàng)目中源代碼的全面分析,旨在發(fā)現(xiàn)錯(cuò)誤,安全漏洞或違反編程約定。 它是防御性編程范例的一個(gè)組成部分,它試圖在軟件發(fā)布之前減少錯(cuò)誤。

通過閱讀一份源碼,對其進(jìn)行各類漏洞挖掘,這樣的過程便統(tǒng)稱為審計(jì)。在審計(jì)中,你不但需要知道各類漏洞的原理,還需要良好的審計(jì)環(huán)境。在面對大型開源程序時(shí),信息量往往十分巨大,所以工具的分析和檢索是必不可少的。

隨著PHP被廣泛使用,PHP的安全問題越來越被關(guān)注。而最常見的搭配就是PHP+MySQL,接下來我們探討一下PHP審計(jì)中MySQL注入的挖掘。

1、注入的原理

顧名思義,SQL注入就是通過把SQL命令插入到Web表單提交、輸入域名或頁面請求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令的目的。SQL注入是當(dāng)今網(wǎng)絡(luò)上最普遍的一種攻擊方法。

2、常見的注入

審計(jì)中,最常出現(xiàn)的注入便是GET注入、POST注入和Cookie注入。而POST注入也是最容易被忽略的,有時(shí)可能因?yàn)閭鬟f的參數(shù)較多,常常忽略某個(gè)參數(shù)的過濾,從而導(dǎo)致了注入。在實(shí)際開發(fā)中,往往有的開發(fā)人員使用了REQUEST傳參,卻只對GET進(jìn)行了過濾,因此可以換一種方式提交數(shù)據(jù)進(jìn)行注入

3、http頭注入

http客戶程序向服務(wù)器發(fā)送請求的時(shí)候必須指明請求類型,從而產(chǎn)生了http頭。常見的http頭如下所述。

Host:初始URL中的主機(jī)和端口。

Referer:包含一個(gè)URL,用戶從該URL代表的頁面出發(fā)訪問當(dāng)前請求的頁面。

User-Agent:瀏覽器類型。

Accept:瀏覽器可接收的MIME類型。

Accept-Language:瀏覽器所希望的語言種類。

Connection:表示是否需要持久連接。

Content-Length:表示請求消息正文的長度。

Cookie:這是最重要的請求頭信息之一。

4、二次注入

隨著安全問題日趨被重視,一些簡單的SQL注入在大中型開源程序中已基本銷聲匿跡了。而出現(xiàn)更多的則是二次注入,相對于一次注入漏洞而言,二次注入漏洞更難以被發(fā)現(xiàn),但是它卻具有與一次注入攻擊漏洞相同的攻擊威力。

關(guān)于靜態(tài)代碼分析和代碼審計(jì)的一些內(nèi)容就是這樣了,在本文的最后,小編給大家推薦一個(gè)簡單又好用的代碼審計(jì)工具,CodeAnalyzer(簡稱CA)是一個(gè)專業(yè)代碼質(zhì)量管理的代碼審查軟件,用于實(shí)現(xiàn)靜態(tài)分析、代碼走查、代碼規(guī)范檢查以及代碼潛在錯(cuò)誤分析的白盒測試工具,它是一種脫離編譯器的代碼靜態(tài)分析軟件產(chǎn)品。

推薦閱讀:

HTML靜態(tài)頁面與CSS該如何審查代碼?

50多家公司源代碼被泄露究竟是為何?微軟、高通竟也在其中

想要了解代碼靜態(tài)分析技術(shù),這些知識(shí)不可錯(cuò)過

白盒測試的基本方法有哪些?與黑盒測試的區(qū)別?

比較常用的白盒測試工具有哪些?

Java靜態(tài)代碼掃描怎么做?Java靜態(tài)代碼掃描工具的使用方法

本文內(nèi)容不用于商業(yè)目的,如涉及知識(shí)產(chǎn)權(quán)問題,請權(quán)利人聯(lián)系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。
滬ICP備07036474號(hào) 2003-2024 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨詢

添加客服微信 歡迎咨詢測試工具和測試服務(wù)

微信客服
問題
反饋
產(chǎn)品
畫冊

掃描二維碼下載澤眾軟件企業(yè)宣傳冊

產(chǎn)品畫冊
返回
頂部

方案咨詢

×
提交信息

電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報(bào)價(jià))。

您的信息已成功提交!

我們的客服人員稍后會(huì)與您聯(lián)系