2017年6月

投身-Linux

我花了大量时间和耐心在 Linux 上,我的朋友们都能为我证明这点。说起来你可能不信,两年前我还根本不知道 Linux 是什么,放弃 Windows 转投 Linux 更是不可能。

虽然转投 Linux 这事有点跳跃,但事后证明这是很明智的选择。口说无凭,分析一下我的路线可能会更有说服力一点。通过这个路线来说说我是怎么从小白到精通 Linux 桌面系统的。

安全意识的觉醒

两年前我也是像一般的 Windows 用户一样,在 Windows 操作系统下工作。虽然我也有跟进了解主流的科技新闻的习惯,但是对计算机我也说不上深刻了解。

2013 年夏天,美国国家安全局的一份情报项目报告让我对个人隐私安全的态度迅速发生了变化。爱德华斯诺登揭露的网络监控的广度令人不安,而且也凸显出,我们大多数人——甚至不知道如何做——来保护自己的隐私。

在之前我没有对电脑或它们在我的个人事务中所扮演的角色作出任何特别的考虑,我开始意识到控制一个人的数字生活,以及控制它的设备的重要性。

按理来说下一步应该是确定该怎么去做。虽然我制订的目标似乎是合乎逻辑的,但要实现它并不简单。在接下来的几个月里,我把自己的空闲时间花在了互联网上,寻找关于隐私保护、加密以及其它任何可以保护我的技术的指南。

专家们说想逃避情报机构的监控几乎是不可能的。然而,这些专家们也会告诉你,能帮你避开那怕只是避开那么一丢丢的监视 -- 在较小的机构中有相当比例的监控更有可能针对普通民众 -- 唯一可行的办法就是使用开源软件。

Linux,我很快意识到需要去了解它,因为它是这些开源软件的头头。

闭源与开源

在进一步的研究中,我开始熟悉开源软件的一些特点。我们每天使用的软件的绝大多数 -- 从聊天软件到操作系统,包括Windows -- 它们都是开源软件的对立面:它们是闭源的。

例如,当微软的开发人员在 Windows 上进行开发工作时,他们会用一些编程语言编写源代码,并且只在他们的团队内部流传这些代码。当他们准备发布软件时,他们会编译它,将它从人类可读的代码转换成计算机运行的 1 和 0,面对这些机器码,即使是最聪明的人也很难逆向工程到原始源代码。

在这种模式下,只有软件的开发者才知道这些软件实际在做些什么,有没有私底下监控用户行为。

开源软件会提供软件的源代码和编译好的二进制代码给公众下载使用。不论是不是每个用户都有能力去阅读这些源代码,评估它们的安全性和隐私性,这都不重要。因为源代码是公开的,总有那么一部分人有这个能力做这些事,一但他们发现这些代码有问题他们就能及时通知其它用户,让公众一起来监督这些开源软件的行为,让那些故意隐藏的恶意代码片段或者非故意的代码漏洞能及时被发现并处理掉。

经过彻底的研究之后,很明显,唯一能保证我的隐私和用户的自主权的操作系统就是那些具备透明开放的源代码哲学的操作系统。一位知识渊博的朋友和隐私倡导者推荐的最多的是 Linux。如果这是必须的话,我已经准备好接受一个艰难的过渡,但是我对隐私的重要性的信念给了我信心去尝试。

婴儿学步

虽然我决心转向 Linux 的是急切的,但饭得一口吃,路也得一步一步走。我是最开始是从安装 Ubuntu 开始的 —— 一个容易配置对初学者很友好的 Linux 发行版 —— 在我的老笔记本电脑上它与原有的 Windows 相处融洽井水不犯河水。

每次启动我的电脑时,我都能选择 Ubuntu 或 Windows ,这样我就能在 Linux 上找到自己的下脚点,同时保留熟悉的 Windows 以防前者可能缺失的一些辅助性功能。

