威廉斯托林-计算机安全原理与实践

威廉斯托林-计算机安全原理与实践

口令

令牌

用户持有的,用于进行认证的一种物品。

生物特征

远程用户认证

本地认证是最简单的。复杂一些的是通过网络或者其他通讯线路进行认证。 远程认证的方式由于跨了设备和路线,所以相对存在较多的安全隐患。

潜在的安全问题

实际应用

  1. 阿联酋17个入境处均设有虹膜扫描仪
  2. 虹膜扫描仪会在距离眼球5-24英寸的地方拍摄黑白照片
  3. 使用近红外照明技术,不可见并且绝对安全
  4. 首先确定虹膜的内外边界以及眼睑的轮廓
  5. 将虹膜的纹理转化为数字编码
  6. 将编码与存在数据库中的编码进行匹配判断
  7. 利用分布式网络,所有入境乘客的虹膜编码都可以实时的与中央数据库进行比对

漏洞:依然有被禁止入境的人,使用滴眼液扩张虹膜,而导致虹膜识别不了,进入阿联酋的案例。因此算法还需要对虹膜的状态进行判断,是常态还是扩张后的。

ATM系统安全

  1. 禁止明文传输
  2. 分离网络

访问控制

概念:对于每个具体的系统资源,谁或者什么(比如应用进程)可以访问,以及每个实例允许的访问类型。

包括:

访问控制策略

ICAM是一种用来管理和实现数字身份以及相关属性,凭证,和访问控制的综合性方法。 ICAM由美国政府开发,但是并不仅适用于政府机构,还可以由寻求访问控制统一方法的企业来部署。

数据库

这里主要讲关系型数据库。

利用数据库应用(一般是查询)中存在的安全漏洞而发起的攻击。攻击者可以提取或者操纵web应用的数据。 用户的输入被当作嵌入在sql语句中的字符串转义符而被错误的过滤或者执行。

– 实现过程

  1. 攻击者找到web应用的弱点,然后通过向web服务器发送命令来对数据库注入sql命令。这些命令会被传送到防火墙
  2. web服务器接收到恶意代码,然后发送给web应用服务器
  3. web应用服务器将代码发送给数据库服务器
  4. 数据库服务器在数据库上执行恶意代码,数据库从对应的表中返回数据
  5. web应用服务器动态的生成包含有数据的页面
  6. web服务器向攻击者提供页面

– 简单举例

  1. 参看下面的查询语句
var city;
city=request.from("city")
var sql="select * from ordertable where city='"+city+"'";

这个代码的意思是说从用户输入的城市中筛选出所有的订单。

但是如果用户输入的城市名变成这个 beijing‘;drop table ordertable–

那么查询语句就变成这样了: select * from ordertable where city =’beijing’;drop table ordertable–

这时候的操作就变成查询北京这个城市的订单,然后删除这个订单表。

sql注入的攻击途径和类型

带内攻击是使用同样的通信信道来完成注入sql代码和返回。

比如,将代码注入一个或者多个永真的表达式中。

$query=”select info from user where name=’$_get[“name”]’ and pwd=’$_get[“pwd”]’”;

假如攻击者提交 “‘or 1=1 –'”作为名字字段,那么查询语句就变成这样:

select info from user where name=’ ‘ or 1=1 – and pwd = ‘ ‘

这样就导致口令检查失效,因为–会导致后面的查询变成不可执行的注释。

推理攻击: 没有实际的数据传输。但攻击者能够通过发送特定的请求和观察网站的数据库服务器的响应规律来重新构造信息。

带外攻击: 返回数据使用不同的通信频道。比如一个带有查询结果的email生成和返回是在不同的信道进的。这一方式用于信息检索有限制但数据库服务器带外连接不严格的情况。

sql注入的应对措施

云安全

恶意软件

定义: 被秘密的植入系统中,以损害受害者数据,应用程序或者操作系统的可信性,完整性或者可用性,抑或对用户实施骚扰或妨碍的程序。

传染的机制包括:病毒,蠕虫和木马。

有效负载包括:系统损坏,僵尸网络,网络钓鱼,间谍软件rootkit等

