NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

腾讯防水墙团队:浅谈业务安全前端对抗

  • 2019-04-18
  • 本文字数:2788 字

    阅读完需:约 9 分钟

腾讯防水墙团队:浅谈业务安全前端对抗

随着互联网的发达,各种 Web 端的应用功能越来越多,架构设计也变得越来越复杂。为了抢占流量,所以应用会满足使用者各种各样的需求。但是随着应用功能越来越多的同时,随之而来的就是各种网络安全的问题。如何保护自家产品不被黑客攻击?用户信息不被黑客获取?作为前端开发行业的我们也逃不开这个问题。所以今天我们就简单聊一聊 Web 前端安全以及如何防范。



“安全”是个很大的话题,各种安全问题的类型也是种类繁多。如果我们把安全问题按照所发生的区域来进行分类的话,那么所有发生在后端服务器、应用、服务当中的安全问题就是“后端安全问题”,所有发生在浏览器、单页面应用、Web 页面当中的安全问题则算是“前端安全问题”。当我们下面在谈论“前端安全问题”的时候,我们说的是发生在浏览器、前端应用当中,或者通常由前端开发工程师来对其进行修复的安全问题。


国内很多互联网公司都有自己的安全团队,特别是像腾讯这样的大厂来说,每天面对以亿计算的用户数据,更需要一个强大而精密的技术团队来保证自家的应用安全、稳定的运行。腾讯有一支专门对抗黑产的神秘队伍,叫“腾讯防水墙”。为什么叫“防水墙”?因为这样一听,就知道和“防火墙”是两兄弟啊,而且他们打的就是各种流量水军。


拿腾讯防水墙的日常来看,这支神秘队伍每天在 5000+企业和业务上和黑产分子过招,日均常规风险判断 500 亿+次,识别风险占比高达 30%,平均每 10 次请求就有 3 次为风险请求。现在,腾讯防水墙不但在保护腾讯 3000 多个业务,还为京东 618、双 11 大促保驾护航;为永辉、蒙牛、快手、B 站等提供注册和营销保护。


在今年的 GMTC 全球大前端技术大会上,我们邀请到了腾讯防水墙团队的前端负责人刘忠正老师,来谈谈从代码保护的角度出发,业务安全前端对抗应该如何进行。下面是 InfoQ 对于刘老师做的一个简单的采访:



InfoQ:刘老师您好,请您先简单介绍一下您自己和您目前从事的工作?


刘忠正:首先感谢 GMTC 组委会愿意引入前端安全领域相关的话题,让我有机会给大家分享业务安全前端相关的内容。我是 2015 年毕业的,毕业后效力于阿里巴巴安全部,而后从阿里离职去 51 信用卡管家做过一段时间的前端架构,2017 年加入腾讯,在腾讯防水墙团队负责业务安全的前端。研究如何保护前端数据,增加前端代码逆向的难度,以及对恶意的执行环境进行检测,最终形成一个立体化的业务安全防御体系。


InfoQ:可否简单的介绍一下腾讯防水墙团队,它对于腾讯各业务线有着什么样的作用?


刘忠正:防水墙团队来自腾讯 TEG 安全平台部,团队积累了十余年的业务安全数据和风控经验,在金融、营销、帐号、内容等场景为腾讯各个业务提供业务安全基础能力,保障微信、QQ、腾讯视频、微众银行等产品的业务安全。


InfoQ:从业务安全角度出发,前端安全主要会面临哪些问题?又有什么样的技术手段进行对抗呢?


刘忠正:众所周知通用前端会面临诸如 XSS、CSRF 这样的安全风险,这种安全问题通常危害很大,需要研发同学有一些安全意识去防范。当然很多流程上的缺陷也会带来业务安全问题,但这不属于前端需要重点关注的领域。在业务安全前端领域,爬虫、脚本批量操作才是我们面临最大的问题,我们需要去识别当前操作是正常人还是机器行为。常规的方式是用图形验证码,也就是做图灵测试,但在机器学习盛行的大背景下,图形验证码简直不堪一击,现阶段主流的方案是通过收集用户行为和环境信息构建出多维模型对用户进行精准识别,具体到前端则是采集各种模型需要的数据,并通过加密、混淆、虚拟机等方式保护前端代码不被逆向或篡改。


