彻底破坏根源后重新安装?


58

在阅读了有关服务器受损的问题之后,我开始怀疑为什么人们似乎仍然相信他们可以使用检测/清除工具或仅通过修复用于破坏系统的漏洞来恢复受损的系统。

考虑到所有各种根工具包技术以及黑客可以做的其他事情,大多数专家建议您应该重新安装操作系统

我希望能得到一个更好的主意,为什么越来越多的人不只是起飞和核弹从轨道系统。

我想谈谈以下几点。

  • 是否存在格式/重新安装无法清除系统的情况?
  • 您认为在什么类型的条件下可以清洗系统,以及何时必须完全重新安装?
  • 您反对完全重新安装有什么理由?
  • 如果您选择不重新安装,那么您将使用哪种方法来确信自己已清洗并防止再次发生任何进一步的损坏。

Answers:


31

安全决策最终是关于风险的业务决策,就像将什么产品推向市场一样。在这种情况下构架时,决定不进行拉平和重新安装是很有意义的。如果从技术角度严格考虑它,则不会。

以下是该业务决策通常采用的方法:

  • 我们的停机时间会给我们造成多少损失?
  • 当我们不得不向客户透露我们为何倒下的原因时,我们可能要付出多少费用?
  • 我还需要进行哪些其他活动来使人们远离以进行重新安装?费用是多少?
  • 我们有合适的人知道如何正确启动系统吗?如果没有,当他们对错误进行故障排除时,将花费我多少钱?

因此,当您像这样增加成本时,可以认为继续使用“潜在”受损的系统比重新安装系统更好。


1
请花些时间阅读Richard Bejtlich在“ 廉价的IT最终成本
乔什·布劳

2
我考虑了一段时间,无法提出为什么部署可能会受到威胁的系统更有意义的原因。
duffbeer703 2009年

1
我也不想部署或保持在线状态,因为我知道该系统已经受到威胁。但这是我作为技术人员。我不同意Bejtlich的观点,因为尽管他说这是一项预防损失的措施,但企业却不这样对待。商业从风险角度看待它,这是理所当然的。例如,在发生诉讼时,他们可能会依靠保险来承保,这就是他们应对风险的方式。理查德没有在他的论点中考虑这一点。我没有说我同意这种想法,但这就是您如何理解它的意思,这就是OP所要求的。
K. Brian Kelley

在某种程度上,我也不同意贝伊蒂里奇,但我至少要引用他的最后一句话,因为这为讨论增加了另一个层面:“衡量”风险是一个笑话。衡量损失几乎是不可能的。(告诉我,在接下来的10年中,竞争对手会窃取数据以改进其产品时,您会损失多少)。衡量成本是最有可能产生可信赖结果的方法,因为您可以跟踪离开公司的钱。衡量成本是我所指的在这篇文章中。我很想衡量损失,但它不会产生实数。衡量风险是一个巨大的猜测。”
乔什·布罗维尔

...但是我们的整个保险业和民事法院系统都是基于衡量风险并将美元数字计入损失的。因此,显然这种方法对负责人可以接受的。
Brian Knoblauch

30

基于我很久以前写的一篇帖子,当时我仍然可以打扰写博客。

黑客入侵他们的Web服务器的受害者不断重复问这个问题。答案很少改变,但是人们一直在问这个问题。我不知道为什么。也许人们只是不喜欢在寻求帮助时看到的答案,或者找不到可以信任的人来提供建议的人。或者,人们可能会阅读该问题的答案,而过分关注为什么案例的特殊性和他们在网上找到的答案有5%的差异,而错过了95%的问题并在案例足够接近相同的地方回答作为他们在线阅读的内容。

这使我进入了第一个重要的信息领域。我真的很感谢您是一个特别的独特雪花。我也很欣赏您的网站,因为它反映了您和您的业务,或者至少反映了您代表雇主的辛勤工作。但是对于外面的某个人来说,无论是计算机安全人员正在查看问题以尝试帮助您,甚至是攻击者本人,您的问题很可能与他们遇到的其他所有案例至少具有95%的相同性曾经看过。

不要亲自进行攻击,也不要遵循此处提出的建议或您从其他人那里得到的建议。如果您只是在成为网站黑客的受害者后才读这篇文章,那么我真的很抱歉,我真的希望您能在这里找到有用的东西,但这不是时候让您的自我阻碍您的需要做。

您刚刚发现服务器被黑客入侵。怎么办?

不要惊慌。绝对不要仓促行事,绝对不要试图假装从未发生过的事情,甚至根本没有采取任何行动。

