安全

保护你的网络隐私 (1)

几个月前,在sina微博上看到一个师妹用手机新发了个微博,其中包含了地址定位信息,不过,那是个私人住址。于是我告诉她,最好尽快把那个微博删掉,因为根据那个微博附带的定位信息,可以查出她的详细的住址信息(包括门牌号码)。

 

今年四、五月份开始从sina微博转战Facebook。昨天在手机上面用Facebook的Messenger的时候,留心注意了一下它的地址定位功能,发现对个人而言它可能存在着一个极大的安全隐患,尤其糟糕的是:这个功能默认是打开的。
 
简单的举个例子而言,我和一位朋友用手机在Facebook Messenger上互相聊了两句,因为他的Facebook Messenger地址定位功能是打开的,因此,我可以非常详细地知道他的当前地址,如上图所示。
 
再举一个例子。有一次参加Facebook一个饭局的群聊,里面绝大多数人我都不认识(见左图)。但是,只要群里任何一个人在用手机、且其地址定位功能是打开的,我都可以非常详细地知道他们的当前地址。从右边附图可以看到,我至少可以知道群里两位朋友当时的精确地址。在群聊中暴露个人地址的威胁性比一对一聊天时更大,因为群里的好些人你是不知根不知底的。
 
最后一个例子:如果你跟我一样,是用手机而且允许几乎任何人(而非仅仅朋友)直接在Facebook上给你发消息的话,那么,我怀疑任何人都有可能可以通过和你在Facebook聊天而获取你的当前地址(如果你用手机聊天而且地址定位功能没有关闭的话)……(声明:这仅仅是一个理论上的推测,但我没有实际测试过)
 
为什么轻易让人知道你的地址是很危险的?有很多原因:小偷看到你在Facebook上说你外出度假了就可能上门偷窃、无聊人知道你的地址可能会去骚扰你……等等等等。更有甚者,这可能导致个人身份盗窃、导致个人银行资料被篡改、导致个人财产被转移等。对于偷窃他人信息的人而言,只要愿意去费心,有时候把一个人的完整信息勾画出来其实比很多人想象的要容易得多。
 
所以,千万别相信网络是安全的、别相信别人不知道你。有时候,只要知道你很有限的信息,就有可能把你的前世今生翻个底朝天(参见以前的旧作《举例说明如何在网上挖掘一个人的信息》、《在网上搜索信息 (3) —— 搜索个人信息实战举例》),更别提说知道你的住址了。
 
所以,对于大多数朋友、尤其是网络菜鸟型的朋友,我建议尽早完全关闭Facebook Messenger的地址定位功能,如果你用Facebook的话。

类别:

OWASP"2010十大安全隐患"

周五的午后,看到朋友的RSS种子上转了一篇别人的网志《安全漏洞的原因》 (by fs_knownsec,由于内容不算我特别愿意推荐的,因此也就不链接到原文了),想到了OWASP(开放式web应用程序安全项目)这个项目,进而想把它的最新进展在网志上共享一下。

顾名思义,OWASP(开放式web应用程序安全项目)关注web应用程序的安全。OWASP这个项目最有名的,也许就是它的“十大安全隐患列表”。这个列表不但总结了web应用程序最可能、最常见、最危险的十大安全隐患,还包括了如何消除这些隐患的建议。(另外,OWASP还有一些辅助项目和指南来帮助IT公司和开发团队来规范应用程序开发流程和测试流程,提高web产品的安全性。)这个“十大”差不多每隔三年更新一次,目前的最新版是《Top 10 2007》(2007年十大web安全隐患列表,该链接指向的是英文版的)。ZDNET上有一系列中文文章《OWASP 10要素增强Web应用程序安全》(一共七篇),对2007年的这个十大有详细的介绍,有兴趣的同学建议去阅读一下。

“OWASP Top 10 2010”大概将在2010年第一季度发布,目前处于发布前最后的征询意见(RC, request for comments)的阶段。本文将对“OWASP Top 10 2010”RC版本做一个简要的介绍。以下凡是提到“OWASP Top 10 2010”之处均指其RC版本。

和“Top 10 2007”相比,“top 10 2010”有如下主要改动:

  • 明确指出,“十大”指的是十大安全隐患(top 10 risks),而非十大最常见的缺陷或薄弱环节(not top 10 most common weaknesses)。
  • 修改了用于评估安全隐患的排名规则,而非仅仅依赖于安全隐患所关联的缺陷的流行程度和范围。这一点会影响新的“十大”的排名次序。
  • 在最新版的“十大”中,用两个新的安全隐患替代两个旧的安全隐患:
    • 添加新的第6大安全隐患:错误的安全配置 (Security Misconfiguration)。这曾经是“Top 10 2004”当中的第10大安全隐患,后来因为觉得这不属于软件问题而从“Top 10 2007”当中移除了。但是,从应用程序使用、配置方面的安全隐患程度和常见性来讲,足以重新将这条列入十大。
    • 添加新的第8大安全隐患: 未经验证的网址重定向 (Unvalidated Redirects and Forwards)。有证据表明有关于此的安全问题已经相当普遍,并且可能造成明显的危害。
    • 删除旧的第3大安全隐患: 不安全的远程文件引用和执行 (Malicious File Execution。注:此非意译)。这依然是一个普遍存在的严重的安全问题。不过,它在2007年前后的空前的普遍流行相当程度上是因为当时很多PHP 程序存在这个安全隐患。目前,PHP的默认设置中已经对此做了更多的安全方面的弥补和限制,使得这个安全隐患不再像过去那么普遍。
    • 删除旧的第6大安全隐患: 信息泄露和不恰当的错误处理 (Information Leakage and Improper Error Handling)。这个问题相当流行,不过危害程度一般比较有限。

