慎独
慎独
文章目录
  1. 0x01 前言
  2. 0x02 正文
  3. 0x03 总结

现代化安全产品

0x01 前言

本来是想取名为《安全架构师需要什么样的安全产品》,不过想想我又怎么能代表安全架构师这个群体呢,思考再三,于是便将其改为了现代化安全产品,以此畅聊一下过往经验中对安全产品的需求。

0x02 正文

image

  1. 具备清晰的边界和专业能力

    一是指解决了什么问题(适用的范围),二是指做到什么程度(壁垒的高低)。 边界外的事情交给其他产品(这样一条产品线不就来了),边界内的做到一定的专业度(技术上有平台适配,场景适配,功能支持,性能等等,服务上有售前售后,采购的机制上等等)。但实际上很多安全产品并不能搞清楚边界,要么是缺少功能,要么画蛇添足。例如某安的KMS,内置了一个简陋的PKI,这么说并不能体现出什么,一般也没有人使用,但往往又会作为宣传的一部分,实则是食之无味弃之可惜。再以微软家的信息隔离举例,实现的IB以Exchange为主,作用在Sharepoint、Onedirver和Teams上。但策略生效时间未知,基本半小时以上。界面上又只能增加,而删除却要通过命令行。sharepoint上可以使用IB,策略生效又变成了1小时以上,但同时又可以增加External Shareing,意味着为隔离打通了一个新的通道。再以Defender举例,边界划分虽然十分明确,Defender for IOT, Defnder For Endpoint等等,但又存在平台支持不全,进程假死,不具备调试日志这些问题。另一方面从场景化来讲,不仅要支持场景化,还要把场景化抽象出通用能力。例如能做进程提升的检测,反弹shell的检测,也要做由此做到支持多种数据源输入,通用的检测引擎,以及事件关联和告警分析等功能。

  2. 具备系统基础能力

    作为一个产品,自身是必须要具备一定的系统基础能力。不确定是否有更合适的词语来描述这一块,想表达的是作为一个系统需要满足的可用性,可靠性,安全性等。例如Logging & Monitoring,TLS,HA & DR,SSO集成,Backup&Recovery 等。简单来说作为一个安全产品,不能再允许“因为我在内网,所以我可以用http而非https的事情”。某安的HSM丢日志,某软的EDR没有调试日志。这个就不一一举例了,类似产品还是蛮多的。有的不支持高可用,有的不支持TLS。而且一旦要求支持,可能就要所谓的“定制化开发”,价格不菲。除此之外安全类的产品一定要保证自身的安全性。例如Splunk支持脱敏查询,但并不支持数据的加密存储,虽然做为SIEM并不会存储大量的数据,但针对index数据无法做到加密存储。类似的例子还很多,比如Cyberark支持证书认证,但是不对证书的CA进行校验。

  3. 简单易用并提供专家模式

    我清楚的记得最初做安全研发的时候,组长告诉我就把功能做成傻瓜化的,点一个按钮,就能够帮助用户完成所有的步骤。用户就可以拿到最终的结果。当然也可能是因为当时的目标用户并不具备一定的技术背景。不过现在看来,让产品简单易用和傻瓜化依旧是一个很好的卖点,如果用户点击3次按钮能够完成的事情,用户肯定不乐意去点击10次。除了产品直接用户的简单易用,还要降低运维的部署维护成本,例如提供自动化程序化(IAC)的方式去部署,或者支持云上的一键部署。例如某x引擎的标品在部署时混合了虚机和容器,但是默认使用自建K8S而不支持EKS。聊完了简单易用。谈谈专家模式,为什么要聊专家模式,微软的安全产品在简单易用上可以说是独树一帜,没有复杂的配置界面,大部分只需要简单的几次点击就能满足。但这种简单之下,导致一些定制化的工作就非常困难,变成了需要通过大量的点击。而不是通过使用yaml类似语法或者DSL去配置实现。

  4. 具备一定的扩展性

    首先通过提供API接口或行业标准协议让数据在系统间流动起来。例如Vault使用pkcs12协议进行hsm的集成,workday使用scim协议和sailpoint集成,使用saml协议和AAD集成,使用acme协议管理证书,使用kmip协议管理密钥等等。其次提供插件机制让产品实现场景化定制,例如vault使用自定义插件支持国密算法。最后支持系统间的整合,例如企业内往往会有各种运维平台,产品在系统层面应当能够支持对接。例如日志去跟Splunk对接,监控去跟zabbix之列对接,权限管理和AAD,Sailpoint之列的对接等。

  5. 支持职责分离(SOD)

    大部分的产品都是超级管理员可以做一切,调整日志,赋予权限等等。实际上超管只需要能够管理用户并及授权即可,具体到每个role的职责由具体用户实现。例如审计员具有全局只读,运营能够进行配置管理等。在职责分离这一块上微软的非常好。但却又有点过犹不及。往往导致申请了目标role之后,还需要为其使用的相关功能申请细项的role。

  6. 现代化界面

    现代化界面往往是最容易想到的一点,但什么是现代化的界面需要UI设计师来定义了。我知道的是以IBM的IGA产品举例,还在使用jspx做上世纪的表单风格。但cyberark在切换了html5加载时间高达1分钟以上,性能优化是非常必要的。

0x03 总结

我并不是做咨询的,也不是做产品的(虽然我设计过一些简单的安全产品)。我入行以来,切实的做过自研,写过小工具,折腾过开源产品,使用过自研产品,也使用过大量的商用产品,商用的基本都是各领域的top存在,这多得益于稍显夸张的安全预算。我关注Gartner,但更关注实际的落地情况,尤以架构的角度去思考。例如在终端安全治理总结中,是去综合考虑IT和安全的配合,安全控制对员工的影响以及Exception通道,规范建立等。而非去选所谓的“top”产品,更多的是选择合适的方案和适合的产品

想想现在经常能看到各种7天快速入门的“黑客”教程,和很多“月入过万程序员”的培训如出一辙。大多数都是在教一些基本工具的使用,而我认为工具的使用应该是默认的一种能力,到头来教培盆满钵盈走了,外行看看热闹散了,行业和真正的从业者承担了因果。

最近的收获还是蛮多的,就多总结一些文章吧。

支持一下
三思而后行