2013年2月18日星期一

数据显示:“即刻搜索”使用率几乎为零

  《长江日报》报道,国内著名IT数据平台CNZZ数据显示,2013年1月,国内搜索引擎市场上,百度的使用率和占有率均超过70%,占去3/4个蛋糕。360、谷歌、搜搜等瓜分剩余份额。“即刻搜索”没能排进前10位,占有率低于万分之一,使用率几乎为零。

  有业内人士表示,搜索引擎市场已经接近饱和,连百度这样的巨鳄都面临着衰退,李彦宏大谈“狼性”,可见其面临的挑战。近来,360搜索、搜狗呈上升态势,凭的是浏览器入口的优势。移动互联网时代,搜索引擎市场又将迎来一场新的争夺。网传腾讯的“富二代”搜搜也面临被搜狗纳入囊中的命运。“即刻”想在对手环视的市场里闯出一番名堂,可能性很小。

  知名IT观察家柳华芳认为,“即刻搜索”很难占有市场。它的产品虽然中规中矩,但没有差异化竞争,网友不买账。另外,也没看到它的有效营销。

  根据互联网Hitwise的数据,2012年12月,中国搜索引擎访问量前10位分别为百度、360综合搜索、搜狗、谷歌香港、百度图片、搜搜、谷歌(英文)、必应、谷歌中国、有道搜索。搜索行业的小弟弟“即刻搜索”不见踪影。

  “即刻搜索”的前身是人民网推出的“人民搜索”,是搜索行业国家队。与它同期诞生的,还有“盘古搜索”。

  作为搜索行业的“奇葩”,根据人民网招股说明书,2010年“人民搜索”营业收入为零,净利润却达3000余万元。

2013年2月17日星期日

Facebook遭黑客攻击

  Facebook周五表示,其网站上月遭到了一次“复杂的黑客攻击”,导致Facebook员工的笔记本中被植入了恶意软件,但并未透露攻击来自何方,调查人员也未发现用户数据泄露的迹象。

  Facebook表示,多名Facebook员工访问了一个被安装了恶意软件的移动开发者网站,导致员工笔记本被植入了恶意软件,黑客利用了所谓的“Java零日漏洞”,攻击一家移动开发者网站,然后通过这个网站感染了多家公司员工的电脑。

  Facebook表示,攻击者这次采用前所未见的手法,黑客似乎锁定网络应用开发商和科技公司的网站,植入木马程式,不管谁连上这些网站,都会在不知不觉中下载恶意程序。

  目前,Facebook已经与FBI合作调查这起攻击事件。

  早先Twitter也宣布遭到类似攻击导致25万个账号被盗用,包括我的Twitter帐号在内,Twitter认为,此次攻击“非常复杂”。

跳出品牌谈当今品牌电商的运营

  先谈谈笔者对品牌的理解:品牌的价值,就如同一个人的名字一样,有人喊,喊的人多,才能够出名。但是我们都知道,一个人要出名,一定有他过人之处,而这些过人之处,首先一条就是通过沉淀而形成的,且深入人心。

  在这里,举个大家都知道的例子:芙蓉姐姐和凤姐。

  首先,还是表明态度:我非常欣赏芙蓉姐姐,她通过数年沉淀,无论从形象、行为、过程中,都逐步的奠定了自己某种意义上的品牌基础,而不再是哗众取宠。而凤姐呢?则相反!

  当然,大家可能又有人会说:“如今的互联网时代,网络红人的打造仅需1小时就可完成”。对于这个答案,我持肯定态度。但又要反过头来掂量掂量,用户真正能够记住的又有几个?然后,为什么大家记住不他,但他有确实火过那么一次!

  好吧,再次举例:

  京东在“番茄事件”中,被冠名为京东爱情故事的女主角是谁?是何职务?具体负责哪块?(请一定不要百度)。

  我相信,能够在60秒钟答上来的人,一定寥寥无几。那,这样的品牌效应,我们需要么?当然,需要!因为她不是主体,而我在此要强调的只是,她在出名后不一定被人记住!

  电商等于生意,品牌是生意的延续,而非有生意就能做品牌!如果有生意就能做品牌,那么,我们楼下小卖部的店铺名称叫啥,你们又知道么?

  品牌,是一个系统工程,他是由消费者的感官所形成的,而这个形成的过程,是由品牌涵养、价值、差异化等所组成的(品牌故事,只是其中一个极小的部分),而价格因素其实并不是做品牌的最主要因素。再次举例:香奈儿等品牌价格不降反升30%,为啥?为啥她涨价还有那么多人去购买?

  这是我们所需要思考的问题!

  是的,电商垂直品牌的春天,确实来了,因为渠道成熟、消费者不再盲从、营销策略也多元化了,但是,跟你有啥关系?在春天这样的播种季节里,也一定有只发芽不结果的种子!一定有。

  关于跳出品牌谈品牌电商的运营,术方面,我没提一个字,而重点在道!孟洛川有句名言:财自道生,利缘义取!另外,还有一句我非常喜欢的名言:有道无术,术尚可求也,有术无道,止于术。

  互联网,给了我们快速推进品牌的机会,他的核心价值在于缩短了线下实推的时间成本,但是,对于品牌的打造过程也同样有所缩短。在过去,100年才能竖起一块金字招牌,而我们现在,或许只要5年!由此,电商品牌的运营,重点在品牌上,销售,只是在品牌打造过程中的附加值,请一定要常变常新!

  否则就是:“长江后浪推前浪,前浪死在沙滩上!”

  来源:投稿,原文链接