以下是最新的OWASP Top 10 2010 (RC版本,可以从这里下载到官方英文PDF文档,更多官方英文信息可以参考这里):

  • A1 – 注入 (Injection)
  • A2 – 跨站脚本 (Cross Site Scripting (XSS))
  • A3 – 无效的验证和会话管理 (Broken Authentication and Session Management)
  • A4 – 对资源不安全的直接引用 (Insecure Direct Object References)
  • A5 – 跨站伪造请求 (Cross Site Request Forgery (CSRF))
  • A6 – 错误的安全配置 (Security Misconfiguration) (新加入)
  • A7 – 失败的网址访问权限限制 (Failure to Restrict URL Access)
  • A8 – 未经验证的网址重定向 (Unvalidated Redirects and Forwards) (新加入)
  • A9 – 不安全的密码存储 (Insecure Cryptographic Storage)
  • A10 – 薄弱的传输层保护 (Insufficient Transport Layer Protection)

标签:

类别:

谈死亡 (1)

在北美过去的四年生活中,听闻过多起死亡事故,但只有两件让我印象最深。

* miumiubebe

miumiubebe(蜗牛狂奔)是美国一个中国留学生在北美华人论坛(可能是未名空间,mitbbs)的ID。已婚,挺漂亮,有一个可爱的很小的女儿,应该来讲三口之家是挺幸福的。但是,大约在3年前,她在其所居住的城市市中心某广场(或花园)与朋友溜旱冰时不慎摔倒,头部着地,不治身亡。后来其友人在网上为她开设了一个个人纪念性质的网站:miumiubebe.net。我也曾在2004年7月发过一篇文字,提到其个人纪念网站上有一首让我听了后很难过的歌曲《别哭,我最爱的人》。

我相信miumiubebe的悲剧肯定给很多北美华人很多思考。对我而言,我在惋惜的同时,也从中领会到要特别注意人身安全。

比如说,我刚来拉斯维加斯的时候,由于医疗保险还没有到位,因此我做好些事情都比较小心。在4月2日买车之前,我外出有两个选择:可以坐公共汽车,也可以选择骑自行车。在北美,骑自行车有两点是需要注意的:一是合法性,二是安全性。当时我从网上下载了拉斯维加斯市区自行车线路图,并且还曾利用租车期间开车沿相关道路观察了一遍,得出两点结论:1. 在某些道路上骑自行车是合法的,但不安全;2. 在某些道路上需要在人行道上骑车,虽然安全,但不合法。我的最终决定就是:在我买车之前,不骑自行车。所以后来好一段时间我在拉斯维加斯的交通都是靠坐公共汽车或租车,一直持续到自己买车。

再比如说,我在前两个星期的一篇文字《一件琐事——爬山》中提到爬山要准备登山棍(当然还提到其他一些登山设备)。其实,我以前在国内爬山从来没用过专门的登山棍,都是顺手拿个树枝解决问题。对于大多数中国人而言,也许觉得爬山专门买个登山棍多此一举。但我觉得从安全的角度考虑,以后专门买双登山棍还是有必要的。

* James Kim

James Kim是CNET网站的一韩裔IT新潮产品编辑。2006年感恩节前后其与家人在美国西北部俄勒冈州(Oregen)休假归途时迷路于群山中。当时正值11月,大雪弥漫,气候极低,通讯断绝。在山中被困数日后,James离开汽车、离开妻子和两个幼女去寻找救援,在衣衫单薄、饥饿、疲惫、严寒下在山中跋涉逾16英里(25.7公里),最后在试图趟过山谷中一条小河时因为精疲力竭、体温过低而死在河中间。其妻子女儿后获救。

我曾在网上详细阅读了多篇关于他的报道,以及相关地形及线路。James Kim的行为让很多美国人特别佩服,也让我非常佩服,因为他是在极度困难下依靠坚强的信念跋涉了这常人难以完成的16英里。

同时,人们也在反思为什么这个悲剧会发生,以及如何避免这种悲剧再次发生。有好事者把已经被封闭的道路的路障打开(并导致James一家误入歧途)是一个原因,但也有人提到另外一个原因:(长途跋涉时)James没有装备GPS(全球定位系统),而James本人是一IT产品编辑。

这也是为什么我曾把GPS列为自己2006年最想要的十件东西之一的原因之一,也是为什么我在5月22日下班后去BestBuy(百思买)买了一个我所看中的GPS(TOMTOM GO 910)的原因之一:因为我觉得人身安全是很重要的一件事情。

