Shuhai Shen

You may find more about me @ http://leonax.net/about/

052012
 

今天一早,刘谦在微博上大呼“恐怖”,仔细一看,原来是他的密码被泄露,被人恶意地发了微博。

事件的发布者游侠安全网表示,这次的攻击并不针对刘谦本人,而是有一个漏洞,可以使坏人窃取到所有新浪用户的密码。攻击的原理是通过新浪爱问的页面中的SQL注入漏洞来完成,理论上可以获取所有新浪爱问用户的密码,由于新浪旗下的服务共享账号,所以新浪微博的用户也会受到牵连。

新浪爱问随即发表微博:由于新浪爱问存在系统漏洞,可能导致约30万登录过爱问的新浪帐号存在被盗号风险,我们已紧急修复此漏洞。这批帐号已被保护,需修改密码后才能使用。由此给用户带来的不便,我们深表歉意。近期账号安全问题突出,我们再次提醒广大用户注意账号安全。

由此,我们可以得知,新浪内部也是使用明文保存密码的。如果你的微博被盗了,不必感到奇怪,明文存储的谁都能看到……

接下来说说SQL注入(SQL Injection),这是一个什么样的攻击方式呢?在网站设计中,查询关系型数据库一般会使用SQL语言,查询语句一般是(继续拿刘谦同学作例子):

Select 用户信息 From 数据库 Where 用户名=’刘谦‘ And 密码=’刘谦的密码’

表示从数据库中查找用户名是刘谦并且密码是刘谦的密码的用户,如果存在这样的用户,就输出他的信息。用户名和密码都是用户输入的。看上去没什么大问题,但是由于编程语言层面的一些缺陷,使坏人有了可乘之机。比方说,如果有人故意把用户名写成刘谦‘ Or ’1′=’1,这样整句查询就变成了:

Select 用户信息 From 数据库 Where 用户名=’刘谦‘ Or ’1′=’1‘ And 密码=’刘谦的密码’

这样的话,由于’Or’的优先级较低,后面半句语句可视为不起作用,然后这个查询就等价于:

Select 用户信息 From 数据库 Where 用户名=’刘谦

其意义就是从数据库中查找用户名是刘谦的用户,这样就必然可以查找出刘谦同学的资料了,包括密码。当然在实践中,对SQL语句的构造方法要复杂得多,这里只是举一个例子。

SQL注入攻击在10年前相当的流行,当时国内的互联网刚刚起步,大家对相关技术都不是特别了解,于是大大小小的网站多少都存在SQL注入的问题。不过发展了这么多年,新浪依然存在这么低级的问题,实在是不敢恭维。更可恨的是,他家的密码也是明文存储的。就在前几天,新浪还信誓旦旦地说自家的密码保存工作做得很好……

022012
 

Amazon的EC2中,默认是不允许使用用户名和密码直接连接Instance的,而是通过AWS (Amazon Web Service)提供的证书。在第一次使用EC2的时候,AWS会要求你创建一个证书并下载,证书是一个.pem文件。在Linux上可以直接使用SSH来连接,比如:

1
ssh -i 证书.pem ec2-user@Instance的IP地址

在Windows中,可以使用Putty工具来进行SSH连接,只不过Putty不能直接使用的.pem格式的证书,需要转换成.ppk才可以。这时就需要使用PuttyGen工具了(在同一个页面就有下载):

1. 打开PuttyGen工具

2. 点击Load加载.pem证书

3. 点击Save private key来保存.ppk证书

新生成的证书就可以在Putty里使用了。

大致的使用方法是在Putty的设置Connection->SSH->Auth里添加.ppk证书,如下图:

然后就可以使用Putty来连接EC2的Instance了,默认用户名是ec2-user。

012012
 

Amazon EC2提供了一年免费试用,Micro Instance,配置是613M内存,最多2核的CPU,和每月15G的流量。搭一个VPN服务器绰绰有余了。

操作系统我选的是Amazon Linux,感觉Amazon的定制版更高效,尽管它可能没有Ubuntu那么强大。

安装过程如下:

1. 安装ppp:

1
yum install ppp

2. 下载并安装pptpd:

1
2
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-2.el6.i686.rpm
rpm -Uhv pptpd-1.3.4-2.el6.i686.rpm

3. 修改/etc/ppp/options.pptpd 文件中添加DNS服务器:

1
2
ms-dsn 8.8.8.8
ms-dns 8.8.4.4

以上2个是Google提供的免费DNS

4. 在/etc/ppp/chap-secrets文件中添加VPN用户,格式为“用户名 服务器 密码 IP地址”:

1
vpnuser pptpd myVPN$99 *