不久后,一个硬盘驱动器损坏严重让我无法再继续享受这个设置,不过我认为这是一个机会,让我考虑一下买一台 Linux 的新笔记本电脑。由于 Linux 对标准的英特尔处理器、图形卡和无线适配器的驱动程序支持得很好,所以我买了一台联想的 ThinkPad。

我做了一个全新的开始,完全擦除我的新机器上的 Windows ,安装了 Debian ,这是一个广泛兼容和稳定的发行版,Ubuntu 就是基于它衍生出来的。我不仅在没有熟悉的 Windows 安全网络的情况下挺过来了,我还在不断的进步提高。我很快就沉浸在以前神秘的命令行世界里。

在我用了一年的 Linux 操作系统之后,我又进行了一次冒险,安装了 Arch Linux ,它需要一个更加复杂的手动用户安装过程,并带有完全的磁盘加密。那天晚上,我和一位 Linux 资深管理人士一起安装了 Arch ,这标志着我生命中最值得骄傲的成就之一。

在这个过程中,我面临着挑战 -- 有时,在Windows上无缝工作的应用程序需要额外的步骤或需要安装必要的驱动 -- 但是我克服了它们,或者说绕过它们,继续按照我自己的节奏摸索 Linux。

全速前进

就我而言,那时我才真正开始进行我的学习。我用 Linux 来驾驭计算机,并确保它可以为我工作,不过最让我着迷的是它提供对系统进行修改的自由和个性化处理。

作为一个开源操作系统,Linux 是无限开放的。尽管我最初期望花时间阅读安全实践(我现在仍然这么做),但我也发现自己深入到配置面板中,并把所有的颜色、图标和菜单都列出来,只是这样而已。

我花了一些时间去适应,但我越是投入到新事物中,我就变得越自信,越好奇。

自从在这条路上走了两年多以后,我在电脑上从来没有像今天这么多的感受。我不能像我想要的那样去个性化 Windows,另外依据我从开源社区学到的东西来看,我也不能完全信任它。

有一个叫电脑的东西,它曾经只是我的的一件不起眼的硬件设备,现在它和我之间的关系变得非常美妙 —— 超越记者和他的笔记本、也超越小提琴家和他的小提琴的关系。

我甚至为自己的手机不像我的笔记本电脑那样是真正的 Linux 而感到悲哀,我都不知道我能对它做些什么。不管怎么样,我将继续对我的 Arch 系统进行优化,只要有机会我将会再去发现新的领域并探索新的可能性。


via: http://www.linuxinsider.com/story/84286.html

作者:Jonathan Terrasi 译者:zschong 校对:wxy

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

在这个分为两篇的关于具有绝佳命令行界面的终端程序的系列文章的第二篇教程中,我们将讨论 Prompt、Toolkit、Click、Pygments 和 Fuzzy Finder 。

 title=

这是我的一个分为两篇的关于具有绝佳命令行界面的终端程序的系列文章的第二篇教程。在第一篇文章中,我们讨论了一些能够使命令行应用用起来令人感到愉悦的特性。在第二篇文章中,我们来看看如何用 Python 的一些库来实现这些特性。

我打算用少于 20 行 Python 代码来实现。让我们开始吧。

Python Prompt Toolkit

我习惯于把这个库称为命令行应用的瑞士军刀,它可以作为 readlinecurses 等的替代品。让我们首先安装这个库,然后开始该教程:

pip install prompt_toolkit

我们以一个简单的 REPL (LCTT 译注:REPL —— Read-Eval-Print Loop,交互式开发环境)开始。一个典型的 REPL 会接收用户的输入,进行一个操作,然后输出结果。比如在我们的例子中,我们将要实现一个具有 “回显” 功能的 REPL 。它仅仅是原样打印出用户的输入:

REPL

from prompt_toolkit import prompt

while 1:
    user_input = prompt('>')
    print(user_input)

