# 03 - 应用程序

# 3.1 安全开发

# 3.1.1 漏洞缓解措施

编译C/C++应用时应开启各种漏洞缓解措施,如基址随机加载,堆栈不可执行,栈保护等。

安全选项 要求
ASLR(地址空间布局随机化) 必须开启
PIE(位置无关可执行程序) 必须开启
NX(堆栈不可执行) 必须开启
CANARY(栈Cookie防溢出) 必须开启

# 3.1.2 调试功能和日志

编译制作正式发行版的应用时,应去除非必要的调试功能,并进行鉴权。应用日志应不包含敏感信息。

# 3.1.3 权限最小化原则

应用需要根据功能需求来申请权限,满足为用户提供执行其工作职责所需的最小权限等级。

# 3.1.4 对外接口

应用非必要不对外提供接口。必须对外提供的接口,应增加权限校验,拒绝未授权者调用接口。

# 3.1.5 防网络抓包

编译制作正式发行版的应用时,应对重要功能进行网络抓包防护。

# 3.1.6 网络端口

  1. 网络端口服务上线前必须通过安全评估;
  2. 监听端口的服务进程不能以系统权限启动;
  3. 不能接受远程输入命令执行;

# 3.1.7 混淆和加固

  1. 对外发布的应用应开启代码混淆;
  2. 重要应用应使用加固保护。

# 3.2 安全管理

# 3.2.1 安全准出

应用发版前需要通过安全部的应用安全和隐私合规扫描,高危漏洞全部修复后才能上线。

# 3.2.2 三方SDK和APP引入

外部引入的三方SDK和APP,需通过应用安全、隐私合规、病毒黄反扫描,无高危风险后才能引入。