1 风险分析
智能手机主要存在以下攻击方式:
网络中间人攻击
恶意软件攻击
恶意执行文件攻击
近场攻击
用户恶意调试
按安全事件的影响范围可以为以下风险级别:
级别 | 影响范围 | 解决方案 | 优先级 |
高风险 | 对企业和用户造成灾难性的影响,业务将无法进行。 | 防止越狱或其他用户root权限被获取,防止安装包的可执行文件被篡改。 | 高于用户体验 |
中风险 | 损害企业和用户的经济利益,影响企业的盈利水平,对业务产生不良影响。 | 利用安卓操作系统既有安全策略进行保护。 | 高于用户体验 |
低风险 | 对企业和用户的影响有限,企业的利润水平可能受到影响。 | 利用安卓操作系统既有安全策略进行保护。 | 低于用户体验 |
2 安全保护策略
如上图所示,APP应用安全主要从以下四个层次进行保护:
1)设备安全:保护设备不被非法使用的技术。设备锁(pin、指纹识别、人脸识别、手势密码)
2)数据安全:保护设备上的数据不被获取的技术,甚至设备被偷走。(加密,等其他策略)
3)网络安全:保护数据在网络传输过程中的安全,包括vpn,ssl/tls传输加密,WEP/WPA/WAP2无线加密、传输认证。
4)应用安全:保护操作系统和运行中的应用程序的技术,沙箱,程序完整性检查。
3 安全原则
权限最小化 | 对用户进行权限分级化管理。在创建一个新的用户时,默认的权限应当是最小的。 |
深度防御 | 对于需要保护的数据和应用,应部署冗余安全措施,即当防御失效的时候,应当有其他防御可使用。在保证可用性和成本的情况下使用深度防御。 例如:对于XSS漏洞,不能依赖采用anti-CSRF token防御,以防后续anti-CSRF token失效时XSS漏洞爆发。要求XSS漏洞采用特殊字符的转义输出做过滤,也可以结合anti-CSRF token做深度的防御体系 |
保持简单 | 复杂的设计更容易出现问题,尽量使功能的实现简单化。 |
故障安全化 | 当业务出现故障警告时,应考虑安全显示,并自动关闭有问题的程序。 |
保护最薄弱的环节 | 识别出应用中最易受攻击的数据和页面,并实施保护。 |
默认拒绝 | 使用白名单对访问、输入操作进行默认拒绝。尽量不使用黑名单。 |
数据和隐私 | 识别并保护用户的数据和隐私资料。 |
尽量多的独立单元 | 功能模块尽量分层、分离,使攻击面最小化。 |
总体调节 | 应用的访问授权和安全策略保持一致,保持每次访问都进行安全检查。 |
公开设计 | 不假设应用中存在隐藏的秘密,比如后台、数据库不会被外界发现。 |