Opera浏览器放弃Presto改用WebKit

  美国新闻聚合网站BuzzFeed编辑约翰·赫尔曼(John Herrman)周三撰文称,Opera改用WebKit渲染引擎后,全球浏览器市场将由WebKit所主导。以下为文章主要内容。

  作为为数不多的几家独立浏览器厂商之一,Opera周三宣布将调整Opera浏览器显示互联网的方式:即放弃自己的渲染引擎Presto,改用WebKit渲染。

  当前,谷歌Chrome和苹果Safari浏览器均采用WebKit渲染引擎。此外,作为最受欢迎的两款移动浏览器,iPhone和iPad采用的移动版Safari,以及Android系统默认浏览器同样基于WebKit技术。

  换言之,WebKit已主导浏览器市场。

  WebKit是唯一一个市场份额持续增长的主要渲染引擎,目前Chrome、Safari都支持,在过去的一年中,全球市场份额持续增长的Chrome和Safari采用WebKit,而没有采用WebKit渲染引擎的Mozilla和IE市场份额持续下滑。

  这意味着在不久的将来,创建一个网站将与以往不同:开发人员无需再考虑网站是否与基于四种不同渲染引擎的九款浏览器是否兼容,而只需与WebKit相兼容即可;他们将使用WebKit技术开发应用,而不是采用Web技术开发网站。换言之,该过程将变得越来越像为一个移动应用商店开发应用,好比为iPhone开发应用而又无需经过人工授权。这并不意味着Web应用时代即将带来,但却意味着这一天终将到来。

  WebKit主导浏览器市场同时意味着当前的许多Web标准将被淘汰。在万维网联盟(W3C)标准最受开发人员青睐年代,Web标准主导该市场。但当WebKit成为主流时,市场主导权就转向WebKit和基于WebKit的浏览器。从国际关系方面而言,W3C相当于联合国,而WebKit则是一个日益壮大的帝国,控制着大部分成员国。

  对于几十年来一直在判断哪些是HTML的一部分、哪些不是的机构而言,他们正面临着生存危机。WebKit渐成主流意味着,作为该项技术的两家最大赞助商,谷歌和苹果将决定哪些是Web的一部分,哪些又不是。

  面临这种生存危机的还有微软,早在IE6成为全球最受欢迎浏览器时,微软就致力于将专属Web标准推广成为主流。

  WebKit成为主流究竟意味着什么,最有力的回答可能莫过于微软的担忧。微软去年11月在一篇博客中称表示:“你可能只在针对iOS或Android进行优化的网站上使用WebKit。”但微软如今却表现出一丝绝望,称“让WebKit优化的站点支持IE10很容易。”

  文章来源:新浪科技

数据显示中国用户最爱越狱

  iOS 6完美越狱工具evasi0n发布两天下载量已经突破400万,而据此次越狱团队成员之一pod2g在Twitter上公布的数据显示,来自中国访问量占到了总数的20%,排名首位,其次是美国及法国。

  从iOS 6正式推出到越狱,时间已经过去了四个月有余,此次漫长的越狱等待集中积攒了越狱用户的需求及热情。由pod2g、planetbeing、pimskeks、肌肉男四名著名黑客组成的evad3rs越狱梦之队,还特意为此次越狱工具的发布创建了独立域名网站,并通过进度条的方式公布越狱进度。

  据Cydia之父Jay Freeman提供的数据显示,在越狱工具发布当天,Cydia的安装量便超过了170万,两天内这一数字又飙升到400万。不过,在evasi0n发布前的两个月内,Cydia的安装量达到了2.28亿次,当然这主要来自一些并未运行iOS 6的设备。

  另一方面,越狱成员之一的pod2g也在Twitter上提供了过去几天中evasi0n网站的流量情况。该网站近几天已经吸引了超过500万独立用户访问量和4000万页面浏览量,其中来自中国的独立用户访问量达到20.12%,排名首位,超过了美国的16.88%,排名第三的则是法国。

数据显示中国用户最爱越狱

  以下为具体数据:

  1.中国:2991211(20.12%)

  2.美国:2508269(16.88%)

  3.法国: 860355(5.79%)

  4.德国: 789878(5.31%)

  5.意大利: 666669(4.49%)

  6.英国: 540544(3.64%)

  7.俄罗斯: 500908(3.37%)

  8.西班牙: 385005(2.59%)

  9.加拿大: 327255(2.20%)

  10.不确定: 268004(1.80%)

2013年2月16日星期六

