安全基础讲解

安全基础讲解

一、安全基础概述

计算机安全的定义

信息化时代中,不论是个体、企业还是组织,都愈加重视计算机安全这个词汇的重要性。可是,安全是一个非常庞大的概念,小到电脑中毒,大到企业的敏感信息泄露,甚至是国家间黑客间的相互渗透与攻防,都属于安全的范畴,所以,要想给计算机安全下一个完备而精准的定义并不容易,但是我们可以认为,要是没有威胁,那么安全就没有存在的意义了。

计算机安全的覆盖面

我们对于安全的定义和认识,很大程度上是从威胁来的,计算机病毒的概念来源于生物界的Virus,意思是具有传播性与破坏性的行为的程序;而计算机木马的定义则是取材于古希腊《荷马史诗》中士兵藏于“木马”中攻城的计谋,也是悄无声息地潜入,然后攻占系统。在比特币勒索病毒尚未爆发之前,我们很少人能意识到,比特币采用的区块链技术,也能作为隐匿身份手段和勒索转账途径的工具;甚至,现在有专门长期收集和挖掘企业负面情报的组织,精通社会工程学,套取内部情报,再利用互联网的盲目,不断放大对企业形象的攻击,做空股市,牟取暴利,打击竞争对手。在没有遭遇这些攻击手段之前,估计我们安全的定义中都不存在这些概念,更别提预防了。

社会工程学是传奇黑客Kevin David Mitnick在《欺骗的艺术》一书中提出,利用人性弱点、本能反应、习惯反应、贪婪、好奇、信任、欲望...全方位渗透,无孔不入,将欺骗升华为艺术。一个系统再怎么坚不可摧,还是无法弥补的一个漏洞,就是脆弱的“人”。

下面这个是电影《我是谁:没有绝对安全的系统》的一个约2分钟的片段,说明了社会工程学在计算机安全中扮演的角色。

电影片段说明社会工程学(20.7M需要下载观看)

所以我认为计算机安全最好的定义就是,针对威胁所进行的研究、防护和预测。安全的定义应该是动态的,不应该受限于静态框架的描述,它与威胁就像牛郎织女般遥相呼应,彼此相爱相杀,在研究威胁的基础上去防护,然后做出相应的预测,以期能够地抵御未知的威胁。

安全是一个系统工程

正是因为威胁的不断刷新我们的三观,所以计算机安全才被独立出来单独研究,形成属于自己的术语,而企业内部也会由专门的安全部门进行管理。对于庞大的系统而言,个体是渺小的,每个个体考虑的安全范畴实在有限,就我目前实习所处的平台研发部,更多的是考虑代码层的安全,代码是否会造成缓冲区溢出、是否向外暴露调试信息、敏感信息是否经过加密处理等等,如果是系统的其他部分出现安全问题,我们也照顾不到。

所以这也就意味着,安全需要作为一个系统来考量,我们必须探查所有可能出现问题的地方,布下天罗地网,将系统中的每个部分进行统一的安全管理,才能实现一个系统的安全。所以安全是一个工程,需要制定共同遵循的规则和约定,需要用工程学的方法,在实践中不断完善安全的构建。

攻防的角色共存

进入计算机安全的领域,也就意味着,你既是一名攻击者,也是一名防御者,大部分时间你要从防御者的角度出发,制定防御的措施和体系,我们把这称之为安全架构(Security Structure)。但往往更难能可贵的是攻击者的思路,许多成功的攻击往往是意想不到的,所以从攻击者的角度找寻切入点,我们称之为渗透测试(Penetration Test)。“渗透”一词形象地说明了攻击的形态是纵向深入的,攻击者往往在只找寻到一个缺口的情况下,也能顺藤摸瓜,逐层突破,最终进攻至系统的核心部位;而防御的安全架构则讲究广泛而全面,旨在搭建若干层完备的、能抵御各个方向攻击的防御层,形成完整的防御体系。

二、安全架构

2.1 CIA三元组

CIA三元组是一个著名的安全策略开发模型,用于识别问题领域和提出必要的信息安全解决方案。

  • 机密性(Confidentiality)
  • 完整性(Integrity)
  • 可用性(Availability)