第一:了解灾难已经发生。现在不是拒绝的时候。现在是时候接受发生的事情,对之现实,并采取措施管理影响的时机。

其中一些步骤会很受伤,并且(除非您的网站保留了我的详细信息的副本),否则我真的不在乎您是否忽略所有或部分这些步骤,但这样做最终会使情况变得更好。这种药可能很难吃,但有时如果您真的想治愈该药,就不得不忽略它。

阻止问题变得比现在更严重的问题:

  1. 您应该做的第一件事是将受影响的系统与Internet断开连接。无论您有任何其他问题,使系统保持与网络的连接都只会使攻击继续进行。我的意思是从字面上看。如果需要的话,请有人亲自访问服务器并拔下网络电缆,但是在尝试执行其他操作之前,请先将受害者从其抢劫犯中断开。
  2. 更改与受感染系统位于同一网络上的所有计算机上所有帐户的所有密码。不完全是。所有帐户。所有计算机。是的,您是对的,这可能太过分了;另一方面,可能不会。你都不知道,是吗?
  3. 检查您的其他系统。要特别注意其他面向Internet的服务以及那些拥有财务或其他商业敏感数据的服务。
  4. 如果系统拥有任何人的个人数据,请立即向可能受到影响的任何人进行全面而坦率的披露。我知道这很艰难。我知道这会很疼。我知道许多企业都希望在地毯下解决此类问题,但恐怕您将不得不对其进行处理。

还在犹豫要不要走最后一步?我知道,我知道。但是这样看:

在某些地方,您可能有法律要求将这种侵犯隐私行为告知当局和/或受害者。但是,让您的客户感到烦恼的可能是让您告诉他们有关问题的信息,如果您不告诉他们,他们将更加烦恼,并且只有在有人使用他们的信用卡详细信息向他们收取了价值8,000美元的商品后,他们才会自己发现从您的网站上偷了。

还记得我之前说的话吗?坏事已经发生了。现在唯一的问题是您处理得如何。

充分理解问题:

  1. 在此阶段完全完成之前,请勿使受影响的系统重新联机,除非您想成为其职位实际上是我决定撰写本文的引爆点的人员。我没有链接到该帖子,因此人们可以笑得很开心。我谨向您发出警告,告知您如果不遵循此第一步的后果。
  2. 检查“受攻击”的系统,以了解攻击如何成功破坏了您的安全性。尽一切努力找出攻击的“发源地”,以便您了解要解决的问题,以确保将来系统安全。
  3. 这次再次检查“受攻击”的系统,以了解攻击发生的位置,以便您了解攻击中哪些系统受到了攻击。确保您跟踪所有暗示受损系统可能成为进一步攻击系统的跳板的指针。
  4. 确保完全理解任何攻击中使用的“网关”,以便您可以开始正确关闭它们。(例如,如果您的系统受到SQL注入攻击的危害,那么不仅需要关闭破解它们的特定缺陷代码行,还需要审核所有代码以查看是否存在相同类型的错误在其他地方制作)。
  5. 了解攻击可能会因多个缺陷而成功。通常,攻击不会通过发现系统中的一个主要错误而成功,而是将几个问题(有时是次要的和琐碎的问题)放在一起构成系统漏洞。例如,使用SQL注入攻击将命令发送到数据库服务器,发现要攻击的网站/应用程序是在管理用户的上下文中运行的,并使用该帐户的权限作为踏脚石来破坏其他用户的网站一个系统。或像黑客那样称呼它:“另一天在办公室利用人们常犯的错误”。

制定恢复计划,并使您的网站恢复在线并坚持使用:

没有人想拥有更长的离线时间。那是给定的。如果该网站是一种创收机制,那么将其迅速恢复在线的压力将非常巨大。即使唯一的问题是您/您公司的声誉,这仍然会产生很大的压力,需要迅速恢复。