彩票O2O新浪微博源创新

  2012年中国彩票年销量达2615亿,2013年预计在3000亿元以上。微彩票的源创新为新浪微博创造一个两面市场,实现多赢,并能引导企业用户尝试O2O模式。传统的彩票网站面对单一的受众彩民,如果彩票当红包送,微彩票面对源创新的两面市场——销售彩票的面对一个新的送彩票获得实名粉丝的合作伙伴,彩民市场出现一个拿彩票的分类群体,拿彩票的人还能转化为买彩票的人。  

  2012年中国彩票年销量达2615亿,同比涨幅18%,创2009年以来最近4年销量涨幅的新低。2013年,中国彩市规模预计在3000亿元以上。据媒体称,根据国外成熟国际的经验,通过非传统渠道购买彩票的数量超过30%,并且购买群体与传统渠道购买群体有所不同。中国网络销售彩票若占据三分之一的市场,销售规模便是一千亿元的市场。

  最新修订的《彩票发行销售管理办法》已于今年1月1日正式施行,除实体店和电话销售彩票外,互联网和自助终端销售模式获认可。这样,有稳定的市场环境和发展制度,中国的网络售彩将会得到爆发式的增长。现在,门户都在卖彩票了,加上彩票类别多,激烈的市场竞争必然会触发市场创新。

  新浪微博的微彩票,相对于早期的彩票网站而言,微彩票因微博火热而套用了微概念,在微博推广销售,可以将微博会员转化为彩票销售的顾客,除此之外,它的运营方式和其它网站彩票销售没有多大区别,在创新方面还有很大的发展空间。

  微博商业模式可研究源创新

  斯坦福大学教授、企业创新转型策划大师谢德荪(Edison Tse)对中国企业创新和中国经济转型的问题进行研究,写出一本书叫做《源创新》。“源创新”即从源头上创新,相对于科技创新、产品创新、流程创新等常见概念,它代表的是一种极具颠覆性的新思维。它针对波特价值链理论的局限性做出突围,从根源上纠正了工业革命旧思维,提倡以“源创新”建立适应于信息时代的“两面市场”生态系统,实现从以“产品”为中心到以“客户”为中心的转变,为多方客户提供新价值。

  发明音乐随身听是索尼,但是MP3为什么是被苹果颠覆的?先做MP3的厂商没有建立两面市场,就是做出一个硬件,然后销售给顾客,这是一种传统的价值链模式。苹果源创新是建立了两面市场,通过iTunes这个平台来塑造一个生态系统,在这个两面市场,一头是唱片公司、音乐艺人和影音设备的制造商,一头是消费音乐的顾客。现在iTunes销售的音乐超过了250亿首!

  源创新简单的说就是“平台化和生态化”,现在的新浪微博有平台化,但是平台化的发展出现了挑战——生态化,平台不能做出一个理想的生态化,不但新浪微博有发展问题,进入平台的合作伙伴也有发展问题,搞定了生态化,那么大家都能活、都能赚钱,平台生态化就是可以持续化发展,如马太效应——强者越强,富者越富。

  平台是烧钱就可以做出来的,而生态化不是靠烧钱能做出来的。新浪微博不要急商业模式,除了现有的广告、游戏、电子商务、会员增值服务等商业模式,这一两年将出现gTLD微博域名经济是千亿级的市场,还有移动互联网发展浪潮,智能手机的普及化,微博总体发展而言是大好的。新浪微博重点解决的问题应该是源创新,源创新的方向其实就是把微商业和微社会结合,微商业就是在新浪微博这个微社会当中搞生态化商业。

  微博的O2O

  新浪微博的O2O就是微商业,这是新浪微博独有的东西,新浪微博要做大O2O,肯定不是学淘宝天猫那样去玩O2O。新浪微博团购小米和淘宝团购手机,这是不同的团购。新浪微博团购小米,这是微商业,在微社会搞商业团购。淘宝团购手机,它不是微商业,它不玩微社会的概念。新浪微博要做O2O,认准两点,一是微社会,二是微商业。

  新浪微博如何玩源创新

  新浪微博的微彩票,这是一种常见的网上购买彩票,微彩票的商业模式和其它彩票网站没有什么区别。彩票在中国是接地气的,商业模式简单,贵在可持续化发展,可以薄利多销,也因为这样,在新浪微博、腾讯、淘宝买彩票基本上是一样的。但是,正因为没有差异化,给新浪微博的反思是微彩票为什么不能做出微商业?微彩票能不能搞出O2O?微彩票能不能搞出源创新?

  这个问题是让一个简单的东西变得复杂化吗?或是,一个简单的东西,放在不同的地方,换个玩法就能创造出非凡表现?

  微彩票,如果你做这个产品,你要做成天下一样的,还是把微彩票做成源创新,把线上其它网站的彩民,还有线下的彩民,都引到新浪微博的微彩票来购彩?

  毫无疑问,做前面那种大路货,这样的产品经理成千上万,人人都会做。要做成后面那种源创新,把产品做到拍案叫绝的,当产品经理非你莫属。

  微彩票,在微社会贩卖彩票,这怎么不是微商业?微彩票,可以线上线下聚在一起购彩,这怎么不是O2O?要把微彩票做出微商业,这就是一个源创新的玩法!

  微彩票O2O春节送红包

  中国人的春节离不开红包(压岁钱),结了婚的人,不但放假过节时要送红包,初八上班了还得送红包。

  传统的彩票网站面对单一的受众彩民,如果彩票当红包送,微彩票面对源创新的两面市场——销售彩票的面对一个新的送彩票伙伴,彩民市场出现一个拿彩票的分类群体,拿彩票的人还能转化为买彩票的人,彩票不再是直接销售给彩民,而是可以销售给平台的推广合作伙伴。

  这个时候微彩票的O2O就是在微社会搞微商业,它跟淘宝做彩票是不同的。新浪微博要探索商业模式,必须是先行者的定位,只有成为先行者,才可能成为领导者,因为美国的推特,中国的淘宝天猫,他们的商业模式和新浪微博不同。在中国还有几家微博,这样新浪微博作为领导者,就必须拿出勇气去探索,现在挨点骂也没有关系。

  微彩票如何玩出源创新

  当春节变“春劫”,一些80后成了“节奴”。所谓“节奴”是指为重大节日消费、交际而饱受压力的人。很多传统节日,在现时有了更多的世俗和功利的色彩。节日期间送礼之风已久,现如今送礼却变了味道,过去人们更看重“送”的情意,现在人们却越来越看重“礼”的分量。有许多人为了送礼甚至要花掉几个月的工资,因此现在很多人害怕过节。生活在这变了味道的“礼尚往来文化”下,“节奴”于是诞生。

  外国人能把一块巧克力放进红包送出去,中国人为何不能把一张彩票放进红包送出去?对于80后、90后的新婚夫妻,回单位送红包怕了吗?怕了就送彩票红包。

  对于要把百元大钞送给亲友的人,彩票红包可能不适合他。但是,送红包在中国可以说是一件全民参与的事情,还有政府、企业机构及社会组织,彩票红包存在应节需求。

  业务员发春节短信,一条短信就是一个去中500万彩票红包——到新浪微博微彩票领彩票中大奖。这样恭喜发财,够喜庆吧?

  微彩票要玩出源创新,关键的问题是平台化和生态化。彩票当作红包送,这是平台化的功能,在平台要实现生态化,就要解决这几点问题,首先为什么有人送,送了能得到什么回报?然后拿彩票的人是不是拿了就走,送与拿之间有没有可持续化发展的概念?

  送彩票的人分为个人送和企业送。

  个人送,解决钱的问题,以前送五元、十元红包的,现在送一张彩票红包,就可以节省3元或7元,你要是一个红包送两张彩票,也能节省一元或六元。你要是送一百个红包的,现在能节省300元或700元。

  彩票红包不同于巧克力红包,彩票红包是中500万元的概念,有过年恭喜发财的应节气氛。这样,个人送,他就不是解决钱的问题,比如业务员发短信送,他为的就是恭喜发财的好兆头。

  个人送,他如果是送红包赚粉丝关注?如果送红包可以顺便赚粉丝关注,这样企业也会加入送红包。

  微彩票的O2O之路

  很多商店和饭店,在春节都会给顾客送红包,虽然钱不多,但就是一个过年的气氛,让人感受到年味和开心。

  如果,将现金红包改为一个彩票红包,实名认证粉丝领取。同样是两元,是搞两元现金红包,还是送两元彩票红包得到一个顾客粉丝关注,老板选哪个?老板是玩新浪微博的,要搞社会化营销和O2O的,不选彩票红包得粉丝是犯傻。

  预防拿了彩票就取消关注的,这个也很容易操作,老板买几期复式彩票,拿过彩票红包的顾客粉丝,再参加这几期的复式彩票中大奖活动,每周一期,搞了一个月,除非你的微博真得很烂,你的粉丝才会用心记住到期就取消关注。

  企业微博和微博大户,也更适合用转发或加关注参与复式彩票活动,因为一个两元,几万转发就十万八万了,伤不起,不如拿几百元或几千元搞一个复式彩票的活动。

  O2O说复杂也行,说简单也行,关键之处是懂得画龙点睛,把事情搞活。

  例如广州的一家餐厅,可以这样借微彩票搞O2O,春节期间给顾客送出10万个彩票红包,得到10万个广州本地的顾客粉丝(真实的顾客),再花2万元做几期复式购彩和奖品抽奖来留住粉丝。餐厅投入的费用是22万元,餐厅要收回成本,平均从每个粉丝要赚回2.2元。这十万个粉丝是老顾客,餐厅从每个老顾客赚回2.2元不是难事。

  餐厅有十万个广州本地粉丝后,在微社会就能搞微商业了,不用找什么微博大号和网络营销公司,自己就是微博大号,手头有十万个老顾客,微博可以发布美食信息,与粉丝互动交流,不定期送出一些餐厅优惠券作为奖品来鼓励微博互动传播和吸引新老顾客来餐厅消费。这样,餐厅在新浪微博可以自己发展O2O了!

  对于五星级酒店来说,投入百万级预算是可以的,除了针对自己的顾客和本地微博客,还有经济发达地区的微博客。至于规模小的餐厅,老板或孩子玩微博的,对自己的美食出品有信心的,预算小也可以做,尝试投入几千块发展微博营销。

  商家发送微彩票的方式

  打印版:商家从微彩票购入一批预定金额的彩票,比如5万张彩票就打入十万元,商家可以自己打印彩票的5万个领取码,也可以由微彩票中心批量印制领取码。获得领取码的顾客到微彩票(实名认证会员)领取一张彩票,在新浪微博关注商家,每激活一张彩票就在微彩票后台扣除两元。

  电子版:商家购入一批预定金额的彩票,用电子码的方式发送给顾客或粉丝。例如,顾客在店内消费,留下手机号码,就在微彩票平台把领取码发到顾客的手机。

  对于制造企业,可以在产品包装内附增一个彩票领取码,这样企业顾客领取彩票后就会在新浪微博关注企业,企业在新浪微博和顾客粉丝互动,推广品牌和引导现有的老顾客和潜在的顾客购买产品,这就是企业的O2O应用。

  顾客为什么愿意实名认证领取彩票

  一是企业、商家和顾客已建立关系,二是红包彩票、礼物彩票是熟人赠送,三是彩票领奖本身是资产管理概念,实名认证不会产生抵触意识。这样,实名认证对新浪微博来说是双赢战略,会员实名真实社交和强关系建立。

  手机通讯录激活强关系

  会员认证自动领取彩票:会员建立通讯录来设置彩票领取名单,名单有领取人的姓名和手机号码(如张三,139),张三在新浪微博关注A会员后,通过实名认证和对应手机号码后就自动获得彩票。这种方式可以让会员把手机的通讯录放到新浪微博,并激活联络关系,建立强关系。

  微彩票的源创新,可以为新浪微博创造一个两面市场,实现多赢,并能引导企业用户尝试O2O模式。

  免责声明:本文仅为作者研究观点,不代表文中各品牌公司、机构及相关人物的立场与观点。内容仅供创新研讨,不构成任何投资决策意见,有问题请自行咨询第三方意见。

  来源:@简哲 投稿,本文节选自网络创新杂志《ChuangXin.it》201302A期,请使用Adobe Reader 11阅读,PDF下载网址 http://t.cn/zYft174

