Catalin Cimpanu 发布的文章

两名中国的安全研究人员开发了一个新的 Web shell,并把它开源到 GitHub 上了,任何人都可以使用它,或基于它改造成自己的黑客工具。

这个 Web Shell 的名字是 “ C刀 Cknife ”——中国小刀的意思。它首次出现在 2015 年底,以 Java 开发,包括一个可以让它连接到 Java、PHP、ASP 和 ASP.NET 等服务器的服务器端组件。

两位作者是来自 MS509Team 的 Chora 和 MelodyZX,其中 MelodyZX 曾向阿里安全应急响应提交过漏洞,并应邀参加过2016 网络安全年会专题演讲。

中国菜刀 China Copper ”之后的复刻版

Recorded Future 的调查显示,这两位作者想要创造一个“中国菜刀”的复刻版。“中国菜刀”是一个非常有效的,但是已经过时的 Web Shell,它发布于 2013 年,曾经是中国红客的首选工具。

在“C刀”和“中国菜刀”之间有一些相同的地方,比如图标和发起 HTTP 请求的行为,但是两个工具也有根本性的不同,“C刀”采用 Java 编写,而“中国菜刀”则以 C++ 编写。此外,“C刀”在 Web Shell 的客户端和被入侵的服务器之间的通讯使用 HTTP,而“中国菜刀”则使用的是 HTTPS。Recorded Future 说“C刀”的作者承诺或在未来几个月内增加 HTTPS 支持。

Recorded Future:“C刀”是 Web 服务器的远程管理木马(RAT)

目前,“C刀”允许使用者同时连接多台服务器,比如同时连接到 Web 服务器和数据库,以及运行一个远程命令行。

由于其大量的功能和甚至支持替换显示样式的漂亮界面,Recorded Future 认为它更像是一个“Web 服务器的远程管理木马(RAT)”而不是传统的 Web Shell。

尽管两位作者作为安全人员的职业很成功,但是这种开源了 Web Shell 的行为似乎跨越了白帽子和黑帽子之间的界限,相对于网络安全从业人员而言,这种工具对于网络攻击者更有用处。

提供 Maven 中央仓库托管服务的 Sonatype 公司说, Java 组件下载中,有 1/16 的下载组件中包含了已知的安全问题。

Sonatype 声称,开发者们每年要下载超过 310 亿个/次 Java 组件,每天也会新增超过 1 千个新组件以及超过 1 万个的组件新版本。

现在企业都采用托管式的中央组件仓库来存储他们的代码。这些代码中有一些来自私有项目,而更多的则来自于开源代码,在多数情况下,他们只是下载开源代码并导入到其项目中,而不做必要的安全审计。

Sonatype 发现现在企业中的百分之八、九十的代码都是由开源组件构成的,它们直接来自公开的代码导入。

由于这些安全缺陷都是公开的,而且 Sonatype 能够访问到其托管服务的服务器统计数据,相比其他人来说他们得到的数据会更多,因此他们警告开发者们要注意在他们的代码中使用不安全的或过期的组件所带来的风险。

这个警告对于公司来说更加严重,因为如果攻击者对采用有缺陷的组件创建的应用进行攻击,结果就可能导致更多的经济损失。

更老的组件的缺陷率高达三倍

在分析了来自几个不同行业的三千家机构的两万五千个以上的企业应用之后,Sonatype 发现平均每年每个企业都会下载大约五千个不同的组件。

组件越老,就越有可能包含安全缺陷。甚至更糟糕的是, 其中 97% 的下载的组件不能很方便的跟踪和审计。而如果公司仅仅是要修复两千个应用中的 10% 的安全漏洞,就大约需要 742 万美金的巨额投入。

这些问题说明企业需要对软件供应链进行管理,以避免将来出现的缺陷问题。花费在组件安全审计上的时间,将在该项目的以后出现安全漏洞后得到回报。

从这种托管的中央代码仓库中移除有缺陷的组件也应该成为这些项目背后的社区的最高优先级的工作。

软件供应链报告中包含了当今软件供应链的更多信息。

 title=

完全无视安全功能的 Redis 服务器自创建以来饱受各种安全风险的困扰,Risk Based Security (RBS) 最近发现了 6338 台受到侵入的 Redis 服务器。

