CVE-2014-0160(openssl)严重漏洞及其对应

描述

openssl 1.0.1系列中,1.0.1f以前的版本在实现上存在漏洞,未正确处理Heartbeat扩展,导致攻击者可以窃取服务器端敏感数据。

对应

  1. 请立刻升级openssl到1.0.1g版以上,并重启整个系统,以保证不会遗漏某些已经启动的进程。
  2. 如果有自行编译的程序使用了openssl。当这些程序静态链接或链接了自定义的openssl时,需要重新编译。
  3. 在有问题的设备上使用过的key,需要升级私钥。
  4. openssh不受影响,openvpn受影响。

作为证明,请执行以下语句自行检查。

ldd /usr/sbin/sshd | grep ssl
ldd /usr/sbin/openvpn | grep ssl
ldd /usr/sbin/nginx | grep ssl

for i in $(ps aux | awk '{print $2}'); do echo $i; ldd /proc/$i/exe | grep ssl; done

其他

根据昨晚看到的信息,这个漏洞会泄漏服务器端的通讯数据。因此请将所有session清空,在受影响期间使用过的用户名和密码请务必在3-5天后再修改一次(具体看服务商什么时候补掉漏洞)。

参考

  1. nvd
  2. debian
  3. ubuntu
  4. openssl
  5. Is OpenSSH affected by this as well?

安全的几点快速说明

这篇文章谨献给某些特殊环境下奋斗的人士。其他人参考使用。

物理设备

物理设备上存储着相当多的个人资讯,所以所有的机密资讯要保密这是常识。

物理设备上可能拥有的机密资料:

  • 各大站点的session token。借助这些,虽然不能抢走帐号,但是可以仿冒身份,发出假消息,或者诈骗。
  • 浏览器启用了“保存密码”选项后,所有的密码都半明文存储在硬盘上。这些信息可以被用来抢走帐号。
  • 个人的文档,照片,私密视频。万一笔电丢失就够倒霉了,再变陈老师岂不更痛苦?
  • 浏览某些特别站点的记录。咳咳,大家懂。

之所以要设备加密,是因为有一种破解方法是将你的设备存储拆下来,接到独立的读写设备上,直接读取数据。无论系统密码设定多强,也无法防范。

如果是mac,有一个选项叫做全盘加密。ubuntu有home分区加密的选项。启用这两项可以有效加密你的电脑。windows也有个类似的功能叫做EFS,但是据说不少国家级单位有解密权限。

android上有加密系统的选项。但是要注意,如果启用会消耗大量电力,而且必须擦除整个设备才能解除。iphone我没用过,据一位挺熟悉的朋友说,只要设定了pin码,整个手机就会被加密。

加密只是第一步。对于经常保持开机的系统,如果能够轻易的进入系统,那么磁盘加密也形同虚设。所以,请给你的系统加上一个足够强的登录密码。

最低强度:

磁盘加密8位以上,系统登录6位以上,包含小写和数字。

推荐强度:

磁盘加密10位以上,系统登录8位以上,包含大小写和数字。

网络安全

首先,请把系统的防火墙开到最大:

基本原则是,只许出不许进。如果需要可以开放特定端口。

然后,如果在不安全的环境下使用网络,请使用vpn。这里请允许我广告一把朋友的网站云梯。一般是用来大陆翻墙的,不过要用来绕过不安全的环境也可以。

有时间有条件的朋友可以自行架设vpn服务器,这里给出linux下架设pptp vpn的方法。客户端使用方法可以参考云梯的说明。

注意加密一定要使用128位,不要使用56位。

网站访问

如果可以选择,尽量使用https。下面有一些插件,使你可以尽可能的使用https访问站点。当然,如果站点没有https则无效。

在https访问的时候,如果跳出证书是伪造的之类的警告,请千万不要确定。这是有人在man-in-middle的信号。正确的做法是使用vpn,看看问题是否消失。如果消失,上报给工程师。如果没有消失,请找可信的工程师来排查。千万不要轻易认可未经鉴定的证书(实际上不建议自行接受任何证书——除非那是你自己配出来的)。

另外,请关注证书的签署者。在我这里看到的信息如下:

  • google的证书签署者是GeoTrust
  • facebook的签署者是VeriSign
  • twitter的签署者是VeriSign

