Security, Tech @ 11 December 2006, “1 Comment”

在二十七楼写blog的Cathayan向流氓投降了一次,跟Royal几天前一样,使用多年的Windows终于重新装了。

面对病毒,恶意和流氓软件的猖獗和泛滥,除了使用防病毒软件,恶意软件清楚工具,和不得已的重装等手段之外,似乎大部分(没有调查统计过,只是个人有限的观察和猜测)用户都忽略了或者不知道最有效的也是第一道防线:使用受限的帐号使用电脑。

每个程序都有一定的权限,能做什么,不能做什么。对于大部分桌面程序,权限是由运行它的用户帐号决定的,如果用户能够安装软件,修改注册表,那么被他运行的程序也可以,如果用户用有管理员权限的帐号,那么上网或者收邮件感染到的病毒多半就能干任何想干的事情。

所以,第一道防线就是使用没有管理员权限的帐号,使用满足做大部分工作所需要的最小权限,即Principle of least privilege

需要使用高级权限的次数和时间相对平时使用电脑来说小很多,每次需要的时候再切换到高级用户或者管理员的步骤也不复杂,多几步的代价完全值得,也是应该的。

公司里几个星期前开始这么实施,所有同事的电脑帐号都是普通用户,再加上杀毒软件和SpyBot,到现在似乎还没有人投诉不方便或者出现被病毒或者流氓软件骚扰的报告。

Security, Tech, Web @ 12 October 2006, “3 Comments”

几天前,车东提到了雅虎中国发布的Y!pingme服务

什么是Pingme呢?原本想抄一下它们首页的文本,结果发现介绍文字居然是一大块GIF图片,*?^%$#@?!,disable掉图片,居然没有ALT的描述(建议网站开发人员参考W3C的Web Content Accessibility Guildinestext-equivalent一节)。那就抄车东写的解释吧(让我们赞美一下“代码重用”:p):

什么是PingMe呢? 就是一个web界面的雅虎通留言簿,没有注册过雅虎帐号的用户只要点击网站上的PingMe图标call me via Yahoo! Messenger就可以直接与你聊天了。过几天,你的雅虎通上忽然跳出一个:webchat####用户,那就是来自网站的用户留言了。

恩,就酱紫,简单明了。

让我感到好奇的是那个Pingme的图标和链接在网页上的代码,于是view source了一下车东的页面,最主要的代码是这样的:

< a xhref="http://cn.pingme.messenger.yahoo.com/webchat/ajax_webchat.php ?yid=[雅虎通ID]&sig=[40位ASCII字符]"

就是说pingme的URL带两个参数,一个是yid,就是用户的yahoo ID,一个是sig,长度为40的ascii字符串,估计是sha1哈希值。

咳,不知道是因为做过两年电信的SP呢,还是因为这方面比较paranoid一点,看到这段HTML,我立刻就想到:假设有个网页爬虫,爬一遍陶宝和雅虎中国的社区站点页面,就能收集到一大堆yahoo ID和pingme的URL,而且能够知道这些用户是

  1. 是雅虎通的活跃用户;
  2. 有自己的网站/网页 ;
  3. 使用pingme服务;
  4. 多半是淘宝店主(这可以根据页面URL和页面内相关链接或者关键字发现吧);
  5. 如果是淘宝店主,稍微分析一下页面,应该能发现她/他卖的是什么产品吧(谁实证一下是否可以?;));

就可以对他们进行非常有针对性的SPAM营销了。

稍等一下,做到这点的前提条件之一是相对于yid的那个sig必需是固定不变的,恩,也许这个URL是动态生成的?看输出到浏览器的页面代码是不行的,那就自己申请一个Pingme服务看看 …… 哈,还真是固定的,申请页面的第二步就直接给出了HTML代码,跟上面的一样(除了是我自己的yid和一个不同的sig值)。那么,上述的SPAM计划应该是可行的了。

给Pingme团队一个建议:提供用户javascript代码,Javascript在页面装载后到服务器获取一个有时效的sig值,再返回这段HTML代码,这样,就算网页爬虫拿到了今天的yid和sig组合,但是过一天或者过半小时就失效了。

当然,这么做可能会引起比较大的改动和其他问题,比如对服务器压力会增加,怎么处理这些链接在web cache上的更新,怎么处理Pingme主人正在进行的聊天,保证合理合法的聊天不会被中断等等。

当然的当然,我这是站着说话不腰疼……

说到最后,这是我的Y!Pingme :-)

发送雅虎通信息给我吧