公司服务器被攻击怎么办 公司发展初期该如何避免服务器被攻击

前不久,我和朋友讨论了一个基本的安全问题:朋友拥有的一家公司的服务器集群被黑了,攻击者在机器上安装了远程操作程序——被肉鸡杀死了。但是经过讨论发现,机器最基本的保护都没有。这就像一个大姑娘在大街上裸奔——即使长得丑,最终也会被炸飞。基于此讨论,本文总结了如...

前不久,我和朋友讨论了一个基本的安全问题:朋友拥有的一家公司的服务器集群被黑了,攻击者在机器上安装了远程操作程序——被肉鸡杀死了。但是经过讨论发现,机器最基本的保护都没有。

这就像一个大姑娘在大街上裸奔——即使长得丑,最终也会被炸飞。基于此讨论,本文总结了如何在工程实践中实现服务器集群的“入门级安全防护”。

本文只针对初创公司,没有资源打造完善的运维团队。本文介绍的所有方法都可以由开发人员来完成。

服务器是怎么被攻破的?

上线的服务器,无论是自建机房还是云服务,管理员都不太可能直接接触机器本身。大多数时候,管理者通过网络与服务器进行交流。这涉及到服务器必须打开一些端口来允许这种交互。作为管理员,您通过网络使用服务器的资源,同时也是一个用户。作为攻击者,当然也可以用同样的方式访问主机。毕竟都是门。如果你能进去,他也能。

因此,从攻击者的角度来看,成本最低的攻击方法是用脚本自动扫描,看看一个服务器(IP)开了多少个端口。如果使用默认端口,攻击者可以猜测该端口后面的程序是否易受攻击。比如Web默认端口是80,80后面大概率可能是nginx或者apache。但是如果这些软件的某个版本存在漏洞或者配置不当,就会造成很大的安全隐患。例如,如果apache配置不当,攻击者可以通过使用类似apache沿线的https://foo.com/../../etc这样的URL来访问非常敏感的信息,从而为下一步的权限提升、任意操作和安装黑客工具做好第一步准备。如果攻击者发现3306端口是打开的,他会直接利用弱密码或者特定版本Mysql的漏洞尝试访问Mysql,然后为所欲为。

在众多端口中,SSH服务的安全风险相当高。一旦被攻破,攻击者就可以执行执行者想要的任何命令。而其他协议,比如3306连接,都在mysql的后面,所以攻击者必须根据mysql的通信协议去尝试各种机会。在大多数情况下,他们只能对mysql本身做一些事情,而不能对机器做一些事情。但无论哪种方式,对攻击者来说都将是巨大的损失。然后所有机器都要复位,重装,部署;那么一个公司的声誉就彻底名誉扫地,崩溃了(比如大量用户信息丢失,被篡改)。

所以,认真对待。

那么如何保护呢?

整体思维

保护的整体思想是最大限度地减少生产服务器外部网络的接触面。接收所有管理类对以跳板机为中心的SSH主机的访问。其余的访问只能访问生产机器提供的服务本身。

让我们逐一解释。

受限端口

任何时候,只要是生产服务器,在投入使用之前,必须限制开放端口。如果需要打开任何服务,只需打开该服务所需的端口。例如,对于web服务,只需要打开80/443端口。为此,使用iptable命令删除除必要端口之外的所有网络输入请求。

生产机器之间最好做这种封闭,但是如果运维资源真的很紧张,那就只能限制出口了。毕竟如果攻击者可以随意进入生产机器和SSH的内网环境,就已经是一个突破口了。

切勿向外部网络打开数据库端口。我见过太多病例了。开发者在服务器上安装了mongo或者mysql就不管了。结果整个图书馆都被别人拖了。数据库是内部服务,根本不需要打开。

配置的时候记得不要屏蔽SSH端口进行管理,这样管理员自己就无法访问主机了,很尴尬...

关闭不必要的外部活动连接。

通常,该服务不需要发起外部网络连接。一些例外如支付服务、微信授权服务、第三方数据统计分析服务等。这些情况可以通过IP/域名白名单方便地处理。此外,生产机器应该不能主动发起任何外部网络访问。

修改默认端口