如果签署者有异,请上报工程师。这可能是有人获得了某个根证书机构的密钥来做的签署(例如CNNIC之类)。原则上这样的man-in-middle可以攻击任何网站。

携程网信用卡泄密问题

事情经过

2014年3月22日晚上6点多,乌云平台报告了携程平台支付日志泄漏问题,然后信息快速传播。晚上八点左右我就得到消息。

从描述中大致来看,应当是支付过程的各种信息都被打到了日志里面,然后日志泄漏了。

第二天,携程发表声明。简单归纳就是几点:

  1. 漏洞系调试所致。
  2. 受影响的用户为21-22日的用户,统计仅93人。
  3. 因漏洞引起损失,携程将全额赔付。

个人认为,携程的声明基本就是在推卸责任。

过程还原

漏洞细节虽然没有暴露,但是从透露出来的信息仍然可以拼凑出部分过程。

  1. 某个时间开始,携程的某个内部人员打开了线上系统的日志,用来做调试。不幸的是,日志里面包含了信用卡所有刷卡信息,而且日志可以被穷举下载。这个人是谁,什么时间开始,不知道。
  2. 22日,漏洞发现者(猪猪侠)发现了这个问题,并报告在了乌云上。
  3. 携程收到信息后,立刻关闭了调试模式。并且把系统日志拉出来看看,发现里面有一些人。于是携程就发表声明。

问题分析

在整个过程中,暴露出几个问题:

  1. 携程未必是故意记录CVV信息。但是根据携程可以让用户仅提供卡号后四位就可以完成刷卡来看,携程一定是记录某些信息的,但是未受到本次漏洞影响。
  2. 交易过程所交流的数据属于机密,到底是什么人有权限打开调试日志,又没有经过严格的访问控制?是主管级以上?还是普通员工?无论哪个级别都是严重的问题。如果是普通员工,说明携程对员工的管理不到位,权限分割控制不合理。任何恶意员工可以打开日志得到数据而主管无法察觉。如果是主管以上级别则更加糟糕。说明主管根本不懂技术,也不知道如何保护客户的安全。
  3. 时间是否仅限于21-22日?如果是的话,意味着仅仅2天就被攻击者找到了漏洞。如果是偶然的话也太快了,如果是必然的话,则代表携程内部其实还有其他问题。
  4. 两天的交易仅仅是93人?没有更多?为什么只是部分用户受影响?携程并没有披露更多细节。要么是这里仍旧隐藏着漏洞,要么是携程的危机公关不到家。

评论

为什么说携程的声明是推卸责任?

  1. 首先,对于受到影响的用户,只要能证明是携程的责任,无论携程是否发布声明,都可以打官司获得赔偿。携程的声明仅仅是表达了他必然受到的法律后果。如同驾驶员发表声明:“我喝醉后所撞伤的所有人,我将全额赔付其医疗费”一样,没有任何意义。而如果无法证明是携程的责任,携程当然不会管你。
  2. 携程是否隐瞒了更久以前服务器调试开启的事实?这并不好说。个人倾向于善意的揣测携程不会隐瞒,但是在行动上不妨恶意的揣测其实调试信息打开时间更长,受影响的人更多。
  3. 为什么只有93人受到影响,携程并没有公布。携程的事后分析,应当都是基于这个漏洞的特性“下载日志”而定的。其赔偿基线也是根据“下载日志就会有日志”而产生。但是是否有可能被擦脚印?或者内部人员打开日志然后关闭而逃过被抓?这些携程并不能回答。从问题分析2来看,这种可能并不能排除。而携程的声明并没有表示对这些情况负责(当然就算想要负责也无能为力)。
  4. 由于携程信息的不透明,其声明“只有93人受到影响,其他用户安全不受影响”,换个说法就是,“不接受任何赔偿请求,除非你们有足够证据”。问题是用户怎么可能有证据?证据都在携程的服务器上和拿到信息者手里。当有用户的信用卡被盗刷,如何确认是自己的责任还是携程的责任?

基于上述几点,我认为携程的声明是在推卸责任。

建议

如果你是93人之一,当然,携程应该已经联系你换卡了。

如果你不是93人之一,根据上文分析,携程是不会理你的。基于携程并没有透露更多的信息,也没有第三方机构佐证其说法的事实。你需要自行考量信用卡信息泄漏的风险。因此,我对所有在三年以内在携程使用过信用卡的所有用户的建议是,立刻用各种方法冻结信用卡或额度,并尽快换卡

