如何防止强力攻击在防火墙后面托管的 Wordpress (和类似) 服务

如何防止强力攻击在防火墙后面托管的 Wordpress (和类似) 服务

44392
Created On 09/25/18 18:59 PM - Last Modified 06/05/23 20:31 PM


Resolution


问题︰

当您承载的服务容易受到蛮力攻击到 web 登录表单时, 除非他们在防火墙后面淹没服务器, 否则不容易检测到此类攻击。此外, 帕洛阿尔托网络防火墙的其他控制和功能可以防止攻击。但是, 如果攻击不是过度攻击而是持久性的, 那么它可能不会被其他控件阻止。

 

仅在防火墙日志中诊断这些攻击对某些服务 (例如 Wordpress) 来说可能很困难, 因为登录表单响应 HTTP 状态代码 200 (OK), 而不管登录是否成功。唯一的区别是成功登录之后将用户重定向到管理页。但是对成功或失败的初始响应总是 HTTP 状态代码200。获得对成功和失败的相同响应意味着我们无法区分一个好的错误响应, 但是, 如果我们看到在通信日志中的后续尝试, 同一 IP 源在相对短的时间内访问包含 "wp 登录" 字符串的 URL 间隔, 我们可以相当肯定有人没有登录 Wordpress 网站, 并再次尝试。如果他们是非常执着的, 并不断尝试数小时和数小时, 很可能是对您的 Wordpress 安装的蛮力攻击没有被传统的控制阻止。

 

自定义签名中的解决方案

输入自定义签名: 让我们配置这个, 这样我们就可以阻止在20秒内尝试超过5次登录的任何源 IP 地址-任意选择的价值, 很少的经验-调整根据您的需要和经验。我的方法是将这些值收紧到任何不会阻碍多的普通用户每天访问网站.

 

为了防止对用户产生负面影响, 我们首先需要检测登录事件本身, 然后计算指定时间间隔内的尝试次数。这可以在两个步骤中完成-通过首先创建一个基本签名来检测登录事件, 然后创建一个组合签名, 在给定的时间间隔内将重复命中计数到基本签名 (在20秒内5次登录)。

 

快速、可下载的解决方案

只需从文档底部下载附件, 然后将其导入到防火墙中。要导入, 请登录到 WebGUI, 选择 "对象" 选项卡, 然后将左窗格浏览到自定义对象 >> 漏洞。在页面的左下角, 单击 "导入"。然后打开文件并根据需要调整值并提交。请继续阅读以了解您可以调整的内容以及原因。

 

创建基签名

要开始创建签名, 请登录到防火墙的 Web GUI, 然后在 "对象" 选项卡下, 将左窗格浏览到自定义对象 >> 漏洞。在页面的左下角, 单击 "添加", 然后让我们继续创建自定义签名。

 

配置选项卡

配置以下内容:

基本规则-配置选项卡

  • 威胁 ID: 任意数字在41000和45000之间-我选择了43434。
  • 产品名称: BF 基 (任意选择)
  • 严重性: 信息-这很重要。您希望基签名具有信息性或低严重性, 因为您通常会对低/信息严重程度而不是 "阻止" 执行 "警报", 就像对中/高/临界严重性级别一样。我们不想选择 "阻止", 因为访问 wp 的单个实例也会触发此基本漏洞。相反, 我们将创建一个高严重性的组合签名, 这将在短时间内由来自同一 IP 源的此基签名的重复触发器触发。
  • 方向: 两者。
  • 默认操作: 警报-正如前面提到的, 我们不想阻止每个人都碰到这个规则, 只有那些在短时间间隔内从相同的源 IP 地址重复命中的人。
  • 受影响的系统: 客户端和服务器

 

签名选项卡

我们需要配置以下项目:

基本规则-签名选项卡

选择 "标准", 然后单击 "添加" 以配置签名详细信息, 例如:

基本规则-标准签名

标准: WP-登录失败 (任意名称, 这一个是自我描述)。