这就是实现 REPL 的全部代码。它可以读取用户的输入,然后打印出用户的输入内容。在这段代码中使用的 prompt 函数来自 prompt_toolkit 库,它是 readline 库的一个替代品。

命令历史

为了增强我们的 REPL 的功能,我们可以添加命令历史:

from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory

while 1:
    user_input = prompt('>', 
                        history=FileHistory('history.txt'),
                       )
    print(user_input)

我们刚刚给 REPL 添加了持久的命令历史。现在,我们可以使用上/下箭头来浏览命令历史,并使用 Ctrl-R 来搜索命令历史。它满足了命令行的基本准则。

自动推荐

在第一篇教程中,我讲到的一个可发现性技巧是自动推荐历史命令。(我是首先在 fish shell 中看到的这一特性)让我们把这一特性加入到我们的 REPL 中:

from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory

while 1:
    user_input = prompt('>', 
                        history=FileHistory('history.txt'),
                        auto_suggest=AutoSuggestFromHistory(),
                       )
    print(user_input)

我们只需要给 prompt() API 调用添加一个新的参数。现在,我们有了一个具有 fish shell 风格的 REPL,它可以自动推荐历史命令

自动补全

现在,让我们通过自动补全来加强 Tab 补全。它能够在用户开始输入的时候弹出可能的命令推荐。

REPL 如何来进行推荐呢?我们使用一个字典来进行可能项的推荐。

比如说我们实现一个针对 SQL 的 REPL 。我们可以把 SQL 关键字存到自动补全字典里面。让我们看一看这是如何实现的:

from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
from prompt_toolkit.contrib.completers import WordCompleter

SQLCompleter = WordCompleter(['select', 'from', 'insert', 'update', 'delete', 'drop'],
                             ignore_case=True)

while 1:
    user_input = prompt('SQL>', 
                        history=FileHistory('history.txt'),
                        auto_suggest=AutoSuggestFromHistory(),
                        completer=SQLCompleter,
                        )
    print(user_input)

再次说明,我们只是简单的使用了 prompt-toolkit 内建的一个叫做 WordCompleter 的补全特性,它能够把用户输入和可能推荐的字典进行匹配,然后提供一个列表。

现在,我们有了一个能够自动补全、fish shell 风格的历史命令推荐以及上/下浏览历史的 REPL 。实现这些特性只用了不到 10 行的实际代码。

Click

Click 是一个命令行创建工具包,使用它能够更容易的为程序解析命令行选项的参数和常量。在这儿我们不讨论如何使用 Click 来作为参数解析器。相反,我们将会看看 Click 带有的一些功能。

安装 Click

pip install click

分页器

分页器是 Unix 系统上的实用工具,它们能够一次一页地显示很长的输出。分页器的一些例子包括 lessmoremost 等。通过分页器来显示一个命令的输出不仅仅是一个友好的设计,同时也是必要的。

让我们进一步改进前面的例子。我们不再使用默认的 print() 语句,取而代之的是 click.echo_via_pager() 。它将会把输出通过分页器发送到标准输出。这是平台无关的,因此在 Unix 系统或 Windows 系统上均能工作。如果必要的话,click_via_pager 会尝试使用一个合适的默认分页器来输出,从而能够显示代码高亮。

from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
from prompt_toolkit.contrib.completers import WordCompleter
import click

SQLCompleter = WordCompleter(['select', 'from', 'insert', 'update', 'delete', 'drop'],
                             ignore_case=True)

while 1:
    user_input = prompt(u'SQL>',
                        history=FileHistory('history.txt'),
                        auto_suggest=AutoSuggestFromHistory(),
                        completer=SQLCompleter,
                        )
    click.echo_via_pager(user_input)

编辑器

在我前面的文章中一个值得一提的细节是,当命令过于复杂的时候进入编辑器来编辑。Click 有一个简单的 API 能够打开编辑器,然后把在编辑器中输入的文本返回给应用。

import click
message = click.edit()

Fuzzy Finder

