什么是“黑客”,什么是“安全评估”

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、黑客介绍

1.1、黑客起源发展史

黑客文化的起源可以追溯到20世纪50年代和60年代的美国。
当时,计算机科学领域的先驱们开始研究如何改进和探索计算机系统。这些早期的黑客们对计算机技术充满了好奇,并试图突破计算机系统的限制。
1960年代末和1970年代初,贝尔实验室的计算机科学家和工程师成立了一个名为"Phone Phreaking"的小组。他们通过研究电话系统的工作原理,发现了可以绕过支付费用的漏洞,从而实现免费拨打长途电话的方法。这个小组的成员中有一位名叫约翰·德雷珀的人,他被认为是现代黑客文化的奠基人之一。
20世纪70年代中期,计算机网络开始兴起,形成了一个被称为"ARPANET"的早期互联网。这为黑客们提供了更多的机会来探索和挑战计算机系统的安全性。一些黑客开始尝试进入受保护的计算机系统,以证明它们的脆弱性,并提出改进的建议。
到了1980年代,随着个人电脑的普及和互联网的发展,黑客文化进入了一个新的阶段。一些黑客开始以破坏为目的,利用计算机系统的漏洞进行非法入侵和数据窃取。这导致了一系列的计算机犯罪事件,引起了广泛的关注和担忧。
随着时间的推移,黑客文化逐渐多样化,分成了不同的派别。有些黑客致力于提高计算机系统的安全性,被称为"白帽黑客"或"伦理黑客",他们通过发现漏洞并向系统管理员报告来改善系统的安全性。另一些黑客则追求个人或政治动机,进行非法活动,被称为"黑帽黑客"。
黑客文化的发展与技术的进步和社会的变迁密切相关。随着信息技术的不断发展,黑客攻击的形式和手段也在不断演变。同时,随着对网络安全的重视和法律的制定,黑客活动也受到了更严厉的打击。

1.1、黑客与脚本小子

对于现代计算机系统来说,用户的最高权限是root/administrator,也是黑客们最渴望能够获取的系统最高权限。

不想拿到最高权限的黑客不是一个好的黑客,漏洞利用代码能够帮到黑客们达成这一目标。

黑客们使用漏洞利用代码,被称为exploit,在黑客的世界里,有的黑客精通计算机技术,能够自己挖掘漏洞,并编写exploit;有的黑客只对攻击本身感兴趣,对计算机原理和各种编程技术的了解较为浅薄,因此只懂得编译别人的代码,自己并没有动手的能力,这种黑客被称为Script Kids也就是脚本小子

在现实生活中真正造成破坏的并不是那些挖掘并研究漏洞的黑客,大多数都是脚本小子。

1.3、黑客技术的发展

从黑客技术发展的角度来看,在早期,黑客攻击的目标以系统软件居多,一方面试由于当时的web技术发展不成熟,另一方面是通过攻击系统软件,黑客往往能够直接获取root权限。

在早期互联网中,web并非互联网的主流应用,相对来说,基于SMTP、POP3、FTP、IRC等协议服务拥有绝大多数用户,因此黑客主要攻击的目标就是网络、操作系统和软件等领域,web安全领域的攻击与防御技术处于非常原始的阶段。
相对于那些攻击系统软件的exploit而言,基于web的攻击,一般只能让黑客获得一个权限较低的账户,对黑客的吸引力远不如直接攻击系统软件。

随着防火墙技术的兴起,互联网安全的格局在逐渐改变,尤其是以Cisco、华为等为代表的网络设备厂商,开始在网络产品中更加重视网络安全,最终改变了互联网安全的走向。
防火墙、ACL技术的兴起,使得直接暴露在互联网上的系统得到了保护。

一个网站的数据库在没有保护的情况下,数据库服务端口是允许任何人随意链接的,在有了防火墙的保护后,通过ACL可以控制只允许信息来源的访问,在很大程度上保证了系统软件处于信任边界之内,从而杜绝了大部分的攻击来源。

2003年的冲击波蠕虫是一个里程碑式的事件,这个针对Windows操作系统RPC服务(运行在445端口)的蠕虫,在很短的时间内席卷了全球,造成了数百万台机器被感染,损失难以估量,在这次事件后,网络运营商直接屏蔽了135/445等端口的链接请求

二、黑帽子、白帽子

在黑客的世界中,往往用帽子的颜色来比喻黑客的好坏;白帽子则是值那些精通安全技术,但是工作在反黑客领域的专家;而黑帽子则是指利用黑客技术造成破坏,甚至进行网络犯罪的群体。

