应用安全设计流程全解析
1. 代码复用与成分分析
在应用开发中,多数应用会大量整合现有代码来运行。开发者复用现有代码的方式主要有以下几种:
- 直接整合 :直接将现有源代码纳入应用。例如,开发者在互联网上找到与自己任务相似的示例代码,通过复制粘贴将其集成到源文件中;也可能参考同行网络(如Stack Overflow)或大型语言AI模型(如ChatGPT、GitHub的Copilot、Google的Bard等)获取代码并融入工作成果。
- 静态链接 :开发者可将打包库作为应用的一部分。对于Python等解释型语言,可使用提供所需功能的打包模块;对于编译型语言,则可将Java Archive(JAR)等静态库整合到应用中。
- 动态链接 :开发者可利用动态链接库、共享对象、COM或其他可在运行时与应用动态链接的打包模块。
- Web服务 :开发者可采用外部服务,如REST APIs(Web服务),以整合组织外部托管的额外功能。
无论采用何种方式,成分分析都旨在检查应用的支持库、对象、依赖项和其他工件,以获取应用运行所需的底层软件信息。通过了解构成应用的模块,可洞察最终应用的安全性。进行成分分析的方法有多种,包括SCA产品、软件物料清单(SBOM)、手动方法、组件清单等。
2. 架构文档编写
基于前期工作,可对以下内容进行文档编写:
- 章程或目标声明 :用一到两句话简要描述工作,从商业角度关注所提供的价值。
- <