Fuzzy Finder 是一种通过少量输入来为用户减少推荐的方法。幸运的是,有一个库可以实现 Fuzzy Finder 。让我们首先安装这个库:

pip install fuzzyfinder

Fuzzy Finder 的 API 很简单。用户向它传递部分字符串和一系列可能的选择,然后,Fuzzy Finder 将会返回一个与部分字符串匹配的列表,这一列表是通过模糊算法根据相关性排序得出的。比如:

>>> from fuzzyfinder import fuzzyfinder

>>> suggestions = fuzzyfinder('abc', ['abcd', 'defabca', 'aagbec', 'xyz', 'qux'])

>>> list(suggestions)
['abcd', 'defabca', 'aagbec']

现在我们有了 fuzzyfinder,让我们把它加入到我们的 SQL REPL 中。方法是我们自定义一个 completer 而不是使用来自 prompt-toolkit 库的 WordCompleter 。比如:

from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
from prompt_toolkit.completion import Completer, Completion
import click
from fuzzyfinder import fuzzyfinder

SQLKeywords = ['select', 'from', 'insert', 'update', 'delete', 'drop']

class SQLCompleter(Completer):
    def get_completions(self, document, complete_event):
        word_before_cursor = document.get_word_before_cursor(WORD=True)
        matches = fuzzyfinder(word_before_cursor, SQLKeywords)
        for m in matches:
            yield Completion(m, start_position=-len(word_before_cursor))

while 1:
    user_input = prompt(u'SQL>',
                        history=FileHistory('history.txt'),
                        auto_suggest=AutoSuggestFromHistory(),
                        completer=SQLCompleter(),
                        )
    click.echo_via_pager(user_input)

Pygments

现在,让我们给用户输入添加语法高亮。我们正在搭建一个 SQL REPL,如果具有彩色高亮的 SQL 语句,这会很棒。

Pygments 是一个提供语法高亮的库,内建支持超过 300 种语言。添加语法高亮能够使应用变得彩色化,从而能够帮助用户在执行程序前发现 SQL 中存在的错误,比如拼写错误、引号不匹配或括号不匹配。

首先,安装 Pygments

pip install pygments

让我们使用 Pygments 来为 SQL REPL 添加颜色:

from prompt_toolkit import prompt
from prompt_toolkit.history import FileHistory
from prompt_toolkit.auto_suggest import AutoSuggestFromHistory
from prompt_toolkit.completion import Completer, Completion
import click
from fuzzyfinder import fuzzyfinder
from pygments.lexers.sql import SqlLexer

SQLKeywords = ['select', 'from', 'insert', 'update', 'delete', 'drop']

class SQLCompleter(Completer):
    def get_completions(self, document, complete_event):
        word_before_cursor = document.get_word_before_cursor(WORD=True)
        matches = fuzzyfinder(word_before_cursor, SQLKeywords)
        for m in matches:
            yield Completion(m, start_position=-len(word_before_cursor))

while 1:
    user_input = prompt(u'SQL>',
                        history=FileHistory('history.txt'),
                        auto_suggest=AutoSuggestFromHistory(),
                        completer=SQLCompleter(),
                        lexer=SqlLexer,
                        )
    click.echo_via_pager(user_input)

Prompt Toolkit 能够和 Pygments 一同很好的工作。我们把 Pygments 提供的 SqlLexer 加入到来自 prompt-toolkitprompt 中。现在,所有的用户输入都会被当作 SQL 语句,并进行适当着色。

结论

我们的“旅途”通过创建一个强大的 REPL 结束,这个 REPL 具有常见的 shell 的全部特性,比如历史命令,键位绑定,用户友好性比如自动补全、模糊查找、分页器支持、编辑器支持和语法高亮。我们仅用少于 20 行 Python 代码就实现了这个 REPL 。

不是很简单吗?现在,你没有理由不会写一个自己的命令行应用了。下面这些资源可能有帮助:

