您如何从上一个IT人员那里搜索后门?


358

我们都知道它发生了。一位痛苦的老IT 员工将后门留给了系统和网络,以便与新员工一起玩耍,并向公司展示没有他的情况是多么糟糕。

我从来没有亲身经历过。我经历过的最多的是一个在离开前就偷东西偷东西的人。不过,我敢肯定会发生这种情况。

因此,当接管一个不太值得信任的网络时,应采取什么步骤来确保一切安全。


8
+1,我喜欢这个问题。与新客户打交道时,这是我最不喜欢的事情,特别是如果最后一个人的条件不好时。
DanBig

95
我离开过的大多数地方,我不在那儿说“不要那样做”足以使网络瘫痪。我不需要离开后门。
Paul Tomblin

25
@Paul,这表明您没有正确记录文档。希望新手能够正确完成自己的工作。
约翰·加迪尼尔

71
@John,您的用户和同事阅读文档吗?我在哪里可以得到这些?
Paul Tomblin

18
@Paul,用户-不,他们为什么要这么做?同事(假设您是指IT人员)-是的。阅读文档应该是开始新工作的第一步。
约翰·加迪尼尔

Answers:


332

真的,真的,真的很难。它需要非常完整的审核。如果您确定老人留下的东西会繁荣起来,或者因为他们是唯一可以扑灭大火的人而要求他们重新雇用,那么该是时候假设您已经被一个人扎根了敌对党。像一群黑客进来偷东西一样对待它,您必须在他们混乱之后清理。因为那是事实。

  • 审核每个系统上的每个帐户,以确保其与特定实体相关联。
    • 看起来与系统相关联但没有人可以帐户的帐户将受到信任。
    • 与任何不相关的帐户都需要清除(无论如何都需要清除,但是在这种情况下,这一点尤其重要)
  • 更改他们可能已经接触过的所有密码。
    • 对于公用事业帐户而言,这可能是一个真正的问题,因为这些密码往往会被硬编码成东西。
    • 如果他们是响应最终用户呼叫的帮助台类型,请假定他们具有他们所协助的任何人的密码。
    • 如果他们具有Active Directory的Enterprise Admin或Domain Admin,则假定他们在离开之前已抓取了密码哈希的副本。现在可以如此快地破解这些密码,以至于需要在几天之内强制更改公司范围的密码。
    • 如果他们具有对所有* nix框的超级用户访问权限,则假定他们以密码哈希开头。
    • 查看所有公共密钥SSH密钥使用情况,以确保清除了它们的密钥,并审核当您使用它时是否暴露了任何私有密钥。
    • 如果他们可以访问任何电信设备,请更改任何路由器/交换机/网关/ PBX密码。这可能是一个真正的皇家痛苦,因为这可能会导致严重的停机。
  • 全面审核您的外围安全安排。
    • 确保所有防火墙漏洞都跟踪到已知的授权设备和端口。
    • 确保所有远程访问方法(VPN,SSH,BlackBerry,ActiveSync,Citrix,SMTP,IMAP,WebMail等)都没有附加的身份验证,并为未经授权的访问方法进行全面审查。
    • 确保远程WAN链接跟踪到已完全雇用的人员,并进行验证。尤其是无线连接。您不希望他们带着公司付费的蜂窝调制解调器或智能手机走开。请与所有此类用户联系,以确保他们拥有正确的设备。
  • 全面审核内部特权访问安排。这些是像SSH / VNC / RDP / DRAC / iLO / IMPI这样的对普通用户没有的服务器的访问,或者对诸如工资单之类的敏感系统的任何访问。
  • 与所有外部供应商和服务提供商合作,以确保联系正确。
    • 确保从所有联系人和服务列表中删除它们。无论如何,都应该在离开后进行此操作,但是现在非常重要。
    • 验证所有联系人是否合法并具有正确的联系人信息,这是为了查找可以冒充的幽灵。
  • 开始寻找逻辑炸弹。
    • 检查所有自动化(任务计划程序,cron作业,UPS呼出列表,或按计划运行或由事件触发的任何事物)是否存在恶意迹象。所谓“全部”,是指全部。检查每个crontab。检查监视系统中的每个自动操作,包括探针本身。检查每个Windows Task Scheduler;甚至工作站。除非您在高度敏感的地区为政府工作,否则您将无力承担全部费用。
    • 验证每台服务器上的关键系统二进制文件,以确保它们是应有的。这非常棘手,尤其是在Windows上,几乎不可能在一次性系统上进行追溯。
    • 开始寻找rootkit。根据定义,很难找到它们,但是有用于此目的的扫描仪。