5. 然后需要打开IP转发(IP Forward)功能,在 /etc/sysctl.conf 文件中修改:

1
net.ipv4.ip_forward = 1

6. 然后保存设置:

1
sysctl -p

7. 在IP Tables中开启IP伪装(IP Masquerade):

1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

如果你需要这个设置在重启之后依然有效,则需要把这一行添加到/etc/rc.local的末尾。

8. 然后把pptpd设置成自动运行的,重启一下就OK啦……

1
2
chkconfig pptpd on
init 6

9. 最后别忘记在EC2的管理界面(Management Console)中,打开TCP的1723端口,这是pptpd的默认连接端口。

10. 大功告成。在Windows中添加一个PPTP类型的VPN玩玩吧……

十二 312011
 

剧情还可以,只不过据说收视率不行,第二季上映的可能性不大……

大概的剧情是,2149年的时候,人类的科技已经对环境造成了严重的破坏,到了无法继续生存的地步。这个时候,他们发现了一种方法,可以穿越到另一个平行宇宙中,新的世界的时间是公元前XXX年,那时候恐龙还没有灭绝……

看标题以为这个剧走的是科幻路线,看了几集之后发现还真有点《X档案》的味道,不过随着剧情的发展,整个剧逐渐地转变成了伦理片……

新的世界中的资源非常丰富,2149的领导者们也没想着建立一个新的社会,而是在研究怎么样把新的世界中丰富的资源转移回2149年,于是一场战争就开始了……第一季的末尾,2149年的科学家打通了反向道路,正准备开始大面积开采的时候,通道却被新的世界的军队炸毁了……

我还想知道剧情接下去要怎么发展的时候,得到的结果居然是不拍了@@,太杯具了……

十二 302011
 

最近,著名的Anonymous组织给索尼发了一封恐吓信,以警告索尼不得继续支持禁止网络盗版法案(SOPA)。

以下是恐吓信的原文及翻译:

Hello, SONY.
We are Anonymous.

It has come to the attention of the Anonymous activist community that you have chosen to stand by the Stop Online Piracy Act. This act will halt online businesses and restrict access to many sites for many users. Supporting SOPA is like trying to throw an entire company from off a bridge. Your support to the act is a signed death warrant to SONY Company and Associates. Therefore, yet again, we have decided to destroy your network. We will dismantle your phantom from the internet. Prepare to be extinguished. Justice will be swift, and it will be for the people, whether some like it or not. Sony, you have been warned.

To those doubting our powers. We’ve infiltrated the servers of Bank of America, The United States Department of Defense, The United Nations, and Lockheed Martin. In one day.

For their approval to SOPA, we have also declared that our fury be brought upon the following persons. Justin Bieber. Lady Gaga. Kim Kardashian. and Taylor Swift.

Operation Blackout, engaged.

Operation Mayhem, engaged.

Operation LulzXmas, engaged.

We are Anonymous.

We are Legion.

We do not forgive.

We do not forget.

Supporters of SOPA, you should’ve expected us.

你好,索尼。我们是Anonymous。

我们Anonymous激进主义社群,最近留意到原来贵公司选择支持那个“Stop Online Piracy Act(SOPA)”。这个法案不单只会阻截网络上的交易,它更会限制很多用户,对很多不同网站的通行权。支持SOPA就相当于把整个公司从桥上扔下。贵公司支持这项法案,就是为“索尼”及其附属机构签署了一张死亡证明。所以,又一次,我们决定要来摧毁贵公司的网络;我们会把索尼从互联网中剔除,做好被消灭的准备吧。为了人民,纵使会惹来部分的不满,正义转眼将至。索尼,我们已经警告过你们了。

怀疑我们能力的群众——我们已经在一天之内,入侵了美国银行、美国国防部、联合国、以及洛克希德·马丁。

至于那些公开支持SOPA的个体,我们同时在此宣布,我们将会把怒火降在以下这些人身上,他们包括有:贾斯汀·比伯、Lady Gaga、金·卡戴珊和泰勒·斯威夫特。

Blackout行动,启动。

Mayhem行动,启动。

LulzXmaz行动,启动。

我们是Anonymous。

我们是军团。

我们从不原谅。

我们从不忘记。

SOPA的支持者,你们早应该料到有此一日。

我想,大家应该都是支持Anonymous的吧:P

十二 292011
 

几天不看邮件,就有几百封新邮件了,Gmail中分了很多页显示。其中多数是广告,也不是很高兴看,不过一直显示有N封未读邮件,看着不舒服。于是就想找出所有未读的邮件,一起标记成已读就好了。