类型:

点击劫持:就是在一个按钮或者输入框上面或者下面蒙一层新的透明不可见的按钮或者输入框,当用户输入或者点击按钮的时候,触发隐藏的操作。

bot: 最开始使用的是irc,所有受控机器加入一个irc频道,控制机在频道内进行指令发送给受控机。后来专用http协议实现隐蔽通道,避免单一控制节点的问题,再后来使用p2p的方式,也是避免控制节点单一失效的问题。

由于固定ip地址很容易被找到和进行封锁。所以现在的恶意软件使用这样的技术:自动生成大量的服务器域名并令恶意软件尝试与所有的这些域名进行连接。即使其中一个服务器名称被破坏,攻击者依然可以用某个域名来重新建立服务器,获得控制。这样要想解决问题,需要技术人员逆向工程以分析其域名生成的算法,然后对所有(大量)的域名进行封锁,这个是很消耗时间和精力的。

还有一种隐藏服务器的技术是使用快速变迁域名(fast-flux dns)技术。它使得与给定服务器域名相关联的ip地址频繁的变动(每隔几分钟),并在大量的服务器代理中轮转,而这些代理往往是僵尸网络的其他成员。这么做会阻止执法机构有效的对他们的威胁采取措施。

键盘记录器,由于大量的使用https和TLS的方式进行数据的传输,所以黑客使用键盘记录器来降低这个收集信息的难度,这里利用软件工具包制作的Zeus网银木马是其中最有名的代表。

rootkitrevealer, 这个工具是mark大神在sysinternal工具包里面包含的一个用于检测rootkit的工具,面向windows,它将使用api的系统扫描结果与不实用api的指令所获得的实际存储视图进行对比。因为rootkit通过修改系统管理员调用所能看到的视图来隐藏自己,而rootkitrevealer刚好利用这个差异来进行判断。

如果检查出一个系统级别的rootkit,那么唯一可靠的方式就是彻底的重新安装新的操作系统。

边界管理

所有进入企业的流量都需要进行防火墙或入侵检测的探查。这样在入口的时候就屏蔽掉一些入侵和恶意的行为。

可以部署在企业内部网络中的各个独立的局域网出口点上,也可以安装在内外网之间。

拒绝服务攻击

大部分的DoS攻击中,所使用数据包的一个共同的特征是所采用伪造的源地址。这个比较容易使用许多操作系统上的原始套接字接口来实现。

操作系统设计者是为了进行某些自定义的网络测试或网络协议的研究而引入原始套接字接口的,并不是用于正常的网络操作。但是由于兼容性和继承性的问题,在如今的操作系统中依然保留原始套接字接口。攻击者可以利用这个标准接口很容易的制造具有伪造属性的数据包。

通过造成服务器上用于管理TCP连接的连接表的溢出,从而攻击网络服务器响应TCP连接请求的能力。这意味着即使合法的用户TCP的请求也得不到服务器的响应。

SYN欺骗是针对系统资源的DoS攻击,就是针对操作系统上网络处理程序的攻击。 大量的伪造源地址的主机向服务器申请TCP握手,正常的话,服务器会响应SYN-ACK包到正常的源地址。通讯完成后,源主机会发送RST信号给服务器,关闭连接。但是伪造的主机没有这样的源地址,也就不会有RST信号发出,服务器就会将这个信息保存在连接表中,而连接表的大小是有限度的,这个表一旦被填满,那么后来来的请求就不会得到服务器的响应。正常情况下,超时的TCP连接请求会立即被清理出TCP连接表,但是攻击者是不断的发送足量的欺骗TCP连接给服务器的,也就是这个TCP连接表会一直被填满,从而无法响应大多数合法的连接请求。

SYN泛洪攻击与SYN欺骗攻击的方式类似,只是泛洪攻击的是数据包的总量,像洪水一样冲垮对方,而SYN欺骗则是用小部分的数据包消耗目标系统上的网络处理程序。

泛洪攻击既使用UDP也可以使用TCP,虽然TCP会很容易被目标服务器拒绝,但是攻击者已经成功的消耗了服务器的网络链路。