至少不容易,甚至不遥不可及。如果没有确切的证据证明现任管理员实际上是邪恶的,就很难证明所有这些花费的合理性。以上全部内容甚至无法用于公司资产,这将需要雇用安全顾问来完成某些工作。

如果检测到实际的问题,尤其是在某种软件中发现了问题,则训练有素的安全专业人员将是确定问题范围的最佳方法。这也是可以开始建立刑事案件的关键,您确实希望受过处理证据的训练的人员进行此分析。


但是,实际上,您还需要走多远?这就是风险管理发挥作用的地方。简而言之,这是一种平衡预期风险与损失的方法。系统管理员做到这一点,当我们决定异地,我们希望把备份的位置; 银行保险箱与区域外数据中心。找出其中需要遵循的清单的数量是一项风险管理练习。

在这种情况下,评估将从以下几件事开始:

  • 离开者的预期技能水平
  • 离开者的通道
  • 对邪恶的期待
  • 任何邪恶的潜在破坏
  • 报告实施邪恶与先发发现邪恶的监管要求。通常,您必须报告前者,而不必报告后者。

决定将上述兔子洞下潜至多深取决于这些问题的答案。对于对邪恶的期望很小的例行行政离职,不需要马戏团。更改管理员级别的密码并重新键入任何面向外部的SSH主机可能就足够了。同样,企业风险管理安全状况决定了这一点。

对于因原因被终止或在原本正常离开后出现恶果的管理员,则更需要马戏团。最坏的情况是偏执狂BOFH型,他被告知他们的职位将在2周内被裁掉,因为这给了他们足够的时间准备。在这种情况下,凯尔(Kyle)提出的慷慨解雇费的想法可以缓解各种问题。在收到包含4个月薪水的支票后,即使偏执狂也可以宽恕许多罪恶。这项检查的费用可能会少于散布其罪恶所需的安全顾问的费用。

但是最终,归结为确定是否进行过恶行的代价与实际进行任何恶行的潜在代价。


22
+1-关于审计系统二进制文件的最新技术非常糟糕。计算机取证工具可以帮助您验证二进制文件上的签名,但是随着不同二进制文件版本的增加(尤其是在Windows中,每月都会进行所有更新),很难提出一种令人信服的方案,使您可以接近100%二进制验证。(如果可以的话,我会给您+10,因为您已经很好地总结了整个问题。这是一个很难的问题,尤其是如果没有分区和工作职责分离的情况。)
埃文·安德森

2
+++回复:更改服务帐户密码。无论如何,都应该对此进行彻底的记录,因此,如果希望您能完成工作,则此过程至关重要。
卡拉·玛菲亚

2
@Joe H .:不要忘记独立于生产基础架构来验证所述备份的内容。备份软件可能已木马化。(我的一个客户有一个第三方,他们的LOb应用程序是独立安装的,与第三方签约以还原备份,将其加载到应用程序中,并验证从备份生成的财务报表是否与生产系统生成的财务报表匹配。野...)
埃文·安德森

46
好答案。同样,不要忘记将离职的员工作为服务提供商和供应商的授权联系点。域名注册商。互联网服务提供商。电信公司。确保所有这些外部各方都得到这样的信息:员工不再有权进行任何更改或讨论公司的账目。
Mox

2
“上述全部内容甚至都无法与公司资产一起使用,这将需要雇用安全顾问来完成其中的一些工作。” -当然,可能是这种风险导致妥协。此级别的审核需要极低级别的系统访问权限,并且需要了解如何隐藏事物的人员。
MightyE

100

我要说的是,您所关心的问题与您愿意支付的费用之间取得了平衡。

