2012年8月29日星期三

最新的音频编码器 Opus 试用

Firefox 15今天发布,其重大更新之一就是正式支持了一种新的音频编解码器Opus(http://www.opus-codec.org/)。据其官网介绍,这个编码器最初是在Skype使用的Silk编码器和Xiph.org的CELT两种适合于语音的音频编码基础上开发而成,原本为低延迟的网络语音编码设计,但同样也适于音乐编码。据官方介绍,其在低码率上优于以往各种语音编码器,高码率(64kbps以上)可和常见的音乐编码器(MP3、AAC)抗衡,而且其延迟远低于AAC、MP3等(见图1、图2);免专利费,完全开源。看到Firefox 15支持了这个新玩艺,我也想稍微试试。这不是一篇评测文章,大可不必看细节。

图1 Opus官方给出的码率-音质比较图
图2 Opus官方给出的延迟比较图
目前支持Opus编解码的只有Opus自己的libopus库,目前只能使用OGG作为其封包格式。目前由于FFMpeg尚没有Opus编码模块,想编码Opus文件只能编译Xiph.org提供的opus-tools工具包。opus-tools目前的版本是1.4.0,包括opusenc、opusdec和opusrtp等程序,其在Windows系统下的依赖有libogg 1.3.0版以上,libopus 1.0.0以上。
我使用的是以往自己编译Windows下的FFMpeg和mplayer的mingw环境,必须有pkg-config的支持存在。首先直接从Opus Codec的git上克隆libopus:
git clone git://git.opus-codec.org/opus.git
然后在opus目录下进行autogen和configure:
./autogen.sh
./configure --prefix=/mingw --disable-shared --enable-static
然后编译并安装到Mingw环境:
make
make install
以同样的方法,下载libogg 1.3.0的源码(http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz)并编译安装。
克隆opus-tools的源码:
git clone git://git.xiph.org/opus-tools.git
配置:
./autogen.sh
./configure --disable-stack-protector
禁止这个是因为我的gcc开了栈保护后编译出来都要依赖一个DLL,为了绿色化,关掉它。
make
strip *.exe
把得到的opusenc.exe复制出来,就可以用来压制opus文件了。其参数比较简单,直接看运行时出现的说明即可。
基本上就是
opusenc --bitrate 码率(Kbps) 输入文件名 输出文件名
这样的形式。
注意参数只能放在输入文件名之前。另外,还有几个重要的参数:
-vbr,-hard-cbr,-cvbr 码率控制方式,包括可变码率,恒定码率和有限可变码率。默认是-vbr
--framesize (数字) 帧的长度(毫秒),支持2.5, 5, 10, 20, 40, 60几种,默认是20。这个数值越小,文件就具有越多的帧,而导致开销增多和压缩变慢,音质也会下降;提高此数值能较小地提升音质。

下面轮到播放器的问题了。FFMpeg的libavcodec目前只能通过libopus解码opus编码,但是使用比较简单。对于FFMpeg,编译加上--enable-libopus参数即可(前提是--enable-gpl);而Mplayer的configure能自动检测和启用libopus。
目前foobar2000新版本也包含了解码opus的插件。
很快就编译出来了支持opus的ffplay和mplayer。
图3 目前支持opus的部分工具和播放器
用opusenc和neroaacenc、ffmpeg+libaacplus试压了一些正版盘抓的wav文件,有中岛美嘉的雪の華、SEED的OP1、兽拳战队的OP、Falcom J.D.K的FM音源版伊苏4音乐集等。对比听了一下,感觉在64kbps下,目前版本的opus听感已经超越了一些比较差的HE-AAC编码器(如libaacplus),但是还是比NeroAAC略逊一筹;32kbps下目前音质仍比较差,不能和NeroAAC的HE-AACv2相比,甚至可能比微软的WMA还差一点。不过,在这些低码率下的人声还是比较饱满的,可能是其原本就是语音编码器的优势所在吧。还有一个问题,opus目前似乎并不能原生支持11KHz/22KHz/44KHz的采样率,必须强制向上采样到48KHz,这个也是问题的来源之一么?
其实现在的主要问题是opus尚只能支持ogg封装,而不支持封装入mkv、mp4或者webm中,因此短期内是不会见到音频编码器用这个的视频文件的。现在从各种宣传稿看来,这个编码器并不准备和AAC等私有音乐编码直接竞争,而是偏向于网络电话等语音实时通信领域,WebRTC这个基于Web的实时语音通信标准准备拿这个做标准编码。不过,经过后期改进后这个编码器应该有和HE-AAC竞争的潜力,甚至有可能取代Vorbis在基于开源方案的较低码率流媒体方案,比如WebM等中的地位。
这次编译出来的opus-tools、ffmpeg/ffplay、mplayer网盘下载:
http://www.4shared.com/archive/ij79DQ1m/opus-f.html 
http://www.mediafire.com/file/7u6oj4th5bnlkfd/opus-f.7z 
http://pan.baidu.com/share/link?shareid=7953&uk=2248457607

2012年6月6日星期三

某个号称史上最大的恶意软件的传播方式

这几天卡巴等安全厂商爆出了一个主程序文件6MB,生成文件超过20MB的“超级病毒”Flamer。目前各安全厂商的初步分析表明其具有十余个功能模块,通过连接写死的控制端(5个-10个域名)以及从控制端下载的列表中的其他控制端(已经发现了80个以上域名)来接收指令、自动更新及发送其窃取的文件(AutoCAD、PDF、Office文档等);其服务器配置文件一部分采用加密的SQLite数据库,且自带Lua解释器和运行日志记录功能,其功能复杂完善,无疑是一个非常专业的间谍蠕虫,和之前的Stuxnet/Duqu有点类似。
既然说是蠕虫,当然Flamer能自我复制传播。目前从各安全厂商和实验室的文章中,可以确定这种蠕虫至少有5种自我传播的方式,其中有一种是比较新颖的,要重点介绍。

1、autorun.inf。autorun自从被利用以来,已经成为各种恶意软件最为常用的传播方式,从最初的open/command/explore指定u盘上的可执行文件,再到劫持盘符右键菜单与Autoplay选项;从指定rundll32加载病毒dll(如Conficker),到stuxnet早期版本中将病毒体本身写成autorun.inf文件,其中的字符串组成autorun.inf结构并指定运行自身,其利用手段已经有了很大的发展。Flamer利用了这种方式传播。

2、通过desktop.ini来创建特殊文件夹,使用对象{0AFACED1-E828-11D1-9187-B532F1E9575D} 使文件夹变为一个执行其内target.lnk快捷方式的“文件夹快捷方式”。与此同时,建立一个利用了曾被Stuxnet利用过的快捷方式漏洞(MS10-046)的特殊target.lnk,导致Windows为了显示这个文件夹图标,一去解析这个lnk就运行了Flamer。

3、利用打印管理器漏洞MS10-061感染局域网其他机器。

4、在有域控制器权限的机器上在域内各主机建立后门账号并传播自身。

5、通过在内网建立代理服务器的方式,拦截Windows Update请求。

这个得重点讲一下。其实用ARP攻击之类拦截Windows Update搞假更新这样的想法早就有了,不过这次Flamer的作者想了个更巧的办法。
Windows Update当初设计的安全机制有二,一是其服务器IP是写死在更新服务程序里的,二是更新包要验证微软的数字签名。前者可以防域名劫持,后者可以防止接收到错误或者非法的更新文件。不过Flamer的作者这次把两个机制都搞定了。
这破机器没装绘图工具,图画得渣,请大家见谅。
这是一般Windows Update运行的流程。

Flamer通过以下四个步骤,成功劫持了局域网内其他机器的Windows Update并将其作为传播渠道。

 1)向网络广播两个假NetBIOS计算机名
