近期安全动态和点评

针对“域名服务商”的 DNS 劫持攻击

研究称 DNS 劫持攻击规模惊人 @ Solidot
攻击者首先设法窃取目标 DNS 服务商管理面板的登录凭证,然后修改目标域名的 IP 地址,将其指向攻击者控制的服务器。攻击者之后再利用 Let’s Encrypt 自动生成合法证书。当用户访问目标域名,他们会先访问攻击者的服务器然后再重定向到合法服务器,整个过程用户唯一的感觉可能就是延迟略微增加。攻击者之后能收集到用户名和密码,而终端用户对此几乎一无所知。

  编程随想注:
  这种攻击手法,再次凸显了【DNS】与【CA 证书】的重要性。攻击者如果【同时搞定】这两者,就可以实现【完美的钓鱼】。关于这点,俺在9年前(2010)的某篇博文中提到过:
既然老流氓 CNNIC 已经成为合法的 CA,那它就能堂而皇之地制作并发布 CA 证书。然后捏,再配合 GFW 进行【域名污染】。那 GFW 就可以轻松搞定任何网站的 HTTPS 加密传输。
......
可能有些小朋友心里会犯嘀咕:GFW 会有这么坏吗?俺想篡改鲁迅他老人家的一句话来回答:俺向来是不惮以最坏的恶意,来推测党国。GFW 和 CNNIC 作为党国的2条走狗,一起进行中间人攻击(一个负责在 DNS 上做手脚、另一个负责伪造 CA 证书),简直是“天生一对、黄金搭档”啊!
  引申阅读:
数字证书及 CA 的扫盲介绍
CNNIC 证书的危害及各种清除方法

◇可【突破两步验证】的网络钓鱼工具


New tool automates phishing attacks that bypass 2FA @ ZDNet

  编程随想注:
  波兰的安全研究人员 Piotr Duszyński 发布了名为“Modlishka”的工具(该名称是波兰语“螳螂”)。这个玩意儿可以实现【更逼真】的钓鱼攻击,并且可以突破【两步验证】
  该工具本质上是一个【反向代理】,其原理类似于“中间人攻击/MITM”(由“钓鱼网站”充当中间人)。受害者看到的界面,是从【真实的】网站传回到钓鱼网站的界面,受害者输入的密码,也会被转发给真实的网站。“两步验证”在这种攻击面前是【不堪一击】滴。

  前一个小节提到了【DNS 劫持】,在此基础上再进行这种高级钓鱼,会让很多人防不胜防。这种钓鱼攻击能否成功,关键在于 CA 证书。如果钓鱼网站使用的是“貌似合法的 CA 证书”,则浏览器【不会】弹出“无效证书”的警告,因此受害者也就【不会】怀疑网站是假的。
  由于创建“貌似合法的 CA 证书”,正变得越来越容易(参见前一个小节提到的手法),因此这种钓鱼也就变得越来越危险。
  俺的建议是——
  你在某个【专用】的浏览器实例中操作特别重要的帐号(也就是说,这个实例只操作这个帐号,不访问其它网站)然后在该实例中采用【证书白名单策略】——只留下这个帐号对应网站所需的 CA 证书,其它证书全部禁掉。当然啦,你还需要保留一个【通用】的实例,用来进行日常的上网浏览。如此一来,假设你有 N 个重要帐号,需配置 N + 1 个实例。
  浏览器的选择:
  Chrome 和 Firefox 都可以创建“多实例”,但 Chrome 有个【缺点】——它用的是操作系统的证书。因此,Chrome【无法】使用刚才介绍的招数。
  相比之下,Firefox 使用的是【自带证书】。因此,你可以创建多个 Firefox 实例,并通过配置让每个实例的证书都采用各自的【白名单策略】。

◇Google 的公共 DNS 服务正式支持 DoH(DNS over HTTPS)


谷歌公共 DNS 正式支持 DoH 加密 @ cnBeta

  编程随想注:
  Google 的公共 DNS,也就是 8.8.8.8 和 8.8.4.4 这俩。
  其实这两个 DNS 在去年就已经提供 DoH 服务,但还处于【试运行阶段】。从2019年1月,开始【正式】支持 DoH。
  关于 DoH 的好处,可以参考俺之前的博文:
