搜索此博客

2010年6月19日星期六

如何防止黑客入侵?

作者: 编程随想   来源:http://program-think.blogspot.com/2010/06/howto-prevent-hacker-attack-0.html

本帖国内镜像:
http://blog.csdn.net/program_think/archive/2010/06/09/5657262.aspx

上回俺在“如何隐藏踪迹,避免跨省追捕”系列中,谈到了操作系统的安全防范,其中有一个很重要的环节,就是防止自己的电脑被黑客入侵。当时由于篇幅有限,没有展开讨 论。所以,今天就把这个话题补上。

防范黑客入侵,会涉及到不同方面的话题。因此,俺打算每个话题写一个帖子。有些话题,除了涉及技 术领域,还会涉及非技术领域(也就是社会工程学)。对“社会工程学”不太熟悉的同学,可以先看“这里”扫盲一下。
另外,本系列面向不太熟悉计算机安全的网友,因此行文会比较�嗦。懂行的网友,请自行略过,以免浪费宝贵的时间。

为了方便阅读,把本 系列帖子的目录整理如下(需翻墙):
1、避免使用高权限用户
2、攻击者如何搞定你的口令/密码?
3、如何保护口令/密码?
4、操作系统的加固
5、 一些安全工具
6、......

1、避免使用高权限用户

为啥俺把这个话题列在头一条?——因为这是个非常普遍、且远远没有得到重视的问题。根据俺的经验,如果你能够养成好习惯,不使用高权限用户(尤 其是管理员)进行日常操作,就可以大大降低被黑的概率。下面,俺就来具体介绍一下。

基本概念扫盲
考虑到 本文是面向外行人士,先进行一下名词解释。
◇用户权限
所谓的“用户权限”,通俗地说,就是某个用户的权力有多大。权力越大,能干 的事情越多。

◇用户组
用户组,顾名思义,就是一组用户的集合。
在主流的操作系统中,“用户权限”通常是和 “用户组”挂钩滴。针对不同的用户组,分配了不同的权限。
为了让用户省事儿,Windows系统内置了若干用户组(比如:Users、 Power Users、Guests、等)。这些内置的用户组,事先已经预定义好若干用户权限。

◇高权限用户:
本文提 及的“高权限用户”,主要是指Windows系统中Administrators组的用户或POSIX系统中root组的用户。
另外,顺便消除一个误解。很多菜鸟以为:Windows系统中,只有用户名为“Administrator”的用户才具有管理员权限。其实捏,任何一 个用户,即使用户名不叫“Administrator”,只要是属于“Administrators组”,也同样具有管理员权限。

反面教材
菜鸟的例子就不提了,光说说俺接触过的很多程序员吧。这帮家伙在使用Linux/Unix系统进行开发时,都晓得应该用普通用户的帐号进行操作;当需要 做某些高级权限的操作,再切换到管理员帐号(root帐号)。但即便是这些开发人员,在自己的Windows系统中,却喜欢用管理员 (Administrator)进行日常操作,实在是很讽刺。
如果连IT专业的开发人员都这样,那不懂IT技术的外行人士,就可想而知了。

危害性
如果你平时总是用管理员权限登录到系统并进行日常工作,那就意味着你所运行的每一个程序,同时也具有了管理员权限。 要知道,管理员权限的权力是很大的,几乎可以干任何事情。
假设你有上述习惯。某天,你从网上下载了一个软件,且软件已经感染了病毒。那么,当你运行这个软件时,这个病毒就会被激活。要命的是,它也同样具有管理 员权限。这时,病毒就获得了和杀毒软件平起平坐的地位。假如这个病毒的作者水平再高一些,甚至可以骗过杀毒软件或者直接把杀毒软件干掉。
除 了病毒,木马也是一样。假设你上网的时候,一不留神访问了某个挂马的网站。一旦木马被激活,也同样是以管理员的权限运行,危害同样也巨大。

你该如何做?
考虑到Windows系统的用户占绝大多数,俺就光拿Windows系统来说事儿。希望Linux和Max OS的fans不要见怪。
为了尽量少用高权限用户。你最好刚装好系统之后,单独创建一个非管理员用户。
不见图、请翻墙


你可以让该用户仅仅属于“Power Users组”,如下图:
不见图、请翻墙


如果想更安全的话,可以仅仅加入“Users组”,如下图:
不见图、请翻墙


今后,就主要通过这个用户进行日常的操作。
考虑到有些同学不了解这 两个用户组,在权限方面与管理员有啥区别。俺简单列举一下。

◇Power Users组与Administrators组的差别
相对于Administrators组,Power Users组缺少了如下几项权限(俺只列主要的):
1、不能添加、删除、禁用系统中的 其它用户。
2、不能修改其它用户的属性(包括口令、所属的用户组、等)
3、不能安装/卸载硬件驱动程序。
4、不能 安装/卸载某些应用软件。
5、不能查看系统的安全日志。

◇Users组与Administrators组的差别
User组的权限比Power Users组的更小。除了Power Users组做不到的事情,Users组还缺少如下权限(俺只列主 要的):
1、不能修改系统时间。
2、不能修改某些系统目录(包括:系统盘的 \WINDOWS 目录、系统盘的 \WINDOWS\SYSTEM32目录、系统盘的 \Program Files目录)。
3、不能启动/停止某些系统服务。
4、不能修改注册表“HKEY_LOCAL_MECHINE”下的所有键值。

