考取CWASP CSSD(注册软件安全开发人员)时遇到的一些知识点
前言:
本來(lái)是想考PTE的,貧窮限制了我的學(xué)習(xí)......先簡(jiǎn)單介紹一下CWASP CSSD:
“CWASP CSSP培訓(xùn)認(rèn)證體系”由中國(guó)信息安全測(cè)評(píng)中心和深圳開(kāi)源互聯(lián)網(wǎng)安全技術(shù)有限公司聯(lián)合研發(fā),是國(guó)內(nèi)業(yè)界首創(chuàng)的軟件安全開(kāi)發(fā)人員專業(yè)培訓(xùn)認(rèn)證體系。“CWASP CSSD(注冊(cè)軟件安全開(kāi)發(fā)人員)培訓(xùn)認(rèn)證”是該培訓(xùn)認(rèn)證體系下的重要認(rèn)證之一,旨在提升軟件開(kāi)發(fā)從業(yè)人員有關(guān)“軟件安全開(kāi)發(fā)”的基本意識(shí)和技能,從軟件誕生的源頭減少軟件的安全缺陷與漏洞,提高軟件運(yùn)行的安全性。
在考證的過(guò)程中還是學(xué)到了很多,證書(shū)不能說(shuō)明什么,考證的過(guò)程就是學(xué)習(xí)的過(guò)程,以考代學(xué)也未嘗不可,打鐵還需自身硬。
部分常用知識(shí)點(diǎn)(有點(diǎn)亂,將就看...)
“凈化”是指檢查在程序組件中要傳遞的數(shù)據(jù),尤其是將惡意數(shù)據(jù)和不必要的數(shù)據(jù)清除干凈。
“增加或刪除用戶賬號(hào)”事件需要記錄在日志中。
《安全編碼規(guī)范檢查列表》可用于對(duì)軟件開(kāi)發(fā)團(tuán)隊(duì)在編碼過(guò)程提供安全指導(dǎo)。
ApacheStruts2S2-045(CVE-2017-5638)和 S2-046(CVE-2017-5638)遠(yuǎn)程執(zhí)行漏洞 在 OWASPTop10 中屬于“使用已知含有漏洞的組件”
BSIMM 和 SAMM 都是軟件安全成熟度模型。
Cookie 中有這么一個(gè)值“Set-cookie: domain=.facebook.com”,該值說(shuō)明此 cookie 在 facebook.com 的所有子域名中都有效。
OWASPDependencyCheck 是一個(gè)非常好的第三方組件安全漏洞檢測(cè)工具。
OWASPTop10 的評(píng)估標(biāo)準(zhǔn)中包括哪些元素:a) 攻擊向量 b) 漏洞的普遍性 c) 漏洞的可檢測(cè)性 d) 技術(shù)影響
OWASPTop10 是業(yè)界公認(rèn)的應(yīng)用安全標(biāo)準(zhǔn),描述了 10 類最常見(jiàn)的應(yīng)用軟件安全風(fēng)險(xiǎn)。
Retire.js 可以檢測(cè)出 web 應(yīng)用以及 Nodejs 中使用的 javascript 庫(kù)的漏洞
SAMM 軟件安全成熟度模型針對(duì)的業(yè)務(wù)功能,包括:a) 監(jiān)管(Governace) b) 構(gòu)建(Construction) c) 驗(yàn)證(Verification) d) 部署(Deployment)
S-SDLC 流程中的關(guān)鍵要素包括:a) 培訓(xùn)、政策和組織。 b) 設(shè)計(jì)審核、攻擊面分析和威脅分析。 c) 安全開(kāi)發(fā)、代碼審核、安全測(cè)試、安全加固等
STRIDE 是一種有效的威脅模型。
X-Frame-Options:Deny 這個(gè) http 頭,可以防止點(diǎn)擊劫持(clickjacking)攻擊。
XSS 攻擊可以被攻擊用來(lái)做什么?a) 盜取用戶 Cookie b) 篡改用戶界面 c) 盜用用戶身份
XSS 跨站有什么危害? a) 盜取會(huì)話 cookie b) 修改當(dāng)前網(wǎng)站的內(nèi)容 c) 釣魚(yú)
X-XSS-Protection:1;block 這個(gè) http 頭,在某些情況下可以防止 XSS 攻擊。
不要把文件上傳到可以直接訪問(wèn)的web文件夾中,而是推薦上傳到文件服務(wù)器或者數(shù)據(jù)庫(kù)中去。
常見(jiàn)的密碼策略包括: a) 設(shè)置最小長(zhǎng)度。 b) 包含大小寫(xiě)字母。 c) 包含數(shù)字和特殊字符。
對(duì) CSRF 跨站請(qǐng)求偽造攻擊可以通過(guò)增加令牌環(huán)(token)來(lái)進(jìn)行防范,這個(gè) Token 有什么特點(diǎn)? a) 對(duì)于每個(gè)用戶 Token 唯一 b)Token 不可預(yù)測(cè) c)Token 不能用 GET 發(fā)送
對(duì)于 OWASPTop10 中的注入,假設(shè)下列值:攻擊向量可利用性=1,漏洞的普遍性 =2,漏洞可檢測(cè)性=2,漏洞的影響=1,則其風(fēng)險(xiǎn)=(1+2+2)/3*1=1.67。
攻擊者發(fā)現(xiàn)一個(gè)鏈接是:http://www.bank.com/account?id=1001,其中 1001 是他 自己的賬號(hào) ID,他把 1001 改成 1009 并且可以查看到 1009 的賬號(hào)信息,這種威脅 叫做“不安全的直接對(duì)象引用”。
攻擊者可以操縱下列應(yīng)用程序的引用,來(lái)訪問(wèn)他本沒(méi)有權(quán)限訪問(wèn)的資源: a) 文件路徑 b)URL 或表單參數(shù) c) 數(shù)據(jù)庫(kù)主鍵
關(guān)閉目錄列表功能。
OWASPTop10 由 Open WebApplicationSecurity Project (OWASP)安全組織編制、 發(fā)布和維護(hù)。
OWASPTop10 的適用對(duì)象:適用于軟件編碼人員、軟件測(cè)試人員、軟件安全人員等與軟件開(kāi)發(fā)相關(guān)的各類人員。
OWASPTop10 中包含的 10 大類,是指 10 大軟件安全風(fēng)險(xiǎn)
STRIDE 建模方法:S 指仿冒(Spoofing) , T 指篡改(Tampering) ,R 指抵賴(Repudiation),I 指信 息泄露(InformationDisclosure),D 指拒絕服務(wù)(DenialofService),E 指權(quán)限提升 (ElevationofPrivilege)。
仿冒(Spoofing),常用的技術(shù)方法是用戶名/密碼、IPSec、SSH 等。
拒絕服務(wù)(DenialofService) ,常用的技術(shù)方法是高可用性設(shè)計(jì)、訪問(wèn)控制、過(guò)濾等。
權(quán)限提升(ElevationofPrivilege),常用的技術(shù)方法是輸入驗(yàn)證、基于角色的訪 問(wèn)控制。
企業(yè)級(jí)軟件中經(jīng)常根據(jù)用戶的工作角色來(lái)設(shè)定權(quán)限。
權(quán)限的控制與設(shè)置跟企業(yè)的組織架構(gòu)有關(guān)。
敏感數(shù)據(jù)傳輸時(shí)應(yīng)使用 Post 而不是 Get。
定期移除服務(wù)器端存放的敏感數(shù)據(jù)文件。
檢測(cè)異常的數(shù)據(jù)訪問(wèn)。
JSP、ASPX 和 PHP 均存在注入攻擊風(fēng)險(xiǎn)
威脅建模步驟的邏輯順序:繪制數(shù)據(jù)流圖、威脅分析、緩解威脅、審核威脅模型。
計(jì)算 OWASPTop10 風(fēng)險(xiǎn)可以根據(jù)公式:風(fēng)險(xiǎn) = 可能性 * 影響來(lái)進(jìn)行計(jì)算。
將敏感信息如密碼寫(xiě)在源代碼里的危害: a) 攻擊者可以反編譯從而獲取密碼 b) 用戶無(wú)法修改密碼 c) 不符合軟件安全開(kāi)發(fā)最佳實(shí)踐
跨站腳本簡(jiǎn)單的說(shuō)就是用戶輸入的內(nèi)容(如:javascript)在瀏覽器上被執(zhí)行。
如果可能,盡量不要使用“+”來(lái)拼接 SQL 語(yǔ)句,以防止發(fā)生 SQL 注入。
如果使用第三方組件,在生產(chǎn)環(huán)境中,一定要修改默認(rèn)的用戶名和密碼。
如果一個(gè)驗(yàn)證既需要密碼,又需要令牌,則這個(gè)驗(yàn)證可以稱為“雙因子驗(yàn)證”。
軟件安全成熟度模型包括: a)BSIMM 模型 b)SAMM 模型。
軟件安全開(kāi)發(fā)流程的階段主要包括:設(shè)計(jì)、實(shí)施、驗(yàn)證、發(fā)布與響應(yīng)。
上傳文件應(yīng)該檢查文件的大小,一般在系統(tǒng)中可以預(yù)設(shè)一個(gè)指定值(如10M),超過(guò)此預(yù)設(shè)值可以提示用戶上傳文件太大,這樣可以防止惡意用戶上傳若干個(gè)大文件(如2G)而引起系統(tǒng)拒絕服務(wù)。
48:生產(chǎn)環(huán)境中,所有使用的操作系統(tǒng),數(shù)據(jù)庫(kù)以及應(yīng)用服務(wù)器都要進(jìn)行加固。
使用哈希,推薦使用 SHA256 或更高級(jí)算法,而不是使用 MD5。
使用哈希算法時(shí),推薦加鹽。
授權(quán)驗(yàn)證失敗最好記錄到日志中去,便于以后進(jìn)行分析。
授予最低權(quán)限,以限制用戶只能訪問(wèn)為完成任務(wù)所需要的功能、數(shù)據(jù)和系統(tǒng)信息
輸出編碼是防止 XSS 跨站攻擊的一種有效的方式。
數(shù)據(jù)流圖可用于執(zhí)行威脅模型的威脅分析。
數(shù)字簽名既可以保證數(shù)據(jù)的完整性,又可以保證數(shù)據(jù)的不可抵賴性。
通常而言,“SQL 注入”是用戶輸入的內(nèi)容被當(dāng)作 SQL 語(yǔ)句執(zhí)行而引發(fā)的威脅。
威脅分析對(duì)后續(xù)的安全設(shè)計(jì)、安全開(kāi)發(fā)、安全測(cè)試和安全部署具有指導(dǎo)下意義。
為了保證傳輸安全,我們不要使用 SSL1.0、SSL2.0、SSL3.0、TLS1.0 等協(xié)議,而是 推薦使用 TLS1.2。
系統(tǒng)設(shè)置權(quán)限的時(shí)候應(yīng)該遵循最小特權(quán)原則。
系統(tǒng)應(yīng)該使用安全的隨機(jī)算法,如使用 java.security.SecureRandom 類而不是 java.util.Random 類。
防止 CSRF 跨站請(qǐng)求偽造攻擊?a) 增加一個(gè) form 隱藏字段表示隨機(jī)令牌 b) 在 Ajax 請(qǐng)求頭中增加一個(gè)隨機(jī)令牌 c) 對(duì)重要的操作進(jìn)行二次身份驗(yàn)證,讓用戶重新輸入密碼
權(quán)限控制正確的實(shí)現(xiàn)方式? a) 永遠(yuǎn)在服務(wù)器端進(jìn)行服務(wù)控制,而不是客戶端。 b) 權(quán)限檢測(cè)應(yīng)該應(yīng)用到所有的層。c) 基于角色的訪問(wèn)(RBAC。
防止不安全的直接對(duì)象引用? a) 盡量不要暴露內(nèi)部的直接對(duì)象應(yīng)用 b) 使用難以預(yù)測(cè)的 Key,如 GUID c) 使用哈希令牌增加完整性校驗(yàn)
防止 XSS 跨站腳本攻擊:執(zhí)行輸入驗(yàn)證、輸出驗(yàn)證和內(nèi)容安全策略(CSP)
cookie 中的哪個(gè)屬性可以保證 cookie 的值在網(wǎng)絡(luò)中安全傳輸? Secure
哪些信息應(yīng)該被記錄在日志中? a) 增加或刪除的用戶賬號(hào)。 b) 登錄和登出的成功或失敗記錄。 c) 失敗的數(shù)據(jù)庫(kù)連接嘗試記錄。
哪一種方式能比較小的影響系統(tǒng)功能的前提下比較好的防止暴力破解?登錄失敗一定的次數(shù)(如3次),提示用戶輸入 CAPTCHA。
哪種方式可以保護(hù)會(huì)話? a)Login 成功以后,馬上使會(huì)話失效。 b)Logout 成功以后,馬上使會(huì)話失效。 c) 有需要驗(yàn)證的地方,必須有 Logout。
下面那種方式適合做為“SQL 注入”的防范措施? a) 參數(shù)化查詢。 b) 存儲(chǔ)過(guò)程。 c) 輸入轉(zhuǎn)義。
成功的 SQL 注入會(huì)引起哪些后果? a) 從數(shù)據(jù)庫(kù)中讀取敏感數(shù)據(jù)。 b) 修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。 c) 執(zhí)行數(shù)據(jù)庫(kù)中的一些 administration 操作。
哪些文檔可作為軟件開(kāi)發(fā)團(tuán)隊(duì)的軟件安全開(kāi)發(fā)參考? a)《OWASPSecureCodingPractice》 b) 《OWASPCheatSheet》 c) 《安全編碼規(guī)范檢查列表》
在 S-SDLC 流程中,設(shè)計(jì)審核的內(nèi)容包括: a) 輸入驗(yàn)證、授權(quán)和身份認(rèn)證。 b) 配置管理、會(huì)話管理和例外管理。 c) 敏感數(shù)據(jù)、加密、日志和審計(jì)。
在軟件安全開(kāi)發(fā)流程(S-SDLC)中的發(fā)布和響應(yīng)階段,我們需要進(jìn)行安全加固、補(bǔ)丁管理、漏洞管理以及安全事件響應(yīng)。
在軟件安全開(kāi)發(fā)流程(S-SDLC)中的設(shè)計(jì)階段,我們需要進(jìn)行威脅分析以及攻擊面分析。
在軟件安全開(kāi)發(fā)流程(S-SDLC)中的驗(yàn)證階段,我們需要進(jìn)行動(dòng)態(tài)工具掃描以及滲透測(cè)試。
在軟件安全開(kāi)發(fā)流程的風(fēng)險(xiǎn)評(píng)估時(shí),我們需要考慮哪些因素? a) 應(yīng)用程序是否處理個(gè)人信息? b) 應(yīng)用程序是否處理商業(yè)敏感數(shù)據(jù)? c) 應(yīng)用程序是否為提供某項(xiàng)服務(wù)起到關(guān)鍵作用。
在應(yīng)用程序連接數(shù)據(jù)庫(kù)的時(shí)候,不推薦使用 admin 賬戶,而是創(chuàng)建一個(gè)新用戶,并給它最少而必要的權(quán)限。
總結(jié)
以上是生活随笔為你收集整理的考取CWASP CSSD(注册软件安全开发人员)时遇到的一些知识点的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 利用matlab实现SAR 图像线性拉伸
- 下一篇: CodeLite配置