你也可以在我在 PyCon US 2017 的演讲优秀的命令行工具中学到更多东西,该会议是 5 月 20 日在波特兰,俄勒冈举行的。

(题图 : 美国 Mennonite 教堂档案 。 Opensource.com. CC BY-SA 4.0


作者简介:

Amjith Ramanujam - Amjith Ramanujam 是 pgclimycli 的创始人。人们认为它们很酷,他表示笑纳赞誉。他喜欢用 Python、JavaScript 和 C 编程。他喜欢写一些简单、易于理解的代码,有时候这样做是成功的。


via: https://opensource.com/article/17/5/4-practical-python-libraries

作者:Amjith Ramanujam 译者:ucasFL 校对:wxy

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

内容分发网络可以加速你的网站图片、CSS、JS、以及其他静态内容。

 title=

CDN 或称内容分发网络是位于世界各地的策略性放置的服务器网络,用于更快地向用户传输文件。传统 CDN 能够加速你的网站的图像、CSS、JS 和任何其他静态内容的访问。它允许网站所有者加速自己的所有内容,并为他们提供额外的功能和配置选项,而这些高级服务通常需要根据项目使用的带宽量进行支付。

但是,如果你的项目无法证明值得实施传统 CDN ,那么使用开源 CDN 可能更合适。通常这些类型的 CDN 能让你链接到流行的 Web 库(例如 CSS/JS 框架),可以让你从免费的 CDN 服务器上传输给你的访问者。虽然开源库的 CDN 服务不允许你将自己的内容上传到服务器,但它们可以帮助你加速全局库并提高网站的冗余性。

CDN 在庞大的服务器网络上托管项目,因此网站维护者需要修改网站 HTML 代码中的资源链接来反映开源 CDN 的URL,后面跟上资源路径。根据你是否链接到 JavaScript 或 CSS 库,链接将包含在 <script><link> 标签中。

我们来探讨开源库的四大流行 CDN 服务。

JsDelivr

JsDelivr 是一个使用高级 CDN 提供商(KeyCDN、Stackpath、Cloudflare)的开源 CDN 提供者来分发开源项目资源。jsDelivr 的一些亮点包括:

  • 支持 2100 多个库
  • 110 个接入点
  • CDN 可在亚洲和中国使用
  • 支持 API
  • 没有流量限制
  • 完整的 HTTPS 支持

所有片段都以自定义 jsDelivr URL https://cdn.jsdelivr.net/ 开始,然后是项目名称、版本号等。你还可以配置 jsDelivr 生成带脚本标签的 URL 并启用 SRI(子资源完整性)以增加安全性。

Cdnjs

Cdnjs 是另一个流行的开源 CDN 提供者,类似于 jsDelivr。此服务还提供了一系列流行的 JavaScript 和 CSS 库,你可以在 Web 项目中进行链接。 该服务由 CDN 提供商 Cloudflare 和 KeyCDN 赞助。cdnjs 的一些亮点包括:

  • 支持 2900 多个库
  • 超过一百万个网站使用
  • 支持 HTTP/2
  • 支持 HTTPS

与 jsDelivr 类似,使用 cdnjs,你也可以选择使用或者不使用脚本标签和 SRI 来复制资源 URL。

Google 托管库

Google 托管库网站允许你链接到托管在 Google 强大的开源 CDN 网络上的流行 JavaScript 库。这个开源的 CDN 解决方案不提供像 jsDelivr 或 cdnjs 一样多的库或者功能。然而,当连接到 Google 托管库时,你可以期待高度的可靠性和信任。Google 开源 CDN 的几个亮点包括:

  • HTTPS 支持
  • 文件提供 CORS 和 Timing-Allow 头
  • 提供每个库的最新版本

所有 Google 的托管库文件都以URL https://ajax.googleapis.com/ 开头,后跟项目的名称、版本号和文件名。

Microsoft Ajax CDN

Microsoft Ajax CDN与 Google 托管库非常类似,因为它只托管流行的库。但是,将 Microsoft Ajax CDN 与 Google 托管库区分开的两个主要区别是 Microsoft 提供了 CSS 和 JS 库,并且还提供了各种库的各种版本。Microsoft Ajax CDN 的几个亮点包括:

  • HTTPS 支持
  • 每个库的以前版本通常都可用

所有的 Microsoft Ajax 文件都以 URL http://ajax.aspnetcdn.com/ajax/ 开头,并且和其它文件一样,后面是库的名字,版本号等。

如果你的项目或网站尚未准备好利用优质的 CDN 服务,但你仍然希望加速网站的重要方面,那么使用开源 CDN 是一个很好的解决方案。它能够加速第三方库的传输,否则它们将从原始服务器发送,从而导致远方用户不必要的加载以及更慢的速度。

你喜欢使用哪个开源 CDN 提供商?为什么?

(图片版权:Open Clip Art Library,它明确将其公开于公共领域见此处)。由 Jen Wike Huger 修改。)


