写点什么

架构师训练营 -Web 攻击与防护

用户头像
引花眠
关注
发布于: 2021 年 03 月 14 日

常见的攻击方式

XSS 攻击


XSS 攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是 JavaScript,但实际上也可以包括 Java、 VBScript、ActiveX、 Flash 或者甚至是普通的 HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和 cookie 等各种内容。 –百度百科


XSS 攻击 预防手段


所以预防 XSS 攻击的方式就是,将一般只会在危险脚本中使用,但是一般用户输入中不使用的,如果进行过滤和消毒处理,即对某些 HTML 危险字符转义。


SQL 注入攻击


SQL 注入攻击是黑客对数据库进行攻击的常用手段之一。在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的 SQL Injection,即 SQL 注入。–百度百科


获取数据库表结构的方式:


  1. 开源 如果网站采用开源软件搭建,如用 Discuz! 搭建论坛网站,那么网站数据库结构就是公开的,攻击者可以直接获得

  2. 错误回显 如果网站开启错误回显,攻击者故意构造非法参数,服务端异常信息会输出到浏览器端,为攻击猜测数据库表结构提供了便利

  3. 盲注 网站关闭错误回显,攻击者根据页面变化情况判断 SQL 语句的执行情况,据此猜测数据库表结构,此种方式攻击难度较大。


SQL 注入攻击 预防手段


  1. 消毒 和防 XSS 攻击一样,请求参数消毒是一种比较简单粗暴又有效的手段。通过正则匹配,过滤请求数据中可能注入的 SQL

  2. SQL 预编译参数绑定 使用预编译手段,绑定参数是最好的防 SQL 注入方法


CSRF 攻击


跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的 Web 应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。-- CSRF


CSRF 攻击 防御手段


  1. 添加校验 token token 是由服务器构造的,想要伪造比较困难

  2. 验证码 比较简单,但是对用户不友好,在涉及支付交易等情况下使用

  3. 检查 Referer 字段 有局限性,可能获取不到,而且这个可以伪造


其他需要关注的攻击和漏洞


Error Code 也称作错误回显,许多 Web 服务器默认是打开异常信息输出的,即服务器端未处理的异常堆栈信息会直接输出到客户端浏览器,这种方式虽然对程序调试和错误报告有好处,但同时也给黑客造成可乘之机。通过故意制造非法输入,使系统运行时出错,获得异常信息,从而寻找系统漏洞进行攻击。


Error Code 防御手段 防御手段也很简单,通过配置 Web 服务器参数,跳转 500 页面(HTTP 响应码 500 表示服务器内部错误)到专门的错误页面即可,这个功能 Web 应用常用的 MVC 框架也可以做到。


HTML 注释 为了程序调试方便或其他不恰当的原因,有的时候程序开发人员会在 PHP、JSP 等服务器页面程序中使用 HTML 注释语法进行程序注释,这些 HTML 注释就会显示在客户端浏览器,给黑客造成攻击便利。


HTML 注释 防御手段 程序最终发布前需要进行代码 review 或自动扫描,避免 HTML 注释漏洞


***文件上传 *** 一般网站都会有文件上传功能,设置头像、分享视频、上传附件等。如果上传的是可执行的程序,并通过该程序获得服务器端命令执行能力,那么攻击者几乎可以在服务器上为所欲为,并以此为跳板攻击集群环境的其他机器


文件上传 防御手段


  1. 设置上传文件白名单 只允许上传可靠的文件类型

  2. 修改文件名

  3. 使用专门的存储


路径遍历 攻击者在请求的 URL 中使用相对路径,遍历系统未开放的目录和文件。


路径遍历 防御手段 防御方法主要是将 JavaScript、CSS 等资源文件独立服务器、独立域名,其他文件不使用静态 URL 访问,动态参数不包含文件路径信息


Web 应用防火墙

使用防火墙将常见的安全漏洞都避免。


ModSecurity 是一个开源的 Web 应用防火墙,探测攻击并保护 Web 应用程序,既可以嵌入到 Web 应用服务器中,也可以作为一个独立的应用程序启动。ModSecurity 最早只是 Apache 的一个模块,现在已经有 Java、.NET 多个版本,并支持 Nginx。


ModSecurity 采用处理逻辑与规则集合分离的架构模式。处理逻辑负责请求和响应的拦截过滤,规则加载执行等功能。而规则集合则负责对具体的攻击的规则定义、模式识别、防御策略等功能。处理逻辑比较稳定,规则集合需要不断针对漏洞进行升级,这是一种可扩展的架构设计。


网站安全漏洞扫描

和电脑安全漏洞扫描一样,网站也需要安全漏洞扫描。


网站安全漏洞扫描工具是根据内置规则,模拟黑客攻击行为,用以发现网站安全漏洞的工具。


信息加密技术

信息加密技术可以分为三类:单项散列加密,对称加密,非对称加密。


单向散列加密 使用的是单向散列算法,用于将明文变化成固定的密文。常见的单向散列加密算法有:


  1. MD5(Message Digest Algorithm 5) 可以用来把不同长度的数据块进行暗码运算成一个 128 位的数值

  2. SHA(Secure Hash Algorithm) 可以对任意长度的数据运算生成一个 160 位的数值


对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。常见算法有:


  1. DES(Data Encryption Standard) 数据加密标准,速度较快,适用于加密大量数据的场合

  2. 3DES(Triple DES) 是基于 DES,对一块数据用三个不同的密钥进行三次加密,强度更高

  3. ES(Advanced Encryption Standard) 高级加密标准,是下一代的加密算法标准,速度快,安全级别高,支持 128、192、256、512 位密钥的加密


非对称加密 需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。常见算法有:


  1. RSA 目前应用最广泛的数字加密和签名技术 它的安全程度取决于秘钥的长度,目前主流可选秘钥长度为 1024 位、2048 位、4096 位等,理论上秘钥越长越难于破解

  2. DSA 数字签名算法 仅能用于数字签名,不能进行数据加密解密,其安全性和 RSA 相当,但其性能要比 RSA 快


反垃圾邮件

文本匹配 可以使用字典树对文本进行过滤


分类识别算法 通过对一批已经分类的邮件进行算法训练,然后建立分类模型;分类算法通过该分类模型识别新的邮件是否为垃圾邮件。其核心为贝叶斯分类算法。


布隆过滤器 使用布隆过滤器将邮箱设置为黑名单


电子商务风险控制

电子商务常见风险:


  1. 账户风险:包括账户被黑客盗用,恶意注册账号等几种情形。

  2. 买家风险:买家恶意下单占用库存进行不正当竞争;黄牛利用促销抢购低价商品;此外还有良品拒收,欺诈退款以及常见于 B2B 交易的虚假询盘等。

  3. 卖家风险:不良卖家进行恶意欺诈的行为,例如货不对板,虚假发货,炒作信用等,此外还有发布违禁商品、侵权产品等。

  4. 交易风险:信用卡盗刷,支付欺诈,洗钱套现等。


风控团队进行风险控制,风控的手段也包括自动和人工两种方式


机器自动风控的主要技术手段有:规则引擎和机器学习


发布于: 2021 年 03 月 14 日阅读数: 12
用户头像

引花眠

关注

还未添加个人签名 2018.06.11 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-Web 攻击与防护