草庐IT

php - 清理没有可用干净版本的被黑网站的最佳方法?

coder 2023-06-15 原文

我被要求修复一个在生产服务器上使用 osCommerce 构建的被黑网站。

该站点一直存在于远程主机上。没有离线干净版本。让我们暂时忘记这是多么愚蠢并处理它是什么。

它已被黑客攻击多次,另一个人通过删除 web shell 文件/上传脚本修复了它。

它经常被黑客攻击。

我能做什么?

最佳答案

因为您不能信任 Web 主机上的任何东西(它可能安装了 rootkit),最安全的方法是从头开始重建一个新的 Web 服务器;不要忘记更新所有面向外部的软件before bringing it online .在严酷的防火墙的快乐方面进行所有更新。

重建系统时,一定要特别注意正确的配置。如果 web 内容 属于与 web 服务器 用户标识不同的 Unix 用户,并且文件权限设置为禁止写入,则 web 服务器无法修改程序文件。

配置您的网络服务器的 Unix 用户帐户,以便它仅对它的日志文件和数据库套接字具有写入权限(如果它们在文件系统中)。被黑的网络服务器仍然可以为客户端提供被黑的页面,但重启会“撤销”“实时黑客”。当然,您的数据库内容可能会被发送到 Yakuza,或者被认为您的数据应该包含 unicorn 图片的人破坏。 Principle of Least Privilege将是一个很好的指南——您的 Web 服务器需要访问什么才能完成其工作?只授予那个。

同时考虑部署 mandatory access control系统如 AppArmor , SELinux , TOMOYO , 或 SMACK .这些系统中的任何一个,如果配置得当,都可以控制系统被黑客攻击时可能损坏或泄漏的范围。 (我在 AppArmor 上工作了十年,我相信大多数系统管理员可以在一两天的学习中学会如何在他们的系统上部署可行的安全策略。没有工具适用于所有情况,所以一定要阅读您的所有选择。)

第二次,请确保通过 puppet 等工具管理您的配置, chef ,或者至少在 revision control system 中.

更新

还有一些与重新上线无关,但同样具有教育意义的内容:从受感染的系统中保存硬盘驱动器,以便您可以挂载它并从另一个系统检查其内容。也许可以通过对受损数据进行取证来了解一些东西:您可能会发现泄露发生在几个月前,并且一直在窃取密码或 ssh key 。您可能会找到 Rootkit 或其他漏洞利用工具。您可能会找到显示攻击来源的信息——也许那个网站的管理员还没有意识到他们已经被黑客入侵。

在检查被黑数据时要小心 -- 您不认识的 .jpg 很可能是首先破解系统的漏洞,并且查看它在“已知良好”系统上也可能会破解它。使用您可以在完成后格式化的硬盘来完成这项工作。 (虚拟化或强制访问控制系统可能足以限制“被动”的基于数据的黑客攻击,但没有什么比一次性系统更能让您高枕无忧了。)

关于php - 清理没有可用干净版本的被黑网站的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6337976/

有关php - 清理没有可用干净版本的被黑网站的最佳方法?的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 如何从 ruby​​ 中的字符串运行任意对象方法? - 2

    总的来说,我对ruby​​还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - Facter::Util::Uptime:Module 的未定义方法 get_uptime (NoMethodError) - 2

    我正在尝试设置一个puppet节点,但ruby​​gems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由ruby​​gems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby

  6. Ruby 方法() 方法 - 2

    我想了解Ruby方法methods()是如何工作的。我尝试使用“ruby方法”在Google上搜索,但这不是我需要的。我也看过ruby​​-doc.org,但我没有找到这种方法。你能详细解释一下它是如何工作的或者给我一个链接吗?更新我用methods()方法做了实验,得到了这样的结果:'labrat'代码classFirstdeffirst_instance_mymethodenddefself.first_class_mymethodendendclassSecond使用类#returnsavailablemethodslistforclassandancestorsputsSeco

  7. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  8. ruby - 难道Lua没有和Ruby的method_missing相媲美的东西吗? - 2

    我好像记得Lua有类似Ruby的method_missing的东西。还是我记错了? 最佳答案 表的metatable的__index和__newindex可以用于与Ruby的method_missing相同的效果。 关于ruby-难道Lua没有和Ruby的method_missing相媲美的东西吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7732154/

  9. ruby-on-rails - Rails 3.2.1 中 ActionMailer 中的未定义方法 'default_content_type=' - 2

    我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer

  10. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

随机推荐