特权账户风险管理


=Start=

缘由:

大致整理一下最近看到的和特权账户管理相关的文章的内容,作为一个知识储备,方便以后参考使用。

正文:

参考解答:

事情是做不完的,对于安全来说尤其如此,一方面是因为对于企业来说安全风险是无时不在、无法完全规避的,另一方面是对于企业安全负责人来说必须要面对的就是有限的资源投入。这时,我们就需要抓重点,先做投入产出比高的事情,而特权账户风险管理就是这样一件ROI很高的事情。

以上是之前的一些想法,基本也没啥问题。不过最近又遇到一些事情,有了一点新的想法——团队里聪明人太多,且总盯着ROI高的事情做也不全是好事。因为有ROI高的就有ROI低的,而ROI低的事情并不是不该做,如果你把时间周期拉长,从全局视角来看的话,有些ROI低的事情可能才是基础、关键,如果没人去做这些ROI低的事情,那所谓的ROI高的事情可能也无从谈起了(万丈高楼平地起是需要有稳固的地基支持的)。


(我个人对于企业中特权账户管理(PrivilegedAccountManagement,PAM)的方法和步骤)概括来说主要就是:

  1. (先人工+后自动化)扫描识别
  2. (先人工+后自动化+运营)分类分级
  3. (制度规范+流程+系统)保护控制
  4. (实时+离线、自动化+人工)审计
0x01 【全面】扫描识别【所有】【特权】账户和认证信息

先通过人工(问询、重点代码白盒审计)+自动化(扫描、审计)的方式全面摸排当前企业中存在的各种账户及其管理体系,以及其中是否包含特权账户的访问、控制和审计。

『看见』是1,『其它的』是1后面的一串0,如果无法准确、全面的看见,后面的其它操作可能是毫无意义的。

0x02 根据企业【实际面临的】特权账户相关风险进行分类分级

一个大致的排序:
• 含有根据法规要求而需要保护的数据系统(在国家不断出台网络/信息安全相关法规的大背景下,如果安全没做好,企业可能连入场的资格都没有或是因为违反法律法规而给你取消掉)
• 所在机构最重要的系统(企业的核心业务系统,老板最关注的系统等)
• 具有知识产权或客户数据的系统(在当今数字化比率越来越高的背景下,也是公司核心资产的一个重要部分)
• 已知的易受攻击的系统(比如:通过前期代码审计、渗透测试确认过存在重大安全隐患的系统)

0x03【优先】保护风险最高的账户以【避免出现安全事故】

(人才、资源不受限制的)理想情况下,肯定是所有事情同步进行效率最高、速度最快;但现实中这是不可能的,我们必须在人才、资源都有限的情况下做决定,而此时的一个优先级排序就很重要了,我个人暂时想到的主要有:

  1. 【外部】满足国家、行业的合法合规要求(保留/拿到『入场资格』,安全团队在这里起到的是一个接口人的角色——对外沟通保证渠道畅通、消息灵通,对内传达指导一起配合实现达标);
  2. 【外部】不出大的安全事故(避免公司形象、资金受影响,也是安全团队除了合法合规之外的第一要务);
  3. 【内部】不经常出现小的安全问题(在不出大的安全事故之外,这是对较为成熟稳定的安全团队的一个基本要求——前期救火阶段可以容忍有一小段这样的时间,但不能长时间这样);
  4. 【内部】迅速发现问题,及时解决问题(《孙子兵法》里说『上兵伐谋,其次伐交,其次伐攻,其下攻城』,对应到企业安全里面就是——安全前置,因为越早发现和处理,成本越小、效果越好;当然这是有一个过程的,不论是安全团队自身的资源、能力,还是业务上对此的一个接受程度,但这是有理想的安全团队应该追求的);
0x04 通过更新/制定相关【制度规范、流程】同时建立【系统】以【支撑】特权账户的【保护控制】

安全控制,规定先行,流程支撑,快速高效。通过实际运营,不断反馈增强。

如果这块之前没有做过——
前期可以通过参考行业最佳实践或其它类似较成熟企业的相关内容,结合企业自身的实际情况,先讨论制定出一个版本试运行;
然后随着团队发现和处置能力的提高,以及实际遇到和解决的问题,不断修订更新(当然作为企业的一个基本规定,也不适宜经常更新,除非之前的版本存在明显问题,新的内容可以作为增补条例对基本规定进行补充)。

