API威胁防护实践之天清Web应用清静网关系统

宣布时间 2018-06-25
随着 Web 2.0 时代的到来 ,由于 JSON 数据名堂简朴 ,容易开发� ?⒄吒不妒褂� JSON 名堂来编写 API ,Web API 也泛起爆发性的增添。特殊是近几年来 ,随着社交媒体和在线服务的生长 ,服务的提供者更喜欢对外提供开放的 Web API 供开发者挪用� ?⒄咄ü缗灿� Web API 实现登录认证、新闻推送、订单支付等功效 ,API 之间的相互挪用极大的提高了开发效率 ,开发者可以在短时间内完成应用的设计与开发。只要服务提供者对外果真了 API ,开发者就可以很简朴的将服务集成进自己的应用 ,直接的享用该服务 ,差别的服务提供者荟萃在一起钻营配合生长。

Web API 是指使用 HTTP 协议举行网络挪用的API(Application Programming Interface) ,是一个应用的外部接口。关于一个应用程序 ,人们通常不关注内部结构实现细节 ,只体贴外部功效的使用。那么挪用应用程序完成某个功效的规范要领即可称之为程序的 API。

◆Web API 清静隐患◆

由于 Web API的普遍普及与使用 ,与古板的 Web 清静问题一样 ,也保存敏感信息被恶意获取 ,用户权限被恶意使用等问题。除了天气预告、地理位置等这类公共服务信息的提供 ,险些所有的 API 服务都保存用户认证、权限控制等 ,以便于服务提供商举行管理和收费。

近年来随着移动应用、云端应用的普及 ,Web 站点与 Web API 配套开发的情形越来越多 ,API  清静问题也是与日俱增。若是 Web  API 缺陷被恶意使用 ,用户隐私被果真或者盗用 ,那么服务提供者将会失去信用、失去用户 ,可能导致服务提供者休业倒闭 ,永远无法再次赢得用户的信任。

例如Instagram 在2017年由于 API 保存 bug ,不少认证用户都发明自己的小我私家资料(包括邮箱地址、电话号码等)可容易被他人获取。事情爆发后 ,Instagram 虽然并未对误差细节做过多诠释 ,只是体现误差已经修复。Instagram 对所有的注册用户发了电子邮件 ,提醒他们提防此次攻击 ,并小心可能会泛起的垂纶攻击 ,尚有那些通过社工手段(邮件 ,短信 ,电话等方法)所带来的攻击。

● 清静隐患一:
客户端与服务器之间的监听与嗅探

Web API 和通俗的 Web 站点一样 ,通过 HTTP 协议在互联网上举行数据传输 ,由于HTTP协议自己并未有任何加密的设计 ,因此不可包管通讯历程中不被监听。越来越多的公共Wi-Fi被黑客盯上 ,通常黑客想法和受害用户毗连在统一局域网内 ,只要翻开嗅探监听工具 ,受害者在网络中的传输过的敏感信息将被黑客获取。若是被窃取的信息中直接含有小我私家信息和密码 ,黑客可能通过这个信息直接登录受害人的用户 ,进一步可能造成信息泄露或工业损失。另外一种 ,黑客也可能挟制受害者用户的会话 ,服务器将无法区分受害者照旧黑客 ,黑客可以举行受害者权限规模内的一切操作。

Web API 在通讯时使用了 HTTPS 协议通讯 ,将极大增强会话的清静性。那么是不是只要使用了HTTPS协议通讯就能包管会话不被挟制 ,敏感信息不被获取呢 ?谜底是否定的。

2014年4月爆发的Heartbleed清静误差 ,导致攻击者可能获取到服务器上生涯的明文信息。另外 ,使用 HTTPS加密通讯时 ,也有可能保存中心人攻击 ,因此需要包管使用有用的SSL证书举行加密认证。

● 清静隐患二:
使用浏览器会见API时爆发的清静意外

Web API 是专门为程序间相互挪用而设计的 ,若是意外的使用浏览器来会见 Web API 则也可能保存清静问题。

? XSS攻击

XSS攻击将用户的不法输入的JavaScript剧本在响应页面的HTML中执行。攻击者可能使用XSS误差挟制会话、偷取Cookie、改动页面等操作。在Web API 返回 JSON 数据时 ,若是Content-Type 设置不对理便会造成 XSS 误差攻击。

