分层与封装(5) 计算机系统的安全性
如果说一个人的工作是数据库管理员,负责恢复数据库,看上去是一个十分苦逼的体力活;但如果说一个人是黑客,瞬间变得高大上起来。这是因为安全性的问题是每个人随时都会遇到的。计算机系统的安全性随着系统的复杂而复杂,一般来讲安全问题不会发生在内部,也不会发生在外部,通常是发生在系统和系统的交接处。
最早期的黑客是通过模拟电话信号盗打电话而成名的,这也给人以黑客是高科技犯罪的印象。这种早起的攻击方式利用了电话网络和电话线路的接口中,电话系统默认所有电话信号都是合法的。所以只需要能够模拟出类似的信号就可以了。类似的技术现在依然很流行,比如中间人攻击通过和通讯两端建立分别联系,而获得两者之间的通讯内容。比如你在北京星巴克开一个免费Wifi,一定会有很多人去连你的Wifi,这样你就可以获得这些人上网所产生的信息。如果某些网站传输密码是没有加密的,那么你就可以得到他的账户名和密码了。
比如注入式攻击,在网页上原本输入密码的地方输入可以执行的代码,后台系统在进行登录操作的时候原本只是想检查密码是否正确,却不慎执行了黑客恶意的代码。这个攻击方式利用了人和页面的接口——密码框,页面和后台系统的接口——密码验证程序,完成了攻击。能成功要依赖于很多假设,比如页面上的确有能够自己控制输入的地方,输入的内容会成为某段代码的一部分,输入的内容会完整的进入到代码。这些条件想要都达到,后台程序心也是挺宽的。
当然大部分系统不会这样让你直接在里面运行你想要的程序。所以会出现各种病毒程序,通过各种各样的手段下载到你的机器上然后运行。这依然是利用了机器和网络的接口将有害代码下载到机器上。这里你的机器或者你产生了假设,所有网上下载的程序都是健康的,或者是符合他们名字所述的。比如你下载了XX影片播放器,然后点击EXE之后他告诉你说这是损坏的文件,但实际上这个程序很可能已经开始运行了。你的电脑打开了后门可以被人远程操控。
除了机器和网络的接口外,人和机器的接口是出现问题最多的地方。比如钓鱼网站,通过模拟一个QQ登录页面,让你登录QQ去访问相册或者其他内容,你输入QQ号和密码之后,网页跳转到真正的页面去,而你已经将你的信息通过钓鱼网站虚拟的页面交给了黑客。这里你假设了长得和QQ登录页面一样的网页就是QQ登录页面,以及别人给你的链接是无害的。尤其现在你通过网络的虚拟身份与机器进行对话,虚拟身份的验证方式就是密码,所以机器实际上是有这样一个假设:能输入正确密码的就是你本人,这导致了密码泄露是最严重的安全问题。
甚至于人和人之间的接口也是问题,比如在美国如果知道你的社保账号可以做很多事情,比如开信用卡。有一天你接到一个电话声称是你开户银行的客服,询问你最近是否有一笔交易没有执行,然后要你提供社保账号来确认交易信息。这个和钓鱼网站的本质是一样的,只不过由于是人和人之间的交流,可以有更多可操作的成分在里面。比如他们快速筛选了很难上当的,同时由于询问了你是否有交易没有执行,如果有1%的人当天的确发生了这样的情况,那么这里面就存在了机会,接电话的受害者因为这个巧合而相信了对方的确是银行工作人员。这里面没有使用任何技术,有人称之为社会工程学,即通过非技术手段得到技术破解的解决方案,俗称骗子。
黑客的目的也多种多样,有的是有针对性的要获得某个人的相关信息;有的是想要获得随机某些人的账户信息即可;有的是以破坏为乐,比如破坏计算机系统;还有的纯粹是为了提高系统的安全性而做研究。不同的目的也会有不同的方式,比如同样是要窃取密码,如果是针对某个人的话,通常会先掌握这个人的情况来先具体分析,比如这个人在网站A,B,C都有账号,那么很有可能他们采用的是同一个密码,如果网站C的安全性比较弱,可以从这里下手进行来反推出A的密码;如果仅仅是要盗窃一批账号的话,可以用比较一般的密码表,将符合这些密码表的账号都拿到,相当多人用的密码仅仅是简单的6位数字组合,或者生日等信息。
当然现今的计算机系统有很多防护手段,比如网络通信采用加密手段,网银登录采用第二套随机密码验证,各个漏洞都会即使打补丁,但有相当多的问题还是出在自己身上。最简单的防护方式就是将系统隔离出来,切断可能的联系方式,当然这是大部分人做不到的。那么就只好加强自己虚拟身份的安全性。第一点就是每个网站假设拥有你虚拟密码的人就是你本人,我们不能把这个假设扩展到知道你A网站密码就可以知道B网站的密码,这个会导致B网站的泄漏造成A的泄漏;我们也不能扩展到今天知道的密码,明年依然可以用,这个也会导致密码泄漏的可能性;更不能扩展到知道别人的密码,就可能知道你的密码,这个主要是因为泄漏出来的密码表上有很多人都用了同样的密码。
当然我们也有假设,我们假设了所有网站都是安全的,会保护好我的密码。但是对于很多低安全性的网站,采用更高安全性的密码并不能解决问题。我们也假设了我们看到的页面就是网站所有的内容,但很可能有不可见的脚本在页面上运行。我们还假设了没有人会去看Wifi上的数据传输内容,所有下载内容都是安全的,看到长的一样的网页就是一样的网页,链接里带QQ的网页就是QQ的网页,跟我说话的朋友就是我的朋友,自称是银行工作人员的人的确在那里工作,曾经是银行工作人员的人依然在那里工作……