攻击者会试图根据端口猜测其背后的程序是什么。比如对于22端口,攻击者会猜测是SSH,然后尝试弱密码等方法进行攻击。如果您将SSH端口更改为一个随机的端口,比如4328,那么攻击者将不得不花费更多的精力来进行这种猜测。如果袭击者不是针对你的,他就不会浪费力气去猜了。毕竟不设防的机器多的是,他凭什么把你敲死。

其他服务的端口也可以类似对待,比如MySql、Redis等。但值得注意的是,浏览器访问Web时,如果没有在URL中明确写入端口,就会使用80/443,端口也可能影响Cookie的有效性。所以Web的默认端口不方便更改。

学习使用SSH

在*nix环境中,SSH是远程主机访问的标准协议。所有集群都是使用SSH管理的,所以要小心SSH配置。

总是在生产级别使用SSH认证。

SSH支持相当多的认证方法。我认为只有两个可以用于生产:

高强度的公钥-私钥对(如RSA-1024)

麻省理工学院开发的安全认证系统

高强度公钥和私钥由于其方便的配置而被广泛使用。然而,Kerberos需要复杂的配置,这在大型企业中很常见。

不要使用任何基于密码的身份验证方法。如果您使用密码,请记住它。为了记住密码必须有一定的含义,这就为字典攻击提供了条件。而且网络上的密码传输也很不安全。重复输入密码会进一步增加密码被记录的概率。记住,你和服务器之间是互联网,你永远不知道谁在中间。

2015年,有报道称RSA-1024可以被暴力破解,但消耗了相当大的计算资源。目前,RSA-1024对于小公司来说是安全的。但是,您可以轻松地使用RSA-2048来生成公钥-私钥对,这成倍地增加了破解的难度。

RSA-1024是指使用RSA算法生成一个1024位的公私钥对。公钥和私钥对越长,就越难被暴力破解。破解RSA-2048比破解RSA-1024需要大约2.32倍的计算量。详情见此。

作为入口,认证密钥要定期更换。

如果使用公钥-私钥对作为SSH身份验证,建议每季度/每六个月更换一次公钥-私钥对。如果使用Kerberos作为SSH验证,建议每季度/每六个月更改一次密码。之所以这样,是因为更换周期会比常规暴力破解的时间短很多。

对生产资源的访问总是通过跳板机。

也许你有很多服务器主机,但是如果运维资源部门人手不足,无法一一正确配置主机的SSH端口设置,那就只能打开一台机器的SSH端口对外网,允许远程访问。这种对外网开放SSH的机器俗称“跳板机”。

为什么要用跳板机?这是因为所有的安全配置都可以在一台机器上完成。当公司太小时,一个人可以手动访问这台机器上的所有访问权限。

使用跳板机:

可以使用SSH的proxy命令。它允许你通过跳板机访问远程主机。这样整个集群只需要在跳板上打开外网的SSH端口。

可以使用SSH端口转发(本地端口转发和远程端口转发)。该功能允许您用SSH封装其他协议的数据,这样您就可以通过跳板机的SSH端口访问其他主机的mysql、redis、mongodb……...

关于端口转发,这里推荐一个特别好的工具,叫做SSL隧道管理器。

当然,在一个成熟的技术团队中,除了Lead、DBA和Ops之外,其他人不应该有访问生产服务的权限。要做到这一点,需要补充大量的基础设施(比如用Audit和ACL查询生产数据库,方便查询生产服务的日志)。这篇文章主要讲的是小团队低成本的东西,我就不展开了。

确保你的软件来源是安全可靠的。

可能很多人对2015年的XCodeGhost比较熟悉。部分开发者通过非官方渠道下载XCode开发App。被恶意篡改的基础库被打包发布,最终和App一起安装在用户的设备上。这个问题不一定只发生在XCode上。

每天,开发人员使用各种开发工具构建程序,从外联网的各个地方下载各种代码包。如何保证这些事情不出错?最基本的保护就是:一定要从软件提供的官方渠道下载。再慢也要想办法。如果技术手段无法约束,就需要通过行政手段强行禁止国内各种下载网站下的软件开发。

但是如果这个官方服务的访问是断断续续的,或者是带宽被浪费了(带宽成本比较贵),就要考虑自己建“镜像”了。比如Artifactory就是一个很好的工具,可以充当内网的***ven图库。

注意门户相关程序的漏洞

网络请求需要经历从连接到执行的过程。