对于黑帽子来说,只要能够找到一个系统弱点,就可以达到入侵系统的目的,而白帽子是必须找到系统的所有弱点,不能有遗漏才能保证系统不会出现安全问题。这种差异是由于工作环境与工作目标不同所导致的,白帽子一般为企业或安全公司服务,工作的出发点就是要解决系统中所存在的安全问题,因此所看所想必然要更加的全面、宏冠;黑帽子的主要目的就是入侵系统,找到对他们有价值的数据,因此黑帽子只需要以点突破,找到对他们最有用的一点,一次渗透,因此思考问题的出发点是选择性的、微观的。

从对待问题的角度来看,黑帽子为了完成一次入侵,需要利用各种不同漏洞的组合来达到目的,是在不断地组合问题而白帽子在设计解决方案时,如果只看到各种问题组合后产生的效果,就会把事情变复杂,难以细致入微地解决根本问题,所以白帽子必然是在不断地分解问题,在对分解后的问题逐个予以解决

防御技术在不断完善的同时,攻击技术也在不断地发展,这就像是一场军备竞赛,看谁跑在前面。白帽子刚把某一漏洞全部堵上,黑帽子转眼又玩出新花样。谁能在技术上领先,谁就能占据主动,互联网技术日新月异,在新技术领域的发展中,也存在着同样的博弈过程,如果新技术不在一开始就考虑安全设计的话,防御技术必然会落后于攻击技术,导致历史不断地重复。

三、安全的本质

  • 安全的本质是保护系统、网络、数据或信息免受未经授权的访问、损坏、干扰或泄露的威胁。它涉及确保机密性(保护敏感信息不被未经授权的人访问)、完整性(保持数据的准确性和完整性)和可用性(确保系统和数据对合法用户可用)。
  • 安全的本质还包括预防、检测和应对安全威胁的能力。这需要采取综合的安全措施,包括技术措施(如加密、访问控制、防火墙等)、物理措施(如门禁系统、监控摄像头等)和组织管理措施(如安全策略、培训意识等)。
    安全的本质也与风险管理密切相关。安全不是一种绝对的状态,而是在不断变化的威胁环境中进行持续的评估和管理。通过风险评估和采取相应的措施,可以降低潜在威胁对系统和数据的影响,并最大程度地确保安全性。
    总之,安全的本质是在保护系统、网络、数据或信息的机密性、完整性和可用性的基础上,通过综合的安全措施和风险管理来防范和应对安全威胁。

四、基础术语的了解

4.1、后门

大家都知道,有些房子有正门和后门之说,后门和正门都可以进入这个房子,其较之正门的最大优点就是隐蔽性高,电脑技术中所说的后门是抽象概念,意指隐蔽性高或不常用的,区别于需要常规操作所使用的一种出入口。

现在的网络上,后门形形色色,不过最多的还是两类,一种是基于web类的webshell,一种是基于系统类的灰鸽子之类的软件。

后门这个词汇通常是具有贬义在里面,但是它的正面称呼应该是远程管理工具,现在一般网管对远程网站进行维护管理,就是通过类似功能的工具来操作,所以说,后门是作为双刃剑的一个典型黑客技术,既可以称为骇客控制网站后用作日后进出这个网站的方便之门,也可以是网管远程维护的好助手。

4.2、webshell

webshell就是一个ASP、PHP或JSP脚本编写的木马后门,也就是说这些脚本文件是基于WEB服务开放的服务器才有效,当然,如果一个服务器支持ASP却不支持PHP,那么你放一个PHP的后门上去也是不能奏效的。

webshell最大的优点就是可以通过防火墙的拦截,而且更具有隐蔽性,通常木马后门会在控制者控制服务器的时候留下大量的日志文件,而通过webshell控制的话,则只会在WEB日志下留下痕迹,而WEB日志的庞大性以及较差的可阅读性导致了许多管理员忽略了对此项的检查。

webshell的功能也很多,可以上传,也可以下载,如果权限大的话甚至可以执行系统的命令。

4.3、木马

应该都看过一部电影叫做<<特洛伊>>,十年战争的的最后,顽强抵抗的特洛伊城久攻不下,攻防故意留下一个藏有士兵的木质大木马并假装退兵,而守方以为这个木马是敌人逃跑太急而留下的,并当成战利品晕倒城中,结果夜晚,木马中的士兵悄悄出来,里应外合打开城门,杀了对方一个措手不及。

