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

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

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

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

靜態(tài)代碼分析

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

代碼審計(jì)

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

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

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

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

1、注入的原理

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

2、常見(jiàn)的注入

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

3、http頭注入

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

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

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

User-Agent:瀏覽器類型。

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

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

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

Content-Length:表示請(qǐng)求消息正文的長(zhǎng)度。

Cookie:這是最重要的請(qǐng)求頭信息之一。

4、二次注入

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

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

推薦閱讀:

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

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

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

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

比較常用的白盒測(cè)試工具有哪些?

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

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

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

微信客服
問(wèn)題
反饋
產(chǎn)品
畫(huà)冊(cè)

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

產(chǎn)品畫(huà)冊(cè)
返回
頂部

方案咨詢

×
提交信息

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

您的信息已成功提交!

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