近年来,随着互联网、物联网、移动设备、5G通讯等技术的齐头发展,人类的生活和工作越来越离不开软件和互联网,正如人类社会文明发展到一定程度以后,会需要法律等社会规范来保护一样,线上环境也是一样道理。

Gartner 对安全架构的定义是:安全架构是计划和设计组织的、概念的、逻辑的、物理的组件的规程和相关过程,这些组件以一致的方式进行交互,并与业务需求相适应,以达到和维护一种安全相关风险可被管理的状态。因此,安全架构的概念非常宽泛,包括安全控制措施、安全服务(例如身份验证、访问控制等)和安全产品(例如防火墙、入侵检测等)。

文章篇幅有限,故内容聚焦在安全架构中的前端安全防护范畴。

安全设计原则

当今安全设计经典理论中,最为经典、被引用最多的是由 MIT 的 Saltzer 教授在 1975 年首先提出的 8 大安全设计基本原则,被安全业界奉为 “经典安全原则”。经过业界多年的发展和总结,在原有 8 大经典设计原则的基础上,进一步完善和延伸,例如 “纵深防御”、“不要轻信”、“保护薄弱环节”、“提升隐私” 原则等。

前端安全问题

近年来有8大问题尤其引起关注:

  1. 跨站脚本攻击(Cross-Site Scripting)

  2. 使用iframe的风险

  3. 点击劫持

  4. 错误的内容推断

  5. 不安全的第三方依赖包

  6. HTTPS中间人攻击

  7. 本地存储数据泄露

  8. CDN劫持/污染

如此多的、影响重大的前端安全问题,直接把软件安全防范推上了风口浪尖,安全人员面临着挑战也倍数级增长。

端侧安全的主流解决方案

基于端侧可能得安全问题,市场上有以下6大主流解决方案:

1、APP 代码保护。由于开源技术的进步,攻击者很容易就可以获得应用的反编译代码(基本是应用源代码)。针对此攻击,提高逆向分析的门槛,可以进行代码混淆、dex 加壳、so 加壳等方式对代码进行保护。

2、APP 运行时保护。对移动端应用的逆向分析还有动态调试。通过动态调试还可以伪造或篡改请求 / 响应包,从而攻击服务器端。此种攻击可以采用市场上的一些加固工具软件对APP 进行加固保护,防止恶意破解、反编译、二次打包等。

3、APP 第三方代码安全。移动应用开发过程中,出于功能需求等原因,开发人员不可避免会集成一些其他第三方提供的代码,如 SDK。这些第三方代码未经测试和评估就直接嵌入到应用中直接使用,容易出现不可预料的后果。一方面是第三方代码的安全性未经测试,可能存在安全漏洞被攻击者利用,从而威胁整个应用的正常使用。另一方面,第三方代码额外实现了冗余功能或者申请多余的特权,可能造成用户隐私信息泄露,或者一系列恶意行为。

对于此类威胁,安全设计方案是:

1)App中大部分是web或者小程序类轻应用,可以采用市面上的安全沙箱类技术(如:FinClip),对应用进行统一的上下架管理。其特点主要体现在三个方面:

  • 沙箱内小程序之间的隔离

  • 沙箱对运行其中的小程序代码,隔离其对宿主环境的资源访问。

  • 沙箱隔离了宿主对于沙箱中运行的小程序所产生的数据。

2)集成第三方代码时,开发人员应尽可能了解第三方代码的功能,以及尽可能保证第三方代码的安全性。

4、APP 端业务安全。为了防止 APP 用户恶意注册及薅羊毛等恶意行为,可以在 APP 中加入设备指纹,进行数据埋点等,将 APP 数据接入业务风控平台,进行业务反欺诈。

5、Web 安全。对于 Web 安全,关注常见的 OWASP TOP 10 漏洞,如注入、身份认证、敏感信息泄露、安全配置错误等。常见的防御措施有认证、授权、加密、审计、输入验证等。

6、Restful API 安全。Restful API 以 URI 方式对外提供数据服务或功能服务。外部用户多数情况下是程序或系统。提供的数据服务或功能服务多数情况下,是非公开的,即需要对 HTTP 请求来源和身份做识别与认证,再经过授权决策(访问控制)后,提供相应的数据或执行功能。

随着技术的进步和发展,相信还会有更多的技术解决方案冒出。如果您有更好的技术方案,欢迎在文章评论区留言。

App安全架构之前端安全防护相关推荐

  1. 安全架构中的前端安全防护研究

    国家互联网应急中心发布的被篡改网站数据让很多人触目惊心,近年来各种Web网站攻击事件频频发生,网站SQL注入,网页被篡改.信息失窃.甚至被利用成传播木马的载体Web安全形势日益严峻,越来越受到人们的关 ...

  2. 移动前端安全防护主流方案

    近年来,随着互联网.物联网.移动设备.5G通讯等技术的齐头发展,人类的生活和工作越来越离不开软件和互联网,正如人类社会文明发展到一定程度以后,会需要法律等社会规范来保护一样,线上环境也是一样道理. G ...

  3. Dcloud课程1 APP的架构有哪些

    Dcloud课程1 APP的架构有哪些 一.总结 一句话总结:B/S架构和C/S构架 1.APP的分类? 主流的四大APP系统: 1.苹果ios系统版本,开发语言是Objective-C: 2.微软W ...

  4. vue click事件_Vue.js---实现前后端分离架构中前端页面搭建(二)

    [Vue.js实现前后端分离架构中前端页面搭建] 九.Vue的事件处理 Vue的事件都是使用 v-on:事件类型 进行绑定.也可以使用@事件类型进行操作.其中事件类型和之前学习jQuery中事件名称是 ...

  5. vue 新建的页面如何访问_Vue.js—实现前后端分离架构中前端页面搭建(四)(完)...

    [Vue.js实现前后端分离架构中前端页面搭建] 二十.实现服务端登录业务 前提:已经有单机版Eureka,端口8761.启动开Eureka 1. 新建父项目 新建backend_parent. 为了 ...

  6. 天弘基金移动App客户端架构优化之路

    天弘基金移动App客户端架构优化之路 随着移动互联网时代的到来,移动技术也随之飞速发展.如今,APP已成为绝大多数互联网企业用来获取用户的核心渠道.与此同时,伴随着业务量的增长,愈来愈多的APP也在不 ...

  7. 死磕前端架构之整洁架构在前端的应用实践【稀缺资源】

    在2202年的今天,前端应用走向了 MV* 的架构方案,有了一层很重的 View.随着业务场景的越来越专业化和复杂化,大型 SPA 应用的流行,前端承担的职责也越来越多.即使在精心设计过的架构,也很容 ...

  8. 新东方APP技术架构演进, C端技术经验分享

    新东方APP技术架构演进, C端技术经验分享 作者:张建鑫, 曾任IBM高级软件架构师, 滴滴高级技术专家, 现任新东方集团高级技术总监 古代东西方的思想家都产生过一个终极的追问,世界的本元到底是什么 ...

  9. Android App的架构设计:从VM、MVC、MVP到MVVM

    随着Android应用开发规模的扩大,客户端业务逻辑也越来越复杂,已然不是简单的数据展示了.如同后端开发遇到瓶颈时采用的组件拆分思想,客户端也需要进行架构设计,拆分视图和数据,解除模块之间的耦合,提高 ...

最新文章

  1. 驭龙HIDS安装及测试
  2. 根据title 关闭cmd 窗口_2种Win7关闭休眠功能方法
  3. Kotlin on Android 开发环境介绍
  4. SAP推出iPhone手机端企业智能管理应用
  5. 用户太多太杂,搞不懂怎么办?“分门别类”将拯救你
  6. docker desktop ubuntu镜像_「Docker」 - 镜像仓库
  7. java10个基础错误_我们处理了10亿个Java记录的错误-这是导致97%的错误的原因
  8. IDC Q1中国云服务报告:公有云IaaS市场增速持续高于全球
  9. js:如何文艺地理解闭包
  10. Centerface:开源实用的边缘设备无锚人脸检测与对齐算法
  11. ubuntu系统下IDEA中新建class时报错Unable to parse template “Class“的解决方法
  12. getBoundingClientRect()兼容性处理
  13. 在 Linux 系统上源码安装 GTK+ 2.0
  14. 线性反馈移位寄存器 LFSR
  15. 怎样才能成为挑战年薪30W的运维工程师?
  16. 2G,3G,4G,5G的不同之处
  17. 记2017第八届蓝桥杯决赛(国赛)—北京三日游
  18. SAP MM ME57 把PR转成PO
  19. PDF转换成excel的绿色版软件推荐
  20. iPad、iPad Pro反复自动重启怎么办?

热门文章

  1. OpenFire+Spark构建实时协作平台
  2. osg画线_在OpenSceneGraph中绘制OpenCascade的曲面
  3. 数智时代的云竞争,不进则退!
  4. MOVEIT PYTHON应用:编程实现速度和加速度设置
  5. 漫画 | 如何让产品经理不改需求?
  6. 【MZ】CF 356A - 356D #207 (Div. 1)
  7. 转转闲鱼交易猫源码搭建教程
  8. 32款网页设计和网页开发人员常用的Google chrome浏览器扩展程序
  9. 5分钟玩转Axure之中继器(表格篇)
  10. 泰山OFFICE技术讲座:行距,五号、小四时还正常,四号时大幅增加,这是为什么?