当服务器返回该 JSON 数据时 ,将响应头中的Content-Type设置为test/html 或者设置为Content-Type: text/plain(IE下可以执行)时 ,该 JSON 数据被诠释为 HTML 代码 ,浏览器直接执行了其中的JavaScript代码。

? CSRF攻击

Web API 防护CSRF 攻击的要领和通例的 Web 网站并没有什么差别。通常需要榨取通过GET要领修改服务端的数据 ,而是接纳 POST、PUT、DELETE等要领举行标准化操作。纵然设置了不允许GET方法修改服务器数据 ,CSRF依然可以通过Form表单使用POST要领提倡攻击 ,并且不受同源战略的影响。

● 清静隐患三:
营业层面的恶意会见

? 改动ID不法获取用户敏感信息

改动请求参数获取敏感信息 ,攻击者可以通过修改客户端发送到服务器的参数 ,妄想获取权限规模之外的敏感信息。例如使用以下形式的

URL:
https://api.example.com/v1/user/123?info=email

从形式上来看 ,URL中的123可能为用户ID ,若是提交该URL请求可以获取到ID为123用户的email信息 ,那么攻击者通过修改用户ID就能获取到其他用户的email信息。

下面详细剖析一下这个问题 ,一样平常的有些Web API 设计友好 ,通常在URL内里使用user要害字或者在参数内里使用email要害字来批注营业的一些相关信息。设计者初志是为了开发者越发简朴明晰的使用API来实现程序挪用 ,可是也给攻击者带来可乘之机。攻击者通太过析URL的形式特征并团结详细的营业对要害字举行改动 ,妄想不法获取敏感信息。

? 参数异常输入导致未授权操作

API的设计者在设计之初是为了利便的使用API举行程序间的挪用 ,有时思量不到太多的异常输入造成的清静隐患。例如着名的WordPress网站系统一经保存REST API 由于异常输入造成权限绕过 ,攻击者可以通过API改动网站页面内容。

WordPress 4.7以上的版本 ,WordPress REST API提供了一组易于使用的HTTP端点 ,用户可以以简朴的JSON名堂会见网站的数据 ,包括用户 ,帖子 ,分类等。检索或更新数据与发送HTTP请求一样简朴。API 提供了对用户、文章、分类等差别功效的控制 ,也可以通过 API 检索或修改文章。在WorePress 4.7.0和4.7.1版本中保存误差 ,由于权限控制失效导致内容注入或修改 ,攻击者通过修改id为一个异常值就可以完成网站内容的改动 ,而不需要任何认证信息。

Wordpress 提供的部分 API 功效:

审查文章列表
GET /index.php/wp-json/wp/v2/posts

检索文章
GET /index.php/wp-json/wp/v2/posts/1

修改文章
POST /index.php/wp-json/wp/v2/posts/1?id=1
Content-Type: application/json
{"title":"test"}

提交以上修改文章的请求 ,服务器返回401 未认证。

若是稍微修改以上的URL内容 ,例如修改为POST /index.php/wp-json/wp/v2/posts/1?id=1abc ,即将id参数的值由1修改为1abc ,再次实验提交。服务器返回200 OK ,WordPress网站的第一篇文章问题被修改为test ,攻击乐成。

◆WAF检测与防护◆

Web API和通俗的应用相似都是通过HTTP协议对外服务 ,通俗Web应用中保存的误差和缺陷 ,在Web API 中同样也会保存。酷游官网WAF产品有专门API防护� ?� ,通过该防护� ?橛隬AF功效相团结可对Web API的问题举行检测与防护 ,Web API防护� ?榧癆PI攻击检测上报事务 ,如下:
 



酷游官网WAF产品顺应从小型企业到大型数据中心等种种规模和客户营业模子下的网络情形 ,并普遍应用于金融、运营商、政府、能源、大企业、烟草、税务、交通、卫生、教育等行业领域。

酷游官网作为中国信息清静行业的领航企业 ,一直承继诚信和立异精神 ,致力于提供具有国际竞争力的、自主立异的WAF清静产品。酷游官网WAF产品入围Gartner魔力象限 ,凭证第三方Frost& Sullivan权威机构WAF市场占有率一连5年排名第一 ,酷游官网WAF产品一连多年在大中国区WAF市场压倒一切。