一些抵御SYN欺骗的方法:

  1. 对于TCP连接,把请求连接的关键信息加密编码存放于cookie中,然后将这个cookie作为服务器的初始序号封装在syn-ack响应包中发送给客户端。当合法用户返回ack应答包时候,要求在ack的应答包中包含序号+1的cookie,然后服务器根据这个cookie来重构那些曾经在tcp连接表中存储的相关信息。
  2. 这个技术一般用于防止TCP连接表溢出。
  3. 缺点是服务器要消耗一定的计算资源来计算cookie。还有就是限制了一些tcp的扩展功能。比如large window。

这个技术最著名的方法的实现者是: SYN cookie。发明者是Daniel Bernstein。

  1. 修改TCP/IP网络处理程序中所使用的参数。包括连接表的大小,当未收到响应时删除表项目的超时时间。虽然这样增加了攻击的难度,但是并不能从根本上预防攻击。
  2. 最好的措施是屏蔽IP定向广播的使用。
  3. 还有就是判断连接来自人还是机器,增加captcha这样的限制
  4. 增加站点的镜像在多个不同的地方,也能增加稳定性和容错能力。

多机系统的间接攻击:

  1. 分布式拒绝服务攻击
  1. 反射攻击

举个例子,我要攻击的对象是a,我做一些带有a的源地址的数据包给某些网络服务器,网络服务器会响应这些数据包,会将响应的数据包发给a的源地址。当攻击者发送的数量足够大,那么响应包的数据将占满目标系统的网络链路。这些网络服务器成了DDoS攻击的中间媒介,而且他们做的都是正常的反应。这也使得攻击者可以更容易的发起攻击和躲避跟踪。

实现的方式:

改进型的,但容易被切断的攻击方式:

一般dns客户端会通过自身的一个端口利用udp协议向dns服务器的53端口发送域名解析请求。 但是攻击者会利用一个虚假的源地址A向dns发送域名解析请求,攻击者使用端口7,这个端口是echo应答协议的端口。dns服务器稍后会向该攻击的受害者A的端口7发送一个响应。如果受害者的机器提供应答服务,它就可能创建一个网络包将收到的数据返回给DNS服务器。如果DNS服务器响应了A的这个包,那么在A和DNS服务器之间就会产生循环。

  1. 放大攻击

国际组织希望安装过滤器在路由器或者网关旁边,以用于过滤伪造的源地址,但是ISP以这样会消耗路由器的性能为说法,不支持这样的提议。从而大量的家庭客户端的电脑被用于制造虚假的源地址。

基于应用的攻击

IP电话使用的是SIP协议,语法和http类似。有请求和响应两种形式。它的实现方式是这样的:

A的客户端首先向自己所在的代理服务器发起invite请求,目标是B。此时A的代理服务器会经过DNS查询B的代理服务器的地址,然后A的代理服务器会将invite请求发给B的代理服务器,B的代理服务器在接受到这个请求后,将消息转发给B的客户端。B的客户端就会响铃了。

攻击者利用伪造的IP地址向一个SIP代理发送大量的invite请求,或者使用僵尸网络生成大量的invite请求,就会造成DoS攻击。这种攻击第一可以让服务器的资源被无效的invite消耗,第二可以让服务器的网络容量被占用。

比如当大量的http请求来自不同的bots,就可以消耗相当大的资源。 比如从目标服务器下载大文件的请求会导致web服务器从硬盘中读取文件,然后将文件存在内存中,再将其转化为网络包流,再进行传输,这个过程消耗内存,cpu,网络资源。

这种攻击的变种称为递归http泛洪。bots从给定的http链接触发,通过递归的方式遍历给定的web服务器的所有的链接。也就是爬虫。

Slowloris攻击,利用多线程支持多个到同一个服务器应用程序的请求进行攻击。它不断的发送不完整的http请求,试图独占服务器所有可用的请求处理线程。 Slowloris 背后的关键是它能够以很少带宽消耗引起很大麻烦。