规定有了之后,对应的发现和处置能力也要不断提高以满足要求,而通过梳理流程SOP,以及建立对应运营平台/系统,可以不断提高和满足这方面的能力。

0x05 在安全性和效率之间做权衡,【逐步完善】审计策略和方法

对于非安全公司来说,业务才是根本,安全本质上是要为业务服务的(对于做得好的企业来说,他们产品具备的安全属性就是业务属性的一部分,可以为业务增值)!

所以安全很重要,但业务更重要,只要业务上不是有影响企业生存、业务发展的重大安全问题,业务优先,安全性做适当取舍(前期安全能力不够的情况下,少卡点,减少对业务的影响;后期安全能力上来之后,主动和业务沟通,发掘业务在安全上的痛点,为业务赋能)。

参考链接:

一篇文章了解特权账户安全
https://mp.weixin.qq.com/s/QA9j_ayxbjCVyri__VODHA

新的一年, 特权账户风险管理如何部署?
https://mp.weixin.qq.com/s/gVINb9fydM_XFUY4bta60Q

身份管理入门
https://mp.weixin.qq.com/s/ph7gPcAXL1FAch64oiAEyw

最佳身份管理建议
https://mp.weixin.qq.com/s/wicH6KphahMZx98RYZW1TQ

特权账户管理:网络安全的小秘密
https://mp.weixin.qq.com/s/nOSzOblTLddEWRzZrUsVqg

=END=