这个故事中,涉及到的木质马,就相当于现在的木马,而藏在木马里的士兵就相当于现今木马的各种各样的功能,而把木马运到城中的一方相当于网络中不计其数的网民。

4.4、肉鸡

肉鸡是指受到黑客或恶意软件控制的受感染的计算机或设备。这些计算机可能已经被恶意软件感染,使黑客可以远程控制它们,将其用于执行恶意活动,如发动分布式拒绝服务(DDoS)攻击、传播恶意软件、窃取个人信息等。肉鸡通常是在未经授权的情况下被黑客远程操控的,而其所有者可能完全不知情。

4.5、端口

端口其英文为PORT,可以简单的认为是计算机与外界通讯交流的出口,对于端口,可以用类比的方式来理解,比如端口可以被理解为是应用程序与应用程序之间用来通信和传输数据的通道,它就想系统的一道门,通过这道门,能够直接的将数据发送到某一个指定的应用程序,以便该应用处理特定的数据。

4.6、协议

协议就想人类的语言一样,也有很多种,它们供各种应用程序采用,如果两个应用程序都支持使用TCP/IP协议栈中的某种协议进行传输,那么它们就可以在使用TCP/IP协议栈的网络进行连接并交换数据。

TCP/IP协议栈有一个标准的参考模型,但是这一模型只是参考而已,并非最终的标准,它就是著名的OSI七层模型。

4.7、外网和内网

外网(Internet)指的是公共互联网,是一个全球范围内连接起来的计算机网络,它通过一系列的网络协议和技术允许全球范围内的计算机系统进行通信和数据交换。外网是对外开放的,任何连接到互联网的计算机都可以进行通信,并能够访问互联网上的各种资源,如网站、应用程序、文件等。

内网(Intranet)则是一种私有的局域网络(LAN),通常由一组连接在一起的计算机组成,用于在组织内部进行通信和数据交换。内网通常是基于TCP/IP协议的局域网,但其访问权限和连接范围受到严格的控制。内网通常用于组织内部的办公、资源共享、内部通信等,对外部用户是不可见的。

外网和内网之间通常通过防火墙等安全设备进行隔离和保护。防火墙可以监控和控制外部和内部网络之间的流量,阻止未经授权的访问和攻击,并确保内部网络的安全性和机密性。内网的资源通常需要经过身份验证和授权才能访问,以确保只有授权用户才能访问内部网络资源。

4.8、注入

这里的注入一般是值脚本上的注入,攻击者把SQL命令插入页面请求的查询字条串,欺骗服务器执行恶意的SQL命令,由于在某些表单中,用户输入的内容直接用来构造动态的SQL命令,或作为存错过程的参数,从而可以获取想得到的密码或者其他服务器上的资料。

4.9、Wscript.shell

Wscript.shell是windows自带的组件,因此它过于强大,所以经常被黑客加以利用,它可以调用系统内核运行的DOS基本命令,与此对应的还有三个危险组件,它们分别是:FSO、Shell.Application、WScript.Network。

4.10、跳板

可以把跳板比喻成一件伪装的外衣或面具,当带上面具在熟悉的人面前出现时,他们是很难分辨面具下的面孔究竟是谁,跳板的作用大概也是如此。

都知道黑客是不会把自己真实的地址暴露出来的,其中很重要的就是IP地址,如果真要查起来,是很容易找到本人的,但是使用代理或VPN连到国外,或者其他省份,这样在攻击的时候,在被攻击方的日志里留下的就是被控制的机器的IP,而这些被控制的机器就叫做跳板

跳板是一种安全控制机制,用于管理和访问受限制的网络或系统。跳板是一个经过严格配置和安全控制的服务器或计算机,通常位于安全边界之内,允许合法用户通过跳板来访问内部网络或系统。跳板服务器通常具有严格的身份验证和访问控制措施,只有经过授权的用户才能使用它来跳转到内部网络或系统。跳板服务器可以用于远程管理、维护和监控内部网络,同时提供了一层额外的安全防护,防止未经授权的访问。

4.11、VPN

VPN(Virtual Private Network,虚拟专用网络)是一种通过公共网络(如互联网)建立加密连接的技术,用于在不安全的网络上创建安全的通信渠道,以实现远程访问、数据传输和保护隐私。VPN通过在用户设备和目标网络之间创建一个加密的隧道,使用户能够安全地访问远程资源,同时隐藏其真实的IP地址和网络流量。

五、Web安全的兴起

