如何分析网站被黑后的日志

我们的一个networking项目被黑了。 Malefactor改变了项目中的一些模板文件和web-framework的一个核心文件(这是着名的php框架之一)。 我们通过git发现了所有损坏的文件并将它们还原。 所以现在我需要find弱点。

很有可能我们可以说,这不是ftp或ssh密码绑定。 主机提供商的支持专家(日志分析后)说,这是我们代码中的安全漏洞。

我的问题:

1)我应该使用什么工具来查看Apache的访问和错误日​​志? (我们的服务器发行版是Debian)。

2)你能在日志中写下可疑行检测的提示吗? 也许教程或一些有用的正则expression式或技术的引物?

3)如何将“正常用户行为”与日志中的可疑行为分开。

4)有什么办法来防止在Apache的攻击?

谢谢你的帮助。

像HopelessNOOb,我build议得到一些专业的帮助。

当你知道一个系统已经被破坏时,你不能依赖存储在其上的任何数据。 而且,如果妥协是通过HTTP进行的,那么标准日志中可能没有足够的信息来分离发生的事情。 这就是为什么那些认真对待web服务器安全的人会使用类似mod_security的东西来获取更详细的日志,并运行一个基于主机的IDS来检测攻击。

主机提供商的支持专家(日志分析后)说,这是我们代码中的安全漏洞

如果他/她能够提出这个要求,那么他/她必须已经知道你的问题的答案 – 要么这个要求没有被证实,他们真的要说,他们没有发现任何错误的东西。

您的目标应该是让您的网站恢复在线和安全。 为了使网站安全,你需要堵住每一个洞 – 但是为了妥协一个网站,你只需要find一个洞:你知道你的网站至less有一个洞,但你需要修复任何存在的 – 这意味着你需要采取一种非常不同的方法来保护您的网站安全。 即使你可以识别和修复这次被利用的漏洞,但证据显示,你没有任何过程和技能来确信这是一个孤立的事件。

你从JennyD得到了一个很好的答案,但我会build议一个不同的方法。

聘请专家。

有些安全专家实际上是为了谋生而做的,而且会做出更好,更快的工作来确定你是如何被黑客入侵的,以及你在哪里还是脆弱的。 看看当地的安全市场,如果在咨询服务上找不到合适的价格来分析您的日志,并且至less在您的系统上运行基本的渗透和漏洞扫描, )。 您可以更全面地了解您需要采取什么措施来保护您自己,并且您将能够回到您的专业领域。

1)你可以看看这些链接的一些软件来帮助你,虽然我没有用自己的大部分。 但是,考虑到你已经改变了文件的时间戳,从查看这些date和时间的日志文件开始。 grepreplace其中一个文件的文件名; 这应该给你的IP地址的malefactor,然后你可以开始grepping。

2和3)你需要做的第一件事是找出你自己的网站是正常的。 一种方法是使用标准分析工具,比如awstat,每天检查一次日志。 现在你的主要问题似乎是你不知道什么是你的网站的正常,所以你无法知道什么是exception的。

4)有办法阻止一些攻击,当然这是一场军备竞赛。 但是通过消除最常见的漏洞,你将使得你成为一个随机攻击的目标的可能性要小得多。 你应该确保你的安装有你的操作系统的最新安全补丁,对于apache和php。 您还应该看看mod_security ,它允许您logging可疑活动,并且例如要求客户端发送诸如User-Agent之类的头文件,许多破解工具不会这么做。

此外,我build议您考虑将日志(特别是错误日志和任何mod_security日志)发送到其他服务器(如果可能的话),以便即使有人设法进入服务器,也无法将日志文件编辑为隐藏他们的轨道。

除了这里的指导之外,这些主题将在安全堆栈交换中深入讨论。 阅读关于Apache强化的问题: https : //security.stackexchange.com/questions/77/485

您可能想查看LORG – https://github.com/jensvoid/lorg – 一个PHP-CLI工具(GPL),专门用于Apache access_logs的后期攻击。 它使用多种方法(基于签名,统计,基于学习)来检测HTTPD日志文件中针对Web应用程序的攻击。

它会尝试将这些可疑活动分组到会话中,并应用机器人检测技术(通常,攻击者可能会运行自动扫描,然后稍后再回来手动检查find的内容)。 此外,它使用geomapping和DNSBL查找来查看来自某个国家或僵尸networking的攻击。

之后,您可以select各种机制来确定攻击是否成功:主动重放和匹配签名,HTTP响应代码或响应大小(字节发送字段)的偏离程度。

显然,如果日志文件被更改或删除,事情可能会变得困难(LORG可以select执行一个简单的篡改检查来查找非活动的特殊时间窗口,但是这对您并不会有帮助)。

至于防止攻击,我会去与mod_security(如果您的主机提供商允许)。