6 评论

如何防止黑客入侵[2]:攻击者如何搞定你的口令/密码?

  在上一个帖子,俺强调了高权限用户的潜在风险。接下来,咱要介绍一下,和口令相关的安全话题。毕竟在大伙儿的日常生活中,口令的使用是必不可少滴。
  考虑到和口令相关的内容较多,俺分两部分来说:今天首先揭露攻击者的种种伎俩;下一帖再详述应对的措施。


★使用密码的场合(密码的类型)


  为了便于后面的叙述,俺有必要先总结一下,使用口令的几种场合。
  针对这几种不同的场合,攻击者会采取不同的攻击手法;因此,大伙儿也要采取针对性的防范手法。

◇操作系统用户的口令


  这种场合应该好理解。目前主流的操作系统都具有口令验证的用户登录机制。

◇各种网络应用的口令


  随着网络(尤其是 Web)的普及,这种场合越来越多。比如:Email、即时通讯(IM)、BBS、上网炒股、等,都需要有用户口令认证。

◇各种本地应用程序的口令


  此种场合可能不如网络应用的口令那么常见。比如:用口令加密的压缩文件、用口令加密的 Office 文档、PGP 密钥的口令、Outlook 设置的启动口令......

◇其它


  除了上述3种类型,其它那些比较少见、杂七杂八的,统统归为其它。比如:BIOS 的开机口令。


★攻击者如何通过技术手段搞定的你的密码?


  前面列举了密码的不同使用场合。接着咱要介绍一下:攻击者会利用哪些技术手段,攻破你的密码。

◇木马盗取


  如果你的电脑已经被攻击者安装了木马,那你的一举一动有可能都会被监视。在这种情况下,你在这台电脑上输入的任何密码,都将会被攻击者获取。所以,这种情况是很危险滴——不管是哪种类型的密码,都可能被盗。
  至于如何防止自己的计算机被植入木马,不是本帖的重点。俺会在本系列后续的帖子中专门介绍木马的防范。

◇弱密码猜解


  所谓的“弱密码猜解”,就是说:如果你的密码比较弱,攻击者可以猜出来。这种攻击手法,对于操作系统用户口令、网络应用口令、本地应用口令,都适用。而且攻击者在盗取口令的时候,通常会先尝试进行弱口令猜测。为啥捏?
  因为大部分用户都不太具有安全意识,口令都会比较简单(比较弱)。并且,根据二八原理,绝大多数的傻瓜用户会使用极少数的弱口令。所以,攻击者先把最流行的那些个弱口令挨个试验一遍,没准就已经成功了。
  为了让大伙明白弱口令的严重程度,来看看2009年底的“一个案例”。
  话说国外一个小有名气的交友网站(RockYou)被黑客攻破。里面大约3260万用户数据被盗。更加杯具的是,RockYou 采用明文方式存储用户的口令。因此,这3260万用户的口令也统统暴露鸟。后来有好事者把被盗的用户口令拿来分析一番。结果发现,有相当多的用户在使用一些极其弱智的口令。
  用的最多的 TOP 10 分别是:
1. 123456
2. 12345
3. 123456789
4. password
5. iloveyou
6. princess
7. rockyou
8. 1234567
9. 12345678
10. abc123
  据说名列第一的口令(123456)有30万人使用,真是不看不知道,一看吓一跳啊!

◇暴力破解


  除了对弱密码进行猜解,攻击者还可以通过穷举的的方式,破解中等强度的密码。所谓的穷举法,就是把所有可能的字母/数字的组合都试验一遍,直到找到正确的密码。
  现在 CPU 的计算能力日新月异,尤其是多核 CPU 普及之后,暴力破解的效果会越来越好。除非你的密码很强,才能彻底消除暴力的风险。
  由于这种攻击手法,需要进行成千上万次的试错,所以比较适合针对本地应用的口令(比如破解加密的压缩文件),而不太适合对网络应用进行在线口令破解。
  在下一个帖子,俺会介绍《如何构造安全的口令/密码》。

◇网络传输截获(嗅探)


  在这种方式下,攻击者会通过【嗅探】的方式,分析你的上网数据。如果你在上网过程中,存在明文传输的口令,就会被截获。
  非安全专业的网友,可能不太明白什么是“嗅探”,俺来稍微解释一下。攻击者会利用某些嗅探软件,收集网络上传输的所有数据。这个过程好比电话窃听。嗅探软件类似于窃听器;你的上网数据类似于电话的通话内容。
  这几年,随着现在无线网络(WiFi)的普及,网络嗅探的风险大大增加,列位看官切不可掉以轻心哦。

◇客户端截获


  所谓“客户端截获”,通常是针对网络应用的口令而言。举几个例子。
  例1:
  很多网友上网时,为了免去输入口令的麻烦,会让浏览器帮忙记住口令。通常浏览器会把这些口令保存在某个文件中(可能以明文方式,也可能以密文方式)。如果某天你的电脑中了木马,那么木马程序有可能会盗走这个保存口令的文件。然后攻击者就可以通过分析该文件,破解出你保存过的所有网络应用的口令。
  例2:
  如果你是软件公司的开发人员,多半你会使用某种源代码版本管理工具(比如 SVN、CVS、等)。为了免去每次操作时输入口令的麻烦。通常开发人员会让这些客户端软件记住用户名和口令。如果哪天你中了木马或者电脑被盗,那么攻击者同样可以破解你保存下来的口令,进而用你的身份盗取源代码。

◇服务端截获


  和“客户端截获”方式相对的,还有“服务端截获”。具体是啥意思捏?俺来解释一下。
  凡是利用口令进行验证的软件系统,都需要存储和口令相关的信息。否则的话,软件系统就无法验证用户输入的口令,到底是不是正确的。如果攻击者能够拿到这些口令的关联信息,那他/她就有可能分析出口令是啥。
  (如果你不是搞IT专业的,下面这段可能看不太明白)
  通常用三种方式来存储口令的关联信息:1、存储口令的明文;2、存储口令经过加密后的密文;3、存储口令的散列值。第一种方式是最土鳖的,稍微先进一些的系统,都不会用了。后面两种方式,虽然看不到明文,但是攻击者还是有可能通过某种技术手段,反推出口令的明文。具体细节,本文就不再多说了。
  那攻击者如何获得存储在软件系统的口令关联信息捏?其实前面提到的 RockYou 网站的杯具,就是一个很好的例子。俺再举另一个例子。
  比如:某个 Linux/Unix 服务器存在安全漏洞,攻击者利用此漏洞搞到了“/etc/shadow”文件。那么攻击者就可以采用上述提到的暴力破解的招数,攻破该服务器上所有强度较弱的口令。


★攻击者如何通过“非技术”手段搞定的你的密码?


  说完了技术手段,自然就得再说说【非】技术手段。所谓的非技术手法,也就是社会工程学手法(关于社会工程学的扫盲,请看“这里”)。用于盗取密码的社会工程学手法,大概有如下几种。

◇偷窥


  偷窥是最简单的一种社会工程学攻击手法。虽然简单,但是有效。比如很多盗取银行卡的家伙,就是偷窥的手法,得到被害人的银行卡密码。

◇钓鱼


  另外一个骗取口令的方式,就是通过网络钓鱼。比如某些攻击者,会伪造一个银行的网站。其界面和真实的网站一模一样。然后通过某种方式(比如:虚假链接、欺诈邮件、DNS 欺骗 ...),引诱你到这个网站上。由于假网站和真网站的界面很像,你可能信以为真,然后在假网站中输入你的用户名和密码。
  有些高明的钓鱼网站,会采用类似Web代理的技巧:把你的所有输入操作,转而提交给真网站;然后把真网站输出的界面,再转回给受害者看。这样的话,受害者就跟在真实网站进行插作,没啥区别,不易看出破绽。
  更多关于网络钓鱼的介绍,可以参见“这里”。

◇分析


  如果攻击者对你比较了解,那么他有可能通过深入的分析,攻破你的口令防护。是不是觉得很神奇?很匪夷所思?其实这种招数很常见,且不算太难。俺来举个例子。
  相信很多网友都用过电子邮箱的找回口令功能。当你口令遗忘之后,可以通过回答事先预设的问题,来找回口令。很多不太专业的用户,预设的问题都很简单(比如:你的手机号是多少?比如:你的生日是哪天?)。对于这类过于简单的问题,攻击者可以很容易地找到答案,从而窃取到你的邮箱口令。

◇欺骗


  最近几年,通过电话诈骗,骗取银行卡密码的案例越来越多。这种作案手法,就属于社会工程学中,“欺骗”的范畴。其实在IT领域,某些黑客也会利用这种手法来获取口令。具体的一些欺骗的伎俩,可以参见俺之前的“社会工程学系列”帖子。


★结尾


  介绍到这里,列位看官对黑客盗取口令的手法,应该有一个初步的认识了。本系列的下一个帖子,具体介绍如何构造安全的口令/密码


回到本系列的目录
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想和本文原始地址:
https://program-think.blogspot.com/2010/06/howto-prevent-hacker-attack-2.html

6 条评论

  1. 问个技术问题:/etc/shadow使用的是one way hash, 还加了salt做randomization,这个也可以暴力破解么?

    回复删除
  2. to 楼上的网友:
    加盐只是用来防御“彩虹表”。
    对于 Unix/Linux 的 shadow,其加盐的机制是已知的,攻击者自然可以用暴力破解。
    如果被攻击的口令不够复杂,暴力破解还是挺快的。

    顺手Google了2篇文章,你参考一下
    http://www.nmrc.org/pub/faq/hackfaq/hackfaq-28.html
    http://docstore.mik.ua/orelly/networking/puis/ch08_06.htm

    回复删除
  3. ◇钓鱼

      另外……密码。
      有些……真实网站进行[[插]]作,没啥区别,不易看出破绽。
    错别字。

    回复删除
    回复
    1. 极个别错字,不影响达意,何必指摘。不服你再挑一个出来

      删除
  4. 编程兄,请问只用拨号上网,广域网中是否存在被黑客嗅探的风险呢?(排除电信/GFW的嗅探)

    回复删除
  5. 表示QQ号被攻破... 用了很简单的密码..

    回复删除