作者简介:

Cody Arsenault - Cody 热衷于网络性能,SEO 以及创业活动。他是 KeyCDN 的网络性能倡导者,致力于使网络更快。


via: https://opensource.com/article/17/4/top-cdn-services

作者:Cody Arsenault 译者:geekpi 校对:wxy

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

永恒之石

研究人员们发现有一个新的蠕虫病毒正在通过 SMB 文件共享漏洞传播,但是不同于 “想哭” WannaCry 勒索病毒的构成,这个病毒利用了 7 个 NSA 黑客工具,而不是 “想哭” WannaCry 勒索病毒的两个。

这个蠕虫病毒的存在首次发现是在周三,它感染了 Miroslav Stampar 的 SMB 文件共享的蜜罐,Miroslav Stampar 是克罗地亚政府计算机应急响应小组成员,也是用来探测和利用 SQL 注入漏洞的 SQLMAP 工具的制造者。

永恒之石利用了七个 NSA 的工具

Stampar 命名这个在样本中被发现的病毒为 “永恒之石” EternalRocks ,其基于蠕虫病毒可执行的特性,它通过 6 个以 SMB 文件共享漏洞为中心的 NSA 工具来感染暴露在外网的一台开启 SMB 端口的计算机。这些被叫做 永恒之蓝永恒战士永恒浪漫永恒协同的 SMB 漏洞被利用危害易受攻击的计算机,而 SMBTOUCHARCHITOUCH 这两个 NSA 工具起到了检测 SMB 文件共享漏洞的作用。

一旦这个蠕虫病毒获得了最初的立足点,那么它会用另一个叫做 DOUBLEPULSAR 的 NSA 工具扩散到新的易受攻击的机器上。

永恒之石名字的起源

“永恒之石”名字的起源

“想哭”勒索病毒爆发,用了一个 SMB 蠕虫病毒感染计算机并扩散给新的受害人,这影响了超过 24 万受害者。

不同于“永恒之石”,“想哭”的 SMB 蠕虫病毒只利用了永恒之蓝这一个漏洞做初步感染,然后通过 DOUBLEPULSAR 来扩散到其他的计算机上。

“永恒之石”更加复杂,但危险性较低

作为蠕虫病毒,“永恒之石”没有“想哭”那么危险,这是由于它当前不传递任何恶意的内容,然而,这并不意味着“永恒之石”不复杂,据 Stampar 说,实际恰恰相反。

首先,“永恒之石”要比“想哭”的 SMB 蠕虫病毒更加隐蔽,一旦病毒感染了一台计算机,它会发起有两个阶段的安装过程,其中另一个是延迟执行的。

在病毒的第一个安装过程阶段,永恒之石获取一个感染计算机主机的立足点,下载 tor 客户端,然后连接到它的命令控制服务器,其定位在暗网的一个 .onion 的域名上。

