2017年7月

在开源缓存软件 memcached 修复了三个关键漏洞的八个月之后,仍有超过 70000 台未打补丁的缓存服务器直接暴露在互联网上。安全研究员警告说,黑客可能会在服务器上执行恶意代码或从其缓存中窃取潜在的敏感数据。

memcached 是一个实现了高性能缓存服务的软件包,用于在内存中存储从数据库和 API 调用中获取的数据块。这有助于提高动态 Web 应用程序的响应速度,使其更加适合大型网站和大数据项目。

虽然 memcached 不是数据库的替代品,但它存储在内存中的数据包括了来自数据库查询的用户会话和其他敏感信息。因此,该服务器在设计上并不能直接暴露在互联网等不受信任的环境中,其最新的版本已经支持了基本身份验证。

去年 10 月份,memcached 的开发者修复了由 思科 Talos 部门 安全研究员发现并报告的三个远程代码执行漏洞(CVE-2016-8704CVE-2016-8705CVE-2016-8706)。所有这些漏洞都影响到了 memcached 用于存储和检索数据的二进制协议,其中一个漏洞出现在 Simple Authentication and Security Layer (SASL)的实现中。

在去年 12 月到今年 1 月期间,成队的攻击者从数万个公开的数据库中擦除数据,这包括 MongoDB、CouchDB、Hadoop 和 Elasticsearch 集群。在很多情况下,攻击者勒索想要恢复数据的服务器管理员,然而没有任何证据表明他们的确对所删除的数据进行了复制。

Talos 的研究人员认为, memcached 服务器可能是下一个被攻击的目标,特别是在几个月前发现了漏洞之后。所以在二月份他们决定进行一系列的互联网扫描来确定潜在的攻击面。

扫描结果显示,大约有 108000 个 memcached 服务器直接暴露在互联网上,其中只有 24000 个服务器需要身份验证。如此多的服务器在没有身份验证的情况下可以公开访问已经足够糟糕,但是当他们对所提交的三个漏洞进行测试时,他们发现只有 200 台需要身份验证的服务器部署了 10 月的补丁,其它的所有服务器都可能通过 SASL 漏洞进行攻击。

总的来说,暴露于互联网上的 memcached 服务器有大约 80%,即 85000 个都没有对 10 月份的三个关键漏洞进行安全修复。

由于补丁的采用率不佳,Talos 的研究人员决定对所有这些服务器的 IP 地址进行 whois 查询,并向其所有者发送电子邮件通知。

本月初,研究人员决定再次进行扫描。他们发现,虽然有 28500 台服务器的 IP 地址与 2 月份时的地址不同,但仍然有 106000 台 memcached 服务器暴露在因特网上。

在这 106000 台服务器中,有大约 70%,即 73400 台服务器在 10 月份修复的三个漏洞的测试中仍然受到攻击。超过 18000 个已识别的服务器需要身份验证,其中 99% 的服务器仍然存在 SASL 漏洞。

即便是发送了成千上万封电子邮件进行通知,补丁的采用率也仅仅提高了 10%。

Talos 研究人员在周一的博客中表示:“这些漏洞的严重程度不能被低估。这些漏洞可能会影响到小型和大型企业在互联网上部署的平台,随着最近大量的蠕虫利用漏洞进行攻击,应该为全世界的服务器管理员敲响警钟。如果这些漏洞没有修复,就可能被利用,对组织和业务造成严重的影响。”

这项工作的结论表明,许多网络应用程序的所有者在保护用户数据方面做得不好。首先,大量的 Memcached 服务器直接暴露在互联网上,其中大多数都没有使用身份验证。即使没有任何漏洞,这些服务器上缓存的数据也存在着安全风险。

其次,即使提供了关键漏洞的补丁,许多服务器管理员也不会及时地进行修复。

在这种情况下,看到 memcached 服务器像 MongoDB 数据库一样被大规模攻击也并不奇怪。


via: https://thenewstack.io/70000-memcached-servers-can-hacked-using-eight-month-old-flaws/

作者:Lucian Constantin 译者:firmianay 校对:wxy

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

Linus Torvalds 发布了 Linux 内核 4.12。你可以从这里直接下载相关的 deb 包来安装。或者,继续阅读本文,按下面的步骤安装新内核。

