网络安全

来自个人维基
跳转至: 导航搜索

目录

 [隐藏

什么是网络安全

网络安全是指基于网络这个载体,研究数据安全的行为。
网络安全的本质是数据安全,核心是信任问题,形式是一个持续的过程。
白帽子指出,网络安全中没有银色子弹,即网络安全必须是具有可持续发展的思想,必须具有不断更新、不断创新的表现形式。

网络安全的三个要素

网络安全的三个要素为:

  • 机密性 Condifentiality
  • 完整性 Intergrity
  • 可用性 Availability

以上要素简称为CIA要素。

网络安全边界模型

说到网络安全的核心是信任问题。研究网络安全,要对网络环境的可信任性进行初步的了解。一般的,我们简单地将数据的可信任性以以下模型概括:
公网(Internet)<Web应用<数据库数据
对模型进行简要说明:
公网上,信息具有匿名性,大多数信息无法判定来源,可信度是最低的,渗透信息从这里而来。
Web应用为公网上的用户提供了与数据库之间的数据进行交换的媒介,通过Web应用的信息经过了Web应用的筛选,可信度有所提高,但仍然会有被渗透的可能。
数据库数据是需要被保护的数据,其可信度最高。
根据这个模型,我们也可以看出网络安全的两道重要的边界,即为公网-Web应用的边界,以及Web应用-数据库数据的边界。这是网络安全的主要概念防线。

SPIDE威胁建模

STRIDE是微软的Praerit Garg和Loren Kohnfelder建立的威胁模型,目的是在找出电脑安全上的威胁。是六种安全威胁分类英文的字首组成的助忆词。
这六种威胁以及对应的问题是:

  • S-欺骗(Spoofing)-身份验证
  • T-篡改(Tampering)-完整性
  • R-否认(Repudiation)-不可否认
  • I-资讯泄露(Information disclosure),可能是私隐泄露(英语:data privacy)或是资料外泄(英语:data leak)-保密性
  • D-阻断服务攻击(Denial of service)-可用性
  • E-特权提升(Elevation of privilege)-授权

STRIDE是威胁模型,让分析者可以理解威胁系统的方式,并设法找出威胁。STRIDE可以和目标系统的模型一起使用。分析过程会将程序、资料储存、资料流及信任边界进行完整的拆解。

DREAD风险分析建模

DREAD源于微软,但目前正被其他公司所使用。DREAD同样是五种对安全漏洞评级分类的助忆词。
这五种评级分别是:

  • D-破坏性 Damage-漏洞造成的破坏程度
  • R-再现性 Reproducibility-漏洞被他人复现的简易度
  • E-可利用性 Exploitability-发动这种攻击需要做多少(侦查)工作
  • A-影响性 Affected Users-受影响的用户有哪些
  • D-可发掘性 Discoverability-漏洞(已)被发掘的可能性

安全方案要素

安全方案要素主要有:

  • 有效性:首先要保证安全方案确实能够抵御渗透
  • 体验性:良好的用户体验,尽量不要让用户去主动学习太多内容
  • 性能:高效利用资源
  • 低耦合:减少安全方案内部的信任边界,特别是由人管理的
  • 扩展性:可持续发展的安全方案

常用安全思想

SBD 缺省安全

Secure by Default,缺省安全。
缺省安全的主旨是“默认设置提供最高的安全性,而非用户的体验性”。比如在网络系统中默认使用非开放端口,或者在程序设置中不鼓励用户去触动可能造成数据损失的设置,以及在用户系统中不使用默认密码和默认账户。

缺省安全的经典例子:Windows中的 SBD

用户账户控制和Smart Scan。UAC属于通过不鼓励用户触动可能造成数据损失的设置来保护用户的安全。许多用户对其感到不厌其烦,但其确实给用户一个审查程序是否友善的机会。同时,配合Smart Scan,可以进一步将数据保护与大数据联动。
Windows更新同样让用户感到难堪,特别是其更新机制更容易让一些不愿随时保存文件的用户深受其苦。其对于检测用户活动的算法令人发指,以至于这一功能受到诟病已久。不过,windows的强制安全更新确实切切实实地使用户的计算机得到了时效性最强的安全防护。

白帽子对SBD的扩展解释

白帽子对SBD主要扩展了几点:

  1. 白名单思想:比起黑名单,白名单的安全性更高。白名单精准地抓住了“授权”这一问题的核心,宁可错杀一百不可放过其一,是信任问题的优秀解决方案。
  2. 权限最小化:通过白名单思想的继续深入,白帽子提出了权限最小化的解释。权限最小化指的是最大程度上限制用户与程序的权限,使其“只能做能做的事”。这涉及到程序权限不再是对整个层级的读写权限,而是针对路径与文件的读写权限。比如,安装在C:/ProgramFiles/PhpProgram/中的程序不应该有访问C:/ProgramFiles/PhpProgram/以外任何路径的权限。

DID 纵深防御

纵深防御被称之为“多层防御”,这样的概念被运用于“资讯安全”上。这意味著以多层电脑安全技术去减轻其风险,在其中有些电脑被入侵或是泄密时,风险可以大大降低。举例来说,防毒软体被安装于个人工作站上,电脑中病毒在防火墙与伺服器等其它类似环境中被拦劫下来。来自各不同公司的安全产品也可能在网路上布署对其它潜在病毒的防御,以帮助防止任何一个防御指挥的差错而导致全盘毁灭,即称之为阶层化(layered approach)。

DCS 数码分离

Data Code Seperation
当今网络服务中不乏将用户输入内容与预设内容进行结合的服务,比如BBS、论坛,甚至是带有评论功能的任何web应用。然而,当不可控的“用户输入”单纯与页面代码进行结合,危险也就随之而来:任何人都可以将一串可执行代码作为输入内容被动添加进页面代码中,导致没有上限的危险。这类攻击被称作“注入攻击”。最经典的注入攻击莫过于XSS攻击了。
为了防御这类攻击,我们主张使用框架、元素等方法将数据和代码进行分离以避免注入攻击。

URA 非测随机地址

Windows系统一直饱受内存溢出之苦,长期以来,微软研究出了一套针对内存溢出攻击的解决方案。其中就涉及到将栈地址随机化的内容。随机化是信息防御的又一大重要准则。将随机化应用到防御层面,能够让系统结构的不可预测性更加强、被攻破的可能性更加低。