这是使用了HTTP协议规范(RFC2616):一个空白行必须用来说明请求报头的末尾或者载荷的开始,如果有的话。一旦接收到完整的请求,web服务器便会响应。但是slowloris不发送这个信号给web服务器。

Slowloris 攻击分为 4 个步骤:

减轻slowloris攻击的方式:

负载均衡会对http请求报头做完整性检查,除非http客户端发送报头的最后两个回车和换行,否则该请求是不会被送至web服务器的。要说明的是,企业级的入侵检测和入侵防护系统,对与slowloris没有什么效果,因为它走的是合法的http流量。

入侵检测

一种监控并分析系统事件的安全服务,目标是发现未经授权而访问系统资源的尝试活动,并提供实时或者近似实时的报警。

包括三个组件:

IDS可以分为下面几类:

身份验证,访问控制和防火墙在阻断入侵方面都有一定的作用。但是入侵检测有下面的表现:

  1. 能够不间断的运行,较少需要人的参与
  2. 具有容错功能,系统崩溃时,必须能够较快的恢复和重新初始化
  3. 抵御破坏。IDS必须能够检测自身,检测是否自己被攻击者修改
  4. 对于正运行的系统增加较小的开销
  5. 能够根据被检测系统的安全策略进行配置
  6. 能过自动适应系统和用户变化
  7. 能够扩展用于监控更多的主机
  8. 能够提供降级服务,如果某些组件失效,其余部分将最少受到影响
  9. 允许动态配置,不需要变更后重启

NIDS检测网络上流向潜在的易受攻击的计算机系统的数据包流量。而HIDS是基于主机的,检测主机上用户和软件的活动。

NIDS通常是企业外围安全防御架构的一部分。通常通过监控流量模式和数据包的内容来检测入侵企图。但是随着加密技术的使用,NIDS已经无法看到数据包内部的有效内容了。这也妨碍了它的作用的发挥。

蜜罐

入侵检测技术中一个特别的组件,是用来引诱潜在的攻击者远离关键系统而设计的。作用包括:

  1. 转移攻击者的目标
  2. 收集有关攻击者活动的信息
  3. 引诱攻击者在系统中逗留足够长的时间,以便管理员对攻击做出反应

防火墙

针对包过滤防火墙的攻击方式:

  1. IP地址欺骗: 入侵者从外部向内部发送数据包,使用的源地址包含内部主机地址。应对措施是,丢弃那些到达外部接口而源地址为标记内部主机地址的包。
  2. 源路由攻击:源端指定包通过internet使用的路由,希望可以绕过对源路由信息的安全检查。
  3. 细小分段攻击:入侵者利用IP分段来产生特别小的数据分段,并强制将TCP头信息装入分散的分段中。这种攻击主要是为了绕过基于TCP头信息的过滤规则。应对措施:包的第一个分段必须包含最少的预定传输头。如果第一个分段被否决,那么过滤器将记住这个包,并丢弃后继的所有分段。

状态检测防火墙:

状态检测防火墙通过建立一个出战TCP连接目录来强制执行TCP流量规则。只有当数据包符合这个目录中的某项时,才允许通过。状态检测和包检测检查相同的包信息,但是不同的是状态检测防火墙还会记录TCP连接信息。一些状态检测防火墙还跟踪TCP包的序号,以阻止基于序号的攻击。比如会话劫持。

应用级网关(也叫应用代理):用于应用级流量中继。

用户使用tcp/ip应用程序连接网关,网关要求用户提供要访问的远程主机名。当用户提供了有效的身份验证后,网关会联系远程主机并在远程主机和用户计算机间中继包含应用程序数据的tcp分段。网关可以被设置为只支持某种应用程序的中继。

VPN

IPSec VPN是建立在客户端与防火墙之间的一种虚拟网络。 因为IPSec包,除了IP头和载荷数据外,还需要有IPSec头,如果放在网络内部,防火墙无法识别加密流量,也就失去了保护的意义。

分布式防火墙:

外部数据包经过边界路由器后,进入外部防火墙,这里有外部DMZ区。穿过外部防火墙后,进入内部DMZ,再往下有内部防火墙,保护内部的网络,然后各个内部的主机上面还有主机级别的防火墙。

IPS:

基于主机的IPS,用于避免对系统资源的修改,避免提权攻击和缓冲区溢出攻击,以及访问电子邮件通讯录,以及文件目录遍历。

IBM数字免疫系统

一体化的威胁管理产品,UTM。主要的问题是吞吐量和延迟的,现在商业设备普遍的吞吐量损失是50%,客户被建议使用高性能,大吞吐量的设备以避免性能问题。

软件安全与可信系统

缓冲区溢出

大量的输入被放置到缓冲区或者数据存储区,超过了它所分配的存储能力,覆盖了其他的信息。攻击者利用这样的情况破坏系统或者插入特别编制的代码,以获取系统的控制权。

这是编程错误的结果导致的。发生缓冲区溢出后,会导致程序使用的数据受到破坏,在程序中发生意外的控制权转移,可能的内存非法访问,以及很可能导致程序终止。

当缓冲区溢出被用于攻击系统时,系统的控制权会被转移到攻击者的代码中,此时攻击者可以执行任意的代码在系统中。

缓冲区溢出非常常见,越是靠近底层的语言,比如C,越要靠开发者的技能和细心来避免出现漏洞的语句。建议在可能的情况下,使用高级语言进行开发,减少考虑底层内存和指针的问题。 但是为了提高效率,比如硬件驱动的开发,C语言是不可避免使用的。

linux系统由于有大量的迭代操作,C语言沉积下来的会有比较多的缓冲区溢出攻击面,后来人们使用OpenBSD这样的系统,在操作系统层面进行了加固。

防御,针对栈stack溢出

目前有2中防御方法,一种就是在程序运行时候,首先程序会申请地址,我们在对变量分配地址空间之前,在旧的桢指针下写入一个不可预知的值。当程序运行结束前,我们检查这个值是否有变化。如果有变化,我们就让这个程序异常终止。如果没有变化,我们就正常退出。 问题是,这样的程序需要用带有扩展的gcc编译器重新编译才有效果。

还有一种就是在函数的入口处,将返回地址的一个副本写到内存的某个安全区。在函数的出口处,我们检查帧里的返回地址与保存的副本,如果两者有差异,那就终止程序。

以上的两种防御都需要重新编译。人们开始想办法当程序运行时进行监控,也就是运行时防御。

heap堆溢出

堆一般设置在程序代码和全局数据之上。堆溢出的可能目标是从堆中动态分配的内存缓冲区。使用动态数据结果的程序是从堆中请求内存的。例如记录的链表。

与栈不一样,堆空间中没有容易引起控制权转移的返回地址。但是如果分配的空间包含一个指向函数的指针,而这个函数代码随后就要被调用,攻击者能够安排改变这个地址指向被改写的缓冲区的shellcode。

通常,处理输入/输出或者解码一个压缩图像/视频文件时候,程序使用记录列表保存大块数据。这样的攻击就可能发生。

防御堆溢出的方法:

全局数据区溢出

全局数据从程序文件中被装载,并设置在程序代码区之上。如果使用不安全的缓冲区操作,数据可以溢出到一个全局数据的缓冲区,并改变相邻的内存地址,包括可能随后要调用的函数的指针。

防御的方法:使全局数据区成为不可执行的。将函数指针设置在其他类型数据之下,以及在全局数据区和任何其他管理区之间使用guard页。

软件安全

提高软件质量通常的方法:

  1. 采用结构化的设计,通过测试来识别和消除程序中的bug
  2. 包括对可能输入变化和常见的错误测试

软件安全关心的不是程序中bug的数量,而是这些bug是如何被触发而导致程序失败的。

软件安全不同与软件质量和可靠性,攻击者的目的是找到可利用的bug,造成程序失败。而这些bug需要通过一些特殊构造的方法被触发,一般的检测较难发现。

无论何时,只要一个程序调用一些服务,而这个服务来自于另一个程序,服务或者函数,就可能发生注入攻击。给一个程序传递来自外部的一些不可信,没有充分检查和验证的信息时候,也可能发生注入攻击。

fuzzing测试用于进行常规的,更普遍的测试。 主要就是按照模版生成大量的测试输入,然后输入到程序中,检查输出。但是这样的测试对于需要构造复杂结构而触发的漏洞,没有效果。而这样的漏洞一般而言是最重要的。


操作系统安全

许多报告指出,使用少量的基本加固措施就能抵御大量的已知攻击。

这四条策略是:

  1. 白名单许可的应用
  2. 给第三方应用和操作系统漏洞打补丁
  3. 限制管理员的权限
  4. 创建深度防御系统

这里也可以看看网络上著名的20 critical security control

在创建和部署一个系统的时候应该有一个预案,并运行于整个系统的生命周期:

  1. 评估风险和规划系统部署
  2. 加固系统底层操作系统和关键应用程序
  3. 确保任何关键内容是安全的
  4. 确保使用了合适的网络保护机制
  5. 确保应用了合适的流程保证系统安全

系统安全规划

宗旨: 以最小的代价获得最大化的安全。

设计相关内容:

  1. 系统的目的,存储信息的类型,提供的应用和服务以及安全需求
  2. 系统用户的分类,以及拥有的权限,以及可以访问的信息类型
  3. 用户怎样获得认证
  4. 以什么方式访问系统内的信息应该被监管
  5. 系统对存储在其他主机,如文件服务器或者数据库服务器上的信息可以进行访问,对这些访问怎么样进行管理
  6. 谁来管理系统,以何种方式管理
  7. 系统需要的其他附加安全措施,包括主机防火墙,发病毒软件或其他恶意代码防护机制以及日志

加固操作系统的建议

  1. 安装操作系统并打补丁
  2. 移除不需要的服务,应用,协议
  3. 配置用户,组以及权限
  4. 配置资源控制
  5. 安装安全工具
  6. 测试基本操作系统的安全性

安全维护

  1. 监控和分析日志信息
  2. 定期备份
  3. 从安全损坏中恢复
  4. 定期测试系统安全性
  5. 使用合适的软件流程来更新关键软件和补丁,并进行监控和修改相关配置

可信计算与多级安全

BLP模型,核心是保密性。关心信息的非授权泄漏。

不能上读,不能下写。

这两个特性规定了强制访问控制的保密性形式。并且还规定了自主访问控制。

模型的三元组:主体,客体,访问方式

BLP的困难:

  1. 保密性与完整性互斥,要么追求权限,要么追求机密。
  2. 出现隐蔽通道的问题,比如合谋

Biba模型:关注完整性,关心数据的非授权修改。针对军事应用。

clark-wilson:关注完整性,针对商业应用。 基础是:良形事务,和用户职责分离。

chinese-wall:完整性和保密性。为了可能发生利益冲突的商业应用开发的,利用了自主和强制访问概念。是金融界和法律界的一个思想。

可信计算TC

可信计算提供三个基本服务:

  1. 鉴别引导
  2. 认证
  3. 加密

IT安全管理和风险评估

  1. 哪些资产需要保护
  2. 这些资产受到哪些威胁
  3. 如何应对这些威胁

IT安全管理概念:

  1. 确定组织的IT安全目标,战略和方针
  2. 确定组织的IT安全要求
  3. 识别和分析组织内IT资产面临的安全威胁
  4. 识别和分析的风险
  5. 规定适当的安全防护措施
  6. 监视必要的安全防护措施的实施和运行,以便为组织内部的信息和服务提供最经济的保护
  7. 开发和实施安全意识项目
  8. 检测和响应事件

CSO信息安全官的职责:

  1. 监督信息安全管理过程
  2. 与主管信息安全的高级管理层联络
  3. 维护组织的信息安全目标,战略和方针
  4. 协调对信息安全事件的响应
  5. 管理整个组织的信息安全意识和培训计划
  6. 与IT项目安全官相互沟通

IT安全控制,计划和规程

管理问题

物理和基础设施安全

信息系统安全的三要素:

  1. 逻辑安全:保护数据免受基于软件和基于通信的威胁
  2. 物理安全:保护存储数据的信息系统和使用,操作,维护这些系统的人员的安全。
  3. 整体安全:也叫做公司或者工厂安全。保护一个完整区域的人和财产,设施和建筑的安全。