警告:Linux 内核是系统的关键元素。在某个硬件设备不正常工作时,可以尝试执行升级,新的内核可能会解决此问题。 但同样的,非必须地更新一个新的内核也可能导致不必要的回滚,例如,无网络连接, 没有声音,甚至是无法正常启动系统,所以安装一个新的内核,请正确认识风险。

最简单的安装任意内核方法 - 在Linux Mint 使用 UKUU

TerminalShekin@mylinuxmintpc~$sudo apt-add-repository -y ppa:teejee2008/ppa 
sudo apt-get update
sudo apt-get install ukuu

提醒:所有的 Nvidia/AMD 电脑用户, 在安装内核之前,建议切换到 free 版本的驱动。

如果决定删除内核 4.12,

  1. 首先,重启计算机,选择 GRUB 菜单中的旧内核启动。系统引导完成之后,通过以下命令删除新的内核:
  2. 然后,使用 UKUU 程序,或者命令:sudo apt purge linux-image-4.12-*
  3. 最后,更新 GRUB 或者 BURGsudo update-grub

在启动 GRUB 的时候,选择以前的 Linux 版本即可回到以前版本的内核。

Good Luck!!!


via: https://mintguide.org/system/798-install-linux-kernel-4-12-stable-on-linux-mint.html

作者:Shekin 译者:VicYu 校对:wxy

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

今天,Linux 中国开源社区很高兴地宣布,我们旗下的翻译组织 LCTT 的译者 geekpi 在对社区持续贡献了 1371 天之后,胜利达成了 500 篇翻译的成就!

Linux 中国发展至今,得到了社区各界的鼎力支持,其中支持我们走到今天的一大基础就是成立于 2013 年 9 月 10 日的 LCTT。在这将近四年间,LCTT 为 Linux 中国和开源世界贡献了近 3000 篇文章,其中不乏精心打造的诚意之作,也有颇多的文章值得再三回味品读。

这期间,涌现出了许许多多的贡献者,他们其中有年轻的学生,也有从业多年的专家;有从事嵌入式开发的,也有从事系统运维的;有从事互联网工作的,也有从事医疗行业的。几年来,LCTT 像个大家庭一样,来了很多朋友,也送走了一些兄弟;有因病故去的前选题负责人 DeadFire, 也有勇接重任挑起选题工作的 oska874;有默默承担起 LFS 主要翻译的 martin2011qi 和技术支持的 vizv,也有将漫画翻译推动上线的 bestony 和 GHLandy;有积极打造各种轮子的 bestony 和 vizv,也有默默持之以恒翻译的 geekpi。

今天,我要着重向大家介绍的就是这位 geekpi !

据 geekpi 的 LCTT 专页,他于 LCTT 成立一个月后加入了我们,并一直持续活动到今天。他极少出现在我们内部沟通的 QQ 群内,甚至,几乎没有人知道他的名字、年龄、样貌和职业,甚至,连我也只知道一个可以联系到他的快递地址而已。

在 LCTT 里,他是翻译贡献遥遥领先的第一译者,其翻译数量几乎是第二名的三倍、第三名的四倍,其翻译数量是第二名到第七名的总和,占到了 LCTT 翻译总量的 1/6!

Top 10 of LCTT Translators

可以说,在我们每年惯例制作的 LCTT 仓库活动的视频中,他是除了作为校对、发布的我和选题 oska874 之外活动最多的人。

让我们向这位默默奉献的译者 geekpi 致敬!或许,这种不为名,不为利,才是一种纯粹的开源贡献精神吧!

这是他的 LCTT 专页成就,请大家膜拜:

geekpi's profile of LCTT

最后,有志于加入我们 LCTT 的朋友,请点此了解 LCTT

在这个三篇系列文章的第一篇文章中,我们将学习 图数据库 graph database 的基础知识,它支持了这地球上最大的一些数据池。

对于海量的各种非结构化信息来说,图数据库已经成为帮助收集、管理和搜索大量数据的技术。在这三篇系列文章中,我们将使用开源图数据库软件 Neo4j 来研究图数据库。

在本文中,我将向你展示图数据库的基础知识,帮助你快速了解概念模型。在第二篇中,我将向你展示如何启动 Neo4j 数据库,并使用内置的浏览器工具填充一些数据。而且,在本系列的最后一篇文章中,我们将探讨一些在开发工作中使用的 Neo4j 编程库。