作用域: 会话-我们正在识别一个由两个事务组成的 http 会话-第一个是 http 请求, 该 URL 在其路径中包含 "wp 登录", 而第二个事务是带有状态代码200的 http 响应。

有序条件匹配: 是-我们预计此会话将由以特定顺序 (响应总是由请求引起) 的事务组成。

 

第一个条件

单击 "添加或条件" 以添加第一个条件, 然后配置:

基本规则-标准规则的第一个条件

运算符: 模式匹配-我们将使用 regex 模式在 URL 请求中捕获 "wp 登录" 字符串。

上下文: http-要求-uri-路径-我们将匹配它在 http 请求 URL 路径的内部。

模式: wp \ 登录-我们需要使用的转义 "-" 符号与反斜线。我们需要至少7字符匹配;如果您有用于 wp 登录的自定义 URL, 或者您正在与其他 web 服务匹配, 请相应地更改它。 在这里可以找到更多关于模式创建和 regex 的引用.

 

第二个条件

单击 "添加或条件" 以添加第二个条件并配置:

基本规则-标准规则的第二个条件

运算符: 等于

上下文: http-rsp-代码

值: 200-我们正在寻找一个 HTTP 响应与状态代码 200 (OK)。

 

创建组合签名

现在, 我们创建了基础签名, 让我们继续并创建一个组合签名。再次单击屏幕左下角的 "添加" 以配置开始。

 

配置选项卡

我们需要配置以下内容:

组合规则-配置选项卡

 

  • 威胁 ID: 任意数字在41000和45000之间, 我选择 43435, 因为以前是 43435:)
  • 名称: BruteForce (任意选择)
  • 严重性: critica-这很重要, 您希望此签名具有高或严重的严重性, 因为我们检测到蛮力试图闯入您的服务。
  • 默认操作: 阻止 IP-我们将进一步定义此操作:
  • 跟踪: 源-我们将阻止源 IP 地址, 在这种情况下, 我们不想阻止目标, 因为这是我们的服务器在防火墙内。以前的基本规则使用了一个 "有序会话" 的想法, 第一次交易的请求的 wp-登录和响应200对它;因此, 会话源是外部攻击者。
  • 持续时间:60-这是我们希望这个街区发生多久, 最多一小时 (3600 秒) 的持续时间。虽然我们的演示阻止源 IP 仅连接60秒, 但在生产的严格设置中, 您可以将其提高到3600秒;这应该足以阻止任何攻击者-他们可以尝试中断只强迫5密码一小时。
  • 方向: 两个
  • 受影响的系统: 服务器

签名 "选项卡

现在, 我们需要将它与我们的基本签名相关联。在此选项卡上, 选择:

签名: 组合

并继续配置子选项卡:

组合签名

组合规则-签名选项卡

威胁 id: 单击 "添加或条件", 然后键入 43434 (或为基础签名选择的任何威胁 ID)。

 

时间属性

组合规则时间属性选项卡

点击次数: 5 每20秒-这是最后一部分, 我们正在设置将触发我们的基本签名的值。这可以根据您的经验进行调整。你可以在1-3600 秒内计算1-255 次命中之间的任何内容。

聚合条件: 源-我们将计算每个源 IP 地址的触发器。

 

更多详细信息

目前, 漏洞列表中的威胁 ID 37480 是 Wordpress 登录的 PAN 签名;它还具有信息严重性, 可作为上面示例中的基本签名使用。本文应该为您学习如何创建和自定义任何签名带来价值, 以防您有自定义的登录 url, 或者您正在使用类似于上文所述案例的其他服务。

 

结论

您的最终配置将显示两个自定义漏洞, 以帮助您防止对防火墙后面托管的 Wordpress 站点进行强力攻击。然而, 通过一点点的修补, 您还可以保护大量不同的服务, 减轻一些工作从专用 WAF 和提供额外的价值超出常规签名。

最终视图

 

如果您喜欢为您的设备创建自定义签名的想法, 请访问我们的社区页面以了解自定义签名.

 



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClSTCA0&lang=zh_CN&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language