但是,不要屈服于太快地上网的诱惑。而是尽可能快地移动,以了解引起问题的原因并在重新上网之前解决问题,否则您几乎肯定会再次成为入侵的受害者,并记住:“一旦被黑客入侵,可被视为不幸;再次被黑客入侵看起来像是粗心”(对奥斯卡·王尔德表示歉意)。

  1. 我假设您在开始本节之前就已经了解了导致成功入侵的所有问题。我不想高估这个案子,但是如果您没有先做那件事,那么您确实需要这么做。抱歉。
  2. 切勿支付敲诈/保护金。这是一个简单标记的标志,您不希望使用该短语来形容您。
  3. 不要试图在不进行完全重建的情况下将同一台服务器重新联机。与在旧系统上审核每个系统的每个角落以确保其干净之前,在旧硬件上构建新盒子或“从轨道上将服务器核对并进行全新安装”要快得多。再次在线。如果您不同意这一点,那么您可能不知道确保完全清洁系统的真正含义是什么,否则您的网站部署过程将是一团糟。您大概拥有站点的备份和测试部署,可以用来构建实时站点,如果不这样做,那么被黑不是您的最大问题。
  4. 在重用被黑客入侵时“活”在系统上的数据时要非常小心。我不会说“从不做”,因为您只会无视我,但是坦率地说,当您知道无法保证数据的完整性时,您确实需要考虑保留数据的后果。理想情况下,您应该从入侵之前进行的备份中还原它。如果您不能或不会这样做,则应格外小心,因为它已污染。如果此数据属于客户或站点访问者而不是直接属于您,则您应该特别注意对他人的后果。
  5. 仔细监视系统。您应该下定决心,将其作为未来的一个持续过程(在下文中进行更多介绍),但是在网站重新上线后的这段时间内,您要付出更多的努力来保持警惕。入侵者几乎肯定会回来,而且如果您能发现他们试图再次闯入,您肯定可以很快看到您是否真的已经关闭了他们之前使用过的所有漏洞以及他们自己制造的任何漏洞,并且您可能会收集到有用的信息。您可以传递给当地执法部门的信息。

减少未来的风险。

您需要了解的第一件事是,安全性是您必须在设计,部署和维护面向Internet的系统的整个生命周期中应用的一个过程,而不是像廉价的那样之后可以在代码上打几层涂料。为了获得适当的安全,需要从一开始就设计服务和应用程序,并将其作为项目的主要目标之一。我意识到这很无聊,并且您之前已经听到了所有消息,并且我“只是没有意识到让您的Beta Web2.0(beta)服务成为Web上Beta状态的压力人”,但是事实是,这种情况一直存在被重复,因为它是第一次被说成是真的,并且还没有成为谎言。

您无法消除风险。您甚至都不应该尝试这样做。但是,您应该做的是了解哪些安全风险对您很重要,并了解如何管理和减少风险影响以及风险发生的可能性

您可以采取哪些步骤来降低攻击成功的可能性?

例如:

  1. 该漏洞是否可以使人们闯入您的站点,这是供应商代码中一个已知的错误,并且已有可用的补丁程序?如果是这样,您是否需要重新考虑如何在面向Internet的服务器上修补应用程序的方法?
  2. 导致人们入侵您网站的漏洞是供应商代码中一个未知的错误,而该补丁没有可用的补丁?我绝对肯定不提倡每当遇到这样的问题时更换供应商,因为它们都会遇到问题,如果采用这种方法,您最多将在一年内用尽平台。但是,如果系统不断让您失望,那么您应该迁移到更可靠的系统,或者至少重新架构系统,以使易受攻击的组件包裹在棉绒中,并尽可能远离敌对的眼睛。
  3. 该缺陷是您(或为您工作的承包商)开发的代码错误吗?如果是这样,您是否需要重新考虑如何批准将代码部署到实时站点的方法?是否可以通过改进的测试系统或对代码“标准”的更改来捕获该错误(例如,虽然技术不是灵丹妙药,但您可以通过使用有据可查的编码技术来降低成功进行SQL注入攻击的可能性。 )。
  4. 该缺陷是由于服务器或应用程序软件的部署方式存在问题引起的吗?如果是这样,您是否在可能的情况下使用自动化过程来构建和部署服务器?这些对于在所有服务器上保持一致的“基准”状态,最大程度地减少必须在每台服务器上进行的自定义工作量以及因此希望最大程度地减少犯错的机会很有帮助。代码部署也是如此-如果您需要执行“特殊”操作来部署Web应用程序的最新版本,则请尝试使其自动化并确保始终以一致的方式进行。
  5. 可以通过更好地监视系统来更早地发现入侵吗?当然,为您的员工提供24小时监视或“通话”系统可能并不划算,但是有些公司可以为您监视面向Web的服务并在出现问题时提醒您。您可能会决定自己负担不起或不需要它,这就很好了……只需考虑一下。
  6. 在适当的地方使用tripwire和nessus等工具,但不要盲目使用它们,因为我是这么说的。花时间学习如何使用一些适合您的环境的良好安全工具,保持这些工具的更新并定期使用它们。
  7. 考虑雇用安全专家来定期“审核”您的网站安全。再次,您可能会决定自己负担不起或不需要它,这很好...只考虑它。

您可以采取哪些步骤来减少成功攻击的后果?