掌握图数据库的概念模型是有用的,所以我们从那里开始。图数据库中只存储两种数据: 节点 node edge

  • 节点是实体:诸如人物、发票、电影、书籍或其他具体事物。这些有些等同于关系数据库中的记录或行。
  • 边名关系:连接节点的概念、事件或事物。在关系数据库中,这些关系通常存储在具有链接字段的数据库行中。在图数据库中,它们本身就是有用的,是可以以其自己的权限搜索的对象。

节点和边都可以拥有可搜索的属性。例如,如果你的节点代表人,他们可能拥有名字、性别、出生日期、身高等属性。而边的属性可能描述了两个人之间的关系何时建立,见面的情况或关系的性质。

这是一个帮助你可视化的图表:

 title=

在这张图中,你知道 Jane Doe 有一个新的丈夫 John;一个女儿(来自她以前的夫妻关系)Mary Smith 和朋友 Robert 和 Rhonda Roe。Roes 有一个儿子 Ryan,他正在与 Mary Smith 约会。

看看它怎么工作?每个节点代表一个独立于其他节点的人。你需要找到关于那个人的一切都可以存储在节点的属性中。边描述了人们之间的关系,这与你在程序中需要的一样多。

关系是单向的,且不能是无向的,但这没有问题。由于数据库可以以相同的速度遍历两个方向,并且方向可以忽略,你只需要定义一次此关系。如果你的程序需要定向关系,则可以自由使用它们,但如果双向性是暗含的,则不需要。

另外需要注意的是,图数据库本质上是无 schema 的。这与关系数据库不同,关系数据库每行都有一组列表,并且添加新的字段会给开发和升级带来很多工作。

每个节点都可以拥有一个 标签 label ;对于大多数程序你需要“输入”这个标签,是对典型的关系数据库中的表名的模拟。标签可以让你区分不同的节点类型。如果你需要添加新的标签或属性,修改程序来用它就行!

使用图数据库,你可以直接开始使用新的属性和标签,节点将在创建或编辑时获取它们。不需要转换东西;只需在你的代码中使用它们即可。在这里的例子中,你可以看到,我们知道 Jane 和 Mary 最喜欢的颜色和 Mary 的出生日期,但是别人没有(这些属性)。这个系统不需要知道它;用户可以在正常使用程序的过程中访问节点时为其添加信息(属性)。

作为一名开发人员,这是一个有用的特性。你可以将新的标签或属性添加到由节点处理的表单中并开始使用它,而不必进行数据库 schema 的修改。对于没有该属性的节点,将不显示任何内容。你可以使用任何一种类型的数据库来为表单进行编码,但是你可以放下在关系型数据库中要进行的许多后端工作了。

让我们添加一些新的信息:

 title=

这是一个新的节点类型,它代表一个位置,以及一些相关关系。现在我们看到 John Doe 出生在加利福尼亚州的 Petaluma,而他的妻子 Jane 则出生在德克萨斯州的 Grand Prairie。 他们现在住在得克萨斯州的赛普拉斯,因为 Jane 在附近的休斯顿工作。Ryan Roe 缺乏城市关系对数据库来说没有什么大不了的事情,我们不知道那些信息而已。当用户输入更多数据时,数据库可以轻松获取新数据并添加新数据,并根据需要创建新的节点和关系。

了解节点和边应该足以让你开始使用图形数据库。如果你像我一样,已经在考虑如何在一个图中重组你的程序。在本系列的下一篇文章中,我将向你展示如何安装 Neo4j、插入数据,并进行一些基本的搜索。


via: https://opensource.com/article/17/7/fundamentals-graph-databases-neo4j

作者:Ruth Holloway 译者:geekpi 校对:wxy

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

在之前的文章中,我提到过 ss,它是 iproute2 包附带的另一个工具,允许你查询 socket 的有关统计信息。可以完成 netstat 同样的任务,但是,ss 稍微快一点而且命令更简短。

直接输入 ss,默认会显示与 netstat 同样的内容,并且输入类似的参数可以获取你想要的类似输出。例如:

$ ss -t
State       Recv-Q Send-Q       Local Address:Port                        Peer Address:Port
ESTAB       0      0                127.0.0.1:postgresql                     127.0.0.1:48154
ESTAB       0      0            192.168.0.136:35296                      192.168.0.120:8009
ESTAB       0      0            192.168.0.136:47574                     173.194.74.189:https
[…]