InfoQ:前端代码保护有哪些方式?(可简单描述技术原理和达到的效果)


刘忠正:首先需要给大家一个客观的认识,类似 Uglify 的代码压缩并不是很好的代码保护手段,因此普遍认为代码压缩不属于代码保护的一部分,代码压缩只是一种代码优化。前端代码保护大致有两个流派,一个是以语法树变换为基础的混淆保护,一个是以构建私有执行环境为思路的虚拟机保护,谷歌则属于后者。代码混淆的效果因混淆器的负责程度而不同,基础级别的混淆器混淆出来的代码也很容易被逆向,而虚拟机保护的抗逆向效果好,其原理是在 JavaScript 的执行环境之上再设计构建一个虚拟机,所有原有业务逻辑的 JavaScript 代码均转换为该虚拟机可识别的字节码,复杂度较高效果好。


InfoQ:对于一般公司来讲,前端安全是个老生常谈的话题,很多情况下只有等出现问题才动手去解决,对于这样的情况你有什么“防范于未然”的建议吗?


刘忠正:前端安全确实是老生常谈的话题,其实很多时候出了问题再挽救往往就晚了,不管是敏感数据被盗还是代金券被薅,一旦薅完,损失就已经无法挽回,未雨绸缪非常重要。安全从业人员有个普遍的共识,就是不出安全问题往往很难去描述自己的工作价值,但出了问题安全人员肯定要背一部分锅,吃力不讨好。那么对于一般公司来说,我个人有两个方面的建议:


  • 不断提升研发人员的安全意识

  • 使用现代前端框架


并不是这么做就不会出问题,但出问题的概率会小一些,每个研发人员都多一点安全意识,很多漏洞就可以避免了。


InfoQ:在您看来,前端安全领域未来会是一个怎么样的发展趋势?


刘忠正:我认为前端安全领域未来的趋势很有可能会是浏览器帮我们做越来越的事,最终安全问题均交给浏览器来解决。从历史趋势看,安全领域的门槛一定是越来越低的,对于从业人员是如此,对于攻击者也是如此。


传统前端安全现阶段已经慢慢形成了一些通用的防御方案,一方面,W3C 制定了 CSP 标准用于提供更通用的 XSS 防御手段,另一方面,现代前端框架 React 等天生就具备一定的防御 XSS 能力,通过标准+框架+意识的提升,传统前端安全问题将越来越少。


而业务安全前端解决的最根本问题是人与机器的问题,那么为何不能由浏览器提供一个统一的生物认证接口,让浏览器告诉站点操作者是人还是机器,比如指纹、FaceID,这类生物特征都是很难被伪造的,浏览器提供统一的接口进行认真,这对于恶意用户来说几乎是降维打击。


那么最终业务安全的问题可能就回归到流程的问题了,业务逻辑是否存在被绕过的漏洞,前端不再那么棘手。


通过刘老师的介绍,我们简单的了解了一下前端安全的重要性和它对于业务的意义,在 GMTC 全球大前端技术大会上刘老师将会带来《从代码保护出发详谈业务安全前端对抗》的详细技术演讲,下面是演讲提纲:


  1. 业务安全对抗背景

  2. (1) 业务安全背景

  3. (2)恶意分类

  4. (3)图像对抗的脆弱性

  5. 前端解决方案

  6. (1)前端数据保护

  7. (2)前端代码保护

  8. (3)字面量混淆

  9. (4)流程混淆

  10. (5)调试检测

  11. 执行环境检测

  12. (1)Node.js 环境检测

  13. 模拟器环境检测

  14. (1)动态混淆技术

  15. 小结及效果


