来自 DDOS 2021-02-20 18:06 的文章

服务器经常被攻击_无限防_又拍云cdn加速

服务器经常被攻击_无限防_又拍云cdn加速

作为一名分析师,回顾事件通常占你一天中相当大的一部分。而对于远离"基于签名的检测"的炒作,很多检测方案都是以一条带有一些布尔逻辑和模式匹配的规则(或规则集)为核心的。这并不是说,他们没有像MD5这样的国际奥委会标准项目那样灵活(复杂)更灵活(更复杂)。只是他们中的许多不是一些疯狂复杂的ML/AI算法,普通分析师几乎没有理解的希望。一旦你习惯了模式,知道该寻找什么,那么破译事件和调优以最小化噪声变得更加简单。本文将概述:一个三步的过程,帮助分析人员识别签名的目的,并将不必要的噪声降至最低示例,说明不同类型事件的分析过程关于如何更好地制定规则的研究思路分析事件和最小化噪声的3个步骤步骤1:确定事件的目的。一半的战斗可以试图找出事件最初应该检测到什么威胁。在做其他事情之前,问问自己:你是否理解签名所寻找的行为或模式,以及它实际上是什么?如果不是,你能查出来吗?这似乎有些不言而喻,但确保事件对他们试图检测的威胁有效,应该是您初步审查的一部分。如果您能够访问实际规则(和相关数据),您希望能够确切地看到是什么导致了某个事件触发,然后确定是否需要它。更妙的是,您可以访问以前的"坏"示例,以比较您看到的是匹配的。但是有时候你所要做的就是一个名为"JBOSS-Explake"的签名,它告诉你除了JBOSS之外几乎什么都没有,这是一种利用……那么你从哪里开始呢?您仍然可以进行一些初始审查,以回答以下问题:系统是否运行JBOSS?系统运行的版本是什么?该版本发布了哪些漏洞?这是一个更难确定的,你可能不得不解决"我有理由确信这不是我们需要关心的事情",没有确切的原因。让我们看几个例子,以说明这个过程跨越各种类型的事件。它匹配,但这是否意味着它很糟糕?一个简单的例子是,如果签名正在寻找包含字符串"cain"的进程名,目的是提醒分析师可能执行流行密码破解工具"cain&Abel"(为什么在Abel上cain,你会怀疑吗?如果事件是针对一个名为'abel'的进程,请考虑包含多少个单词"abel."lydocaine.exe"您将有一个事件触发正确,但它根本不是您要找的,因此您可以快速地继续。下面的示例是一个包含字母"wce"的可执行文件,它是另一个破解密码工具。正如您所看到的,可执行文件实际上与webex相关,并且文件名中只包含"wce"。它匹配,但也不错。示例B:您的环境有一些超出正常的内容。另一个基本示例是,如果您碰巧在一个环境中运行了端口8080上的HTTP,并且您继续在非标准端口上获得HTTP的命中。是的,规则是按预期触发的,但它需要在您的环境中修改或忽略。不过,关键的外卖是,如果您有一个事件,与网络相关的威胁,不要立即跳转到查看子进程和modload。或者如果它是Linux主机,不要在事件与只影响Windows的事件相关时花费周期,除非可能是想知道如何不再看到这样的事件。示例C:您正在使用PowerShell框架。对于更具体但仍然是基本的示例,让我们看看PowerShell的检测工作。由于所有的PowerShell框架都试图混淆命令,所以在检测PowerShell参数的工作中,通常应该尽量广泛。然而,有一件事太过宽泛。下面是一个对PowerShell命令触发的规则的示例。它正在寻找"-Encoded"参数的变体,该参数主要用于将参数传递为base64编码文本,但不限于此。在下面的事件中,您可以看到以"-e"开头的唯一命令是"esx"。因为它远没有接近我们所寻找的行为,只要快速地浏览一下我们可以继续的话。我将再次回到这个事件,因为它还说明了为什么您应该验证在回顾之后,某些事情是正确地写的(如果可以的话)。相关资源:PowerShell滥用:好工具坏了第二步:确定签名的值。很多时候,您会进入这样一个环境,环境中有大量来自各种不同来源的现有签名,例如供应商专有规则、威胁源和自定义规则,这些都是安全团队在SOC生命周期内创建的。虽然签名的编写可能是研究密集型的,也是具有挑战性的,但有时试图找出一个现有的持续射击的签名几乎更具挑战性。你没有写,你没有办法和做过的人交谈,当然也没有很好的文档。命名约定有时很糟糕,高防cdn云清洗,没有任何"坏"实际上是或更糟的例子,甚至无法看到包、进程或日志中的内容,这些都是导致规则首先触发的。我工作过的一些组织的理念是,在网络上多做几件事比错过真正的威胁要好。然而,在某个时刻,你意识到,你的第一个10%的轮班是通过噪音除草,你已经看到了很多次你不再钻进去(高错过危险)。这意味着,在其当前状态下,规则提供的值很少。这导致…第三步:确定使之更好的方法。输入"tuning"。通常,"tune"一词用于更改现有签名,以便使其更准确,或修复可能导致错误否定的疏忽。许多供应商(特别是开源或本土解决方案)都提供了调整规则、根据特定环境或用例裁剪规则的能力。它也不一定总是通过检测设备本身来完成的。如果所有日志都输入到中心源中,那么您可能会在其中添加一些筛选器,这在您没有访问规则集本身的情况下尤其有用。真正让你发疯的签名可能不是偶尔发生一次火的签名,而是那些让你日复一日地发生数十万到数千件事的签名。如果你幸运的话,你有一些技术机制来过滤它们,但是如果不是(或者是"全部或没有"过滤器),你可能希望使它们更细粒度,这样它们实际上就提供了价值。在分析现有规则时,我通常建议有两条指导原则:1: 什么都不想。不要假设谁写了签名或规则,低价法国高防cdn,考虑了每个角落的情况,并在部署它之前进行了广泛的测试。根据他们在编写时可用的数据集,这可能是一个非常安静的高保真警报,但事实证明,99%的开发人员在日常活动中使用了相同的技术。特别是如果你从外部来源(或者两年前写的)签名,他们可能需要重新处理。2: 问题(和测试)一切。大多数规则归结为逻辑模式。这个逻辑模式可能和"if a==b"那么触发一样简单,或者像一系列嵌套参数一样复杂,您必须在正则模式上对其进行排序。无论怎样,在试图修复(或创建)签名时,对逻辑的深入理解都会有帮助。幸运的是,测试逻辑语法可以使用ruby或python等任何编程语言,服务器ddos防御怎么弄,或者是Web上有人编写的酷应用程序。无论您使用什么方法,确保您认为应该触发事件的输入在运行时实际会触发您的语法。例如,括号可能很重要。在下面的场景中,假设您希望看到两个注册表值中的一个被修改的事件,但仅当两个进程中的一个都没有修改时。您最初是这样写的:regmod_ua=="this''| regmod_ub=='该'&&(进程!= ‘zoo.exe"&&process!"!= ‘farm.exe’)然后准备好在各种输入组合中输入时期望的结果。(注意:在这种情况下,阿波罗ddos防御体系,proc可以有一个和只有一个值,而reg当然可以对每个进程进行多次修改。)你运行它,一半的预期结果都失败了。对一些分析人士来说,为什么会非常明显,但它只是说明了为什么要根据已知结果测试语法是很重要的。一个简单的事情,比如不知道需要在括号中括起来表达式,会触发您实际上不想要或更糟的事件,ddos防御模拟,无法生成您所做的事件。作为一个侧记,上面的测试并不完全彻底,因为当一个或另一个regmod值为false时,它不会测试出来。然而,这一点并不需要说明。你真正想要的是:(regmod=="this'| regmod=="then')&&(进程!= ‘zoo.exe"&&process!"!= ‘farm.exe’)通过有限的示例:正确结果:现在,让我们回到前面的PowerShell示例。还记得"不相信谁写签名都测试了每一个角落的案例"规则吗?结果发现,虽然PowerShell确实在传递参数时确实执行"-en*,-e*",但它实际上必须有一个匹配项,而且只有一个匹配项才能实际工作。换句话说,由于-e*匹配-esx、-encoded、-error、-enable(-e在MD5哈希中如果不添加前导空格),因此,调用"-encodedcommand"甚至不是有效的方法