貌似Gmail的界面中并没有提供按钮可以做到这件事,不过想想Google的搜索特长,应该可以通过搜索搞定。Google了一下,果然,在搜索框里输入ls:unread,再点搜索即可。简化版的指令是l:^u,效果是一样的。

还有一些类似的指令:

  • l:^u from:tim 找出所有来自tim的未读邮件;
  • l:^u l:^t 找出所有未读的加了星标的邮件;
  • l:^u l:^k subject:hi 找出所有垃圾箱中的标题包含“hi”的邮件。
十二 262011
 

上周CSDN网站600万用户数据泄露之后,今天又暴出了天涯论坛4000万用户信息泄露,其中也包含了明文保存的密码。一时间,大网站的安全性受到严重质疑,如何保护自己的账号成了一个热议的话题。

关于天涯社区部分用户账号被泄露的声明:

由于历史原因,天涯社区早期使用过明文密码,此次被盗的数据为2009年之前的备份数据。2010年之后,我们升级改造了天涯社区用户账号管理功能,使用了强加密算法,解决了天涯社区用户账号的各种安全性问题。

这个事件的关键词是“明文密码”,什么是明文密码?明文密码是指服务器将用户密码不经过任何处理,就存放在数据库中。只要坏人破解了数据库,就可以看到所有人的密码。 一旦拿到了密码,就可以进一步窃取其它隐私信息了。就像银行卡密码,拿到了密码就可以取钱。所以数据库安全中,有一条很重要的规范就是不得将密码以明文的方式保存。通常的作法是,创建一条转换规则(即上述声明中的“加密算法”),把用户的密码转换成一个新的(不一样的)密码,再存到数据库中。这样即使坏人知道了新的密码,由于他不知道转换规则,或者转换规则本身不可逆,他也没办法使用这个账号登录。以前常用的转换规则是MD5,不过MD5在2008年被证实有严重的安全性问题,现在的常规选择是SHA-2或更高级的方法。

那么如果服务器对密码加密了,是不是就安全了?不一定,取决于密码的强度。假设密码是8位的纯数字,总共可能有1亿种组合,如果坏人对这1亿种组合进行枚举探测,1秒钟可以探测1000个(在实际操作中,这个数字会更大),那他只需要1天左右的时间就可以破解出这个密码来;而密码如果是8位的小写英文字母+数字的组合,那总共可能有超过2万亿种组合,坏人需要90年才能探测出来。由此可见,密码的强度取决于所使用的字符集的大小,所以,使用一个小写字母+数字+符号的组合,并且长度至少8位的密码,会使用破解密码的难度变得非常大。

那么使用了一个高强度的密码,是不是就安全了?也不一定。如果服务器存的是明文密码,再高强度的密码也没有用。如果你在所有的网站都使用同样的邮箱注册,并使用同样的密码,一旦碰上像天涯这样猪一样的队友,其它网站的注册信息就一起遭殃。要预防这类连锁反应的发生,只能使用多个密码,这样即使泄露了其中一个,其它几个密码也不会受到威胁。当然密码的数量需要控制,太多的话,记不清也会很痛苦。

最后有一个小提示,在一个网站注册完之后,如果那个网站发来一封邮件,里面提到了你刚刚填的密码,那么这个网站一定保存了你的明文密码……

十二 212011
 

今天最劲爆的科技类新闻,应该就是这个了吧,CSDN网站的600万用户信息泄漏,其中包括了用户的注册邮箱和密码。

事件的开始是一份名为“CSDN-中文IT社区-600万.rar”的文件被曝光,内含真实可用的CSDN注册用户的信息。瞬间就引发了微博上的热闹讨论。几个小时后,CSDN官方发表声明,表示这份文件的内容取自几年前的一个数据库备份,而并非最新的用户信息:

对于CSDN用户账号密码数据库被泄露一事,经过初步分析,该库系2009年CSDN作为备份所用,由于未查明原因被泄露,特向所有因此而受到影响的用户致以深深歉意。目前CSDN已向公安机关报案,公安机关也正在调查相关线索。CSDN现有2000万注册用户的账号密码数据库已经全部采取了密文保护和备份。

其实无论怎么解释,CSDN的可信度都会受到重大打击。密码在保存到数库据之前,必须经过加密,以防止数据库被黑客攻破的时候,密码跟着一起泄漏,这一作法在十年前就已经普及。而CSDN作为国内知名的技术站点,对自身的安全性却如此不重视。