对于刘老师的演讲或者前端安全领域感兴趣的小伙伴欢迎来现场聆听详细的技术演讲细节。在GMTC全球大前端技术大会上我们还设置了小程序、性能优化、前端框架、Node、移动 AI、图形渲染、前端团队管理等热门技术专场,可点击”这里“了解大会详情。购票咨询:18514549229(同微信)


2019-04-18 10:4912374

评论

发布
暂无评论
发现更多内容

Mac 系统如何利用软链接在根目录创建文件夹?

程序员泥瓦匠

Mac 文件写入

《黑客之道》- kali LInux之WireShark抓包及常用协议分析

学神来啦

网络安全 Wireshark 渗透 kali

Eureka 源码之启动过程

悟空聊架构

Eureka 源码剖析 悟空聊架构

「The Monthly Echo」十月社区成长回顾

SphereEx

数据库 开源 ShardingSphere 技术沙龙 SphereEx

Apache ShenYu源码阅读系列-基于Http长轮询的数据同步

子夜2104

网关 shenyu

一分钟带您了解,堡垒机主要功能有哪些?

行云管家

网络安全 服务器 堡垒机 等级保护

告警风暴来袭,智能运维应如何化解?

云智慧AIOps社区

AIOPS 告警 技术学习 智能运维 时序数据

手把手教你从零开始搭建个人博客,20分钟上手

老表

Hexo 个人博客 服务器 教程分享 11月日更

【等保小知识】等保、分保以及关保分别是什么意思?

行云管家

网络安全 等保 等级保护 分保

lims实验室信息监控管理系统解决方案

低代码小观

企业管理 管理系统 LIMS实验室信息管理系统 LIMS系统 信息管理系统

在推荐几款ins视频和图片下载器,支持安卓和苹果

So...

Instagram ins ig ins视频和图片

工程师什么时机最合适选择跳槽?

程序员泥瓦匠

面试 加薪 跳槽 升职

dubbo 配置 loadbalance 不生效?撸一把源码

捉虫大师

dubbo

kubernetes系列随笔01:云原生发展

谦寻

Kubernetes 云原生 弹性

如何快速搞定第三方登录且易扩展?

Tom弹架构

Java 架构 设计模式

pygame 中的图形绘制函数、帧速率和文字相关知识,简单的的不得了

梦想橡皮擦

11月日更

【Redis技术专题】分析一下Redission实现分布式锁的点点滴滴

洛神灬殇

redis redission redisson 分布式锁 11月日更

lims实验室管理系统是什么?实验室信息管理系统介绍!

低代码小观

企业管理 管理系统 LIMS实验室信息管理系统 LIMS系统 信息管理系统

Redis 核心篇:图解 Redis 为什么这么快

码哥字节

redis 后端 Java 分布式 11月日更

Gartner发布2021企业低代码魔力象限,Mendix连续三年第一!

J2PaaS低代码平台

低代码 数字化 低代码开发平台

公司刚来的阿里p8,看完我构建的springboot框架,甩给我一份文档

Java 编程 程序员 Spring Boot

Python代码阅读(第51篇):判断给定的数是否在给定的范围内

Felix

Python 编程 Code Programing 阅读代码

恒源云(GpuShare)_【功能更新】镜像市场上线

恒源云

深度学习

当你在跑步时在想什麽? 这个是村上春树的,当你在骑摩托车时在想什麽? 这个是波西格的

叶小鍵

苏杰:爆款产品是把基本动作做到位的结果

博文视点Broadview

2021DevOps国际峰会·北京站|龙智展位盛况回顾

龙智—DevSecOps解决方案

DevOps Atlassian

图解Java线程状态转换

程序猿阿星

Java并发 线程 线程状态

生成式AI,引领AI从“换脸”到“造脸”

海比研究院

一招教你快速打造企业级数据可视化大屏

云智慧AIOps社区

开源 大前端 数据可视化 大屏可视化 大屏

第四模块作业-设计千万级学生管理系统的考试试卷存储方案

彦欲

架构训练营

极客 - 大数据 - 作业 Flink

西伯利亚鼯鼠

腾讯防水墙团队:浅谈业务安全前端对抗_安全_刘忠正_InfoQ精选文章