我对所有人将来的建议是,远离携程直到其展现出对用户隐私和安全足够的尊重,或者关门。

PS,你可以用下面几种方法冻结信用卡:

  1. 打电话给发卡行,要求冻结。发卡行核对一些基本信息后就会帮你冻结。
  2. 使用网银将额度改为1元。根据网友反馈,建行的额度是千元为单位设定的,建议建行的用户们尽快弃卡。

信用卡的固有弱点

信用卡消费的几个要素是,卡号,CVV号,还有有效期。如果是线下消费,需要核对签名(理论上如此)。如果有设定密码,需要核对密码。

密码的问题是,如果设定了密码,一旦信用卡被盗刷,而密码一次正确,将被视为用户责任。而且很多发卡行的跨境消费是设定了密码但是没有密码也能成功的。因此信用卡的建议是不打开密码。

在网络使用中,这里有个很严重的不便——卡号,CVV,有效期,都是发行时即固定,不可更换。这导致一旦你将这些信息交给对方,你的安全就全由对方保护,发卡行无法帮你做任何事情。

正常来说,应当使用密码乃至在信用卡上附上电子token来加强安全性需求。这样的话,token信息无法保存,密码可以修改。当出现携程这类问题时(或者更普遍的,当碰到有恶意的商家时),可以通过修改密码来解决问题,不需要换卡。

一个小故事——我和携程打交到的经历,还有我为什么幸运的逃过一劫

我在某年,使用携程订机票的时候,对方业务员让我报出身份证号。我当时就一阵错愕——难道身份证号不是应当使用手机键盘输入么?

两者的区别在于,手机键盘输入,信息是直接输入到VI系统的电脑中,业务员只能看到尾号。而如果是业务员输入,那么他就有我的所有信息——从身份证号到信用卡号。也许我可以相信携程,但是我如何相信业务员?出了问题,我如何证明?

所以我就向携程的客户经理投诉了这个问题。具体经历在网络安全——你需要知道的东西里面已经描述了。这里面甚至我质疑了携程保存信用卡的安全性,几乎和今天的问题类似。

结果没多久,我打给携程的时候,丫的业务员和我说,如果你信不过我,咱们可以走这套系统。

我了个大去,这种系统还允许旁路绕过?那有个毛线的意义?

从此(12年年中吧)我再也没有用过携程的业务——用也是让公司同事帮我用。因此,当去年(13年某个时候)我的老卡到期,我就换用了新卡。新卡还没有在携程上用过。所以本次问题我一点事都没有。

台湾反服贸占领立法院中,网络干了点什么

短文,直接说吧。今天在facebook上看到,有帮台湾朋友组装了两台大功率的基台,把信号直接打到立法院里面。我在图片上看到了一堆天线,不少Cisco的设备,还有基台车。好像还有朋友拿着易拉罐和炒菜锅不知道是帮忙还是帮倒忙。

简单点说,基本架构就是外面架一个基台(推测使用5G频率),用定向天线和里面的client连通,出口用4G和基台车连接。然后里面的client走有线网和多个AP连接起来,每个AP分散部署,分享基台到client之间的链路。

目前看到的效果,信号已经打到立法院里面了。连警察人墙都可以用网——只是他们没有密码而已。

——结果今天早上发现立法院内其实有网,而且网速快过4G。所以又反过来架设——内部多个AP分享出去后,向外面打信号,外面又架设多个AP把信号分享给会场的上万人群。

上万?想想都要疯啊。

03-21T14:42: 根据看到的最新消息。3G和WiMax都爆满,而且整个立法院内信号密度过高。因此退回最原始的方案——拉一根超长网线解决。啊啊,这不是白折腾了么?

03-23T12:00: 在会场架网络的朋友,在google plus上分享了细节。细节在这里:

https://plus.google.com/+DAVIDLIFUHUANG/posts/WKP2qTDJypA

摘抄如下:

我來解釋一下我在立法院內部遇到的網路問題, 同時也說明這是我看到的問題, 或許 rex 有不一樣的見解, 那就再請 rex 另外闢文說明,

