★扫盲基本概念
◇什么是漏洞?
所谓的“漏洞”,简单来说,就是会引起各种问题的软硬件缺陷(软件业的行话叫 Bug)。要知道,任何东西都不可能是完美的,软硬件系统也不例外(毕竟开发软硬件系统的程序员/工程师,也是凡人,也会有出错的时候)。
◇什么是安全漏洞?
在上述提到的缺陷中,那些会被攻击者加以利用的,并因此导致安全问题的缺陷,就是所谓的“安全漏洞”。
◇什么是补丁?
补丁是一个很形象的说法。如果你衣服破了个洞,只要打个补丁,不需要把整件衣服换掉。同样的,如果你的某个软件有漏洞,也只要打一个补丁,不需要重新安装新版本的软件。大多数情况下,补丁和漏洞是配套的。
◇什么是攻击代码 / 攻击程序?
为了利用某个安全漏洞,黑客需要运行某个程序,这个程序就叫做攻击程序(也叫“攻击代码”)。通俗地说,攻击程序和补丁之间的关系,就好比矛和盾之间的关系。
★安全漏洞的分类
除了上述的基本概念,你还需要大致知道安全漏洞的分类方式。
◇按照所在软件的类型分类
根据出现漏洞的软件的类型,可以把漏洞分为“操作系统漏洞”、“应用软件漏洞”、“Web 漏洞”等。
所谓的“操作系统漏洞”,就是操作系统本身有的安全缺陷。
所谓的“应用软件漏洞”,就是你安装的软件所内含的安全缺陷。
近几年来,基于 Web 的攻击日益增多,所以把 Web 漏洞单独分一类。所谓的“Web 漏洞”,也就是跟Web相关的漏洞——包括了浏览器本身的漏洞和网站的漏洞(本系列的下一篇会具体介绍这方面的知识)。
◇按照危险级别分类
还可以根据漏洞的危险程度,进行分类。通常按照“高中低”分三级(也有把危险级别定为5级的)。级别越高,就越危险。
对于高危的漏洞,有可能导致攻击者在你的电脑上植入木马。
◇按照攻击代码的位置分类
针对攻击代码所处的位置,可以把漏洞分为“远程漏洞”、“本地漏洞”两类。
所谓的“远程漏洞”,就是说,攻击者只需要在另外一台机器运行攻击代码,就可以让你的电脑中招。
所谓的“本地漏洞”,就是攻击者的攻击代码必须在你的机器上执行。
◇按照补丁的情况分类
刚才已经解释过了“补丁”和“漏洞”之间的关系。对于大部分漏洞而言,都有对应的补丁;但是少数漏洞没有补丁。没有补丁的漏洞是很危险的。为啥会出现这种情况捏?俺稍微解释一下。
1. 未公开的漏洞
有些黑客发现某个漏洞后,没有在圈内公开,也没有告知对应的软件厂商。那么这种漏洞就变成“未公开的漏洞”。因为没有公开,软件厂商不知情,自然也就没有发布补丁。
这种漏洞【最危险】,有可能长期被攻击者用来入侵。据俺所知,有些高危漏洞已经在黑客圈内流传多年,而相应的软件厂商依然不知情。
2. 零日漏洞(Zero-Day)
如今互联网很发达,某些资深且勤奋的攻击者可以对漏洞的发布作出快速反应。一旦某个漏洞的细节被公开,他们可以在24小时之内制作出相应的攻击代码。而这个时候,软件厂商多半还没来得及发布补丁。那么这些攻击者就可以利用这个时间差,进行入侵活动。所以,安全圈内也把这种漏洞称为“零日漏洞”(洋文叫:Zero-Day 或 0-Day)。相对于“未公开漏洞”,“零日漏洞”可利用的时间段会短一些。比较负责任的软件厂商通常会在一周或一月之内发布补丁。不过捏,也有些不靠谱的公司(包括大公司),要拖上好几个月才发布漏洞补丁(比如 Oracle)。
★漏洞的防范措施
针对漏洞的这几种不同分类,俺分别介绍一下几种基本的、常见的防范方式。
◇个人防火墙
个人防火墙主要用于防范“远程漏洞”,对于“本地漏洞”,防火墙基本帮不上忙。
因为大多数远程漏洞,都存在于你机器对外开启的监听端口中。个人防火墙可以阻止这些端口对外开放,从而避免潜在的漏洞被攻击者利用。
自从 Windows 2000 开始,微软就在操作系统中内置了防火墙功能。对于 Windows XP 以及之后的版本,可以直接到控制面板中开启它。
另外,俺强烈建议:【不要】用国产的防火墙产品。别要怪俺崇洋媚外,具体原因可以参见俺之前的帖子(在“这里”)。
如果你的电脑只是用来上上网、聊聊天、看看电影、用用办公软件,那你完全可以把防火墙设置成——不开放任何对外的端口。这样一来,即便你的电脑中存在远程漏洞,也不易被攻击者利用。
◇定期升级系统补丁
Windows 系统的漏洞一直比较多——毕竟用户群太大,容易被黑客盯上。所以从很多年以前,微软就开始定期提供 Windows 补丁。具体的做法是每月的第二个星期二,发布新发现的漏洞的补丁。另外,如何发现高危的漏洞,也会临时发布紧急补丁。
从 Windows 2000 开始,系统就支持自动的补丁升级机制。你只要在“控制面板”里打开“自动更新”这个功能,然后选择“自动”方式。你一定要确保系统的"自动更新"机制处于启用状态。这就可以堵住很多操作系统漏洞,从而降低攻击的风险。
提醒一下:自动更新不是 Windows 独有滴。其它一些用户群比较大的桌面系统(比如:Mac OS,Ubuntu)也提供了自动更新安全补丁的功能。
◇启用软件的自动更新
有一些做得比较好的软件,会内置自动更新功能(比如:Firefox、Chrome ...),一旦其官方网站有新的版本或补丁,就会自动下载并更新。如果你担心这类软件有安全问题,可以启用它们的自动更新功能。
◇使用小众且活跃的软件
俗话说树大招风。越知名的软件,就越容易引来黑客的注意,被发现安全漏洞的概率也会增大。
比如说:IE 的用户群最大,针对 IE 漏洞的挂马攻击是各种浏览器中最普遍的;Firefox 相对就少很多;而 Chrome 和 Safari 就更少了(不过捏,随着 Firefox 和 Chrome 的流行,针对这两款浏览器的攻击也多起来了)。
再比如说:同样是 PDF 阅读器,Adobe Reader 被曝光的漏洞就比较多,相对而言,Foxit Reader 和 PDF-XChange Viewer 就没这么多问题。
为啥俺还要强调【活跃】捏?小众软件根据活跃程度可以分为:活跃 or 不活跃。不活跃的软件,通常说明:开发者维护该软件不够积极,也就意味着该软件在【漏洞修复】方面不够迅速/及时——这就会导致安全风险;反之,活跃的软件,就没这个问题。
关于安全漏洞的基本防范,今天就聊到这里。考虑到近年来,针对 Web 攻击的情况剧增,本系列后续的帖子会说一下 Web 相关的话题。
回到本系列的目录
版权声明
本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者编程随想和本文原始网址:https://program-think.blogspot.com/2010/08/howto-prevent-hacker-attack-4.html