为什么是“WPAD”和“MSHOME-(8位16进制数,不一定是图里写的那个)”呢?后者我也没搞清楚为何是这名字,不过我估计不会和网内其他任何机器名相冲突。至于前者,下一步再解释。

2)利用IE对WPAD(Web代理自动探测)协议的一个特例,使受害机器将带毒机器设定为IE代理服务器。
WPAD协议先简单解释下:浏览器可以通过从一个一定规则的URL下载一个PAC(代理服务器自动配置)文件来自动配置代理服务器。这个URL的规则可以简单描述为这样。
先向DHCP服务器(如果有)发送DHCPINFORM请求,访问返回信息WPAD字段中的URL;
如果失败,通过本机DNS信息自己一级级生成URL,假设本机的域名是d.c.b.a.net:
http://wpad.c.b.a.net/wpad.dat
http://wpad.b.a.net/wpad.dat
http://wpad.a.net/wpad.dat
一直找到顶级域(也包括net.cn之类)的下一级为止,找不到则失败退出。这是微软、Sun等公司99年在IETF提出的WPAD协议草案中规定的。不过,以微软一向喜欢往开放协议的实现里加私货(所谓Embrace, Extend and Extinguish的Extend)的习惯,WPAD在IE的实现也和规范有所不同。在上述基于DNS协议的查找代理自动配置失败后,IE会再根据NetBIOS去寻址尝试一次:
http://WPAD/wpad.dat
这下明白刚才广播机器名WPAD的意义了吧?

