ELK如何帮助安全工程师抵抗网站攻击并保持良好睡眠

我们的网络防御中心负责保护客户的Web基础设施并抵御对客户站点的攻击。我们使用FortiWeb Web应用防火墙(WAF)防御攻击。但是,即使是最酷的WAF也不是万能药,也无法防止“开箱即用”的攻击。 



因此,除了WAF之外,我们还使用ELK它有助于在一个地方收集所有事件,累积统计数据,将其可视化,并允许我们及时查看目标攻击。



今天,我将更详细地告诉您我们是如何与WAF一起越过“圣诞树”的,以及它的来龙去脉。









一次攻击的故事:切换到ELK之前一切正常

在我们的云中,客户已在WAF后面部署了该应用程序。每天从10,000到100,000个用户连接到该站点,每天的连接数量达到2000万。其中有3-5位是网络犯罪分子,并试图入侵该网站。 



FortiWeb很容易阻止来自一个IP地址的常规暴力形式。每分钟对该网站的访问次数高于合法用户。我们只需从一个地址设置活动阈值,并抵制攻击。



当攻击者行动缓慢并伪装成普通客户时,与“慢速攻击”作斗争要困难得多。他们使用许多唯一的IP地址。对于WAF来说,这种活动看起来不像是蛮力的,要自动跟踪它就更困难了。而且还有阻止正常用户的风险。我们寻找了其他攻击迹象,并设置了一个策略来基于该属性自动阻止IP地址。例如,许多非法会话在http请求标头中都有公共字段。我经常不得不在FortiWeb事件日志中手动搜索此类字段。 



原来很长很不方便。在标准的FortiWeb功能中,事件以文本形式记录在3种不同的日志中:检测到的攻击,有关请求的信息以及有关WAF操作的系统消息。一分钟内可能会发生数十个甚至数百个攻击事件。



不需要太多,但是您必须手动爬网多个日志并进行多行排序: 





在攻击日志中,我们看到用户地址和活动的性质。 

 

仅扫描日志表是不够的。若要查找有关攻击性质的最有趣,最有用的信息,您需要查看特定事件的内部:





高亮显示的字段有助于检测“慢速攻击”。资料来源:Fortinet网站的屏幕截图。 



好吧,最重要的问题是只有FortiWeb专家才能弄清楚。如果在工作时间我们仍然可以实时监控可疑活动,那么对夜间事件的调查可能会延迟。当FortiWeb政策由于某种原因而无法执行时,值班的夜班工程师无法访问WAF不能评估情况,从而唤醒了FortiWeb专家。我们浏览了几个小时的日志,发现了攻击的时刻。 



有了如此大量的信息,就很难一目了然并主动采取行动。然后,我们决定在一个地方收集数据,以便以视觉形式分析所有内容,找到攻击的起点,确定攻击的方向和阻止方法。 



你从中选择了什么



首先,我们查看了已经使用的解决方案,以免不必要地增加实体。Nagios



是第一个选项之一,我们可以使用它来监视工程基础架构网络基础架构发出紧急情况警报。安全人员还使用它来通知可疑流量,但是它不知道如何收集分散的日志,因此消失了。  有一个选项可以使用MySQL和PostgreSQL或其他关系数据库来聚合所有内容。但是为了提取数据,您必须对应用程序进行雕刻。  我们公司还使用FortiAnalyzer作为日志收集器







来自Fortinet。但是在这种情况下,他也不适合。首先,它更适合与FortiGate防火墙一起使用其次,缺少许多设置,并且与之交互需要对SQL查询有丰富的了解。第三,使用它会增加客户的服务成本。   



这就是我们以ELK的身份来开源的方式。 



为什么选择ELK 



ELK是一个开源软件包:



  • Elasticsearch是一个时间序列数据库,它是为处理大量文本而创建的。

  • Logstash是一个数据收集引擎,可以将日志转换为所需的格式。 

  • Kibana是一个很好的可视化工具,也是用于管理Elasticsearch的非常友好的界面。您可以使用它来构建图表,供夜间值班的工程师观看。 



ELK进入阈值不高。所有基本功能都是免费的。幸福还需要什么。



