材料阅读:IDS的绕过(消耗资源方式)

2024-06-15 16:38

本文主要是介绍材料阅读:IDS的绕过(消耗资源方式),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

20210310 -

0. 引言

今天阅读了安全客的一篇文章《我们来谈一谈IDS签名》,实际上这篇文章是作者翻译过来的,机翻的感觉很强,例如指纹,就被翻译为了签名。

1. 文章简介

这篇文章主要介绍了,IDS的主要功能以及其大致的工作方式,利用字符串指纹的模式匹配的方法,之前的时候也提到过,对于IDS来说,都是采用字符串硬匹配或者正则表达式的方法。

而本篇文章所传递的想法就是,利用IDS指纹匹配过程中,正则表达式匹配中可能出现的类DDos的漏洞,来绕过IDS,本质上就是通过构造恶意的样本,消耗IDS在匹配过程中的计算资源。

2. 读后思考

实际上,这篇文章感觉读起来比较晦涩,就是因为很多地方的翻译不够准确,而且读起来也不通顺,就给人感觉很奇怪。但是在阅读这篇文章的时候,也引起了很多我的思考。之前的时候就看到过一些安全公司招聘,需要员工维护IDS规则库。

2.1 规则的生成

研究人员对于突然出现的网络攻击威胁,首先会对其分析,得到如何检测这一攻击的规则。抽取其中的特征,并将结果转化为一个或多个签名并用IDS能够理解的语言编写出来。

在这种规则生成的过程中,很多论文都有这方面的涉及,比较有代表性的,就是利用频繁项挖掘算法。当然,我觉得比较有经验的工程师应该也能直接人眼看出来,不过这种的话,利用机器来进行学习,同时进行一些互斥性,完备性的验证,会更好。

规则生成的过程中,需要考虑一些因素,这个规则的表现形式是什么样子,是直接的某个字符串,还是利用正则表达式。这个有时候就要结合底层的模式匹配引擎来分析。

所以这方面应该考虑两个问题:1)规则如何生成,是否有现有的工具2)规则生成的形式是什么样子,是否有较为成熟的管理工具

2.2 规则的匹配过程

在我写的另外一篇文章《深度包检测(DPI)的记录》也思考过这方面的问题,今天在看这篇文章的时候,也想到了这部分。在这篇文章中,开始时提到了几个假设,这些假设在文章中也被验证。
1)找到子字符串比证明没有找到匹配的子字符串耗时更短
2)正则表达式方式比直接字符查找更耗时

而他利用这些假设进行绕过的方式,就是因为正则表达式中存在的一个问题,灾难性回溯,之前研究字符串匹配算法的时候简单了解过。

而通过这个问题让我开始思考,IDS使用的引擎,他们的底层的字符串匹配过程是什么原理,这个一定要清楚,这样才能在查看每条规则的匹配耗时时,能够更清晰的有改进方案。

这篇关于材料阅读:IDS的绕过(消耗资源方式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063999

相关文章

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

springboot security使用jwt认证方式

《springbootsecurity使用jwt认证方式》:本文主要介绍springbootsecurity使用jwt认证方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录前言代码示例依赖定义mapper定义用户信息的实体beansecurity相关的类提供登录接口测试提供一

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Python实现Microsoft Office自动化的几种方式及对比详解

《Python实现MicrosoftOffice自动化的几种方式及对比详解》办公自动化是指利用现代化设备和技术,代替办公人员的部分手动或重复性业务活动,优质而高效地处理办公事务,实现对信息的高效利用... 目录一、基于COM接口的自动化(pywin32)二、独立文件操作库1. Word处理(python-d