受害机的IE如果打开了自动配置代理,一旦请求带毒机的这个/wpad.dat,就会按照它将带毒机器的IP设置为IE的代理服务器。

3)带毒机的Web代理拦截受害机发给Windows Update的请求,返回自己的假更新列表。

Windows Update有一个弱点,其运行时是否使用以及使用哪个代理服务器是根据“系统的代理服务器设置”(也就是IE的代理设置)来的。受害机的IE代理被劫持到带毒机,带毒机收到受害机Windows Update检查更新请求的时候,就会拦截下来,回复自己的假更新列表,其中只有一个更新“Desktop Gadget Platform”。
如果用户设置为手动下载/手动安装此更新,一看就能看出名堂来。Vista/Win7自带小工具平台,XP则早在09年就进入扩展支持阶段,不会增加新功能了。

4)受害机从带毒机下载和“安装”Flamer的假更新包,继而被感染
这一步,Windows Update会验证下载回来更新包内的文件数字签名。Flamer作者早就考虑到这一点,他们不知通过何种手段,将微软根服务器签出的“Microsoft LSRA PA”的一个数字签名签到了伪装的更新文件上。这样,Windows Update不知不觉地以管理员权限运行了Flamer的一个下载器,这个下载器会从刚才提到的“MSHOME-xxxxxxxx”(x是16进制数)机器名指定的机器(也就是带毒机)把Flamer本体下载到受害机中并跑起来。
这种劫持比起ARP劫持来要更方便和可靠,ARP是数据链路层的东西,实现起来麻烦一些不说(以往看到的ARP病毒都得装winpcap的驱动),客户端的各类安全软件也早就能防ARP劫持了。不过达成目的的前提是,IE必须设置为自动配置代理服务器,这个我得查一下IE默认的设置是怎么样的。

Flamer的体积极为巨大,必定还有很多其他的秘密包括传播手段等尚未被研究出来。这篇文章纯粹是读了N篇Flamer相关的博文的一个笔记罢了。。各种参考文献懒得列了,说明下参考自卡巴的专家Aleks,Symentec以及Sophos发布的文章算了。


2012年1月31日星期二

围观PuTTY/WinSCP后门版钓鱼事件未遂

