Security+笔记——第七章:管理身份识别和访问

课题A:实施身份识别和访问管理

身份识别和访问管理
身份识别和访问管理(Identity and access management/IAM)是一种安全流程,为用户、计算机和其他实体提供身份识别,认证和授权机制,以便能够使用网络,操作系统和应用程序等组织资产。
在大多数商业环境中,IAM是提供和管理访问以及加强IT基础架构整体安全性的关键服务。
访问控制模型

访问控制模型描述
强制访问控制(Mandatory access control/MAC)当你尝试访问被标记为“绝密”的文件时,只有在你拥有查看绝密文件的权限时才能打开该文件,在此模型中,通过比较对象的指定安全等级和主题的安全许可来控制访问。对象会根据它们的敏感程度被分配不同级别的安全标签。主题被分配一个安全级别或许可,当它们尝试访问一个对象时,它们的许可级别必须与该对象的安全级别相对应。如果匹配主题就能访问该对象;如果没有匹配主题就会被拒绝访问。MAC安全标识通常只能由系统管理员更改。
自主访问控制(Discretionary access control/DAC)当你尝试访问受保护的文件时,只需要让管理员授权你访问权限,然后就能开始使用该文件。在这个模型中,每个对象的访问权限可以根据主体身份自定义的进行控制。为对象配置一个访问控制列表(ACL),确定允许访问它们的主体。所有者有权决定是否将主题放入列表中,并配置特定的访问级别。与MAC不同,在DAC授权方案中,对象所有者通常可以修改对象的ACL。
基于角色的访问控制(Role-based access control/RBAC)当你尝试访问被标记为“员工数据库”的文件时,出现了访问拒绝。这是当你作为员工的角色不允许访问HR文件夹中的文件。在这种模型中,主体会被分配预定义的角色,网络对象被配置为只允许特定角色的访问。访问是根据主体被分配的角色进行控制的。一个主体可能被一次性分配多个角色,或者在主体工作期间可能会从一个角色切换到另一个角色。管理员仅为主体分配在角色中完成其工作所需的那些权限。通常根据管理员指定的策略,角色会在请求访问之前被分配。注意:RBAC中的“角色”不必与用户组相同。组更注重管理主体,而角色更注重管理许可。
基于规则的访问控制(Rule-based access control)这是一种基于一组操作规则或限制的访问控制技术。在主体被授予对象的权限之前,总是需要核查规则集。
基于属性的访问控制(Attribute-based access control/ABAC)当你尝试登陆到客户数据库时,尽管你是一名一般管理员,并且没有任何明确规则禁止你进入,但你还是被拒绝访问。在这种模型中,基于每个主体拥有的一组属性来控制访问。属性提前进行创建,并且必须恰当的描述能够区分一个主题与另一个主题的重要因素。根据属性不同,管理员可以在身份创建过程中分配这些属性,也可以动态分配这些属性。

物理访问控制设备
物理访问控制设备再IAM架构中很常见,在IAM架构中,组织不能仅仅依靠基于软件的认证和授权方案。这些设备既可以是主题的所有物,如口令,也可以是实际用于验证主体身份的设备如门锁。在任何一种情况下,物理访问控制设备都可以与提供物理控制或虚拟控制的对象一起工作。
从主题角度看,物理访问控制设备的一个常见示例是智能卡。智能卡被用作一种“你拥有的东西”认证因素来验证用在某个位置上的物理入口的权限。
生物识别设备
当设计“你是什么”因素时,生物识别技术可以实施各种各样的认证检查。

  • 指纹扫描器。
  • 语音识别设备。
  • 视网膜扫描仪。
  • 虹膜扫描仪。
  • 面部识别设备。

生物识别因素:有几个因素会影响生物识别的功效。

  • 错误接受率(false acceptance rate/FAR),未经授权的用户在生物识别系统中错误通过验证的百分比。
  • 错误拒绝率(false rejection rate/FRR),被生物认证系统错误拒绝的授权用户。
  • 交叉错误率(crossover error rate/CER),FAR和FRR相等时的值。低CER值标识认证系统正以最佳状态运行。
    基于证书的认证