ss -t 只显示 TCP 连接。ss -u 用于显示 UDP 连接,-l 参数只会显示监听的端口,而且可以进一步过滤到任何想要的信息。

我并没有测试所有可用参数,但是你甚至可以使用 -K 强制关闭 socket。

ss 真正耀眼的地方是其内置的过滤能力。让我们列出所有端口为 22(ssh)的连接:

$ ss state all sport = :ssh
Netid State      Recv-Q Send-Q     Local Address:Port                      Peer Address:Port
tcp   LISTEN     0      128                    *:ssh                                  *:*
tcp   ESTAB      0      0          192.168.0.136:ssh                      192.168.0.102:46540
tcp   LISTEN     0      128                   :::ssh                                 :::*

如果只想看已建立的 socket(排除了 listeningclosed ):

$ ss state connected sport = :ssh
Netid State      Recv-Q Send-Q     Local Address:Port                      Peer Address:Port
tcp   ESTAB      0      0          192.168.0.136:ssh                      192.168.0.102:46540

类似的,可以列出指定的 host 或者 ip 段。例如,列出到达 74.125.0.0/16 子网的连接,这个子网属于 Google:

$ ss state all dst 74.125.0.0/16
Netid State      Recv-Q Send-Q     Local Address:Port                      Peer Address:Port
tcp   ESTAB      0      0          192.168.0.136:33616                   74.125.142.189:https
tcp   ESTAB      0      0          192.168.0.136:42034                    74.125.70.189:https
tcp   ESTAB      0      0          192.168.0.136:57408                   74.125.202.189:https

ss与 iptables 的语法非常相同,如果已经熟悉了其语法,ss 非常容易上手。也可以安装 iproute2-doc 包, 通过 /usr/share/doc/iproute2-doc/ss.html 获得完整文档。

还不快试试! 你就可以知道它有多棒。无论如何,让我输入的字符越少我越高兴。


via: https://insights.ubuntu.com/2017/07/25/ss-another-way-to-get-socket-statistics/

作者:Mathieu Trudel-Lapierre 译者:VicYu 校对:wxy

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

每月安全更新

在棉花糖发布的几个月前,安卓的“Stagefright”媒体服务器漏洞被披露给了公众,这个漏洞允许在旧版本安卓上远程执行代码。由于这个漏洞影响到了数十亿安卓设备,安卓受到了媒体广泛的批评。

谷歌则以开始一项月度安卓安全更新项目作为回应。每个月它都会收集 bug,修复它们,然后推送新代码给 AOSP 和 Nexus 设备。OEM 厂商——它们已经在更新的泥潭中挣扎(也许是因为不关心)——基本上就是被告知“面对现实”然后跟上步伐。每个其它的主流操作系统有经常的安全更新——这就是成为这么大的平台的代价。为了协调 OEM 厂商,谷歌让他们提前一个月可以获取到更新。30 天之后,发布安全公告并将更新推送给谷歌设备。

月度更新项目是在棉花糖发布的两个月前开始的,但在这个主要的系统更新中谷歌添加了一栏“安卓安全补丁程序级别”到关于手机界面中。这里没有使用晦涩难懂的版本号,就用了日期来表示。这让任何人都能轻松看懂手机系统过时了多久,是个很好的让动作缓慢的 OEM 厂商羞愧的方式。

文本选择菜单现在是个浮动工具条,会在你选择的时候在文本旁边弹出。这里也不止是常规的“剪切/复制/粘贴”命令。应用可以在工具栏上放置特殊选项,比如谷歌文档里的“添加链接”。

在标准的文本命令之后,一个省略号按钮会显示一个二级菜单,应用可以在这里给文本选择菜单添加额外的功能。使用新的“文本处理”API,直接给其它应用传递文本现在变得非常轻松。如果你装了谷歌翻译,在这个菜单上会显示一个“翻译”选项。谷歌搜索也在这个工具栏里为谷歌 Now on Tap 添加了一个“助理”选项。

棉花糖添加了一个隐藏的设置,叫做“系统界面调谐器”。这个部分包含了全方位的高级用户特性和试验性项目。要访问这个设置,你需要下拉通知中心,按住“设置”按钮几秒钟。设置齿轮会旋转,然后最终你会看到一条消息显示系统界面调谐器已解锁。一旦它被打开,你就可以在系统设置的底部,开发者选项附近找到它了。