在一个预定的时间内,一般是 24 个小时,命令控制器会响应,这个长延迟执行进程的做法最有可能绕过沙盒安全测试环境和安全研究人员们对病毒的分析,因为没多少人愿意一整天来等命令控制器响应。

没有停止开关的域名

此外,“永恒之石”病毒也会用和一个与“想哭” SMB 的蠕虫病毒文件相同名字的一个文件,以此愚弄安全研究人员来误判它。

但是不同于“想哭”病毒,永恒之石不包括停止开关的域名,但这是安全研究人员唯一用来停止“想哭”病毒爆发的方法。

在病毒隐匿期满且命令控制器有了响应,永恒之石开始进入安装过程的第二阶段,它会下载一个名为 shadowbrokers.zip 的归档形式的第二阶段恶意组件。

这个文件能够自解压,它包含着 shadow Brokers 黑客组织在 2017 年 4 月泄漏的七个 NSA 的 SMB 漏洞工具。 这个蠕虫病毒会开始一个快速的 ip 扫描过程并且尝试连接随机的 ip 地址。

shadowbrokers.zip的内容

在 shadowbrokers.zip 压缩包里发现了 NSA 工具的配置文件。

“永恒之石”可以马上成为武器

由于该病毒集成的漏洞较多且广泛,缺少停止开关的域名,而且有它的隐匿期,如果病毒的作者决定用它来作为勒索、银行木马、远程控制或者其他功能的武器,“永恒之石”可能会对 SMB 端口暴露在互联网的易受攻击的计算机造成严重的威胁。

就目前来看,蠕虫病毒看起来像是一个试验,或者是恶意软件作者在进行测试或者为未来的威胁而做的微调。

然而,这并不意味着“永恒之石”是无害的,感染了这个病毒的计算机是通过命令控制服务器来控制,并且蠕虫病毒的制造者能够利用这个隐藏通讯连接,发送新的恶意软件到这台感染了病毒的电脑上。

此外,DOUBLEPULSAR,这是一个带有后门的植入仍然运行在感染了永恒之石的 PC 上,不幸的是,该病毒的作者没有采取任何措施来保护这个 DOUBLEPULSAR 的植入,这意味这缺省其运行在未被保护的状态下,其他的恶意的用户能使用它作为把感染了永恒之石的计算机的后门,发送他们自己的恶意软件到这些感染病毒的 PC 上。

关于这个病毒的感染过程的 IOC 和更多信息能够在 Stampar 在几天前设置的 [GitHub] 仓库上获得。

SMB 漏洞的混战

当前,有许多人在扫描旧的和未打补丁的 SMB 服务,系统管理员已经注意到并且开始给易受攻击的计算机打补丁,关闭旧版的 SMBv1 协议,慢慢的来减少被永恒之石感染的计算机数量。

此外,像 Adylkuzz 这类恶意软件,也会关闭 SMB 端口,来阻止来自其它威胁软件的进一步利用,这同时也导致了“永恒之石”和其它利用 SMB 漏洞的恶意软件潜在目标数量的减少,来自 ForcepointCyphortSecdo 的报告详细介绍了当前针对 SMB 端口的计算机的威胁情况。

虽然如此,系统管理员补丁打的越快,系统越安全,“蠕虫病毒感染速度正在和系统管理员给机器打补丁速度比赛”,Stampar 在一次私人谈话中告诉 BleepingComputer 记者,“一旦计算机被感染,它能在任何时间将其作为武器,不论你打多时间多近的补丁。”

(题图:Miroslav Stampar, BleepingComputer & Ana María Lora Macias


作者简介:

Catalin 涉及了各方面,像数据泄漏、软件漏洞、漏洞利用、黑客新闻、暗网、编程话题、社交媒体、Web技术、产品研发等领域。


via: https://www.bleepingcomputer.com/news/security/new-smb-worm-uses-seven-nsa-hacking-tools-wannacry-used-just-two/

作者:CATALIN CIMPANU 译者:hwlog 校对:wxy

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