机密性:对信息资源开放范围的控制,确保信息没有非授权的泄漏, 不被非授权的个人、组织和计算机程序使用。(不能看)

完整性:保护数据不被未授权方修改或删除,并确保当授权人员进行不恰当的更改时,可以降低损害。(不能改)

可用性:系统、访问通道和身份验证机制都必须正常工作,以便为他们提供的信息和保护在需要时可用。(一直用)

一套完备的安全系统的设计可以从这三个方向考量,而由此三元组可以延伸出计算机安全领域的一系列安全术语。

2.2 安全术语

现将一些常见的安全术语列成以下的表格:

安全术语含义
身份鉴别能够实时、准确得确认用户身份,在系统中实现统一的身份认证、单点登录和统一授权;对用户的身份标识应当具有唯一性,用户使用的认证手段安全性也应该考虑,如口令长度、复杂度和定期更改;具有鉴别会话结束、限制非法登录次数、登录成功后超时等功能。身份鉴别常使用PKI/CA、智能卡以及多因子认证等手段实现用户身份鉴别;通常会集成统一管理,与访问控制和安全审计紧密结合,对用户的身份、权限、行为等进行鉴别和记录,实现可管理、可追溯、可监控的基本要求。
访问控制访问控制使用基于角色的权限控制方式对系统资源的访问进行授权,支持根据业务角色不同赋予权限,支持到功能模块、文件、报表的细颗粒度权限控制。严格限制默认账户的访问权限;权限分离应采用最小授权原则,授予用户完成承担任务所需的最小权限;系统支持对特权用户的权限分离,如将管理与审计赋予不同用户;具备对重要信息资源设置敏感标记的功能,并制定统一安全策略严格控制用户对有敏感标记的重要信息资源的操作访问。
安全审计安全审计是对用户的登录、重要用户行为、系统资源的异常使用和重要系统功能的执行等进行审计;审计的日志应包括日期和时间、类型、主体标识、客体标识、客体敏感标记、事件的结果等;系统支持对审计记录进行分析,生成审计报表,并可对特定事件提供实时报警。
剩余信息保护剩余信息保护是对数据的保护,确保数据只能被拥有对应权限的人访问,特别是再分配前的清理。相关的文件、目录和数据库记录等所使用的存储空间与其他系统所使用存储空间进行隔离区分,在分配给其他系统使用前将存储的信息进行完全清除。
通信完整性通信完整性是对其他对象(同层次和不同层次)使用事务传输机制,在数据传输异常中断时,进行事务的回滚和重传,保证数据完整性;在数据传输结束后对数据的完整性进行校验。
通信保密性通信保密性要求数据通信应支持使用加密技术,在会话初始化时进行认证、协商使用加密套件,并在通信过程中对整个会话过程进行加密。应注意中间人攻击和加密套件的选用。
不可抵赖性在协调控制相功能实现中充分考虑数据的不可抗抵赖,在业务的发起和接收时保留。可以使用数字签名技术。
软件容错软件容错是提高抗灾冗余的一种手段。要求在人工输入或通过接口进行输入时提供对输入数据的有效性检验;在功能实现上应支持回退的功能,允许按照操作序列进行回退;系统的支撑硬件和软件应具备故障状态监测和自动保护能力,在故障发生时自动保护当前所有状态并迅速恢复原来的工作状态。
资源控制资源控制是对硬件资源、软件资源、网络资源以及数据的控制。对单个用户的并发会话数和系统同时并发会话连接数进行限制,禁止同一用户帐号在同一时间内并发登录;设置登录终端的操作超时锁定和鉴别失败锁定策略;系统应支持对用户身份、访问地址、时间单位的细颗粒度访问控制措施;支持对部分高级用户的访问、全景展示的应用以及监测分析数据的流转过程采用优先服务机制。
代码安全开发人员应参照应用程序代码编写安全规范编写代码,并在开发过程中对代码进行复审;在系统上线前对代码进行安全脆弱性分析和渗透性测试;并在线上环境的镜像中进行线上测试。
数据完整性系统在数据的传输、存储、处理过程过程中,使用事务传输机制对数据完整性进行保证,使用数据质量管理工具对数据完整性进行校验,在监测到完整性错误时进行告警,并采用必要的恢复措施。
数据保密性系统的身份鉴别信息、敏感的系统管理数据和敏感的业务数据在传输、存储、处理过程中,应进行加密或使用专用的协议或安全通信协议。
数据容灾系统应利用灾备中心实现异地数据级灾备,备份频度至少达到每天一次,支持在系统数据出现异常时进行数据恢复;实现核心应用的灾备,在系统出现故障或灾难时自动进行业务切换和恢复;系统相关重要网络设备、通信链路和服务器应进行冗余设计,避免单点故障。
入侵防护通过入侵检测设备和系统安全日志监测发生的入侵行为,记录入侵信息并实时告警;支持对重要程序文件和配置文件的完整性检测,在检测到完整性受到破坏后具有恢复的措施;操作系统应遵循最小安装原则,仅安装必须的组件和应用程序,并通过自动升级或主动补丁推送方式及时得到更新。
恶意代码防范对上传文件进行隔离和检测;服务器、工作站或终端应安装防恶意代码软件,并及时更新防恶意代码软件版本和恶意代码库;防恶意代码软件采用统一管理。
资源控制采用设定终端接入方式、网络地址范围等条件限制终端登录;对服务器的CPU、硬盘、内存、网络等资源的使用情况进行监控,对服务水平降低到预设值时进行告警。
结构安全为满足业务高峰期需求,主要网络设备的处理能力、带宽需要具备冗余空间;核心服务器应划分独立的网段,采用统一的隔离技术进行隔离;对于平台与平台之间、平台与其它业务应用系统之间的带宽分配较高优先级别,保证最小带宽。
边界完整性总结访问内网终端部署非法外连监测系统,对内网终端非法外连和外网终端私自接入内网的行为和数据流进行监测,并对其进行有效阻断。
网络设备防护对登录网络设备的用户进行身份鉴别,限制网络管理员登录地址;不同网络设备用户应使用不同的用户;对于核心网络设备应采用多因素身份鉴别技术进行身份鉴别,同时口令应满足一定复杂度要求并定期更换;系统应具备登录失败处理功能,在鉴别会话结束、登录连接超时后自动退出,限制非法登录尝试次数等方式;网络远程管理应采取必要措施防止鉴别信息在网络传输过程中被窃听;应实现设备特权用户的权限分离。
............

而我们设定安全术语的目的是为了协助我们完成安全体系的搭建,此时往往需要按照现实来建立模型,将安全术语放置在模型的环境中运转起来。

2.3 安全模型

网络安全模型

网络安全模型

我们可以看到这是一个典型的“三角”模型,网络环境中存在着发送者、接收者和可信的第三方,三者通过信道相联系,而攻击者则在信道中徘徊和伏击。

网络安全访问模型

这一模型也称为单向访问模型,作为上面所提的网络安全模型的补充,可以描述网络空间中的另一些安全情形,比如黑客入侵、病毒攻击等等。

网络安全访问模型

OSI安全体系结构模型

另外,就是基于国际标准化组织制定的OSI(Open System Interconnection)模型建立的安全体系架构,从网络分层的角度考虑安全的架构。

OSI安全体系结构模型

  • 应用层(源码保护、代码审计、接口调用、应用信息交换......)
  • 表示层
  • 会话层(Sockets)
  • 传输层(TLS/SSL)
  • 网络层(IPSec)
  • 数据链路层(PPTP/L2TP)
  • 物理层(容灾)

三、渗透测试

3.1 渗透场景

点击下载渗透场景的整体图

先介绍基本的概念,行为是针对漏洞而做出的操作,通过漏洞我们先通过攻占若干的小目标,最后通过相互的利用,以取得大目标为最终目的。

图中某一对象箭头的始端的数目称为出度,而某一对象箭头末端的数目称为入度,出度较大意味着由较多的攻击以此作为出发点,这是需要重点防范的对象,而入度较大则意味着这是攻击喜欢选择的目标,意味着这需要重点保护