“你拥有什么”认证设备中使用的一种技术是通过使用数字证书来验证身份。在公钥密码设备技术中,数字证书证明实体拥有公钥。任何信任证书颁发机构的人都可以验证证书持有者的身份。基于证书的身份验证是使用密码的替代方法,密码可能很容易忘记或被攻击者猜测破解;也可以替代不准确,不实际或有争议生物识别技术验证方法。
基于证书的认证的另一个例子是802.1X。
文件系统和数据库访问
为确保组织中文件系统和数据库的安全性,你需要控制对这些关键组成的访问。根据文件系统的类型和运行的操作系统,可能可以实施像DAC这样的访问控制模型。
实施IAM的准则
实施IAM时:

  • 考虑将LAM重要过程添加到整个组织安全管理流程中。
  • 熟悉可用的不同访问控制模型。
  • 根据组织的业务和安全需求以及你的环境配置决定要使用的访问控制模型。
  • 考虑应用物理访问控制设备,比如智能卡和智能卡读卡器,以控制对设施和系统的访问。
  • 认识每种生物识别设备的优缺点。
  • 考虑使用虹膜扫描仪和指纹扫描仪等生物识别设备进行身份验证。
  • 考虑实施基于证书的认证方法,以避免密码和生物识别中出现的相关问题。
  • 如果你与美国联邦政府合作或为他们工作,需要考虑到使用PIV或CAC可能是强制要求。
  • 在文件系统层面上实施访问控制模型,以防止文件和文件夹的未授权读取和修改。
  • 在你使用的数据库软件中实施可用的访问控制。

课题B:配置目录服务

目录服务
目录服务(directory service)是一种网络服务,用于存储特定网络中所有对象的身份信息,包括用户,组,服务器,客户端,打印机和网络服务。目录还为目录对象的网络资源提供了用户访问控制。目录服务也可用于集中安全性并控制对各个网络资源的访问。
目录结构由模式(schema)控制,该模式定义了如何创建对象以及对象有哪些特征的规则。大多数机智是可扩展的,因此可以被加以修改以支持组织的特定需求。
轻型目录访问协议
轻量级目录访问协议(Lightweight Directory Access Protocol/LDAP)是一种通过传输控制协议/Inernet协议网络运行的目录服务协议。LDAP客户端向LDAP服务进行身份验证,并且服务的机制定义了客户端在访问目录数据库时可以和不可以执行的任务,目录查询必须采用的形式以及目录服务器响应的方式。
LDAP安全
安全LDAP(LDAPS)是一种使用安全套接字层/传输层安全(SSL/TLS)加密协议来实施LDAP的方法,这种方法可以防止窃听和中间人攻击。LDAPS强制要求客户端和服务器在进行任何传输之前先建立安全的连接,并且如果安全连接被终端或丢弃,LDAPS就会关闭连接。
常见的目录服务

目录服务描述
Active DirectoryMicrosoft提供的目录服务,为单个域或多个域保存所有网络对象的信息。Active Directory允许管理员使用访问控制列表集中控制和控制对资源的访问。
Oracle Directory Server企业版本(ODSEE)Oracle Directory Server企业版本面向需要可靠扩展性的大型安装。
OpenDJ在Linux,Unix,Microsoft Windows和macOS上运行的开源目录服务器。
OpenLDAP一种开源LDAP实现,具有适用于大多数操作系统的版本。
Open Directory苹果公司定制的OpenLDAP实施,是MACOS服务器操作系统的一部分。

课题C:配置访问服务

远程访问方式
对于现在的移动用户,组织可以使用几种不同的方式为远程员工和客户提供访问它们网络资源的途径。需要保护隐私的公司可能会连接到网关远程访问服务器(RAS),该服务器为全部或部分内部网络提供访问控制服务。
隧道
隧道(Tunneling)是一种可用于提供远程访问的数据传输技术,在传输过程中,数据包被加密并封装在另一个数据包中,以隐藏保内的信息。
远程访问协议

目录服务描述
点到点(PPP)这是一种通过串行点对点链路发送IP数据报的过时互联网标准。它最常见的用途是拨号访问互联网。它可以用于同步和异步连接。
点到点隧道(PPTP)这是Microsoft VPN第二层协议,通过为PPP数据包提供隧道和数据加密来增加PPP的安全性。它使用与PPP相同的认证类型,是早期Windows客户端中常见的VPN方法。
第二层隧道协议(L2TP)这是一种结合了PPTP和第二层转发(L2F)的互联网标准协议,支持在各种网络协议上建立PPP会话的隧道。
安全套接字隧道协议(SSTP)该协议使用SSL/TLS并使用PPP报头封装IP数据库,然后再使用SSTP报头进行封装。

