标签 安全 下的文章

上个月,我们用依赖关系图让你更容易跟踪你代码依赖的的项目,它目前支持 Javascript 和 Ruby。如今,超过 75% 的 GitHub 项目有依赖,我们正在帮助你做更多的事情,而不只是关注那些重要的项目。在启用依赖关系图后,当我们检测到你的依赖中有漏洞时会通知你,并给出来自 Github 社区中的已知修复。

Security Alerts & Suggested Fix

如何开始使用安全警报

无论你的项目时私有还是公有的,安全警报都会为团队中的正确人员提供重要的漏洞信息。

启用你的依赖图:

公开仓库将自动启用依赖关系图和安全警报。对于私人仓库,你需要在仓库设置中添加安全警报,或者在 “Insights” 选项卡中允许访问仓库的 “依赖关系图” 部分。

设置通知选项:

启用依赖关系图后,管理员将默认收到安全警报。管理员还可以在依赖关系图设置中将团队或个人添加为安全警报的收件人。

警报响应:

当我们通知你潜在的漏洞时,我们将突出显示我们建议更新的任何依赖关系。如果存在已知的安全版本,我们将通过机器学习和公开数据选择一个,并将其包含在我们的建议中。

漏洞覆盖率

CVE ID国家漏洞数据库公开披露的漏洞)的漏洞将包含在安全警报中。但是,并非所有漏洞都有 CVE ID,甚至许多公开披露的漏洞也没有。随着安全数据的增长,我们将继续更好地识别漏洞。如需更多帮助来管理安全问题,请查看我们的 GitHub Marketplace 中的安全合作伙伴

这是使用世界上最大的开源数据集的下一步,可以帮助你保持代码安全并做到最好。依赖关系图和安全警报目前支持 JavaScript 和 Ruby,并将在 2018 年提供 Python 支持。


via: https://github.com/blog/2470-introducing-security-alerts-on-github

作者:mijuhan 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

为了保护数据不被泄漏,我们使用软件和硬件防火墙来限制外部未经授权的访问,但是数据泄露也可能发生在内部。 为了消除这种可能性,机构会限制和监测访问互联网,同时禁用 USB 存储设备。

在本教程中,我们将讨论三种不同的方法来禁用 Linux 机器上的 USB 存储设备。所有这三种方法都在 CentOS 6&7 机器上通过测试。那么让我们一一讨论这三种方法。