在系统界面调谐器的第一部分,用户可以在快速设置面板添加自定义瓷片,这项特性后来被重制成了应用可以使用的 API。此时这项特性还很粗糙,基本就是允许用户在文本框里输入一条自定义命令。系统状态图标可以单独打开或关闭,所以如果你真的很讨厌知道你已经连接到另外无线网络,你可以把这个图标关闭。这里有一项受欢迎的电源显示新增特性,可以将电池电量百分比显示嵌入到电池图标中。还有个用来截屏的“演示”模式,它会将正常的状态栏替换成一个假的,干净的版本。

安卓 7.0 牛轧糖,Pixel 手机,以及未来

安卓 7.0 牛轧糖Pixel 手机几个月前刚刚发布,你可以读读我们对它们的完整评测。二者都有无数我们还没看到最终效果的特性和影响,所以我们暂且搁置,等它真正成为“历史”之后再进行评说。

牛轧糖为了 Daydream VR 对图形和传感器做出了很大的改动,Daydream VR 是谷歌即将来临的智能手机驱动 VR 体验,我们已经尝试过了但还没花时间写下点什么。从 Chrome OS 借鉴来了新的“无缝升级”功能,系统拥有两个系统分区,可以在你使用其中一个的时候,对另一个在后台进行静默升级。考虑到 Pixel 是这个功能的唯一首发设备,并且还没有收到更新,我们也不确定这个功能是什么样子的。

牛轧糖最有趣的新功能之一是改进的应用框架,它允许改变应用尺寸大小。这让谷歌可以在手机和平板上实现分屏,在安卓 TV 上实现画中画,以及一个神秘的浮动窗口模式。我们已经能够通过一些软件技巧来访问浮动窗口模式,但还没有看到谷歌在实际产品中使用它。难道它的目标是桌面计算?

安卓和 Chrome OS 则继续走在共同成长的道路上。安卓应用现在已经能够在一些 Chromebook 上运行了,给了这个“仅 Web”的系统 Play 商店以及一系列的应用生态。有传言称 Chrome OS 和安卓未来将会更加紧密结合成“Andromeda”——一个“Android”和“Chrome”混合而成的词——它可能是一个融合的 Chrome/安卓系统的代号。

我们还没有看到 Pixel 手机会创造怎样的历史。谷歌最近发布了两部新旗舰机 Pixel 和 Pixel XL,加入了硬件竞争之中。谷歌之前和合作伙伴合作生产联名的 Nexus 手机,但 Pixel 产品线用的是“Google”品牌。谷歌声明这是一个完全的硬件 OEM,HTC 是合同制造商,就类似苹果把富士康作为合同制造商那样。

拥有自己的硬件改变了谷歌制造软件的方式。谷歌发布了“谷歌助理”作为未来版的“OK Google”语音命令系统。但助理是 Pixel 的独占特性,谷歌没有把它推送给所有安卓设备。谷歌对界面做了一些改变,一个定制版的“Pixel 启动器”主屏应用和一套新的系统界面,这些都是 Pixel 独占的。我们需要时间来见证未来功能点在“安卓”和“Pixel”之间的平衡。

见证这这些改变,我们可能正处在安卓历史上最不确定的点上。但在安卓最近的 2016 年 10 月活动前,安卓、Chrome OS以及谷歌 Play 的 SVP Hiroshi Lockheimer 说,他相信我们将来都会动情回顾这些最新的安卓更新。Lockheimer 是现在谷歌事实上的软件统治者,他认为最新的更新会是自安卓八年前亮相以来最有意义的事件。尽管在发布会后他没有对这个观点进行详细阐述,但事实表明明年这时候我们可能都不会讨论安卓了——它可能已经是一个安卓/Chrome OS 结合体了!正如 2008 年以来那样,安卓历史的下一篇章一定会更加有趣。


Ron Amadeo / Ron 是 Ars Technica 的评论编缉,专注于安卓系统和谷歌产品。他总是在追寻新鲜事物,还喜欢拆解事物看看它们到底是怎么运作的。@RonAmadeo


via: http://arstechnica.com/gadgets/2016/10/building-android-a-40000-word-history-of-googles-mobile-os/33/

作者:RON AMADEO 译者:alim0x 校对:wxy

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