Internet的开放便利性,与网络安全的隐忧,一直是矛盾共存。随着企业对Internet依存的加深,对网络安全的防范与布署,就成了必备的知识。
大家都知道,特洛伊城之所以久攻不破,是它有一道坚固的城墙;在Internet上我们也需要一道坚实的防火墙,以确保防火墙不会因被击溃而导致企业内部电脑的入侵危机。
公元前12世纪,希腊与特洛伊的一场战争,造就了荷马(Homer)史诗中的两位英雄人物Achilles与Odysseus;而这场战争最终决定性的胜利竟然是一只木马,这样富戏剧性的结局更让人不可思议,除了具军事教训意味外,着实也多了许多趣味性。如今这场战争却活生生地搬上了Internet舞台,虽然少了美女Helen助阵,不过精采的程度却不下于3000多年前的盛况,只不过整个场景都虚拟于网络之中。。
打造一道网络城墙
据荷马史诗记载,希腊联军共围剿特洛伊城达十年之久,当时没有现代的空中部队,因此整个防卫所依靠的都是城墙!据说当时特洛依城城墙厚度达五公尺,在这么坚固城墙防卫下,希腊一直都无法将特洛依城攻下。
相对于特洛依城墙的厚度,到底一道网络的城墙要多“厚”才安全呢?在Internet中的城墙,我们称之Firewall或是防火墙,主要的作用是进行网络交通过滤与管制。
这道网络虚拟的城墙强度虽然不能以实体厚度来衡量,但打造这道城墙同样要考虑到“是否地基够稳?”、“是否有钢筋结构?”、“城门卫兵是否尽职?”,此外这一整套控管机构“是否有品质保证?”,如此才能评判防火墙是否足以抵御外侮。
打造一道网络城墙
高楼平地起,因此打好地基是建造一道坚固城墙的基础!如何打造防火墙的稳固地基?在电脑系统里,防火墙不能独立存在,必须建立在操作系统(OS)上,因此操作系统就是防火墙的地基。操作系统的稳固与否,在于安全性上是否有保障,从以下几个方面来设计操作系统,就能有稳固牢靠的地基。
1、以安全的角度出发,来设计操作系统
一般操作系统的设计是用来满足所有的应用环境,因此出发点是以“弹性”考虑,在此前提下,操作系统呈现的是“多而杂”,样样都可以做,不过却不见得都一定用得上;而以“安全”角度来设计的操作系统,设计的用途是专供防火墙用的,是个“小而美”的操作系统,因此可与防火墙紧密搭配,当然可以有效提升防火墙的强度。
2、删除不需要的功能与指令
系统存在的程序与指令愈多,漏洞也就相对地增加,黑客常常会利用操作系统上运作程序的漏洞,作为入侵的途径,并利用系统上可用的指令来破坏系统的运作。因此将不必要的程序与指令删除,黑客的攻击目标自然减少了。
3、删除所有操作系统上既存的程序的漏洞
有些程序是必须存在操作系统上以利系统运作,而这些程序本身仍然可能遭受到黑客攻击,因此作为一个防火墙上的操作系统,就不能沿用一般操作系统上的运作程序,必须重新审视程序内容是否隐藏漏洞,一一删除漏洞后再重新设计,然后才供系统运作使用。
为了加强建筑物的抗震强度,人们采用钢筋结构来强化耐震度。而在Internet世界中,黑客的入侵手法日益先进,入侵事件更是与日俱增,就好比强震一波波朝防火墙袭击而来,因此有必要为防火墙加筑钢筋结构才能有效抵挡黑客的“强震”撼动!
1、各程序具有独立的执行空间
各程序执行时不能彼此干扰,同时也不能共用相同目录,否则一旦某一个程序遭受入侵,其他程序也可能同时遭殃。因此各程序执行时所需的文件,如函数库或指令,都必须摆放在各自的目录中,不能有共用的情形。
2、各程序以最少许可权执行
每一个程序的执行者权限只够执行程序本身,同时不能任意切换目录,以防止权限设定不当的破坏。
3、所有权限类别设为只读
为了确保防火墙系统的正常运作,避免黑客破坏正常运行的程序或类别,甚至防止黑客程序伪装成正常程序,将防火墙系统上的权限类别设为只读,黑客就不能进一步进行破坏。
4、没有超级使用者
一般操作系统中均存在一个超级使用者,掌控所有系统的权限,在Windows系统中叫做"administrator", Unix中叫做"root"。一旦黑客取得这个使用者帐号,即可对系统进行全面性破坏,例如中断防火墙的运作。因此防火墙上的操作系统应该没有超级使用者,才能有效避免黑客破坏防火墙的运作体系。
防火墙是设计用来管控所有进出的数据包,而管控的体系因控管的程度而有所区别,我们称之为防火墙的控管级别,这就好比城门守卫,管制进出城门的人员。如下图所示,目前防火墙的控管级别大致上区分为三层:
防火墙的控管级别
Packet Filtering:
Packet Filtering是最基本的防火墙控管,只能管控Network级别的数据包内容,因此过滤速度是三种级别中最快速的,相对的对于管控的安全性是最差的。举例来说,这就好像H君企图送杂志包裹给城内的A书店,Packet Filtering只检查H君的通行证,以及查询是否允许杂志包裹进入,如果答案是肯定的话就给予放行,否则给予阻挡。因此有可能H君所宣称的杂志包裹,实际上是邮包炸弹;同时也可能有人从中挟持H君的通行证,企图用伪冒身分闯关。
Stateful Inspection:
因为Packet Filtering不能有效地保证存取身分,因此有可能发生IP Spoofing的黑客事件,也就是伪冒身份的存取。Stateful Inspection就是为了弥补此一缺陷而改进的Packet Filtering技术,它位于MAC Layer,能持续追踪每一个开启端口的连线,直到连线终止。
Stateful Inspection
同前例,此时守卫在H君进入城门时验明正身后,一路上即予以监视录像,同时并联络A书店是否收到一件杂志包裹,直到H君送完包裹步出墙门后,整个监视过程才终止。因为一路上监视,因此能有效地防止H君被从中挟持而遭伪冒;虽然它能追踪包裹是否完整送达,但也可能宣称的杂志包裹其实是邮包炸弹!
Application Layer Gateway:
上述的两种控管机制,都无法完整管控整个数据包传递过程,Application Layer Gateway顾名思义是能控管到达每个Application,也就是说防火墙需要了解每个Application到底在作些什么事。因此要控管HTTP,防火墙就必须为HTTP写一个控管程序,这支程序知道HTTP实际上的运作内容为何。因为每种应用程序都有相对应的控管程序,因此Application Layer Gateway的防火墙可以完整地管控每个进出的数据包;同时与前两种控管机制不同的是,Application Layer Gateway会将连线存取的行为,转交由防火墙进行,而不是两端点间的直接连线。
Application Layer Gateway
同前例,H君要送杂志包裹给A书店,城门守卫验明正身后会将包裹接下,同时打开包裹检查是否为杂志,确认后由守卫亲自将包裹送达A书店。如此就不用担心是否包裹被从中掉包,同时确认包裹内容。
在特洛伊战争中,要不是特洛依人多事将木马拖入城内,也不会造成木马屠城的惨剧;不过在Internet的时代,防火墙城门是不能紧闭的,在某些程度上甚至是欢迎大家光临的;控管只是要降低与外界的接触面,并不能完全阻隔。因此提供外界的连线存取是有必要的,而依赖防火墙的连线存取控管,是否就可以免于黑客入侵了呢?
答案是否定的。防火墙可以阻挡一些入侵行为,但是并不能完全抵挡。依连线控管级别来分析,采用Packet Filtering或Stateful Inspection控管机制的防火墙,可轻易被伪装成正常网络程序端口号的后门程序欺瞒!Application Layer Gateway能阻挡的入侵行为最多,包含防止身分伪冒、数据包调包以及确保协定内容的真实。但这些还是不够,因为即使传输内容合乎协定标准,但是数据包内容传递至远端系统后,系统的反应却不见得是正常的。
就如同上述的例子,A书店如果是儿童书店,而收到的杂志内容却是光怪陆离,或是色情暴力,这样对于书店读者来说反应是负面的,其实并不应该收下这些杂志的。但因为守卫并不负责书刊分级,他只管将东西传送到目的地,A书店还是照单全收,书店也只好自行处理这些垃圾;有时也可能收到一大堆的垃圾杂志,堵住整间书店,以致不能正常营业!
而在Internet的环境中,各Internet Service的问题通常还更严重,我们称之为“弱点(Vulnerability)”或“漏洞”,黑客可以利用Internet Service的正常传输指令,夹带的却是系统所不能接收的内容,来达到入侵系统有弱点的主机的目的。一旦入侵到内部系统后,就有机会再入侵到其他系统。
这就是一副网络木马屠城图:防火墙提供内部的Web与Mail供外界存取,Internet使用者使用标准的程序或指令来达到连线的目的;黑客却可以利用这些已开启的通道,对内部Web Server与E-Mail Server进行破坏,且一旦破坏成功后,又转而破坏其他Unix与NT主机。
常见的系统入侵行为
在防火墙的保护伞后面,仍然会遭受外部入侵的行为有:
1、妨碍系统正常运作(Denial of Service),以让所有网络连线中断为目的。
2、Buffer Overflow利用程序设计的疏失,异常中断程序运作。通常会伴随“root exploit”或“backdoor”的攻击。
3、截取超级使用者权限(root exploit)以控制系统,并据此攻击内部其他机器。
4、安装后门木马程序,供黑客随时进入系统用,同时自动收集相关信息传送给黑客。
网络需要全方位防卫
特洛伊城之所以久攻不破,是它有一道坚固的城墙,不会因城墙溃败而引来全面性的杀机;在Internet上我们也需要一道坚实的防火墙,以确保防火墙不会因被击溃,而导致企业内部数十乃至数百台的电脑的入侵危机。但木马屠城却给我们另一层的启示: