警告:请不要使用本文重涉及的任何方法进行认行违法行为
接下来,我会列举一些所谓社会工程学使用者经常使用的手段:
首先,熟练的社会工程学使用者都擅长进行信息收集,很多表面上看起来一点用都没有的信息都会被这些人利用起来进行渗透。比如说一个电话号码,一个人的名字。后者工作ID的号码,都可能被利用起来。举个例子, 比如说一个社会工程学使用者想从一间信用卡公司获取一些情报,但是又没有相关的证明证明他可以合法的从这间公司拿到这些情报。这时候,他就可以利用社会工程学,从和这间信用卡公司相关的银行收集相关的信息从而达到他的目的。比如说但这间银行需要从信用卡公司取得信息需要什么文件或者ID号码证明,又或者是经常与信用卡公司进行业务联系的职员的姓名等等。现在的很多公司为了方便和快捷,在一些服务上会采用电话服务,这样就更容易让这些攻击者有机可乘,只需提供从银行获得的相关资料,信用卡公司就会把一些敏感的信息给予攻击者。
很多社会工程学攻击是很复杂的,包括了周详的计划,并且综合运用了相当的技巧。但是你也可以发现,一些熟练的社会工程学攻击者经常可以只用简单的方法达到他的目的,直接的进行询问来获得他所需要的信息常常是行之有效的。举个例子,某人打电话给电话公司说因为一起火灾的影响,使得附近以电话线路终端毁坏,令附近几十户人家的电话都无法使用,而他本人是个电话线路维修工,也许他可以先帮忙修理。但是修理必须需要一些电话公司不会让非本公司相关职员知道的铭感信息。但是谁又能拒绝一个好心的电话线路维修工人的无私的援助呢,这样,这位社会工程学攻击者就获得他所需要的电话线路信息。
建立信任也是一项社会工程学的手段,而且是相当重要手段,试想一下如果你和某公司活人建立相当牢固的信任关系,要取得一些重要的敏感信息不就要相对容易的多了吗。要在短时间内获得信任是不容易的,但是也不是没有可能的,如果能被证明你是可以被信任的,那不就比较容易获得信任了。不明白?? 举例说明:电话公司在搞促销,只要限定一定时间的使用和约就可以一分钱获得一部最新的手机,注意,前提是一定要签订一定使用期限的移动电话网络使用和约。有位仁兄就想了,怎么能不去花钱签订电话线路使用和约而可以以一分钱拿到这个手机呢。于是他就打了一个电话给这间电话公司属下的一间分店,我们叫它位A店。他和职员对话如下:
职员:这里是电话公司A分店,有什么能帮你
仁兄:你好,我叫仁兄,我之前去过你们的店,我想申请一个手机服务,你们以为姓李的店员(当然是猜的)介绍了一个不错服务给我。我当时没有拿定注意,现在我决定申请那个服务了,哦~~~,那个店员叫李~~~,我不记得了,你知道吗???
店员:~~~,我们店了有两个姓李的,你说男的还是女的???
仁兄:对,是男的,他说他叫李~~,不好意思,我忘记了名字,你能告诉我吗??
店员:叫李XX
仁兄:对,就叫李XX,我马上就去你们店里办理相关服务开通的手续。再见
店员:再见。
之后,这位仁兄又打电话给了令一间分店,分店B
仁兄:你好,请问是分店B吗
职员:是,请问有什么可以帮你
仁兄:我是分店A的李XX,我这里有一个顾客刚刚和我们签订了那个一分钱手机换购合约,但是之后我才发现店里那个手机的型号已经没有存货了,你们店里还有吗???
职员:有的
仁兄:好级了,我已经和他签订了线路使用和约,我现在叫他去你那里,你用一分钱把手机卖给他就可以了。
职员:好的,你叫他来吧。
半小时候,这位仁兄出现在了分店B里,用一分钱换购走了手机。
现在明白了吗???只要证明自己是可以被相信的,欺骗是很容易的。
1.为LILO增加开机口令
在/etc/lilo.conf文件中增加选项,从而使LILO启动时要求输入口令,以加强系统的安全性。具体设置如下:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
time-out=60 #等待1分钟
prompt
default=linux
password=
#口令设置
image=/boot/vmlinuz-2.2.14-12
label=linux
initrd=/boot/initrd-2.2.14-12.img
root=/dev/hda6
read-only
此时需注意,由于在LILO中口令是以明码方式存放的,所以还需要将
lilo.conf的文件属性设置为只有root可以读写。
# chmod 600 /etc/lilo.conf
当然,还需要进行如下设置,使
lilo.conf的修改生效。
# /sbin/lilo -v
2.设置口令最小长度和
最短使用时间
口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5,但为保证口令不易被猜测攻击,可增加口令的最小长度,至少等于8。为此,需修改文件/etc/login.defs中参数PASS_MIN_LEN。同时应限制口令使用时间,保证定期更换口令,建议修改参数PASS_MIN_DAYS。
3.用户超时注销
如果用户离开时忘记注销账户,则可能给系统安全带来隐患。可修改/etc/profile文件,保证账户在一段时间没有操作后,自动从系统注销。
编辑文件/etc/profile,在“HISTFILESIZE=”行的下一行增加如下一行:
TMOUT=600
则所有用户将在10分钟无操作后自动注销。
4.禁止访问重要文件
对于系统中的某些关键性文件如inetd.conf、services和lilo.conf等可修改其属性,防止意外修改和被普通用户查看。
首先改变文件属性为600:
# chmod 600 /etc/inetd.conf
保证文件的属主为root,然后还可以将其设置为不能改变:
# chattr +i /etc/inetd.conf
这样,对该文件的任何改变都将被禁止。
只有root重新设置复位标志后才能进行修改:
# chattr -i /etc/inetd.conf
5.允许和禁止远程访问
在Linux中可通过/etc/hosts.allow 和/etc/hosts.deny 这2个文件允许和禁止远程主机对本地服务的访问。通常的做法是:
(1)编辑hosts.deny文件,加入下列行:
# Deny access to everyone.
ALL: ALL@ALL
则所有服务对所有外部主机禁止,除非由hosts.allow文件指明允许。
(2)编辑hosts.allow 文件,可加入下列行:
#Just an example:
ftp: 202.84.17.11 xinhuanet.com
则将允许IP地址为202.84.17.11和主机名为xinhuanet.com的机器作为Client访问FTP服务。
(3)设置完成后,可用tcpdchk检查设置是否正确。
6.限制Shell命令记录大小
默认情况下,bash shell会在文件$HOME/.bash_history中存放多达500条命令记录(根据具体的系统不同,默认记录条数不同)。系统中每个用户的主目录下都有一个这样的文件。在此笔者强烈建议限制该文件的大小。
您可以编辑/etc/profile文件,修改其中的选项如下: HISTFILESIZE=30或HISTSIZE=30
7.注销时删除命令记录
编辑/etc/skel/.bash_logout文件,增加如下行:
rm -f $HOME/.bash_history
这样,系统中的所有用户在注销时都会删除其命令记录。
如果只需要针对某个特定用户,如root用户进行设置,则可只在该用户的主目录下修改/$HOME/.bash_history文件,增加相同的一行即可。
8.禁止不必要的SUID程序
SUID可以使普通用户以root权限执行某个程序,因此应严格控制系统中的此类程序。
找出root所属的带s位的程序:
# find / -type f ( -perm -04000 -o -perm -02000 ) -print │less
禁止其中不必要的程序:
# chmod a-s program_name
9.检查开机时显示的信息
Linux系统启动时,屏幕上会滚过一大串开机信息。如果开机时发现有问题,需要在系统启动后进行检查,可输入下列命令:
#dmesg >bootmessage
该命令将把开机时显示的信息重定向输出到一个文件bootmessage中。
10.磁盘空间的维护
经常检查磁盘空间对维护Linux的文件系统非常必要。而Linux中对磁盘空间维护使用最多的命令就是df和du了。
df命令主要检查文件系统的使用情况,通常的用法是:
#df -k
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda3 1967156 1797786 67688 96% /
du命令检查文件、目录和子目录占用磁盘空间的情况,通常带-s选项使用,只显示需检查目录占用磁盘空间的总计,而不会显示下面的子目录占用磁盘的情况。
% du -s /usr/X11R6/*
34490 /usr/X11R6/bin
1 /usr/X11R6/doc
3354 /usr/X11R6/include