bo's profilebobkey's blog PhotosBlogListsMore ![]() | Help |
bobkey's blog多谢访问 |
||||||||||||||||||||||||||||||||||||||
|
9/27/2009 解决iTunes无法安装在windows2003 步骤: 1.解压iTunesSetup.exe得到如下: AppleApplicationSupport.msi AppleMobileDeviceSupport.msi AppleSoftwareUpdate.msi Bonjour.msi iTunes.msi MobileMe.msi QuickTime.msi SetupAdmin.exe 2.启动orcaMis,打开AppleMobileDeviceSupport.msi,并删除其中的launchcacdition,保存退出 3.iTunes.msi执行安装,此时会提示无法启动服务,安装失败。 ![]() 4.卸载之前安装的所有apple程序,并在注册表里删除干净。 iTunes5.重新运行安装。 ![]() ![]() 苹果这种级别的公司,很霸道,概念和方法是它自己创造的,可以直接强制推给用户。 罪行: 1.歌曲管理和歌词的显示必须用它自己的方式,传统的lrc格式不支持; 2.同时fans也非常狂热,带动了不少周边的附属设备产业。比如音箱,一个破音箱只要支持ipod就可以卖很贵,车载,充电器、贴膜、保护套等同样贵。 3.另外对于多媒体文件格式的支持也限制与自己的格式, 4.对于iTunes的同步实在无语,这种机制到处都有,比如浏览器的书签,在同步时有几个选项,不会造成数据被覆盖或丢失,但这个iTunes不行,同步时如果磁盘源文件不存在了会直接删除Ipod上的文件,实在弱智啊,恢复选项同样的代价也是120G磁盘数据全部丢失! 5.随产品销售的只有数据线一根,其他全部要另外掏钱去买,包括充电器这些必需品,什么道理?要知道这个产品的价格本身就比同类产品好贵好几倍的。 8/27/2009 wafec2.0美国对于技术的融合、开放总是令人激动的,不封闭不排斥。不仅仅是NIST这些“百年名店”。对于web的防护,waf1.0 的发布是从用户层来考虑如何选择和测试一款合格的WAF,有哪些技术特性是必须满足的。未来版本是2.0,而下面就是主要的研究机构和参加,由他们共同参编写。期待和关注wafec2.0。Community & Research:
WAF Vendors:Naturally WAFEC is of importance to WAF vendors and most vendors have a representative on the WAFEC team:
8/24/2009 IPS vs WAF上周组织了IPS和WAF的研发人员共同讨论了这两款产品的异同,下面是部分PK话题: 未知攻击防护(异常检测) 接近尾声时来了一个市场人员,又再一次问了它们的异同,我用这个例子讲解了,大家均觉得贴切: IPS是大楼保安,他对进出的所有人全部要安全检查;waf是老总的私人保镖,他只需对老总的安全负责;那么它们的异同就是waf需要清楚地了解老总的生活作息习惯,性格特征,有哪些脆弱点容易被利用等。 具体的分析文章这周开始编写,希望下周能出来。 8/15/2009 FF插件插件依托浏览器越来越有优势了,FF武装一下可称为黑客工具大全,以下又是一款,可支持自定义规则 刚配合paros跑了一下,观察,发现都是基于表单的注入,用post提交数据,这个还是挺有用的,可发现一些隐藏表单的漏洞。在浏览网页的时候会自动报出当前的form,然后可根据人的判断来选择注入哪些,完成后会简洁地显示所注入的字符与对应的服务器返回码,这时又可以进一步分析了。 其他常用安全插件: Live HTTP Headers 0.15 8/12/2009 蜘蛛家门口的电杆下发现一大蜘蛛,我恶作剧般扔了一片叶子到网上,它迅速移到跟前,当判断非实物时果断地把叶子周边的网线撕破,让叶子掉落,然后重新修复,长长的白丝从口中吐出按照既定的方向形成了规律的八卦图般的网。也是我再也不忍去破坏了。仔细观察,发现这小虫不简单,首先,它选择在电灯下织网简直是帅呆了,飞虫全部被光源所吸引,而又没注意前面的大网时就被粘住,这里的食物是充足的;然后它破坏了旁边的其他蜘蛛网,可以独霸一方宝地,避免竞争;最后,它选择的地方虽然好,但是也是非常危险的,这里是“人”搭建的一根晒衣绳,很容易被毁掉网,甚至危机蜘蛛的生命。 安全视觉:利用了“蜜罐”原理,轻易捕捉大量飞虫;需要经常检查异常情况,有漏洞时要及时弥补;防护设备也是一种资产,也就是要考虑其自身的脆弱性,当其被bypass时,要合理地进行调整;根据ISO1335的理论,是没有绝对的安全的,所以网的密度要根据实际情况来织补,没必要严实无缝。 8/9/2009 光照7/31/2009 后发制人 WEB application firewall防护WEB攻击有天然优势注:此文已经发表在《绿盟+》技术刊,转载请注明出处,不允许用于商业目的,谢谢。
对于WEB攻击,尽管一再提倡其自身的强壮性,但是更重要的是运维的安全防护,而传统的防护已经出现盲点。WAF(Web Application Firewall)利用其自身架构的天然优势可防护繁多的攻击类型。本文从技术角度阐述绿盟科技新上市的WAF P系列产品的功能优势。 关键词:WAF we攻防 SQL Injection CSRF WEB安全问题的复杂性 WEB攻击的数量逐年上升,占了大部分攻击事件比例。WEB安全已经推到了前沿浪尖,无论是政府还是企业都迫切解决这个棘手的问题,Gartner统计:目前75%攻击转移到应用层。原有的传统防御设备已经不能满足企业对网络攻击的防御。WEB应用技术在积极发展的同时需要强有力的安全保障,所以WAF是应形势需求诞生的产品,它走上应用安全的舞台,是一个必然的趋势。 Web漏洞归类众所周知,WEB服务系统实际不是一个单一的软件,它由OS+Database+WEB服务软件(比如:IIS、Apache)+脚本程序(比如:Jscript、PHP代码文件)构成,所以要考虑它最基本的依赖,那就是OS和Database、WEB服务软件自身的安全,这个可以通过安全加固服务来实现,而最核心的应用程序代码是不能用同样的手段来解决,这也是WEB安全问题的主要来源。 WEB 应用安全漏洞与操作系统或者网络设备的漏洞是不同的,这是因为编写代码者是不同的,产生的代码也是不同的,所以国外有权威的WEB安全组织来归类一些漏洞,让开发人员、安全厂家、第三方专家等能用一种一致的语言来讨论WEB安全问题。比较有名的是OWASP的TOP10漏洞,还有Web Application Security Consortium (WASC)归类的Thread Classification,如下表: 从安全角度看,WEB从设计到开发必须遵循: 1. 安全设计 2. 安全编码 3. 安全测试(代码审计和扫描、渗透) 4. 安全运维 其中最根本的在于安全设计和安全编码,也就是上线前必须保证WEB产品的自身强壮性。目前大部分的WEB应用程序是用户自己或请人编写,其他的或网站里部分组件,比如论坛、邮件系统、留言板等会用到商业版,代码是不相同的,而且程序员的水平参差不齐,更重要的是他们都遵循了软件的安全开发标准吗?可以想象这些良莠不齐的WEB系统一旦上线会遭受攻击,此时安全运维阶段尤为重要,也就是依靠安全防护设备来抵制攻击。 记住,这是我们为什么需要WAF的第一个理由! 攻击从未停止让我们先看下图,是攻击网站的基本步骤和方法。 如上所示,互联网每天都充斥着数千万的攻击流量,而WAF可以自动识别和屏蔽大部分主流的攻击工具特征,使得它们的攻击前奏就失效,绿盟科技WAF采用的是透明代理模式,客户端和服务器的双向流量都必须经过WAF清洗,而又无需另外配置,保持原有的网络结构,每个报文需要接受WAF对其的“搜身检查”,合格之后再进行转发。 可能有人会说Firewall和IPS不是这样的设备吗?它们为什么不能防御呢?详细的对比参数我就不列举了,大家知道OSI 7层模型,防火墙通常工作在OSI的第三层的网络层,目前的包过滤型和状态包检测型防火墙、应用层防火墙难以识别WEB攻击行为和正常报文,这是它自身技术定位决定的局限性。攻击者只需在浏览器上操纵URL就可攻击目标网站。当然,作为互补型的IDS(入侵检测系统)、IPS(入侵防护系统)产品是能防护应用层的攻击行为,但是市面上绝大多数的产品都只能防护一部分WEB攻击,甚至有些产品是直接在IDS类产品上做修改而形成的WAF,基本只依靠规则来实现,不但效率低而且严重滞后于繁杂多样的WEB攻击类型。当然,我在这里要重申一下,WAF可以和传统的FS+IPS作为一个有益的补充,但绝不是去代替他们。 所以,WAF的自身代理架构使得分析和阻挡攻击具有天然的优势,这是我们为什么需要WAF的第二个理由! WAF的防护原理 好,我们再回到防护盲点这个焦点话题,那就是无论如何安全设计和编码,或者经过最严谨代码审计、渗透测试之后都难免会有漏洞,因为理论上1000行代码就有1个Bug,检查只能让这些减少而已,无法真正做到没有安全漏洞的产品,这也就是为什么软件厂商会不断地推出一个个补丁来弥补,而这些Bug只要能被攻击者发现和利用那么就会带来威胁。 也就是说代码缺陷是先天存在的,即使后来修复也会具有一定的滞后性,而且不能保证100%地发现所有存在的漏洞那个缺陷。为了给大家更好地理解WAF防护的天然优势我们从两个例子来进行分析,从技术实现角度看WAF,SQL注入采用了规则集静态防护,CSRF采用了算法的动态防护。 静态防护SQL注入SQL注入的防护从编程角度看最有效的防护是对用户输入的变量通过参数来传递,而不是直接嵌入到SQL语句,但缺陷: 1. 不是所有的数据库和编程语言都有相应的参数化功能; 2. 编写时面对众多的输入模块,难免会有疏漏; 3. 难以批量化和统一部署。 还有一些方法就是把参数进行分类,比如用户递交的参数值统一转换成纯数字或纯字符串类型、加密用户输入、限制输入长度等,但和以上方法的缺陷一样。 比如这段代码是直接把用户输入放置数据库的SQL语句中进行执行,如果不对member_login变量进行过滤和判断是可以注入攻击的: ---漏洞代码段---
如果一一检查和修复需要花费大量的精力,而很多网站上线运营之后需要提高安全性的普遍举措是采用一些通用性的函数,原理是对输入进行判断和过滤,它在一定程度上能缓解攻击行为,并且花费成本相对不大,我们先看一段编写的防护函数: ---防护代码段---
以上代码首先需要定义相对完整的过滤字符集,然后分别处理用GET和POST方式提交的数据报文,在需要防护的页面里调用包括它既可<!--#Include File="Anti_SqlIn.Asp"--> 但是编写统一的防止注入函数有缺陷: 1. 需要考虑不同语言的不同语法,不能统一,比如ASP、PHP、Java; 2. 要充分考虑每一个可能用户输入的地方,但往往会有疏漏; 3. 虚拟机往往有大量站点,而管理者是单个站点的属主,系统管理员没权利也没能力统一定制防护措施; 4. 如果是IDC或者大型企业的机房,会有更大量不同类型的WEB应用服务器,要实现批量防护则更困难; 5. 消耗服务器运算资源和网络带宽,因为大批量的网络连接和提交数据都需要经过函数来处理; 6. 过滤不严谨则容易被攻击者绕过。 最后一点其实很关键,不仅仅是过滤不严谨,而且攻击者对于输入可变化大小写,拼接攻击语句,甚至构造字符的不同编码方式,比如字符 < 可被编码为 <、<、< 或 %3c,而编码方式又是如此之多,Unicode、十六进制、ASIIC、UTF-8等,所以用防护函数方式是非常困难的。 通过上面描述,我们知道了从编程方式来防御攻击具有它的局限性,简单概括:会有疏漏、消耗性能、难以统一、运算复杂等。 而这时绿盟科技WAF的优点就体现出来了,对于Encoding报文会全部解码后在分析,防止攻击者利用拼接、转换编码的方式躲避检查,并且内置了50多条精心配制的规则,用于防护SQL注入,有人可能会疑问这么少的规则能有效防御吗?要知道虽然SQL注入的语句千变万化,但规则只需要找出共同点进行匹配即可,并且可在此基础上根据变化的攻击行为自定义规则。规则制定后可用于不同类型的多台WEB服务器,类型一致的可使用同一规则,对于大型WEB群来说这具有无可比拟的优越性。它的优点如下: 1. 统一定制的规则能批量适用于不同类型的网站; 2. 花费时间和精力最少,无论是应用或编辑规则都方便,不用每台WEB服务器去部署; 3. 即使网站存在漏洞,也能在前端把攻击流量给予清洗和阻断; 4. 网站无需处理错误的探测,避免把错误处理方式和信息暴露给攻击者,同时也节省了服务器的处理资源。 CSRF全称是Cross Site Request Forgery,翻译过来是跨站请求伪造的意思,它攻击的是客户端,利用用户合法身份访问精心编制的一串url去触发一段具有某功能的脚本或CGI程序,攻击者盗用了客户的身份,并以他的名义发送恶意请求,包括:以假冒身份发送邮件,发消息,盗取用户账号,购买商品,虚拟货币转账,造成个人隐私泄露以及财产安全。特别是随着WEB2.0的普及人们越来越意识到它的攻击威力。如下是一段攻击流程: 1. 访问了www.example.org 2. 此页面用<img src>标签隐含了一段url,但访问时被触发访问请求 3. 这段url以Get方式提交了一段具有某功能执行的请求,比如:银行转账、网上购物等 通过上图我们清晰地了解CSRF的攻击方式是利用合法用户的身份来执行恶意动作,当然利用Get方式更容易实施,但POST方式也难逃厄运,比如下一段: <a .href="http://www.abc.com/" onclick="var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = 'http://www.BANK.com/account/destroy'; f.submit();return false;">合法链接?</a> 如果把链接改成图片,并且动作设定为onmouseover就更危险了。 目前在WEB服务端抑制CSRF攻击有几种方式: 1. 增加一个HASH后的cookie; 2. 一次性令牌; 3. 加入验证码机制,缺点是这种机制给正常用户的客户体验受损。 以上方式第3种是最佳的,比如每次请求重要功能的页面时(转账、删除等动作)会嵌入一个生成验证码图片的脚本,随机生成值(数字、ASIIC字符、中文等)让用户填写后发送到服务器并保存在session空间。但很多网站的程序员在编写时疏忽了完成每一次会话后去及时清空这个值,那么用户只要成功登陆过一次并填写了验证码之后,以后的会话就无需重新验证了,所以还是容易被利用攻击。 接着,我们来看看WAF的防护实现方式,相对于用特征集的静态防护,用动态防护CSRF的攻击更具智能性和灵活性,基本思路是通过WAF随机产生的隐含表单来打断一个不变的会话,也就是说即使攻击者获取到了用户身份,但是随机变化的验证码让攻击者无法构造一个不变的报文。 如下图所示,在配置WAF防护的规则之前需要设置referee的规则,然后配置域名和要防护的页面路径即可生效。 在应用了WAF的csrf防护规则之后我们可以通过抓包观察(见下图),在POST报文时发现会多了一个随机生成的隐含表单值,这个值会发送到WAF中进行匹配计算,如果不相符合则认为是攻击者构造的报文。由于这个值每次会话都变化,且长度都不同,很难被攻击者猜测利用,具有相当高的安全性。 通过以上介绍,大家了解WAF对于繁杂多样的攻击能条理地归类出共性,并在WEB系统前端直接分析和过滤,由于边幅限制,不能一一列举WAF所有防护功能的实现原理,其他的包括比如防御CC、SYN_flood等类型的拒绝服务攻击、cookie安全、网页挂马、防止页面篡改、WEB访问加速等,在以后的期刊里我会陆续再给大家介绍这些实现原理和一些思路。 参考文献: [1].SDL 介入 WEB http://msdn.microsoft.com/zh-cn/magazine/cc794277.aspx [2].NET Framework 开发人员指南 ADO.NET 安全编码指南http://msdn.microsoft.com/zh-cn/library/hdb58b2f(VS.80).aspx [3].《19 Deadly Sins of Software Security》作者Michael Howard、David LeBlanc 和 John Viega [4]. Threat Classification http://www.webappsec.org/projects/threat/ [5]. The Open Web Application Security Project (OWASP) http://www.owasp.org/index.php/Main_Page [6]. Preventing CSRF http://files.playhack.net/papers/preventcsrf.txt [7]. rfc2616 http://tools.ietf.org/html/rfc2616 6/27/2009 绿霸话题引发的讨论层次上个周末的一虎一席谈,说到了绿霸问题,请来的嘉宾讨论的话题层次不够高,基本锁定在第一层,仅仅有一个临时请上来的观众谈到了第二层,而且第一层的讨论是比较搞笑的,无非就是两派,支持者认为要开放要人性,不要扼杀青少年的认知过程,反对者就说怕被“很黄很暴力”毒害到花花草草之类。 说实话这基本脱离了核心问题,青少年心理健康与绿霸有甚关系?就是要禁止难道只能要它吗?方式很多种,非得在客户端操作吗?其中有个矮个子嘉宾据说是某个网站的负责人,非得举例windows、cookie来说明监控由来已久,真的令人笑掉大牙。我认为要谈透这个话题至少是四层才过瘾,当然作为一个电视谈话节目不要奢望这么多,虽然这个节目是我一直比较推崇的,最主要是看请来的嘉宾水平如何了。4个层次如下: 6/22/2009 球!改进中指主导运杆后的收获 周末晚约了tang,一起大战到凌晨3点多,才意犹未尽的回家。tang是一个很好的球友,打球认真且具有风度,对战的时候一般都不会说话,一直到12点多两个人才停下来并开始讨论交流彼此的心得,指出对方的缺陷。对于我来说,那天最大的收获就是在我更改后手握杆方式的前提下,被验证是越来越稳定了,tang建议我用蛇形来练习小力走位 ,以前对于它从来不重视,总觉得这么easy的东西没必要花时间。 再分享一点练球的体会,不要去练习太多花哨的东西,我一直推崇: 野百合也有春天:炮制啤酒鸭上次端午鸭子做好后的相片发布在开心上,招来大家的纷纷怀疑,周末有空我决定再做一次留下铁证,其实是非常简单的。并约了摄影达人Leena一起来吃饭并拍下整个过程。先弄个鸡蛋番茄热热身: 好了,大菜啤酒鸭出场了,首先,准备好原料: 鸭子一整只,洗干净剁好,姜、蒜各一个切好,红辣椒和蒜头、葱花一些,视口味而定,我当然是多多益善,然后先把水烧开,把鸭子倒进去稍稍涮一下,去掉血水即可。
把锅烧热后放油,最好多放一点,然后油热后放入姜蒜和干红辣椒,接着把鸭子倒进去翻炒,这个过程是相当享受的,注意要等鸭油慢慢煎出来,而且皮发黄了,此时厨房弥漫着浓香,倒入料酒少许,接着再倒入500毫升啤酒,盖着锅盖开始焖。 等不及了,开锅看看,嗯,鸭子在大火中煎熬着翻滚,火候要控制好,久了就鸭子硬了咬不动,时间我也没看大概是8分钟左右,做菜这事不能死板,最重要是投入感情要根据变化而采取不同的方式。最主要是看锅里的汁水开始收了就倒入酱油、盐、鸡精少许、耗油、葱花,翻炒一会就OK了 怎么样,色香味俱全哪,开吃! 摄影是LeeNa完成,我负责做,不一会两人就风残云卷吃完了。1000D买来后还很少琢磨,惭愧,趁着摄影达人LeeNa在要讨教单反的基本知识,否则鸭子白给他吃了,哈哈,下面两张是大、小光圈控制的景深 ISO: 800 ISO: 800 这个是快门时间控制的运转的风扇 ISO: 400 ISO: 1600 接着拍了一下夕阳图,用大光圈拍的光线模糊,不能表现真实的景色,调控后可以 ISO: 800 ISO: 800 最后再用一句小学八股式作文结尾:啊!今天是多么快乐的一天啊! 6/14/2009 还好,相片恢复了 周末小舅子来北京,这天我带着佳能1000D带着家人们一起去了颐和园、北大。回来时把相片传输到PC,用EOS Utility已经预览到了全部图片,期间发生过一次错误,我没在意,强行断开USB后顺手就删除了相机里的全部图片,结果再看PC相片时发现只有160张,还有260张不翼而飞,偏偏丢失的全部是北大照的相片。LP开始埋怨我太大意,不应该删除相机里相片,导致现在丢失无法恢复,甚至说让小舅子明天不回去,再游玩一次北大(小舅子有北大情结)。我懊恼之余在硬盘里翻出多年未用的EasyRecovery Professional,把相机里的SD卡拔出后用读卡器插在PC上,试着恢复,结果还是挺顺利的,花了1个小时全部恢复。之后再用Finadata发现也可以恢复出来。唉,感叹,做安全的人怎么这么大意。 好了,不说这些老生常谈的话了,贴出恢复图。总结一下步骤:误删除相机里SD卡的相片后不要再照,立马用装在读卡器上插入PC,用数据恢复软件恢复出保存在PC硬盘即可。 再贴一张恢复出来的未名湖献给具有北大情结的小舅子。 5/30/2009 端午鸭子在老家端午和中秋是必吃鸭子,特别是嫩姜和玉禾秆味道是其他地方吃不到的,可惜这关键的两大原料买不到的。 5/3/2009 好久没更新好些日子没更新blog了,这段时间的注意力都放在sns之类站点,包括开心001、饭否、myspace。最近挺火的,下次找找这些站点是否有漏洞。 blog上方嵌入一段饭否的HTML代码,可同步消息,有啥用呢?场景之一就是当我独自去野外游玩时突然掉进一坑里,这个时候我手机快没电了,而且电话簿里的可联系人都关机了,我于是把地点、情形等求助信息发到饭否号码,然后自动同步到我的blog,此时有fans浏览到我的blog后发现这段救命文字,于是……呃,我得救了,所以各位fans需要经常了解我的动态,我的命就交给你们了,呜呼! |
|
|||||||||||||||||||||||||||||||||||||
|
|