【安全系类之设计】应用安全相关
最近在做代碼安全加固相關的工作,在這里順便做一個總結
1、系統安全設計
1.1 數據流模型建模
數據流圖簡介:軟件功能模型-數據流圖 - 簡書
繪圖工具(億圖蠻好用它):億圖圖示設計軟件 - 億圖圖示
1.2 STRIDE威脅建模
威脅建模是一個非常有用的工具,它的核心是“像攻擊者一樣思考”。威脅建模可以在產品設計階段、架構評審階段或者產品運行時開展,強迫我們站在攻擊者的角度去評估產品的安全性,分析產品中每個組件是否可能被篡改、仿冒,是否可能會造成信息泄露、拒絕攻擊。威脅建模的作用更偏向于確保產品架構、功能設計的安全,無法保證編碼的安全,但是輸出的威脅建模報告中包含了全面的安全需求,這些安全需求不僅包括大的方案設計,如要認證、鑒權、審計,也可以包括安全細節的實現,比如具體的認證方式、密碼使用哪種安全算法存儲,使用什么方法生成安全隨機數等。所以,威脅建模雖不能保證編碼的安全,但可以指導研發人員編寫出安全的代碼,同時也可以輔助滲透測試人員開展安全測試。
STRIDE是微軟開發的用于威脅建模的方法和工具。
STRIDE威脅建模的總體流程:
?
?六類威脅:
STRIDE是從攻擊者的角度,把威脅劃分成6個類別,分別是Spooling(仿冒)、Tampering(篡改)、Repudiation(抵賴)、InformationDisclosure(信息泄露)、Dos(拒絕服務)和Elevation of privilege (權限提升)。
什么劃分這6類,這與信息安全三要素和信息安全基本的三個屬性相關。
| 信息安全三要素 | 信息安全三屬性 |
| 保密性 | 認證 |
| 完整性 | 鑒權 |
| 可用性 | 審計 |
表:六類威脅與信息安全三要素、三屬性的對應關系
| 威脅 | 安全屬性 | 定義 | 舉例 |
| 仿冒(S) | 認證 | 冒充人或物 | 冒充其他用戶賬號 |
| 篡改(T) | 完整性 | 修改數據或代碼 | 修改訂單信息 |
| 抵賴(R) | 審計 | 不承認做過某行為 | 不承認修改行為 |
| 信息泄露(I) | 保密性 | 信息被泄露或竊取 | 用戶信息被泄露 |
| 拒絕服務(D) | 可用性 | 消耗資源、服務可不用 | DDOS導致網站不可用 |
| 權限提升(E) | 授權 | 未經授權獲取、提升權限 | 普通用戶提升到管理員 |
隨著全球對隱私保護重視程度的加大,隱私安全也成了產品的一個重要威脅,因此STRIDE的6個威脅也添加了一項隱私(Privacy),也就變成了ASTRIDE,A代表Advanced。
具體參考此文:STRIDE威脅建模_dl71181的博客-CSDN博客
2、應用安全
1、web與系統漏洞掃描:
漏洞掃描是指基于漏洞數據庫,通過掃描等手段對指定的遠程或者本地計算機系統的安全脆弱性進行檢測,發現可利用漏洞的一種安全檢測(滲透攻擊)行為。
?常見web安全漏洞總結以及防范措施:
https://blog.csdn.net/chenlijian/article/details/115006677?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control
?常用進行滲透測試以及漏洞掃描掃描的工具:
一、Web漏洞掃描-AppScan
IBM Security AppScan是一個適合安全專家的Web應用程序和Web服務滲透測試解決方案。
國外商業漏掃產品中,少有的能支持中文的漏掃,運行于Windows平臺;
界面清晰、配置簡單豐富的中文和產品文檔,詳細的漏洞說明和修復建議;
支持豐富的掃描報告,包括安全性、行業標準、合規一次性報告。
缺點:掃描速度一般; 在國內漏洞方面(cms)的掃描能力不如國內安全產品; 占用內存大
優點:登錄掃描; 準確率最高; 漏洞規則庫最全面(在通用漏洞方面(SQL注入 XSS等)功能強大)
二、fortify 靜態代碼掃描工具
fottify全名叫:Fortify SCA ,是HP的產品 ,是一個靜態的、白盒的軟件源代碼安全測試工具。它通過內置的五大主要分析引擎:數據流、語義、結構、控制流、配置流等對應用軟件的源代碼進行靜態的分析,分析的過程中與它特有的軟件安全漏洞規則集進行全面地匹配、查找,從而將源代碼中存在的安全漏洞掃描出來,并給予整理報告。
三、源代碼靜態分析與安全測試工具(Coverity)
Coverity靜態分析軟件是最新一代的源代碼靜態分析工具,技術源自于斯坦福大學,能夠快速檢測并定位源代碼中可能導致產品崩潰、未知行為、安全缺口或者災難性故障的軟件缺陷。Coverity包含900多種質量和安全檢測規則,曾協助找到多個0Day漏洞,包括Struts2的遠程注入S032,S029,Roller遠程攻擊,心臟出血漏洞等問題。
Coverity誤報率極低,因此研發團隊非常愿意接受Coverity的分析結果,缺陷的修復率很高。Coverity具有缺陷分析種類多、分析精度高和誤報率低的特點。
四、Web漏洞掃描-awvs
漏洞掃描速度較快,準確率較高,漏洞規則庫較為全面。漏洞驗證可查看請求響應代碼,但無中文界面。報表功能完整。有多重漏洞的驗證工具。
五:主機掃描-nmap
主要用于端口掃描和主機發現,不能實現web掃描和系統層掃描。對滲透測試起幫助作用。
3、隱私保護
個人隱私保護分類及保護原則:
1、基本定義
隱私(Privacy):指無論在空間、心理或者信息層面上,其他個人、集團或組織不得接近的一種條件或狀態。隱私是一種當事人不愿他人知道的個人信息,當事人不愿他人干涉或他人不便干涉的個人私事,以及當事人不愿他人侵入或他人不便侵入的個人領域或個人空間,如私人生活、身體和道德的完整性、不得披露不相關和令人尷尬的事實等。 個人數據(PersonalData):個人數據也稱為個人可識別信息(PersonallyIdentifiable Information),指直接通過該數據或者結合該數據與其他的信息,可以識別出自然人的信息。包括姓名、社會保障號、電話號碼和電子郵件地址等[2][8]。 敏感個人數據(SensitivePersonal Data):敏感個人數據是個人數據的一個重要子集,指的是涉及數據主體的最私密領域的信息或者一旦泄露可能會給數據主體造成重大不利影響的數據。歐盟等國家和地區法律定義的敏感個人數據包括種族、政治觀點、宗教和哲學信仰、工會成員資格、健康和性生活狀況等[8]。根據業界最佳實踐,敏感個人數據還包括可與自然人身份相關聯的銀行卡號、身份證號、護照號、口令等[15][16]。敏感個人數據的處理需要更多更嚴格的保護措施。 數據控制者(DataController):指單獨或者與他人共同確定數據處理目的和方式的法人或其他實體[1]。數據控制者對個人數據的處理具有控制權,并且承擔個人數據保護的主要法律責任。 數據處理者(DataProcessor):指按照數據控制者要求進行個人數據處理的法人或其他實體(數據控制者的員工不屬于數據處理者)。數據處理者必須按照數據控制者的要求對個人數據進行充分的保護。 2、?隱私保護原則 基于歐盟數據保護指令等法律法規要求,美國聯邦貿易委員會以及經濟合作發展組織發布的隱私保護指導原則,以及ISO 29100、ISO 29101等國際標準,總結出了xx公司隱私保護的八條基本原則,用于保護用戶的個人數據和隱私。 合法性原則:數據處理要有合法基礎,如數據主體的同意、履行與數據主體之間的合同或執行數據主體所要求的合同所必須、公共利益等。 透明原則:需充分告知數據主體處理的數據種類、處理目的、處理方式、存留期限、是否轉移至第三方等。 數據主體參與原則:數據主體有權訪問和修改其個人數據,應當為數據主體提供訪問和修改其個人數據的適當方式或渠道。 目的限制性原則:僅能為了具體、明確、合法的目的處理個人數據,不能進行與這些目的不一致的處理。 最小化原則:處理的個人數據必須是實現特定目的所相關和必需的,不得超出必要的限度處理個人數據。 準確性原則:為實現數據處理的目的,應當保持個人數據的準確性、完整性并及時更新。 安全性原則:在個人數據的整個生命周期中,都必須有足夠的安全機制,確保個人數據的完整性、保密性和可用性。防止未經授權的訪問、銷毀、使用、修改和不當披露。可追溯原則:可追溯是指數據相關方(例如數據控制者)有責任采取具體、實際的措施保護個人數據,確保隱私保護可追溯。3、隱私設計基本規則
| ?? 序號 ?? | 規則、建議 | 設備供應者 | 數據處理者 | 數據控制者 | 來源 |
| 1 | 規則:產品或服務必須在客戶資料或界面中提供隱私聲明 | ● | ● | ● | 法律、業界最佳實踐 |
| 2 | 規則:對于數據控制者,收集個人數據必須要獲得數據主體的授權 | ○ | ○ | ● | 法律 |
| 3 | 規則:個人數據收集范圍、使用目的不得超出隱私聲明 | ● | ● | ● | 法律 |
| 4 | 規則:產品必須在設計文檔中列出所收集的個人數據列表,標明個人數據的收集目的及保護措施 | ● | ● | ● | |
| 5 | 規則:在B/S系統中,如果提交的數據中包含個人數據,則禁止使用Get方式提交個人數據 | ● | ● | ● | 業界最佳實踐 |
| 6 | 建議:對于數據控制者,如在數據主體系統上運行的應用軟件需要連接到互聯網,數據控制者須在連接前告知數據主體,并提供獲得數據主體同意的機制 | ○ | ○ | ○ | 業界最佳實踐 |
| 7 | 規則:對于數據控制者和設備供應者,在從數據主體系統中傳出包含個人數據的錯誤報告之前,必須提供機制告知數據主體,并獲得其同意 | ● | ○ | ● | 法律、業界最佳實踐 |
| 8 | 規則:對于數據控制者,若需要將個人數據用于營銷、市場調查,數據控制者必須提供機制提前獲取數據主體同意并提供隨時撤銷同意的機制 | ○ | ○ | ● | 法律 |
| 9 | 規則:對于數據控制者和設備供應者,除了法律允許的情況以外,在設置或讀取在數據主體系統上的Cookie前(如用于營銷或廣告),應提供獲取數據主體同意及撤銷的機制 | ● | ○ | ● | 法律 |
| 10 | 規則:產品須對本地存儲的個人數據提供適當的安全保護機制,如認證、授權、加密、日志等 | ● | ● | ● | 法律、標準 |
| 11 | 規則:對于數據控制者,提供數據主體錄入個人數據功能時,必須提供查詢和更新相應個人數據的機制 | ○ | ○ | ● | 法律 |
| 12 | 建議:產品應對銀行卡號的查詢操作記錄日志 | ○ | ○ | ○ | 標準、業界最佳實踐 |
| 13 | 規則:對于數據控制者,將數據主體個人數據提供給第三方前,必須獲得數據主體的授權 | ○ | ○ | ● | 法律 |
| 14 | 建議:對于數據處理者,出于定位問題目的,如需將個人數據拿出客戶網絡,應提供對其中包含的個人數據進行過濾或匿名化處理的機制或指導 | ○ | ○ | / | 法律 |
| 15 | 規則:對于數據控制者和處理者,必須提供機制或指導來刪除或匿名化超過存留期的個人數據 | ○ | ● | ● | 法律、業界最佳實踐 |
| 16 | 規則:對于數據控制者,數據主體撤銷同意之后,產品必須禁止繼續處理其相應個人數據 | ○ | ○ | ● | 法律、業界最佳實踐 |
| 17 | 規則:對于數據控制者和處理者,如在設備維修、銷毀或云資源回收的場景下,必須提供安全刪除的機制或指導,設備供應者不強制要求 | ○ | ● | ● | 標準、業界最佳實踐 |
國內的可以參考華為云的隱私保護白皮書:百度安全驗證
備注:常見的網絡安全掃描和攻擊工具:
1、Nmap (網絡映射器):用于掃描端口和地圖網絡 。
2、Metasploit(滲透測試軟件,免費與付費): 漏洞利用工具。
3、John The Ripper:?密碼破解工具。
4、OWASP Zed?:Web漏洞掃描器。
5、Wireshark?:Web漏洞掃描器。
6、Aircrack-ng:密碼破解工具。
7、Maltego (免費與付費):? 數字取證。
8、AWVS? :WEB漏洞掃描。
9、burpsite?:抓包工具。
10、sqlmap?:?sql注入工具。
總結
以上是生活随笔為你收集整理的【安全系类之设计】应用安全相关的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PostgreSQL 9.6.0 手册
- 下一篇: 操作系统系列「一」OPERATING S