预防Web应用程序的漏洞

  如今的Web应用程序可能会包含危险的安全缺陷。这些应用程序的全球化部署使其很容易遭受攻击,这些攻击会发现并恶意探测各种安全漏洞。

  Web环境中两个主要的风险在于:注入——也就是SQL注入,它会让黑客更改发往数据库的查询——以及跨站脚本攻击(XSS),它们也是最危险的(Category:OWASP_Top_Ten_Project)。注入攻击会利用有问题代码的应用程序来插入和执行黑客指定的命令,从而能够访问关键的数据和资源。当应用程序将用户提供的数据不加检验或编码就发送到浏览器上时,会产生XSS漏洞。

  尽管2009年OWASP(Open Web Application Security Project)的一个报告表明安全方面的投资在增加(Category:OWASP_Security_Spending_Benchmarks),但是NTA Monitor的2010 Web应用安全报名表明Web的安全性跟前一年相比实际在下降。实际上,Web应用的漏洞给公司和组织带来了很多的问题。按照WhiteHat Security最新的Web站点安全性数据报告所示,被评估网站的63%是有漏洞的,每个平均有六个未解决的缺陷。(WhiteHat Website Security Statistics Report)。这些漏洞创建并维持了一个基于攻击窃取数据和资源的地下经济链。

  Web应用程序需要有深度防御的措施来避免和减少安全性漏洞。1这种方式假设所有的安全预防措施都可能失败,所以安全性依赖于多层的机制从而能够覆盖其他层的失败。为了减少成功攻击的可能性,软件工程师团队必须做出必要的努力来引入适当的安全性防护措施。要达到这一点必须使用各种技术和工具来确保安全性涵盖软件产品开发生命周期的所有阶段。

  软件开发生命周期中的安全性

  尽管软件开发的生命周期有多种不同的划分方式,但正如图1所示,它通常包含如下的阶段:初始化、规范和设计、实现(编码)、测试、部署以及停用,这些阶段应用开发人员可以不断地重复迭代。2

  尽管开发人员应该在产品的整个生命周期中都关心代码安全性,3但是他们应该特别关注三个关键阶段:1

  • 实现。在编码过程中,软件开发人员必须使用特定应用领域内避免关键漏洞的最佳实践。这种实践的例子包括输入和输出校验、识别恶意字符以及使用参数化的命令。4 尽管这些技术在避免大多数安全漏洞方面很有效,但因为缺乏安全相关的知识,开发人员通常并不使用它们或者使用得不正确。边栏“为什么开发人员不使用安全编码实践?”更详细地讨论了这个问题。
  • 测试。有很多技术可以在测试阶段使用,包括渗透测试(目前最流行的技术)、静态分析、动态分析以及运行时的异常检测。4 问题在于开发人员通常会关注需求功能的测试而忽略安全方面。另外,现有的自动化工具要么在漏洞探测覆盖度方面比较差要么产生太多的误报。
  • 部署。在运行时环境中,会有不同的攻击探测机制。这些机制可以按照不同的级别运行并使用不同的探测方式。它们的使用障碍在于性能开销以及不准确的结果会打乱系统的正常行为。

