美文网首页
01 APP安全基础

01 APP安全基础

作者: 武漂的小丙 | 来源:发表于2019-10-25 10:44 被阅读0次

1 APP常见漏洞与对策

1.1 APP安全趋势总结

  • 软件安全演变为信息安全
  • 信息安全离大众越来越近
  • 信息安全越来越受重视
  • 信息安全会影响大众的生活

1.2 OWASP Mobile TOP 10

1.2.1 平台使用不当

  • 糟糕的Web服务强化
    • 逻辑缺陷
    • 弱认证
    • 弱会话管理或没有会话管理
    • 会话固定
  • 不安全的Web服务器配置
    • 默认内容
    • 管理界面
  • Web服务和支持移动的网站上的注入
  • 身份验证缺陷

1.2.2 不安全的数据存储

敏感数据未加密存储、本地文件未加密、Webview本地明文存储cookie等问题

  • 常见类型
    • SQL数据库
    • 日志文件
    • XML数据存储和清单文件
    • Cookie
  • 影响:
    • 身份盗用
    • 侵犯隐私
    • 欺诈
    • 声誉受损
    • 物质损失

1.2.3 不安全通信

使用了不安全的通信协议,传输未加密的数据

  • 常见类型
    • 缺少证书检查
      • 自定义SSL x509 TrustManager
  • 影响
    • 隐私泄露
    • 身份盗用
    • 网络钓鱼
    • 中间人攻击
    • 欺诈
    • 声誉受损

1.2.4 不安全的身份验证

身份验证功能不完善,对用户的请求不进行验证

  • 常见类型:
    • 隐藏服务请求
  • 影响
    • 信息窃取
    • 未经授权的数据访问
    • 无法识别执行操作的用户请求

1.2.5 弱加密

加密容易被破解

  • 常见类型:
    • 内置代码加密
    • 硬编码密钥
    • 不安全或过时的算法(RC2/MD4/MD5/SHA1)

1.2.6 不安全的授权

授权不加的技术影响在性质上与认证不良的技术影响相似

  • 常见类型:
    • 隐藏端点:
    • 用户角色或权限传输:
  • 影响
    • 声誉损失
    • 欺诈
    • 信息盗用

1.2.7 客户端代码质量

可以将不受信任的输入传递给移动代码中的方法调用的实体。这些类型的问题本身不一定是安全问题,但是会导致安全漏洞,被人利用漏洞,成为安全问题

目前规范代码协作和代码安全扫描。

  • 常见类型:
    • 不正确的资源关闭
    • 信任用户输入
    • 变量使用问题
    • 运算符使用问题
    • 函数问题
    • 条件语句问题
    • 循环语句问题
    • 数值类型转换问题

1.2.8 代码篡改

对代码和资源的保护不足,应用被修改和重新打包后可以正常运行。

  • 常见类型:
    • 修改代码
    • 修改资源
    • 修改API
  • 影响:
    • 未经授权的新功能
    • 身份盗用
    • 欺诈

1.2.9 逆向

对代码或资源的保护不足,应用可以被反编译出易读的代码或伪代码

  • 常见类型:
    • 保留的符号表
    • 反编译
  • 影响:
    • 显示有关后端服务器的信息
    • 显示加密常量和密码
    • 窃取知识产权
    • 对后端系统进行攻击
    • 修改代码并执行获取所需的信息
    • 知识产权盗窃

1.2.10 无关的功能

存在了不该存在的代码,且这些代码中包含的的内容或实现的功能存在敏感信息。

  • 常见类型:
    • 开发人员可能会在混合应用程序中意外将密码作为注释包含在内
    • 测试期间禁用双因素认证
    • 遗留的测试组件
  • 影响:
    • 暴露后端系统的工作方式
    • 未经授权的访问

1.3 对策与方案

1.3.1 十大安全编码(事前)

  • 验证输入
  • 安全策略的架构与设计
  • 默认拒绝
  • 筛选发送到其他系统的数据
  • 使用有效的质量保证技术
  • 注意编译器警告
  • 保持简洁
  • 坚持最小特权原则
  • 深度防御练习
  • 采用安全的编码标准

1.3.2 开发者对策

  • 安全设计(事前)
  • 安全编码(事中)
    • 模块化
    • 封装性
    • 信息隐藏
    • 限制防御性编程
  • 代码扫描和测试(事后)
    • 功能测试
    • 渗透测试
    • APP安全监测
    • 代码扫描

2 APP漏洞检测与应对

  • 本地文件存储
  • 安全通信
  • 加密
  • 组件安全
  • webview组件安全

2.1 本地文件存储

  • 基本概念:在程序中如果使用了SharedPreference或者SQLiteDatabase,要查看 SharedPreference或SQLiteDatabase是否设置了安全权限,否则可能会导致敏感信息泄露
  • 漏洞危害:
    • 数据丢失
    • 提取程序额敏感信息
    • 业务影响很大程度上取决于被盗信息的性质
  • 解决方法:
    • 禁止全局读写
    • 敏感信息加密存储
    • 敏感数据加密存储的同时可以对本地数据库文件也进行加密,
      • 开源库:SQLCipher
      • 收费版:SQLite Encryption Extension;

2.2 安全通信

  • 基本概念:特征是存在两个设备而且它们之间会传递某些数据
  • 漏洞危害:
    • 敏感信息泄露
    • 中间人攻击
  • 解决方法:
    • 真正实现TrustManager
    • 禁止使用AllowAllHostnameVerifier和 ALLOWALLHOSTNAMEVERIFIER实例化,应该使用 STRICTHOSTNAME_VERIFIER严格校验。
    • 禁止使用SSLCertificateSocketFactory;->getInsecure()函数禁用 所有SSL安全校验
    • 禁止使用proceed()函数忽略证书错误,应该抛给系统进行安 全警告

2.3 组件安全

  • 基本概念:
    • 最小化原则,减少程序权限申请
    • 防止非法调用:自定义权限,设置调用方白名单
    • 私有化:内部使用的类、变量和接口,防止外部非法调用
  • 漏洞危害:
    • 网络钓鱼,盗取各类用户账户
    • 绕过本地认证
    • 本地拒绝服务

2.4 Web组件

  • 漏洞危害:

    • UXSS漏洞攻击
    • 远程命令执行攻击
    • File域同源策略绕过攻击
  • 解决方法:

    • 禁止使用AddJavaScriptInterface方法
    • 设置WebView建议关闭file协议
    mWebView.setAllowFileAccess(false)setAllowFileAccessFromFile 
    URLs(false),setAllowUniversalAccessFromFileURLs(false) 
    
    • 移除危险方法
    removeJavascriptInterface("searchBoxJavaBridge_")
    removeJavascriptInterface("accessibility")
    removeJavascriptInterface("accessibilityTraversal") 
    
    • 使用handler.cancel()

2.5 敏感信息泄露

  • 基本概念:
    • 敏感信息:财务数据、医疗数据和个人可标识信息数据
    • 通过窃取或修改未加密的数据来实施诈骗或其他犯罪行为
    • 未加密的敏感数据容易遭到破坏
    • 可能泄露的数据:传输过程中的数据、存储的数据以及交互数据
  • 漏洞与危害:
    • 错误响应暴露敏感信息
  • 要求:
    • 传输敏感数据做脱敏加密处理
    • catch中避免打印堆栈信息,使用友好的错误提示信息

2.6 日志安全

  • 基本概念:
    • 禁止将敏感信息打印到客户端日志中
    • 包括应用程序本身和应用程序调用的第三方库的程序

2.7 其他常见问题【流未关闭的问题】

  • 漏洞与危害:
    • 流使用未正常关闭,不能释放资源,导致资源枯竭攻击
    • 未关闭会占用资源,导致其他程序访问异常,也可能导致资源过度占用内存溢出等情况

相关文章

  • 01 APP安全基础

    1 APP常见漏洞与对策 1.1 APP安全趋势总结 软件安全演变为信息安全 信息安全离大众越来越近 信息安全越来...

  • 目录 - Xamarin.Forms

    Xamarin.Froms 第01局:App创建和发布 Xamarin.Froms 第02局:App基础知识 Xa...

  • 关于安全性的知识

    HTTPS的中那些加密算法HTTPS 互联网世界的安全基础RSA算法原理(一)APP 缓存数据线程安全问题探讨

  • 01_前端安全基础

    1.html 2.CSS 同一属性通过css设置 3.Javascript javascript可以和html、a...

  • 【必备】Linux系统安全优化系列

    运维学习交流群-点我加群:598972270 网站安全基础配置 1 站点目录权限 /app/blog 2 上传之后...

  • 对 iOS app 进行安全加固

    对 iOS app 进行安全加固 对 iOS app 进行安全加固

  • Hybrid APP - 混合式开发

    Hybrid APP基础篇(一)->什么是Hybrid App Hybrid APP基础篇(二)->Native、...

  • iOS APP 如何做才安全

    iOS APP 如何做才安全 iOS APP 如何做才安全

  • app安全

    http://m.blog.csdn.net/u013409903/article/details/76686155

  • App安全

    移动端App安全主要涉及客户端本身数据安全,客户端到服务端网络传输的安全,客户端本身安全又包括代码安全和数据存储安...

网友评论

      本文标题:01 APP安全基础

      本文链接:https://www.haomeiwen.com/subject/nsrdyctx.html