一篇关于网络安全方面对中小企业非常有用的文章由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“关于网络安全的文章”。
一篇关于网络安全方面对中小企业非常有用的文章
编者按:网络是脆弱的,对一般用户来说,他们对于网络安全还仅仅是停留在安装一个杀毒软件的层面上,还有的人天真的以为这样就万事大吉,连病毒库都不去更新。这样怎么能抵挡住黑客非法入侵和病毒的肆虐,其实只要你
1、安装操作系统或应用程序时不要使用默认值
几乎所有的操作系统或应用程序的厂商都会提供用户快速安装的功能,虽然厂商的设计是为了方便用户,但是在绝大多数用户不知情的情况下,系统却同时间却安装了许多不必要功能。相比之下,这种所谓采默认值安装的操作系统或应用程序,往往是造成安全漏洞的祸首。主要原因是因为用户通常不会去注意那些从来不用的功能,而且有许许多多的用户,包含IT的管理人员,根本就不知道自己在使用中的操作系统或应用程序上到底安装了哪些东西。一旦这些不明的功能出现漏洞,而偏偏用户又一无所知,且未实时加以修补的话,那往往会成为黑客入侵的最佳通道。
就操作系统来说,采用预设的安装通常都会连带安装超出用户所需的功能与网络服务,碰巧黑客最喜欢通过这些网络服务与通讯端口来进行入侵的动作。因此,若你所安装或开放的功能、网络服务与通讯端口越少,黑客就越不得其门而入。同样地,以默认值安装的应用程序,通常内含不必要的范例程序或是Scripts。一些常见的网站服务器漏洞即是因这些范例程序或是Scripts所造成,黑客可以利用这些不为用户所知的范例程序或Scripts所造成的漏洞来进行入侵、或取得该系统上的信息。绝大多数被安装在应用程序上的范例程序或是Scripts不仅未经过严谨的安全控制与设计,也未落实错误检查的工作,相反地,却成了黑客进行buffer overflow缓冲区溢位攻击的最佳通道。
如果你曾经使用厂商提供的快速安装程序来安装操作系统与应用程序,而且尚未删除不必要的网络服务并安装所有的修补程序的话,你的系统极有可能漏洞一箩筐,且相当容易导致黑客入侵。即便你设定过相关的功能,你的操作系统或应用程序仍有可能有漏洞,所以你可以使用端口号扫描工具(port scanner)或是漏洞扫描工具(vulnerability scanner)来作一确认。切记删除或关闭操作系统或是应用程序上不必要的功能、网络服务与通讯端口。虽然在企业里要落实这些安全管理工作有时相当费时费力,但是企业可以事先订定标准的操作系统与应用程序的安装规范来说明一般用户或IT管理人员可以安装那些功能或服务,以有效解决此一问题。
2、使用先进的用户帐号/密码设定与组合帐号与密号的使用通常是许多系统预设的第一,同时也是唯一的防护措施。因此,黑客如果能取得用户的帐号与密码,那即可控制被入侵的系统。事实上,有许多的用户的密码要不是很容易被猜中,就是使用系统预设的密码,更甚者,还有些人根本就不设密码。用户应该要切记把握避免使用不当的密码、系统预设密码、或是使用空白密码的原则。
先进的密码系统包含两部分,一部分是「加密(encode)」,另一部分是「解密(decode)」。当一个密码设定完成后,会被以「明码」或是「暗码」的形式记录起来,以供认证之用,我们假设程序把密码存在「paword.txt」档案中,而我们的密码假设为「ken」。
当档案经过加密后,下次打开这个档案就会被要求读入一个密码,如果是「明码」,那我们例子中的「paword.txt」中就会被纪录密码是「ken」,可是这很不安全,用写字板就可以轻松破解这个密码。
「暗码」就比较先进了,他会被重新编码再储存,而且重新编码的方式很多,可能是一种很特殊的排列组合,这完全看设计者如何发挥。例如设定把他转成16进位码当作编码,所以这个密码「ken」经过处理就变成「68」、「74」、「77」,然后存在「paword.txt」里的就成了「687477」,想解开「暗码」通常要花较多功夫。最新的编码技术就更厉害了,像 UNIX、Windows 系列中也常用到这些新技术,就是所谓的不可逆算法。刚刚「暗码」中的「687477」,如果你知道规则,那是可以轻而易举反推回去的,马上就可以得到「ken」这三个字。为了解决这个问题,人们采用了不可逆的算法,就是让你无法返推回去。
密码的安全性是相对的,只要是密码就会有被破解的情况,只不过是被时间的多少问题。那怎么设定密码,才能达到最好的效果?在此我提供下列几项检查方法供大家参考:
(1)定时稽核系统上使用中与未使用中的帐号并予以记录,尤其对与Internet相连接的Router、Switch、Firewall、Server等主机上的密码应逐一检查。
(2)制定企业信息系统用户帐号管理政策,详细规范增加用户帐号、以及删除不再继续使用的帐号时之应注意事项。
(3)定时确认系统上是否出现未经授权的新帐号,并且删除不再使用的帐号。
(4)使用密码破解工具来检查用户的密码设定是否安全。在执行此一工作时,你应当取得主管的同意与授权。
(5)离职员工或是委外厂商使用之帐号、以及不再使用的帐号应适时予以删除。
有效解决帐号/密码安全问题的第一步就是禁止使用空白密码,任何被发现使用空白密码的帐号应该立即设定密码或是删除该帐号,并按照企业安全政策来管理用户帐号/密码。有关帐号管理方面,应该把握下列原则:
(1)帐号与密码不可以相同。
(2)避免使用字典上的词汇做为密码。
(3)不要拿自己的名字、生日、电话号码来作为密码。
(4)不可以使用空白密码。
(5)密码之组成至少需6个字符以上。
(6)密码之组成应包含英文大小写字母、符号、数字。
(7)按使用目的与特性,密码至少每45-90天更换一次。
(8)不可以将密码抄写在纸张上或置于公众场所,如贴在计算机屏幕前。
(9)避免使用公共场所的计算机处理重要资料,如网吧、图书馆、学校计算机中心等,以免密码被窃听或不慎留下记录遭利用。
企业内重要信息的使用,应结合严格帐号管理与身分认证程序,以确保信息之使用仅及于授权的用户。身分认证除了须有完善的帐号管理作搭配外,用户可采用所谓one-time paword动态式密码、PKI公开金钥、数字签章等方式来配合,不仅可确认用户身分外,更毋须担心密码被窃,同时还可确保资料的正确性与不可否认性。
3、关闭不必要的网络通讯端口
网络通讯端口是合法用户连接至主机端取得服务的通道,同样地,黑客也是利用同样的途径来入侵。所以说,你主机上开放的通讯端口越多,他人就越容易与你的系统联机。因此,减少系统上开放的通讯端口数目是网络安全最有效的防范措施之一,除了有必要对外提供服务的通讯端口之外,其它通讯端口应予以关闭。
你可以利用操作系统上内建的“netstat”指令来检查哪些通讯端口是处于开放或是聆听的状态,但是光靠netstat是不够的,你还可以使用端口号扫描工具(port scanner)来做更进一步的确认。如果“netstat”与端口号扫描工具所产生的结果不同的话,你应该立即做深入的检查。一旦两者的结果相符,接下来即是进行埠号确认的工作,除要了解每一个通讯端口开放的原因之外,你应该掌握每一个开放的通讯端口所代表的意义与其相关的网络服务。任何无法确认或辨别的网络通讯端口应该尽快关闭。经过netstat与端口号扫描的结果应该加以记录并保存,以作为日后定期安全稽核时拿来比对是否出现了不明或多余的通讯端口。
目前有许多端口号扫描工具,最有名的当属“nmap”.它提供Unix与Windows两种版本:
(1)Unix版本的网址在:http://
当你进行端口号扫描时,切记对1-65,535的埠号做全面性的TCP与UDP端口号扫描,以免漏掉了任何可能开放的通讯端口。另外,你应当在取得网络主管的书面同意与授权之后,才可进行端口号的扫描的工作。要特别注意的是,某些操作系统与内含特殊TCP/IP堆栈功能的网络设备,在被扫描时可能会发生不可预期的反应。此外,如果你未事先声明或告知相关人员,端口号扫描的动作也可能会触动入侵侦测或防火墙,而被误判为攻击的行为。因此进行端口号扫描时,你不得不谨慎行事。
一旦你已掌握系统上开放的通讯端口有哪些之后,接下来即为确认该系统应该开放的通讯端口是哪些,而哪些又是不必要,且必须关闭或删除的通讯端口。例如你对外服务的网站服务器,应该只开放http/80埠,DNS服务器应该只开放dns/53埠,邮件服务器应该只开放smtp/25埠、pop3/110埠。如果你发现贵单位正好有上述对外服务的服务器,则请仔细检查你的服务器是否只开放的前述的通讯端口。如果不是,那你应该尽快将其它非必要性的通讯端口予以关闭或删除。你可以通过编辑、修改inetd.conf以及相关设定文件来对Unix系统作一端口号开放的限制与管理。
值得一提的是,万一系统被植入后门程序或是被利用来当作跳板做进一步攻击时,黑客必须使用特定的网络服务通讯端口(port)对其他系统进行入侵。这些后门程序多半使用特定的通讯端口号(port number),你可以用Nmap或是Neus之类的Freeware或是套装扫描工具来检测出可疑的通讯活动。当然,防火墙的功能除了可将你网络上不必要的通讯端口关闭,保护你的企业内部网络,并过滤来往的网络使用,以防止黑客入侵之外,当你的内部网络不慎被植入后门有可能被当作跳板利用时,只要正确地设定你的防火墙,可以避免在外的黑客通过后门程序所打开的特定通讯端口进行破坏,因为防火墙只会允许合法通讯端口的使用,并阻挡一切非法的网络联机。
4、对进出入的IP封包进行过滤
伪造IP地址是黑客惯用来隐藏踪迹的技俩。举例来说,smurf 攻击就是利用Router来对数千部的主机传送大量的封包,而每一个被传送的封包均夹带了一个被伪造的来源地址,这个被伪造的来源地址指向同一受害者。Smurf 攻击并非很复杂,它只是一种路由递送(routing)然后让 IP 层做它原先应该做的事情。攻击行动大致可分成五个简单的步骤:
(1)客设定好欲加害的目标网站的 IP 地址(你的网站服务器通常会是个很不错的明显目标)。
(2)黑客设定好某个中间网站好大量传播攻击信息(通常会有数个网站被选定,如此一来可以让人对其攻击捉摸不定)。
(3)黑客对中间网站的广播地址(broadcast addre)传送大量的 ICMP(ping,layer 3)资料。这些资料封包的来源地址被伪装成受害网站的地址。
(4)中间网站在 layer 2 一旦这些伪造的封包被送出,即有可能造成受害者计算机系统或网络瘫痪的情行发生。你可能会问,一点点 ping 的资料传送怎么会把一个网站搞垮?假设某个黑客有一个 Cable Modem 或者是 T-1 联机,它传送 1-Mbps 的造假 ICMP 信息到中间网站。现在,如果这些中间网站有 150 个主机响应这个 ICMP 信息,这么一来,就有 150-Mbps 的攻击信息从传播者(amplifiers)大量传送到受害网站。只要黑客的联机还在以及这些传播者持续广播 ICMP 信息,他就可以保持攻击不断。为有效改善此一问题,你必须过滤进出入的网络联机。
如果你是类似 Smurf 攻击的受害目标,你可以采取一些步骤来将这种攻击的伤害程度降到最低。虽然许多企业都安装有防火墙,或是在路由器上设有ACL(Acce Control List), 但是为防万一,应该针对过滤规则详加检查。你可以对企业外部的防火墙与路由器送出一伪造的封包,并注意防火墙与路由器的响应。正确的结果是,防火墙与路由器不仅应该阻挡该伪造的封包,同时也要有相对的记录(Log),以显示该封包以被丢弃。虽然此一方法可以有效检查过滤规则的安全性,但是它相对地也可能引起另外一种新问题,也就是塞爆记录文件导致系统瘫痪。因此,你除了检查过滤规则设定是否正确之外,也要确认记录系统(Logging System)是否能够支撑大量的负载,否则,你仍可能会受到DOS阻断服务攻击而使系统崩溃。
以Cisco IOS为例:在 Cisco IOS 最近的改版后,被掌控单(acce-list)拒绝的资料封包会以非常快的瞬间丢弃(接近硬件速度)。除了掌控单上每一行每秒两个资料封包外,这两个封包会被用来回传 ICMP 无法传送(unreachable)的讯息给传播者。因此,如果你不要 ping 某个地址,你只要将 ping 挡掉就可以了。如果你要在掌控单上纪录该设定,使用 ip icmp rate-limit unreachable 指令即可。如果你必须让别人 ping,你可以使用 Committed Acce Rate(CAR)来限定 ICMP 的资料量。这样你就可以限定掌控单上网络的数据传输。以下是另一个 Cisco IOS 的范例:
config t
Acce-list 100 permit icmp any {your network} {your subnet} echo-reply
Acce-list 100 permit icmp any(your Network)(your Subnet)echo
Interface e1
Rate-limit input acce-group 100 512000 8000 8000 conform action transmit exceed
action drop
在上面的例子中,将 ICMP 的数据传输量限制在 512 Kbps,瞬间传输速率(transmit burst rate)为 8,000 bits。所有超过这限制的资料封包都会被丢弃。你还可以在一个接口上再加一个以上的rate-limit 指令,以便控制其它种类的网络传输。你的防火墙或路由器过滤规则设定原则:
(1)任何进入你网络的封包之来源地址不可以是你内部网络的地址。
(2)任何进入你网络的封包之目的地地址必须是你内部网络的地址。
(3)任何离开你网络的封包之来源地址必须是你内部网络的地址。
(4)任何离开你网络的封包之目的地地址不可以是你内部网络的地址。
(5)任何进入或是离开你网络的封包的来源或是目的地地址不可以是虚拟IP地址或是RFC1918所列的保留IP地址。以上所提的IP地址包含10.x.x.x/8, 172.16.x.x/12, 192.168.x.x/16,以及本机127.0.0.1/8。
(6)阻挡所有可被绕送(Routed)的来源封包,或是阻挡具有IP Options Field set的封包。
(7)其它被保留、DHCP自动设定与Multicast的网络地址与应该一并阻挡,如a、0.0.0.0/8、b.169.254.0.0/16、c.192.0.2.0/24、d.224.0.0.0/4、e.240.0.0.0/4。
如果你已经受到此类的攻击,打算追捕这类攻击的来源,可以按照以下的步骤:
(1)到传播者的 IP 地址空间,然后联络它们的网络管理者。记住,这些你所看到的这些封包是来自于传播者,而非黑客本身。
(2)请求他们将针对受害网站的 IP 地址传送信息的来源的网络传输纪录下来。这些就是伪造来源的网络资料封包。
(3)取得这些伪造来源的网络资料封包的 MAC 地址,然后请他们对这个 MAC 地址执行 show ip arp 的指令(如果使用的是 Cisco IOS 的话)。
(4)指令执行结果会显示伪造来源的资料封包的 hop 的出处。
(5)找到谁控制那个 hop 出处的路由器,然后通知他们的网络管理者。
(6)重复步骤 2 到 5 直到找到一个直接连结你正在追踪的 MAC 地址的路由器为止。
完成以上工作后,你可以把所有纪录文件保留起来,将资料交给公安机关网络安全调查部门即可。
5、制定Logging记录的机制
一旦你对外开放网络服务而且允许网络联机进出你的网络,那遭到黑客入侵与渗透的机率将大增。现在几乎每天都会有新的安全漏洞被发现,而用户更是难以预防黑客去利用这些新的漏洞来入侵。这时你的网络上或系统上最好建立完善的记录机制,要不在遭受黑客攻击后,你不仅将无从得知黑客到底在你的系统上动了哪些手脚,相对的你的网络安全风险也就越高。良好的记录机制可以协助用户追踪已发生过的事件、时间、和掌握哪些主机被入侵及其经过。所以说,你必须以持续不断的方式在重要的系统上落实记录的工作,而且记录当应该予以备份保存,因为说不定哪天你的网络被入侵时,这些记录资料就是协助你了解案发经过的最佳证据。
在日常检查中,网管一定要逐一检查重点系统上是否具备或是已激活记录的功能,同时注意记录文件是否加以集中储存,以及定时备份。一般来说,需要加以记录的重要系统包含路由器、防火墙、网站服务器、Email邮件服务器、数据库系统等。
用户应该将所有的系统设定具备本机记录的功能,并且将所有记录文件传送至远程的集中记录系统作统一储存与深入的分析比对。这样一来不仅可提供更高一层的安全性,相对地亦提供资料遗失时的备援机制。举例来说,在某主机的记录文件上发现可疑的记录或许不足为奇,但是如果同时间在50部主机上都出现相同的记录,那即有可能代表已发生严重的问题了。我建议用户将记录文件传送至统一的中央记录服务器(central log server),并将记录信息写入仅限单次写入的储存媒体,以防止黑客删除、破坏、修改记录文件,或甚至是想躲避侦测与记录。
6、封补CGI共通网关接口程序的漏洞
绝大多数的网站服务器,如微软的IIS与Apache均支持Common Gateway Interface共通网关接口程序(CGI),以便在网页上提供如资料查询等交互式的功能。事实上,有许多的网站服务器在安装时即内含范例CGI程序。但由于有许多的CGI程序设计者往往忽略CGI程序提供互联网上的用户直接与操作系统连接的通道,而成为黑客的最佳切入点。从许多的案例表明,黑客可利用服务器上现成的CGI程序来窜改网页内容、窃取客户信用卡资料、甚至是植入后门程序以力更进一步的入侵。最主要的原因是有许多网站服务器应用程序是由经验不足或是粗心的程序设计者所撰写。因此,切记你一定要将服务器上范例的程序删除。
如果你的网站服务器上有任何的范例程序,那相对风险越高。如果你欲使用CGI程序,则请确定你使用的是最新的版本,同时你也应使用漏洞扫描工具来对你的服务器作一完整的检查。针对CGI相关的漏洞,可以利用 “Whisker”(http://www.daodoc.compilers)与翻译器(interpreters);
(6)将原始码检视功能自cgi-bin目录中删除 ;
(7)切记勿以管理者的权限来执行服务器功能。你应该以权限较小的“nobody”帐号来执行服务器;
(8)请勿在不需要使用CGI的服务器上设定CGI支持功能。
结语:
网络安全一直无法落实的主因就在于,不知道漏洞的存在,甚至不去实时修补漏洞,那黑客铁定比你清楚如何利用它。正确的网络安全观念并不是一昧的购置网络安全产品,更重要的是主动正视安全漏洞的问题,落实所谓「Intrusion Prevention入侵预防」,并且实时做好漏洞修补的工作,让黑客根本就不得其门而入!将该广播信息传给它的子网络的所有主机