原創(chuàng)|行業(yè)資訊|編輯:鄭恭琳|2020-12-29 11:51:35.500|閱讀 283 次
概述:使用正確的工具和正確的規(guī)則正確地設(shè)置靜態(tài)分析,將幫助您保護(hù)軟件安全,證明自己在為審核員做正確的事情,并表明您在遵循“設(shè)計(jì)安全”和“設(shè)計(jì)隱私”的原則。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
使用正確的工具和正確的規(guī)則正確地設(shè)置靜態(tài)分析,將幫助您保護(hù)軟件安全,證明自己在為審核員做正確的事情,并表明您在遵循“設(shè)計(jì)安全”和“設(shè)計(jì)隱私”的原則。
GDPR既龐大又令人恐懼。如果您不清楚GDPR到底是什么還是對您來說很重要,請看一下我的上一篇文章以獲取更多的概述。簡而言之,這意味著您必須讓用戶知道您要收集的數(shù)據(jù),如何使用它們,盡力保護(hù)它,在發(fā)生違規(guī)時(shí)保持透明,并在他們要求時(shí)完全刪除任何用戶數(shù)據(jù)。哦,是的,如果您不遵守規(guī)定,將面臨巨額罰款。
從理論上講,GDPR僅適用于歐盟公民,但是如今,大多數(shù)商業(yè)活動在全球范圍內(nèi)都需要盡力遵守全球法規(guī)。這樣,您就可以在以安全、私密的方式對待所有用戶,還是擁有針對歐盟和非歐盟客戶的完全分段的數(shù)據(jù)流之間進(jìn)行選擇(例如,更昂貴的主張)。在此文中,我將說明如何利用靜態(tài)代碼分析來幫助改善數(shù)據(jù)保護(hù)和隱私。
考慮GDPR,數(shù)據(jù)保護(hù)和其他相關(guān)數(shù)據(jù)法規(guī)(例如PCI-DSS(支付卡行業(yè)數(shù)據(jù)安全標(biāo)準(zhǔn))或HIPAA(健康保險(xiǎn)可移植性和責(zé)任法案))時(shí),立即想到的是需要增加測試,動態(tài)分析以及滲透測試。盡管這些測試技術(shù)是必要且重要的,但它們卻減少了發(fā)布不安全軟件的機(jī)會,而沒有真正使軟件更安全或首先確保了隱私。但是,除了質(zhì)量或性能外,安全性和隱私性都不能“測試”到軟件中。因此,GDPR需要稱為“設(shè)計(jì)安全”和“設(shè)計(jì)隱私”(PbD)的概念,這意味著首先要更好地構(gòu)建軟件。
“設(shè)計(jì)私密性方法的特征在于采取主動而不是被動的措施。它可以預(yù)見并防止隱私入侵事件在發(fā)生之前發(fā)生。PbD不會等待隱私風(fēng)險(xiǎn)的出現(xiàn),也不會提供解決隱私違規(guī)行為的補(bǔ)救措施——目的是防止此類事件的發(fā)生。簡而言之,“按設(shè)計(jì)進(jìn)行隱私保護(hù)”是事前的事,而不是事后的事。”
A. Cavoukian《設(shè)計(jì)隱私——七項(xiàng)基本原則》,2011年1月。
我提出這兩個(gè)概念是因?yàn)樗鼈兪钦5膽?yīng)用程序安全性活動(防火墻、滲透測試、紅隊(duì)、DAST等)之后的下一步。“根據(jù)設(shè)計(jì)”部分也可以理解為“內(nèi)置”。這是一個(gè)想法,而不是戳您的應(yīng)用程序并確定漏洞所在,而是首先構(gòu)建一個(gè)沒有漏洞的應(yīng)用程序……這是設(shè)計(jì)使然。例如,SQL注入(SQLi)仍然是最常見的漏洞利用之一。
有許多工具可以嘗試強(qiáng)制通過UI進(jìn)行注入(滲透測試),或者在不運(yùn)行程序的情況下模擬程序中的數(shù)據(jù)流,以查看污染的數(shù)據(jù)是否可以使其進(jìn)入數(shù)據(jù)庫查詢(流分析)。“按設(shè)計(jì)”方法意味著在獲取輸入時(shí),將任何輸入(來自數(shù)據(jù)庫,用戶或任何地方)包裝到驗(yàn)證功能內(nèi)部。這減少了數(shù)據(jù)可以繞過零的可能路徑。您仍然需要運(yùn)行滲透測試以確保正確構(gòu)建了軟件,但不同之處在于,如果pentest成功,則您不僅可以解決發(fā)現(xiàn)的一個(gè)弱點(diǎn)。取而代之的是,您回頭找出為什么成功進(jìn)行過測試并構(gòu)建您的軟件,使它不會成功。
如果pentest在您的軟件中發(fā)現(xiàn)許多安全漏洞,那么您并不是在“按設(shè)計(jì)”構(gòu)建安全軟件。與“設(shè)計(jì)隱私”類似,我們會監(jiān)視共享對象/共享對象/共享對象,并且除非另有說明,否則我們假定所有數(shù)據(jù)都很重要。同樣,通常程序員會假設(shè)數(shù)據(jù)ISN并不重要,除非特別標(biāo)記。您可以在有關(guān)是否以純格式存儲數(shù)據(jù)或是否對數(shù)據(jù)進(jìn)行加密的決策中看到這一點(diǎn)。加密所有內(nèi)容是一種通過設(shè)計(jì)來保護(hù)隱私的方法。眾多的其中之一,但這是基本概念。如果您對所有內(nèi)容都進(jìn)行了加密,則不必?fù)?dān)心沒有對本應(yīng)擁有的內(nèi)容進(jìn)行加密。
靜態(tài)分析的作用并不是要告訴我們我們的軟件容易受到攻擊(這是測試的工作)。靜態(tài)分析的作用是幫助確保軟件最初是強(qiáng)大的……通過設(shè)計(jì)。流分析作為安全測試技術(shù)已在過去10年中流行,但它仍然是一種測試軟件的方法,而不是一種強(qiáng)化軟件,內(nèi)置安全性或“通過設(shè)計(jì)”進(jìn)行安全性的方法。
如果正確使用靜態(tài)分析,可以將其定位為真正的預(yù)防技術(shù)。除了流程分析安全規(guī)則(即查找受污染的數(shù)據(jù))外,我們還啟用了確保以安全方式構(gòu)建軟件的規(guī)則。考慮到以上兩種情況,在設(shè)計(jì)時(shí)要進(jìn)行隱私保護(hù)時(shí),我可以使用靜態(tài)分析規(guī)則來標(biāo)記何時(shí)存儲數(shù)據(jù)而不先進(jìn)行加密,或者何時(shí)使用可破解的舊的不當(dāng)加密方法而不是強(qiáng)加密,或者何時(shí)用戶嘗試訪問不適當(dāng)?shù)臄?shù)據(jù)以獲得其預(yù)期的權(quán)限。
這是對示例規(guī)則的簡要說明,該規(guī)則在調(diào)用敏感方法時(shí)強(qiáng)制執(zhí)行日志記錄。此靜態(tài)分析規(guī)則不會發(fā)現(xiàn)錯(cuò)誤,但可以幫助您制作可記錄正在發(fā)生的事情的軟件,從而在生產(chǎn)中更加安全。此規(guī)則非常適合PCI-DSS和GDPR。
確保記錄了所有敏感方法調(diào)用[SECURITY.BV.ENFL]
描述:此規(guī)則標(biāo)識不記錄敏感方法調(diào)用的代碼。如果使用某些敏感方法調(diào)用(例如,來自“javax.security.auth.login.LoginContext”的“login”和“logout”)未記錄,則會報(bào)告錯(cuò)誤。
設(shè)計(jì)上的另一個(gè)隱私示例是此規(guī)則,該規(guī)則有助于防止您的軟件確實(shí)發(fā)生錯(cuò)誤時(shí)無意中泄露個(gè)人或重要信息:
不要將異常消息傳遞到輸出中,以防止應(yīng)用程序泄漏敏感信息[SECURITY.ESD.PEO]
描述:該規(guī)則標(biāo)識將異常消息傳遞到輸出的代碼。當(dāng)catch子句調(diào)用輸出方法并且在catch子句中捕獲的異常出現(xiàn)在參數(shù)列表中或用作調(diào)用對象時(shí),將報(bào)告錯(cuò)誤。
該規(guī)則涵蓋OWASP Top 10,CWE,PCI-DSS和GDPR——這意味著無論您為何嘗試進(jìn)行安全保護(hù),這都是一個(gè)好主意。
由于GDPR不是編碼標(biāo)準(zhǔn),因此沒有簡單的靜態(tài)分析配置可以覆蓋它。通常,最好的起點(diǎn)是找到與您當(dāng)前在測試中發(fā)現(xiàn)的問題(例如XSS或SQLi問題)直接相關(guān)的靜態(tài)分析規(guī)則。此類問題通常具有一些靜態(tài)分析規(guī)則,這些規(guī)則可以充當(dāng)漏洞發(fā)現(xiàn)者,并且可以在對這些問題進(jìn)行測試之前對其進(jìn)行早期檢測。更重要的是,在這種情況下,在輸入驗(yàn)證周圍還將有關(guān)聯(lián)的規(guī)則,這些規(guī)則可幫助您確保SQLi完全不會像我上面提到的那樣發(fā)生。
很難通過存儲從用戶輸入中追蹤數(shù)據(jù)。編程使驗(yàn)證始終發(fā)生很容易。編程使加密始終發(fā)生很容易,而且易于測試。為什么要這么難?
找到并打開測試期間發(fā)現(xiàn)問題的規(guī)則后,您將需要走得更遠(yuǎn)。我建議您從已經(jīng)涵蓋數(shù)據(jù)隱私和保護(hù)的其他編碼標(biāo)準(zhǔn)中借鑒一些想法。OWASP,HIPAA和PCI-DSS是一些不錯(cuò)的選擇。如果您在靜態(tài)分析工具中啟用了與這些標(biāo)準(zhǔn)相關(guān)的任何規(guī)則,那么GDPR將會做得很好。實(shí)際上,如果您已經(jīng)符合PCI-DSS的標(biāo)準(zhǔn),那么您至少會發(fā)現(xiàn)GDPR的這一部分相對較容易準(zhǔn)備。
如果您已經(jīng)有其他安全要求,例如CWE或CERT,則可以確保遵循這些要求,并通過在與數(shù)據(jù)隱私,數(shù)據(jù)相關(guān)的那些標(biāo)準(zhǔn)中找到任何項(xiàng)來擴(kuò)展配置,以涵蓋必要的特定GDPR數(shù)據(jù)保護(hù)。保護(hù)和加密。
Parasoft可以通過幾種方式幫助您確保代碼的安全性和私密性。首先,我們所有的靜態(tài)分析引擎都具有針對OWASP,CWE,CERT,PCI-DSS,HIPPA等的配置。您可以打開一組完全適合您的組織的安全規(guī)則,然后自動執(zhí)行它們。
此外,將Parasoft DTP與靜態(tài)分析集成時(shí),您將具有完整的審核功能,可以自動記錄在哪些代碼和什么時(shí)間運(yùn)行哪些規(guī)則的過程。您可以根據(jù)選擇的規(guī)則證明自己正在進(jìn)行測試,甚至可以通過設(shè)計(jì)確保安全。
Parasoft DTP還具有一些非常特殊的報(bào)告,如果您選擇將安全工作基于CWE,Parasoft CWE儀表板會為您提供出色的SAST報(bào)告,例如按嚴(yán)重性、位置、類型、歷史記錄等問題。進(jìn)一步并在CWE中實(shí)施了技術(shù)影響數(shù)據(jù)。技術(shù)影響力(TI)是在Miter進(jìn)行的研究,是Common Weakness Risk Analysis Framework(CWRAF)的一部分,可幫助您根據(jù)SAST結(jié)果可能導(dǎo)致的問題對其進(jìn)行分類。因此,TI告訴您緩沖區(qū)溢出可能導(dǎo)致拒絕服務(wù),而不是一條消息指出您存在緩沖區(qū)溢出(有些人可能不會將其識別為安全問題)。
每個(gè)CWE發(fā)現(xiàn)都會告訴您可能發(fā)生什么類型的問題,并且有特殊的圖形可以幫助您根據(jù)對您最重要的問題區(qū)域(而不僅僅是嚴(yán)重性級別)導(dǎo)航靜態(tài)分析問題。這項(xiàng)突破性的技術(shù)可幫助您解決經(jīng)常導(dǎo)致大量漏洞的情況,尤其是在使用舊代碼庫的情況下。首先關(guān)注最讓您感到恐懼的問題。
當(dāng)然,當(dāng)我今天專注于靜態(tài)分析作為通過設(shè)計(jì)進(jìn)行安全性的一種方式時(shí),請不要忘記Parasoft還具有滲透測試工具,API測試和服務(wù)虛擬化,所有這些都是工具的重要組成部分。全面的安全軟件開發(fā)策略。
GDPR看起來很可怕,而且確實(shí)可以,但是使用正確的工具和正確的規(guī)則正確設(shè)置靜態(tài)分析將幫助您保護(hù)軟件的安全,證明您為審計(jì)員所做的正確的事情以及表明您正在遵循設(shè)計(jì)安全和設(shè)計(jì)隱私的原則。這是滲透測試本身無法做到的。額外的好處是,您會發(fā)現(xiàn),從“按設(shè)計(jì)”的角度考慮安全性比嘗試測試在質(zhì)量檢查和發(fā)布之間保護(hù)軟件安全的方法要有效得多。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn