网络安全-防御需知

目录

网络安全-防御

1.网络安全常识及术语

资产

漏洞

0day

1day

后门

exploit

APT

2.什么会出现网络安全问题?

网络环境的开放性

协议栈自身的脆弱性

操作系统自身的漏洞

人为原因

客观原因

硬件原因

缓冲区溢出攻击

缓冲区溢出攻击原理

其他攻击

社工攻击

防御手段:

人为因素

防范措施

拖库、洗库、撞库

防御手段:

跳板攻击

防御手段:

钓鱼攻击/鱼叉式钓鱼攻击

防御手段:

水坑攻击

防御手段:

3.什么样的网络是安全的?

网络安全要素

保密性

可用性

可控性

不可否认性

信息安全的五要素案例

威胁模型

[微软 STRIDE 模型](#微软 STRIDE 模型)

漏洞管理相关标准

CVE

[CNVD, NVD 与 CNNVD](#CNVD, NVD 与 CNNVD)

以「破壳」漏洞为例

ATT&CK


网络安全-防御

1.网络安全常识及术语

资产

任何对组织业务具有价值的信息资产,包括计算机硬件、通信设施、IT 环境、数据库、软件、文档
资料、信息服务和人员等。

漏洞

上边提到的"永恒之蓝"就是windows系统的漏洞
漏洞又被称为脆弱性或弱点(Weakness),是指信息资产及其安全措施在安全方面的不足和弱
点。漏洞一旦被利用,即会对资产造成影响。通常一个网络的漏洞/弱点可被分为:技术漏洞、配
置漏洞和安全策略漏洞。

0day

是指负责应用程序的程序员或供应商所未知的软件缺陷,尚未公开的漏洞。永恒之蓝在没有被公开
前就是0day。

1day

刚被官方公布的漏洞就是1day,刚被公布得了漏洞会有一个打补丁的时间差,这个时间差可以被黑
客所利用。

后门

后门是一种用于获得对程序或在线服务访问权限的秘密方式。一般是绕过安全控制而获取对程序或
系统访问权的方法。
上边的meterPeter就是一种后门程序。我们可以用它很方便的进行目标系统的访问。

exploit

exp,指的是漏洞利用程序,我们在上面敲的exploit的命令就是执行永恒之蓝的漏洞利用程序来攻
击目标win7。
它在黑客眼里就是漏洞利用。有漏洞不一定就有Exploit(利用),有Exploit就肯定有漏洞。
我们几乎每隔几天就能听到最近有一个新发现的可以被利用(exploit)的漏洞(vulnerability),然后给这个漏洞打上补丁。而事实上,这里面的内容比你想象的要多,因为你不可能知道所有软件的漏洞,而且那些可利用的漏洞也只是被少数人所了解。
漏洞是存在于一个程序、算法或者协议中的错误,可能带来一定的安全问题。但不是所有的漏洞都是能够被利用来攻击(exploitable)的,理论上存在的漏洞,并不代表这个漏洞足以让攻击者去威胁你的系统。一个漏洞不能攻击一个系统,并不代表两个或多个漏洞组合就不能攻击一个系统。例如:空指针对象引用(null-pointer dereferencing)漏洞可以导致系统崩溃(如果想做拒绝服务攻击就足够了),但是如果组合另外一个漏洞,将空指针指向一个你存放数据的地址并执行,那么你可能就利用此来控制这个系统了。一个利用程序(An exploit)就是一段通过触发一个漏洞(或者几个漏洞)进而控制目标系统的代码。攻击代码通常会释放攻击载荷(payload),里面包含了攻击者想要执行的代码。exploits利用代码可以在本地也可在远程进行。一个远程攻击利用允许攻击者远程操纵计算机,理想状态下能够执行任意代码。远程攻击对攻击者非常重 要,因为攻击者可以远程控制他/她的主机,不需要通过其它手段(让受害者访问网站,点击一个可执行文件,打开一个邮件附件等等),而本地攻击一般都是用来提升权限 。
攻击
攻击是指由威胁源所实施的、导致安全事件发生的行为,它是 漏洞利用 和 实现威胁 的过程,一旦
攻击得手即会造成影响。
安全策略
安全策略是指在某个安全区域内,所有与安全活动相关的一套规则,它声明哪些行为是能做的、被
允许的,哪些行为是不能做的、被禁止的。这些规则是由此安全区域中所设立的一个安全权利机构
建立的,并由安全控制机构来描述、实施或实现的。社会工程学。
安全机制
安全机制是一种用于解决和处理某种安全问题的方法,通常分为预防、检测和恢复三种类型。网络
安全中绝大多数安全服务和安全机制都是建立在密码技术的基础之上的,它们通过密码学方法对数
据信息进行加密和解密来实现网络安全的目标要求。
社会工程学
信息安全可以分为Soft Security和Hard Security 两个部分。所谓的"硬安全",主要就是具体的安全
IT 技术(比如:防火墙、入侵检测、漏洞扫描、抗拒绝服务......),这些东西都是专家安全公司在搞,离绝大多数的读者可能比较遥远。而"软安全"主要涉及管理、心理学、文化、人际交往等方
面,与具体的IT 技术可能没有关系。今天所说的"社会工程学",实际上就是"软安全",如果你看过
电影《没有绝对的安全》的话,电影中主人公没有花一分钱搞到了肯德基的一份午餐就是利用社会
工程学的典型例子。
通俗地讲,社会工程学就是:利用人性之中的弱点(贪婪、恐惧、性欲......)等心理学上的弱点来
影响别人,最终达到自己不可告人的目的。

APT

APT是黑客以窃取核心资料为目的,针对客户所发动的网络攻击和侵袭行为,是一种蓄谋已久的"恶
意商业间谍威胁"。这种行为往往经过长期的经营与策划,并具备高度的隐蔽性。APT的攻击手法,
在于隐匿自己,针对特定对象,长期、有计划性和组织性地窃取数据,这种发生在数字空间的偷窃
资料、搜集情报的行为,就是一种"网络间谍"的行为。
APT攻击是一个集合了多种常见攻击方式的综合攻击。综合多种攻击途径来尝试突破网络防御,通
常是通过Web或电子邮件传递,利用应用程序或操作系统的漏洞,利用传统的网络保护机制无法提
供统一的防御。除了使用多种途径,高级定向攻击还采用多个阶段穿透一个网络,然后提取有价值
的信息,这使得它的攻击更不容易被发现。
卡巴斯基遭APT攻击,全球知名网络安全公司卡巴斯基实验室遭遇APT攻击长达数月未察觉,实施
攻击的病毒Duqu2.0是现金为止最为复杂的蠕虫病毒,被广泛应用与各种APT攻击事件中。

2.什么会出现网络安全问题?

网络的脆弱性

网络环境的开放性

" INTERNET的美妙之处在于你和每个人都能互相连接, INTERNET的可怕之处在于每个人都能和你互
相连接 "

协议栈自身的脆弱性

TCP/IP协议族是使用最广泛的网络互连协议。但由于协议在设计之初对安全考虑的不够,导致协议存
在着一些安全风险问题。Internet首先应用于研究环境,针对少量、可信的的用户群体,网络安全问题
不是主要的考虑因素。因此,在TCP/IP协议栈中,绝大多数协议没有提供必要的安全机制,例如:
不提供认证服务
明码传输,不提供保密性服务,不提供数据保密性服务
不提供数据完整性保护
不提供抗抵赖服务
不保证可用性------服务质量(QoS)

操作系统自身的漏洞

人为原因

在程序编写过程中,为实现不可告人的目的,在程序代码的隐藏处保留后门。

客观原因

受编程人员的能力,经验和当时安全技术所限,在程序中难免会有不足之处,轻则影响程序效率,
重则导致非授权用户的权限提升。

硬件原因

由于硬件原因,使编程人员无法弥补硬件的漏洞,从而使硬件的问题通过软件表现。

缓冲区溢出攻击

缓冲区是内存中存放数据的地方。在程序试图将数据放到机器内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出。而人为的溢出则是有一定企图的,攻击者写一个超过缓冲区长度的字符串,植入到缓冲区,然后再向一个有限空间的缓冲区中植入超长的字符串,这时可能会出现两个结果:一是过长的字符串覆盖了相邻的存储单元,引起程序运行失败,严重的可导致系统崩溃;另一个结果就是利用这种漏洞可以执行任意指令,甚至可以取得系统root特级权限。

缓冲区溢出攻击原理

缓冲区溢出攻击利用编写不够严谨的程序,通过向程序的缓冲区写入超过预定长度的数据,造
成缓存的溢出,从而破坏程序的堆栈,导致程序执行流程的改变
缓冲区溢出的危害
最大数量的漏洞类型
漏洞危害等级高
终端的脆弱性及常见攻击
终端是占据企业数量最多的计算机系统,容易遭受计算机病毒为代表的恶意代码的攻击。
常见的恶意代码包括:
病毒
蠕虫
木马

其他攻击

社工攻击

原理:
社会工程攻击,是一种利用"社会工程学" 来实施的网络攻击行为。
在计算机科学中,社会工程学指的是通过与他人的合法地交流,来使其心理受到影响,
做出某些动作或者是透露一些机密信息的方式。这通常被认为是一种欺诈他人以收集信
息、行骗和入侵计算机系统的行为。

防御手段:

定期更换各种系统账号密码,使用高强度密码等

人为因素

无意的行为
工作失误------如按错按钮;
经验问题------不是每个人都能成为系统管理员,因此并不了解贸然运行一个不知作用的
程序时会怎么样;
体制不健全------当好心把自己的账号告诉朋友时,你却无法了解他会如何使用这一礼物;
恶意的行为
出于政治的、经济的、商业的、或者个人的目的
病毒及破坏性程序、网络黑客
在Internet上大量公开的攻击手段和攻击程序。

防范措施

提升安全意识,定期对非IT人员进行安全意识培训和业务培训;
设置足够强的授权和信任方式,完善最低权限访问模式;
组织需要完善和落地管理措施,保障安全管理制度是实际存在的;
善于利用已有的安全手段对核心资产进行安全保护等

拖库、洗库、撞库

原理:
**拖库:**是指黑客入侵有价值的网络站点,把注册用户的资料数据库全部盗走的行为。
**洗库:**在取得大量的用户数据之后,黑客会通过一系列的技术手段和黑色产业链将有价
值的用户数据变现,这通常也被称作洗库。
最后黑客将得到的数据在其它网站上进行尝试登陆,叫做撞库,因为很多用户喜欢使用
统一的用户名密码。

防御手段:

重要网站/APP的密码一定要独立 、电脑勤打补丁,安装一款杀毒软件、尽量不使用IE浏
览器、使用正版软件、不要在公共场合使用公共无线做有关私密信息的事、自己的无线
AP,用安全的加密方式(如WPA2),密码复杂些、电脑习惯锁屏等。

跳板攻击

原理:
攻击者通常并不直接从自己的系统向目标发动攻击,而是先攻破若干中间系统,让它们成
为"跳板",再通过这些"跳板"完成攻击行动。

跳板攻击就是通过他人的计算机攻击目标.通过跳板实施攻击。

防御手段:

安装防火墙,控制流量进出。系统默认不使用超级管理员用户登录,使用普通用户登
录,且做好权限控制。

钓鱼攻击/鱼叉式钓鱼攻击

原理:
钓鱼式攻击是一种企图从电子通讯中,通过伪装成信誉卓著的法人媒体以获得如用户
名、密码和信用卡明细等个人敏感信息的犯罪诈骗过程。
鱼叉式网络钓鱼指针对特定目标进行攻击的网络钓鱼攻击。

防御手段:

保证网络站点与用户之间的安全传输,加强网络站点的认证过程,即时清除网钓邮件,
加强网络站点的监管。

水坑攻击

原理:
攻击者首先通过猜测(或观察)确定特定目标经常访问的网站,并入侵其中一个或多个
网站,植入恶意软件。最后,达到感染目标的目的。

防御手段:

在浏览器或其他软件上,通常会通过零日漏洞感染网站。
针对已知漏洞的防御措施是应用最新的软件修补程序来消除允许该网站受到感染的漏
洞。用户监控可以帮助确保他们的所有软件都运行最新版本。
如果恶意内容被检测到,运维人员可以监控他们的网站和网络,然后阻止流量

3.什么样的网络是安全的?

网络安全的目的

网络安全要素

保密性---confidentiality
完整性---integrity
可用性---availability
可控性---controllability
不可否认性---Non-repudiation
保密性(confidentiality)与Integrity(完整性)和 Availability(可用性)并称为信息安全的CIA三要素。

保密性

保密性:确保信息不暴露给未授权的实体或进程。
目的:即使信息被窃听或者截取,攻击者也无法知晓信息的真实内容。可以对抗网络攻击中的被动 攻击。

可用性

得到授权的实体可获得服务,攻击者不能占用所有的资源而阻碍授权者的工作。用访问控制机制,
阻止非授权用户进入网络。使静态信息可见,动态信息可操作,防止业务突然中断

可控性

可控性主要指对危害国家信息(包括利用加密的非法通信活动)的监视审计。控制授权范围内的信
息流向及行为方式。使用授权机制,控制信息传播范围、内容,必要时能恢复密钥,实现对网络资 源及信息的可控性。

不可否认性

不可否认性:对出现的安全问题提供调查的依据和手段。使用审计、监控、防抵赖等安全机制,使 得攻击者、破坏者、抵赖者"逃不脱",并进一步对网络出现的安全问题提供调查依据和手段,实现 信息安全的可审查性。

信息安全的五要素案例

威胁模型

所谓的网络安全威胁是指可能破坏某一网络资源的机密性、完整性以及可用性等安全基本要素的来源或
原因。例如对于数据库中的数据来说, SQL 注入攻击就是一种网络威胁。一旦攻击得手,被攻击者就可
能会被窃取机密数据从而导致数据的机密性被破坏。
使用 威胁模型分析(Threat Model Analysis, TMA) 可以帮助确定产品、应用程序、网络或环境中存在的
风险和可能的攻击路径。TMA 的目标是确定哪些威胁需要缓解以及如何缓解。具体来说,威胁模型对于
帮助企业应对安全威胁具有五个方面的具体作用:

  1. 评估风险更加有效。传统的风险评估定级方法是按照通用的安全管理框架和标准(如 ISO 27001 )
    进行操作,但实际结果存在发布的标准不适应新情况、规定的措施不够深入等问题,威胁模型分析
    可以弥补照搬安全行业标准进行管理所带来的缺陷。
  2. 帮助深入理解企业系统。威胁模型的建立要求对企业内部的信息系统资产进行评估,对各个子系统
    之间的支持配合方式做深入详细的了解。使用威胁模型进行安全管理有助于深入理解整个企业系
    统。
  3. 提高相关员工安全意识。在建立安全模型过程中,为深入了解系统功能和运行情况,需要与企业中
    的工作人员进行沟通,在此过程中有助于系统使用者树立起更好的安全意识,以便在以后的运维和
    管理工作中更加严谨和规范。
  4. 安全管理措施次序优化。威胁模型可以帮助企业摒弃通用的、泛泛的管理措施,结合企业自身具体
    情况,着眼于可能面临的具体风险,选择合理的、有针对性的、有效的安全管理措施并优化其次
    序。
  5. 提高安全管理效率。安全评估在时间上是受限的,因此必须把有限的时间集中在值得关注的点上。
    威胁模型可以让企业的安全管理人员更加透彻的理解各种攻击方式,从而明白真正具有威胁的攻击
    路径,避免无意义的时间消耗。
    当前普遍采用的威胁模型包括:微软 STRIDE 模型、微软 DREAD 模型、卡耐基梅隆大学的 OCTAVE 模
    型等。威胁模型是多种多样的,但是建立过程却大致相同,基本上可以分为四个步骤,分别是:明确目

标、分解系统、识别威胁、评估威胁

微软 STRIDE 模型


上表可以看出,STRIDE 模型正好是对应着安全属性而设计建模的,将威胁与提供威胁防护的特性相对
照。

  • 假冒

当一个恶意用户假扮成一个信任实体进入系统,而计算机又不能区分时,这类安全威胁属于假冒,又称
为身份欺诈;

  • 篡改

用户获得对一台计算机或某个系统的未经授权的访问权限,然后修改计算机或系统的操作、配置或数
据,这种情况属于篡改。篡改可能是恶意的,也可能是无意的;

  • 否认

系统管理员或者安全代理不能证实一个用户(恶意用户或者其他用户)是否已经执行了某种操作,这种
情况属于否认,也称为抵赖;
信息泄露
未经授权的用户可以查看私有或保密数据;

  • 拒绝服务

拒绝服务威胁包括任何能够导致系统关闭或者组织访问计算机资源的攻击。拒绝服务攻击可能引起计算 机应用程序或者操作系统停止运行、 CPU 忙于长时间无意义的计算、系统内存被消耗以至应用程序和造 作系统的功能被削弱、网络带宽降低或者完全被扼杀等后果;

  • 提升权限

提升权限是指用户获得的访问权限超过系统管理员赋予他们的权限。权限提升给恶意用户发起其他任何

类型安全威胁的攻击创造了机会。

漏洞管理相关标准

漏洞标准是关于漏洞命名、评级、检测、管理的一系列规则和规范,是信息安全保障体系的重要组成部 分,是对漏洞进行合理、有效管控的重要手段,为信息安全测评和风险评估提供了基础。
美国的安全研究机构与组织先后推出了一系列有影响力的标准,其中,CVE 、CVSS 等 7 个标准已被国 际电信联盟(ITU)的电信标准化部门(ITU-T)纳入到了其 X 系列(数据网、开放系统通信和安全性) 建议书中,成为了 ITU-T 推荐的国际漏洞标准。如下表格列出了这 7 个标准及其建议书编号:

为了实现「可度量的安全」和「可执行的安全」标准,除了上述 7 个标准之外还有一些相关安全标准被
设计提出。例如:威胁情报领域的威胁情报交换格式标准 STIX 、恶意软件分类和特征标准 MAEC 和可
扩展配置检查清单描述标准 XCCDF 等。这些标准在公布之后并非一成不变,有些标准在发展的过程中被
整合到其他相关标准之中。例如:CybOX 就已经被整合到了 STIX 2.0 标准之中。

借用这些标准的主要制定者 mitre.org 的一张图来概括这些标准在「安全测量」和「安全管理」架构中所扮演的角色,如下图所示

CVE

CVE 的全称是 Common Vulnerabilities & Exposures ,中文翻译对应「公共漏洞曝光」。 CVE 就
好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。使用一 个共同的名字,可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中共享数据,虽然这些工 具很难整合在一起。这样就使得 CVE 成为了安全信息共享的"关键字"。CVE 开始建立是在 1999 年 9 月,起初只有 321 个条目。在 2000 年 10 月 16 日,CVE 达到了一个重要的里程碑------超过 1000 个正 式条目。截止 2018 年 4 月 25 日,CVE 共计收录了 100053 个正式漏洞。

CNVD, NVD 与 CNNVD

国家信息安全漏洞共享平台(China National Vulnerability Database,简称CNVD) 由国家互联网应急
中心、国家信息技术安全研究中心于2009年10月牵头发起,由国家互联网应急中心(简称 CNCERT )
具体组织运作,联合国内重要信息系统单位、基础电信运营商、网络安全厂商、软件厂商和互联网企业
建立的信息安全漏洞信息共享知识库。
建立 CNVD 的主要目标即与国家政府部门、重要信息系统用户、运营商、主要安全厂商、软件厂商、科 研机构、公共互联网用户等共同建立软件安全漏洞统一收集验证、预警发布及应急处置体系,切实提升 我国在安全漏洞方面的整体研究水平和及时预防能力,进而提高我国信息系统及国产软件的安全性,带
动国内相关安全产品的发展。由 CNVD 牵头制订的 中国互联网协会漏洞信息披露和处置自律公约 是安 全研究人员和组织在发现漏洞后应遵守和执行的一个重要指导原则。
NVD(National Vulnerability Database)是美国的国家漏洞数据库,其角色和作用同我国的 CNVD。 国家信息安全漏洞库,英文名称"China National Vulnerability Database of Information Security "(简称 CNNVD ),于2009年10月18日正式成立,是 中国信息安全测评中心 为切实履行漏洞分析和 风险评估的职能,负责建设运维的国家信息安全漏洞库,面向国家、行业和公众提供灵活多样的信息安 全数据服务,为我国信息安全保障提供基础服务

以「破壳」漏洞为例

2014 年 9 月 24 日 GNU Bash 被公布存在远程代码执行漏洞,并在接下来的几天时间里先后出现了「官方发布漏洞补丁」、「补丁被绕过,发现新漏洞」、「新漏洞再被补丁」、「新补丁再次被绕过,发现新漏洞」...... 此次安全事件之后,相关 6 个有 CVE 编号的Bash 漏洞被业界统称为「Shellshock」(中文译名:「破壳」)漏洞。「破壳」漏洞对应的第一个 CVE 漏洞编号为 CVE-2014-6271。

ATT&CK

ATT&CK 模型是在洛克希德-马丁公司提出的 网络杀伤链(Cyber Kill Chain)模型 的基础上,构建了一 套更细粒度、更易共享的知识模型和框架。目前(2021年5月) ATT&CK 模型分为三部分,分别是 ATT&CK forEnterprise , ATT&CK for Mobile 和ATT&CK for ICS 。 ATT&CK for Enterprise
描述了攻击者为破坏在企业网络和云中采取的战术和技术, ATT&CK for Enterprise 由适用于 Windows 、 Linux 和 macOS 系统的技术和战术部分共同组成。 ATT&CK for Mobile 包含适用于移动 设备的战术和技术。 ATT&CK for ICS 适用于工业控制系统网络中的战术和技术。 但是, ATT&CK 的战术跟洛克希德·马丁的网络杀伤链不一样,并没有遵循任何线性顺序。相反,攻击者 可以随意切换战术来实现最终目标。没有一种战术比其它战术更重要。企业组织必须对当前覆盖范围进 行分析,评估组织面临的风险,并采用有意义措施来弥合差距。 除了在杀伤链战术上更加细化之外,ATT&CK 还描述了可以在每个阶段使用的具体技术,而杀伤链模型 则没有这些内容。 从视觉角度来看, ATT&CK 矩阵按照一种易于理解的格式将所有已知的战术和技术进行排列。攻击战术 (阶段)展示在矩阵顶部,每列下面列出了单独的技术。一个攻击序列由一系列战术所组成,每种战术 至少包含一个具体技术(类别),并且通过从左侧(初始访问)向右侧(影响)移动,就构建了一个完 整的攻击序列。一种战术可能使用多种技术。例如,攻击者可能同时尝试鱼叉式网络钓鱼攻击中的钓鱼 附件和钓鱼链接。

攻击者并不需要使用矩阵顶部所列的所有战术,更多的情况下,攻击者会选择使用最少数量的战术来实
现攻击目标。这是因为通过减少攻击活动行为,可以有效规避防御方的检测,避免"打草惊蛇"。例如,
攻击者通过弱口令方式直接拿到了管理员账号,就不必再去折腾「权限提升」,因为已经是「管理员」
权限了。
ATT&CK 导航工具 是一个很有用的工具,可用于映射针对 ATT&CK 技术的控制措施。可以添加不同的
层,来显示特定的检测控制措施、预防控制措施甚至观察到的行为。导航工具可以在线使用,快速搭建
模型或场景,也可以下载下来,进行内部设置,作为一个持久化的解决方案。如上图所示,就是使用
ATT&CK 导航工具 制作的针对一次攻击过程的标准化定义描述。

相关推荐
测试界的酸菜鱼2 分钟前
C# NUnit 框架:高效使用指南
开发语言·c#·log4j
GDAL2 分钟前
lua入门教程 :模块和包
开发语言·junit·lua
李老头探索4 分钟前
Java面试之Java中实现多线程有几种方法
java·开发语言·面试
CSXB995 分钟前
三十四、Python基础语法(文件操作-上)
开发语言·python·功能测试·测试工具
web Rookie25 分钟前
JS类型检测大全:从零基础到高级应用
开发语言·前端·javascript
很楠不爱36 分钟前
Qt——窗口
开发语言·qt
yi碗汤园36 分钟前
【一文了解】C#基础-集合
开发语言·前端·unity·c#
超栈1 小时前
HCIP(11)-期中综合实验(BGP、Peer、OSPF、VLAN、IP、Route-Policy)
运维·网络·网络协议·计算机网络·web安全·网络安全·信息与通信
Wh1teR0se1 小时前
XSS漏洞--常用payload及绕过
web安全·网络安全·xss
Cachel wood1 小时前
Github配置ssh key原理及操作步骤
运维·开发语言·数据库·windows·postgresql·ssh·github