相对湿度 40%-60%

物理安全破坏的恢复

  1. 使用冗余。在理想情况下,系统中所有的重要的数据在站点外都是可以访问的。并且在成本/收益的基础上对其进行近乎实时的更新。

人力资源管理

  1. 安全意识,培训和教育

教育是为了让人知道“为什么”,培训是为了让人知道“怎么做”,而意识是让人知道“什么是”

教育要求理解背景知识。培训要动手实践,意识可以通过看视频了解。

人员安全的原则:

  1. 最小特权:根据员工所做的工作给予他最小的访问权限
  2. 责任划分:对责任细分,减少职员对自己的权限进行不恰当的使用机会。
  3. 对关键员工有限的依赖:确保在机构中没有人是不可替代的。对于系统来说,员工结构中应该建立冗余机制。专门的技能或者知识不能仅有一人掌握。

把所有的安全和审计责任放在一个人身上是危险的。

员工离职过程安全:

  1. 将其账户从授权访问列表清除
  2. 明确通知保安,该人在没有内部人员陪同的情况下不许进入办公区域
  3. 清除离职人员的访问pin
  4. 修改必要的安全锁
  5. 收回员工文档,设备,硬盘,工牌等
  6. 通知该信息给适当的部门

ISO27002


安全审计

目的:

  1. 为与安全相关的正当的计算机操作提供一定级别的保证
  2. 无论攻击是否成功,都为其生成可用于事后分析的数据
  3. 提供一种可用于评估安全服务中存在的不足的工具
  4. 提供能够用于定义异常行为的数据
  5. 维护对计算机取证有用的记录

审计模型:

  1. 事件鉴别器
  2. 审计记录器
  3. 报警处理器
  4. 安全审计迹:记录器将每个事件创建格式化的记录存储于此处
  5. 审计分析器
  6. 审计存档器
  7. 存档
  8. 审计提供器
  9. 审计迹检查器
  10. 安全报告

SIEM

法律与道德问题

密码编码算法

攻击类型:

3DES的有效密钥长度为168位。如果令k1=k3,那么密钥长度就是112位。如果k1=k2=k3,那么3DES就和DES一样了,密钥长度为56了。

在DES和3DES中,分组长度为64位。

AES中,分组长度为128位。密钥长度可以被指定为128,202或者256位。

AES,字节的最左边4位作为行,右边4位作为列,然后按照行列取出表中对应的值。

流密码和RC4

RC4作为SSL/TLS标准。该标准为网络浏览器和服务器间通信而制定。

分组密码的工作方式:

  1. ECB:用相同的密钥分别对64位明文组进行加密
  2. CBC:加密算法的输入是上一个64位密文组和下一个64位的明文组异或
  3. CFB:一次处理位。上一个分组密文作为产生一个伪随机数输出的加密算法的输入,该输出与明文异或,作为下一个分组的输入
  4. OFB:与CFB基本相同,只是加密算法的输入是上一次DES的输出
  5. CTR:每个明文组是与加密的计数器的异或。对每个后续的组,计数器是增加的

公钥密码和消息认证

RSA是一种分组密码,其明文和密文均是0~n-1之间的整数。

RSA算法的详细解法 密钥交换的详细解法

网络安全

internet安全协议

符合rfc822的规范,定义了一个简单报头,包括to,from,subject以及其他域。mime定义了一些内容格式,用于支持多媒体email进行标准化表示,包括文本,图像,音频,视频等。

s/mime提供签名和加密消息的能力。

TLS协议中的两个概念:

SSL记录协议支持两种服务,机密性和消息完整性。

心跳的目的:

  1. 向发送者确保接收端存活,即使在底层tcp连接上已经有一段事件没有任何活动
  2. 心跳生成了空闲时间段中的活动连接,以避免被不容忍空闲连接的防火墙关闭掉