Redis 是一个在内存中以键值对方式存储数据的 NOSQL 数据库。据 DB-Engines 的统计数据,它在 2015 年度的数据库流行度位列第十,而在键值对数据库中排名第一

由于 Redis 以性能为第一考量,所以默认配置下该数据库没有任何的认证或其它的安全控制功能。

Redis 服务器存在 SSH 密钥创建漏洞

任何人只要知道你的 IP 地址和 Redis 的端口,就可以访问其中的任意内容。更糟糕的是,在 2015 年末,发现了一种攻击方式可以让任何人在你的 Redis 服务器上的 authorized\_keys 文件中存储 SSH 密钥——这意味着,攻击者将不需要任何密码即可取得 Redis 服务器上的 SSH 访问权限。

而现在,至少有三万台没有任何验证措施的 Redis 服务器暴露在互联网上,据 RBS 研究人员的称,已经有 6338 台 Redis 被窃取了 SSH 权限。

该公司在通过 Shodan 进行了非侵入式扫描之后得出了如上结论。RBS 的研究人员在分析了被入侵的服务器之后发现,它们上面存在着一个名为“crackit” 的 SSH 密钥,其关联的邮件地址 [email protected] 曾在之前的其它入侵事件中出现过。除了 [email protected] 这个地址出现过 5892 次之外,[email protected][email protected] 也分别出现了 385 次和 211 次。除了“crackit” 之外,还有一些名为“crackit\_key”, “qwe” ,“ck” 和 “crack” 之类的密钥名。据 RBS 分析,这表明它们来自多个组织或个人。

攻击者并不针对特定的 Redis 版本,任何版本都可能被黑

这些被攻击的 Redis 服务器的版本多达 106 个,从早期的 1.2.0. 到最新的 3.2.1 都有。

“从对这些数据的分析中得不到更进一步的结果,只能确认两件事,第一件事是这并非新出现的漏洞,第二是,有些服务器只是被侵入了,但是并没有被利用。”RBS 研究人员解释说

该公司建议系统管理员们升级其 Redis 服务器到最新的版本,并启用 3.2 版本新引入的“保护模式”。另外,不要将 Redis 服务器或者其它的数据库暴露在互联网上是最起码的安全准则。

微软开源了 Checked C ,这是一个 C 语言的扩展版本,可以用于解决 C 语言中的一系列安全相关的隐患。正如其名字所示,Checked C 为 C 语言增加了检查。这个检查可以帮助开发者检查常见的编程错误,比如 缓存区侵占 buffer overruns 、内存访问越界、不正确的类型转换等。这些编程错误往往是造成许多重大安全漏洞的根本原因,比如 破壳漏洞 Shellshock 心脏出血漏洞 Heartbleed 沙虫 Sandworm 等。

Checked C 通过修改如何控制指针来解决这些问题,指针被程序员们用来定义他们的代码所操作的内存地址。

当指针数量一多,指针控制就往往容易忙中出乱。项目越大,跟踪它们就越困难。类似 Chromium、Firefox、Office、OpenSSL 以及其它的大型代码库在这方面都存在这样的问题,你可以从它们的变更日志中看到大量的这类问题修复。

“Checked C 允许程序员更好的描述他们想要如何使用指针,以及指针应该指向的内存范围”,微软,“这个信息可以用于在运行时环境中添加检测,以侦测错误的数据访问,而不是让错误悄悄的发生而无所察觉。”

Checked C 给 C 语言添加了边界检查

Checked C 也将允许开发者检测到他们以为 C 语言有、而实际却没有的功能误用。按编程的说法来说,这个叫做“ 边界检查 bounds checking ”的功能,用于检查变量/指针是否在它的范围之内赋值。

C# 和 Rust 已经有这样的功能了,而且还不止于此。然而,不幸的是,被广泛使用的 C 和 C++ 却没有这样的功能。微软希望只需要对现有的 C/C++ 程序做最小的改动,利用 Checked C 就可以得到安全方面的改善,这样会吸引大量的开发者开始使用 Checked C。

Checked C 项目已经放到了 GitHub 上。

这并不是微软第一次对基本编程语言做出来自己的演绎,之前,该公司的程序员们还创建了一个名为 TypeScript 的 JavaScript 的超集,它已经得到了广泛认可。