无疑这次事件会带来一次修改密码的高潮,无论自己的信息有没有被泄露在上述文件中,都建议改一下,因为文件内容不一定是完整的泄露内容。至于我,我本想直接注销掉CSDN的账号,因为好多年都没有登录过了,要不是因为这次事件,我都快忘记CSDN这个网站了。后来发现CSDN并不提供直接的注销账号的方式。但是貌似有一个间接的作法:1)在更改注册邮箱之后,CSDN要发信到新的邮箱,要求重新激活账号;2)如果90天内不激活,账号就会被删除。于是我就把邮箱改了,然后直接把激活邮件删除……

CSDN事件提醒了我们,网站的知名度和它的安全性并没有直接的关系,大网站/大公司照样会有安全问题(又如今年早些时候,索尼的PS Network用户数据泄露事件),在任何网站上保存的隐私数据,都存在安全隐患。并且,一个地方出问题,可能会波及其它地方。比如这次CSDN的泄露信息中有邮箱地址和密码,如果这个邮箱和密码也被用于注册其它网站,那么那个网站的隐私数据也就不安全了。比如我就立即注销了人人网的账号-_- (其实改密码也可以,只是人人网的账号也很久不用了,索性停掉它)

那要如何降低风险呢?我曾经想过,对不同的网站使用不同的密码,这样即使一个网站不安全,也不会波及到其它网站。不过这样有可能会产生数十甚至成百个密码,实在不好记。最终我使用了三个密码,即把账号分为三类,一是泄露之后会给我的生活带来不便的,如银行账号;二是会让我心情不好,或者可能会给别人造成影响的,如QQ密码;三是丢了之后无所谓的……

无论你怎么想,由于我的第三级密码已经泄露,我要更新密码并全面更改第三级网站的注册资料了,这是一个大工程>.<

十二 212011
 

用惯了盗版软件的人们,装软件之前,都会先确定这东西有没有被破解,或者有没有注册机。

iPhone也不例外。很多人没拿到机器之前,就焦急地询问,这东西是破解过的么,我需要破解版的。他们甚至不知道iPhone的解锁和越狱有什么区别……

先来说说解锁,解锁(Unlock)是指取消手机和运营商之间的绑定。美国的某些电信运营商很恶心,他们出售的手机只能用于自己的网络,如果SIM卡换成了其它的运营商,手机就无法使用了。联通为了防止iPhone客户换回移动的网络,也采取过类似的做法。这种做法可以保护运营商的利益,但是对用户造成了很大的限制。为了突破限制,解锁技术就应运而生了。iPhone经过解锁之后,就可以不限运营商地使用。当然这也给黄牛们带来了很大的利润……

然后是越狱。越狱(Jail Break)一词来源于苹果对iPhone软件的苛刻限制,很多有用的软件不得上架,比如输入法,于是就出现了第三方的应用商店(如著名的Cydia)。装上了第三方的应用商店,就可以不受苹果限制地安装应用了,相当于突破了苹果的束缚,这一行为就被称为越狱。越狱的本质是能过iPhone的漏洞(不论是软件的还是硬件的),获取iOS的root权限,然后使用root权限来为所欲为。

那么解锁和越狱是不是必需的呢?如果你在美国买了绑定运营商的iPhone,想拿回中国使用,就一定需要解锁;如果在联通买了手机想用移动的卡,就不用解锁(因为本来就没锁)。至于越狱,如果你对输入法没有过分的需求,不越狱的iPhone也能很好的满足你的日常使用了……

十二 192011
 

如果你还在用光盘装系统,你就OUT啦……从Windows Vista开始,U盘已经可以被用来启动机器并安装系统了。

在制作可启动U盘之前,你需要:

  1. 一个U盘,最好是4G或更大的
  2. 一张Windows 7或者Vista的光盘
  3. 一台正在运行Windows 7或者Vista的电脑

然后按照下列步骤:

  1. 将U盘连上电脑
  2. 打开管理员模式的命令行(开始菜单->所有程序->附件->命令提示符,右键单击,选择“以管理员方式打开”)
  3. 在命令行中输入下列命令(粗体部分):
    1. diskpart (进入diskpart工具)
    2. list disk (列出所有的磁盘,其中可以看到U盘的信息,通常是最后一个)
    3. select disk 1 (选择磁盘1,其中数字’1′需要按实际情况更改)
    4. clean (清除磁盘上的分区信息)
    5. create partition primary (创建一个主分区)
    6. select partition 1 (选择刚才创建的分区)
    7. active (激活这个分区)
    8. format fs=NTFS quick (快速格式化磁盘)
    9. assign (给这个分区分配一个盘符)
    10. exit (退出diskpart工具)
  4. 现在在资源管理中就可以看到新的U盘的分驱了
  5. 把Windows 7/Vista的光盘塞进光驱
  6. 把光盘中的内容全部复制到U盘

大功告成。以后就可以把光盘抛弃,直接使用这个U盘来装系统了……