硬件(固件)

操作系统

系统库(比如openssl)

库(比如jdk和各种依赖jar)

你的程序

时刻关注这个链条中的漏洞信息(新闻/社交网站讨论等。),尤其是你打开端口对应服务的漏洞(比如打开443时要特别注意操作系统、openssl、nginx的漏洞)。很多时候,漏洞是有偏颇的,或者只有学术研究价值的,可以忽略。但如果发现漏洞的讨论非常普遍,说明这个漏洞影响相当大,非常容易被利用。花时间升级和修复它。

如果您正在使用云服务,一般制造商会发布受影响设施的升级公告,这可能会导致服务停止。请留意。

保管好你的秘密钥匙。

使用强认证方法后,记得好好保管。一不留神就把自己的私钥泄露到了公共场所,再强的算法也保护不了你。任何情况下都不要在网络上传递密钥。如果你想传给别人,请用纸和笔。

此外,所有私钥和密码最终都会记录在您自己的计算机上。所以如果你上厕所,别人偷偷上来,从你没上锁的电脑里获取私人信息,那么以上所有保护都没用。因此,离开座位时,请始终锁定屏幕。

如果使用Mac,建议使用“触发角度”功能。配置完成后,按下鼠标时屏幕被锁定。

摘要

本文提到的所有策略都不能保证绝对的安全。而且还有很多安全问题是本文没有考虑的,比如注入攻击、CRSF、带密码的服务配置、内网服务API的ACL、DDoS、社工作弊管理密码、短信炸弹等。

但是根据这篇文章,您的服务器将永远不会被攻击者直接攻破,而不需要扫描成本。攻击者必须为您制定定制的攻击计划才能成功。这样会大大增加攻击成本。如果你的公司还是一个不起眼的小公司,不会引起太多关注——太不划算了。

值得注意的是,创业公司预算再紧,也要有人负责运营维护。哪怕是顶级开发或者***,机器也不能没人管,不管是自建集群还是云服务。只有这个人存在,上面说的这些事情才能做好。

随着业务的扩展,服务的商业价值增加,这导致更多的关注和更多的定向攻击风险。这个时候,或许公司已经有能力雇佣一个专门负责安全的团队,购买防护软件/硬件,或者在安全领域找一个可靠的合作机构来应对更复杂的安全攻击。企鹅1798493198

本文来自柠萌先森ζ投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/626843.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 07-09
下一篇 07-09

相关推荐

  • 云服务器管理有哪些功能 云服务器管理的作用

    生活中经常听说云服务器。你知道云服务器的功能是什么吗?如果你不知道,那就和边肖一起看看吧。1.网络服务对于需要有网络站点的中小企业和个人来说,租用服务器是一个不错的选择。因为云服务器的预配置不需要那么多,可以买现成的,也有很多宽带选择,所以每个网站都可以有自

    2023-07-27 21:46:01
    444 0
  • 服务器备份软件有哪些(服务器自动备份及恢复软件)

    SyncBackPro备份软件是由2BrightSparks公司开发的用于备份、同步和恢复数据文件的专业工具。该软件可以在便携式设备之间自动传输媒体文件,并备份数据文件、图片、电子邮件、音乐文件、文档、电子表格和电影。SyncBackPro通过结合运行、创建配置文件脚本和自动驱动器故障检测

    2023-07-27 18:47:01
    531 0
  • 域名怎么用在服务器上,域名使用文档介绍

    购买域名后如何使用?你有什么技能?买了域名之后,就看你用它做什么了。注册后可以用域名申请企业邮箱,大部分用来建网站。我们来看看如何使用域名,购买后有哪些技巧。购买域名后如何使用?你有什么技能?1.企业电子邮件应用程序购买域名后,可以直接申请企业邮箱,进入西数

    2023-07-27 10:41:01
    1059 0
  • 服务器一般多少钱一个月 阿里云服务器租用费用

    目前市场上的网站价格参差不齐,每家公司都没有明码标价,导致很多企业不知道如何选择专业水平的网站建设公司,怕被骗花钱,做出来的网站没有效果。事实上,顾客的担心并非多余。有些公司收钱是为了盈利,但并不是真的为客户服务。这种现象依然存在。今天财利信息分析一下做一

    2023-07-27 09:56:01
    377 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信