《最小特权的实现优秀PPT.ppt》由会员分享,可在线阅读,更多相关《最小特权的实现优秀PPT.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、3 最小特权的实现(1)传统UNIX/Linux特权管理 1)普通用户没有特权,超级同户拥有所有特权。2)当进程要进行某特权操作时,系统检查进程所代表的用户是否为超级用户、3)普通用户涉及特权操作时,通过setuid/setgid实现。用户希望访问/etc/passed来修改自己的密码,必须使他能超越对客体的受限访问。setuid/setgid可以使得代表普通用户的进程不继承用户的uid/gid,而是继承该进程对应的应用程序文件(可执行文件)的所有者的uid/gid、即普通用户暂时获得其他用户身份,并通过该身份访问客体。由于此项活动具有局限性,具系统还会进行安全检查,有助于维护系统安全性。(2
2、)Linux最小特权的实现 1系统安全管理员:用来维护系统中与安全性相关的信息,包括对系统用户账户的管理、系统中的主体客体安全级的管理以及设置和维护系统的安全数据库;2系统审计员:用来设置审计开关和审计阈值,启动和关闭审计机制以及管理审计日志;3系统操作员:用来完成系统中日常的操作和维护,包括开启和关闭系统、对文件的档案备份和恢复、安装或卸载文件系统以及向终端发送消息等等。4网络管理员:用来完成所有与网络相关的管理与操作。(1)Linux系统中对权能的定义 系统将系统管理的权限进行分割,共30种权能:例如,超越改变系统文件所有者和组所有的的特权;超越所有自主访问控制机制的约束的特权;超越所有强
3、制访问控制机制的约束的特权;修改文件属性的特权;写审计文档的特权;配置进程记帐的特权;打开或关闭缓冲区的特权;删除信号量的特权;文件系统上设置加密口令的特权;安装或卸下文件系统的特权;改变和设置进程安全的级特权;改变和设置文件安全级的特权;处理系统时钟和设置实时时钟的特权;设置加密密钥的特权,等等。(2)基于Linux系统中的权能构造最小特权机制 要在Linux系统中实现最小特权管理,可以参照多级安全模型对强制访问控制机制的实现方法,对系统中的每个可执行文件赋予相应的特权集,同时对于系统中的每个进程,根据其执行的程序和所代表的用户,也赋予相应的特权集。新进程继承的特权 新进程继承的特权既有进程
4、的特权,也有所运行文件的特权,称为“基于文件的特权机制”。这种机制的最大优点是特权的细化,其可继承性提供了一种执行进程中增加特权的能力。1文件的特权的实现 可执行文件具有两个特权集,当通过exec系统调用时,进行特权的传递。固定特权集:固有的特权,与调用进程或父进程无关,将全部传递给执行它的进程。可继承特权集:只有当调用进程具有这些特权时,才能激活这些特权。这两个集合是不能重合的,即固定特权集与可继承特权集不能共有一个特权。当然,可执行文件也可以没有任何特权。当文件属性被修改时例如,文件打开写或改变它的模式),它的特权会被删去,这将导致从TCB中删除此文件。因此,如果要再次运行此文件,必须重新
5、给它设置特权。2进程的特权 当fork一个子进程时,父子进程的特权是一样的。但是,当通过exec执行某个可执行文件时,进程的特权取决于调用进程的特权集和可执行文件的特权集。每个进程都具有三个特权集:最大特权集permitted privileges set):可能具有的最大特权。可继承特权集inheritable privileges set):决定进程执行exec后进程是否保留提升后特权的特权集。有效特权集effective privileges set):进程当前使用的特权集。新进程时的特权计算 调用进程调用进程继 承 特 权 集3,5,9最 大 特 权 集3,5,9有 效 特 权 集5继
6、 承 特 权 集3,9固 定 特 权 集2,6可执行文件继 承 特 权 集3,5,9最 大 特 权 集2,3,6,9有 效 特 权 集2,3.6,9exec()(3权能表的修改 为在Linux系统中实现最小特权机制,可以在Linux/include/Linux/capabilities中 加 入 以 下 几项能力:1CAP_MAC_READ 用来超越强制访问控制机制的读访问限制。2CAP_MAC_WRITE 用来超越强制访问控制机制的写访问限制。3CAP_AUDIT 用来管理审计系统的权限。(4进程的特权 在Linux系统的进程结构中,已经有三个向量表示 进 程 的 特 权 类 型:cap_
7、effective、cap_inheritable、cap_permitted。它 们 是kernel_cap_t类型无符号长整形的数据。进程的有效特权集cap_effective表明了进程当前使用的特权情况,进程的最大特权集cap_permitted表明了进程可拥有的最多特权,进程的可继承特权集cap _inheritable包含进程下一步exec新文件时所拥有的特权集。kernel _cap _t类型是一个无符号整数表示,共32位,每一个位表示系统细分的一命特权。(2)非形式化确认:安全操作系统中的安全审计,要求为下述可审计事件产生审计记录:可继承特权集inheritable privil
8、eges set):决定进程执行exec后进程是否保留提升后特权的特权集。(3)如果调用者是对象的所有者,则被授予读取控制和写入DACL的访问权力。Generic read它是基于安全目的,在系统中使用的该用户的帷一标识符;用户按下热键时,登录就开始,在获得用户名和口令后,由LSA本地安全认证服务器、msv1_0身份验证软件包、SAM数据库协同工作,进行标识和鉴别,msv1_0查看请求的登录与SAM数据库中允许的访问是否有匹配项。登录是通过登录进程WinLogon、LSA、身份认证包和SAM相互作用完成的。该技术的特点是集成服务、易于管理、不易受攻击。7实例研究:Windows 2000/XP
9、安全机制否则,根据系统调用入口判定的事件号a_event,检查该事件是否属于对象审计标准,是则检查当前客体的安全级是否在待审计的系统安全级范围中,若是则置位AUDITME标记,否则返回。为了确保安全操作系统的安全性,人们首先想到采用专用工具扫描操作系统的安全漏洞,以达到发现漏洞和采取补救措施。Synchronize2系统审计员:用来设置审计开关和审计阈值,启动和关闭审计机制以及管理审计日志;进程的有效特权集cap_effective表明了进程当前使用的特权情况,进程的最大特权集cap_permitted表明了进程可拥有的最多特权,进程的可继承特权集cap _inheritable包含进程下一步
10、exec新文件时所拥有的特权集。SAM在LSASS进程的描述表中运行。特别地,对于身份鉴别事件,审计记录应包含请求的来源如终端标识符);(5文件的特权 对于文件特权的实现,可以以特权数据库来表示,例如,可以创建核心特权文件filepriv,其入口项的格式如下所示:“dev:fid:valid:fixed privileges:inher privileges:path name 格式 其中,dev:表示包含该文件的设备;fid:表示该文件的ID号;valid:以十进制串的形式表示inode中标记该文件状态最近一次被修改的时间;fixed privilege:文件的固定特权;inher priv
11、ilege:文件的可继承特权;path name:文件的绝对路径名。4 安全审计的实现 安全操作系统中的安全审计,要求为下述可审计事件产生审计记录:1)审计功能的启动和关闭;2)使用身份鉴别机制;3)将客体引入用户地址空间例如:打开文件、程序初始化);4)删除客体;5)系统管理员、系统安全员、审计员和一般操作员所实施的操作;6)其他与系统安全有关的事件或专门定义的可审计事件。审计记录应包括 事件的日期和时间、用户、事件类型、事件是否成功,及其他与审计相关的信息。特别地,对于身份鉴别事件,审计记录应包含请求的来源如终端标识符);对于客体被引入用户地址空间的事件及删除客体事件,审计记录应包含客体名
12、及客体的安全级别。审计缓冲区 审计点审计点审计点审计系统调用内核审计进程审计日志文件用户态 核心态循环缓冲(4)审计点的处理 1)对系统调用及客体安全级范围的审计 a)在 每 个 系 统 调 用 的 入 口 处:若 进 程 有AEXEMPT标记,则不作审计,否则通过系统调用号索引“系统检查函数表”,得到真正的检查函数入口,再根据系统调用参数判定它应属于哪个审计事件,将事件号作为中间结果赋给进程task结构的 a_event备用,接着检查事件号是否属于进程审计标准a_procemask,是则对进程 task结构设AUDITME标记,不是则返回。NTFS文件系统驱动程序c)主体访问客体的权限检查处
13、:对于系统调用引发的客体访问,要根据客体安全级判定是否审计。由于此项活动具有局限性,具系统还会进行安全检查,有助于维护系统安全性。配置文件包括系统和用户审计标准、审计系统的运行参数、审计事件的定义等,这些文件也必须施加MAC控制。国防部于1983年推出了 上第一个计算机系统安全评测准则TCSEC(Trusted Computer System Evaluation Criteria),又称桔皮书,从而,带动了国际正计算机系统安全评测的研究,德国、英国、加拿大、西欧等纷纷制定了各自的计算机系统安全评价标准。当fork一个子进程时,父子进程的特权是一样的。B2级结构保护级,具有形式化安全模型,完善
14、的MAC,可信通路、系统结构化设计、最小特权管理、隐蔽信道分析。是一个运行WINLOGON.具体访问位有16位,确定了适用于某特定类型的对象的访问权限。有效特权集effective privileges set):进程当前使用的特权集。在Linux系统的进程结构中,已经有三个向量表示进程的特权类型:cap_ effective、cap_inheritable、cap_permitted。(3)特洛伊木马:黑客常常在系统内嵌入这类程序,软件软件能够检查系统文件的非授权修改和不合适的版本,既检测了漏洞,也有利于版本控制。是执行体(NTOSKRNL.可继承特权集:只有当调用进程具有这些特权时,才能激
15、活这些特权。系统的一些子系统,如服务、LSA和SAM对象等均有它们在创建对象时分配的硬性编码DACL。b)系统调用的出口处:检查进程task结构的AUDITME标记是否置位,是则通过系统调用号索引“系统记录函数表”,得到真正的记录函数入口,调用它将数据写入缓冲区,并清除AUDITME标记;否则不做审计动作。c)主体访问客体的权限检查处:对于系统调用引发的客体访问,要根据客体安全级判定是否审计。可以在客体访问的必经之地namei作检查,若进程task结构的AUDITME标记置位,则说明该事件已经属于主体(进程)审计范围,不必重复记录,返回即可;否 则,根 据 系 统 调 用 入 口 判 定 的
16、事 件 号a_event,检查该事件是否属于对象审计标准,是则检查当前客体的安全级是否在待审计的系统安全级范围中,若是则置位AUDITME标记,否则返回。(6)审计系统自身的安全保护 1)程序和代码的安全 在发布的系统中,只提供执行代码,源程序不可见,对用户屏蔽了系统的工作细节。审计数据的采集记录部分集成到安全内核,审计进程的执行不受外界影响,核外的应用程序(审计管理员配置程序和审计数据显示分析程序)则严格遵循强制访问控制MAC和最小特权控制PAC,保证只有审计管理员才能使用这些程序。2)系统配置和审计数据的安全 配置文件包括系统和用户审计标准、审计系统的运行参数、审计事件的定义等,这些文件也
17、必须施加MAC控制。7.5.5 信息系统安全评估标准简介 1操作系统安全漏洞扫描 为了确保安全操作系统的安全性,人们首先想到采用专用工具扫描操作系统的安全漏洞,以达到发现漏洞和采取补救措施。操作系统安全漏洞扫描的主要内容有:(1)设置错误:设置是很困难的,设置错误可能导致一系列安全漏洞,可以检查系统设置,搜索安全漏洞,判断是否符合安全策略。(2)黑客踪迹:黑客留下的踪迹常常可以检测到,软件能检查是否有黑客侵入系统、盗取口令,也可检查某些关键目录下是否有黑客放置的可疑文件。(3)特洛伊木马:黑客常常在系统内嵌入这类程序,软件软件能够检查系统文件的非授权修改和不合适的版本,既检测了漏洞,也有利于版
18、本控制。2操作系统安全评测方法(1)形式化验证:(2)非形式化确认:(3)入侵测试:3操作系统安全测评准则 国防部于1983年推出了 上第一个计算机 系 统 安 全 评 测 准 则 TCSEC(Trusted Computer System Evaluation Criteria),又称桔皮书,从而,带动了国际正计算机系统安全评测的研究,德国、英国、加拿大、西欧等纷纷制定了各自的计算机系统安全评价标准。近年来,我国也制定了相应的国家标准GB17859-和GB/T18336-等标准。TCSEC的主要内容 对可信任计算机信息系统有6项基本需求,基中,4项涉及存取控制,2项涉及安全保障:需求1-安全
19、策略、需求2-标志、需求3-标识、需求4-审计、需求5-保证、需求6-连续保护。根据6项基本需求,TCSEC在用户登录、授权管理、访问控制、审计跟踪、隐蔽信道分析、可信通路建立、安全检测、生命周期保证、文档写作等各方面,均提出了规范性要求,并根据所采用的安全策略、系统所具有的安全功能把系统分为4类7个安全等级 D类D级,安全性最低级,整个系统不可信任。C类自主保护类,C1级自主安全保护。C2级受控制的存取控制系统,引入DAC和审计机制。B类强制保护类,B1级标记安全保护级,引入MAC、标记和标记管理。B2级结构保护级,具有形式化安全模型,完善的MAC,可信通路、系统结构化设计、最小特权管理、隐
20、蔽信道分析。B3级安全域级,访问监控机制、TCB最小复杂性设计、审计实时报告和对硬件的要求。A类A1级(仅一个级别),验证保护类,严格的设计、控制和验证过程。7.6 实例研究:安全操作系统SELinux 图7-31 SELinux安全体系结构安全服务器安全策略SID到安全上下文的映射对象管理器策略执行对象到SID映射查询决策客户机7.7实例研究:Windows 2000/XP安全机制 Windows 2000/XP提供了一组可配置的安全性服务和灵活的访问控制能力,能满足分布式系统的安全性需求,主要服务有:安全登录、访问控制、安全审计、内存保护、活动目录、Kerberos 5身份验证协议、基于S
21、ecure Sockets Layer 3.0安全通道、EFS加密文件系统。7.7.1安全性组件和安全登录 1安全性组件 实现Windows 2000/XP的安全性机制的组件和数据库如下:(1)安 全 引 用 监 视 器(SRM)。是 执 行 体(NTOSKRNL.EXE)的一个组件,该组件负责执行对对象的安全访问检查、管理对象的访问权限和产生安全审计消息。(2)本地安全权限(LSA)服务器。是一个运行映像LSASS.EXE的用户态进程,它负责本地系统安全性规则(例如允许用户登录到机器的规则、密码规则、授予用户和组的权限列表以及系统安全性审计设置)、用户身份验证以及向“事件日志发送安全性审计消
22、息。(3)LSA策略数据库。是一个包含了系统安全性规则设置的数据库,该数据库被保存在注册表中 的 HKEY-LOCAL-MACHINE/security下。它包含的信息有:哪些域被信任用于认证登录企图;哪些用户可以访问系统以及怎样访问(交互、网络和服务登录方式);谁被赋予了哪些权限;执行的安全性审计的种类。(4)安全账号管理服务器。是一组负责管理数据库的子例程,该数据库包含定义在本地机器上或用于域(如果系统是域控制器)的用户名和组。SAM在LSASS进程的描述表中运行。(5)SAM数据库。是一个包含定义用户和组以及它们的密码和属性的数据库,它被保 存 在 HKEY-LOCAL-MACHINE
23、SAM下的注册表中。(6)默 认 身 份 认 证 包。是 一 个 被 称 为MSV1_0的 动 态 链 接 库(DLL),在 进 行Windows 身份验证的LSASS进程的描述表中运行。这个DLL负责检查给定的用户名和密码是否和SAM数据库中指定的相匹配,如果匹配,返回该用户的信息。(7)登 录 进 程。是 一 个 运 行WINLOGON.EXE的用户态进程,它负责搜寻用户名和密码,并发送给LSA用以验证它们,并在用户会话中创建初始化进程。(8)网络登录服务。是一个响应网络登录请求的SERVICES.EXE进程内部的用户态服务。身份验证同本地登录一样,是通过把它们发送到LSASS进程来验证的
24、。2安全登录 登录是通过登录进程WinLogon、LSA、身份认证包和SAM相互作用完成的。用户按下热键时,登录就开始,在获得用户名和 口 令 后,由 LSA本 地 安 全 认 证 服 务 器、msv1_0身份验证软件包、SAM数据库协同工作,进行标识和鉴别,msv1_0查看请求的登录与SAM数据库中允许的访问是否有匹配项。如果是合法用户,LSA会汇集各种用户信息,如用户SID、组SID、主目录等配置文件信息,这时,为该用户创建一个用户进程,为了实现对它的访问控制,本地安全认证子系统同时创建了两个重要的管理实体:与每个进程相关联的“访问令牌 和与每个对象相关联的“安全描述符”。7.7.2 访问
25、控制 1 保护对象 保护对象是谨慎访问控制和审计的基本要素,被保护的对象包括文件、设备、邮件槽、己命名的和未命名的管道、进程、线程、事件、互斥体、信号量、可等待定时器、访问令牌、窗口、桌面、网络共享、效力、注册表键和打印机。2访问控制方案 访问令牌是一个包含进程或线程安全标识的数据结构,包括:安全ID(SID),用户所属组的列表及启用/禁止的特权列表。它是基于安全目的,在系统中使用的该用户的帷一标识符;当用户进程派生出新进程时,新进程对象继承了同一个访问令牌。访问令牌有两种用途:负责协调所有必需的安全信息,从而,加速访问确认,当与一个用户相关联的任何进程试图访问时,安全子系统使用与该进程相关联
26、的访问令牌来确定用户的访问特权。允许每个进程以一种受限的方式修改自己的安全特性,而不会影响代表用户运行的其他进程。Windows 2000/XP的安全结构 安全ID(SID)组ID 特权 默认所有者 默认ACL 标志所有者系统访问控制表SACL自主访问控制表DACL ACL头ACE头 访问掩码 SIDACE头 访问掩码 SID(a)访问令牌(b)安全描述符(c)访问控制表5 ACL的分配 要确定分配给新对象的ACL,系统使用三种互斥的规则之一,步骤为:步1:如果调用者在创建对象时,明确提供了一个安全描述符,则系统将把该描述符应用到对象上。步2:如果调用者没有提供安全描述符,而对象有名称,则系统
27、将在存储新对象名称的目录中查看安全描述符,一些对象目的的ACE可以被指定为可继承的,表示它们可应用于在对象目录中创建的新对象上。如果存在可继承的ACE,系统就把它们编入ACL,并与新对象连接。步3:如果以上情况均未出现,系统会从调用者访问令牌中检索默认的ACL,并将其应用到新对象。系统的一些子系统,如服务、LSA和SAM对象等均有它们在创建对象时分配的硬性编码DACL。6访问控制算法 该算法确定允许访问对象的最大权限,通过检查ACL中的ACE来生成授予访问掩码和拒绝访问掩码。其步骤为:(1)如果对象没有DACL,对象就不被保护,系统将授予所有访问权力。(2)如果调用者具有所有权特权,系统将在检
28、查DACL之前授予它写入访问权力。(3)如果调用者是对象的所有者,则被授予读取控制和写入DACL的访问权力。(4)对于每一个拒绝访问的ACE,如果其中包含与调用者的访问令牌相匹配的SID,则ACE的访问掩码会被添加到拒绝访问掩码上。(5)对于每一个访问允许的ACE,如果其中包含与调用者的访问令牌相匹配的SID,除非访问已被拒绝,否则ACE的访问掩码会被添加到被计算的授予访问掩码上。7访问掩码 具体访问位有16位,确定了适用于某特定类型的对象的访问权限。如文件对象的第0位是File_read_data访问,事件对象的第0位是Event_query_status访问。DeleteMaximum a
29、llowed标准访问位位具体访问位一般访问位Access system securityGeneric allGeneric executeGeneric writeGeneric read图7-33 访问掩码SynchronizeWrite ownerWrite DACRead control 7.7.3 安全审计 Windows系统产生三类日志:系统日志、应用程序日志和安全日志。审计事件分为七类:系统类、登录类、对象存取类、特权应用类、账号管理类、安全策略类和详细审计类。对每类事件可选择成功、失败或两者同时审计,对于对象存取类的审计,还可以在资源管理器中进一步指定文件和目录的具体审计标准:
30、如读、写、修正、删除、执行等操作,也分成功或失败两种审计,对注册表项及打印机设备的审计类似。审计数据以二进制结构文件存于磁盘,每条记录包括:事件发生时间、事件源、事件号和所属类别、机器名、用户名和事件的详细叙述。7.7.4 加密文件系统 加密文件系统EFS(Encrypted File System)把NTFS文件中的数据加密,并存储在磁盘上。EFS加密技术是基于公共密钥的,它用一个随机产生的文件密钥FEK(File encryption Key)通过加强型数据加密标准DES(Data Encryption Standard)算法-DESX对文件进行加密。该技术的特点是集成服务、易于管理、不易受攻击。EFS系统结构 应用程序加密服务提供者MS基础加密提供者v1.0LSASRVEFS函数 LSASS用户态核心态NTFSEFS编号表NTFS KsecDD加密文件存储LPCEFS工作流程 磁 盘EFS驱动程序4.NTFS请求EFS驱动加密文件内容NTFS文 件 系统驱动程序2.NTFS将 数 据 存入文件系统缓存3.缓存管理器将数据经NTFS延迟包入磁盘缓存管理器1.应用程序向加密将文件安数据5.NTFS将 加 密 文件内容写入磁盘应用程序卷用户态 核心态谢谢