浅析App安全架构之前端安全防护

2022-11-25 03:33:36 浏览数 (3)

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

Gartner 对安全架构的定义是:安全架构是计划和设计组织的、概念的、逻辑的、物理的组件的规程和相关过程,这些组件以一致的方式进行交互,并与业务需求相适应,以达到和维护一种安全相关风险可被管理的状态。

因此,安全架构的概念非常宽泛,包括安全控制措施、安全服务(例如身份验证、访问控制等)和安全产品(例如防火墙、入侵检测等)。

网站的安全防护是非常复杂繁琐的工作,是伴随着Web技术的改变而逐渐转移,从初始的服务端安全,如缓冲区溢出、 CGI解析缺陷、纯Web层面的SQL注入等,到客户端的安全,如 XSS跨站脚本、CSRF跨站请求伪造等。

此后,HTML5又大行其道,互联网上的应用越来越复杂,Web前端效果也逐步丰富和提高,但其中却隐藏了更多的安全隐患。

其中Web前端的安全是众多安全防护工作中的一个重要分支,所以文章聚焦在安全架构中的前端安全防护范畴。

Web前端应用中所存在的问题

就现在的技术而言,现代化的Web前端设计工具可以极 大减少Web前端设计的工程量,但是却无法解决在Web前端 应用中所存在的问题。

在Web前端的应用中,不但会遇到界面元素需求方面的问题,还会有无法选择合适的界面控件问 题。

此外,还会遇到表单问题、模拟窗口的阴影以及按钮的状态等问题。

界面设计问题

在Web前端应用过程中会产生界面需求,需要在Web前端的开发与应用过程中使用界面元素。

界面元素的合理运用不但有利于网站的美观,而且与用户的实用性息息相关。界面元素使用过多会导致用户在使用网站的某一功能时,不得不耗费大量时间去了解如何使用网站中的众多界面元素。

表单问题

在Web前端的应用过程中还容易出现表单应用问题。表单是网页中常用的数据信息采集工具。

表单大致分为3个部分:表单标签、表单域以及表单按钮。

表单标签主要包含数据提交的方法、表单的功能等; 表单域包含文本框、密码框以及单选框、复选框、下拉选择框等,用于提交数据信息及文本文件等; 表单按钮一般有3种,分别是提交、注册、取消,用于实现表单的提交、注册及取消输入功能等

界面控件选择问题

界面元素的使用会影响用户的上网体验,同时,缺乏合适的界面控件也会对用户的使用造成一定程度的困扰。

界面控件是指在窗体上所放置的一系列可视化图形元件,包括按钮、文本框以及滚动条等,用户通过点击或滑动等交互性动作,使得后台进行事件响应从而实现相关功能

端侧安全的主流解决方案

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

APP 运行时保护

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

Web 安全

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

APP 代码保护

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

APP 第三方代码安全

移动应用开发过程中,出于功能需求等原因,开发人员不可避免会集成一些其他第三方提供的代码,如 SDK。这些第三方代码未经测试和评估就直接嵌入到应用中直接使用,容易出现不可预料的后果。

  1. 一方面是第三方代码的安全性未经测试,可能存在安全漏洞被攻击者利用,从而威胁整个应用的正常使用。
  2. 另一方面,第三方代码额外实现了冗余功能或者申请多余的特权,可能造成用户隐私信息泄露,或者一系列恶意行为。

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

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

其特点主要体现在三个方面:

沙箱内小程序之间的隔离 沙箱对运行其中的小程序代码,隔离其对宿主环境的资源访问。 沙箱隔离了宿主对于沙箱中运行的小程序所产生的数据。

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

APP 端业务安全

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

Restful API 安全

Restful API 以 URI 方式对外提供数据服务或功能服务。外部用户多数情况下是程序或系统。

提供的数据服务或功能服务多数情况下,是非公开的,即需要对 HTTP 请求来源和身份做识别与认证,再经过授权决策(访问控制)后,提供相应的数据或执行功能。

结语

Web前端设计要想更好地得到应用,就必须寻找适合自身发展的技术,在减轻工作量的同时,能够给用户更好的上网体验,安全防护工作当然也必须到位!!

0 人点赞