Mozilla 昨天在 Firefox 夜间构建版 50.0a1 中增加了一个名为“ 容器标签 Container Tabs ”的实验性功能。

Mozilla 的工程师称,该功能可以将用户的浏览会话分到不同的容器中。这些隔离的容器可以让用户以不同的身份登录到同一个网站上。默认情况下,Firefox 夜间构建版带有四个容器:个人(蓝色)、工作(橙色)、银行(绿色)和购物(粉色),也就是说用户可以使用四个不同的 ID 登录同一个网站。

容器标签分隔来自网站的数据,而不是浏览器的数据

Mozilla 的工程师说,可以使用技术手段将 Web 浏览体验分到不同的“容器”,其所分割的是来自网站的数据,而不是浏览器的数据。诸如 Cookie、浏览缓存、 索引数据库 indexedDB 本地存储数据 localStorage 都分隔存储。为了保证浏览体验的一致和顺滑,容器标签之间会分享书签、浏览历史、保存的密码、搜索历史、表单数据、权限许可、用户身份、HSTS 标志和 OCSP 响应等。

Firefox 的容器标签是安全与隐私方面的突破!

新的容器标签并不像那些专注在隐私保护方面的浏览器,如 Tor 浏览器,但是它可以将你在网页浏览时的身份分隔开。广告商仍然能跟踪你,但是他们现在需要跟踪你的四个身份。

用户可以将与工作相关的 Cookie 和缓存存储到浏览器的一个区域,而银行和购物相关的部分则存储在另外一个区域。如果能够恰当使用,容器标签功能可以极大地增强你的安全,每个容器标签都相当于一个新的浏览器。

“容器给用户提供了一个分离敏感信息的途径”,Mozilla 工程师解释说,“举个例子说,用户可以仅使用他们的‘银行容器’来登录银行网站,以避免它们被来自其它站点的 XSS 和 CSRF 攻击所窃取。”

 title=

四个新的容器标签及不同的颜色

如果是你的首次安装 Firefox 夜间构建版,或者是从旧版本升级的,你可以从文件菜单选项中找到这个新的容器标签。如果你想将按钮放到浏览器界面上,你可以通过浏览器的定制 UI 区,将这些按钮拖到工具栏上。

不过,要知道这还是一个实验性的功能,也许最后不会出现在最终产品中。但是,用户体验至高无上,除非有无可弥补的漏洞,我们可以期待这个功能会出现在 Firefox 正式产品中。

 title=

将容器标签的按钮添加到工具栏

jQuery 基金会前天宣布 jQuery 3.0 发布!这是第一个根本不支持老版本 IE 的 jQuery 版本。

jQuery 3.0 开发于2014年10月。为了从老的 1.0 代码分离,摒弃那些由于要兼容 IE 而增加的庞杂的代码,其最初创建了 2.0 系列版本。3.0 版本是从 2.0 版本分支出来的,但是同 2.0 不兼容,因此更换了新的主版本号。

jQuery 3.0 是 jQuery 的未来所在,以后除了重大安全问题,jQuery 1.0 (最新版本 1.12)和 jQuery 2.0(最新版本 2.2)都不会再进行更新。

你可以通过如下地址直接调用 CDN 上的 jQuery:

也可以将其下载到本地,比如通过 npm:

npm install [email protected]

jQuery 2.0 完全不兼容 1.0,而 3.0 则继承了这个传统,继续不兼容 2.0。jQuery 基金会说 3.0 中有一些中断性的改变,但是用户可以不用太多工作就能将代码迁移到 3.0。

如果你要升级到 3.0,可以参考 3.0 升级指南,以及可以通过安装 jQuery Migrate 3.0 来找到你的代码中同 3.0 所不兼容的地方:

或者使用 npm 下载安装:

npm install [email protected]

jQuery 2.0 和 3.0 都不再支持老的 IE6、IE7 和 IE8 浏览器,如果用户必须支持这些旧式浏览器,那就只能使用 jQuery 1.12 了。

除了标准版本之外,如果你不使用 AJAX、效果等功能,你还可以使用一个 廋版 Slim 的 jQuery,它的压缩大小是 23.6kb,而标准版本的大小是 30kb。