基于HMAC的一次性密码
基于HMAC的一次性密码(HMAC-based one-time password/HOTP)是使用基于散列的消息认证码(HMAC)生成一次性密码(one-time password/OTP)的一种算法,能够确保消息的真实性。一次性密码意在替代或补充不安全的静态密码作为认证的另一个因素。OTP也可以替代需要在用于访问系统的每台计算机上安装特定软件的认证方法。
基于时间的OTP
基于HMAC的定时一次性密码(Time HMAC-based one-time password/TOTP)通过在一次性密码认证中引入基于时间的因素来改进HOTP算法。HOTP和其他一次性密码有一个弱点,如果密码从未被使用过,攻击者就能利用该密码。
TOTP算法通过在特定时间增量(例如60秒)内生成新密码并使之时效来解决此安全漏洞。
密码认证协议
密码认证协议(Password Authentication Protocol/PAP)是一种以明文形式发送用户ID和密码的认证协议。通常在远程客户端连接到不支持强密码加密的非Windows服务器时使用。当服务器收到用户ID和密码对时,它将它们与本地证书列表进行比对。如果找到匹配项,服务器将接受证书并允许远程客户端访问资源。如果找不到匹配,则连接终止。由于缺乏加密,PAP非常脆弱,并且已经在很大程度上被淘汰为过时协议。
质询-握手认证协议
质询握手认证协议(Challenge Handshake Authentication Protocol/CHAP)是一种加密认证协议,通常用于为远程访问服务器提供访问控制。CHAP的开发使密码不必以明文形式发送。它通常用于连接到非Windows服务器。CHAP结合使用了消息摘要5(MD5)散列和质询-响应机制,并且在不需要通过网络发送纯文本密码的前提下完成了认证。它可以接受来自任何认证方法的连接,但某些未加密的方式除外。出于这些原因CHAP比PAP更安全。但是CHAP还是被认为是一种过时协议,尤其是因为MD5散列算法不再能提供合适的安全性。

步骤描述
第一步远程客户端请求连接RAS。
第二部远程服务器发送一个质询序列,通常是一个随机值。
第三部远程客户端使用其密码作为加密密钥来加密质询序列,并将修改后的序列发送到服务器。
第四部服务器使用存储在本地证书列表中的密码加密初始质询序列,并将结果与客户端接收到的已修改序列进行比较:1.如果两个序列不匹配,则服务器关闭连接。2.如果两个序列匹配,则服务器允许客户端访问资源。

NT LAN管理器
NT LAN管理器(NTLM)是一种由Microsoft创建的,由于它们产品之中的一种质询-响应认证协议,最初在WindowsNT的早期版本中发布。在NTLM过程中,客户端与服务器建立连接,然后服务器质询请求并尝试发现客户端的身份。客户端随后回应认证信息。
NTLM中已经发现了一些弱点,包括过时的加密算法,这些算法很容易受到暴力破解的攻击尝试。
认证、授权和计费
认证、授权和计费(Authentication authorization and accounting/AAA)是一种安全概念,其中集中式平台验证对象标识,确保为对象分配相关权限,然后记录这些操作以创建审计跟踪。
远程认证拨号用户服务
远程认证拨号用户服务(Remote Authentication Dial-In User Service/RADIUS)是一种提供AAA服务的互联网标准协议。当一个网络包含多台远程访问服务器时,你可以将其中一台服务器配置为RADIUS服务器,将所有其他服务器配置为RADIUS客户端。RADIUS客户端将所有认证请求传递给RADIUS服务器进行验证。用户配置,远程访问策略和使用情况日志记录可集中在RADIUS服务器上。在此配置中,远程访问服务器通称为网络访问服务器(network access server/NAS)
Diameter认证协议通过客服RADIUS中的一些弱点来对它进行改善。
网络策略服务器(NPS)是RADIUS服务器在Windows server上的实现,它能帮助管理VPN和无线网络。
终端访问控制访问-控制系统
终端访问控制访问-控制系统(Terminal Access Controller Access-Control System/TACACS)和TACACS Plus(TACACS+)协议为远程用户提供AAA服务。与RADIUS相比,TACACS+被认为更安全且更具可扩展性,因为它能接受登录请求并验证用户的访问证书。TACACS+包含认证的全程加密,而RADIUS只加密密码。另外TACACS+将认证数据包与授权数据包分开,而RADIUS将这些功能组合在同一个数据包中。TACACS+还支持多因素认证。
Kerberos
Kerberos是基于时间敏感的票据授予系统的认证服务。它由麻省理工学院(MIT)开发,使用单点登录(SSO)方法,用户输入访问凭证,然后将其传递给认证服务器,该认证服务器包含一个访问列表和被允许的访问凭证。Kerberos可以通过使用一台集中式认证服务器管理许多不同服务的访问控制。
在Kerberos进程中:

  1. 用户登录到域。
  2. 用户从认证服务器请求票就授予票据。
  3. 认证服务器使用一个时间戳TGT进行响应。
  4. 用户将TGT返回给认证服务器,并请求服务票据访问特定资源。
  5. 认证服务器使用服务票据进行响应。
  6. 用户将服务票据提供给他们希望访问的资源。
  7. 资源认证用户并允许访问。