非常关注:
如果您非常关注,那么您可能想聘请外部安全顾问从内部和外部角度对所有内容进行全面扫描。如果这个人特别聪明,您可能会遇到麻烦,他们可能会休眠一段时间。另一个选择是简单地重建所有内容。这听起来可能太过分了,但是您将很好地学习环境,并且还可以进行灾难恢复项目。

轻度关注:
如果您只是轻度关注,您可能只想这样做:

  • 从外部进行端口扫描。
  • 病毒/间谍软件扫描。Rootkit扫描Linux机器。
  • 查看防火墙配置中您不了解的所有内容。
  • 更改所有密码并查找任何未知帐户(确保他们没有激活不再在公司任职的人员,以便他们可以使用该帐户等)。
  • 这也可能是考虑安装入侵检测系统(IDS)的好时机。
  • 比平时更仔细地查看日志。

面向未来:
当管理员离开时,向前走可以给他开个不错的聚会,然后当他喝醉了之后,就给他搭车回家-然后将他丢到最近的河流,沼泽或湖泊中。更严重的是,这是给予管理员慷慨解雇费的充分理由之一。您希望他们对离开尽可能多感到满意。即使他们不应该感觉良好,谁在乎呢,把它吸起来并使他们高兴。假装这是您的错,而不是他们的错。失业保险和遣散费的提高成本与他们可能造成的损失没有可比性。这都是关于阻力最小,创造尽可能少的戏剧的途径。


1
不包括谋杀的答案可能会更受欢迎:-)
Jason Berg,2010年

4
BOFH建议+1。
jscott 2010年

5
@Kyle:那应该是我们的小秘密...
GregD 2010年

4
致命开关,凯尔。我们把它们放在那儿,以防我们离开一会儿。:)“我们”,我的意思是,嗯?
比尔·魏斯

12
+1-这是一个实际的答案,我喜欢基于风险/成本分析的讨论(因为这就是事实)。Sysadmin1138的回答更为全面:“橡胶遇上了麻烦”,但不一定要进行风险/成本分析,而且事实是,在许多情况下,您不得不将一些假设置于一边远程”。(这可能是一个错误的决定,但没有人有无限的时间/金钱。)
埃文·安德森

20

不要忘了像Teamviewer,LogmeIn之类的东西……我知道已经提到过了,但是对每台服务器/工作站的软件审核(很多应用程序在那里)都不会受到损害,包括使用nmap进行子网扫描。 NSE脚本。


18

首先,首先-备份场外存储中的所有内容(例如,断开连接并放入存储中的磁带或HDD)。这样,如果发生恶意事件,您也许可以稍微恢复。

接下来,梳理防火墙规则。任何可疑的开放端口都应关闭。如果有后门,那么阻止进入将是一件好事。

用户帐户-查找您心怀不满的用户,并确保尽快删除他们的访问权限。如果有SSH密钥,/ etc / passwd文件或LDAP条目,甚至.htaccess文件,都应进行扫描。

在重要的服务器上查找应用程序和活动的侦听端口。确保连接到它们的正在运行的进程看起来合理。

最终,一个坚定不移的员工可以做任何事情-毕竟,他们了解所有内部系统。人们希望他们有诚信,不要采取消极行动。


1
如果确实发生了备份,备份也可能很重要,并且您决定采用起诉程序,因此您可能希望找出证据处理的规则,并确保以防万一。
Joe H.

3
但是不要忘了,你刚才的备份可能包括根植应用/配置/数据等
香农·纳尔逊

如果您拥有根系统的备份,则有证据。
XTL 2012年

17

一个运行良好的基础架构将拥有适当的工具,监视和控制措施,以在很大程度上防止这种情况的发生。这些包括:

如果这些工具安装正确,您将拥有审核记录。否则,您将必须执行完整的渗透测试

第一步将是审核所有访问权限并更改所有密码。专注于外部访问和潜在的切入点-这是您花费时间最好的地方。如果外部占用空间不合理,请消除或缩小它。这将使您有时间在内部专注于更多细节。还应注意所有出站流量,因为编程解决方案可能会在外部传输受限数据。

最终,成为系统和网络管理员将允许完全访问大多数(如果不是全部)事物。随之而来的是高度的责任感。不应轻视这种责任级别的招聘,并且应采取措施将风险从一开始就降至最低。如果雇用了专业人员,即使辞职情况很差,他们也不会采取非专业或非法的行动。