web攻击技术的发展也可以分为几个阶段,在web1.0时代,人们更多的是关注服务器端动态脚本的安全问题,比如将一个可执行脚本上传到服务器上,从而获得权限。

  • SQL注入的出现是web安全史上的一个里程碑,它是最早出现大概是1999年,并很快就成为web安全的头号大敌,就如同缓冲区溢出出现时一样,程序员门不得不日以继夜地区修改程序中存在的漏洞。SQL注入攻击,可以获取很多重要的,敏感的数据,甚至能够通过数据库获取系统访问权限,这种效果并不比直接攻击系统软件差,web攻击一下子就流行起来。
  • XSS(跨站脚本攻击)的出现则是web安全史上的另一个里程碑,实际上,XSS的出现时间和SQL注入差不多,但是真正引起人们重视则是在大概2003年以后,在经历了MySpace的XSS蠕虫事件后,安全界对XSS的重视程度提高了很多。
  • 随着web2.0的兴起,XSS、CSRF等攻击已经变得更为强大,web攻击的思路也从服务器转向了客户端,转向了浏览器和用户。

六、实施安全评估

一个安全评估的过程,可以简单地分为4个阶段:资产等级划分、威胁分析、风险分析、确认解决方案。

一般来说,按照这个过程来实施安全评估,在结果上不会出现较大的问题,这个实施的过程是层层递进的,前后之间有因果关系。

如果面对的是一个尚未评估的系统,那么应该从第一个阶段开始实施;如果是由专职的安全团队长期维护的系统,那么有些阶段可以只实施一次,在这几个阶段中,上一个阶段决定下一个阶段的目标,需要实施到什么程度。

6.1、资产等级划分

资产等级划分是所有工作的基础,这项工作能帮助我们明确目标是什么,要保护什么。

在互联网的基础设施已经比较完善的今天,互联网的核心其实是由用户数据驱动的 – 用户产生业务业务产生数据,互联网公司除了拥有一些固定资产,如服务器等死物外,最核心的价值就是其拥有的用户数据,所以 – 互联网安全的核心问题是数据安全的问题

互联网公司拥有的资产进行等级划分就是对数据做等级划分,有的公司关心的是客户数据,有的公司关心的则是员工资料信息,根据各自业务不同,侧重点也不同。

当完成资产等级划分后,对要保护的目标已经有了一个大概得了解,接下来就是要划分信任域和信任边界了,通常用一种最简单的划分方式,就是从网络逻辑上来划分。

6.2、威胁分析

信任域划好之后,如何才能确定危险来自哪里?

在安全领域里,把可能造成危害的来源称为威胁(Threat),而把可能会出现的损失称为风险(Risk),风险一定是和损失联系在一起的,很多专业的安全工程师也经常把这两个概念弄混,在写文档时张冠李戴。

威胁分析就是采用头脑风暴法把所有的威胁都找出来,除了这个方法外还有一些比较科学的方法,比如使用一个模型,帮助我们去想,在哪些方面可能会存在威胁,这个过程能够避免遗漏,这就是威胁建模。

STRIDE模型最早是由微软提出,STRIDE是6个单词的首字母缩写,我们在分析威胁时,可以从以下6个方面去考虑。

威胁定义对应的安全属性
Spoofing(伪装)冒充他人身份认证
Tampering(篡改)修改数据或代码完整性
Repudiation(抵赖)否认做过的事情不可抵赖性
InformationDisclosure(信息泄露)机密信息泄露机密性
Denial of Service(拒绝服务)拒绝服务可用性
Elevation of Privilege(提升权限)未经授权获得许可授权
在进行威胁分析时,要尽可能的不遗漏威胁,头脑风暴的过程可以确定攻击面。

威胁分析是一件非常重要的事情,很多时候换需要经常回顾和更新现有的模型。

6.3、风险分析

影响风险高低的因素,除了造成损失的大小外,还需要考虑到发生的可能性。地震的危害很大,但是地震、火山多动一般都是在大陆板块边缘频繁出现,比如日本、印尼就处于这些地理位置。

在考虑安全问题时,要结合具体情况,权衡时间发生的可能性,才能正确地判断出风险。

DREAD模型,它也是由微软提出的,同样也是几个单词的首字母缩写,它会指导我们应该从哪些方面去判断一个威胁的风险程度。