课题D:管理账户

账户管理
账户管理(Account management)是用来指代有效管理组织内用户账户的过程,功能和策略的通用术语。账户管理是LAM中的一项特定功能,使管理员能创建,更新,修改和删除与特定身份相关的账户和配置文件。用户账户可以被允许或拒绝访问组织的信息系统和资源;因此只有在合适的控制下,组织才能合理的管理账户。
账户权限
账户权限是授予用户允许执行各种操作的许可,如创建,删除和编辑文件,以及访问网络上的系统和服务。
账户类型
账户可以包含大量的自定义功能,以适应组织的业务和安全需求。

账户类型描述
用户账户用户账户只是组织中一般用户的标准账户类型。这些账户几乎总是受限于权限,特别是为IT成员保留的权限。
特权账户与标准用户账户相比,特权账户对组织中的数据和系统具有更大的访问权限。大多数管理员账户属于此类别,因为需要提升权限才能访问域控制器等关键基础架构。
访客账户访客账户被提供给可能需要有线网络访问的非工作人员。
计算机和服务账户人类用户并非IAM系统中使用账户的唯一实体。一些计算机在组织中扮演着特定角色,并且必须访问文件和其他系统来履行职责。

账户策略
账户策略(account policy)是一种包含组织对账户创建,账户监控和账户删除的要求的文档。策略可以包括针对用户的要求或组管理要求。用户账户策略会有所不同,可以进行自定义并根据业务需求来执行。作为安全专业人员你需要根据业务需求调研并分析组织的策略要求。

  • 谁可以批准账户创建。
  • 谁被允许使用资源。
  • 用户是否可以共享账户或拥有多个账户。
  • 审核用户访问后,何时以及如何禁用或修改账户。
  • 用户账户在一段时间的不适用后是否应该终止,以及何时终止。
  • 何时执行一般账户的禁用。
  • 应对密码历史,密码强度和密码重用那些规则。
  • 在发生可以时间或劫持尝试时,何时锁定账户。
  • 在账户遭到入侵或被删除后,何时以及如何恢复账户。

密码策略

  • 密码长度。为了防止暴力破解攻击,密码策略通常对最短长度做出强制要求。
  • 密码复杂性。与密码长度一样,通常强制要求复杂性以保护用户账户免受密码破解尝试。
  • 密码历史。许多密码政策规定,每隔一段时间,用户都必须更改密码。这有助于创建一个移动目标,使攻击者需要跟上不断变化的证书,才能成功破解密码。
  • 密码重用。使用密码的一个常见危险是人人们在多个账户上使用相同的密码。
    多账号

当一个人拥有系统或资源的几个账户时,会出现多用户账户。

  • 用户缺乏对各种账户的了解。
  • 为响应账户分配数据访问和许可的合适级别,
  • 管理每个单独账户的权限,许可和数据复制。
    共享账户

共享账户可以由多个用户或资源访问,与传统的非共享账户不同,它们不与任何个体相关联。

  • 匿名,访客和其他通用账户可作为访问者访问系统的一种方式。
  • 临时账户对于不在公司中连续工作的员工或承包商非常有用。
  • 管理账户允多名经过授权的专业人员访问更高的权限。
  • 批处理账户可以轻松自动执行许多不同类型的任务。

共享账户本身就存在安全风险。由于许多不同的人会使用一个账户,因此在发生违规时要让特定的个人负责是非常困难的,而且往往是不可能的。同样用户自己可能也认识到了这一点,并且不在意安全性,在他们登录到自己的个人账户时可能会避免这种情况。
账户管理安全控制
为了维护组织的安全需求,你应该实施并执行严格的账户管理安全控制。

