主题:【原创】网络安全的故事(一) -- 代码ABC
恭喜:你意外获得【通宝】一枚
鲜花已经成功送出。
此次送花为【有效送花赞扬,涨乐善、声望】
test
而且也不麻烦。
代码兄说的对:入侵之后如何不留痕迹相对而言更困难。
另外就是现在的网络,由于日趋复杂,(这个看看全球网络拓扑图就知道),而且由于某些局限性,单机安全已经不再是信息安全的象征。代码兄在文章中也提到过当蠕虫大爆发的时候他们的服务器和断了也没什么区别。网络等于还是瘫痪了。
若兰曾经经历过这样一个例子,当时某xx波病毒发作的时候,H大学仅仅数台机器感染,竟然造成了整个网络出口的阻塞,要知道那是省网络出口啊。
因此现在的AV从业者(Anti Virus),是绝对不能只看树木不看森林的。
最后逐篇花代码兄。
据我所知,国内也就金融业还在用COBOL吧,被IBM帮住了。
读完前辈文章,斗胆多说几句,不对请前辈指正。国内现在黑客圈子基本已经分工很明确,有漏洞挖掘者负责研究各种漏洞,攻击手负责入侵取得数据或者进行某些操作,销赃负责倒卖数据获取利益。而且国内入侵小组完全不比国外逊色,他们有专门的开发人员和专业的翻译和数据分析人员为攻击者渗透。至于他们的工具,我所知道木马已经发展到MBR的级别,基本普通的格式化重装已经没办法对付了,至于bios木马也不是没有,普通的对抗手段基本很难找出行踪。木马智能华也是趋势,比如安装后立即切断杀毒软件的上传渠道,使用协议封装来伪装自己的控制包,一些智能木马更会侦查用户有上网行为才对外发送数据。作为企业安全对抗这些攻击基本是非常困难,外面现成的IDS/IPS基本没法用,个人曾经操作过macfee的IPS设备,误杀太多自动阻断基本没法开,受不了业务部门压力。只好旁路成IDS用,结果每天数据直接把人淹死也没发现啥。后来实在无法只好自己去定做,投入大量人力物力还没解决很彻底。大公司尚且如此,小型企业更是等死。
入侵后第一件事情就是掐断日志记录,而且日志很多时候是备查,靠日志去防护入侵基本已经落了下风。
SQL的worm事件,我记得。
当年也管着一些系统,记得半夜12点时,网络断了。我第一反应是给Telecom Carrier 打电话,结果人先问我,你有SQL吗,我说,我有SQL和你们的网络断了有关系吗?结果被无情嘲笑了:哈哈,SQL的worm让小半个美国都瘫痪了。
第二天把补丁打上,就好了。
做系统挺烦地,我当年从没有休过连续超过一周的假。一天24小时,不知道什么时候就出事了。
在做过两三个MOSS项目开发后,我打定主意不再碰这玩意了。
很久之前的知识了,不知道是不是已经奥特了。
1.系统缺陷。
入侵手段:主动扫描然后实施定制攻击。
防卫手段:防火墙,打补丁,关闭服务,限制服务进程权限,让外部的安全服务公司定期扫描。
2.用户陷阱。
入侵手段:使得用户下载并运行有害代码。
防卫手段:防毒软件,traffic scanning/filtering,只允许用户写入个人目录,同时禁止执行个人目录里的文件。
不过有害代码不止是可执行文件,还需要加以细分。找不到一个code invocation机制的清单。
其他的应对机制:
1.netflow based traffic analyzer,行为出格的服务器,客户地址可以被自动断网或限制流量。
2.可回滚的网络存储,服务器的硬盘状态在一定时间内可以任意回滚,克隆。
1.系统缺陷,黑客手上的漏洞是地下的也就是未知的,可能连操作系统厂商自己都不知道更不谈补丁了。并且现在攻击缺陷并不是系统层面的,例如sql注入,这是web应用问题,防火墙根本无法解决。
2.杀毒软件从本质说他也是取得比病毒更底层的系统控制权才能清除病毒,当木马的系统hook比杀毒软件更底层那杀毒软件只有被杀的份。
3.流量可以伪装而且有经验的黑客不会弄出出格流量的。
4.小心网络存储被人给黑了,有专门感染gho文件的木马。
1.我把SQL注入也归入系统缺陷,只是在应用层面。这是典型的菜鸟程序员造成的问题。老鸟一般都把外部输入参数化。新的web程序一般也不再直接生成SQL,而是透过framework来和数据库交互,framework里也都是参数化的。OS一层的漏洞发现和厂商发布补丁之间的时间差一般小于两三个星期。IT部门如果每月打补丁,则有不到两个月的风险期。流程自动化程度高的话overhead可以忽略。
2.后面的措施就是为了防止木马被加载。
3.不光是流量,还有连接,比如服务器A不应该访问服务器B,现在switch上报告多个A到B的访问企图,可以判断A有问题,下一步控制switch作出反应。
4.网络存储指SAN,支持continuous data protection的SAN,和虚拟层一样,在OS的下层运行。
5.还有一点,前台服务器本身做成state less的虚拟机,如果存疑即将虚拟机状态回滚。或者干脆有个server farm,成员们轮班定期回滚。
从理论上说,所有的安全问题都是可以解决的。用足够的技术手段,基本上可以保障系统的绝大多数安全,剩余的风险是很小的。
但是,任何技术手段都是有成本的。这个成本,最大的一块不在软硬件,而在用户。技术手段的使用,往往使用户的日常工作效率下降。为了防范0.01%的风险,却要把20%的工作效率下降1倍,这是不可接受的。而当前的绝大多数技术手段,都差不多是这样的一个特征。
因此,对很多大型组织来说,出了问题去针对性解决的做法,可能反而是成本最低的做法。
但在云里可能就是标配。不过那些防止木马加载的招式基本不费什么。
在服务器端,在虚拟平台上,黑客的攻击努力就像教一个可能随时或定时失忆或死亡的人学坏。
在桌面系统上出现的技术是应用程序和操作系统被de-couple(应用虚拟化),之后应用程序运行在独立的虚拟环境中,读写也在自己的虚拟文件系统里,无法影响到操作系统。并且每个应用的虚拟文件系统可以单独回滚。
虚拟化,或者叫app/OS,OS/hardware de-coupling令黑客的攻击对象下面又多了一个有intelligence的层,可以全面监测被攻击对象的IO,资源利用状况而不必担心本身会受到攻击。这一层也可以控制被攻击对象的状态。当然,虚拟化的好处远不止对付黑客。
系统缺陷级漏洞完全无法克服。
04年我在某大学安装cisco ipt系统,call manager运行sql server,当时满校园网都是蠕虫,自己不知道,插上服务器一分钟启动完成后立刻完蛋,完全防不住。
目前我就职的地方对网络安全要求也很高,兄台所说的网络安全我认为有很多是系统安全范畴。我平时所做的网络安全工作主要是:
1.2层安全:端口安全保障,防止无线(wifi)嗅探入侵,以太端口防嗅探,以及其他2层安全措施。
2.3层安全:网络分域管理(防火墙,vlan隔断,策略控制),基于域用户的防火墙访问控制管理(非常严格),流量分析,日志分析,vpn管理。
3.4层安全,基于tcp的流量分析,日志分析,应用防火墙策略管理-其实已经做不了什么了,主要是分析和防范。
再往上有专门的信息安全团队进行工作,我们不能插手应用服务器的安全保障管理。
不幸的是前些日子辛辛苦苦构架的体系被公司请来的黑客测试攻击搞定了,感觉很丢人。不过最后评判的结果是与我们无关,问题出在应用服务器上,三个很弱智的漏洞整合在一起,导致整个server-farm被攻陷并打开了通向总部的大门......
太丢人了。
唯一欣慰的是我们的网络安全防范得到肯定,固若茅坑一块砖,又臭又硬,外网攻击全部失败,呵呵。
但是攻击测试的黑客哥是以总部出差的名义从内部发起攻击的,呜呜,堡垒最容易从内部攻克啊。