【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

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

  • 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:4912351

评论

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

【Flutter 专题】55 日常问题小结 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

Go- 文件读写-1

HelloBug

文件读写 Go 语言

ReScript 与 TypeScript,谁是前端圈的“当红辣子鸡”

华为云开发者联盟

Java JavaScript typescript 大前端 ReScript

华云大咖说 | 业务转型中的IT云化服务——安超云基座方案介绍

华云数据

揭秘盒马鲜生 Android 短视频秒播优化方案

阿里云视频云

android 音视频 短视频 Video播放器 移动端

别问了,我真的不喜欢这个注解!

why技术

Java

杀疯了,编程语言还能卷成这样❓❗【话题讨论】

InfoQ写作社区官方

话题讨论 话题

netty系列之:搭建HTTP上传文件服务器

程序那些事

Java Netty HTTP 文件服务器 程序那些事

自己动手写个微型博客吧,还能实现网页版 Blink,No.1

梦想橡皮擦

9月日更

50亿海量数据如何高效存储和分析? GaussDB (for Cassandra) 3个秘诀搞定

华为云开发者联盟

存储 华为云 海量数据 分析 GaussDB (for Cassandra)

模块二

树建

架构实战营

携手强化「内容审核」能力,融云与数美科技达成战略合作

融云 RongCloud

音视频 内容安全 融云 即时通讯IM

这个夏天,这群大学生奔波在盐场里忙啥?

科技热闻

叹服!阿里自述SpringCloud微服务:入门+实战+案例

Java~~~

Java spring 架构 面试 Spring Cloud

Node.js 应用全链路追踪技术——[全链路信息获取]

vivo互联网技术

node.js 大前端 编程语言 全链路追踪 语言 & 开发

PostgreSQL插件之TimescaleDB

华为云数据库小助手

postgresql 插件 GaussDB 华为云数据库

直播预告|如何通过“智能边缘安全”提升企业免疫力?

京东科技开发者

https 云安全 CDN加速 网站反爬 网站建设

LeetCode题解:897. 递增顺序搜索树,递归,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

【VueRouter 源码学习】第四篇 - 创建路由映射表

Brave

源码 vue-router 9月日更

当视频恋爱 App 用上了 Serverless

Serverless Devs

Serverless 云原生

NDK的C++ 库支持

Changing Lin

9月日更

书单 | 做数字化转型,离不开这10本书!

博文视点Broadview

合规安全大考核:移动应用安全策略全盘点

蚂蚁集团移动开发平台 mPaaS

RPC 移动开发 mPaaS 隐私安全 加固

架构实战营 - 模块七作业

思梦乐

Vue进阶(九十六):VuePress 详解

No Silver Bullet

Vue 9月日更

微信PaxosStore:深入浅出Paxos算法协议

OpenIM

学校疫苗中心管理应用搭建心得

明道云

模块七

SAKIN

转型 Golang 开发的心路历程

baiyutang

php 云原生 求职 Go 语言 9月日更

解读顶会CIKM'21 Historical Inertia论文

华为云开发者联盟

华为云 论文 长序列时间 时间序列预测 CIKM’21

阿里一面 五问 @Transactional

skow

Java Spring Boot 后端

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