预防Web应用程序的漏洞

  开发安全的代码

  为了编写没有漏洞的安全代码,4 基于Web基础设施的关键业务开发人员就要遵循编码实践,这个实践包括了深度防御的措施,它假设所有的安全性预防措施都会失败。在实现阶段依赖多层的安全机制是特别重要的,使用一个预防或保护措施来避免安全漏洞是不够的。

  Web应用程序的特征在于需要三层不同的安全防线:输入校验、热点保护以及输出校验。

  输入校验

  大多数的安全漏洞是因为目标应用程序没有正确地校验输入数据。1所以,应用程序要考虑到所有恶意的输入直到能证明其合法,这要涵盖不可信环境中的所有数据。

  输入校验是第一道防线,总体来讲就是缩小应用程序允许输入的范围,它会直接作用在用户提供的数据上。这种类型的防御要依赖输入参数在一个合法的范围内,或者如果用户提供了超出了范围的值就会停止执行。在Web应用程序中,这首先要标准化输入将其转换到基线字符集和编码。接下来,应用程序必须对标准化的输入使用过滤策略,拒绝那些值在合法范围之外的输入。这种方式能够避免很多Web应用程序中的问题,在执行输入校验时会使用正向模式匹配或正向校验。在这种情况下,开发人员建立规则来识别那些可接受的输入而不是识别有什么输入是不可接受的。尽管开发人员不能预测所有类型的攻击,但他们应该能够说明所有类型的合法输入。

  关键问题在于,输入校验通常使用地并不充分,这是因为输入参数的数据域允许存在恶意数据,这是与校验执行相独立的。例如,在SQL注入漏洞中,大多数的SQL语句使用引号作为字符串分隔符,这就意味着黑客可以使用它来执行SQL注入攻击。4但是,在有些情况下,字符串输入域必须允许存在引号值,所以应用程序不能排除所有包含引号的值。

  热点防护

  为了应对输入校验的局限性,有必要采用第二道防线

  任何类型的攻击都是以热点为目标的,热点指的就是应用程序中可能会有某种类型漏洞的代码。通用的输入校验会在应用程序中进行或者在整个Web应用程序上下文中修改输入,与之相比,第二道防线关注于保护重要的热点,例如保护那些真正使用输入域值的代码行。

  一个具体的例子就是SQL注入攻击,它们大多数会使用单引号或双引号。有些编程语言提供了对这些字符的转码机制,这样它们就能用在SQL语句中了,但是只能用来在语句中分隔值。4但是这些技术有两个问题。第一,更高级的注入技术,例如联合使用引号和转义字符,可以绕过这些机制。第二,引入转义字符会增加字符串的长度,如果结果字符串的长度超过数据库限制的话,可能会导致数据截断。

  正确使用参数化命令是预防注入攻击最有效的方式。1在这种情况下,开发人员定义命令的结构,并使用占位符来代表命令的变量值。稍后,当应用程序将对应的值关联到命令上时,命令解释器会正确地使用它们而不会涉及到命令的结构。

  这种技术最著名的用法是数据库的预处理语句,也被称为参数化查询。4 当应用程序创建预处理语句时,语句发送到了数据库端。应用程序使用占位符来表示查询的可变部分,占位符通常会是问号或标签。随后,每次查询执行时,应用程序都要往对应的可变部分绑定值。不管数据的内容是什么,应用程序会一直使用这个表达式作为一个值而并没有SQL代码。因此,不可能修改查询的结构。

  为了确保正确使用数据,很多语言允许类型绑定。但是预处理语句本身并不能修复不安全的语句——开发人员必须正确地使用它们。例如,像传统语句一样使用预处理语句——也就是使用字符串拼接来绑定SQL查询——而不是对查询的可变部分使用占位符会导致类似的漏洞。

  输出校验

  在将一个进程的输出发送之前进行校验能够避免用户收到他们不应该看到的信息,例如应用程序内部的异常细节,这些信息有助于发起其他的攻击。在输出校验的另一个例子当中,保护系统会搜索应用程序输出的关键信息,如信用卡号,并在发送给前端之前用星号代替。将信息编码是能够避免XSS漏洞的一种输出校验方式。4如果发送给浏览器的数据要显示在Web页面上,它应该进行HTML编码或百分号编码,这取决于它在页面的位置。通过这种方式,XSS所用的恶意字符不再具有破坏性,而且编码会保留数据的原来意义。

  探测漏洞

  识别安全的问题要求不仅测试应用程序的功能还要寻找代码中可能被黑客利用的隐藏的危险缺陷。5探测漏洞的两个主要方式是白盒分析和黑盒测试。

  白盒分析

  白盒分析需要在不执行的情况下检查代码。开发人员可以按照以下两种方式中的某一种来进行:在代码的审查或评审时以手动方式进行或者借助自动分析工具自动化进行。

  代码审查(Code inspection)指的是程序员的同伴系统检查交付的代码,查找编码错误。6安全审查是减少应用程序中漏洞最有效的方式;当为关键的系统开发软件时,这是重要的过程。但是,这种审查方式通常是很费时间的、代价昂贵并需要深入了解Web的安全知识。

  代码检查(Code review)是代价稍为低廉的替代方案,6它是一种简化版本的代码审查适用于分析不像前面那么重要的代码。检查也是手动进行的,但是它不需要正式的审查会议。几个专家分别进行检查,然后由主持人过滤和合并结果。尽管这是一个有效的方式,但代码检查的成本依旧是很高的。

  为了减少白盒法分析的成本,开发人员有时依赖自动化工具,如静态代码分析器。静态代码分析工具会检查软件代码,要么是源码格式要么是二进制格式,并试图识别出常见的编码级别缺陷。4 使用现有工具所执行的分析会因为它们的复杂性而有所不同,这种差异体现在考虑单条语句和命令或考虑代码行之间的依赖。除了模型检查和数据流分析等功能之外,这些工具还会自动关注可能的编码错误。它的主要问题在于细致的分析是很困难并且因为源码的复杂性和缺乏动态(运行时)的视角有很多安全缺陷很难被发现。

  尽管使用静态代码分析工具很重要,但是它有时会降低开发人员的生产效率,这主要是因为误报,这会导致没有用处的额外工作。7为了避免这种情况,除了要有足够的时间学习怎样使用这些工具以外,开发人员需要一些策略来保证正确使用这些工具。例如,有必要指定规则来分类和选择开发人员应该处理的警告信息。同时,开发人员还要配置分析工具只报告那些与当前开发上下文相关的警告。没有接受怎样使用静态分析训练的开发人员最终会低估它的真正效益并且通常不能发挥它的所有功能。

  黑盒测试

  黑盒测试指的是从外部的视角分析程序的执行。简而言之,它会比较软件执行的输出与期望的结果。5 对于软件的检验和确认来说,测试可能是最常用的技术了。

  对于黑盒测试来讲,有多种级别,从单元测试到集成测试再到系统测试。测试方式可以是正式的(基于模型和定义良好的测试规范)也可以不那么正式(被称为“冒烟测试”,一种粗糙的测试目的是快速暴露简单的缺陷)。

  健壮性是黑盒测试一种特殊形式,它的目标是查看系统在错误输入条件下的行为。渗透测试是特殊类型的健壮性测试,它会分析在遇到恶意输入时的代码执行并查找潜在的漏洞。在这种方式中,测试人员使用模糊技术,这包含通过HTTP请求,提交意料之外的或非法的数据项到Web应用程序上并检查它的响应。4测试人员不需要了解实现细节——他们在用户的角度来测试应用程序的输入。对于每种漏洞类型,可能会有上百次甚至上千次的测试。

  渗透测试工具会自动搜索漏洞,这避免了手工为每种类型的漏洞构建上百个甚至上千个测试所带来的重复和乏味的工作。Web应用的常见自动化安全测试工具一般会称为Web应用或Web安全扫描器。这些扫描器可以很容易地测试应用程序以发现漏洞。对于目标应用,它们会有一些预定义的测试用例,所以用户只需要配置一下扫描器并让它测试应用即可。一旦扫描器完成测试,它会报告所探测到的漏洞。大多数的扫描器都是商业产品,尽管也有免费的应用程序扫描器,但是与商用版本相比,它们缺少大多数的功能所以用的很有限。

  漏洞探测的局限性

  渗透测试和静态代码分析可以是手动的也可以是自动化的。因为手动测试或检查需要特殊的安全资源并且很费时间,所以对于Web应用的开发人员来说自动化工具是常见的选择。当考虑漏洞检测工具的局限性时,很重要的一点就是安全测试是很困难的。确实,衡量应用程序的安全性是很有挑战性的:尽管发现一些漏洞可能很容易,但是保证应用没有漏洞是困难的。1

  渗透测试和静态代码分析工具都有其固有的局限性。渗透测试依赖于有效地代码执行,但是在实践中,漏洞识别时只会检查Web应用的输出。所以,缺少查看应用的内部行为会限制渗透测试的有效性。

  另一方面,详尽的源代码分析可能比较困难。代码的复杂性以及缺少动态(运行时)的观察可能会阻止发现很多安全缺陷。当然,渗透测试不需要查看源码,但是静态代码分析需要。

  使用错误的检测工具会导致部署的应用含有未检测出的漏洞。图2比较了在Web服务中,知名的并广泛使用的渗透测试和静态分析工具在检测SQL注入漏洞中的表现。8结果显示静态代码分析工具——包括FindBugs、Fortify 360以及IntelliJ IDEA(在图中匿名为SA1到SA3)——的覆盖度通常高于渗透测试工具,包括HP WebInspect、IBM Rational AppScan、Acunetix Web Vulnerability Scanner以及科英布拉大学开发的一个原型工具(在图中匿名为VS1到VS4)。这两种方式都有的一个问题就是误报,但是在静态分析中更明显。一个重要的发现在于相同方式下的不同工具对于相同的代码通常报告不同的漏洞。

