黑客入侵服务器的方法
小时候,保罗·西蒙(Paul Simon)发行了他的热门歌曲《 离开爱人的50种方法》 。 受到这首歌的启发,我收集了系统管理员和非专业人员可以避免被黑的50种方法:
1.备份数据。 如果您受到勒索软件的打击,则无需支付备份费用。
2.当您必须在公共场所为手机充电或带备用电池时,请使用syncstop 。
3.利用审核子系统。 有很多很棒的工具可以帮助您监视系统。 如果确实有问题,审核系统可能会告诉您发生了什么以及攻击者做了什么。
4.说到日志,将日志卸载到集中式服务器始终是一个好主意,因为如果黑客闯入您的系统,那么他要攻击的第一件事就是记录其踪迹的日志系统。 拥有一个好的入侵系统来查看日志也有帮助。
5.以强制模式运行SELinux(请参阅stopdisablingselinux.com )。 没想到我要花这么长时间才能达到那个水平吗? SELinux可以防止零日漏洞升级。 当Shell Shock出现时,SELinux是唯一的防御措施。
6.尽可能在SELinux沙箱中运行应用程序-在容器变凉之前它是一个容器。 还要遵循Flatpack的开发,该开发很快就会开发沙箱功能。
7.不要安装或使用Flash。 Firefox不再支持它,希望大多数Web服务器都不再支持它。
8.使用受限的SELinux用户来控制用户在系统中执行的操作。 如果您正在运行共享登录系统,请将用户设置为guest_t 。
9. 利用systemd工具来帮助保护您的服务。 大多数系统攻击将通过侦听网络的服务来进行。 Systemd提供了锁定服务的好方法。 例如,使用PrivateTmp = yes 。 PrivateTmp利用mount名称空间为服务器的/ tmp设置私有tmpfs安装。 这样可以防止被黑的服务访问主机/ tmp中的内容,并防止基于侦听/ tmp的服务攻击系统的其余部分。
10. InaccessibleDirectories = / home是一个systemd单元标志,它使用mount命名空间从服务视图中消除/ home (或任何其他目录),这使被黑服务攻击内容的能力更加困难。
11. ReadOnlyDirectories = / var是另一个systemd单元标志,它使用mount名称空间将目录内容转换为只读模式。 您可能应该始终在ReadOnlyMode中与/ usr一起运行。 这样可以防止被黑的应用程序重写二进制文件,因此,下次启动该服务时,您将已经被黑。
12.从服务中删除功能( CapabilityBoundingSet = CAP_CHOWN CAP_KILL )。 在内核中,特权进程被分解为一系列独特的功能。 大多数服务不需要很多(如果有的话),而systemd提供了一个简单的开关来将其从服务中删除。
13.如果您的服务将不使用网络,则可以使用PrivateNetwork = yes将其关闭以使用该服务。 只需在服务单元文件中启用此功能即可利用网络名称空间并关闭该服务可用的所有网络。 通常,黑客实际上并不想入侵您的计算机,他只是想将其用作攻击服务器来攻击其他计算机。 如果该服务看不到网络,则无法对其进行攻击。
14.控制可用于您的服务的设备。 Systemd提供了DeviceAllow指令,该指令控制该服务可用的设备。 DeviceAllow = / dev / null rw将限制对/ dev / null的访问,并且仅限于此设备节点,不允许访问任何其他设备节点。 该功能在设备的cgroup控制器上实现。
15.很快就会出现在您附近的systemd系统上的是ProtectSystem Strict的新功能,该功能可以打开所有这些名称空间以完全锁定运行服务的环境。
16.在强制模式下,请勿使用没有SELinux( SEAndroid )的手机。 幸运的是,我听说现在超过90%的所有Android手机都以强制模式在SEAndroid上运行。 这让我高兴。 现在,如果我们只能让那些苹果公司使用SELinux。
17.仅从受信任的来源安装软件。 不要在互联网上安装可疑的东西。 这适用于您的手机,计算机系统,虚拟机,容器等。
18.我不在手机上进行网上银行业务,而仅在Linux计算机上。 如果黑客窃取了我的信用卡,我将损失50美元; 如果他进入我的银行帐户,我会损失更多。 我想我老了。 (离开我的草坪。)
19.我用手机做的一件很酷的事情是建立了我的信用卡公司,以便每当我的信用卡被扣款后就给我发送一条短信。 这样,如果号码被盗,我会更快地知道。
20.当您需要安全通信时,请使用Signal安全消息传递应用程序 。
21.在您的系统上运行Linux。 当我第一次让父亲使用计算机系统时,在他的系统感染病毒之前,我几乎不回家。 我返回并在他的系统上安装了Linux,从那以后他一直在运行它。 我认为,由于Linux的设计方式,它通常是一个更安全的系统,但我也相信,由于用户群较小,台式机不太可能被黑客入侵。 有人会说Windows多年来已经有了很大的进步,但是对我来说,我仍然坚持我所知道的。
22.仅在安全响应小组监视分发的安全性的情况下运行分发。 企业软件很重要。
23.运行企业级内核。 在容器中,单点故障是内核。 如果要确保其安全,请使用企业级内核,这意味着它具有最新的安全修复程序,但没有最新优势。 请记住,最新的内核附带了最新的安全修复程序,但是它还附带了大量可能具有漏洞的新代码。
24.大多数黑客都是社会工程学,例如电子邮件链接,Web浏览器攻击和电话。 最好的选择是受到教育和怀疑。 尼日利亚没有人给你钱。 国税局没有打电话给您的房子要钱。 如果您从银行收到电子邮件中的网站链接,请不要使用该链接。 直接在网络浏览器上输入地址。
25.始终使用最新的安全修复程序使您的系统保持最新。 已经过时且具有已知安全漏洞的系统数量很可怕。 脚本小子靠,你不更新你的系统。
26.连接到网络上的服务时,请始终使用HTTPS。 Chrome和Firefox现在具有强制执行此操作的模式。 如果网站到2016年不支持安全通信,则可能不值得您访问。
27.在您的容器中使用seccomp 。 这限制了内核的攻击面,这是单点故障。 限制流程可以讨论的内容。
28.使用YubiKey来存储私钥。
29.加密系统上的数据。 至少对于笔记本电脑,将homedir和其他数据目录保持加密状态。 几年前,我在伦敦的地铁上骑行,笔记本电脑被“刺破了”,火车车门关上,我发现笔记本电脑不见了,火车也从车站驶出。 幸运的是,磁盘已加密。
30.对所有网站使用“ 让我们加密” 。 没有理由不再运行HTTPS。
31.切勿在不同的Web服务器上使用相同的密码。 很难不落入陷阱。 诸如“加密”之类的工具很有帮助。 如果您使用ssh键登录系统,那就更好了。
32.使用两因素身份验证(2FA)。 密码几乎已无用。 使用YubiKeys之类的东西使两因素变得容易。 我们都有手机。 在您的头脑中拥有一个秘密,并在电话中生成一个秘密总比密码好。
33.没有什么比让网站不断要求我开设帐户更让我感到烦恼的了,我们还能做得更好吗? 始终为网站密码使用密码生成工具。 我是老学校:我使用密码保险箱并将其剪切并粘贴到Web浏览器中。 我听说其他人对LastPass以及其他将您的电话和Web服务集成在一起的工具表示好运。
34.设置诸如FreeIPA之类的服务以用于身份服务。 使用诸如Kerberos之类的工具进行身份验证和授权,可以更轻松地跟踪员工及其对系统的访问(它具有出色的加密服务)。 可以使用Active Directory,但是我有些偏见。
35.当您必须使用需要经常输入的密码时,请使用易于记忆的句子而不是单词。 我想记住密码的首选方式是使用一个容易输入的长数个词组。
36.使用USBGuard保护您的系统免受恶意USB设备的攻击。
37.在过去的几年中,我一直在研究容器,因此现在让我们深入研究容器的安全性。 首先在以强制模式打开SELinux的系统上运行它们。 如果您的系统不支持SELinux,则将发行版切换为可以的发行版。 SELinux是使用文件系统防止容器损坏的最佳工具。
38.尽可能在容器内运行服务。 我相信这就是未来-使用OCI图像格式和Linux容器技术的应用程序。 使用Docker, runC ,OCID,RKT,Systemd-nspawn等启动这些容器。 尽管我经常说“容器不包含”,但它们包含的内容要好于不在容器中运行它们。
39.在VM中运行容器。 虚拟机比容器提供更好的隔离。 在虚拟机上像容器一样运行可为您提供可伸缩性和彼此隔离。
40.在不同的虚拟机上运行具有不同安全性需求的容器化应用程序。 在DMZ中的虚拟机上运行Web服务容器,但在DMZ之外的虚拟机上运行数据库容器。
41.还要记住,在不同的物理机上,容器内部的不同虚拟机上运行对安全性要求最高的虚拟机(又称为深度防御)。
42.以只读模式运行容器。 开发中的容器需要能够写入/ usr ,但是生产中的容器应该只能写入tmpfs和安装在容器中的卷。
43. 从容器中删除功能 。 我们在容器内部和外部运行具有超出其所需“能力”的过程。 您可以通过降低功能来使过程更安全。
44. 不要以root身份在容器中运行进程 。 大多数服务永远不需要root特权,或者它们需要将其绑定到<1024的端口,然后切换到非root用户。 我建议始终以非root用户身份运行应用程序。
45.保持容器更新为最新的CVE修复程序。 使用OpenShift之类的系统来构建和维护容器映像是一个好主意,因为当出现新的安全修复程序时,它将自动重建容器映像。
46.我的一位同事说:“ Docker就是要以root身份在主机上从Internet运行随机代码。” 从可靠来源获取软件。 不要获取在docker.io上找到的第一个Apache应用程序。 操作系统很重要 。
47.在有限的容器化优化主机(例如Atomic Host)上运行生产中的容器,该主机具有打开的所有安全功能,针对运行容器进行了优化,具有有限的攻击面和原子更新。 那里不喜欢什么?
48.使用OpenScap之类的工具来扫描系统中的漏洞。 可悲的是,总是会弹出新漏洞,因此您必须使扫描仪保持最新状态。 (也请参阅原子扫描以扫描您的容器。)
49. OpenScap还具有扫描安全配置的功能 ,例如STIG(安全技术实施指南)。
50.为孩子们收到的所有圣诞节IoT设备建立一个特殊的来宾网络。 我喜欢我的Amazon Echo和自动照明灯和电源开关(“ Alexa,打开圣诞灯”),但是其中每一个都是具有可疑安全性的Linux操作系统。
您将添加什么到列表? 让我们在评论中知道。
Josh Bressers对本文做出了贡献。
翻译自: https://opensource.com/article/17/1/yearbook-50-ways-avoid-getting-hacked
黑客入侵服务器的方法