今天据传闻国内有人做了假冒putty和winscp的钓鱼网站,放上带木马的这两个软件汉化版来大量盗取管理密码。
http://blog.csdn.net/hu_zhenghui/article/details/7221001
http://www.techweb.com.cn/it/2012-01-31/1145965.shtml
http://www.techweb.com.cn/news/2012-01-31/1145937.shtml
我想来围观下(虽然过了好快一整天了)。
1、貌似这个钓鱼事件涉及到4个域名

putty.org.cn

putty.ws

winscp.cc

sshsecure.com
中间两个域名都是很容易搞到的特殊顶级域名,挂在注册商下whois不出。不放图了。

putty.org.cn 的whois结果也就一个10位的QQ邮箱,看来是专门拿来注册这个了
不过那个邢雪斌,到和别的地方这网站的截图里对上号了


这是putty.org.cn在写这文章时的百度快照。文字内容和底部那地址貌似变了(难道是动态从某个表里取?)
而且邢雪斌也不见了
当然能拿winscp和putty下手挂马的,绝非一般工具黑客。因此尽量用假身份这点应该还是注意了

而sshsecure.com是委托godaddy注册,其whois信息如下,谁知道那邮箱和手机是否是代理商的
Registrant:
xiangcao xiang
china
hangzhou, zhejiang 571100
China

Registered through: Go Daddy
Domain Name: SSHSECURE.COM
Created on: 27-Oct-11
Expires on: 27-Oct-12
Last Updated on: 31-Jan-12

Administrative Contact:
xiang, xiangcao huangguan28@qq.com
china
hangzhou, zhejiang 571100
China
13707531549 Fax --

Technical Contact:
xiang, xiangcao huangguan28@qq.com
china
hangzhou, zhejiang 571100
China
13707531549 Fax --

Domain servers in listed order:
NS55.DOMAINCONTROL.COM
NS56.DOMAINCONTROL.COM

2、sshsecure.com、winscp.cc、putty.org.cn(就这个解析不出IP,很可能是被网监干掉解析的)访问不了,而putty.ws可以访问。服务器我估计也不大可能是Windows,毕竟能搞SSH的密码的人肯定是Linux高手了。

google的快照 winscp.cc 截图。貌似也和刚被发现那时候不一样了。

3、putty.ws可以访问,没有发现有网马。


这里说最高版本0.60,但其指向的下载链接
http://down.zzbaike.com/download/PuTTY-4621.html
这里说是0.61。
http://d1.zzbaike.com:86//download//soft/usual/putty-v0.62.zip
下载链接却是0.62
下回来看看
除站长百科的广告就是个putty.exe
直接丢virustotal
×
File already analysed

This file was already analysed by VirusTotal on 2012-01-31 15:35:18.

Detection ratio: 0/42

You can take a look at the last analysis or analyse it again now.

看来今天刚被人查过。。。
底下的评论
Posted 2 weeks, 6 days ago by wms
PuTTY version 0.62 as downloaded from http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
#goodware
看来现在下的这个是官版无误。
再回头看putty.ws,和其他地方贴上的、其他那三个钓鱼站刚被发现时的截图比起来并不一样,而更类似刚刚所看到的百度和Google快照。看来钓鱼者在其他三个站上不去之前已经改掉了,围观太晚了一点。
根据putty.org.cn的截图,似乎还有个相关的名字“秒啦互联”,一找只是发现有个“秒啦网”,看上去是个新出现的团购网站。不知和这个事件有没关系。上面的那个人名、手机号和邮箱,也许和这事件也有关系吧
据其他新闻网站的报道,似乎高手们已经拿下了后门的服务端,发现上万个抓到的用户密码啥的了。加上看唯一存活的那个putty.ws两边那个godaddy广告条,一看就知道不是啥好东西。而且居然大胆到做百度竞价推广,难怪这么快就倒掉了。
4、这不过是睡不着随便写的破文罢了。如果有知情者拥有详细信息,或者拥有带木马的putty、winscp汉化版,请和我联系。Twitter @yksoft1, yksoft1#gmail.com