我剛開始進去的時候, 我原來以為 g0v 裡面有人, 不過實際上應該是我搞錯意思, 所以我就傻傻的進去了, 不過我個人是覺得, 我們應該要維持裡外訊息的暢通跟正確性, 所以我應該要做一點事情, 畢竟我只會弄網路, 所以我就真的去想辦法弄網路了 XD

  1. 人很多, 3G 全部癱瘓, 所以早就該換 LTE 了, 對吧 XD

  2. 3G 全部癱瘓, 所以大家都用 WIMAX, 這次 WIMAX 的表現還不錯, 讓我覺得以後來台北參加活動還是應該花點小錢租 WIMAX, 畢竟正確的訊息傳遞可以避免很多不必要的麻煩發生, 同時沒有人用的服務遇到人多的時候就是好服務, 因為它沒有人用, 但是目前沒有 5G 無線網路的 WIMAX 攜帶型無線網路熱點, 這是一個很嚴重的問題 XD

  3. WIMAX 多, 大家都開無線網路熱點來分享 WIMAX 的服務, 所以造成了無線網路封包的的碎片化

  4. 立法院本來就有無線網路系統, 在一個會議室裡面有一堆一樣的 ESSID, 同時又分散在不同的頻道上, 然後這些頻道上面又有很多一樣的 ESSID 但是分散在不同的 AP 上面, 這樣會發生什麼事情呢? 就是無線網路使用效率的降低, 因為沒有加密, 又是同樣的 ESSID, 也沒有做子網路的切割, 當無線網路用戶端大量增加的時候, 同樣的無線網路 ESSID 分散在不同頻道跟不同 AP 的狀態下, 廣播封包就亂竄, 無線網路頻道的使用效率就非常差, 因為封包破碎產生的重送率大大提昇

  5. 在 2.4G 的可用頻道少, 現場重複的 ESSID 又太多, 加上有限空間裡面又有大量的 WIMAX 熱點, 最後就導致無線網路可用性很低的問題, 在那個環境中, 你的無線網路可以用的狀況, 你在熱點半徑一公尺左右的範圍內, 如果超過這個範圍又發生直線路徑上面有阻礙物發生繞射的問題的話, 你的無線網路就變得很慢很慢

  6. 實際上發生的狀況就是我們在靠近青島東路 2F 的媒體席那邊放無線基地台, 但是我在議事廳前面的位置要用 x220 連線的時候, 會發生 ESSID 看得到, 但是當我點下連線按鈕的時候, 那個 ESSID 就不見了, 然後 windows 7 就告訴你, 我沒有辦法連接這個網路

  7. 最後的解決方式就是我們用一條很長的網路線, 從基地台直接拉到前面活動執行單位的位置, 讓訊息發布人在連接網路服務的時候使用以太網路連線, 這樣就可以避免無線網路密度太高產生的干擾問題

  8. 那要怎麼樣解決無線網路密度太高造成的干擾問題, 解決方式只有大量的小功率無線網路 AP 加上不重複的 ESSID 名稱跟子網路切割, 缺點是無線網路連線沒有辦法漫遊, 不過說真的, 我們現在也不建議一邊走路一邊滑手機, 如果有需要漫遊的服務, 再建立另外一個支援無線網路漫遊的 SSID 專門解決漫遊這件事情, 這樣我才覺得比較合理,

  9. 當沒有漫遊的狀態下, 你到同一個建築物的另外一個小空間的時候, 也就是再重新連接你可用的無線網路 ESSID 就好, 不過目前你看得到的無線網路服務都是以訊號的涵蓋率為考量, 所以就很難解決這樣的問題, 這需要時間, 就像從 AMPS, GSM, UMTS, LTE 這樣的過程一樣, 速度越來越快, 但是手機發射功率越來越小

  10. 無線服務設備的連接效果取決於訊號的距離跟功率, 還有同樣的頻道裡, 使用設備的數量, 當你要服務相當多的設備的時候, 功率要變小, 基站密度要拉高, 還要用不同的方向來提高可用頻道的重複率

  11. 我不敢說我說的是絕對, 但是我有實際上試著解決這樣的問題過, 所以應該還有一些可信度, 如果有任何問題歡迎下面留言討論, 如果有需要規劃服務的話也可以跟我連絡, 謝謝

台湾服贸协议问题