《“特权账户风险管理”》 有 8 条评论

  1. 特权账号管理那些事
    https://www.freebuf.com/articles/neopoints/249013.html
    `
    一、什么是特权账户
    二、特权账户有哪些特点
    三、特权账户存在哪些风险
    四、特权账户管理难点在哪儿

    五、特权账户如何管理
    1、账户集中管理
    2、密码口令管理
    3、账户自动发现
    4、访问管理
    5、提供密码调用服务
    6、流程控制
    7、日常监控
    8、日常审计

    六、企业在特权账户管理实施过程中应该关心什么
    1、对多种平台、系统的兼容能力
    2、账户凭证(密码)自动改密的可靠性
    3、特权账号平台自身的安全性和鲁棒性
    4、密码调用接口的稳定性和安全性
    5、横向扩展能力
    七、其他可能关心的问题
    1、特权账户管理系统与堡垒机的关系
    2、特权账户管理系统与LDAP/IAM系统的关系
    3、特权账户管理系统在网络攻防中的价值

    八、结束语
    从技术上看,现在市场上“特权账号管理”的相关解决方案的确是一种比较好的特权账号管理解决方案;但是,从甲方企业视角看特权账号管理,他们的解决方案只是企业特权账号管理整体解决方案的一个点或几个点。做个类比,如果把企业安全建设看作是一个“战略”,企业特权账号管理一个“战术行动”,以上公司提供的解决方案最多只能算“一场战役或几个战役”。不过这几场战役可能是特权账号管理中的“重点战役”、“核心战役”,但是如果没有其他“战役”做支持,单靠这几个战役是很难达成“战术目的”。甲方企业的特权账号管理必须要从制度建设、流程控制、技术管控与监控审计等多个方面拿出整体解决方案,才能在特权账号管理领域形成较为有效的安全管控能力,建设特权账户管理平台只是一个开始。
    `

  2. 群话题 | 数据安全和应用安全的TOP3痛点,app人脸安全sdk要及时升级,不同岗位设置不同的安全意识培训内容,安全左移的实践
    https://mp.weixin.qq.com/s/Q_1tf2Zw2tLwYRoH1MnTRA
    `
    一、我来请教一下大家,对于数据安全和应用安全的TOP3痛点是什么?跪求大家分享一下遇到的自己的心得。

    数据安全:
    1、权限问题 2、线下泄露 3、大规模安全教育如何渗透

    数据安全:
    1.数据流转过程的追溯 2.数据不落地的加工分析 3.衍生数据的owner定义

    数据安全:
    1.我们有哪些数据(特别是收集了哪些个人数据),即我们的家底到底是怎样的;2.这些数据处理是否安全及合规,即风险现状;3.怎么证明做到了安全+合规?

    数据安全:
    1.数据权属的确定;2.对外数据流的监控(字段和量)

    数据安全:
    1、数据资产分类分级;2、数据流转监控分析;3、数据加密落地

    看企业数据安全的痛点之前,要确定数据安全目标是啥,想要到达什么样的效果。比如想要在企业内部建立数据安全分类标准、分级保护措施推动、平衡业务发展,那跨部门协同平衡各方声音就比较难,主要是没有强制性监管要求。

    二、金融行业泄漏大多来自第三方合作,一线或二线业务,基于历史往回溯着搞,再举一反三,是一个办法,还有就是离职人员了。

    第三方我觉着就是个分层管控。之前我调研的时候,看到NIKE对那些代理商,都有很严的要求,比如上传日志,安装agent之类。但NIKE是一家独大,所以他可以有资格摆谱。对那些合作方,就得有不同程度的分层对待,有些合作方是你求着他。比如我求政府在哪个业务上合作,我就没法要求政府ABCD,但我可以提出建议,或者整体承包,加强黑市监控之类。

    三、惊讶于竟然能对不同的岗位设置不同的培训,学习了。
    对高管就要先提供服务,并且提供解决方案,领导会给你站台,钓鱼第一次可以是选择题,给你们发了10个邮件,请回答哪3个是钓鱼。搞了几次突击钓鱼之后,就可以平台常态化,每天发几个,避免互相对答案,季度做排名或者只告诉领导提升率。安全竞赛我们这的最大收货是,挖掘出不是安全职能但是安全能力比较强的同学,这些人喜欢pwn但不喜欢干活,后来压榨了他们重要价值。建议增加个反馈,比如面向安全员或员工问卷,他们觉得效果如何。

    是的,做安全活动有利于缓解研发与安全的矛盾。做时间长了,研发告诉安全,这个地方有漏洞。在安全活动中,我们还有员工提交漏洞,提交不合规,敏感数据的活动,结果一个月员工提交的问题比我们一个季度找的还多。还是需要深入群众,发动群众的力量。

    四、我们钓鱼还有一个原则,就是与安全培训要求相匹配,如果内部领导发个word你一打开就中招,那要做的其实是禁用宏而不是安全培训了。如果发exe,那就是你的问题,怎么能执行呢,安全意识去哪了!

    五、《被判刑:女警以每月700元的价格,将警务通租给中介查询驾驶证信息》业务安全啊,怎么发现异常的?查太多了,这个查询什么都是对应到警号的,四万次,平均每天1000多次,查太多了。
    `

  3. 供应商及人员安全管理
    https://mp.weixin.qq.com/s/TbavNHAi41FCawP5L3s5fg
    `
    1 外部供应商管理

    既然我们清楚了外部厂商的风险来源于整个大环境,短期又无法有效改变,那单个公司和个人能做哪些呢?

    答案是有的,那就是加强对软件厂商的安全管理,常用的方法有

    * 建立供应商安全评估准入机制和软件厂商安全标准,并监督落实;
    * 对软件厂商交付的代码进行黑盒检测,有条件的白盒检测,发现未满足安全要求的进行整改,并追究内部人员(安全测试和开发人员)责任;
    * 安全要求写入合同,反复违反的进行高层约谈和行业通告,特别及时向监管层报告。

    技术上,建立动态资产信息库,定期实施扫描、监控,不断收集整理供应链相关第三方软硬件信息,包括开发框架、组件等其它应用系统,持续对第三方开源或闭源系统实施漏洞挖掘,并针对隐蔽的链接、跳转链接实施主动和被动结合的排查。

    2 双人复核的意义

    无论是业务、运维还是运营,只要是变更,就会有操作风险。其中业务、运维部门的关键参数修改的风险控制,常常会引入双人复核机制,这其实是一个管理手段。
    为什么引入双人复核?核心问题是人的失误,主要有如下几点:

    * 人失误是很难完全避免的,即便是很优秀的人也会犯错误;
    * 失误通常不是本人的主观愿望;
    * 可能发生失误的情景是可以预测、控制和防范的;
    * 个人行为受到组织、制度和管理水平的深刻影响;
    * 理解并消除导致失误的因素,通过培训从以往的事件中汲取教训,可有效避免人因失误的发生。

    3 信息安全离职审计要点

    曾有人问起离职信息安全审计做什么?因为缺乏具体背景,这里列了一些关键点,供参考:
    (1)各类内部系统的账户权限是否完整交接;
    (2)掌握的笔记本、台式机和涉密资产(电子、纸件、软硬件台账)是否完整交接; 
    (3)掌握的关键资产是否交接,比如U盘形式的数字证书、公司域名的注册邮箱。
    (4)掌握的外部系统的账户、权限是否完整交接、清理,比如Github,比如社区论坛,比如供应商文档软件下载中心的账号; 
    (5)与内部各部门、外部各类组织的接口关系是否通知变更、注销; 
    (6)审计离职前(至少3个月)的文档操作访问记录、上网记录、邮件外发记录,重要岗位要求至少6个月。 
    (7)签署信息安全承诺书。从法律来说其实是多此一举,但是心理威慑来说可以强化。 
    (8)离职前夕,只要是外发邮件、拷贝记录,都立即抄送一份给主管。

    如果你准备开展离职人员的信息安全审计,首先是建立离职审计流程和机制,再是要及时宣贯,最好正式写入员工手册,让新员工参加培训就都知道,再加上违规案例举例,就像路边的监控摄像头,会配套告示牌,“您以进去监控区”。同时在真正进行离职审计时,某些审计措施不用告诉被审计者,就像一个博弈的过程,他知道你知道什么,他不知道你知道什么,形成足够的威慑措施。
    `

  4. 保护特权访问 – Securing privileged access
    https://docs.microsoft.com/en-us/security/compass/overview
    https://docs.microsoft.com/zh-cn/security/compass/overview

    Privileged access: Strategy
    https://docs.microsoft.com/en-us/security/compass/privileged-access-strategy
    `
    Privileged access should be the top security priority at every organization. Any compromise of these users has a high likelihood of significant negative impact to the organization. Privileged users have access to business critical assets in an organization, nearly always causing major impact when attackers compromise their accounts.

    特权访问应该是每个组织的最高等级安全关注点。这些特权用户的任何失陷都极有可能对组织产生重大的负面影响。特权用户可以访问组织中的关键业务资产,当攻击者破坏他们的帐户时,几乎总是会造成重大影响。

    为什么特权访问很重要?
    * 业务影响大
    * 发生的可能性很高

    保护 Privileged Access 有两个简单的目标
    * 将执行特权操作的能力严格限制为几个有限的授权路径
    * 保护并密切监视这些路径
    `

  5. 特权访问策略的成功条件 – Success criteria for privileged access strategy
    https://docs.microsoft.com/en-us/security/compass/privileged-access-success-criteria
    `
    确保可持续的长期成功需要满足以下条件:

    * 无情的优先级 (Ruthless prioritization)
    * 平衡安全性和工作效率 (Balance security and productivity)
    * 组织内部的紧密合作关系 (Strong partnerships within the organization)
    * 中断攻击者的投资回报 (Disrupt attacker return on investment)
    * 遵循干净源原则 (Follow clean source principle)
    `

    Privileged access: Accounts
    https://docs.microsoft.com/en-us/security/compass/privileged-access-accounts

    Security rapid modernization plan
    https://docs.microsoft.com/en-us/security/compass/security-rapid-modernization-plan

  6. 如何让代码变得很难让别人接手
    https://www.v2ex.com/t/855110
    `
    坐标上海,某传统小微型企业初级 python 开发岗,本来居家办公还天天 996 ,并且分配了更大的工作量,现在通知只发上海基本工资,打算 run 了,但是不甘心被白嫖这么多代码。 所以打算对代码进行“加密” 但是不能通过有风险方法进行加密,比如把代码进行混淆,加密功能模块等等。 想把代码改成只有高级开发才能看得懂,增加公司接手的用工成本。 请问有什么办法?
    ====
    有这功夫多看点书多刷点题
    事情搞大了以后谁还敢招你
    ==
    没必要,你现在写的后面人接手也可能很困难
    ==
    直接走人就完事了,何必整的这么麻烦,现在很多企业也是很艰难,大厂也都在裁员。至于你说企业在白嫖你的代码这个观点真不能认同。
    ==
    不写注释,函数 /变量名 abcd ,基本就没人能看懂了
    ==
    打工人何必为难打工人了?
    下一个接手的打工人就要变成 007 了。

    老板会说,上一个打工人一天能干完的,怎么现在要变成 2 天了。不行不行,搞成 007 吧,之前一天能搞定的,不能因为代码更乱了,就变成 2 天。 所以老板不会是受害者,最惨的是下一个接手的。

    还有,如果真想把代码搞乱,那不是很简单的一件事嘛? 多搞几个循环,全局变量多写一些,变量名随便乱写。方法多得是啊,但是不建议。
    ==
    打工人何苦为难打工人,你觉得公司坑,就在脉脉之类的论坛上多吐槽吐槽呗。
    你以为你在合法的情况下恶心了公司,其实老板丝毫不在意(毕竟你没有真正的加密、混淆)
    ==
    。。你这想损公司。。其实损不到。。苦逼的是新入职的小哥哥。
    ==
    你以为为难的是公司和老板。其实只是恶心了另外一个和你犯不着调的人。他可能和你一样,忙于工作而且要应付各种来自房贷租金的压力,打工当牛马还因为这出不得 007 。伤害你的不是他,为何你要把伤害转嫁给他。和坐电梯里面把每一层楼都按了用来恶心人的乐色人又有什么差别呢。
    1. 屎山代码只要能用就有人能够用上。你这样做只会浪费你的时间而且报复错对象。
    2.如果你的报复对象是公司和老板,麻烦走各种举报途径或者当面对质。可我知道大概率你也不敢,只能欺负另外一个和你一样手无寸铁的人,而且是一个比你更软弱更手无寸铁的人,向更弱者。
    恕我直言,你的做法很不明智,并且很 low 。
    ==
    正常发挥就好
    ==
    真的没必要
    ==
    作为一个 programmer ,保证自己的代码,在给定时间内尽量做到最好,这难道不是职业道德吗?
    公司坑你可以在论坛上吐槽、可以离职啊,这不是你摆烂的理由。
    ==
    有这时间不如好好去找找工作。有什么怨念就去面谈,不满就尽早走,公司又没捆着你拉磨。
    就想着背地使坏,此念一出,以后还会有人敢给你推荐工作?

    话说,竟然还有人真帮他还出谋划策!
    ==
    阿 Q 就是这样,不敢反抗真正的毒瘤,反而对迫害另一个贫苦阶层沾沾自喜
    ==
    快进到 op 写下一个帖子:
    「入职新公司,前任留下来的无文档屎山难以下手,我该不该提桶跑路?」
    ==
    抽象,封装,过度设计
    只要套的足够深,隔阵子自己都很难接手的,而且也不会被认为“恶意”
    ==
    1. 变量名,必须几种风格轮流着用,或者随心所欲,或者指鹿为马
    2. 必须没有代码风格,怎么乱怎么来
    3. 必须没有注释,必要时添加混乱注释
    4.必须一行写到底,最好一个文件,上万行
    5.必须没有文档,有也要删除
    ==
    现在的年轻人都怎么啦, 现在的社会都怎么啦, 都变得这么自私了。

    这种事情做了一次, 就会有下一次,下一次 … , 人就是这样把自己毁掉的。

    在其位谋其职, 本职工作做好, 实在做不下去, 就自己去干, 以后灵活就业会变得普遍, 与其这样自毁前程不如早做打算。

    多动一动, 看看外面的世界,人的眼界小了, 心胸也会变小。
    ==
    我建议还是通过法律手段来维护自己的权益(比如要回全额工资,我不确定上海只发基本工资是否合法),但代码尽量不要为难下一位同学,毕竟打工人真的都挺难的
    ==
    “通过增加高级技术让初级 python 无法接手。”,方向搞错了兄弟!

    高级开发人员写的代码绝对是可以让初级开发搞得懂,读起来还赏心悦目理所当然的,特别是 python 。

    你应该反过来,用初级工程师的思维把代码重写一遍,多用些全局变量,多封装些奇怪的方法,方法里搞各种修改全局变量。
    `
    https://coderlmn.github.io/frontEndCourse/unmaintainable.html

  7. 被通知一个月后离职,我改了重要项目里的代码注释
    https://www.infoq.cn/article/8tI1mwGNGUAAxDDvjLiP
    `
    假如你已经对某个开发人员下发解雇通知,你还会让他深度参与重要项目甚至把项目做完再走吗?放在今天,这个答案往往是显而易见的:不会。但如果是几十年前,那就未必了。

    story1:来自程序员的“报复”

    于是乎,二货跟管理层之间爆发了激烈冲突,最终他被解雇、上头还勒令他用一个月时间把项目做完。
    一般人在这种状况下肯定要在项目里埋雷,但二货同学的报复方法却是另辟蹊径。你觉得 C 语言不好理解?那是还没跟汇编语言比较。要想理解汇编代码,良好的注释绝对必不可少。
    所以二货更改了代码中的所有注释。乍看上去,这些注释还挺像那么回事,但实际内容跟代码功能已经没有任何关系了。

    story2:别瞎冒险

    一名叫 Dave K 的网友对此深以为然,他认为,只要决定解雇任何重要人物,就要马上撤销这个人的访问权限,最好能让其马上离开。这相当于是尽职工作,对劳资双方都是保护。

    Dave K 举例他曾面临过的类似状况——但被解雇的不是他,而是其顶头上司。人力通知说公司已经确定要被收购,新的母公司认为没必要保留两位 IT 主管。于是他当场就禁用了领导的账户、更改了所有共享密码(管理员账户密码),确保上司再也没法访问任何系统。“听起来挺残忍的,但这就是职业性。”——不管你多信任对方,只要确定离职了、这些权限就必须收回。

    的确,另一角度来看,这确实未尝不是对离职者的保护。网友 yetanotheraoc 表示,“如果有人在我们被解雇后不久破坏了系统,那已经交出所有权限的我们至少不会成为被怀疑的对象、自然也不会成为无辜的替罪羊。”

    story3:摸鱼度过最后的在职时光

    从裁员方的立场,别瞎冒险、当断则断是要义。而从离职者的角度,何尝不是如此。但若“被迫”必须得多待一段时间,心安理得地“摸鱼”未尝不是一个解决方案。
    `

  8. 网络安全的三大支柱和攻击向量
    https://www.anquanke.com/post/id/280003
    `
    BeyondTrust公司(连续4年Gartner特权访问管理象限之领导者)的首席技术官和首席信息安全官Morey Haber(莫雷·哈伯),与人合著,一口气写了三本书:

    《身份攻击向量》:从身份角度出发,考察攻击向量,设计IAM(身份与访问管理)方案。

    《特权攻击向量》:从权限角度出发,考察攻击向量,设计PAM(特权访问管理)方案。

    《资产攻击向量》:从资产角度出发,考察攻击向量,设计漏洞管理方案。

    有趣的是,作者认为:这三本书正好构建了网络安全的三大支柱:1)身份;2)权限;3)资产。而只有基于稳固的三角架结构,才能构建稳健的安全基础。

    最值得提醒的是:三大支柱的集成/整合至关重要。一个好的安全解决方案一定要有利于三大支柱的集成。反之,如果一个安全方案没有跨这三个支柱来运行,也没有促进三大支柱的互操作性和数据集成,那么它就是一个孤岛解决方案。

    对于如此系统阐述其安全框架和具体方案的系列书籍,笔者自然不愿错过。在纵览近千页的英文版后,希望将其推荐给大家。

    目前,《身份攻击向量》中文版已经于2022年8月面市,在此感谢译者赠书!据悉,另外两本也在翻译过程之中。

    本文试图以世界顶级IAM和PAM专家的视角,反映身份和权限的攻击向量和防御之道。

    看见是王道!孤岛很糟糕。你是在创造“看见”,还是在创造“孤岛”?你能同时看见漏洞、身份、权限吗?

    关键词:IAM(身份和访问管理);PAM(特权访问管理);
    ==

    1.网络安全的三大支柱

    2.横向移动的攻击向量

    3.网络杀伤链中的身份攻击向量

    4.从传统4A到现代5A

    1)IAM(身份访问管理)的5个A

    2)为何少了账户(Account)?

    3)为何多了管理(Administration)?

    4)为何多了分析(Analytics)?

    5.从IAM(身份访问管理)到PAM(特权访问管理)

    6.洞察和见解
    `

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注