预防Web应用程序的漏洞

  根据研究结果,需要强调工具的局限性使得有必要提高漏洞检测的有效性,比如这可以通过联合使用多种方式来实现。另外,开发人员需要定义一种机制来评估和比较不同的工具,这样它们才能选择最适合各种开发场景的工具。

  检测攻击

  为了防止对Web应用的攻击,软件工程师必须实施攻击检测机制,通常称为入侵检测系统(intrusion detection system,IDS)或Web应用防火墙(WAF)。不同的工具可以作用在应用或网络级别甚至在应用的资源上,如数据库,它们可以使用不同的方式如异常检测或签名匹配来检测攻击。

  检测攻击的方法

  检测攻击要区分出与所学习行为的差别。攻击检测工具所使用的方式要么基于异常检测要么基于签名。8

  异常检测通常需要一个训练阶段。训练阶段会展现系统的无恶意请求,工具会在给定的架构级别观察它的行为并学习正常的操作。这些工具会考虑到每个Web应用程序的细节,但如果应用程序的正确行为发生了变化或学习不完整的话,会产生很多错误的警告。

  相比之下,基于签名的工具会查找预定义的一组规则模式或标示攻击的签名。因为这些签名通常是独立于应用的,所以工具的成功与应用程序的运行配置文件或任何训练过程无关。

  在网络级别进行操作的工具通常会监视和分析网络流量,以保证攻击在到达Web应用之前检测到。工作在应用级别的攻击检测工具会分析发送给应用的请求并试图利用服务端程序和请求中参数的特定关系。工作在资源层的工具会保护与每种漏洞类型相关的资源。这些工具会在应用层之下并接近受保护的资源。一个常见的例子是监控对数据库服务器的访问来检测SQL注入的IDS。

  工具使用各种策略来收集应用请求以及可能收到攻击的信息。一些工具会使用嗅探策略来监控和分析通过网络传输的数据以此来观察HTTP流量,但是加密、编码以及封装可能会限制其有效性。同时,网络上可能会承载大量与受保护应用无关的数据。另一些工具会分析应用产生的日志甚至是应用所在服务器所产生的日志。尽管这种策略不会直接延迟对应用的请求,但是受限于日志中可以得到的信息。

  而另一种策略就是在请求的来源和受保护的应用或资源间引入一个代理。这能够很容易地阻止攻击,因为它提供了关于目标应用或资源的有用信息,但是,它引入了不良的延时从而会影响应用的正常行为。

  检测攻击的局限性

  因为每个Web应用程序的细节会影响到攻击检测工具的表现,同时工具所运行的架构级别也会有所影响,所以它们的实际效果通常是未知的。10大多数工具的检测覆盖比较低(在很多场景下,低于20%),同时它们还会有很多误报(高达所产成警报的50%)。此外,有些工具在特定的场景下展现的结果很好,但是在其他场景下所提供的结果很差。

  数据库级别的工具通常比应用级别的工具表现更好一些,10不过它们会产生一些关于请求的误报,这些请求是不会成功攻击数据库的。基于异常检测的工具对于简单的应用表现得更好,而基于签名的工具对于复杂的应用表现更好。在简单的应用程序中,工具能够学习并且更好地描述行为,因此从模式中检测偏差会更准确。实际上,异常检测的成功取决于训练阶段。如果训练不完整或者应用的正常操作配置在训练后发生了变化,那么攻击检测工具的有效性会降低。

  使用这些工具的开发人员有时缺乏创建适当配置的培训。这会减少工具的有效性,这凸显了评估和对比不同工具及配置的重要性。10

  新的趋势和方向

  要达到更好的结果并提高有效性需要新的技术来克服漏洞检测工具的局限性。但是要克服这些局限性并不容易,因为它需要将传统方式改为颠覆性的方法。关键在于释放一些约束并将不同的方法结合起来以克服单个方法的局限性。

  Acunetix AcuSensor就是一个商业技术的例子,它将黑盒扫描和测试执行反馈结合起来。反馈来自于植入到目标应用程序代码中的传感器(sensor)。Acunetix声称这种技术能够发现更多的漏洞并能够精确表明漏洞在代码中的位置,而且误报也会更少。

  一项最近提出的技术试图以更小的侵入性实现类似的效果,它联合使用攻击签名和接口监控来克服渗透测试对注入攻击漏洞测试的局限性。11这是一种黑盒测试技术,因为它只会监控应用程序和漏洞相关资源的接口(如数据库接口)。

  Analysis and Monitoring for Neutralizing SQL-Injection Attacks(Amnesia)工具组合了静态分析和运行时监控来检测SQL注入攻击。12它对Web应用的源码进行静态分析,构建一个由应用生成的合法查询模型。在运行时,它监控动态生成的查询,检查是否与静态生成的模型相符。这个工具认为违反模型的查询为攻击并阻止它访问数据库。

  为了应对Web应用安全的新威胁,开发流程必须也要有所发展。例如,微软安全开发生命周期(Microsoft Security Development Lifecycle)完善了公司的开发流程并特别针对安全问题的解决,例如明确了开发团队的安全培训。13按照微软的说法,这个流程的采用减少了软件中的安全缺陷。尽管这只是一个例子,但是它表明在这个行业中,对软件开发执行安全流程是很重要的事情。

  在整个软件产品的开发和部署生命周期中,开发人员必须要考虑安全性。他们必须要使用安全编码的最佳实践、执行足够的安全测试并使用安全检测系统在运行时保护应用程序。在这个任务中,开发人员需要得到一些帮助来获取需要的技术和能够提高生产率的工具。

  研究人员应该提出创新的工具,能够在开发过程中方便地使用并满足部署时有效性和生产效率的要求。这个演变的中心是安全测试工具,对于检验和确认应用程序以检查安全漏洞来讲,它们是至关重要的。不过,必须要探索新的假设。一个可以预见的可能性就是开发编译器,使其不仅能强制使用最佳编码实现,还能自动化修改存在的安全漏洞。

  参考资料

  1. M. Howard and D.E. Leblanc, Writing Secure Code, Microsoft Press, 2002.
