gun*_*win 623 security hacking
这是关于服务器安全的规范问题- 响应违规事件(黑客攻击)
另请参见:
规范版本
我怀疑我的一台或多台服务器受到了黑客、病毒或其他机制的危害:
原版
2011.01.02 - 我在周日晚上 9.30 上班的路上,因为我们的服务器不知何故遭到入侵,导致对我们的供应商的 DOS攻击。访问 Internet 的服务器已关闭,这意味着我们的 5-600 多个客户站点现已关闭。现在这可能是 FTP 黑客攻击,或者某处代码中的一些弱点。我不确定,直到我到达那里。
我怎样才能快速追踪到这个?如果我不尽快备份服务器,我们将面临大量诉讼。任何帮助表示赞赏。我们正在运行 Open SUSE 11.0。
2011.01.03 - 感谢大家的帮助。幸运的是,我不是唯一负责这个服务器的人,只是最近的人。我们设法解决了这个问题,尽管它可能不适用于不同情况下的许多其他问题。我会详细说明我们做了什么。
我们从网络上拔掉了服务器。它正在印度尼西亚的另一台服务器上执行(试图执行)拒绝服务攻击,而犯罪方也在那里。
我们首先试图确定这是来自服务器上的哪个位置,考虑到我们服务器上有 500 多个站点,我们预计会在一段时间内兼职。然而,在 SSH 访问仍然存在的情况下,我们运行了一个命令来查找在攻击开始时编辑或创建的所有文件。幸运的是,有问题的文件是在寒假期间创建的,这意味着当时在服务器上创建的其他文件并不多。
然后,我们能够识别ZenCart网站内上传的图像文件夹内的违规文件。
在短暂的休息之后,我们得出结论,由于文件位置的原因,它一定是通过文件上传工具上传的,但该工具没有得到足够的保护。经过一番谷歌搜索,我们发现 ZenCart 管理面板中存在一个安全漏洞,允许上传文件以获取唱片公司的图片。(它从未真正使用过的部分),发布此表单只是上传了任何文件,它没有检查文件的扩展名,甚至没有检查用户是否已登录。
这意味着可以上传任何文件,包括用于攻击的 PHP 文件。我们在受感染站点上使用 ZenCart 保护漏洞,并删除了有问题的文件。
工作完成了,我在凌晨 2 点回家
道德 - 始终为 ZenCart 或任何其他 CMS 系统应用安全补丁。当安全更新发布时,全世界都意识到了这个漏洞。- 总是做备份,备份你的备份。- 雇用或安排在这种时候会在那里的人。防止任何人依赖服务器故障上的恐慌帖子。
Rob*_*oir 1034
很难从你在这里发布的内容中给出具体的建议,但我确实有一些基于我多年前写的一篇文章的通用建议,当时我仍然懒得写博客。
首先,除了从入侵之前的备份恢复系统之外,没有“快速修复”,这至少有两个问题。
黑客入侵他们的网络服务器的受害者不断地问这个问题。答案很少改变,但人们一直在问这个问题。我不知道为什么。也许人们只是不喜欢他们在寻求帮助时看到的答案,或者他们找不到他们信任的人来给他们建议。或者,也许人们阅读了这个问题的答案,并过多地关注了为什么他们的案例很特别并且与他们在网上找到的答案不同的 5% 并且错过了他们的案例足够接近的问题和答案的 95%正如他们在网上阅读的那样。
这让我想到了第一个重要的信息块。我真的很感激你是一片特别独特的雪花。我也很欣赏您的网站,因为它反映了您和您的企业,或者至少反映了您代表雇主的辛勤工作。但是对于外部的人来说,无论是计算机安全人员查看问题以尝试帮助您还是攻击者本人,您的问题很可能与他们遇到的所有其他情况至少有 95% 相同曾经看过。
不要把攻击个人化,也不要把这里遵循的建议或你从其他人那里得到的建议当作个人。如果您在成为网站黑客的受害者之后才阅读本文,那么我真的很抱歉,我真的希望您能在这里找到一些有用的东西,但这不是让您的自我妨碍您需要做的事情的时候做。
您刚刚发现您的服务器被黑了。怎么办?
不要恐慌。绝对不要仓促行事,也绝对不要试图假装事情从未发生过,根本不采取行动。
第一:明白灾难已经发生。现在不是否认的时候;现在是接受已经发生的事情、现实地看待它并采取措施管理影响后果的时候了。
其中一些步骤会受到伤害,并且(除非您的网站包含我的详细信息的副本)我真的不在乎您是否忽略所有或部分这些步骤,这取决于您。但是正确地遵循它们最终会使事情变得更好。该药的味道可能很糟糕,但有时如果您真的希望治疗有效,您就必须忽略这一点。
阻止问题变得比现在更糟:
不管你的客户让你告诉他们一个问题有多恼火,如果你不告诉他们,他们会更加恼火,而且只有在有人使用他们的信用卡详细信息收取价值 8,000 美元的商品后,他们才会发现自己从您的网站窃取。
还记得我之前说过的话吗?坏事已经发生了。现在唯一的问题是你如何处理它。
完全理解问题:
为什么不“修复”您检测到的漏洞或rootkit 并让系统重新联机?
在这种情况下,问题是您无法再控制该系统。它不再是你的电脑了。
确定您已控制系统的唯一方法是重建系统。虽然查找和修复用于闯入系统的漏洞有很多价值,但一旦入侵者获得控制权,您就无法确定对系统还做了什么(实际上,对于招募新成员的黑客来说,这并非闻所未闻)系统进入僵尸网络以修补他们自己使用的漏洞,保护“他们的”新计算机免受其他黑客的攻击,以及安装他们的 rootkit)。
制定恢复计划并使您的网站重新上线并坚持下去:
没有人愿意长时间离线。那是给定的。如果该网站是一种创收机制,那么将其快速恢复上线的压力将是巨大的。即使唯一受到威胁的是您/您公司的声誉,这仍然会产生很大的压力,需要迅速恢复原状。
但是,不要屈服于过快重新上线的诱惑。相反,尽快了解导致问题的原因并在您重新上线之前解决它,否则您几乎肯定会再次成为入侵的受害者,并记住,“被黑客攻击一次可以归类为不幸;之后再次被黑客攻击看起来很粗心”(向奥斯卡王尔德道歉)。
减少未来的风险。
您需要了解的第一件事是,安全性是您必须在设计、部署和维护面向 Internet 的系统的整个生命周期中应用的过程,而不是您可以像廉价一样在代码上打几层的东西画。为了确保安全,服务和应用程序的设计需要从一开始就将此作为项目的主要目标之一。我意识到这很无聊,而且您之前已经听过这一切,而且我“只是没有意识到让您的测试版 web2.0(测试版)服务在网络上进入测试版状态的压力人”,但事实是这一直保持被重复是因为它第一次说的时候是真的,而且还没有变成谎言。
你无法消除风险。你甚至不应该尝试这样做。但是,您应该做的是了解哪些安全风险对您很重要,并了解如何管理和减少风险的影响以及风险发生的可能性。
您可以采取哪些步骤来降低攻击成功的可能性?
例如:
您可以采取哪些步骤来减少成功攻击的后果?
如果您认为您家下层被淹的“风险”很高,但不足以保证搬家,您至少应该将不可替代的传家宝搬上楼。对?
......最后
我可能没有遗漏其他人认为重要的东西,但是如果您不幸成为黑客的受害者,上面的步骤至少应该可以帮助您开始整理事情。
最重要的是:不要惊慌。三思而后行。一旦你做出决定,就坚定地采取行动,如果你有什么要添加到我的步骤列表中,请在下面发表评论。
blu*_*ben 208
听起来好像有点过头了;没关系。打电话给你的老板,开始谈判紧急安全响应预算。10,000 美元可能是一个不错的起点。然后,您需要找人(PFY、同事、经理)开始致电专门从事安全事件响应的公司。许多人可以在 24 小时内做出回应,如果他们在您所在的城市设有办事处,有时甚至会更快。
您还需要有人来对客户进行分类;毫无疑问,已经有人这么做了。需要有人与他们通电话,以解释正在发生的事情、正在采取哪些措施来处理这种情况,并回答他们的问题。
那么,你需要...
保持冷静。如果您负责事件响应,那么您现在所做的工作需要表现出最大的专业精神和领导能力。记录您所做的一切,并让您的经理和执行团队了解您所采取的主要行动;这包括与响应团队合作、禁用服务器、备份数据以及重新上线。他们不需要血腥的细节,但他们应该每 30 分钟左右收到您的来信。
现实点。您不是安全专家,有些事情您不知道。没关系。登录服务器并查看数据时,您需要了解自己的限制。轻轻踩踏。在您的调查过程中,请确保您不会踩踏重要信息或更改以后可能需要的内容。如果您感到不舒服或您在猜测,这是停下来找一位经验丰富的专业人士接手的好地方。
获取干净的 U 盘和备用硬盘。您将在这里收集证据。备份您认为可能相关的所有内容;与您的 ISP 通信、网络转储等。即使执法部门没有介入,万一发生诉讼,您也会希望这些证据证明您的公司以专业和适当的方式处理了安全事件。
最重要的是止损。识别并切断对受损服务、数据和机器的访问。最好是拔掉他们的网线;如果你不能,那就拉电源。
接下来,您需要移除攻击者并关闭漏洞。据推测,攻击者不再具有交互式访问权限,因为您拉了网络。您现在需要识别、记录(使用备份、屏幕截图和您自己的个人观察笔记;或者甚至最好从受影响的服务器上移除驱动器并制作完整的磁盘映像副本),然后删除他留下的任何代码和进程. 如果你没有备份,下一部分会很糟糕;您可以尝试手动将攻击者从系统中解开,但您永远无法确定是否获得了他留下的一切。Rootkit 是恶性的,并不是所有的都可以检测到。最好的反应是找出他用来入侵的漏洞,制作受影响磁盘的映像副本,然后擦除受影响的系统并从已知良好的备份重新加载。大学教师' 不要盲目相信你的备份;验证一下!在新主机再次上线前修复或关闭漏洞,然后再上线。
将您的所有数据整理成一份报告。此时漏洞已关闭,您有时间喘口气。不要试图跳过这一步;它甚至比过程的其余部分更重要。在报告中,您需要确定出了什么问题、您的团队如何响应以及您为防止此类事件再次发生而采取的步骤。尽可能详细;这不仅适用于您,也适用于您的管理层,并作为潜在诉讼中的辩护。
这是对要做什么的高度评价;大多数工作只是文档和备份处理。不要惊慌,你可以做到这一点。我强烈建议您获得专业的安全帮助。即使您可以处理正在发生的事情,他们的帮助也将是无价的,而且他们通常会配备设备,使流程更轻松、更快捷。如果你的老板对成本犹豫不决,提醒他与处理诉讼相比,这是非常小的。
我对你的情况表示安慰。祝你好运。
Zor*_*che 110
CERT 有一个很好的文档Steps for Recovering from an UNIX or NT System Compromise。本文档的具体技术细节有些过时,但很多一般性建议仍然直接适用。
基本步骤的快速总结是这样的。
我想特别指出 E.1 部分。
E.1. 请记住,如果机器受到威胁,则该系统上的任何内容都可能被修改,包括内核、二进制文件、数据文件、正在运行的进程和内存。一般来说,相信机器没有后门和入侵者修改的唯一方法是重新安装操作系统
如果您还没有像tripwire这样的系统,则无法100%确定您已经清理了系统。
Jak*_*org 67
Mat*_*och 52
罗伯特的“苦丸”答案是准确但完全通用的(嗯,就像你的问题一样)。如果您有一台服务器和 600 个客户端,这听起来确实像是您遇到了管理问题并且迫切需要全职系统管理员,但这对您现在没有帮助。
我经营着一家托管公司,它在这种情况下提供了一些帮助,因此我处理了许多受感染的机器,但也为我们自己处理了最佳实践。我们总是告诉我们受到损害的客户重建,除非他们不能绝对确定妥协的性质。从长远来看,没有其他负责任的路线。
但是,您几乎可以肯定只是脚本小子的受害者,他们想要 DoS 攻击的跳板、IRC 保镖或与您客户的站点和数据完全无关的东西。因此,作为重建时的临时措施,您可能会考虑在您的机器上安装一个重型出站防火墙。如果您可以阻止所有对您的站点运行并非绝对必要的出站 UDP 和 TCP 连接,您就可以轻松地使您的受感染设备对向您借用它的人无用,并将对您的提供商网络的影响降低到零。
如果您以前没有这样做过,并且从未考虑过防火墙,这个过程可能需要几个小时,但可能会帮助您恢复您的客户服务,冒着继续让攻击者访问您的客户数据的风险。既然您说一台机器上有数百个客户端,我猜您是在为小型企业托管小型宣传册网站,而不是 600 个充满信用卡号的电子商务系统。如果是这种情况,这对您来说可能是一个可以接受的风险,并且让您的系统恢复在线状态比在您恢复之前审核 600 个站点的安全漏洞更快。但是您会知道那里有哪些数据,以及您做出该决定时的舒适度。
这绝对不是最佳实践,但如果这不是您的雇主迄今为止发生的事情,请向他们挥手并要求特警队支付数万英镑,因为他们可能会认为是您的错(但这是不合理的! ) 听起来不像是实用的选择。
您的 ISP 在这里的帮助将非常重要 - 一些 ISP提供控制台服务器和网络引导环境(插入,但至少您知道要寻找什么样的设施),这将使您在与网络断开连接的情况下管理服务器。如果这是一个选项,请要求并使用它。
但从长远来看,您应该根据 Robert 的帖子和对每个站点及其设置的审核来计划系统重建。如果您无法将系统管理员添加到您的团队,请寻找托管主机交易,您可以向 ISP 支付系统管理帮助和 24 小时响应此类事情的费用。祝你好运 :)
Fil*_*erg 41
您需要重新安装。保存您真正需要的东西。但请记住,您的所有可运行文件都可能被感染和篡改。我在 python 中写了以下内容:http : //frw.se/monty.py 它在给定目录中创建所有文件的 MD5-sumbs,下次运行它时,它检查是否有任何更改,然后输出什么文件更改以及文件中更改的内容。
这对您来说可能很方便,可以查看是否定期更改奇怪的文件。
但是您现在唯一应该做的就是将您的计算机从互联网上移除。
Ale*_*huk 37
注意:这不是建议。我的特定事件响应协议可能不适用于 Grant unwin 的案例。
在我们的学术设施中,我们有大约 300 名只从事计算工作的研究人员。您有 600 个拥有网站的客户,因此您的协议可能会有所不同。
当服务器被入侵协议的第一步是:
dd开始进行验尸取证。查看日志,找出攻击的时间,找到当时被修改的文件。尝试回答如何?题。
即使“所有后门和 rootkit 都已清除”,也不要相信该系统 - 从头开始重新安装。
sys*_*138 31
以我有限的经验,Linux 上的系统妥协往往比 Windows 上的更“全面”。根工具包更有可能包括用自定义代码替换系统二进制文件以隐藏恶意软件,并且对内核进行热修补的障碍要低一些。此外,它是许多恶意软件作者的家庭操作系统。一般指导总是从头开始重建受影响的服务器,这是有原因的一般指导。
格式化那只小狗。
但是,如果你不能重建(或者权力不会让你在你强烈坚持它需要它的情况下重建它),你在寻找什么?
既然发现入侵已经有一段时间了,并且已经进行了系统恢复,那么他们入侵的痕迹很可能已经在踩踏中被踩踏以恢复服务。不幸的。
异常的网络流量可能是最容易发现的,因为这不涉及在机器上运行任何内容,并且可以在服务器启动并执行任何操作时完成。当然,假设您的网络设备允许端口跨越。你所发现的可能是也可能不是诊断性的,但至少它是信息。获得异常流量将是系统仍然受到威胁并需要扁平化的有力证据。说服 TPTB 重新格式化确实值得停机可能就足够了。
如果失败,请复制系统分区的 dd 副本并将它们安装在另一个盒子上。开始将内容与与受感染服务器处于同一补丁级别的服务器进行比较。它应该可以帮助您识别看起来不同的地方(再次是那些 md5sum),并且可能指向受感染服务器上被忽视的区域。这是对目录和二进制文件的大量筛选,并且相当费力。它甚至可能比重新格式化/重建更加劳动密集型,并且可能是另一件事,以实际进行真正需要的重新格式化。
小智 31
我想说@Robert Moir、@Aleksandr Levchuk、@blueben 和@Matthew Bloch 在他们的回复中都非常准确。
但是,不同的发帖人的答案各不相同——有些人更高级,谈论你应该有什么程序(一般来说)。
我更愿意将其分成几个单独的部分 1) 分类,又名如何处理客户和法律影响,并确定从那里去哪里(罗伯特和@blueben 很好地列出了 2)影响的缓解 3 ) 事件响应 4) 事后取证 5) 修复项目和架构更改
(在此处插入样板 SANS GSC 认证响应声明)根据过去的经验,我会说以下内容:
无论您如何处理客户响应、通知、法律和未来计划,我都更愿意关注手头的主要问题。OP 的原始问题实际上只与 #2 和 #3 直接相关,基本上,如何阻止攻击,让客户尽快以原始状态重新上线,这已在回复中得到了很好的涵盖。
其余的回应都很棒,涵盖了许多已确定的最佳实践和方法,以防止将来发生这种情况并更好地对其做出反应。
这实际上取决于 OP 的预算以及他们所在的行业领域,他们想要的解决方案是什么等等。
也许他们需要聘请专门的现场 SA。也许他们需要一个保安人员。或者他们可能需要一个完全托管的解决方案,例如 Firehost 或 Rackspace Managed、Softlayer、ServePath 等。
这真的取决于什么对他们的业务有用。也许他们的核心竞争力不在于服务器管理,他们尝试开发它没有意义。或者,也许他们已经是一个非常技术性的组织,可以做出正确的招聘决定并组建一支全职的敬业团队。
gun*_*win 27
在开始工作并查看服务器后,我们设法找出了问题所在。幸运的是,有问题的文件是在星期天上传到系统的,当时办公室关闭,除了日志和缓存文件外,不应创建任何文件。使用一个简单的 shell 命令找出当天创建了哪些文件,我们找到了它们。
所有有问题的文件似乎都在我们一些较旧的 zencart 网站上的 /images/ 文件夹中。似乎存在一个安全漏洞,允许(使用 curl)任何白痴将非图像上传到管理部分的图像上传部分。我们删除了有问题的 .php 文件,并修复了上传脚本以禁止任何非图像文件上传。
回想起来,这很简单,我在上班途中在 iPhone 上提出了这个问题。谢谢大家的帮助。
供以后访问此帖子的任何人参考。我不建议拔掉电源插头。
HBr*_*ijn 18
我对广泛的技术答案几乎没有贡献,但也请注意其中的一些:
内部报告事件。
如果您还没有可能看起来像是 CYA 技术的事件响应计划,但 IT 部门并不是确定受感染服务器的业务影响的唯一场所,通常甚至不是最佳场所。
业务需求可能胜过您的技术问题。不要说“我早就告诉过你了”,而且业务问题的优先级是您首先拥有此受损服务器的原因。(“把那个留给事后报告。 ”)
掩盖安全事件不是一种选择。
向地方当局报告。
ServerFault 不是提供法律建议的地方,但这应该包含在事件响应计划中。
在某些地方和/或受监管行业,必须向当地执法机构、监管机构报告(某些)安全事件或通知受影响的客户/用户。
无论如何,报告的决定和实际报告都不是完全由 IT 部门做出的。期待管理层、法律和企业传播(营销)部门的参与。
您可能不应该期望太多,互联网是一个边界没有意义的大地方,但是许多警察部门中存在的网络犯罪部门确实解决了数字犯罪并可能将罪犯绳之以法。
Aar*_*son 16
我认为这一切都归结为:
如果你重视你的工作,你最好有一个计划,并定期修改它。
不计划就是计划失败,这在系统安全领域是最真实的。当<redacted>受到欢迎时,你最好做好应对的准备。
还有一句(有些陈词滥调)在这里适用:预防胜于治疗。
这里有很多建议可以让专家审计您现有的系统。我认为这是在错误的时间提出问题。这个问题应该在系统安装到位时提出,并记录答案。此外,问题不应该是“我们如何阻止人们闯入?” 应该是“为什么人们能够闯入?” 审计网络中的一堆漏洞只会在发现并利用新漏洞之前有效。另一方面,从头开始设计的网络仅以某些方式以精心编排的舞蹈对某些系统做出响应,根本无法从审计中受益,而且资金将被浪费。
在将系统放到互联网上之前,问问自己 - 这是否需要 100% 面向互联网?如果没有,不要。考虑把它放在防火墙后面,你可以决定互联网看到什么。更好的是,如果所述防火墙允许您拦截传输(通过反向代理或某种直通过滤器),请查看使用它来仅允许发生合法操作。
这已经完成了 - 某处有(或曾经)有一个网上银行设置,它有一个面向互联网的负载平衡代理,他们将用它来将攻击从他们的服务器池中引导出去。安全专家 Marcus Ranum 说服他们采取相反的方法,通过使用反向代理仅允许已知的有效 URL 通过并将其他所有内容发送到 404 服务器。它经受住了时间的考验,出奇地好。
一旦发生您没有预见到的攻击,基于默认许可的系统或网络就注定要失败。默认拒绝使您可以更好地控制进入和不进入的内容,因为除非非常需要,否则您不会让外部看到内部的任何东西。
也就是说,所有这些都不是自满的理由。在违规后的最初几个小时内,您仍然应该制定计划。没有系统是完美的,人类会犯错。
ah8*_*h83 16
一个不错的在线用户最近帮助我找出攻击者如何破坏系统。一些破解者试图通过伪造文件的修改时间来隐藏他们的踪迹。通过更改修改时间来更新更改时间 (ctime)。你可以用stat看到ctime。
这一行列出了按 ctime 排序的所有文件:
find / -type f -print0 | xargs -0 stat --format '%Z :%z %n' | sort -nr > /root/all_files.txt
Run Code Online (Sandbox Code Playgroud)
因此,如果您大致知道妥协的时间,您就可以看到更改或创建了哪些文件。
| 归档时间: |
|
| 查看次数: |
150552 次 |
| 最近记录: |