对比4种强化域名安全的协议——DNSSEC,DNSCrypt,DNS over TLS,DNS over HTTPS
扫盲 DNS 原理,兼谈“域名劫持”和“域名欺骗/域名污染”

  关于浏览器的支持:
Firefox 从 62 版本开始支持 DoH,具体参见 Mozilla 官方博客(链接在“这里”)。
Chrome/Chromium 从 66 版本开始支持 DoH。具体参见 Chromium 官网的 issue(链接在“这里”)。


 

★移动设备


◇2018年全年,针对移动设备的攻击,堪称有屎以来最高


Mobile malware evolution 2018 @ Securelist

  编程随想注:
  上述报告来自 Kaspersky Lab。
  俺已经在博客上唠叨无数次了——【不要】用手机操作重要帐号,也【不要】用手机进行敏感活动。

◇大部分 Android 杀毒软件【不】靠谱


三分之二的 Android 杀毒应用没有价值 @ Solidot
杀毒软件测试机构 AV-Comparatives 测试了 Google Play 商店里的 250 款杀毒应用,检查这些应用对 2000 恶意应用样本的检测情况。结果显示,只有 80 款应用能阻止最少数量的恶意样本。不到十分之一的应用能阻止所有恶意应用,超过三分之二的应用检出率不到 30%

◇贝佐斯的手机被入侵


贝索斯手机隐私遭入侵,疑为沙特政府所为 @ 搜狐
Jeff Bezos investigator: Saudi Arabia obtained private information @ CNN

  编程随想注:
  作为目前的世界首富,而且还是顶级 IT 公司的老板,贝佐斯显然拥有顶级的安全顾问团队。
  如果连他的手机都会被入侵(而且是被“深度渗透”),这说明啥捏?你自己想一下吧。
  另外,
  博客的长期读者都知道,俺特别喜欢抹黑朝廷,中国政府的御用骇客也老早就盯上俺了(请看“这篇博文”和“这篇博文”)。
  俺写政治博文将近【十年】(而且写了很多“煽颠性质”的博文)。至少到今天,俺还没有倒下。其中一个重要经验是:俺【从不】在手机上使用这个身份。
  当然啦,除了这个经验,还有其它很多经验,具体参见:
为啥朝廷总抓不到俺——十年反党活动的安全经验汇总


 

★安全工具


◇几款主流的【密码管理器】都有安全缺陷


  下面是由 ISE(Independent Security Evaluators)发布的一篇挺详细的评估报告,涵盖了最常用的几款密码管理器(LastPass、KeePass、1Password、Dashlane)。
Password Managers——Under the Hood of Secrets Management @ ISE

  编程随想注:
  考虑到那篇报告很长,而且是洋文,俺简单说一下。
  几款主流密码管理器的缺陷,都与【内存】有关——比如说:有的软件居然把【主密码】(master password)以【明文形式】留在内存中。这么弱智的做法,一旦遭到【冷启动攻击】,攻击者就可以拿到主密码,进而拿到管理器中的所有密码。
  即使不考虑“冷启动攻击”,如果你的系统开启了【休眠功能】(大部分 Windows 系统都开启了),内存中的主密码(在休眠时)会被保存到硬盘的“休眠文件”中。因此,如果你遭遇了警方的【取证软件】,你的“主密码”(master password)同样有曝光的风险。
  引申阅读:
如何用“磁盘加密”对抗警方的【取证软件】和【刑讯逼供】,兼谈数据删除技巧

◇NSA 发布【逆向工程框架】——Ghidra


NSA 官网
Ghidra @ Github

  编程随想注:
  该软件本身能运行于 Windows、Linux、Mac OS 三大主流操作系统,可以分析多种处理器指令集。
  该工具仅限于政府内部使用。直到前几年,维基解密公布了美国国安局(NSA)内部资料(Vault7),这款工具才开始为人所知。
  另,
  该工具开源之后不久,被发现自身有安全漏洞,如今已修复。

◇Metasploit 发布 5.0 版本


  Metasploit 是大名鼎鼎的【渗透测试框架】,主要用于安全攻防人员。不了解的同学请看“维基百科”。
  这是它在【2011年】之后首次发布新版本(大版本)。增加的新特性参见“这个链接”。


 

★操作系统


◇匿名操作系统的对比