标签:

类别:

写一本梦想中的书

我以前在国内做程序员的时候,知道好的中文技术资料比较匮乏,也知道很多技术人员不喜欢阅读英文的技术资料。但是技术的进一步提高要求程序员必须直接阅读英文资料才行,因为英文资料往往更权威、更全面。我常常阅读到一些国内程序员因为个人主观原因通常无法接触到的精彩的技术文章,也常常为这些技术资料在中文世界被埋没感到惋惜。

前几天调试一份叫做GeSHi的源代码开放的语法加亮软件,对PHP中的mbstring模块(多字节处理模块)有一些了解和研究。在网上查了一下,目前还没有专门介绍PHP多字节处理的网文,因此有心思想写一下这方面的文章。但并没有动笔,因为觉得花费的时间对自己来讲不值得。一则写一份严谨的没有bug的文章不是三两下就能完成的,二则写这篇文章所得到的成就感不足。

昨天上网闲逛的时候,拜访了一个专门研究PHP安全的网站,读了2篇比较精彩的文章,感觉比较激动。很想把这样精彩的文章介绍到中文世界中。

于是忽然想到,为什么我不把我对PHP的了解好好整理整理,写一本有价值的PHP进阶编程的书呢?这本书应该综合了好些PHP最新的、最前沿的、最成熟的技术,应该让PHP入门者读了很有收获,也应该让PHP专业人士读了之后从某些章节得到启发。总之,这是一本与时俱进、紧密联系PHP最新发展、让PHP程序员在技术上进一步提高并在视野上进一步拓展的书籍。

写这样的一本书,涉及到的一点就是要从网上和别人的书籍中摘取相当多的资源做一些重新编写的工作,涉及到版权方面的问题。但我写这本技术书跟国内普遍流行的翻译技术书的做法不一样。国内好些翻译计算机书籍出版者的做法就是直接拿来一本外文畅销计算技术,翻译一遍后冠以中文翻译者的名字就发表了,作者(翻译者)也许都不了解他所翻译的书籍的技术。而我自己本身就是数年的PHP程序员,对于这个领域有着比很多PHP程序员更深入一点的研究,因此我会根据自己的理解、经验更好地组织、编写书籍内容。我并不会不负责任地简单地翻译一本自己都不知所然的外文书籍交付给读者,我会通过不同渠道搜集、研究相关资料再整理成书籍内容。总之,相对于大多数其它PHP中文书籍,我写的这本书应该是一本更有价值的技术书。

以上是我的梦想,梦想总是跟现实有差距的,因此目前为止上文提到的“我写的这本书”都还是空头支票。首要解决的就是版权问题。

今天下午去见老板的时候,顺便问了他一个问题,“如果我要摘录网上的一段文字作为我的文章的内容,我该怎么做?”他明确地告诉我,“你必须从作者处得到授权,并注明出处。不过你也可以技巧化地改写他文章的内容。”我考虑了一下,首先,我不能为了写一本书而违反版权;其次,如果我从每个作者处得到授权并注明出处,又太麻烦;最后,这样一来,我要更多的时间,而我好像没有那么多时间。因此,暂时放弃了写这本我梦想中的书的念头。

不过老板的话也给我敲了一个警钟,刚才把本站“我的文章”和“我的感想”中的相关内容检查了一遍,关闭了所有可能涉及到版权问题的内容,并且将在“常见问题”增加版权解释。

本站将不再讨论涉及版权侵犯的话题,我也将好好研究有关版权问题,(尽量)不在社会交往中出现公开侵犯版权的情况。

类别:

无标题 (0204)

理论上来,局域网内的任何一台电脑都可以监测局域网内部其他电脑的上网信息,并且有可能进入其他电脑并浏览里面的文件信息。局域网内的任何一台电脑都是一个危险点。在我所住的房子中,共有四台电脑联网。不过我的电脑没有联上房子里的局域网,而是直接通过一个独立IP连上Internet的。因此对于其他roommate来讲,我的电脑对房子内的其他电脑构不成危险。

新买的电脑有无线网卡。刚买来的时候试用了一下,发现住的房子周围居然有3到5个无线局域网,其中一个的安全保护还非常脆弱。因为不想无线网卡影响我的有线网卡正常工作,我一直是把这个无线网卡禁用的。

今天(指3月1日)中午起床后,百无聊赖,打算下几个游戏软件来玩玩,例如三角洲部队、极品飞车等等。但是下载速度太慢,找朋友借盘也很麻烦,忽然想起来那几个无线局域网。我知道其中有一个局域网没有安全密码,我很有可能能够进入这个局域网并浏览局域网内电脑上的相关文件。于是我就考虑是否扫描一遍那个局域网,看看有没有什么游戏,免得我要下载很久下载(实际上到现在我持续下载了差不多12个小时,下载最快的一个游戏也才下载了2/3)。又想了一下,算了,不要这样做。做一次,就犯一次错误,不好。

你不能保证以前没有犯过错误,但是你可以做到以后尽量不犯错误,少犯错误。

类别: