开放平台:搭建API安全预警平台,api监控平台免费
本文讲述了api监控平台|开放平台:搭建API安全预警平台,api监控平台免费。认证服务应用的越来越广泛,比如:验证码等这些都是通过接口能力服务完成;之前负责过的高安全级别的认证平台在建设的时候,整理了一些安全防范策略。
如下是一些工作的总结:
一般来说,大公司都会有专门负责数据安全的部门或团队对安全问题进行排查,亦或者有经验的研发会在开发时考虑到,然后主动提出并解决。
对于某些风险其风控策略还是需要产品经理提出的。
一、为什么要防范风险?
对于用户:
用户频繁骚扰:接口被频繁调用,信息不断下发到用户;比如:短信下发类接口(验证码、营销等)。用户敏感信息被盗:第一种方式:某些数据在未授权的情况下被获取;第二种方式:代码泄露后,敏感信息泄露,个人信息、实名信息、账号密码等。用户无法正常访问:接口被频繁请求,网络请求堵塞。用户访问数据显示异常:接口参数遭攻击者篡改。对于公司:
用户投诉:用户的风险问题很容易导致用户投诉。大量费用:频繁调用接口导致大量接口请求,刷量导致高额的费用,有些接口的调用还是非常昂贵的。公司业务受损:服务器被攻击,客户端会有风险导致瘫痪。服务器资源消耗:大量调用接口及接口传输上限,加大服务器性能消耗。
二、风险防范方式
api安全问题主要有数据的传输安全问题、数据安全问题、服务器安全问题。
1. 传输安全
接口传输风险可能会导致接口被随意调取、传输劫持等。
为应对传输风险,可以做如下防范:
1)授权访问(未授权、越权)
平台之间的接口:需要使用一些身份认证机制,比如:APPID或APPKey和APPSecret、token。前后端接口调用:不要全部按前端传入的次数进行处理,要由后端做二次校验,严格对权限进行控制;后端需要自动二次获取用户的相关权限信息。以此减少验证权限环节存在的缺陷。2)数据截取被黑:
在安全的网络环境下进行传输:内网、专线HTTPS都懂的。数据加密,比如敏感信息加密脱敏。3)传输频次(重放攻击)
一次性token机制,token使用一次后就失效。对接口调用频率和次数限制:比如验证码60s内只能下发一次。4)DDOS攻击指:处于不同位置的多个攻击者同时向一个或数个目标发动攻击,或者一个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施攻击。
建立IP白名单;流量清洗:将正常流量和恶意流量区分开,正常的流量则回注客户网站。5)数据篡改:篡改接口报文内容,再次请求接口。
通过签名的方法防治数据篡改:请求/响应报文签名,对应端内进行验签。签名算法有哈希算法、MD5。
2. 数据安全问题
主要是敏感信息泄漏:对于敏感信息需要进行脱敏,且不能依赖前端脱敏,需要由后端对数据进行脱敏。
3. 服务器安全问题:
主要是服务器资源消耗问题:通过接口对大文件处理消耗服务器资源。
对上传的文件大小、格式限制。接口频率、次数限制。限制接口响应内容大小。
三、产品经理搭建安全预警平台
为保障平台和终端用户的正常运行,可以通过监控预警平台,对接口管控,防止业务遭受攻击导致平台能力短时间资源消耗过高,导致能力故障。
平台可以通过对如下指标进行监控:接口调用频率、接口调用准确率。
1. 接口调用频率和准确率预警
判断标准假设:
假设1:TPS调用频率可取近7天平均的请求的数量作为正常数量的基准线。假设2:接口每天的调用频率都是有规律的,可分为:早中晚,早(0点-8点:低频)、中(8点-18点:高频)、晚(18点-24点:高频)假设3:正确率低于某一值时,可直接识别为高危问题:被攻击,直接将接口停用,对应业务方设为黑名单;正确率在某一区间时,识别为:可能被攻击,则需预警。通过如上假设,可判断出频率和准确率的数据对应反映的接口调用情况。因此基于如上假设可建设一套预计平台。
核心功能逻辑:
1)后台可配置发生预警的限制:
TPS按基准线的某些倍数/某一定值,则发生预警/接口调用拉黑,可设置拉黑定时器。(拉黑某一时间段)准确率可设置某一百分百,发送预警/接口调用拉黑,可设置拉黑定时器。(拉黑某一时间段)2)黑白名单:对于某些业务线放入黑名单,则无法使用接口,放入白名单则可无视预警,正常调用。
3)其他基础数据:
TPS总数、筛选器、可视化插件(饼图/线形图):
2. 通过账号、IP控制频率
通过用户账号、IP控制频率,可以控制每分钟调用次数、每小时调用次数等。根据具体场景确定策略。
监控和管理服务是 Java 中不太常用的功能之一,不是因为它们不重要或可以取消它们,而是因为它们是在特殊情况下使用的。
它专门针对那些对其应用程序的性能至关重要并且需要一些实用程序来衡量和管理它的开发人员和系统管理员。Java 为这方面的综合处理提供了广泛的支持。但是,不可能提供 Java 平台的监控和管理功能的完整概述,本文试图快速而简短地描述这项技术的关键方面。
概述
Java平台提供的监控和管理功能大致可以分为:
Java 虚拟机检测
监控和管理 API
监控和管理工具
Java 管理扩展 (JMX) 技术
Java 虚拟机检测
它被称为 JVM 的开箱即用管理工具,它提供了一种内置机制来监视 JVM 和在其上运行的应用程序,无论是在本地还是从远程机器。应适当设置应用程序以在执行期间启用此功能。Java 平台利用 Java 管理技术 (JMX) 技术来实现此功能。要启用此功能,我们需要创建一个名为 MBean(Managed Bean)的 JMX 代理,然后将其注册到 MBean 服务器。MBean 只不过是代表要管理的资源的 Java 对象。
监控和管理 API
监控和管理 API 打包在 java.lang.management 下。它们提供了用于在运行时动态管理和监控 JVM 和底层操作系统的编程接口。API 提供了在远程和本地级别监视和管理 JVM 以及可以监视它们的应用程序的功能。API可以访问有关以下方面的动态信息:
加载的类
正在运行的线程,例如它们的状态、争用统计信息和堆栈跟踪
正在运行的应用程序消耗的内存状态
垃圾回收的统计信息
死锁检测
底层操作系统
根据 Java 9 建议,可以通过 java.management 模块下的 java.lang.management 包中声明的 PlatformLoggingMXBean 接口检索日志信息。在版本 9 之前,直到 Java 8,日志信息由 java.util.logging 包中声明的 LoggingMXBean 接口检索。LoggingMXBean 中声明的方法现在已弃用。
API 还提供了必要的接口,以便从现有应用程序中将 JConsole 作为插件访问。
监控和管理工具
Java SE 提供的主要监控和管理工具是 JConsole。它是一种在图形窗口中提供内存、线程、类、JVM 信息和其他信息的工具。运行时统计数据是在图形和图表的帮助下提供的。JConsole 是 JMX API 的实现,可用于监控 JVM 或任何其他专门用于监控的应用程序的运行时性能。
Java 管理扩展 (JMX) 技术
Java Management Extension 是通过 Java Management Extension (JSR 3) 和 JMX Remote API (JSR 160) 开发的规范。JMX API 专门用于管理和监视 Java 平台资源,例如 JVM 本身、设备、它提供的服务以及在其上运行的应用程序。
根据 Java Platform SE Management and Extension Guide,JMX 规范在 Java 编程语言中定义了架构、设计模式、API 以及用于应用程序和网络管理和监控的服务。
为了使用这项技术,一个或多个 Java 对象(称为托管 Bean (MBean))检测指定的资源。这些 MBean 注册在称为 MBean 服务器的核心托管对象服务器中。MBean 服务器充当管理代理,可以在大多数支持 Java 编程语言的设备上运行。
结论
问题的关键在于 Java 监控和管理服务是围绕 JMX 技术构建的。因此,在开始使用监控和管理服务之前了解 JMX 至关重要。JConsole 是监视和管理 Java 应用程序的福音。它提供了必要的信息来监控正在运行的应用程序下面的内容并有效地对其进行微调,除了在运行时管理和监控 JVM,无论是远程还是本地。
上文是小编为大家整理的
开放平台:搭建API安全预警平台,api监控平台免费。
国内(北京、上海、广州、深圳、成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛)推荐eolink。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~