移动应用安全中SDL最佳实践


根据2021年的统计报告,全球智能手机用户数为63.78亿,占全球人口总数的80.69%,移动应用安全在企业的安全体系中占据半壁江山,尤其对于移动端产品为主的公司而言目前监管部门已经立法与加强监管力度执行数据保护措施,忽视移动应用上的个人信息数据保护措施将会面临行政处罚,严重时应用可能会面临40天的下架,所以构建安全的移动应用与应用业务或应用算法一样重要,而一种结构化的应用程序安全方法-安全开发生命周期SDL),可用于移动应用软件开发和维护的所有阶段,作用于加强应用安全性和合规性。

 

1、SDL带来的显著效益

① 更高的安全性SDL中,持续监控漏洞可提高应用程序质量并降低业务风险。

② 降低成本。SDL中,对缺陷的早期关注可显著减少检测和修复缺陷所需的工作量。

③ 合规性。SDL鼓励认真对待与安全相关的法律法规。忽略它们可能会导致罚款和处罚,即使没有丢失敏感数据。

 

 

在以下部分,我们来介绍一下移动应用开发阶段的相关SDL建议:

1、需求与规划阶段

此阶段的目的是定义移动应用需求并评估其可行性。这包括制定项目计划、编写项目要求和分配人力资源SDL实践包括:

① SDL发现为项目定义安全性和合规性目标然后选择SDL方法并编写相关SDL活动的详细计划这可确保团队尽早解决安全问题。

② 安全要求为项目准备一份安全要求列表包括技术和法规要求。拥有此列表有助于轻松识别和修复项目中潜在的不合规区域。

③ 安全意识培训培训课程提供基本的安全知识,从基本的威胁意识到有关安全开发的深入信息。安全培训为所有项目参与者建立了安全意识。深入课程向关键项目参与者教授安全设计原则。

采用这些实践可以提高项目规划的成功率,并确保应用程序符合安全标准。此阶段还应投入具备移动应用安全专业知识的人员

2、设计阶段

这个阶段的目的是设计出符合要求的产品。这包括对应用程序结构及其使用场景进行建模,以及选择可以加快开发速度的第三方SDK组件。这个阶段的结果物是设计文件SDL实践包括:

① 威胁建模包括识别可能的攻击场景并在应用程序设计中添加相关对策。建模可及早发现可能的威胁,从而降低相关成本,并为未来的事件响应计划奠定基础。

② 安全设计根据安全要求验证设计文档和后续更新。早期设计审查有助于在实施之前识别暴露于安全风险的功能。

③ 第三方软件跟踪第三方组件中的漏洞会削弱整个系统,因此监控其安全性并在必要时应用补丁非常重要。定期检查第三方软件有助于发现受受损组件威胁的区域并填补空白。

采用这些做法可以在弱点进入应用程序之前识别它们检查合规性可以降低安全风险,并最大限度地减少源自第三方组件的漏洞的可能性。

3. 实施阶段

这个阶段是实际编写移动应用程序的阶段包括编写应用程序代码、调试它以及生成适合测试的稳定版本SDL实践包括:

① 安全编码指南和清单提醒程序员要避免的典型错误,例如存储未加密的密码。执行安全编码原则可以消除许多微不足道的漏洞,并为其他重要任务腾出时间。

② 静态扫描静态应用程序扫描工具审查新编写的代码并发现潜在的弱点,而无需运行应用程序。静态扫描工具的日常使用会在错误进入应用程序构建之前发现错误。

③ 代码审查虽然自动扫描可以节省大量精力,但手动代码审查仍然是构建安全应用程序的必要条件。及时的审查可帮助开发人员在将注意力转移到其他任务之前标记并修复潜在问题。

采用这些做法可以减少安全问题的数量。结合自动扫描和手动审查可提供最佳结果。

4. 测试和错误修复阶段

此阶段的目的是发现和纠正应用程序错误。这包括运行自动和手动测试、识别问题并修复它们SDL 实践包括:

① 动态扫描动态应用程序扫描工具通过在运行时模拟黑客攻击来暴露漏洞。除了发现常规漏洞外,动态扫描还能查明影响安全的配置错误。

② 自动化的模糊测试提高了对使用格式错误输入的攻击的保护

③ 渗透测试邀请第三方安全专家团队来模拟可能的攻击。

采用这些做法进一步减少了安全问题的数量。结合前一阶段的活动,这提供了针对各种已知威胁的良好保护。

5、发布与维护结算阶段

在这个阶段,应用程序上线,许多实例在各种环境中运行 SDL实践包括:

① 环境管理真正的攻击者利用环境配置错误和漏洞。安全监控必须覆盖整个系统,而不仅仅是应用程序。这种监控提高了应用程序的整体安全性。

② 事件响应计划事件响应计划清楚地描述了您的事件团队必须遵循的程序,以解决可能发生的任何安全漏洞。快速执行响应计划对于安全漏洞的分类和修复至关重要。

③ 持续的安全检查安全检查必须定期重复,因为新类型的漏洞正在以稳定的速度被发现。定期检查可保护您的应用程序免受新发现的漏洞的影响。

采用这些做法有助于快速有效地应对新出现的威胁。

6. 应用程序销毁阶段

“生命终结”是软件不再受到其开发人员支持的时间点。存储敏感数据的应用程序可能需要遵守特定的监管规定。SDL包括:

① 数据保留监管单位为某些数据类型定义了保留政策。仔细检查公司的保留政策是否符合法律要求。

② 数据处理在应用程序的生命周期结束时,必须仔细清除其中存储的所有敏感数据。此类数据的示例是加密密钥和个人信息。在生命周期结束时进行适当的数据处理可以使此类信息保密并防止数据泄露。

通过采用这些做法,开发人员可以确保有足够的时间来制定符合政府法规的政策。

 

关于蛮犀科技

蛮犀科技通过十多年的移动互联网安全的技术积累,具备从风险检测、安全加固、数据合规、情报分析,让移动应用信息安全形成一个生态闭环,做到 “事前能预警,事中可防护,事后能追溯”,从根本上保障企业和开发者的利益。