等级高(3)中(2)低(1)
Damage Potential获取完全验证权限;执行管理员操作;非法上传文件泄露敏感信息泄露其他信息
Reproducibility攻击者可以随意再次攻击攻击者可以重复攻击,但有时间限制攻击者很难重复攻击过程
Exploitability初学者在短期内能掌握攻击方法熟练的攻击者才能完成这次攻击漏洞利用条件非常苛刻
Affected users所有用户,默然配置,关键用户部分用户,非默认配置极少数用户,匿名用户
Discoverability漏洞很显眼,攻击条件很容易获得在私有区域,部分人能看到,需要深入挖掘漏洞发现该漏洞极其困难
在DREAD模型里,每一个因素都可以分高、中、低三个等级,在上表中,高、中、低三个等级分别以3/2、1的分数代表其权重值,因此,可以具体计算出某一个威胁的风险值。

6.4、设计安全方案

安全评估的产出物,就是安全解决方案,解决方案一定要有针对性,这种针对性是由资产等级划分、威胁分析、风险分析等阶段的结果给出的。

很多人认为,安全和业务是冲突的,因为往往了安全,要牺牲业务的一些易用性或者性能。

从产品的角度来说,安全也应该是产品的一种属性,一个从未考率过安全的产品,至少是不完整的。

对于互联网来说,安全是要为产品的发展与成长保驾护航,不能使用“粗暴”的安全方案去阻碍产品的正常发展,所以应该形成这样一种观点:没有不安全的业务,只有不安全的实现方式。

好的安全产品或模块除了要兼顾用户体验外,还要易于持续改进;一个好的安全模块,同时也应该是一个优秀的程序,从设计上也需要做到高聚合、低耦合、易于扩展。

一个优秀的安全方案应该具备这几个特点:

  • 能够有效解决问题
  • 用户体验好
  • 高性能
  • 低耦合
  • 易于扩展与升级

七、安全评估方法

7.1、Secure By Default原则

在设计安全方案时,最基本也最重要的原则就是Secure By Default。在做任何安全设计时,都要牢牢记住这个原则,一个方案设计得是否足够安全,与有没有应用这个原则有很大的关系,实际上,Secure By Default,也可以归纳为白名单、黑名单的思想。

7.1.1、黑名单、白名单

在指定防火墙的网络访问控制策略时,如果网站只提供web服务,那么正确的做法就是只允许网站服务器的8.和443端口对外提供服务,屏蔽除此之外的其他端口,这是一种白名单的做法;如果使用黑名单,则可能会出现问题。假设黑名单的策略时不允许SSH端口对Internet开放,那么就要审计SSH的默认端口22端口是否开放了Internet。

7.1.2、最小权限原则

Secure By Default的另一层含义就是最小权限原则。最小权限原则也就是安全设计得基本原则之一,最小权限原则要求系统只授予主体必要的权限,而不需要过度授权,这样能有效地减少系统、网络、应用、数据库出错的机会。

7.1.3、纵深防御原则

与Secure By Default原则一样,Defense in Depth(纵深防御)也是设计安全方案时的重要指导思想。

纵深防御包含两层含义:首先,要在各个不同层面、不同方面实施安全方案,避免出现疏漏,不同安全方案之间需要相互配合,构成一个整体;其次,要在正确的地方做正确的事情,即:在解决根本问题的地方实施针对性的安全方案。

纵深防御并不是同一个安全方案要做两遍甚至多遍,而是要从不同的层面、不同角度对系统作出整体的解决方案。

7.1.4、数据与代码分离原则

数据与代码分离原则广泛使用与各种由于注入而引发安全问题的场景。

实际上,缓冲区溢出,也可以认为是程序违背了这一原则的后果,程序在栈或堆中,将用户数据当做代码执行,混淆了代码与数据的边界,从而导致安全问题的发生。

在web安全中,有注入引起的问题比比皆是,如XXS、SQL Injection、CRLF Injection、X-Path Injection等。此类问题均可以根据数据与代码分离原则设计出真正安全的解决方案,因为这个原则抓住了漏洞形成的本质原因。

7.1.5、不可预测性原则

不可预测性原则能有效的对抗基于篡改、伪造的攻击。

不可预测性原则,可以巧妙的用在一些敏感数据上,比如在CSRF的防御技术中,通常会使用一个token来进行有效防御,这个token能成功防御CSRF,就是因为攻击者在实施CSRF攻击的过程中,是违法提前预知这个token值的,因此要求token足够复杂时,不能被攻击者猜测到。

不可预测性的视线往往需要用到加密算法随机数学法哈希算法

八、总结

安全是一门朴素的学问,也是一种平衡的艺术,无论是传统安全,还是互联网安全,其内在的原理都是一样的,只需要抓住安全问题的本质,无论遇到什么问题,都能轻松解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十一的学习笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值