关于服务器故障,有许多详细的帖子,涵盖有关安全性的正确系统审核以及在某人被终止的情况下的处理方法。这种情况并非如此。


16

聪明的BOFH可以执行以下任一操作:

  1. 定期程序,该程序在知名端口上启动netcat出站连接以接收命令。例如,端口80。如果做得好,则来回流量将显示该端口的流量。因此,如果在端口80上,它将具有HTTP标头,并且有效负载将是嵌入图像中的块。

  2. 在特定位置查找要执行的文件的非周期性命令。位置可以位于用户计算机,网络计算机,数据库中的其他表,临时假脱机文件目录中。

  3. 用于检查是否还有一个或多个其他后门的程序。如果不是,则安装它的变体,并将详细信息通过电子邮件发送给BOFH

  4. 由于现在大部分的备份方式都是使用磁盘完成的,因此请修改备份以至少包含一些根工具包。

保护自己免受此类伤害的方法:

  1. BOFH班级员工离开后,在DMZ中安装一个新盒子。它获取通过防火墙的所有流量的副本。查找此流量中的异常。后者是不平凡的,特别是如果BOFH擅长模仿正常流量模式。

  2. 重做服务器,以便将关键二进制文件存储在只读介质上。也就是说,如果您要修改/ bin / ps,则必须转到计算机,将交换机从RO物理地移到RW,重新启动单用户,重新安装该分区rw,安装新的ps副本,同步,重新启动,拨动开关。以这种方式完成的系统至少具有一些可信程序和可信内核,用于进行进一步的工作。

当然,如果您使用的是窗户,那您真是无聊。

  1. 分隔您的基础结构。对于中小型企业而言,这是不合理的。

防止这种事情的方法。

  1. 仔细审核申请人。

  2. 找出这些人是否不满,并提前解决人为问题。

  3. 当您以以下几种方式解雇管理员时,会变得很开心:

    一种。他的薪水或薪水的一部分会持续一段时间,或者直到IT员工无法解释的系统行为发生重大变化为止。这可能是指数衰减的。例如,他得到全额工资6个月,其中80%为6个月,80%的认为在未来6个月。

    b。他的部分薪水以股票期权的形式出现,在他离开后的一到五年内不会生效。这些选项在他离开时不会删除。他有动力确保公司在5年内运作良好。


1
WTF是BOFH?
Chloe 2012年

BOFH的Chloe是Hell的Bastard Operator的代表,这是标志性的偏执狂妄想性的社会病态的流氓系统管理员,IT人员花费太多时间从某个人的梦想中捡起鼠标。有一系列在最初提出到alt.sysadmin.recovery故事bofh.ntk.net/Bastard.html en.wikipedia.org/wiki/Bastard_Operator_From_Hell
斯蒂芬妮

1
ServerFault分数越高,成为BOFH的机会就越高:-)
dunxd 2013年

“当然,如果您使用的是窗户,那真是无聊。” 我想要这个在我的墙上。
程序员

13

令我惊讶的是,即使在管理员离开之前,问题仍然存在。只是那个时候更多地注意到了这个问题。

->需要一个过程来审核每个更改,并且该过程的一部分是仅通过更改来应用更改。


5
我很好奇您如何执行这种过程?
Shiny先生和新安宇

在一家小公司(例如1-2位Sys Admin类型的人们)很难做到这一点
哔哔声,

强制执行很痛苦,但是可以强制执行。基本原则之一是,即使通过sudo,也没有人可以登录并对其进行管理。更改应通过配置管理工具进行,或者应在Firecall类型事件的上下文中进行。对系统的每次例行更改都应通过puppet,cfengine,chef或类似工具进行,并且sysadmin的整个工作内容都应作为这些脚本的版本控制存储库存在。
斯蒂芬妮2012年

12

一旦离开公司,请务必告诉公司中的每个人。这将消除社会工程学的攻击媒介。如果公司很大,请确保需要认识的人相识。

如果管理员还负责编写代码(公司网站等),那么您还需要进行代码审核。


12

每个人都忽略了一个大问题。