(另请阅读: Ultimate guide to securing SSH sessions

方法 1 – 伪安装

在本方法中,我们往配置文件中添加一行 install usb-storage /bin/true, 这会让安装 usb-storage 模块的操作实际上变成运行 /bin/true, 这也是为什么这种方法叫做伪安装的原因。 具体来说就是,在文件夹 /etc/modprobe.d 中创建并打开一个名为 block_usb.conf (也可能叫其他名字) ,

$ sudo vim /etc/modprobe.d/block_usb.conf

然后将下行内容添加进去:

install usb-storage /bin/true

最后保存文件并退出。

方法 2 – 删除 USB 驱动

这种方法要求我们将 USB 存储的驱动程序(usb_storage.ko)删掉或者移走,从而达到无法再访问 USB 存储设备的目的。 执行下面命令可以将驱动从它默认的位置移走:

$ sudo mv /lib/modules/$(uname -r)/kernel/drivers/usb/storage/usb-storage.ko /home/user1

现在在默认的位置上无法再找到驱动程序了,因此当 USB 存储器连接到系统上时也就无法加载到驱动程序了,从而导致磁盘不可用。 但是这个方法有一个小问题,那就是当系统内核更新的时候,usb-storage 模块会再次出现在它的默认位置。

方法 3 - 将 USB 存储器纳入黑名单

我们也可以通过 /etc/modprobe.d/blacklist.conf 文件将 usb-storage 纳入黑名单。这个文件在 RHEL/CentOS 6 是现成就有的,但在 7 上可能需要自己创建。 要将 USB 存储列入黑名单,请使用 vim 打开/创建上述文件:

$ sudo vim /etc/modprobe.d/blacklist.conf

并输入以下行将 USB 纳入黑名单:

blacklist usb-storage

保存文件并退出。usb-storage 就在就会被系统阻止加载,但这种方法有一个很大的缺点,即任何特权用户都可以通过执行以下命令来加载 usb-storage 模块,

$ sudo modprobe usb-storage

这个问题使得这个方法不是那么理想,但是对于非特权用户来说,这个方法效果很好。

在更改完成后重新启动系统,以使更改生效。请尝试用这些方法来禁用 USB 存储,如果您遇到任何问题或有什么疑问,请告知我们。


via: http://linuxtechlab.com/disable-usb-storage-linux/

作者:Shusain 译者:lujun9972 校对:wxy

本文由 LCTT原创编译,Linux 中国荣誉推出

本指南中所谓的服务器被入侵或者说被黑了的意思,是指未经授权的人或程序为了自己的目的登录到服务器上去并使用其计算资源,通常会产生不好的影响。

免责声明:若你的服务器被类似 NSA 这样的国家机关或者某个犯罪集团入侵,那么你并不会注意到有任何问题,这些技术也无法发觉他们的存在。

然而,大多数被攻破的服务器都是被类似自动攻击程序这样的程序或者类似“脚本小子”这样的廉价攻击者,以及蠢蛋罪犯所入侵的。

这类攻击者会在访问服务器的同时滥用服务器资源,并且不怎么会采取措施来隐藏他们正在做的事情。

被入侵服务器的症状

当服务器被没有经验攻击者或者自动攻击程序入侵了的话,他们往往会消耗 100% 的资源。他们可能消耗 CPU 资源来进行数字货币的采矿或者发送垃圾邮件,也可能消耗带宽来发动 DoS 攻击。

因此出现问题的第一个表现就是服务器 “变慢了”。这可能表现在网站的页面打开的很慢,或者电子邮件要花很长时间才能发送出去。

那么你应该查看那些东西呢?

检查 1 - 当前都有谁在登录?

你首先要查看当前都有谁登录在服务器上。发现攻击者登录到服务器上进行操作并不复杂。

其对应的命令是 w。运行 w 会输出如下结果:

 08:32:55 up 98 days,  5:43,  2 users,  load average: 0.05, 0.03, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    113.174.161.1    08:26    0.00s  0.03s  0.02s ssh root@coopeaa12
root     pts/1    78.31.109.1      08:26    0.00s  0.01s  0.00s w

第一个 IP 是英国 IP,而第二个 IP 是越南 IP。这个不是个好兆头。

停下来做个深呼吸, 不要恐慌之下只是干掉他们的 SSH 连接。除非你能够防止他们再次进入服务器,否则他们会很快进来并踢掉你,以防你再次回去。

请参阅本文最后的“被入侵之后怎么办”这一章节来看找到了被入侵的证据后应该怎么办。

whois 命令可以接一个 IP 地址然后告诉你该 IP 所注册的组织的所有信息,当然就包括所在国家的信息。

检查 2 - 谁曾经登录过?

Linux 服务器会记录下哪些用户,从哪个 IP,在什么时候登录的以及登录了多长时间这些信息。使用 last 命令可以查看这些信息。

输出类似这样:

root     pts/1        78.31.109.1      Thu Nov 30 08:26   still logged in
root     pts/0        113.174.161.1    Thu Nov 30 08:26   still logged in
root     pts/1        78.31.109.1      Thu Nov 30 08:24 - 08:26  (00:01)
root     pts/0        113.174.161.1    Wed Nov 29 12:34 - 12:52  (00:18)
root     pts/0        14.176.196.1     Mon Nov 27 13:32 - 13:53  (00:21)

这里可以看到英国 IP 和越南 IP 交替出现,而且最上面两个 IP 现在还处于登录状态。如果你看到任何未经授权的 IP,那么请参阅最后章节。

登录后的历史记录会记录到二进制的 /var/log/wtmp 文件中(LCTT 译注:这里作者应该写错了,根据实际情况修改),因此很容易被删除。通常攻击者会直接把这个文件删掉,以掩盖他们的攻击行为。 因此, 若你运行了 last 命令却只看得见你的当前登录,那么这就是个不妙的信号。

如果没有登录历史的话,请一定小心,继续留意入侵的其他线索。

检查 3 - 回顾命令历史

这个层次的攻击者通常不会注意掩盖命令的历史记录,因此运行 history 命令会显示出他们曾经做过的所有事情。 一定留意有没有用 wgetcurl 命令来下载类似垃圾邮件机器人或者挖矿程序之类的非常规软件。

命令历史存储在 ~/.bash_history 文件中,因此有些攻击者会删除该文件以掩盖他们的所作所为。跟登录历史一样,若你运行 history 命令却没有输出任何东西那就表示历史文件被删掉了。这也是个不妙的信号,你需要很小心地检查一下服务器了。(LCTT 译注,如果没有命令历史,也有可能是你的配置错误。)

检查 4 - 哪些进程在消耗 CPU?

你常遇到的这类攻击者通常不怎么会去掩盖他们做的事情。他们会运行一些特别消耗 CPU 的进程。这就很容易发现这些进程了。只需要运行 top 然后看最前的那几个进程就行了。

这也能显示出那些未登录进来的攻击者。比如,可能有人在用未受保护的邮件脚本来发送垃圾邮件。

如果你最上面的进程对不了解,那么你可以 Google 一下进程名称,或者通过 losfstrace 来看看它做的事情是什么。

使用这些工具,第一步从 top 中拷贝出进程的 PID,然后运行:

strace -p PID

这会显示出该进程调用的所有系统调用。它产生的内容会很多,但这些信息能告诉你这个进程在做什么。

lsof  -p PID

这个程序会列出该进程打开的文件。通过查看它访问的文件可以很好的理解它在做的事情。

检查 5 - 检查所有的系统进程

消耗 CPU 不严重的未授权进程可能不会在 top 中显露出来,不过它依然可以通过 ps 列出来。命令 ps auxf 就能显示足够清晰的信息了。

你需要检查一下每个不认识的进程。经常运行 ps (这是个好习惯)能帮助你发现奇怪的进程。

检查 6 - 检查进程的网络使用情况

iftop 的功能类似 top,它会排列显示收发网络数据的进程以及它们的源地址和目的地址。类似 DoS 攻击或垃圾机器人这样的进程很容易显示在列表的最顶端。

检查 7 - 哪些进程在监听网络连接?

通常攻击者会安装一个后门程序专门监听网络端口接受指令。该进程等待期间是不会消耗 CPU 和带宽的,因此也就不容易通过 top 之类的命令发现。

lsofnetstat 命令都会列出所有的联网进程。我通常会让它们带上下面这些参数:

lsof -i
netstat -plunt

你需要留意那些处于 LISTENESTABLISHED 状态的进程,这些进程要么正在等待连接(LISTEN),要么已经连接(ESTABLISHED)。如果遇到不认识的进程,使用 stracelsof 来看看它们在做什么东西。

被入侵之后该怎么办呢?

首先,不要紧张,尤其当攻击者正处于登录状态时更不能紧张。你需要在攻击者警觉到你已经发现他之前夺回机器的控制权。如果他发现你已经发觉到他了,那么他可能会锁死你不让你登陆服务器,然后开始毁尸灭迹。

如果你技术不太好那么就直接关机吧。你可以在服务器上运行 shutdown -h now 或者 systemctl poweroff 这两条命令之一。也可以登录主机提供商的控制面板中关闭服务器。关机后,你就可以开始配置防火墙或者咨询一下供应商的意见。

如果你对自己颇有自信,而你的主机提供商也有提供上游防火墙,那么你只需要以此创建并启用下面两条规则就行了:

  1. 只允许从你的 IP 地址登录 SSH。
  2. 封禁除此之外的任何东西,不仅仅是 SSH,还包括任何端口上的任何协议。

这样会立即关闭攻击者的 SSH 会话,而只留下你可以访问服务器。

如果你无法访问上游防火墙,那么你就需要在服务器本身创建并启用这些防火墙策略,然后在防火墙规则起效后使用 kill 命令关闭攻击者的 SSH 会话。(LCTT 译注:本地防火墙规则 有可能不会阻止已经建立的 SSH 会话,所以保险起见,你需要手工杀死该会话。)

最后还有一种方法,如果支持的话,就是通过诸如串行控制台之类的带外连接登录服务器,然后通过 systemctl stop network.service 停止网络功能。这会关闭所有服务器上的网络连接,这样你就可以慢慢的配置那些防火墙规则了。

重夺服务器的控制权后,也不要以为就万事大吉了。

不要试着修复这台服务器,然后接着用。你永远不知道攻击者做过什么,因此你也永远无法保证这台服务器还是安全的。

最好的方法就是拷贝出所有的数据,然后重装系统。(LCTT 译注:你的程序这时已经不可信了,但是数据一般来说没问题。)


via: https://bash-prompt.net/guides/server-hacked/

作者:Elliot Cooper 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

拿到这本《Linux 二进制分析》,我不禁心生感慨。

对于软件逆向工程这门手艺来说,最难的便是入门。软件逆向不同于软件的编写。基于汇编语言的软件逆向将绝大多数的人拦在了门外。少部分人打开了这扇门,又为门后的贫瘠所震惊 —— 相关资料少且不系统。

一直以来, Windows 由于其在桌面端的广泛应用而不断受人关注,相关的书籍也不断出新。但随着移动端设备的逐渐崛起,*nix 系统占据了市场的主流。但是基于 *nix 的逆向开发一直都处在荒芜的状态,为少数人所掌握。现在,移动端设备成为新的安全隐患增长点,我们也为此忧心忡忡。于是,我们组织译者,翻译了这本 《Linux 二进制分析》 Learning Linux Binary Analysis

1、LCTT 的新台阶

Linux 二进制分析》是棣琦的译作,也是我们 Linux 中国审校的第一本书。在我看来,这是 Linux 中国 LCTT 翻译组的一个新的里程碑。

自 2013 年 9 月 LCTT 创立以来,已有 250 余位志愿者参与到我们的翻译组,累计翻译了近三千篇各种 Linux 相关的文章。但是直到这本《Linux 二进制分析》的出版,我们 LCTT 第一次真正意义上完成了一本书的翻译、校对、审核的工作。我们的工作上了一个新的台阶。

2、作者简介

Ryan O‘Neill,是一名在逆向工程、软件开发、安全防御和取证分析技术方面深有建树的计算机安全专家,曾就职于 Pikewerks、Leviathan 安全集团,最近在 Backtrace 担任软件工程师。

除了这本书以外,他之前还写了大量相关的论文,比如 “Modern day ELF Runtime infection via GlobalOffsetTable poisoning”、“Extending the ELF core file format for forensics snapshots”。丰富的经历和研究,使他在 ELF 二进制研究上有着超出前人的成就,这些成就,最终促成了这本《Linux 二进制分析》的出版。

3、译者简介

棣琦,本名张萌萌,是一个集美貌与智慧并存的程序媛。目前是百度研发工程师, 业余时间爱好翻译。当别人周末约会、逛街时,她选择了开启一段艰辛的翻译之旅,焚膏继晷大半年,一字一句的翻译、一行一行的校对。

Linux 二进制分析》不同于其他 Linux 技术书籍,国内和 Linux 二进制分析相关的图书、资 料十分的少,远不如其他方面的资料那般充盈,对于她来说,除了要对文章进行翻译,还要通读国内外的相关文献,以保证译文的翔实和准确。

棣琦在翻译……

此外,由于这本书内包含了大量的实战操作内容,她也需要花费大量的时间进行重复操作、验证,以确保书的内容可以被读者重新实践。

4、内容分享

这本书的内容详实,可以帮助读者快速建立起 Linux 二进制分析的整体框架,并且使用了大量的篇幅来介绍 ELF 文件格式,为读者打下良好的基础;并通过取自工作中不同场景下二进制分析的实战来帮助读者明晰二进制分析的重要性和效果,一方面可以让读者不至于只能读到枯燥无味的内容解读,另一方面,也让这本书成为安全工程师的“牛津词典”,在工作中遇到问题,可以翻到对应章节,重温操作、理念。

章节介绍

  • 第 1 章,Linux 环境和相关工具,简要介绍了会在本书中用到的 Linux 环境和相关的工具。
  • 第 2 章,ELF:二进制格式,帮助读者了解 ELF 文件格式
  • 第 3 章,Linux 进程追踪,教会读者使用 ptrace 系统调用读写进程内存并注入代码。
  • 第 4 章,ELF 病毒技术 - Linux/UNIX 病毒,介绍了 Linux 病毒的历史、病毒的工程化和围绕病毒进行的相关研究。
  • 第 5 章,Linux 二进制保护,解释了 ELF 二进制保护的基本原理。
  • 第 6 章,Linux 下的 ELF 二进制取证分析,通过解析 ELF 目标文件来研究病毒、后门和可疑的代码注入。
  • 第 7 章,进程内存取证分析,将会介绍如何解析进程的地址空间,以研究内存中的恶意软件、后门和可疑的代码注入。
  • 第 8 章,ECFS 一一扩展核心文件快照技术,是对 ECFS 这一用于深入进程内存取证分析的新开源产品的介绍。
  • 第 9 章,Linux /proc/kcore 分析,介绍了如何使用 /proc/kcore 进行内存分析来检测 Linux 内核中的恶意软件。

5、我对书的评价

在过去,安全工程师们想要学习 Linux 二进制分析,只能通过搜索引擎来搜索有限的资料,不管是中文的还是英文的,都颇为琐碎,工程师们不得不在一个又一个网页间不断跳转,以求得知识的完备性,然而互联网上的资料虽多,但真正有价值的内容却不多,大多是一些颇为浅薄的内容。

这本书的出现,填补了 Linux 二进制分析方面的空白,一方面,体系化的内容设计使得安全工程师能够在读完此书后建立起 Linux 二进制分析的完整知识体系。读者在后续需要继续研究时,只需要在此书的基础上,查询其他相关的资料,丰满自己的知识体系即可。另一方面,对于一些开始在工作中使用 ELF 分析的工程师来说, Ryan 的经验也可以真正的帮助他们更好的工作,这才是这本书最难得的。

如果你已经开始了相关的安全工作又或者希望从事软件逆向研究的相关工作,那么你一定不能错过这本书。

6、欢迎交流

译者棣琦已经召集了一个专用的微信群来讨论有关本书的话题,欢迎大家加入(限时):

微信群

如果你加入时二维码已经过期,或者群已经超过百人,你也可以加棣琦的微信,让她拉你进群:

棣琦的微信

福利

作为 Linux 中国参与制书流程的第一本书,我们从出版社那里为大家争取到了福利。在异步社区价值 59 的图书,我给你打 7 折,只要 39.99。

扫描下方二维码,即可下单购买这本《Linux 二进制分析》,欢迎大家转发此文或转发如下图片:

图书

云原生程序和基础架构需要完全不同的安全方式。牢记这些最佳实践

如今,大大小小的组织正在探索云原生技术的采用。“ 云原生 Cloud-native ”是指将软件打包到被称为容器的标准化单元中的方法,这些单元组织成微服务,它们必须对接以形成程序,并确保正在运行的应用程序完全自动化以实现更高的速度、灵活性和可伸缩性。

由于这种方法从根本上改变了软件的构建、部署和运行方式,它也从根本上改变了软件需要保护的方式。云原生程序和基础架构为安全专业人员带来了若干新的挑战,他们需要建立新的安全计划来支持其组织对云原生技术的使用。

让我们来看看这些挑战,然后我们将讨论安全团队应该采取的哪些最佳实践来解决这些挑战。首先挑战是:

  • 传统的安全基础设施缺乏容器可视性。 大多数现有的基于主机和网络的安全工具不具备监视或捕获容器活动的能力。这些工具是为了保护单个操作系统或主机之间的流量,而不是其上运行的应用程序,从而导致容器事件、系统交互和容器间流量的可视性缺乏。
  • 攻击面可以快速更改。云原生应用程序由许多较小的组件组​​成,这些组件称为微服务,它们是高度分布式的,每个都应该分别进行审计和保护。因为这些应用程序的设计是通过编排系统进行配置和调整的,所以其攻击面也在不断变化,而且比传统的独石应用程序要快得多。
  • 分布式数据流需要持续监控。容器和微服务被设计为轻量级的,并且以可编程方式与对方或外部云服务进行互连。这会在整个环境中产生大量的快速移动数据,需要进行持续监控,以便应对攻击和危害指标以及未经授权的数据访问或渗透。
  • 检测、预防和响应必须自动化。 容器生成的事件的速度和容量压倒了当前的安全操作流程。容器的短暂寿命也成为难以捕获、分析和确定事故的根本原因。有效的威胁保护意味着自动化数据收集、过滤、关联和分析,以便能够对新事件作出足够快速的反应。

面对这些新的挑战,安全专业人员将需要建立新的安全计划以支持其组织对云原生技术的使用。自然地,你的安全计划应该解决云原生程序的整个生命周期的问题,这些应用程序可以分为两个不同的阶段:构建和部署阶段以及运行时阶段。每个阶段都有不同的安全考虑因素,必须全部加以解决才能形成一个全面的安全计划。

确保容器的构建和部署

构建和部署阶段的安全性侧重于将控制应用于开发人员工作流程和持续集成和部署管道,以降低容器启动后可能出现的安全问题的风险。这些控制可以包含以下准则和最佳实践:

  • 保持镜像尽可能小。容器镜像是一个轻量级的可执行文件,用于打包应用程序代码及其依赖项。将每个镜像限制为软件运行所必需的内容, 从而最小化从镜像启动的每个容器的攻击面。从最小的操作系统基础镜像(如 Alpine Linux)开始,可以减少镜像大小,并使镜像更易于管理。
  • 扫描镜像的已知问题。当镜像构建后,应该检查已知的漏洞披露。可以扫描构成镜像的每个文件系统层,并将结果与​​定期更新的常见漏洞披露数据库(CVE)进行比较。然后开发和安全团队可以在镜像被用来启动容器之前解决发现的漏洞。
  • 数字签名的镜像。一旦建立镜像,应在部署之前验证它们的完整性。某些镜像格式使用被称为摘要的唯一标识符,可用于检测镜像内容何时发生变化。使用私钥签名镜像提供了加密的保证,以确保每个用于启动容器的镜像都是由可信方创建的。
  • 强化并限制对主机操作系统的访问。由于在主机上运行的容器共享相同的操作系统,因此必须确保它们以适当限制的功能集启动。这可以通过使用内核安全功能和 Seccomp、AppArmor 和 SELinux 等模块来实现。
  • 指定应用程序级别的分割策略。微服务之间的网络流量可以被分割,以限制它们彼此之间的连接。但是,这需要根据应用级属性(如标签和选择器)进行配置,从而消除了处理传统网络详细信息(如 IP 地址)的复杂性。分割带来的挑战是,必须事先定义策略来限制通信,而不会影响容器在环境内部和环境之间进行通信的能力,这是正常活动的一部分。
  • 保护容器所使用的秘密信息。微服务彼此相互之间频繁交换敏感数据,如密码、令牌和密钥,这称之为 秘密信息 secret 。如果将这些秘密信息存储在镜像或环境变量中,则可能会意外暴露这些。因此,像 Docker 和 Kubernetes 这样的多个编排平台都集成了秘密信息管理,确保只有在需要的时候才将秘密信息分发给使用它们的容器。

来自诸如 Docker、Red Hat 和 CoreOS 等公司的几个领先的容器平台和工具提供了部分或全部这些功能。开始使用这些方法之一是在构建和部署阶段确保强大安全性的最简单方法。

但是,构建和部署阶段控制仍然不足以确保全面的安全计划。提前解决容器开始运行之前的所有安全事件是不可能的,原因如下:首先,漏洞永远不会被完全消除,新的漏洞会一直出现。其次,声明式的容器元数据和网络分段策略不能完全预见高度分布式环境中的所有合法应用程序活动。第三,运行时控制使用起来很复杂,而且往往配置错误,就会使应用程序容易受到威胁。

在运行时保护容器

运行时阶段的安全性包括所有功能(可见性、检测、响应和预防),这些功能是发现和阻止容器运行后发生的攻击和策略违规所必需的。安全团队需要对安全事件的根源进行分类、调查和确定,以便对其进行全面补救。以下是成功的运行时阶段安全性的关键方面:

  • 检测整个​​环境以得到持续可见性。能够检测攻击和违规行为始于能够实时捕获正在运行的容器中的所有活动,以提供可操作的“真相源”。捕获不同类型的容器相关数据有各种检测框架。选择一个能够处理容器的容量和速度的方案至关重要。
  • 关联分布式威胁指标。 容器设计为基于资源可用性以跨计算基础架构而分布。由于应用程序可能由数百或数千个容器组成,因此危害指标可能分布在大量主机上,使得难以确定那些与主动威胁相关的相关指标。需要大规模,快速的相关性来确定哪些指标构成特定攻击的基础。
  • 分析容器和微服务行为。微服务和容器使得应用程序可以分解为执行特定功能的最小组件,并被设计为不可变的。这使得比传统的应用环境更容易理解预期行为的正常模式。偏离这些行为基准可能反映恶意行为,可用于更准确地检测威胁。
  • 通过机器学习增强威胁检测。容器环境中生成的数据量和速度超过了传统的检测技术。自动化和机器学习可以实现更有效的行为建模、模式识别和分类,从而以更高的保真度和更少的误报来检测威胁。注意使用机器学习的解决方案只是为了生成静态白名单,用于警报异常,这可能会导致严重的警报噪音和疲劳。
  • 拦截并阻止未经授权的容器引擎命令。发送到容器引擎(例如 Docker)的命令用于创建、启动和终止容器以及在正在运行的容器中运行命令。这些命令可以反映危害容器的意图,这意味着可以禁止任何未经授权的命令。
  • 自动响应和取证。容器的短暂寿命意味着它们往往只能提供很少的事件信息,以用于事件响应和取证。此外,云原生架构通常将基础设施视为不可变的,自动将受影响的系统替换为新系统,这意味着在调查时的容器可能会消失。自动化可以确保足够快地捕获、分析和升级信息,以减轻攻击和违规的影响。

基于容器技术和微服务架构的云原生软件正在迅速实现应用程序和基础架构的现代化。这种模式转变迫使安全专业人员重新考虑有效保护其组织所需的计划。随着容器的构建、部署和运行,云原生软件的全面安全计划将解决整个应用程序生命周期问题。通过使用上述指导方针实施计划,组织可以为容器基础设施以及运行在上面的应用程序和服务构建安全的基础。


作者:WeLien Dang 是 StackRox 的产品副总裁,StackRox 是一家为容器提供自适应威胁保护的安全公司。此前,他曾担任 CoreOS 产品负责人,并在亚马逊、Splunk 和 Bracket Computing 担任安全和云基础架构的高级产品管理职位。


via: https://www.infoworld.com/article/3233139/cloud-computing/how-cloud-native-applications-change-security.html

作者:Wei Lien Dang 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

最近的 KRACK (密钥重装攻击,这是一个安全漏洞名称或该漏洞利用攻击行为的名称)漏洞攻击的目标是位于你的设备和 Wi-Fi 访问点之间的链路,这个访问点或许是在你家里、办公室中、或你喜欢的咖啡吧中的任何一台路由器。这些提示能帮你提升你的连接的安全性。

KRACK 漏洞攻击 出现已经一段时间了,并且已经在 相关技术网站 上有很多详细的讨论,因此,我将不在这里重复攻击的技术细节。攻击方式的总结如下:

  • 在 WPA2 无线握手协议中的一个缺陷允许攻击者在你的设备和 wi-fi 访问点之间嗅探或操纵通讯。
  • 这个问题在 Linux 和 Android 设备上尤其严重,由于在 WPA2 标准中的措辞含糊不清,也或许是在实现它时的错误理解,事实上,在底层的操作系统打完补丁以前,该漏洞一直可以强制无线流量以无加密方式通讯。
  • 还好这个漏洞可以在客户端上修补,因此,天并没有塌下来,而且,WPA2 加密标准并没有像 WEP 标准那样被淘汰(不要通过切换到 WEP 加密的方式去“修复”这个问题)。
  • 大多数流行的 Linux 发行版都已经通过升级修复了这个客户端上的漏洞,因此,老老实实地去更新它吧。
  • Android 也很快修复了这个漏洞。如果你的设备在接收 Android 安全补丁,你会很快修复这个漏洞。如果你的设备不再接收这些更新,那么,这个特别的漏洞将是你停止使用你的旧设备的一个理由。

即使如此,从我的观点来看, Wi-Fi 是不可信任的基础设施链中的另一个环节,并且,我们应该完全避免将其视为可信任的通信通道。

Wi-Fi 是不受信任的基础设备

如果从你的笔记本电脑或移动设备中读到这篇文章,那么,你的通信链路看起来应该是这样:

KRACK 攻击目标是在你的设备和 Wi-Fi 访问点之间的链接,访问点或许是在你家里、办公室中、或你喜欢的咖啡吧中的任何一台路由器。

实际上,这个图示应该看起来像这样:

Wi-Fi 仅仅是在我们所不应该信任的信道上的长长的通信链的第一个链路。让我来猜猜,你使用的 Wi-Fi 路由器或许从开始使用的第一天气就没有得到过一个安全更新,并且,更糟糕的是,它或许使用了一个从未被更改过的、缺省的、易猜出的管理凭据(用户名和密码)。除非你自己安装并配置你的路由器,并且你能记得你上次更新的它的固件的时间,否则,你应该假设现在它已经被一些人控制并不能信任的。

在 Wi-Fi 路由器之后,我们的通讯进入一般意义上的常见不信任区域 —— 这要根据你的猜疑水平。这里有上游的 ISP 和接入提供商,其中的很多已经被指认监视、更改、分析和销售我们的流量数据,试图从我们的浏览习惯中挣更多的钱。通常他们的安全补丁计划辜负了我们的期望,最终让我们的流量暴露在一些恶意者眼中。

一般来说,在互联网上,我们还必须担心强大的国家级的参与者能够操纵核心网络协议,以执行大规模的网络监视和状态级的流量过滤。

HTTPS 协议

值的庆幸的是,我们有一个基于不信任的介质进行安全通讯的解决方案,并且,我们可以每天都能使用它 —— 这就是 HTTPS 协议,它加密你的点对点的互联网通讯,并且确保我们可以信任站点与我们之间的通讯。

Linux 基金会的一些措施,比如像 Let’s Encrypt 使世界各地的网站所有者都可以很容易地提供端到端的加密,这有助于确保我们的个人设备与我们试图访问的网站之间的任何有安全隐患的设备不再是个问题。

是的... 基本没关系。

DNS —— 剩下的一个问题

虽然,我们可以尽量使用 HTTPS 去创建一个可信的通信信道,但是,这里仍然有一个攻击者可以访问我们的路由器或修改我们的 Wi-Fi 流量的机会 —— 在使用 KRACK 的这个案例中 —— 可以欺骗我们的通讯进入一个错误的网站。他们可以利用我们仍然非常依赖 DNS 的这一事实 —— 这是一个未加密的、易受欺骗的 诞生自上世纪 80 年代的协议

DNS 是一个将像 “linux.com” 这样人类友好的域名,转换成计算机可以用于和其它计算机通讯的 IP 地址的一个系统。要转换一个域名到一个 IP 地址,计算机将会查询解析器软件 —— 它通常运行在 Wi-Fi 路由器或一个系统上。解析器软件将查询一个分布式的“根”域名服务器网络,去找到在互联网上哪个系统有 “linux.com” 域名所对应的 IP 地址的“权威”信息。

麻烦就在于,所有发生的这些通讯都是未经认证的、易于欺骗的、明文协议、并且响应可以很容易地被攻击者修改,去返回一个不正确的数据。如果有人去欺骗一个 DNS 查询并且返回错误的 IP 地址,他们可以操纵我们的系统最终发送 HTTP 请求到那里。

幸运的是,HTTPS 有一些内置的保护措施去确保它不会很容易地被其它人诱导至其它假冒站点。恶意服务器上的 TLS 凭据必须与你请求的 DNS 名字匹配 —— 并且它必须由一个你的浏览器认可的信誉良好的 认证机构(CA) 所签发。如果不是这种情况,你的浏览器将在你试图去与他们告诉你的地址进行通讯时出现一个很大的警告。如果你看到这样的警告,在选择不理会警告之前,请你格外小心,因为,它有可能会把你的秘密泄露给那些可能会对付你的人。

如果攻击者完全控制了路由器,他们可以在一开始时,通过拦截来自服务器指示你建立一个安全连接的响应,以阻止你使用 HTTPS 连接(这被称为 “SSL 脱衣攻击”)。 为了帮助你防护这种类型的攻击,网站可以增加一个 特殊响应头(HSTS) 去告诉你的浏览器以后与它通讯时总是使用 HTTPS 协议,但是,这仅仅是在你首次访问之后的事。对于一些非常流行的站点,浏览器现在包含一个 硬编码的域名列表,即使是首次连接,它也将总是使用 HTTPS 协议访问。

现在已经有了 DNS 欺骗的解决方案,它被称为 DNSSEC,由于有重大的障碍 —— 真实和可感知的(LCTT 译注,指的是要求实名认证),它看起来接受程度很慢。在 DNSSEC 被普遍使用之前,我们必须假设,我们接收到的 DNS 信息是不能完全信任的。

使用 VPN 去解决“最后一公里”的安全问题

因此,如果你不能信任固件太旧的 Wi-Fi 和/或无线路由器,我们能做些什么来确保发生在你的设备与常说的互联网之间的“最后一公里”通讯的完整性呢?

一个可接受的解决方案是去使用信誉好的 VPN 供应商的服务,它将在你的系统和他们的基础设施之间建立一条安全的通讯链路。这里有一个期望,就是它比你的路由器提供者和你的当前互联网供应商更注重安全,因为,他们处于一个更好的位置去确保你的流量不会受到恶意的攻击或欺骗。在你的工作站和移动设备之间使用 VPN,可以确保免受像 KRACK 这样的漏洞攻击,不安全的路由器不会影响你与外界通讯的完整性。

这有一个很重要的警告是,当你选择一个 VPN 供应商时,你必须确信他们的信用;否则,你将被一拨恶意的人出卖给其它人。远离任何人提供的所谓“免费 VPN”,因为,它们可以通过监视你和向市场营销公司销售你的流量来赚钱。 这个网站 是一个很好的资源,你可以去比较他们提供的各种 VPN,去看他们是怎么互相竞争的。

注意,你所有的设备都应该在它上面安装 VPN,那些你每天使用的网站,你的私人信息,尤其是任何与你的钱和你的身份(政府、银行网站、社交网络、等等)有关的东西都必须得到保护。VPN 并不是对付所有网络级漏洞的万能药,但是,当你在机场使用无法保证的 Wi-Fi 时,或者下次发现类似 KRACK 的漏洞时,它肯定会保护你。


via: https://www.linux.com/blog/2017/10/tips-secure-your-network-wake-krack

作者:KONSTANTIN RYABITSEV 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出