最好的匿名操作系统 @ Solidot
安全研究员 David Balaban 对比了五个匿名操作系统:Tails OS,Whonix,Kodachi,Qubes 和 Subgraph,分析了各个系统的优缺点。Qubes 和 Subgraph 都是隔离应用来实现安全,它们其实不是为匿名设计的。Tails OS 基于 Debian,所有流量都经过 Tor,设计作为 Live CD 或 Live USB 使用,不在主系统留下痕迹,会话结束之后所有痕迹就抹掉了,它不适合作为一个永久性的操作系统使用。Whonix 也是基于 Debian,通过 VirtualBox 和 Tor 实现匿名,内置了大量应用,但不具有可携性,硬件需要也比较高。Kodachi 基于 Debian,通过 VPN 和 Tor 实现匿名,硬件需求不高,作者认为它是目前最好的匿名操作系统。

  编程随想注:
  如果你对安全性(包括隐匿性)要求很高,但又【不】擅长技术,上述对比可以供参考。
  对于擅长折腾的同学,俺建议选某个 Linux 或 BSD 的【成熟】发行版,然后根据自己的需要进行【高度定制】(裁剪),只留下自己需要的部分(从而把攻击面降到最低),然后再搭配上自己需要的加固措施。


 

★硬件相关


◇Spectre & Meltdown 漏洞的普及性文章