请记住,不仅仅是系统。

  • 供应商是否知道此人不在工作人员中,也不应该被允许访问(colo,telco)
  • 是否有任何外部托管服务可能具有单独的密码(exchange,crm)
  • 他们是否仍然可以使用勒索材料(好了,这开始有点...)

9

除非您真的很偏执,否则我的建议是只运行几个TCP / IP扫描工具(tcpview,wireshark等),以查看是否有任何可疑的尝试与外界联系。

更改管理员密码,并确保没有不需要的“其他”管理员帐户。

另外,不要忘记更改无线访问密码并检查安全软件设置(尤其是AV和防火墙)


+1更改管理员密码
PP。

5
好的,但是要当心被动听怪异的东西,因为在TRUNCATE TABLE customer运行时您可能会眨眼:P
Khai

如果有一个rootkit,它可能正在监听passwd的更改。
XTL

9

检查服务器(及其直接运行的计算机)上的日志。不仅要查找其帐户,还要查找未知管理员的帐户。在日志中寻找孔。如果最近在服务器上清除了事件日志,则可疑。

检查Web服务器上文件的修改日期。运行一个快速脚本以列出所有最近更改的文件并查看它们。

检查AD中所有组策略和用户对象的最后更新日期。

确认所有备份都正常工作,并且现有备份仍然存在。

检查正在运行卷影复制服务的服务器,以查找以前的历史记录。

我已经看到了很多好东西,只是想添加其他可以快速检查的东西。全面审查所有内容都是值得的。但是,从发生最新变化的地方开始。这些事情中的一些可以快速检查,并可以提起一些早期的危险信号来帮助您。


7

基本上,我想说的是,如果您有能力胜任的BOFH,那么您注定要失败...有很多方法可以引起人们的注意。而且,如果您的公司习惯于驱逐被解雇的“军事人员”,请确保在裁员之前将炸弹很好地植入!!!

最好的方法是最大程度地减少生气的管理员的风险...避免“裁员以削减成本”(如果他是一个能干而恶毒的BOFH,您可能蒙受的损失可能会比从中蒙受的损失还要大。裁员)...如果他犯了一些无法接受的错误,最好让他解决(无薪)作为裁员的替代方法...下一次他会更加谨慎,不要重蹈覆辙(这将会增加……)但一定要达到良好的目标(通常,具有超凡魅力的不称职的人会拒绝自己对有能力但社交性较低的人的错)。

而且,如果您从最坏的意义上面对一个真正的BOFH(并且这种行为是裁员的原因),则最好准备从头开始重新安装他所接触的所有系统(这可能意味着每台计算机)。

不要忘了一点点更改可能会使整个系统崩溃……(setuid位,如果可以执行则跳转,如果不执行则跳转,...),甚至编译工具也可能已被破坏。


7

如果他真的知道什么,并且事先设置好了,那就祝你好运。即使是昏暗的人也可以通过断开连接来呼叫/发送电子邮件/传真该电信公司,甚至可以要求他们白天在电路上运行完整的测试模式。

认真地说,在出发时表现出一点爱心和一点点隆重确实减少了风险。

哦,是的,万一他们打电话给“获取密码或其他东西”,请提醒他们您的1099费率以及每次通话1小时的最低费用和100的旅行费用,无论您身在何处……

嘿,那和我的行李一样!1,2,3,4!


7

我建议您从外围开始。验证防火墙配置,以确保您没有意外的网络入口点。确保网络在物理上安全,以防他重新进入并访问任何计算机。

确认您具有完整的工作备份和可还原的备份。如果他做一些破坏性的事情,那么好的备份将使您避免丢失数据。

检查允许通过外围的任何服务,并确保他被拒绝访问。确保这些系统具有适当的工作日志机制。


5

删除所有内容,然后重新开始;)


1
+1-如果服务器受到根级攻击,则必须重新开始。如果不能信任最后一个管理员,请采取根级折衷方案。
James L

2
嗯...是...最佳解决方案...也很难说服管理层重做所有事情。活动目录。交换。SQL。共享点。即使对于50个用户来说,这也不是一件容易的事……对于300多个用户而言,这将是不小的任务。
杰森·伯格