这篇东西是简单介绍台湾服贸问题的前世今生的文。其实我早就在关注这个问题,只是作为一个大陆人,这个问题很不合适。毕竟服贸这东西让台湾人很不爽。换言之,某种程度上我是获利一方。作为获利方还指手画脚说三道四未免有点“得了便宜还买乖”的嫌疑。不过近日,服贸问题已经从一个单纯的贸易协商变为政治问题。这里面很多东西非常值得我们学习。

什么是服贸协议

简单来说,就是大陆和台湾的贸易协定。从这个角度来说,这个东西不但没问题,而且必须。出问题的是内容和通过内容的方法。

台湾政府宣称服贸可以提振台湾经济,但是民众始终有疑虑:

  • 大陆人工(薪酬)比台湾便宜,加大开放是否会影响就业
  • 开放不对等,台湾太多领域对大陆开放,而大陆很多领域不对台开放,其中甚至包括影响国家安全的重要领域(例如通讯和传媒)
  • 大陆食品安全问题,台湾的检验检疫是否能保持独立性

老实说,从大陆人眼光看,很多问题颇有点——不知道怎么说的味道。台湾食品安全问题也不轻,而且从就业工资来看,台湾平均起薪大概和上海持平。随着工作年限上涨,反而是上海这里工资更高(至少在IT业)。如果每一条都照着对台湾有利的方向改,对服贸不爽的就是我了。基本一点,协议是双方的东西,即使我们看起来这个协议再合理,对对方再有好处,如果对方本身不同意,就不应当且也无法签署。协议本身,必然是双方讨论,我这里退让一点换取你哪里退让一点,最终得到双方认可——的这么个过程。

参考可以看以下几条:

问题在哪里

问题在于通过的流程。

台湾服贸对不同人群造成的影响不同。对于老板阶级来说,员工工资降低,市场扩大,自然是好到不能再好的好事。对于高阶白领来说,能到大陆打工也不坏。但是对于中低层员工而言,就要面对工资降低,服务品质变差等等问题。因此不同人群对服贸的支持和反对是不一致的。而台湾不是大陆,通过这种东西理论上是要通过内部讨论,人民授权的。问题是服贸这么一大包,这条这帮人不同意,那条那帮人不同意。每个人一个说法,但是总之就是反对你。这样服贸就始终无法通过,政府非常头大。

因此要通过服贸,比较容易的办法就是逐步协议,每次只谈一部分,对少部分人产生不利影响而对多数产生好处。逐步通过逐步调整,减少影响范围,降低抗议人群比例。但是台湾政府不但拿着一大包协议来签,而且想大手笔的一笔就签下去,完全没管民众的反应,也不管是否合规。等民众抗议了,再强行闯关。

呃,是不是来大陆考察多了,一不小心以为自己还在过组织生活呢?

最近怎么回事

本来去年服贸都要签了,结果被人踢爆,叫停回去重新逐条审查,而且要开公听会(听证会)。大陆的同志们想也知道,听证会么,涨价就对了。所以党国官员干脆一周开八场,我讲你听就好,乖乖不要多问。结果引起不满,后面被人排成了两周一场——依然是我讲你听(非常熟悉吧)。党国官员还很不爽,指责这是拖延时间。

然后拖到最后一场,干脆一合本子。好了,三个月已到,审查视为通过。

咳咳,要这么容易,不知道能不能拜托他通过一下大陆人获得“台湾”国籍的法规。只要迁一成大陆人的户籍过去,公投回归大陆就没疑虑了。

参考可以看这里

所以呢

所以这帮不爽的人就跑去把立法院给“占领”了。

啊然后呢

我也不知道。不过搞成这样,已经完全不是服贸的问题了。服贸本身没什么太大问题,逐条审议逐步通过也可以,阻力大也不会比现在更糟吧。现在已经是手法本身激起的不满比服贸本身还大了,作为政治(尤其是还算民主的地区的政治),这么搞是很不明智的。

从我关注的台湾各大事件的结果来看,往往是雷声大雨点小。运动的时候声势沸反,但是最终结果下来往往是差强人意。但是好在运动是经常的。民众往往是这里一点,那里一点,能够挡住一些太过荒唐的事情。其实这也是民主社会协商的必然结果,指望一次运动就能把所有的问题一并解决的想法,和一次通过整包服贸一样不靠谱。