應用程式安全

應用程式安全（簡稱AppSec ）包括向開發團隊引入安全軟體開發生命週期的所有任務。最終目標是改進安全實踐，並通過它來發現、修復並防止應用程式中的安全問題。它涵蓋了從需求分析、設計、實施、驗證和維護的整個應用程序生命週期。

 方法 
不同的方法會在軟體生命週期的不同階段裡有效地發現潛伏在應用程式中不同的安全漏洞子集合。它們各自代表在時間、精力、成本和發現的漏洞等因素下的不同權衡。

 設計審查。在編寫程式碼之前，可以檢查應用程式的架構與設計是否存在安全性問題。此階段常用的技術是創建威脅模型。
 白盒安全審查，或程式碼審查。這是透過一位安全工程師以手動方式深度查看原始程式碼，以發現安全漏洞。透過對應用程式的理解，可以發現應用程式特有的漏洞。
 黑盒安全稽核。透過使用工具來測試應用程式的安全漏洞，不需要原始程式碼。
 自動化工具。許多安全工具可以透過被包含在開發或測試環境中來實現自動化測試。其中的範例是被整合到程式碼編輯器或 CI/CD 平台中的自動化 DAST/SAST （動態應用程式安全測試/靜態應用程式安全測試）工具。
 協作的漏洞平台。透過由許多網站和軟體開發人員設立的應用程式安全解決方案，個人可以對網站及軟體提出問題回報，並獲得對回報錯誤的認可和補償。

 网络应用安全 
Web 应用程序安全是信息安全的一个分支，专门处理网站、 Web 应用程序和Web 服务的安全性。在高层次上，Web 应用程序安全性借鉴了应用程序安全性原则，但专门将它们应用于Internet和Web系统。  

Web 应用程序安全工具是用于处理 HTTP 流量的专用工具，例如Web 应用程序防火墙。

 安全威胁 
開放 Web 應用程序安全項目 ( OWASP ) 提供免費和開放的資源。它由一個名為 OWASP 基金會的非營利組織領導。 2017 年 OWASP 前 10 名安全問題的結果來自於最近的研究，該研究是從 40 多個合作夥伴組織所收集的綜合數據。該數據揭示了超過 50,000 個應用程序中的大約 230 萬個漏洞。 根據 OWASP Top 10 - 2021，十大最關鍵的 Web 應用程序安全風險包括： 

 访问控制损坏
 加密失败
 代碼注入
 不安全的设计
 安全配置错误
 易受攻击和过时的组件
 识别和认证失败
 软件和数据完整性故障
 安全记录和监控失败*
 服务器端请求伪造 (SSRF)*

 安全测试工具 
安全测试技术搜索应用程序中的漏洞或安全漏洞。这些漏洞使应用程序容易被利用。理想情况下，安全测试在整个软件开发生命周期（SDLC）中实施，以便及时彻底地解决漏洞。

有多种自动化工具可用于识别应用程序中的漏洞。用于识别应用程序漏洞的常用工具类别包括：

 靜態應用程式安全測試（SAST）在应用程序开发过程中分析安全漏洞的源代码。与 DAST 相比，SAST 甚至可以在应用程序处于可执行状态之前使用。由于 SAST 可以访问完整的源代码，因此它是一种白盒方法。这可以产生更详细的结果，但可能会导致许多需要手动验证的误报。
 動態應用程式安全測試（DAST，通常称为漏洞扫描器）通过抓取和分析网站自动检测漏洞。这种方法具有高度可扩展性、易于集成和快速。 DAST 工具非常适合处理低级攻击，例如注入缺陷，但不太适合检测高级缺陷，例如逻辑或业务逻辑缺陷。  Fuzzing 工具通常用于输入测试。
 交互式应用程序安全测试（IAST）使用软件工具从内部评估应用程序。这结合了 SAST 和 DAST 方法的优势，并提供对代码、HTTP 流量、库信息、后端连接和配置信息的访问。 一些 IAST 产品要求应用程序受到攻击，而其他产品可以在正常的质量保证测试期间使用。   ]
运行时应用程序自我保护增强了现有应用程序，以在应用程序运行时内提供入侵检测和预防。
依赖性扫描器（也称为软件组合分析）尝试检测具有已知漏洞的软件组件的使用情况。这些工具既可以按需工作，例如在源代码构建过程中，也可以定期工作。
抽象是使更复杂的事物变得不那么复杂的想法。

 安全标准和法规 

 CERT安全编码
 ISO/IEC 27034-1:2011信息技术——安全技术——应用安全——第 1 部分：概述和概念
 ISO/IEC TR 24772:2013信息技术——编程语言——通过语言选择和使用避免编程语言漏洞的指南

 OWASP ASVS：Web 应用程序安全验证标准

 參見 
 通用缺陷列表（CWE）
 數據安全
 移動安全
 OWASP
 微软安全开发周期

 參考文獻 

Category:数据安全
Category:移動安全