@danp:好的,加班费,没有周末。:(
jscott

1
哇,系统管理员很痛苦,谁能预料到:p
dmp 2010年

2
哇,系统管理员明智,可以预见。尽管您的想法具有技术价值,但很少可行或不可行。
约翰·加迪尼尔

5

烧掉...。全部烧掉。

这是唯一可以确定的方法。

然后,烧掉您所有的外部利益,域名注册商,信用卡支付提供商。

再次考虑,也许更容易要求任何Bikie伴侣说服个人,让他们不要打扰您,这对他们来说更健康。


1
恩,太好了。因此,如果管理员被解雇了,就彻底消灭整个公司吗?好吧,让我向股东们解释一下。
Piskvor

2
唯一可以肯定的方法是从轨道核武器攻击它
休伯特Kario

4

据推测,在此过程中,一位称职的管理员对基本系统配置进行了备份。假设以某种合理的频率完成备份,从中还原已知的安全备份也是安全的。

鉴于某些事情确实发生了变化,最好在可能的情况下从虚拟化的备份中运行,直到可以确保不影响主要安装为止。

假设最糟糕的情况变得显而易见,那么您将合并自己的能力,然后手动输入其余部分。

令我震惊的是,没有人提到我之前使用过安全备份。这是否意味着我应该将简历提交给您的人事部门?


什么安全备份?一个聪明,邪恶的管理员将在两年前安装后门程序。
雅各布·伯格

原始数据的死数据备份和可执行文件的安装过程。同样,后门的备份也是证据。
XTL 2012年

3

尝试以他的观点。

您知道您的系统及其功能。因此,即使您不再是sysadmin,您也可以尝试想象从外部进行连接的发明

根据网络基础架构的工作方式以及所有这些工作方式,您是最合适的人,他们可能知道该怎么做以及可能位于何处。

但是,正如您似乎是从试验过的Bofh说话一样,您必须在附近到处搜索...

网络跟踪

由于主要目标是在整个Internet连接上实现对系统的远程控制,因此您可以监视(甚至替换,因为这也可能会损坏!)防火墙,并尝试识别每个活动的连接。

更换防火墙将无法确保全面保护,但请确保没有任何隐藏的东西。因此,如果您监视防火墙转发的数据包,则必须查看所有内容,包括不需要的流量。

您可以使用它tcpdump来跟踪所有内容(例如美国偏执狂),并使用诸如的高级工具浏览转储文件wireshark。花一些时间来查看此命令(需要100Gb磁盘可用空间):

tcpdump -i eth0 -s 0 -C 100 -w tcpdump- -W 1000 >tcpdump.log 2>tcpdump.err </dev/null &

不要相信一切

即使您发现了某些东西,也无法确定自己被发现完全是坏东西!

最后,在重新安装一切(从受信任的来源!)之前,您不会真正安静下来。


2

如果您无法重做服务器,那么下一个最好的办法就是尽可能多地锁定防火墙。遵循每个可能的入站连接,并确保将其减少到绝对最小值。

更改所有密码。

装回所有ssh密钥。


1

一般来说,它很难...

但是如果是网站,请查看“登录”按钮后面的代码。

我们发现一次“ if username ='admin'”类型的东西...


0

本质上,使以前的IT人员的知识变得毫无价值。

更改您可以更改的所有内容,而不会影响IT基础架构。

改变供应商或使其多样化是另一种好的做法。


1
我不明白供应商与这个问题的关系。
约翰·加迪尼尔

因为供应商可能是朋友,或者可能与以前的IT团队有联系。如果您保留相同的供应商并更改其他所有内容,则可能会冒险通知旧的IT团队并使所有内容变得一文不值。我是根据以前的经验写的。
lrosa

好吧,除非您将私钥交给了供应商,否则不确定先前的IT团队将从中获得什么:“正如您所说,鲍勃,他们生成了新密钥,新密码,并关闭了所有从外部的访问权限?嗯。[打开一台Mac笔记本电脑,运行nmap;键入两秒钟]好的,我参加了。(CUT!)
Piskvor

这不仅是外围访问的问题,还是内部IT基础架构的问题。假设您想进行基于社会工程的攻击:了解内部结构非常方便(Mitnick规则)。
lrosa
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.