从上述对照,明显可知,Users组的权限更小,使用起 来更安全。比如说,即使你运行了一个带病毒的程序,由于病毒和你一样,也仅有Users组的权限。所以病毒也就无法修改/破坏重要的系统目录,掀不起太大 风浪。

可能的麻烦
通常来说,越安全的措施,往往也意味着越麻烦。但是这些麻烦,都有相应的解决之道。

◇切换用户的麻烦
当你以普通用户身份登录后,可能由于某些原因,需要用管理员用户干点事情。但是你(可能是开了很多程序)又不 想把当前用户注销。
俺的建议是:
使用“快速用户切换”(洋文叫:Fast User Switching)功能来切换用户。此功能从Windows XP开始提供。简单地说,就是可以让几个不同的用户同时登录同一个系统,平滑地切换。有了此功能,这个麻烦就不明显了。

如果你非常不 幸,还在使用比较古老的Windows 2000系统;或者你使用的是Windows的服务版本(比如Windows Server 2003)。在这些版本的Windows系统中,默认是没有“快速用户切换”功能滴。这可咋办捏?

俺的建议是:
可以在 不注销当前用户的情况下,启动一个具有高级用户权限的程序。
为了说清楚,俺举例如下:
假设俺当前处于一个普通用户的环境,但是想 另外启动一个具有管理员权限的程序,比如说命令行程序(cmd.exe)。
1、首先,俺先创建一个指向 cmd.exe 的快捷方式。(该怎样创建快捷方式,俺就不用再教了吧?)
2、用鼠标选中该快捷方式,在快捷菜单(右键菜单)中,选择“属性” 菜单项。出现如下对话框。
不见图、请翻墙


3、在该对话框中,点“高级”按钮。出现如下对话框。把“以 其他用户身份运行”选项打勾,即可。至此,快捷方式创建完毕。
不见图、请翻墙


4、以后,如果俺想在普通用户环境中,以管理员身份执行命令行,只要运行该快捷方 式,然后会弹出如下对话框。你只要在该对话框中输入管理员的用户名和口令,就能以管理员的身份,把该命令行启动起来。
不见图、请翻墙


◇安装软件/驱动的麻烦
最主要的问题就是安装软件和安装驱动。安装驱动程序通常需要用管理员权限才行;另外,很多软件(比如Office)在安装时,也要求用管理员权限的用 户进行安装。

俺的建议是:
在刚装好系统之后,先用管理员用户把上述这些软件/驱动程序都搞好。然后,就无需再用管理员用户了。毕竟你经常使用的软件相对固定,不可能三天两头安装 软件或驱动(除非你是软/硬件发烧友)。即便偶尔需要重新装个软件或驱动,也可以用上述介绍的方式,临时切换到管理员权限。

◇修改 系统时间的麻烦
如果你平时用的是“Users组”而不是“Power Users组”,那你连修改系统时间的权限也没有。
俺的建 议是:
启用Windows系统自带的时间同步服务,让它帮你自动同步系统时间。

除了上述这几点,如果还有谁碰到其它的麻 烦,也欢迎来信跟俺交流。俺会补充到本文中。下一讲,咱们来介绍口令/密码的安全
版权声 明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想和本文原始地址:
http://program-think.blogspot.com/2010/06/howto-prevent-hacker-attack-1.html



2、攻击者如何搞定你的口令/密码?

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

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

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

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

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

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

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

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

◇密码猜解
密码猜解也是网友们比 较容易碰到的威胁。具体来说,密码猜解又分两种:弱密码猜解和暴力破解。
如果你的密码比较弱,攻击者就很容易被猜出来。俺在下一个帖子里,会 介绍,什么样的密码属于弱密码。
除了对弱密码进行猜解,攻击者还可以通过穷举的的方式,破解中等强度的密码。毕竟现在CPU的计算能力日新月 异,尤其是多核CPU普及之后,暴力破解的效果会越来越好。除非你的密码很强,才能彻底消除暴力的风险。在下一个帖子,俺会介绍,如何构造强度较高的密 码。

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

◇本地截获
还有一种方式和“网络截获”方式相对, 那就是“本地截获”。具体是啥意思捏?俺来解释一下。
凡是利用口令进行验证的软件系统,都需要存储和口令相关的信息。否则的话,软件系统就无 法验证用户输入的口令,到底是不是正确的。如果攻击者能够拿到这些口令的关联信息,那他/她就有可能分析出口令是啥。
(如果你不是搞IT专业 的,下面这段可能看不太明白)
通常用三种方式来存储口令的关联信息:1、存储口令的明文;2、存储口令经过加密后的密文;3、存储口令的散列值。第一种方式是最土鳖的,稍微先进一些 的系统,都不会用了。后面两种方式,虽然看不到明文,但是攻击者还是有办法通过相应的算法,反推出口令的明文。具体细节,本文就不再多说了。

那攻击者如何获得存储在软件系统的口令关联信息捏?可能的途径有许多种,俺随便举几个例子。
比如:你的电脑丢失了,而且被攻击者拿到,那他 /她就可以得到操作系统中存储的用户口令的散列值。然后,再利用前面提到的暴力破解,就有可能搞定你的口令。
比如:某个邮件服务器有安全漏 洞,被攻击者利用。那么攻击者有可能获取服务器上存储的,所有用户的口令关联信息。

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

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

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

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

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

结尾
介绍到这里,列位看官应该对 黑客盗取口令的手法,有一个初步的认识了。下一个帖子,会介绍具体的应对措施。

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

 

没有评论:

发表评论