Download presentation
Presentation is loading. Please wait.
1
系统安全 培训机构名称 讲师名字
2
课程内容 操作系统基础 Unix/Linux安全实践 操作系统安全 Windows安全实践 可信计算技术 系统安全 数据库安全基础
数据库系统安全管理 知识体 知识域 知识子域
3
知识域:操作系统安全 知识子域:操作系统基础 了解操作系统体系架构和基本概念(进程、文件、对象、用户接口、系统调用);
了解操作系统基本实现机制(CPU模式与保护环、进程隔离、进程调度)
4
操作系统基础 计算机系统结构和基本原理 操作系统基本概念 操作系统基本实现机制
5
计算机系统结构 应用程序 操 作 系 统 基本输入输出系统(BIOS) 底层硬件设备
一般情况下,我们不能直接操作裸机,必须通过一个叫做基本输入输出系统的软件系统(英文为Basic Input/Output System,简称BIOS),才能操作控制裸机,之所以这样称呼它,是因为它提供了最基本的计算机操作功能,如在屏幕上显示一点,接收一个键盘字符的输入等。 在基本输入输出系统的外面是操作系统(Operating System):专门负责管理计算机的各种资源,并提供操作电脑所需的工作界面。有了它们,人们才可以方便自如地使用电脑。 应用软件一般都运行在操作系统之上,由专业人员根据各种需要开发。我们平时见到和使用的绝大部分软件均为应用软件,如杀毒软件,文字处理软件,学习软件,游戏软件,上网软件等等 具体结构图如右图所示: 应用程序 操 作 系 统 基本输入输出系统(BIOS) 底层硬件设备
6
操作系统结构 用户进程 系统调用接口 内核 硬件:CPU、内存、硬盘、网络硬件等
用户进程:用户应用程序是运行在操作系统最高层的一个庞大的软件集合,当一个用户程序在操作系统之上运行时,它就成为操作系统中的一个进程。 系统调用接口:在应用程序中,可通过系统调用来调用操作系统内核中特定的过程,以实现特定的服务,比如创建一个新进程等。由若干条指令构成的过程:SHELL、VISUL、WHO等 内核:操作系统的灵魂,它负责管理磁盘上的文件、内存,负责启动并运行程序,负责从网络上接收和发送数据包等。内核实际是抽象的资源操作到具体硬件操作细节之间的接口。 硬件:这个子系统包括了操作系统安装时需要的所有可能的物理设备,如CPU、内存、硬盘、网络硬件等
7
操作系统基础 计算机系统结构和基本原理 操作系统基本概念 操作系统基本实现机制
8
程序、进程和线程 程序是在计算机上运行的一组指令及指令参数的集合,指令按照既定的逻辑控制计算机运行。
进程是程序运行的一个实例,是运行着的程序。 线程是为了节省资源而可以在同一个进程中共享资源的一个执行单位。
9
进程调度
10
系统调用和CPU特权级 由操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口(API)。
11
操作系统基础 计算机系统结构和基本原理 操作系统基本概念 操作系统基本实现机制
12
操作系统是管理以CPU为核心对角及其它计算机硬件的设备驱动程序。
操作系统基本概念 什么是操作系统? 操作系统是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。 是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。 操作系统是管理以CPU为核心对角及其它计算机硬件的设备驱动程序。
13
操作系统层次 用户 程序接口 用户程序 操作系统接口 O.S.操作系统 硬件接口/特权指令 外部设备
14
操作系统基本功能 资源管理 程序控制 人机交互 进程管理 内存管理
系统的设备资源和信息资源都是操作系统根据用户需求按一定的策略来进行分配和调度的。 处理器管理 – 分时 存储管理 – 内存和外存的分配 设备管理 – 分配和回收 信息管理 – 文件系统 程序控制 人机交互 进程管理 内存管理
16
操作系统基本组成 用户接口 为不同用户提供操作界面,实现对系统资源的控制 进程管理
通过对CPU每个执行周期的分片,实现不同进程的调度,从而实现多任务 内存管理 管理和规划主机内存的使用,为其它模块提供接口 文件系统管理 用于明确磁盘或分区上的文件的方法和数据结构,提高磁盘存储利用率、文件安全性 磁盘管理 处理不同的磁盘高度和读写请求,保证磁盘的存储效率 设备管理 管理不同的外设,保证设备的合理使用和分配
17
知识域:操作系统安全 知识子域:Unix/Linux安全实践 了解unix/linux系统架构和关键系统组件; 理解系统服务和系统进程;
18
Unix/Linux安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 文件系统安全 身份认证与验证授权
账号安全 日志与审计 其它
19
Unix/Linux系统架构
20
内存管理系统 允许多个进程安全地共享主内存区域,支持虚拟内存 文件系统 文件系统负责存储信息在磁盘上,虚拟文件系统隐藏了各种不同硬件的具体细节,为所有设备提供了统一的接口,VFS支持几十种不同的文件系统 进程间通信 进程间通信支持进程间各种通信机制 进程调度系统 进程调度控制着进程对CPU的访问,当需要选择下一个进程运行时,由调度程序选择最值得运行的进程 设备驱动程序 负责与不同的管理不同设备
21
Unix/Linux安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 文件系统安全 身份认证与验证授权
账号安全 日志与审计 其它
22
什么是守护进程(服务) 服务就是运行在网络服务器上监听用户请求的进程 服务是通过端口号来区分的 常见的服务及其对应的端口 ftp : 21
telnet : 23 http(www) : 80 pop3 : 110
23
在UNIX系统里启动与关闭服务? 在UNIX系统中, 服务是通过inetd 进程或启动脚本来启动
通过 inetd 来启动的服务可以通过在/etc/inetd.conf 文件中注释来禁用 通过启动脚本启动的服务可以通过改变脚本名称的方式禁用
24
inetd 超级服务器? 1. inetd超级服务器 inetd 的功能 inetd 的配置和管理 2. 服务的关闭
关闭独立启动的服务 3. inetd 的替代品 xinetd( xinetd 比inetd更多管理功能 xinetd 的配置
25
inetd配置文件 # inetd.conf This file describes the services that will be available # through the INETD TCP/IP super server. To re-configure # the running INETD process, edit this file, then send the # INETD process a SIGHUP signal. # # Echo, discard, daytime, and chargen are used primarily for testing. # To re-read this file after changes, just do a 'killall -HUP inetd' #echo stream tcp nowait root internal #echo dgram udp wait root internal #discard stream tcp nowait root internal #discard dgram udp wait root internal #daytime stream tcp nowait root internal #daytime dgram udp wait root internal #chargen stream tcp nowait root internal #chargen dgram udp wait root internal #time stream tcp nowait root internal #time dgram udp wait root internal # These are standard services. ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
26
Unix/Linux安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 文件系统安全 身份认证与验证授权
账号安全 日志与审计 其它
27
PC机启动过程 PC启动 Intel CPU进入实模式 开始执行0xFFFF0(ROM—BIOS)处的代码 BIOS 自检
初始化位于地址0 的中断向量表 BIOS将启动盘的第一个扇区装入到0x7C00, 并开始执行此处的代码 完成内核的初始化
28
UNIX引导过程概述 1. 开始引导装入程序(boot loader) 2. 内核初始化并运行内核程序 3. 开始其他系统 “自发的” 进程
4. 运行系统起始脚本
29
内核活动 1. 识别CPU体系结构并初始化 2. 计算物理内存并初始化虚拟内存系统 3. 为内部结构分配内存 4. 探测系统设备,配置它们和初始化它们
30
内核引导的自发进程 “自发” 进程是内核通过特别机制创建的 这些进程通常用来控制进程调度安排和 VM system
它们不是存在于文件系统中可执行的进程,而是真正的内核代码 INIT 进程开始并引导系统运行开始脚本
31
BSD “起始”(start-up)脚本 – Mounts 本地文件系统 – 初始化网络接口 – 开始系统daemon程序
• init 运行 shell 脚本 /etc/rc: – Mounts 本地文件系统 – 初始化网络接口 – 开始系统daemon程序 • /etc/rc 运行 /etc/rc.local 中的特定系统服务程序 • /etc/rc.conf 脚本用来告诉系统在引导时运行哪些服务
32
SYSV “开始” (start-up)脚本
init程序依据设定运行级别运行相应的“开始”级别脚本: S – 系统启动配置 2 – 初始化网络配置,启动系统daemon程序 3 – 输出文件系统,启动本地daemon进程 运行级别0是中止系统,运行级别6是重新引导系统 启动脚本存放在 /etc/init.d目录中 通常一个脚本对应一个daemon进程或者一项配置任务 这些脚本都可以带有“start”或“stop”参数– 这样当系统down的时候,可以很好地关闭打开的进程 每一个运行级别都对应一个/etc/rc*.d目录 /etc/rc*.d中的链接文件的原文件是/etc/init.d目录中文件 链接文件命名方式是 S nn… (脚本运行使用“start” 参数)或者 K nn… (脚本运行使用“stop”参数) nn代表脚本运行的顺序
33
底线 管理员可以控制在系统引导结束后运行哪些服务 对于BSD系统, 编辑/etc/rc.conf (或者去掉/etc/rc*中注释标记)
对于SYSV系统, 删除 (或者重命名) 在 /etc/rc*.d目录中的链接文件
34
Init控制引导进程 1. 基本系统配置 2. 开始网络服务 3. 开始NFS守护进程 4. 运行系统其他守护进程 5. 提供X界面登录的窗口
35
1、基本系统配置 • 装载root文件系统-包括关键程序和配置文件 • 配置网络接口 • 装载其他文件系统,其中一些可能是从网络装载
36
2、开始网络服务 DNS服务-只在有DNS服务的机器上运行 Portmapper (rpcbind )– 基于RPC服务的主控守护进程
NIS/NIS+– 基于RPC的网络信息数据库 Syslog– 系统日志进程 inetd – 运行其他网络服务的“meta” 守护进程
37
3、开始NFS守护进程 NFS 客户端进程: lockd – NFS 文件锁定系统 statd – 在系统重引导后解锁进程
mountd – 服务器响应客户请求 nfsd – NFS I/O 进程 "Automounter" (amd or automountd)
38
4、运行系统其他进程 • cron – 在事先设定好的时间运行的后台进程 • Sendmail – 邮件服务进程 • 其他服务进程 – NTP、 SNMP、 HTTP、“volume managers”、local services ……
39
Unix/Linux安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 文件系统安全 身份认证与验证授权
账号安全 日志与审计 其它
40
文件系统目录结构 / home bin proc usr boot lib dev etc var
ftp ljw linux bin lib man tmp lib log run spool tmp
41
常见目录用途 /bin bin是二进制(binaries)的缩写。许多基本的系统程序都驻留在/bin目录中。 /boot
存放启动Linux时使用的一些核心文档,如 vmlinuz等。 /dev 用1s -F命令可以列出/dev目录中的内容。该目录下是一些称为设备驱动程序的特殊文件,用于访问系统资源或设备,如软盘、硬盘、CD-ROM、调制解调器、系统内存等。 有了这些文件,用户可以像访问普通文件一样方便地访问系统中的物理设备。例如,当用户要从一个文件中读数据时,可以通过调用/dev/mouse文件从鼠标器读取输入信息。在/dev目录下,各种设备所对应的特殊文件以一定的规则命名。例如,/dev/fd0文件指第一个软驱,/dev/fdl指第二个软驱,/dev/hda指第一个硬盘,而/dev/hdal指的是/dev/hda的第一个分区,如此类推。 /etc 包含系统管理所需要的大量配置文件和子目录,例如口令文件/etc/passwd、系统初始化脚本文件/etc/rc等。该目录是系统中最重要的目录之一。 /home 包含所有用户的个人主目录。通常,用户的个人主目录以它的名字来命名,例如/home/yang是用户yang的个人目录。在新安装的Linux系统中,/home目录中可能没有任何用户。 /lib 该目录包含动态链接共享库的文件映象,这些文件为众多程序提供了共享代码。使用库文件,可以缩小可执行文件的尺寸,节省系统空间。
42
常见目录用途 /lost+found 这是一个空目录,只有当文件系统发生故障时,才用来存放找不到正确存储位置的文件。 /mnt
用户可以在该目录下临时挂装其它文件系统,如在使用CD-ROM时,就要把CD-ROM文件挂装在该目录下。 /proc 这是Linux系统提供的一个“虚拟文件系统”,其中的文件都存放在内存中,而不是存放在磁盘中。它们指向在系统中正在运行的各个进程,以便用户可以随时访问程序的运行信息。给用户提供方便的接口。 /root 超级用户的主目录 /sbin 专门用来存储系统管理员使用的可执行文件,如mount、linuxconf等等。 /tmp 程序执行时会产生一些临时信息,系统把这些临时信息存放在一个暂时文件中,这个临时文件就放在/tmp目录下。 /usr 这是一个非常重要的目录,它包括许多子目录。有些子目录用来存放系统的配置文件和重要的大型软件包程序。前面讨论到的各目录对系统的操作来说是最基本的,而在/usr中许多内容是可以任选的。如果没有/usr目录,系统中将只有cp、1s等程序,这样的系统会非常难用 /var 该目录用来容纳大小经常发生变化或打算进一步扩充的目录或文件。例如,文件/var/adm中包含着系统管理员感兴趣的内容,特别是系统日志,它记录了系统的所有错误或问题。
43
文件类型 普通文件 ASCII文本文件,二进制数据文件,二进制可执行文件等 目录 包括一组其它文件的二进制文件 特殊文件
/dev目录下的设备文件等 链接文件 硬链接和符号链接,指向另外的文件,类型windows下的快捷方式 sockets 用于进程间通信时使用的特殊文件,以.sock结尾
44
Unix文件系统的权限 #ls –al test drwxr-xr-x 3 root root 1024 Sep 13 11:58 test
通常由一列10个字符来表示,每个字符表示一个模式设置 第1位:表示文件类型。 d表示目录,-表示普通文件,l表示链接文件等等,s表示socket文件,c表示字符设备,b表示块设备 每个文件和目录有三组权限,一组是文件的拥有者、一组是文件所属组的成员、一组是其他所有用户。 第2-10位:表示文件权限 "r"表示可读,"w"表示可写,"x"表示可执行。一共9位(每组3位),合起来称为模式位(mode bits)
45
文件模式位
46
UNIX文件权限模式数学字表示 文件所有者 文件所在组 其它人权限
47
r w x r - x r - x r w x r - x r - x r w s r - s r - t 文件、目录隐含模式 1 1 1
sticky sgid suid 1 1 1 r w x r - x r - x r w s r - s r - t
48
setuid和setgid 什么是setuid和setgid程序? 为什么要有SUID和SGID程序?
UNIX中的SUID(Set User ID)/SGID(Set Group ID)设置了用户id和分组id属性,允许用户以特殊权利来运行程序, 这种程序执行时具有文件所有者的权限和文件所在组的权限。 如passwd程序,它就设置了SUID位 -r-s--x--x 1 root root Apr /usr/bin/passwd ^SUID程序 passwd程序执行时就具有root(文件所有者)的权限 为什么要有SUID和SGID程序? SUID程序是为了使普通用户完成一些普通用户权限不能完成的事而设置的.比如每个用户都允许修改自己的密码, 但是修改密码时又需要root权限,所以修改密码的程序需要以管理员权限来运行.
49
UNIX文件和目录权限位的含义 文件 目录 Read 可以读取文件 可以对目录中的文件列表 Write 可以修改文件内容
可以创建或删除文件阿 Execute 可以执行文件 可以访问目录中的文件 Set-UID 使用文件属主的权限执行文件 N/A Set-GID 使用文件所属组的权限执行文件 新建文件权限是继承上级目录权限 "Sticky" 只有文件属主才能删除文件
50
查看UNIX文件权限 ls -l 命令可以来显示文件名与特性。 下面信息的第一栏可以表明文件类型和该文件赋予不同组用户的权限
/etc]# ls -al |more total 937 drwxr-xr-x 32 root root Aug 31 11:07 . drwxr-xr-x 16 root root May 27 08:05 .. -rw root root May 25 08:22 .pwd.lock -rw-r--r root root May 25 08:55 HOSTNAME -rw-r--r root root May 25 12:56 MACHINE.SID -rw-r--r root root Mar Muttrc drwxr-xr-x 14 root root May 27 07:46 X11 -rw-r--r root root Jun 2 08:24 adjtime -rw-r--r root root Apr 19 16:38 aliases -rw-r--r root root May 25 08:36 aliases.db --More--
51
UNIX 文件驱权限修改命令 1. chmod — 改变文件权限设置。 2. chgrp — 改变文件的分组。
3. chown — 改变文件的拥有权。 4. Chattr — 设置文件属性 使用chmod命令修改文件权限: chmod 666 myfile chmod 1777 /tmp 使用umask命令设置文件默认权限 umask 022 umask 077 设置sticky位
52
-rw-r--r-- 1 root workgrp 14233 Apr 24 10:32 textfile.txt
umask 设置创建新文件时的默认权限 777 – 可执行文件默认权限 666 – 普通文件默认权限 umask 022 -rw-r--r-- 1 root workgrp Apr 24 10:32 textfile.txt
53
Unix/Linux安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 文件系统安全 账号安全
日志与审计 其它
54
账号安全基础 选择复杂口令的意义: 防止两层攻击 基于用户信息简单密码猜测 基于口令强制猜测程序的攻击 口令选择的弱点:
人类倾向于使用易于猜测到的口令, 这在使用字典猜测攻击面前变得非常脆弱
55
选择口令的原则 如何选择口令? 严禁使用空口令和与用户名相同的口令 不要选择可以在任何字典或语言中找到的口令 不要选择简单字母组成的口令
不要选择任何和个人信息有关的口令 不要选择短于6个字符或仅包含字母或数字 不要选择作为口令范例公布的口令 采取数字混合并且易于记忆
56
口令的管理 如何保管好自己的口令? 不要把口令写在纸上 不要把口令贴到任何计算机的硬件上面 不要把口令以文件的形式放在计算机里
不要把口令与人共享 5. 防止信任欺骗(电话, 等)
57
Passwd文件剖析 条目的格式: name:coded-passwd:UID:GID:userinfo:homedirectory:shell 2. 条目例子: jrandom:Npge08fdehjkl:523:100:J.Random:/home/jrandom:/bin/sh 3. 密文的组成 Salt + 口令的密文 Np ge08fdehjkl
58
账号管理 1. 伪用户帐号 通常不被登录,而是进程和文件所有权保留位置,如bin、daemon、mail和uucp等。 2. 单独命令帐号
如date、finger 、halt等帐号。 3. 相应策略 检查/etc/passwd文件,确保口令域中是 “*”,而非空白。 4. 公共帐号 原则上每个用户必须有自己的帐号,若一个系统必须提供guest帐号,则设置一个每天改变的口令。最好是设置受限shell,并且做chroot限制.
59
禁用或删除账号 1.禁用帐号 在/etc/passwd文件中用户名前加一个“#”,把“#”去掉即可取消限制。 2. 删除帐号
b) 检查用户的起始目录并为任何需要保存的东西制作备份。 c) 删除用户的起始目录及其内容。 d) 删除用户的邮件文件(/var/spool/mail)。 e) 把用户从邮件别名文件中删除(/etc/sendmail/aliases)。
60
保护root 除非必要,避免以超级用户登录。 严格限制root只能在某一个终端登陆,远程用户可以使用/bin/su -l来成为root。
不要随意把root shell留在终端上。 若某人确实需要以root来运行命令,则考虑安装sudo这样的工具,它能使普通用户以root来运行个人命令并维护日志。 不要把当前目录(“ . /”)和普通用户的bin目录放在root帐号的环境变量PATH中。 永远不以root运行其他用户的或不熟悉的程序
61
巩固账号安全shadow文件剖析 除了包含用户名和加密口令还包含以下域: 1. 上次口令修改日期。 2. 口令在两次修改间的最小天数。
3. 口令建立后必须修改的天数。 4. 口令更改前向用户发出警告的天数。 5. 口令终止后被禁用的天数。 6. 自从1970/1/1起帐号被禁用的天数。 7. 保留域。 示例: root:*:10612:0:99999:7:::
62
Unix/Linux安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 文件系统安全 账号安全
日志与审计 其它
63
为什么要启用审计 1. 提供一种追踪用户活动的方法 2. 系统管理员可以知道系统的日常活动 3. 及时了解和处理安全事件
4. 它是一种在安全事件发生后,可以提供法律 证据的机制
64
如何启用审计? 1. 在UNIX中, 主要的审计工具是 syslogd 2. 可以通过配置这个后台进程程序,可以提供各
种水平的系统审计和指定输出目录
65
由syslog记录的日志 由syslog记录的日志 由系统进程syslogd记录的日志一般有: /var/log/messages
/var/log/secure /var/log/maillog /var/log/cron /var/log/boot.log /var/log/spooler 这些日志记录什么内容,以及记录的标准都在/etc/syslog.conf里面定义和配置,具体内容请参看man syslog.conf,man syslogd
66
Unix的log系统 /etc/syslog.conf syslog.conf的格式如下
*.err;kern.notice;auth.notice /dev/console *.err;kern.debug;daemon.notice;mail.crit /var/adm/messages *.alert;kern.err;daemon.err operator *.alert root *.emerg * mail.debug ifdef(`LOGHOST', ifdef(`LOGHOST', , user.err /dev/console user.err /var/adm/messages user.alert `root, operator' user.emerg * ) syslog.conf的格式如下 设备.行为级别 [;设备.行为级别] 记录行为 注意各栏之间用[Tab]来分隔,用空格是无效的
67
Syslog文件设备和行为级别
68
由login记录的日志文件 login主要记录用户登陆情况以及退出登陆的时间,使用时间,使用的虚拟终端等信息。一般存放在:
/var/run/utmp /var/log/wtmp /var/log/lastlog /var/spool/mail/* .hushlogin 用户可以用last、who、lastlog等命令来读取这些文件
69
日志文件 有关当前登录用户的信息记录在文件utmp中; 登录进入和退出记录在文件wtmp中;数据交换、关机和重启也记录在wtmp文件中。
最后一次登录在文件lastlog中。 所有的记录都包含时间戳。
70
由程序自己记录的日志文件 这个是由程序自己控制记录下的某些日志文件,比如:httpd 等。
比如linux下缺省安装的apache日志文件就存放在/var/log/httpd目录下面。 前面提到的acct日志记录也归纳在这里 core dump记录 用户程序发生程序错误,比如内存指针越界、特权进程对文件的不正确处理等都会导致程序崩溃,这个时候,系统就会根据配置文件决定是否产生一个core dump文件,通过这些文件我们可以找到程序发生错误的地点,并且可以知道程序崩溃时候CPU各个寄存器的值,通过这些信息我们可以知道程序是在哪个函数发生错误,引起错误发生的原因等信息。
71
知识域:操作系统安全 知识子域:Windows安全实践 了解Windows系统架构和关键系统组件; 理解系统服务和系统进程;
72
WINDOWS安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 安全子系统 身份认证与验证授权
日志与审计 安全策略 其它
73
Windows系统架构
74
关键系统组件
75
微 内 核 硬件抽象层(HAL) 硬件 用户模式(2GB | 4GB) 登录过程 (Winlogon) 其他客户 (Posix,RAS)
DOS 客户 Win16 客户 Win32 客户 WOW 安全子系统 (LSA) Win32 子系统 其他子系统 (Posix,RAS) VDM 内核模式(0GB | 2GB) I/O 管理器 对象 管理器 安全引用 监视器 本地过程 调用程序 进程 管理器 虚拟内存 管理器 图形设备 管理器 即插即用 管理器 电源 管理器 配置 管理器 缓存 管理器 微 内 核 硬件抽象层(HAL) 硬件
76
组件功能 I/O管理器 对象管理器 安全引用监视器 本地过程调用
管理操作系统与外界的通信,它负责处理设备驱动程序,这是一种软件模块,帮助操作系统访问网卡、磁盘驱动器和缓存等物理设备。 对象管理器 管理对象:包括文件、文件夹、端口、进程和线程。对象管理器负责对象的命名、安全性维护、分配和处理等工作 安全引用监视器 验证访问权限。这一部分将进程的访问令牌与对象的ACL相比较,确定是否应该授予进程所请求的权限。对象会调用安全引用监视器(Security Reference Monitor) 本地过程调用 在应用程序与操作系统的底层之间通过消息传递服务传递消息
77
组件功能 进程管理器 虚拟内存管理器 图形设备管理器 即插即用管理器 电源管理器 配置管理器 缓存管理器
创建和删除进程,为线程和进程提供API。 虚拟内存管理器 在磁盘空间中建立模拟内存。定义和管理进程的地址空间,控制物理内存的分配。 图形设备管理器 管理窗口以及与图形有关的消息传输和绘图功能。 即插即用管理器 管理即插即用设备。Windows 2000的新特性 电源管理器 连接计算机的电源管理系统,Windows 2000的新特性。 配置管理器 管理注册表和注册表API函数。 缓存管理器 管理全局文件缓存。与VMM和文件系统驱动程序配合工作。
78
子系统介绍 子系统以一种已定义的方式将操作系统展现在用户应用程序之前,主要有三种子系统:
WIN32子系统:系统正常运行的基础,系统启动时加载,系统关闭时卸载 内核模式设备驱动程序-图形设备接口(GDI),在设备驱动程序文件WIN32K.SYS中实现 用户模式进程(CSRSS.EXE) 处理用户模式调用的子系统.DLL POSIX子系统 OS/2子系统
79
微内核 基本功能 内核进程的特性 内核和执行体(对象管理器、内存管理器等统称为执行体)的关系: 调度线程执行 在线程之间切换设备环境
捕获并处理中断和异常 对内核对象的管理 在处理器之间负责同步(在多处理器系统中) 内核进程的特性 内核的执行除了中断服务例程(ISR)外,不会被其他线程所抢先 内核的大部分代码和数据不会被调页到物理RAM之外 内核和执行体(对象管理器、内存管理器等统称为执行体)的关系: 两者都在文件C:\WINNT\SYSTEM32\NTOSKRNL.EXE中实现 执行体具有相对较高的级别 内核不能从用户模式调用,其功能是通过执行体来从用户模式下访问的
80
Windows重要的系统文件 名称 模块所实现的位置 模式 何时被启动/被加载 由谁启动 HAL.DLL 硬件抽象层 N/A 系统启动时
SYSTEM NTOSKRNL.EXE 内核和执行体 内核 KERNEL32.DLL WIN32子系统.DLL GDI32.DLL USER32.DLL ADVAPI32.DLL SMSS.EXE 会话管理器 用户 WIN32K.SYS WIN32的内核模式部分 CSRSS.EXE 用户模式进程 WINLOGON.EXE Windows登录进程 LSASS.EXE 本地安全性鉴别子系统 MSGINA.DLL 缺省GINA SERVICES.EXE 服务控制器 NTDLL.DLL 支持函数和到执行体的接口 N\A OS2SS.EXE OS/2子系统进程 根据需要 PSXDLL.DLL POSIX子系统.DLL PSXSS.DLL POSIX子系统进程
81
Windows子系统与文件对应关系 微 内 核 硬件抽象层(HAL) 硬件 登录过程 (Winlogon) 其他客户 (Posix,RAS)
DOS 客户 Win16 客户 Win32 客户 KERNEL32.DLL WOW ADVAPI32.DLL USER32.DLL 安全子系统 (LSA) Win32 子系统 其他子系统 (Posix,RAS) VDM WIN32K.SYS LSASS.EXE PSXSS.DLL GDI32.DLL PSXDLL.DLL I/O 管理器 对象 管理器 安全引用 监视器 本地过程 调用程序 进程 管理器 虚拟内存 管理器 图形设备 管理器 即插即用 管理器 电源 管理器 配置 管理器 缓存 管理器 微 内 核 对应文件 NTOSKRNL.EXE 硬件抽象层(HAL) 对应文件HAL.DLL 硬件
82
Windows运行模式 Intel x86处理器支持4种运行模式,或称计算环(ring) Ring 0:最高优先级 Ring 1:
用户模式(2GB | 4GB) 登录过程 (Winlogon) 其他客户 (Posix,RAS) DOS 客户 Win16 客户 Win32 客户 Intel x86处理器支持4种运行模式,或称计算环(ring) Ring 0:最高优先级 Ring 1: Ring 2: Ring 3:最低优先级 Windows仅使用两种运行模式 Ring 0:内核模式 所有内核模式进程共享一个地址空间 Ring 3:用户模式 每个用户模式进程拥有自己私有的虚拟内存空间 WOW 安全子系统 (LSA) Win32 子系统 其他子系统 (Posix,RAS) VDM 内核模式(0GB | 2GB) I/O 管理器 对象 管理器 安全引用 监视器 本地过程 调用程序 进程 管理器 虚拟内存 管理器 图形设备 管理器 即插即用 管理器 电源 管理器 配置 管理器 缓存 管理器 微 内 核 硬件抽象层(HAL) 硬件
83
WINDOWS安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 安全子系统 身份认证与验证授权
日志与审计 安全策略 其它
84
基本概念 Windows服务(windows service)
85
运行方式 独立EXE程序运行 以DLL形式,依附在svchost.exe程序运行
86
Windows服务的启动类型 服务包括三种启动类型:自动、手动、已禁用 自动 - 启动的时候自动加载服务 手动 - 启动的时候不自动加载服务,在需要的时候手动开启 已禁用 - 启动的时候不自动加载服务,在需要的时候选择手动或者自动方式开启服务,并重新启动电脑完成服务的配置 双击需要进行配置的服务,出现下图所示的属性对话框:
87
Windows基本系统进程 基本的系统进程 smss.exe Session Manager csrss.exe 子系统服务器进程
winlogon.exe 管理用户登录 services.exe 包含很多系统服务 lsass.exe 本地安全策略子系统。(如哪个用户允许登录系统,口令策略,权限管理等等) svchost.exe 包含很多系统服务 spoolsv.exe 将文件加载到内存中以便迟后打印。(系统服务) explorer.exe 资源管理器 internat.exe 输入法
88
WINDOWS安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 安全子系统 身份认证与验证授权
日志与审计 安全策略 其它
89
前提:在系统安装过程中,写入了启动的主要文件和代码!
启动过程的重要术语 前提:在系统安装过程中,写入了启动的主要文件和代码! 系统卷(System Volume) Master Boot Record (MBR) Boot sector NTLDR – NT Boot Loader NTDETECT.COM BOOT.INI SCSI driver – Ntbootdd.sys 启动卷(Boot volume): System files – %SystemRoot%: Ntoskrnl.exe, Hal.dll, etc.
90
启动过程 系统加电,读取主引导扇区(MBR) 引导扇区(NT相关的) 注: MBR和引导扇区都是在系统安装时写入的
X86系统的分区表有四个条目 第一个被标识为活动的分区为系统卷(system volume) MBR加载系统卷中的引导扇区 引导扇区(NT相关的) 读取系统卷根目录并加载NTLDR 注: MBR和引导扇区都是在系统安装时写入的 通过默认的磁盘定位来进行读取,不需要文件系统干预
91
x86 and x64 Boot Process NTLDR (黑屏) 注: 把系统从16位切换到32位,并开启内存分页(page)
如果启动卷(boot volume)是SCSI磁盘,则使用Ntbootdd.sys进行I/O操作 Ntbootdd.sys保存在系统卷上(system volume) 读取并分析Boot.ini文件 如果Boot.ini有多个条目,NTLDR显示选择菜单 如果用户选择启动64位Windows系统,NTLDR将CPU期换到64位模式 注: NTLDR启动后,如果在系统根目录下发现有Hiberfil.sys文件且该文件有效,那么NTLDR将读取Hiberfil.sys文件里的信息并让系统恢复到休眠以前的状态,这时并不处理Boot.ini文件。 在双启动的情况下,如果用户选择DOS,则NTLDR加载BOOTSECT.DOS,这是供DOS使用的引导扇区副本
92
启动过程(续) NTLDR (cont) 注 完成Boot.ini引导选择以后,用户可以按F8进入高级启动选项
NTLDR执行Ntdetect.com进行硬件和BIOS信息检测 启动后期会将检测结果保存到HKLM\Hardware\Description NTLDR加载注册表SYSTEM hive (HKLM\System), 引导驱动程序, Ntoskrnl.exe, Hal.dll,并将控制权转交给Ntoskrnl.exe的入口函数 注 在启动早期,Windows内核还没有完全初始化,这是仅仅加载最基本的驱动程序 NTLDR会加载启动卷(boot volume)文件系统驱动,以只读的方式访问系统启动需要的其他文件和子目录
93
启动过程(续) Ntoskrnl (屏幕显示Windows启动徽标) 通过两阶段来完成内核子系统的初始化
第一阶段完成对象定义(process, thread, driver, etc)和核心数据结构初始化 第二阶段完成对象初始化和子系统启动 这两个过程有随后成为”System Idle Process”的内核系统线程来完成 I/O Manager 按顺序加载”boot-start”驱动程序和”system-start”驱动程序 最后, Ntoskrnl创建会话管理器进程(Session Manager) (\Windows\System32\Smss.exe), 这是第一个用户态进程
94
驱动程序的加载顺序 每个驱动程序的信息都保存在注册表中 察看驱动程序启动类型:
HKLM\System\CurrentControlSet\Services 类型: 1 for driver, 2 for file system driver, others are Win32 services 启动方式: 0 = boot, 1 = system, 2 = auto, 3 = manual, 4 = disabled 察看驱动程序启动类型: Run LoadOrd from Sysinternals Run Msinfo32 and goto Software Environment\System Drivers Run Driverquery (/v for verbose)
95
启动过程(续) Smss.exe: 运行BootExecute中指定的程序,例如autochk,chkdsk等
处理“Delayed move/rename”命令 初始化paging files和其余的注册表项 加载并初始化内核模式中的Win32子系统 (Win32k.sys) 启动Csrss.exe (Win32子系统在用户模式的部分) 启动Winlogon.exe
96
启动过程(续) Windows启动完成! Winlogon.exe: 启动LSASS (Local Security Authority)
加载GINA (Graphical Identification and Authentication)并等待用户登录 默认GINA是Msgina.dll,可以自行开发GINA来实现基于生物信息的用户登录 启动Services.exe(后台服务管理器) Services.exe启动所有标识为自动启动的Win32服务程序 Windows启动完成!
97
启动过程总结 smss.exe 对象管理器,第一个创建的进程
引入参数 HKLM\System\CurrentControlSet\Control\SessionManager 装入所需的子系统(csrss) ,然后winlogon csrss.exe Win32 子系统 winlogon.exe 登录进程:装入services.exe 和 lsass.exe,显示登录对话框(“键入CTRL+ALT+DEL ,登录) 显示登录对话框(“键入CTRL+ALT+DEL ,登录),当有人登入,运行 HKLM\Software\Microsoft\WindowsNT\WinLogon\Userinit中的进程 (通常只是userinit.exe) services.exe 服务控制器 lsass.exe 本地安全验证服务器(打开SAM) userinit.exe 登陆之后启动。启动外壳(通常是Explorer.exe HKLM\Software\Microsoft\ Windows NT\CurrentVersion\WinLogon\Shell装入配置文件,恢复驱动器标识符映象,然后退出 explorer.exe 和它的子进程是所有交互式应用的创建者
98
WINDOWS安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 安全子系统 身份认证与验证授权
日志与审计 安全策略 其它
99
用户认证:User Authentication
Windows系统安全架构 Windows安全包括6个主要的安全元素: 审计:Audit, 管理:Administration 加密:Encryption 权限控制:Access Control 用户认证:User Authentication 安全策略:Corporate Security Policy。 系统内置支持用户认证、访问控制、管理、审核。 审计 Audit 管理 Administration 加密 Encryption 权限控制 Access Control 用户认证:User Authentication 安全策略:Corporate Security Policy
100
Windows系统的对象 为了实现自身的安全特性,Windows把所有的资源作为系统的特殊的对象。
Microsoft的安全就是基于以下的法则: 用对象表现所有的资源 只有Windows才能直接访问这些对象 对象能够包含所有的数据和方法 对象的访问必须通过的安全子系统的第一次验证 存在几种单独的对象,每一个对象的类型决定了这些对象能做些什么 Windows 中首要的对象类型有: 文件 文件夹 打印机 I/O设备 窗口 线程 进程 内存 这些安全构架的目标就是实现系统的牢固性。从设计来考虑,就是所有的访问都必须通过同一种方法认证,减少安全机制被绕过的机会。
101
安全子系统组件
102
Windows安全子系统结构 Kerberos 本地安全授权(LSA) MSV1_0 Netlogon SRM SAM 登录
Windows 中默认的身份验证协议。它用于Windows计算机之间以及支持Kerberos身份验证的客户之间的所有身份验证。 组策略 Active Directory 服务 用户 安全子系统的中心组件,它促使访问令牌、管理本地计算机上的安全策略并向用户登录提供身份验证 Kerberos 本地安全策略 本地安全授权(LSA) 提供Windows目录服务和复制。它支持轻量级目录访问协议(LDAP)和数据的管理部分 Windows 2000 客户和服务器 用于Windows身份验证的身份验证包。它用于为不支持Kerberos身份验证的Windows客户提供兼容支持 审核 日志 Windows NT 客户和服务器 MSV1_0 SRM 内核 Netlogon 一个内核模式组件,它可以避免任何用户或进程直接访问对象而且还可以验证所有对象访问,它还生成相应的审核消息 是本地用户和工作组的一个数据库,用于对本地用户的登录身份进行验证以及对所有登录的用户权限进行设置 SAM
103
Windows核心安全组件 标 识 鉴 别 授 权 访问控制 审 计 安 全 策 略 LSA SRM LSA 账号 指纹 视网膜 IC卡
证书 根据获得的标识信息验证客户的身份 设置不同对象的访问权限(ACL) 根据用户标识和对象的ACL进行访问控制 对整个过程(标识鉴别、对象授权、访问控制)进行审核 标 识 鉴 别 授 权 访问控制 审 计 安 全 策 略 LSA SRM LSA 1、administrator 2、liweiming 3、sunyongjun SAM 数据库
104
安全子系统的工作机理 添加、删 SAM 或者 AD 除账号和组 1、chenaifeng 2、liweiming 审计子系
3、sunyongjun SAM 或者 AD 审计子系 统(LSA) 账户管理 子系统 必要时对验 证、授权过 程作日志审核 采用Kerberos或 者NTLM协议 进行认证 登录成功 获得访 问令牌 检查访问令 牌和被访问 对象的ACL 身份鉴别子 系统(LSA) 安全引用监 视器(SRM) 令牌 SID zhangsan ***** 登录方式:本地、网络 除账号标识外还可采用令牌、指纹、视网膜、IC卡等方式 根据用户的权限 和对象的ACL 进行访问控制 设置对象 的ACL 对象 授权管理子 系统(LSA) SID 读写 执行 更改
105
Windows子系统包含的组件 Windows NT/2K 安全子系统包含五个关键的组件:
安全标识符(Security Identifiers): 就是我们经常说的SID,每次当我们创建一个用户或一个组的时候,系统会分配给改用户或组一个唯一SID,当你重新安装Windows NT后,也会得到一个唯一的SID。 SID永远都是唯一的,由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。例: S 访问令牌(Access tokens): 用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源的票证,当用户试图访问系统资源时,将访问令牌提供给Windows ,然后Windows 检查用户试图访问对象上的访问控制列表。 如果用户被允许访问该对象,Windows 将会分配给用户适当的访问权限。 访问令牌是用户在通过验证的时候由登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。 安全描述符(Security descriptors): Windows NT中的任何对象的属性都有安全描述符这部分。它保存对象的安全配置。 访问控制列表(Access control lists): 访问控制列表有两种:任意访问控制列表(Discretionary ACL)、系统访问控制列表(System ACL)。 任意访问控制列表包含了用户和组的列表,以及相应的权限,允许或拒绝。每一个用户或组在任意访问控制列表中都有特殊的权限。而系统访问控制列表是为审核服务的,包含了对象被访问的时间。访问控制项(Access control entries): 访问控制项(Access Control Entries): 包含了用户或组的SID以及对象的权限。访问控制项有两种:允许访问和拒绝访问。拒绝访问的级别高于允许访问。 当你使用管理工具列出对象的访问权限时,列表的排序是以文字为顺序的,它并不象防火墙的规则那样由上往下的,不过好在并不会出现冲突,拒绝访问总是优先于允许访问的。
106
Windows登录过程 加载GINA,监视认证顺序 Winlogon 提供登陆接口 GINA 提供真正的用户校验 LSA 加载认证包 Authentication Packages Security Support Provider SSPI Security Account Management Netlogon 支持额外的验证机制 Winlogon是系统启动自动启动的一个程序,是整个登陆过程的司令官,监视整个登陆的过程,同时加载GINA。 GINA是微软为系统登陆提供的接口,但微软知道这种登陆的方式无法满足所有用户的要求,所以它开发成独立的模块。比如说要采用指纹登陆的方式,但微软的界面还是可以满足要求的,那厂商可以开发指纹认证的接口就可以了。默认是Msgina.dll。 GINA调用LSA,LSA的作用就是加载认证包(哪些认证方式),管理域间的信任关系。 认证包调用sam。 Netlogon是域登陆的时候所使用到的,建立安全通道,前面的用户名密码在通道里是加密传输的。 安全子系统包括以下部分: Winlogon Graphical Identification and Authentication DLL (GINA) Local Security Authority(LSA) Security Support Provider Interface(SSPI) Authentication Packages Security support providers Netlogon Service Security Account Manager(SAM) 管理用户和用户证书的数据库 为认证建立安全通道
107
Winlogon,Gina和LSA Winlogon and Gina:
Winlogon调用GINA DLL,并监视安全认证序列。而GINA DLL提供一个交互式的界面为用户登陆提供认证请求。GINA DLL被设计成一个独立的模块,当然我们也可以用一个更加强有力的认证方式(指纹、视网膜)替换内置的GINA DLL。 Winlogon在注册表中查找\HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon ,如果存在GinaDLL键,Winlogon将使用这个DLL,如果不存在该键,Winlogon将使用默认值MSGINA.DLL 本地安全认证(Local Security Authority):是一个被保护的子系统,它负责以下任务: 调用所有的认证包,检查在注册表\HKLM\SYSTEM\CurrentControlSet\Control\LSA下AuthenticationPAckages下的值,并调用该DLL进行认证(MSV_1.DLL)。在4.0版里,Windows NT会寻找\HKLM\SYSTEM\CurrentControlSet\Control\LSA 下所有存在的SecurityPackages值并调用 重新找回本地组的SIDs和用户的权限 创建用户的访问令牌 管理本地安装的服务所使用的服务账号 储存和映射用户权限 管理审核的策略和设置 管理信任关系。
108
SSPI和SSP 安全支持提供者的接口(Security Support Provide Interface):
微软的Security Support Provide Interface很简单地遵循RFC 2743和RFC 2744的定义,提供一些安全服务的API,为应用程序和服务提供请求安全的认证连接的方法。 认证包(Authentication Package): 认证包可以为真实用户提供认证。通过GINA DLL的可信认证后,认证包返回用户的SIDs给LSA,然后将其放在用户的访问令牌中。 安全支持提供者(Security Support Provider): 安全支持提供者是以驱动的形式安装的,能够实现一些附加的安全机制,默认情况下,Windows NT安装了以下三种: Msnsspc.dll:微软网络挑战/反应认证模块 Msapsspc.dll:分布式密码认证挑战/反应模块,该模块也可以在微软网络中使用 Schannel.dll:该认证模块使用某些证书颁发机构提供的证书来进行验证,常见的证书机构比如Verisign。这种认证方式经常在使用SSL(Secure Sockets Layer)和PCT(Private Communication Technology)协议通信的时候用到。
109
Netlogon和SAM 网络登陆(Netlogon): 安全账号管理者(Security Account Manager):
网络登陆服务必须在通过认证后建立一个安全的通道。要实现这个目标,必须通过安全通道与域中的域控制器建立连接,然后,再通过安全的通道传递用户的口令,在域的域控制器上响应请求后,重新取回用户的SIDs和用户权限。 安全账号管理者(Security Account Manager): 安全账号管理者,也就是我们经常所说的SAM,它是用来保存用户账号和口令的数据库。保存了注册表中\HKLM\Security\Sam中的一部分内容。不同的域有不同的Sam,在域复制的过程中,Sam包将会被拷贝。
110
安全账号管理器(SAM) 安全账号管理器的具体表现就是%SystemRoot%\system32\config\sam文件。
sam文件是windows的用户帐户数据库,所有用户的登录名及口令等相关信息都会保存在这个文件中。 sam文件可以认为类似于unix系统中的passwd文件,不过没有这么直观明了。passwd使用的是存文本的格式保存信息,这是一个linux passwd文件内容的例子 root :8L7v6 :0 :0 : root : /root : /bin/bash msql : !! : 502 : 504 : /home/msql : /bin/bash unix中的passwd文件中每一行都代表一个用户资料,每一个账号都有七部分资料,不同资料中使用“ : "分割格式如下 账号名称 : 密码 : uid : gid : 个人资料 : 用户目录 :shell 除了密码是加密的以外(这里的密码部分已经shadow了)其他项目非常清楚明了。 而Windows中就不是这样,虽然也是用文件保存账号信息,不过如果我们用编辑器打开这些NT的sam文件,除了乱码什么也看不到。因为NT系统中将这些资料全部进行了加密处理,一般的编辑器是无法直接读取这些信息的。注册表中的 HKEY_LOCAL_MACHINE\SAM\SAM HKEY_LOCAL_MACHINE\SECURITY\SAM 保存的就是SAM文件的内容,在正常设置下仅对system是可读写的。
111
Windows2000本地登录过程 当从Windows 2000 Professional or Server登录时,Windows 2000 用两种过程验证本地登录. Windows 2000尝试使用 Kerberos 作为基本验证方式. 如果找不到 Key Distribution Center (KDC) 服务, Windows 会使用Windows NT LanManager(NTLM) 安全机制来验证在本地SAM 中的用户 。 本地登录验证过程如下: 输入用户名及密码然后按回车键. Graphical Identification and Authentication (GINA) 会收集这些信息. GINA 传送这些安全信息给Local Security Authority (LSA) 来进行验证. The LSA 传送这些信息给Security Support Provider Interface (SSPI). SSPI 是一个与Kerberos 和 NTLM通讯的接口 服务. SSPI 传送用户名及密码给Kerberos SSP. Kerberos SSP 检查 目的机器是本机还是域名. 如果是本机, Kerberos 返回错误消息给 SSPI. 如果找不到KDC, 机器生成一个用户不可见的内部错误. 这个内部错误促发 SSPI 通知GINA. GINA 再次传送这些安全信息给LSA. LSA 再次传送这些安全信息给SSPI. 这次, SSPI 传送用户名及密码给NTLM driver MSV1-0 SSP. NTLM driver 用Netlogon 服务和本地SAM来验证用户. 如果NTLM和Kerberos都不能验证你的帐号, 你会收到下列错误消息提示您输入正确的用户名和密码.
112
WINDOWS安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 安全子系统 身份认证与验证授权
日志与审计 安全策略 其它
113
身份验证 知道你是谁,才能授予访问权限
114
用户权利、权限和共享权限 网络安全性依赖于给用户或组授予的能力:
权力:在系统上完成特定动作的授权,一般由系统指定给内置组,但也可以由管理员将其扩大到组和用户上。 权限:可以授予用户或组的文件系统能力。 共享:用户可以通过网络使用的文件夹。
115
Windows 系统的用户权利 权利适用于对整个系统范围内的对象和任务的操作,通常是用来授权用户执行某些系统任务。当用户登录到一个具有某种权利的帐号时,该用户就可以执行与该权利相关的任务。 下面列出了用户的特定权利: Access this computer from network 可使用户通过网络访问该计算机。 Add workstation to a domain 允许用户将工作站添加到域中。 Backup files and directories 授权用户对计算机的文件和目录进行备份。 Change the system time 用户可以设置计算机的系统时钟。 Load and unload device drive 允许用户在网络上安装和删除设备的驱动程序。 Restore files and directories 允许用户恢复以前备份的文件和目录。 Shutdown the system 允许用户关闭系统。
116
Windows系统的用户权限 窗 口 内 存 文件夹 账号 文 件 对象 打印机 I/O设备 进程 线程 权限适用于对特定对象如目录和文件(只适用于NTFS卷)的操作, 指定允许哪些用户可以使用这些对象,以及如何使用(如把某个目录的访问权限授予指定的用户)。 权限分为目录权限和文件权限,每一个权级别都确定了一个执行特定的任务组合的能力,这些任务是: Read(R)、Execute(X)、Write(W)、Delete(D)、Set Permission(P)和 Take Ownership(O)。后面显示了这些任务是如何与各种权限级 别相关联的。
117
目录权限 权限级别 RXWDPO 允许的用户动作 No Access 用户不能访问该目录 List RX
如果对目录有Execute (X) 权限,表示可以穿越目录,进入其子目 权限级别 RXWDPO 允许的用户动作 No Access 用户不能访问该目录 List RX 可以查看目录中的子目录和文件名,也可以进入其子目录 Read 具有List权限,用户可以读取目录中的文件和 运行目录中的应用程序 Add XW 用户可以添加文件和子录 Add and Read RXW 具有Read和Add的权限 Change RXWD 有Add和Read的权限, 另外还可以更改文件的内容,删除文件和子目录 Full control 有Change的权限,另外用户可以更改权限和获取目录的所有权
118
文件权限 权限级别 RXWDPO 允许的用户动作 No Access 用户不能访问该文件 Read RX
用户不能访问该文件 Read RX 用户可以读取该文件,如果是应用程序可以运行 Change RXWD 有Read的权限,还可用修和删除文件 Full control 包含Change的权限,还可以更改权限和获取文件的有权
119
共享权限 共享权限级别 允许的用户动作 No Access(不能访问)
共享只适用于文件夹(目录),如果文件夹不是共享的,那么在网络上就不会有用户看到它,也就更不能访问。 网络上的绝大多数服务器 主要用于存放可被网络用户访问的文件和目录,要使网络用户可以访问 在Server服务器上的文件和目录,必须首先对它建立共享。 共享权限建立了通过网络对共享目录访问的最高级别。 共享权限 下表列出从最大限制到最小限制的共享权限 共享权限级别 允许的用户动作 No Access(不能访问) 禁止对目录和其中的文件及子目录进行访问但允许查看文件名和子目录名,改变共享 Read(读) 目录的子目录,还允许查看文件的数据 和运行应用程序 Change(更改) 具有“读”权限中允许的操作,另外允许往目录中添加文件和子目录,更改文数据,删除文件和子目录 Full control(完全控制) 具有“更改”权限中允许的操作,另外还允许更改权限(只适用于NTFS卷)和获所有权(只适用于NTFS卷) 共享点一定要小心地分配。因为权限仅仅是分配给共享点的, 任何共享点下的文件:或目录都足以和共享点本身相同的权限被访问的。
120
WINDOWS安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 安全子系统 身份认证与验证授权
日志与审计 安全策略 其它
121
日志系统类型 Windows有三种类型的事件日志: 系统日志 跟踪各种各样的系统事件,比如跟踪系统启动过程中的事件或者硬件和控制器的故障。
应用程序日志 跟踪应用程序关联的事件,比如应用程序产生的象装载DLL(动态链接库)失败的信息将出现在日志中。 安全日志 跟踪事件如登录上网、下网、改变访问权限以及系统启动和关闭。注意:安全日志的默认状态是关闭的。
122
Windows日志存放的位置 日志在系统的位置是: LOG文件在注册表的位置是:
%SYSTEMROOT%\system32\config\SysEvent.Evt %SYSTEMROOT%\system32\config\SecEvent.Evt %SYSTEMROOT%\system32\config\AppEvent.Evt LOG文件在注册表的位置是: HKEY_LOCAL_MACHINE\System\Current Control Set\Services\Eventlog
123
Windows应用系统日志 Internet信息服务FTP日志默认位置: %systemroot%system32logfilesmsftpsvc1,默认每天一个日志 Internet信息服务WWW日志默认位置:%systemroot%system32logfilesw3svc1,默认每天一个日志 FTP日志和WWW日志文件名通常为ex(年份)(月份)(日期),例如ex001023,就是2000年10月23日产生的日志,用记事本就可直接打开 Scheduler服务日志默认位置: %systemroot%schedlgu.txt
124
FTP日志 FTP日志分析,如下例: #Software: Microsoft Internet Information Services 5.0 (微软IIS5.0) #Version: 1.0 (版本1.0) #Date: :11:55 (服务启动时间日期) 03:11: [1]USER administator 331 (IP地址为 用户名为administator试图登录) 03:11: [1]PASS – 530 (登录失败) 03:12: [1]USER nt 331 (IP地址为 用户名为nt的用户试图登录) 03:12: [1]PASS – 530 (登录失败) 03:12: [1]USER administrator 331 (IP地址为 用户名为administrator试图登录) 03:12: [1]PASS – 230 (登录成功) 03:12: [1]MKD nt 550 (新建目录失败) 03:12: [1]QUIT – 550 (退出FTP程序) 从日志里就能看出IP地址为 的用户一直试图登录系统,换了3次用户名和密码才成功,管理员立即就可以得知管理员的入侵时间IP地址以及探测的用户名。
125
HTTP日志 HTTP日志分析,如下例: #Software: Microsoft Internet Information Services 5.0 #Version: 1.0 #Date: :09:31 #Fields: date time cip csusername sip sport csmethod csuristem csuriquery scstatus cs(UserAgent) :09: GET /iisstart.asp 200 Mozilla/4.0+(compatible;+MSIE+5.0;+Windows+98;+DigExt) :09: GET /pagerror.gif 200 Mozilla/4.0+(compatible;+MSIE+5.0;+Windows+98;+DigExt) 通过分析第六行,可以看出2000年10月23日,IP地址为 的用户通过访问IP地址为 机器的80端口,查看了一个页面iisstart.asp,这位用户的浏览器为compatible;+MSIE+5.0;+Windows+98+DigExt,有经验的管理员就可通过安全日志、FTP日志和WWW日志来确定入侵者的IP地址以及入侵时间
126
WINDOWS安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 安全子系统 身份认证与验证授权
日志与审计 安全策略 其它
127
账户策略 帐户策略 所有安全策略都是基于计算机的策略。帐户策略定义在计算机上,然而却可影响用户帐户与计算机或域交互作用的方式。帐户策略包含三个子集: 密码策略。用于域或本地用户帐户。确定密码设置(如强制执行和有效期限)。 帐户锁定策略。用于域或本地用户帐户。确定某个帐户被锁定在系统之外的情况和时间长短。 Kerberos 策略。用于域用户帐户。确定与 Kerberos 相关的设置(如票的有限期限和强制执行)。本地计算机策略中没有 Kerberos 策略。 对于域帐户,只有一种帐户策略。账户策略必须在“默认域策略”中定义,且由组成该域的域控制器实施。域控制器始终从“默认域策略组策略对象”中获得账户策略,即使存在应用到该域控制器所在的部门的不同账户策略。默认情况下,加入到域(如成员计算机)中的工作站和服务器也同样接收到各自本地账户的相同账户策略。然而,本地帐户策略可能不同于域帐户策略,例如,当为各个本地帐户定义帐户策略时即是如此。 与帐户策略具有类似行为的“安全选项”有两个策略。它们是: 网络访问:允许匿名 SID/NAME 转换 网络安全登录时间超时时强制注销
128
本地策略
129
公钥策略 公 钥 策 略 概 述 使用组策略中的公钥策略设置可以:
使计算机自动向企业证书颁发机构提交证书申请并安装颁发的证书。这有助于确保计算机能获得在组织内执行公钥加密操作(例如,为 Internet 协议安全 (IPSec) 或客户端验证)所需的证书 创建和分发证书信任列表 (CTL)。证书信任列表是根证书颁发机构 (CA)的证书的签名列表,管理员认为该列表对指定目的来说值得信任,例如客户身份验证或安全电子邮件。例如,如果认为证书颁发机构的证书对 IPSec 而言可以信任,但对客户身份验证不足以信任,则通过证书信任列表可以实现这种信任关系。 建立常见的受信任的根证书颁发机构。使用该策略设置可以使计算机和用户服从共同的根证书颁发机构(除他们各自信任的根证书颁发机构外)。域中的证书颁发机构不必使用该策略设置,因为它们已经获得了该域中所有用户和计算机的信任。该策略主要用于在不属于本组织的根证书颁发机构中建立信任。 添加加密数据恢复代理,并更改加密数据恢复策略设置。
130
IP安全策略
131
WINDOWS安全实践 系统概述 系统安全原理 系统架构和关键系统组件 系统服务和进程 系统启动过程 安全子系统 身份认证与验证授权
日志与审计 安全策略 其它
132
Windows加密文件系统——EFS Windows2000 强大的加密系统能够给磁盘、文件夹、文件加上一层安全保护。这样可以防止别人把你的硬盘挂到别的机器上以读出里面的数据。记住要给文件夹也使用EFS,而不仅仅是单个的文件。 有关EFS的具体信息可以查看 “加密文件系统”(EFS) 提供一种核心文件加密技术,该技术用于在 NTFS文件系统卷上存储已加密文件。一旦加密了文件或文件夹,你就可以象使用其他文件和文件夹一样使用它们。对加密该文件的用户,加密是透明的。这表明不必在使用前解密已加密的文件。你可以象平时那样打开和更改文件。但是,试图访问已加密文件或文件夹的入侵者将被禁止这些操作。如果入侵者试图打开、复制、移动或重新命名已加密文件或文件夹,将收到拒绝访问的消息。
133
加密文件系统构成 EFS组成 : EFS服务: EFS优点 : 由EFS服务 EFS驱动 EFS文件系统运行库(FSRTL)
Win32 API EFS服务: 作为一个标准系统服务运行,它是Windows 2000安全子系统的一部分。 它与CryptoAPI接口产生钥匙、DDF和DRF, EFS驱动就象是NTFS的一部分,它呼叫EFS服务请求钥匙,DDF和DRF作为需要被创建, 一个EFS驱动的组成是EFS FSRTL,它定义了EFS驱动程序能作为NTFS的代表而执行的功能。 EFS优点 : 访问一个加密的文件不需要用户任何的操作,先前的第三方的文件加密工具需要用户每次访问文件时键入口令,它们并没有与文件系统或操作系统进行无缝地集成,使用户感觉受挫而愿使用文件加密。 EFS密码组结合了对称加密(DESX)和非对称加密(RSA)的优点,优于对数据使用非对称加密(用这种方法仅FEK被加密),数据使用对称加密进行加密。 备份进程备份加密格式的文件,消除了备份操作需要访问数据的需要。 EFS集成进文件系统,因此一个恶意的用户不能绕过文件系统访问到硬盘,而且,所有运行在内核模式的EFS驱动程序不能由用户直接访问。 Windows 2000 的CryptoAPI体系允许用户在智能卡上存取他们的私钥,这比将钥匙放在硬盘或软盘上更为安全,这也使多个位置访问成为可能。
134
知识域:可信计算技术 知识子域:可信计算技术背景 知识子域:我国可信计算技术 了解可信计算技术的产生 了解可信计算技术的发展
理解我国可信计算技术,及其与TCG可信计算技术的区别 理解我国可信计算技术的应用
135
( Boot Integrity Token System )
可信计算技术的产生 可信计算技术的思想起源于安全启动的研究 安全启动的基本思想:将系统分解为一系列实体,在启动运行时,检查实体的完整性 早期较有代表性的研究 时间 安全启动系统 简介 1990 Tripwire系统 使用软件手段确保UNIX系统的完整性 1994 BITS ( Boot Integrity Token System ) 使用智能卡实现安全启动,用口令认证用户,主机 和智能卡之间通过共享秘密认证,主机计算出完整性 度量值和存储在智能卡的值比较实现安全启动; 1997 AEGIS系统 Arbaugh在该安全启动系统中基于这样的公理:BIOS的初始化是可信的,一个组件被另一个可信组件检测验证后也是可信的。 135
136
可信计算平台 在计算机主版上嵌入一个独立的TPM芯片,以增强系统的安全。
TPM(Trusted Platform Module) 可信平台模块 136
137
可信计算平台的基本思想 从行为的角度理解可信: 一个实体是可信的,如果它的行为总是以所期望的方式运行。 实现:
首先建立一个信任根。信任根的可信性由物理安全和管理安全确保。 再建立一条信任链。从信任根开始到硬件平台、到操作系统、再到应用,一级认证一级,一级信任一级。从而把这种信任扩展到整个计算机系统 137
138
可信计算平台模块 TPM 它由CPU、存储器、I/O、密码运算器、随机数产生器和嵌入式操作系统等部件组成。
TPM本身就是一个小的计算机系统,一般是一种片上系统SOC(System on Chip),而且它应当是物理可信和管理可信的。 TPM采用证书技术,用户与TPM通过证书认证来确认相互的身份。 TPM能实现加解和解密,数字签名和验证
139
TPM的基本结构 密钥产生 I/O 密码协处理器 HMAC引擎 随机数产生器 SHA-1引擎 电源检测 Opt-Ln 执行引擎 非易失存储器
140
信任链 信任根:TPM 从信任根开始到硬件平台、到操作系统、再到应用,一级认证一级,一级信任一级。
141
可信支撑软件(TSS) TSS是在TPM平台上的支撑软件 为其他软件提供方便和统一使用TPM的接口
142
可信平台体系结构 应用程序 本地应用 远程应用 服务提供者(TSP) 用户进程模式 RPC客户 RPC服务 TSS 核心服务层 (TCS)
设备驱动库(TDDL) TPM设备驱动 可信平台模块(TPM) 核心模式 系统进程模式 用户进程模式 142
143
可信计算平台的主要作用 可信计算平台能够保护数据存储区域,避免敌手直接从物理上访问到机密数据存储区。
能够保证系统运行的环境是没有被篡改的,所有的代码能够执行于一个未被篡改的运行环境。
144
可信机算组织的产生与发展 144
145
TCG的主要任务 组织简介 任务 一个非盈利的工业标准组织 宗旨是加强不同计算环境的安全性 定义、开发、推广一套开放的、系统的可信计算规范
提供一整套可信计算安全技术 规范硬件构建模块和通用的软件接口 设计多平台,多外设的可信计算环境
146
可信计算平台规范
147
我国可信计算技术 中国可信计算技术 发展之路 各方努力 发展思路 与TCG可信计算技术的区别 147
148
我国可信计算技术发展历程 起步:2003到2004年 2006年11月3日,可信计算密码专项组在国家密码管理局的支持下正式组建。
2007年7月,专项组召开《国产自主可信计算技术与产业状况汇报演示会》。 2007年7月,专项组召开了《可信计算密码技术与产品进展汇报会》。 2007年12月20日,专项组召开了《打造中国可信计算DNA·中国自主可信计算产品联合发布会》,对外发布了由中国首次自主研发和自主创新的可信计算系列产品。 2007年12月29日,国家密码管理局正式颁布《可信计算密码支撑平台功能与接口规范》。 2008年4月,联想、同方、长城、方正的可信计算机陆续上市。 2008年12月,可信计算密码专项组正式更名为中国可信计算工作组(TCMU)。 148
149
中国可信计算工作组TCMU成员 149
150
我国可信计算技术 政府:在各个重要科技和产业计划中都已将可信计算技术的研究与应用列入重点;
学术界:针对TPM/TCP、远程证明、可信计算测评、信任链构建技术、关键技术标准等方面都在积极开展研究工作; 产业界:积极研究各种基于TCM的安全解决方案; 国家密码管理局和全国信息安全标准化技术委员会:积极推进可信计算相关标准的研究与制定。 150
151
我国可信计算技术 目前已经编制四个主要标准 可信平台控制模块 TPCM 可信平台基础支撑软件 TPSS 可信平台主板规范 TPMB
基本定义、可信功能接口、结构 完全支持国家密码管理局“可信计算平台密码规范方案” 可信平台基础支撑软件 TPSS 从底层来讲,密码是无法兼容,所以如果没有相应的TSS标准,上层的可信应用就无法兼容 可信平台主板规范 TPMB 涉及到在PC平台上构建信任链的一些规定 与TPCM芯片接口物理特性 可信网络连接规范 TNC 网络结点的完整性度量和身份标识的规范 151
152
TPCM结构 I/O控制寄存器映射到内部地址空间 新增单元: 输入输出桥接单元 修改单元: 自主密码算法 通讯总线 采用自主密码算法引擎
153
TPSS 应用程序 可信基础支撑软件应用服务(TAS) 完整性保护 数据保护 可信认证 TAS资源管理 可信平台控制模块(TPCM)
可信基础支撑软件应用服务接口(TASI) 系统态/用户态 可信基础支撑软件应用服务(TAS) 可信基础支撑软件系统服务接口(TSSI) 完整性保护 数据保护 可信认证 TAS资源管理 可信平台控制模块(TPCM) 硬件 可信基础支撑软件系统服务(TSS) 核心态 可信度量监控模块 TPCM驱动模块 可信软件基(TSB) 完整性数据管理 密钥管理 证书管理 密码功能 TSS资源管理
154
TPMB EMM扩展RTM; 实现信任链建立 TPCM与主板绑定; RTM存储于TPCM;
155
我国可信计算技术的应用 九十年代,我国开发了PC机安全防护系统,实现了可信防护,其结构、功能与TCP类同。 安全软件
联想可信计算机应用软件 卫士通基于TCM和USBKey的操作系统安全防护系统 吉大正元可信应用支撑系统 同方TST安全平台 可信操作系统 (Trusted KYLIN ) TCM芯片 155
156
我国可信计算技术的应用 瑞达公司: 2000年,开始可信安全计算机的研发工作; 2004年,推出自主知识产权的国内第一款可信安全计算平台;
从2004年开始,其可信计算产品结合国家涉密部门、省级党政机关、国家安全部门、公安部门、电子政务系统和电信、电力、金融等国家等领域的业务需求开展应用研究 156
157
我国可信计算技术的应用 联想公司: 2003年:安全芯片的研发工作在国密办立项;
2005年4月完成了安全芯片的研制工作,推出其安全主机产品。 兆日公司: 2005年4月,推出符合TCG技术标准的TPM安全芯片。 应用集成的企事业单位纷纷提出可信应用框架,如天融信公司的可信网络框架、卫士通公司的终端可信控制系统、鼎普公司的可信存储系统等。 157
158
谢谢,请提问题!
Similar presentations