您如何将它们全部整合到一个系统中?



我们形成索引,只留下必要的信息。我们将所有三本《 FortiWEB》杂志都加载到了ELK中-输出是索引。这些是一段时间(例如一天)中所有收集的日志的文件。如果立即将它们可视化,我们将只能看到攻击的动态。有关详细信息,您需要“落入”每种攻击并查看特定字段。







我们意识到,首先我们需要建立非结构化信息的解析。我们将很长的字段用作诸如“消息”和“ URL”之类的字符串,并对其进行了解析以获取更多信息以进行决策。 

, .   - . , 2 . 


解析之后,他们开始寻找要存储和可视化的信息。建议不要将所有内容留在日志中:一个索引的大小很大-7 GB。 ELK花了很长时间来处理文件。就是说,并非所有信息都有用。某些东西被复制并占用了额外的空间-有必要进行优化。 



首先,我们只是遍历索引并删除了不需要的事件。事实证明,与在FortiWeb上使用杂志相比,这样做更加不便且需要更长的时间。在此阶段,“圣诞树”的唯一优点是我们能够在一个屏幕上可视化很长一段时间。 



我们没有绝望,我们继续吃仙人掌研究ELK,并相信我们将能够提取必要的信息。清除索引后,我们开始可视化内容。这就是我们最终得到大型仪表板的方式。戳过的小部件-清晰优雅地显示真正的YOLKa! 







记录了袭击发生的那一刻现在有必要了解攻击开始在图中的外观。为了找到它,我们查看了服务器对用户的响应(返回码)。我们对使用以下代码(rc)的服务器响应感兴趣: 



代码(rc)

名称

描述

0

下降

服务器请求被阻止

200



请求已成功处理

400

错误的请求

错误的请求

403

禁止的

授权被拒绝

500

内部服务器错误

服务不可用





如果有人开始攻击该站点,则代码比例将发生变化: 



  • 400 , 200 , - . 

  • 0 , FortiWeb «» . 

  • 500, IP- – . 



到第三个月,我们建立了一个仪表板来跟踪此活动。







为了不手动监视所有内容,我们与Nagios建立了集成,Nagios定期对ELK进行轮询。如果他通过代码记录了达到阈值的情况,则会向值班人员发送有关可疑活动的通知。 



在监视系统中组合了4个图形。现在,重要的是要在图表上看到攻击没有被阻止并且需要工程师干预的时刻。在4张不同的图表上,我们的眼睛模糊了。因此,我们组合了图表,并开始在一个屏幕上观察所有内容。



在监视期间,我们观察了不同颜色的图形如何变化。红色的飞溅表明攻击已经开始,而橙色和蓝色的图表明FortiWeb的反应:





一切都很好:“红色”活动爆发了,但是FortiWeb对此进行了应对,攻击进度也变得毫无意义。



我们还为自己画了一个需要干预的图表示例:





在这里我们看到FortiWeb增加了活动,但是红色攻击图表并未减少。您需要更改WAF设置。



调查夜间事件也变得更加容易。该图会立即显示何时该进行站点防御。 





这有时在晚上发生。红色图表-攻击已开始。蓝色-FortiWeb活动。攻击没有被完全阻止,因此我们必须进行干预。



我们去哪



现在,我们正在培训值班管理员以使用ELK。服务员学会在仪表板上评估情况并做出决定:是时候升级到FortiWeb专家了,否则将有足够的WAF策略自动抵御攻击。这样,我们可以减少夜间信息安全工程师的工作量,并在系统级别划分支持角色。对FortiWeb的访问仅停留在网络防御的中心,只有在迫切需要时,他们才能更改WAF设置。



我们还致力于为客户提供报告。我们计划在客户的个人帐户中提供有关WAF工作动态的数据。 ELK将使情况变得更加透明,而不必亲自前往WAF。



如果客户想实时观看自己的保护,ELK也将派上用场。我们无法访问WAF,因为客户对工作的干预会影响其他人。但是您可以提出一个单独的ELK并将其“播放”。 



这些是使用我们最近累积的“圣诞树”的方案。在此分享您的想法,不要忘记正确配置所有内容,以避免数据库泄漏。 



All Articles