消除你能找到的弱点。
保持软件最新、删除废弃的组件、限制访问并维护可恢复的备份。
您的网站不需要很有名就会受到攻击。自动化工具不断扫描互联网,寻找任何犯下有用错误的网站。良好的安全性归结为两项工作:消除您所知道的弱点,然后停止您无法预测的危险行为。
大多数网站攻击都是自动化的。扫描器从一个地址移动到另一个地址,识别软件,测试常见的登录路径,并探测已知的漏洞。他们并不关心您的网站是否属于跨国公司或邻里俱乐部。如果该漏洞有效,则该网站是有用的。
这改变了“为什么有人会攻击我?”的问题。到“当自动攻击到达我的网站时会发生什么?”
安全问题攻击者只需获胜一次。你必须让攻击每次都失败。
保持软件最新、删除废弃的组件、限制访问并维护可恢复的备份。
验证客户端、检查请求并防止未经授权的文件、帐户和数据库更改。
阻止漏洞利用的最简单方法是在攻击者触及漏洞之前将其删除。这是基础工作,但基础工作可以防止很大的损害。
将 CMS、插件、主题、PHP 和服务器包保留在受支持的版本上。
不活动或废弃的插件仍然可以让攻击者可以使用代码和文件。
使用唯一的密码、多重身份验证以及每个人所需的最小权限。
将备份存储在远离网站的地方,并确认您可以在紧急情况之前恢复它们。
继续打补丁。只是不要将补丁计时作为唯一的安全边界。
软件是由人编写的,人也会犯错误。在有人报告之前,漏洞可能会存在数月。披露后,开发人员需要时间来生成修复程序,安全行业需要时间来构建规则,网站所有者仍然需要安装更新。
攻击者只需要该时间线上的一个有用的间隙。您的网站必须克服每一个差距。
可能没有人知道它在那里。
利用可能在披露之前就开始了。
补丁或防火墙规则变得可用。
已知的开口终于关闭了。
很难描述攻击者可能发送的每个请求。更实际的做法是验证您的网站旨在服务的客户,然后限制其他一切。
大多数公共网站流量来自两大群体:使用真实网络浏览器和自动化服务(例如搜索爬虫、正常运行时间监视器、支付系统和集成工具)的人们。两个团体都可以在其中使用他们想要的任何名称 User-Agent 标头。一个自称 Googlebot 的脚本在其身份得到验证之前仍然只是一个脚本。
轻量级 JavaScript 检查可以确认自称是现代浏览器的客户端可以表现得像现代浏览器。
可以根据预期的网络和 DNS 记录检查已知的机器人,而不是仅仅信任名称。
这并不意味着盲目阻止每一个不熟悉的客户。公共 API、网络钩子、辅助工具和连接的服务可能需要仔细限定范围的例外。目标很简单:只为每个客户端提供其所需的访问权限,并且不为未经验证的自动化工具提供与受信任的管理员相同的自由。
攻击在边缘可能看起来很普通,因为它以未经授权的方式使用真实功能。最强的最终控制询问请求在应用程序内试图做什么。
合法: 授权管理员安装经过审查的插件。
攻击: 未经身份验证的漏洞利用易受攻击的上传处理程序编写 PHP 后门。
两个路径都写入一个文件。授权使一种行为可以接受,而另一种行为则变得危险。
限制扫描仪、假冒浏览器和未知的自动化。
在易受攻击的代码处理恶意输入之前阻止它。
拒绝未经授权的文件、帐户、数据库和网络操作。
发现可疑的变化并调查需要注意的地方。
您不需要立即解决所有安全问题。从消除最容易妥协的路径的更改开始。
安装当前的 CMS、插件、主题、PHP 和服务器版本。
删除不再有目的的代码和访问。
使用密码以外的方式保护管理员和托管帐户。
确保最近的备份存在并且确实可以恢复。
使用客户端验证、WAF、运行时控制、扫描和有用日志。
更改保护后检查登录、表单、结账、上传、API 和计划任务。
没有任何单一设置可以使网站无懈可击。良好的安全性可以减少机会、限制影响并保留恢复的途径。
不。更新是必要的,但在补丁可用之前或安装之前,缺陷可能会被利用。将更新与访问控制、客户端验证、请求过滤、运行时强制、监控和测试备份一起使用。
攻击者可能永远不会看到您的主页。自动化工具会扫描互联网的大部分内容并测试响应的站点。受感染的站点可用于发送垃圾邮件、重定向、凭据盗窃、恶意软件托管、搜索操纵或对其他系统的攻击。
不会。防火墙是一个重要的层,但某些漏洞利用看起来合法的请求或规则尚未识别的目标行为。运行时控件通过在代码执行时检查敏感操作来提供另一个边界。
不需要。搜索爬虫、支付服务、监控工具、API 和集成可能是必要的。验证已知服务,默认限制未知自动化,并创建合法功能所需的最窄例外。
保留日志和证据,必要时隔离站点,审核特权帐户和持久性,扫描文件和数据库,轮换凭据,并在适当时从经过验证的干净备份进行还原。不要认为安装更新可以消除现有的危害。
BitFire 将经过验证的机器人控制、自适应 Web 应用程序防火墙、恶意软件分析和 PRO 运行时实施整合到一个 WordPress 安全系统中。