How the Spectre and Meltdown Hacks Really Worked @ IEEE

  编程随想注:
  一年前(2018年初)曝光的 Spectre 和 Meltdown 在信息安全界可以称得上是【划时代】滴!因为其利用的是 CPU 的【设计缺陷】(而且还是【根本性】缺陷)。不熟悉这两个漏洞的同学,可以看维基百科的介绍(这里 和 这里
  上述文章是专门研究这两个漏洞的三个学者在今年2月份撰写的【扫盲性质】文章,介绍漏洞的【原理】。
  由于这两个漏洞涉及到 CPU 的【根本性】缺陷,极难搞定(就像两个幽灵,会在未来几年不断困扰 IT 行业)。为了说明这点,再引述一篇今年2月份的报道:
Google Researchers Say Software Alone Can't Mitigate Spectre Chip Flaws @ Slashdot

◇针对 Intel 处理器的新型 Spoiler 攻击


所有英特尔处理器面临新的 Spoiler 攻击 @ Solidot
美国和德国的计算机科学家在预印本网站 ArXiv 上发表论文(PDF),披露了针对英特尔处理器的新攻击 SPOILER。他们在英特尔内存子系统私有实现中发现了地址推测的一个弱点,能透露内存布局数据,让翻转比特的 Rowhammer 攻击更容易执行。研究人员检查了 ARM 和 AMD 处理器,但没有发现它们表现出类似的行为。新的漏洞很难在不重新设计处理器微架构的情况下修复或缓解。Spoiler 攻击不同于 Spectre 攻击,它无需提权就可以在用户空间利用。研究人员称,Spoiler 大幅加快了 Rowhammer 和缓存攻击。Rowhammer 翻转比特攻击影响所有处理器,但要利用 Rowhammer 你可能需要花费数周时间,而在 SPOILER 的帮助下,攻击将可以在数秒内完成,Rowhammer 攻击将变得切实可行。

  编程随想注:
  简单扫盲一下【Row Hammer 攻击】
  如今的集成电路,集成度越来越高;当集成度高到一定程度,【相邻】的内存单元就有可能出现电磁影响。这种攻击就是利用相邻内存单元之间的电磁影响,在进行足够多的访问次数后,让某个比特的值发生改变(0、1 互换)。因此也被称为“比特翻转”(洋文叫“bit flipping”)。
  假如攻击者能够修改某些【关键的比特位】,就可以实现【权限提升】或【代码执行】。
  在硬件层面引入 ECC(error-correcting code),可以【部分防止】这种内存错误;但某些精心构造的“Row Hammer 攻击”能绕过 ECC 的防护机制。

◇超微(Super Micro)主板的 BMC 后门


超微服务器主板组件爆漏洞 @ 新浪
这项漏洞是出现在超微主板上的基板管理控制器(baseboard management controller, BMC)上。BMC是一个具高度权限的组件,提供多种接口,包括系统接口、IPMB接口、LAN及Serial/Modem接口,可让数据中心管理员通过智能平台管理接口(Intelligent Platform Management Interface, IPMI)指令远程执行、或在服务器不开机状态下安装操作系统、安装修改app、或对多台服务器变更状态。然而由于BMC提供的接口对系统内、外部来的IPMI指令欠缺足够验证,因此常被用来传送恶意IPMI指令、或遭恶意软件挖掘BMC漏洞。
......
Eclypsium研究人员挑选IBM的SoftLayer云裸机服务进行了概念验证攻击,原因是SoftLayer服务执行在超微服务器上。IBM SoftLayer的裸机云服务提供企业客户租用,服务期满客户资料删除后,可以再租给下一家企业。在实验中,研究人员租用了SoftLayer服务、在其Supermicro的BMC上修改了一些程序代码,开了一个名为Cloudborne的后门,并且在其BMC的IMPI界面中新开另一个用户账号。之后再将服务还给IBM,又再租了新服务。
研究人员发现,在转换客户期间,IBM SoftLayer的确进行了回收(reclaimation)过程,将多的账号清掉,但是BMC被植入的后门还是在,显示并未经过刷新。研究人员表示,结合漏洞让黑客得以利用后门读取托管在同一台服务器上的新企业客户的云环境,以窃取数据、发动Dos攻击,或是植入任何恶意软件。

  编程随想注:
  俺在去年底的博文《每周转载:盘点一下贸易战爆发后的【中美对抗】(2018年4季度)》,提到了如下:
《彭博商业周刊》报道称——
在中国组装的超微主板被植入了恶意芯片,黑客借此渗透了美国政府和大型企业的数据中心,受影响的企业包括了亚马逊和苹果。

编程随想注:
到俺写本文为止,这几家公司(超微、亚马逊、苹果)都发表声明予以否认。此事目前有争议,尚未定论。
从技术上讲,这么做是【可行】滴。硬件层面的安全漏洞能规避操作系统的安全防护机制。
  如今,超微主板的 BMC(基板管理控制器)被发现有缺陷,可以被攻击者用来留下后门。而超微的某些主板是在咱们天朝组装滴。
  这两件事情,很容易让人产生联想。

◇隐藏在 USB 线里的 WIFI


隐藏在 USB 线里的 WIFI @ Solidot
你可能认为 USB 线没什么可怕的,大多数人都会随身带些 USB 线以方便给便捷式设备充电或访问设备内部资料,但如果看起来一模一样的 USB 线包含了隐藏的后门?你插上之后就容易遭到网络攻击?
安全研究员 _MG_历时一个月制作的O.MG Cable,将 WIFI 微控制器秘密安装在 USB 连接器内,能通过 USB 设备发送载荷,实现远程控制


 

★安全编程


◇微软产品的漏洞,有【七成】源自“内存问题”


Microsoft: 70 percent of all security bugs are memory safety issues @ ZDNet

  编程随想注:
  熟悉 C/C++ 的“程序猿/程序媛”,应该很清楚小标题所说的“内存问题”是指哪些。举个栗子:安全漏洞中大名鼎鼎的【缓冲区溢出】(包括“栈溢出”和“堆溢出”),都与内存问题有关。
  前几天,俺的网盘上分享了两本书,分别是:《C 语言安全编程规范》和《C++ 语言安全编程规范》。
  这两本书出自 CERT/CC,权威性应该是 OK 滴(在安全圈混的人,多半都听说过 CERT)。

◇哪些编程语言的漏洞更多?


Which Programming Language Has The Most Security Vulnerabilities? @ Slashdot
Across the seven most widely-used programming languages, here's how the vulnerabilities were distributed:

C (47%)
PHP (17%)
Java (11%)
JavaScript (10%)
Python (5%)
C++ (5%)
Ruby (4%)

  编程随想注:
  上述统计只针对【7种】流行的编程语言,统计数字来自 TechRepublic 网站。(经热心读者提醒:TechRepublic 网站的数据又是源自 WhiteSource 网站的这个链接,特此说明)
  C 语言占了接近一半,这在意料之中(参见前一个小节)。C++ 的漏洞显著低于 C,这很大程度得益于 C++ 标准库中提供了很多“类/模板”(比如:string、vector、shared_ptr),可以封装原始类型,尤其是指针类型。作为对比,C 语言经常要【显式】进行内存分配/释放。而在 C++ 中,很多内存分配/释放变为【隐式】(在封装库内部完成)。
  另,
  C++ 的漏洞比例竟然【低于】Java 和 JS,俺还是有点小小的惊讶 :)

from https://program-think.blogspot.com/2019/04/Security-News.html