如果您认为家庭洪水较低楼层的“风险”很高,但又不足以保证搬家,则至少应将不可替代的家庭传家宝搬到楼上。对?

  1. 您可以减少直接暴露给Internet的服务量吗?您能否在内部服务和面向Internet的服务之间保持某种距离?这样可以确保即使您的外部系统受到损害,使用它作为跳板攻击内部系统的机会也会受到限制。
  2. 您是否在存储不需要存储的信息?您是否在“在线”存储此类信息,而该信息可能会在其他地方存档。这部分有两点:显而易见的一个原因是人们无法从您那里窃取您没有的信息,第二点是您存储的内容越少,维护和编写代码所需要的内容就越少,因此出现错误的机会就越少您的代码或系统设计。
  3. 您是否在Web应用程序中使用“最少访问”原则?如果用户仅需要从数据库中读取,则请确保该Web应用程序用于为其提供服务的帐户仅具有读取访问权限,不允许其具有写访问权限,当然也不允许其具有系统级访问权限。
  4. 如果您对某些事情不太有经验,并且对您的业务不是很重要,请考虑将其外包。换句话说,如果您经营一个讨论编写桌面应用程序代码的小型网站,并决定开始从该站点销售小型桌面应用程序,则可以考虑将您的信用卡订购系统“外包”给Paypal这样的人。
  5. 尽可能将灾难恢复计划中的从受感染的系统中进行恢复作为工作的一部分。可以说,这只是您可能会遇到的另一种“灾难情况”,只是其自身存在的问题和问题与通常的“服务器机房着火了” /不同,而是被巨型服务器吃狂子的东西所入侵。(根据XTZ编辑)

...最后

我可能没有遗漏其他人认为重要的东西,但是如果您不幸倒霉而成为黑客的受害者,那么上述步骤至少应该可以帮助您开始进行分类。

最重要的是:不要惊慌。三思而后行。做出决定后,请立即采取行动,如果有什么需要补充的话,请在下面发表评论。


+1,非常好,非常全面。
艾利·佩恩

谢谢艾弗里(Avery),我不确定您的照片说得快多少了,但我目前不在投票之列!
罗伯·摩尔

我希望SF能够将答案标记为收藏夹。似乎还有很多答案,我已经看到我想交叉发布或应该交叉发布。无论如何,我都是详尽答案的忠实拥护者-您最好完全了解所有内容,而不是仅了解其中一些内容。
艾利·佩恩

1
您需要添加的一件事,使它成为您的DR计划的一部分!!!小型公司可能只有几台服务器,这需要在事前加以考虑,事后要做的就是隔离,评估,核对,重建。
XTZ

不错的一个XTZ,就在清单上。
罗伯·摩尔

19

始终从轨道上推它。这是唯一可以确定的方法。

替代文字
(来源:flickr.com

大多数系统是具有内部隐式信任的整体实体。信任受到破坏的系统是一个隐含的陈述,您可以信任任何违反系统的人。换一种说法:

你不能相信它。不要打扰清洁。立即断开并隔离机器。在继续之前,请了解违规的性质,否则,请再次邀请同一件事。如有可能,请尝试获取违规的日期和时间,以便获得参考依据。之所以需要这样做,是因为如果要从备份中还原,则需要确保备份本身没有损害的副本。还原前请先擦拭-不要使用捷径。


6

实际上,大多数人不这样做是因为他们认为这会花费太长时间或破坏性很大。我已向无数客户建议继续存在问题的可能性,但是由于这些原因之一,决策者常常拒绝重新安装。

话虽这么说,在我确信我知道输入方法和破坏程度的系统(可靠的离线机器日志,通常带有IDS,也许是SELinux或类似的限制入侵范围的东西)上,无需重新安装即可进行清理,而不会感到内gui。


2

他们很可能没有经过足够测试的灾难恢复例程,以使他们对进行重建充满信心,或者不清楚将花费多长时间或会产生什么影响……或者备份不可靠,或者他们的风险分析师不了解受损系统的范围。我可以想到许多原因。

我想说,这在基本的常规和政策中主要是不对的,而这并不是您要公开承认的,而是采取防御性的立场。至少无论您从哪个角度看,我都无法看到或捍卫不擦除受损的系统。


2

我以前没有使用过该系统,因此我可以对它们进入的载体进行一些分析,然后对使用情况进行分析,以了解它们进入的位置。

扎根后-您将拥有一个活的蜜罐,它不仅可以提供破解功能,还可以提供更多功能。-特别是对于警察。

  • 那就是说我一直很沮丧,能够在热备用状态下获得一个干净的系统,并能够提供快速增强的网络安全性来隔离有根的机器。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.