我们以某一个场景为例子,它是取自整体图中的一部分,并进行了等价的拓扑变换:

场景实例

3.2 机构/组织的安全报告

Verizon出品的年度数据泄露调查报告

Verizon是世界上最大的通信技术公司之一,每年都会发布年度数据泄露报,很多机构会引用这个报告。

Verizon:2018年数据泄漏调查报告下载

4As模型:

  • 行为(Actions)
  • 角色/群体(Actors)
  • 资产(Asset)
  • 相关数据(Attribute data)

每年导致数据泄露的各类行为的百分比变化

每年导致数据泄露的各类行为的百分比变化

恶意行为排行榜

恶意行为排行榜

导致数据泄露的群体的排行榜

导致数据泄露的群体的排行榜

资产及数据泄露的内容和种类的排行榜

资产及数据泄露的内容和种类的排行榜

CSDN的一些分析《解读Verizon 2018数据泄漏调查报告:窃取身份仍是黑客最有效的攻击手段》

https://blog.csdn.net/Secboot/article/details/80355133

OWASP TOP 10

OWASP TOP 10 2017报告下载,报告里面有详细的情景案例、漏洞代码示例,此处就不再赘述。

开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。该组织发布的《OWASP TOP 10》(10项最严重的Web应用程序风险)对Web安全的研究有非常高的参考价值。

从2013到2017发生了如下的变化,更详细的内容请参看报告:

新增加的风险类型

  • XML外部实体(XXE)
  • 不安全的反序列化
  • 不足的日志记录和监控

落榜但仍未忘记的风险类型

  • “不安全的直接对象引用”和“功能级访问控制缺失”合并成“失效的访问控制”
  • “CSRF”。因为很多平台融入了CSRF防御,所以只有5%的应用程序受到了威胁
  • “未验证的重定向和转发”。虽然大约8%的应用程序受此威胁,但是现在大多被XML外部实体(XXE)挤掉了

OWASP TOP 10 2017目录

3.3 WAF

WAF是Web Application Firewall的简称,顾名思义是网络应用防火墙的意思。

WAF的图解

防护功能

  • Web攻击防护:防护SQL注入、XSS跨站攻击等常见的Web攻击。
  • CC攻击防护:防护针对页面请求的CC攻击。
  • 智能防护引擎:对请求做语义分析,检测经伪装或隐藏的恶意请求,帮助您防护通过攻击混淆、变种等方式发起的恶意攻击。有关操作请参考新智能防护引擎。
  • 恶意IP惩罚:自动封禁在短时间内进行多次Web攻击的客户端IP。
  • 地理IP封禁:封禁来自指定国内省份或海外地区的IP的访问请求。
  • 数据风控:对抗机器威胁,如垃圾注册、账号被盗、活动作弊、垃圾消息等欺诈行为。

安全合规功能

  • 网页防篡改:锁定需要保护的网站页面,被锁定的页面在收到请求时,返回您为其设置的缓存内容。有关操作请参考网页防篡改。
  • 敏感信息防泄漏:过滤服务器返回内容(异常页面或关键字)中的敏感信息,如身份证号、银行卡号、电话号码、和敏感词汇等。有关操作请参考防敏感信息泄露。

监控管理功能

  • 安全监控:查看图表化的业务访问数据以及安全防护统计信息。
  • 安全报表:查询域名受到的攻击详情和风险预警信息。
  • 全量日志:网站日志,快速定位请求。
  • 数据大屏:实时攻防态势监控和告警。

3.4 蜜罐的诱惑

攻击者们往往会迷醉于对目标贡献后的成就感,所以蜜罐就是为他们精心设置的陷阱。我们会在与核心系统隔离的网络环境中(类似沙箱),专门布置若干台漏洞百出、不设防御的主机,并严密地监视和记录它们与外网的流量、行为信息、日志等。它们就像涂满了蜂蜜的罐子,引诱攻击者对其进行攻击,因为该系统是与核心系统隔离的,所以我们会任由其遭受攻击者的蹂躏,在攻击者沾沾自喜时,记录他们的一切行为。然后我们可以借助详尽的日志信息分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,并以此制定相应的反制策略。

发表新评论