2. C. Ghezzi, M. Jazayeri, and D. Mandrioli, Fundamentals of Software Engineering, Prentice Hall, 2002.
3. G. McGraw, Software Security: Building Security In, Addison-Wesley, 2006.
4. D. Stuttard and M. Pinto, The Web Application Hacker’s Handbook: Discovering and Exploiting Security Flaws, John Wiley & Sons, 2007.
5. B. Arkin, S. Stender, and G. McGraw, "Software Penetration Testing," IEEE Security & Privacy, Jan.-Feb. 2005, pp. 84-87.
6. D.P. Freedman and G.M. Weinberg, Handbook of Walkthroughs, Inspections, and Technical Reviews: Evaluating Programs, Projects, and Products, Dorset House, 2000.
7. N. Ayewah and W. Pugh, "A Report on a Survey and Study of Static Analysis Users," Proc. Workshop Defects in Large Software Systems (DEFECTS 08) ACM, 2008, pp. 1-5.
8. N. Antunes and M. Vieira, "Comparing the Effectiveness of Penetration Testing and Static Code Analysis on the Detection of SQL Injection Vulnerabilities in Web Services," Proc. 15th IEEE Pacific Rim Int’l Symp. Dependable Computing (PRDC 09), IEEE CS, 2009, pp. 301-306.
9. E. Biermann, E. Cloete, and L.M. Venter, "A Comparison of Intrusion Detection Systems," Computers & Security, Dec. 2001, pp. 676-683.
10. I.A. Elia, J. Fonseca, and M. Vieira, "Comparing SQL Injection Detection Tools Using Attack Injection: An Experimental Study," Proc. 21st IEEE Int’l Symp. Software Reliability Eng. (ISSRE 10), IEEE CS, 2010, pp. 289-298.
11. N. Antunes and M. Vieira, "Enhancing Penetration Testing with Attack Signatures and Interface Monitoring for the Detection of Injection Vulnerabilities in Web Services," Proc. IEEE Int’l Conf. Services Computing (SCC 11), IEEE CS, 2011, pp. 104-111.
12. W.G.J. Halfond and A. Orso, "Preventing SQL Injection Attacks Using AMNESIA," Proc. 28th Int’l Conf. Software Eng. (ICSE 06), IEEE CS, 2006, p. 798.
13. M. Howard and S. Lipner, The Security Development Lifecycle, Microsoft Press, 2006.

  关于作者

  Nuno Antunes是葡萄牙科英布拉大学信息科学与技术系的在读博士生,在这里他获得了信息工程的理科硕士。他的研究兴趣包括开发安全Web应用程序和服务的方法论和工具。Antunes是IEEE计算机学会的会员。可以通过nmsa@dei.uc.pt联系他。

  Marco Vieira是葡萄牙科英布拉大学信息科学与技术系的助理教授(assistant professor)。他的研究兴趣包括可靠性和安全基准测试、实验可靠性评估、错误注入、软件开发过程以及软件质量保证。Vieira在科英布拉大学获取了计算机工程的博士学位。他是IEEE计算机学会和ACM的会员。

  Computer是IEEE计算机学会的旗舰出版物,出版了很多为同行热议且广受赞誉的文章。这些文章大都由专家执笔撰写,代表了计算机技术软硬件及最新应用的领先研究。它提供较商业杂志更多的技术内容,而较研究学术期刊具有更多的实践性思想。Computer 传递着可适用于日常工作环境的有用信息。

  查看英文原文:Defending against Web Application Vulnerabilities

  本文最早发表于《Computer》杂志,现在由InfoQ以及IEEE Computer Society合作为你呈现。翻译地址