IPsec的两种模式:

  1. 传输模式:保护扩展到IP包的载荷,针对上层协议提供保护。一般用于主机端到端的通信。该模式下会对载荷进行加密和有选择性的进行认证。但是对IP头不进行处理。
  2. 隧道模式:对整个IP包提供保护。新生成的包是和原来的包不同的源地址和目标地址,增加了安全性。ESP在隧道模式下会对整个IP包,包括IP头进行加密和认证。

Internet认证应用

主要是kerberous的方面

协议的安全主要依赖于参加者对时间的松散同步和短周期的叫做Kerberos票据的认证声明。 下面是对这个协议的一个简化描述,将使用以下缩写:

AS(Authentication Server)= 认证服务器 KDC(Key Distribution Center)= 密钥分发中心 TGT(Ticket Granting Ticket)= 票据授权票据,票据的票据 TGS(Ticket Granting Server)= 票据授权服务器 SS(Service Server)= 特定服务提供端 客户端用户发送自己的用户名到KDC服务器以向AS服务进行认证。KDC服务器会生成相应的TGT票据,打上时间戳,在本地数据库中查找该用户的密码,并用该密码对TGT进行加密,将结果发还给客户端用户。该操作仅在用户登录或者kinit申请的时候进行。 客户端收到该信息,并使用自己的密码进行解密之后,就能得到TGT票据了。这个TGT会在一段时间之后失效,也有一些程序(session manager)能在用户登陆期间进行自动更新。 当客户端用户需要使用一些特定服务(Kerberos术语中用”principal”表示)的时候,该客户端就发送TGT到KDC服务器中的TGS服务。当该用户的TGT验证通过并且其有权访问所申请的服务时,TGS服务会生成一个该服务所对应的ticket和session key,并发还给客户端。客户端将服务请求与该ticket一并发送给相应的服务端即可。具体的流程请看下面的描述。

其在網路通訊協定中屬於顯示層。

简单地说,用户先用共享密钥从某认证服务器得到一个身份证明。随后,用户使用这个身份证明与SS通信,而不使用共享密钥。

网络访问控制和云安全

  1. 访问请求者
  2. 策略服务器
  3. 网络接入服务器(媒体网关)

网络访问实施方法:

  1. IEEE802.X
  2. VLAN
  3. Firewall
  4. DHCP

EAP:EAP(Extensible Authentication Protocol)为可扩展身份验证协议,是一系列验证方式的集合,设计理念是满足任何链路层的身份验证需求,支持多种链路层认证方式。EAP协议是IEEE 802.1x认证机制的核心,它将实现细节交由附属的EAP Method协议完成

EAPOL:EAP over LAN。比如在PC和NAS之间,EAP报文用这个格式进行封装。

EAPoR:EAP over Radius。在NAS和AAA之间的封装格式。

EAP的四种认证方法:

  1. EAP-MD5:容易受到字典攻击,不支持密钥生成
  2. LEAP:cisco的专用认证方法,在EAP-MD5的基础上增加了动态的WEP密钥和互验证(客户端和Radius服务器之间)
  3. EAP-TLS:基于TLS的EAP,是WPA和WPA2的行业标准。优点是安全性较高。缺点是需要PKI体系,还有客户端认证时候负载较高,证书的管理有难度
  4. EAP-TTLS:基于隧道TLS的EAP.目的是解决EAP-TLS需要PKI系统的问题。这样不需要PKI,而是直接在TLS隧道内使用原有的认证方法。
  5. PEAP:将EAP封装到TLS隧道。由cisco,microsoft和RSA共同开发的。也是WPA,WPA2的标准
  6. EAP-FAST:cisco提出的,用于代替LEAP。

传输层安全

使用HTTPs时候,下面的通信元素是加密的:

  1. 请求文档的URL
  2. 文档的内容
  3. 浏览器格式的内容
  4. 在浏览器和服务器之间传输的cookies
  5. HTTP报头的内容

无线网络安全

无线网络的关键因素:

  1. 信道:容易窃听和干扰
  2. 移动性
  3. 资源:手机和平板的处理能力较低,比较容易受到拒绝服务攻击和恶意软件
  4. 易接近性

包括终端,无线媒介,接入点

保护措施:

电子邮件安全

IP安全性

| 访问量:
Table of Contents