安全控制描述
标准命名管理为了减少混淆,账户应以一致的方式命名。这有助于加强账户的管理,尤其是通过使用脚本和命令行。
账户维护根据组织的规模和结构,你可能需要经常修改现有账户或删除不再使用的账户。你应该制定一个维护计划,以确保不会遗漏任何必要的更改,也不会过早地一处账户。
入职/离职随着新员工进入组织,你需要为他们创建新账户。同样,对于离开组织的员工,必须禁用他们的账户并将其从系统中删除。入职和离开计划有助于知道你完成这一过程,从而最大限度的减少干扰并防止已终止的员工账户被用作攻击媒介。
访问权限重新鉴定(Access recertification)账户应当基尼许可审计和审查,以确定它们是否仍然遵守最小特权原则。一些账户随着时间的推移积累了太多的权限——一种被称为许可蠕变(permissions creep)的过程。重新认证将帮助你确定不必要的权限,以便可以修改账户使之更加符合用户或资源的实际需求。
使用情况审计除了审核许可之外,你还应监控用户账户在组织中的使用方式。这可帮助你找出权限扩大攻击,或只是提醒你特定账户不应设计的行为。
基于组的访问控制将用户安排到组中会减轻管理单独账户的一些负担。当用户分到组中时,就能轻松地为多人添加或撤销许可,从而为你节省时间和精力。
基于位置的策略为了更好的控制组织中的账户使用情况,你可能需要考虑实施一定策略,限制用户可以从中进行访问的物理和虚拟位置。基于位置的限制可以放置而已或位置来源上的远程攻击。
一天中的时刻限制除了一些例外情况,你预期大多数用户会在每天的特定时间工作。为了避免被发现,攻击者会在非工作时间使用账户来获取访问权限。缓解这种风险的一种方法就是简单的将账户的访问权限限制为只有当员工正在工作的特定时间内才能访问。

凭证管理
创建凭证管理(Credentials manager)是为了帮助和组织更轻松的存储和管理账户密码。这些应用程序通常将凭证在本地计算机上的加密数据库中。通过认证的用户可以从中检索正确凭证用于相关系统。这对于在多个系统中拥有多账户的用户来说特别有用,并且由于凭证管理器可以自动在表单中填写用户名和密码,因此可以抵御击键记录恶意软件。
组策略
Windows系统中的组策略服务为跨域管理账户安全提供了几种不同的方法。

  • 优化账户密码的属性,如长度,复杂性和寿命。
  • 优化账户的锁定阈值和持续时间,
  • 使用可逆的加密技术存储账户密码。
  • 执行Kerberos登录限制和票据生命周期管理。
  • 审计账户管理事件。
  • 为个人或组成账户分配特定的权限和控制
    身份联合

身份联合(Identity federation)是指将一个身份在多个不同身份管理系统之间进行链接的做法。身份联合包含所有服务于此类身份的策略和协议。这提供了一个集中的身份管理结构,消除了多余身份信息的需求。
身份联合通常以可传递信任(transitIve trust)的原则进行操作。
身份联合的方法

身份联合的方法描述
安全声明标记语言(Security Assertion Markup Language/SAML)SAML是一种基于XML的框架,用于交换安全相关的信息,例如用户认证,授权和属性。这种信息通过安全的HTTP连接以声明的形式进行通讯,传达了有关主体访问级别的主体身份和授权决定
OpenIDOpenID是一种使用加入OpenID系统的特定站点对用户进行用户验证的方法。这使他们可以为所有参与网站保留一个账户。
OAuth鉴于OpenID提供了联合身份验证服务,OAuth是可用于补充OpenID的授权协议。在OAuth中,授权服务器代表资源向用户提供访问口令。
ShibbolethShibboleth 是基于SAML的联合身份方法,通常被大学或公共服务组织采用。在Shibboleth实现中,用户尝试从一个启用了Shibboleth的网站中检索资源,然后网站通过URL查询发送SAML认证信息。然后用户被重定向到一个身份提供器中,他们可以使用此SAML信息与其进行身份验证。随后身份提供器用正确的身份验证信息响应服务提供商。网站验证此响应并根据用户的SAML信息授予他们特定资源的访问权限。

管理账户的准则

  • 在分配用户和组账户访问时实施最小权限原则。
  • 制定一个账户策略并在其中包含所有账户策略要求。
  • 确认账户请求和批准程序存在并得到执行。
  • 确认账户修改程序存在并得到执行。
  • 制定密码策略并在其中包含确保密码能够抵御破解尝试的要求。
  • 限制多账户和共享账户的使用,防止滥用。
  • 实施账户管理安全控制,如维护,审计和基于位置/时间的限制。
  • 使用证书管理软件将用户名和密码存储在加密的数据库中。
  • 实施组策略进行更加广泛的访问控制。
  • 考虑实施身份联合系统以简化系统之间的用户访问。
  • 思考联合身份如何成为访问不同系统的单点故障。
添加新评论