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