被怼后的思考:做安全为了什么?
共 17737字,需浏览 36分钟
·
2022-02-20 09:32
引言
一篇对目前工作的思考与总结,本人以数据泄露为主线,从黑、白、灰三个场景对数据安全、DevSecOps等相关知识进行了学习与了解。
下面将思考与实践的过程分享给大家,文中若有错误观点,欢迎大家及时指出或一起交流。
一、为什么写这篇文章
免得大家说是标题党,我先解释为什么写这篇文章,咳咳!
又是一个跳槽季,身边有朋友就来问:"我这儿有个坑,要不要考虑一下,待遇肯定比你现在好!怎么样?出来约个饭啊!"
饭,约完了。
人,开始纠结了。
福利确实诱人,也挺心动,于是开始胡思乱想!
接着就是,思考自己现在做的事情,真的能学到东西吗?梳理了下自己在做的东西,很多很杂,列举下:
SRC运营 # 活动策划、三方对接、漏洞审核、推动整改闭环等
WAF运营 # 运营+迁移,由自研迁移至商用
安全培训 # 意识培训、技术培训
公司活动 # 网络安全周策划组织,推广意识及安全部门品牌
攻防演练 # 负责从筹备方案到演练复盘再到付款的全部工作
需求评审 # 目前已从人工改成自动化评审
安全评估 # Web 、主机 、小程序 、APP
设备运营 # Waf 、终端安全 、入侵检测 、 各种监控等
应急响应
隐私合规、等保、27001
...
思考完,感觉好像学不到新的东西,像是在浪费时间,于是跟之前同事聊(抱)天(怨),分享下当时朋友问我的几个问题(反正我受益匪浅):
1、没技术含量、好做、能赚钱就行,多出来时间自己学习。
2、为啥做waf?优缺点是啥?不做行不行?有没有可替代的东西?
3、SRC 为了啥?只是接受漏洞、修漏洞?
4、现在工作为了什么?渗个透,评个审,应个急?
5、你为什么这么做?你可以怎么做?
6、你可以跟领导提问题,但是你得拿出解决方案,要不然就是抱怨。
这些问题可以说是没给我思考时间一起甩出来的,当时懵逼了,但有个模模糊糊的理解:“现在是在打地基,地基不稳怎么往上走。”
当时很多问题是真不知道怎么回答,只能说:“大佬说的对,有道理,小弟确实没考虑到这么多。”
大哥说的肯定是对的,剩下的就需要自己去悟了,所以就有了这篇文章,下面一起聊一聊我悟出来的一些理解,有不对的地方欢迎大佬们及时指出。
二、思考·做这些为了什么
思考这个问题的时候,我搜索了“网络安全法”,简述如下:
网络安全法·简述
《中华人民共和国网络安全法》是为保障网络安全,维护网络空间主权和国家安全、社会公共利益,保护公民、法人和其他组织的合法权益,促进经济社会信息化健康发展而制定的法律。
还搜了“网络安全”,简述如下:
网络安全·简述
网络安全(Cyber Security)是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。
随后,我根据这两个概念思考了我们(从业人员)- 网络安全 - 网络安全法三者之间的关系,如图:
"攻"与"防"的目的
防守的目的
1、图中可以看出,我们最终目的是:
保护公司、员工、用户的合法权益。
维护国家、社会、公民、法人、组织的合法权益。
2、实现方法:
保护网络系统的硬件、软件及其系统中的数据。
即保护其保密性、完整性、可用性、可控性、不可抵赖性!
3、影响因素:
自然灾害、意外事故
人的因素,如使用不当、安全意识薄弱
计算机犯罪,如黑客攻击、利用计算机进行诈骗、传播不良信息
内外部泄密行为
信息丢失,如地域、线路因素
信息窃取,监听等
攻击的目的
1、同时,想一下我们对手“黑客”攻击的目的:
大致为三类:
- 以满足个人欲望为目的 # 我就打着玩,看看能不能入侵成功
场景:小学生为了炫技或满足好奇心。
危害:危害较小,不会影响业务正常使用,但隐患会一直存在。
- 以利用硬件资源为目的 # 挖矿、做肉鸡等
场景:占用资源挖矿、以入侵的服务器做跳板机对其他公司发起攻击。
危害:服务器资源被占用影响正常运转使用、公司向外发起攻击危害要看被攻击的对象这里不多说。
- 以非法盈利为目的 # 破坏机密性、完整性、可用性
场景:黑产获取数据后对外出售、网页挂菠菜页面、竞对公司偷取数据、拒绝服务攻击。
危害:小到影响用户&公司、大到影响社会&国家。
2、实现方法:
物理攻击
网络攻击
社会工程学攻击
3、影响因素:
物理安全
系统安全
网络安全
应用安全
管理安全
结合影响因素,很容易就可以明白为什么有关部门会要求一些公司的重要系统每年都要做等保认证。
这时,我还发现一个有意思的事情,那就是思考完防守&攻击目的后,发现两者最最核心的点是"数据",于是继续翻阅《中华人民共和国网络安全法》(ps:这个时候只有网络安全法,数据安全法还未发布)看到如下条款:
第三章-网络运行安全·第二十一条
第二十一条 国家实行网络安全等级保护制度。网络运营者应当按照网络安全等级保护制度的要求,履行下列安全保护义务,保障网络免受干扰、破坏或者未经授权的访问,防止网络数据泄露或者被窃取、篡改:
(一)制定内部安全管理制度和操作规程,确定网络安全负责人,落实网络安全保护责任;
(二)采取防范计算机病毒和网络攻击、网络侵入等危害网络安全行为的技术措施;
(三)采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月;
(四)采取数据分类、重要数据备份和加密等措施;
(五)法律、行政法规规定的其他义务。
划重点:防止网络数据泄露或者被窃取、篡改。
第三章-网络运行安全·第二十二条
第二十二条 网络产品、服务应当符合相关国家标准的强制性要求。网络产品、服务的提供者不得设置恶意程序;发现其网络产品、服务存在安全缺陷、漏洞等风险时,应当立即采取补救措施,按照规定及时告知用户并向有关主管部门报告。
网络产品、服务的提供者应当为其产品、服务持续提供安全维护;在规定或者当事人约定的期限内,不得终止提供安全维护。
网络产品、服务具有收集用户信息功能的,其提供者应当向用户明示并取得同意;涉及用户个人信息的,还应当遵守本法和有关法律、行政法规关于个人信息保护的规定。
划重点:网络产品、服务具有收集用户信息功能的,其提供者应当向用户明示并取得同意;涉及用户个人信息的,还应当遵守本法和有关法律、行政法规关于个人信息保护的规定。
第四章-网络信息安全
第四十条 网络运营者应当对其收集的用户信息严格保密,并建立健全用户信息保护制度。
第四十一条 网络运营者收集、使用个人信息,应当遵循合法、正当、必要的原则,公开收集、使用规则,明示收集、使用信息的目的、方式和范围,并经被收集者同意。
网络运营者不得收集与其提供的服务无关的个人信息,不得违反法律、行政法规的规定和双方的约定收集、使用个人信息,并应当依照法律、行政法规的规定和与用户的约定,处理其保存的个人信息。
第四十二条 网络运营者不得泄露、篡改、毁损其收集的个人信息;未经被收集者同意,不得向他人提供个人信息。但是,经过处理无法识别特定个人且不能复原的除外。
网络运营者应当采取技术措施和其他必要措施,确保其收集的个人信息安全,防止信息泄露、毁损、丢失。在发生或者可能发生个人信息泄露、毁损、丢失的情况时,应当立即采取补救措施,按照规定及时告知用户并向有关主管部门报告。
第四十三条 个人发现网络运营者违反法律、行政法规的规定或者双方的约定收集、使用其个人信息的,有权要求网络运营者删除其个人信息;发现网络运营者收集、存储的其个人信息有错误的,有权要求网络运营者予以更正。网络运营者应当采取措施予以删除或者更正。
第四十四条 任何个人和组织不得窃取或者以其他非法方式获取个人信息,不得非法出售或者非法向他人提供个人信息。
第四十五条 依法负有网络安全监督管理职责的部门及其工作人员,必须对在履行职责中知悉的个人信息、隐私和商业秘密严格保密,不得泄露、出售或者非法向他人提供。
划重点:用户信息、个人信息
第六章-法律责任
第五十九条 网络运营者不履行本法第二十一条、第二十五条规定的网络安全保护义务的,由有关主管部门责令改正,给予警告;拒不改正或者导致危害网络安全等后果的,处一万元以上十万元以下罚款,对直接负责的主管人员处五千元以上五万元以下罚款。
关键信息基础设施的运营者不履行本法第三十三条、第三十四条、第三十六条、第三十八条规定的网络安全保护义务的,由有关主管部门责令改正,给予警告;拒不改正或者导致危害网络安全等后果的,处十万元以上一百万元以下罚款,对直接负责的主管人员处一万元以上十万元以下罚款。
第六十四条 网络运营者、网络产品或者服务的提供者违反本法第二十二条第三款、第四十一条至第四十三条规定,侵害个人信息依法得到保护的权利的,由有关主管部门责令改正,可以根据情节单处或者并处警告、没收违法所得、处违法所得一倍以上十倍以下罚款,没有违法所得的,处一百万元以下罚款,对直接负责的主管人员和其他直接责任人员处一万元以上十万元以下罚款;情节严重的,并可以责令暂停相关业务、停业整顿、关闭网站、吊销相关业务许可证或者吊销营业执照。
违反本法第四十四条规定,窃取或者以其他非法方式获取、非法出售或者非法向他人提供个人信息,尚不构成犯罪的,由公安机关没收违法所得,并处违法所得一倍以上十倍以下罚款,没有违法所得的,处一百万元以下罚款。
划重点:第二十一条、第四十一条、第四十三条、第四十四条
除此之外,还有很多相关法律条款这里不一一列举,不过这时可以得出结论安全投入的绝大部分是为了保护"数据"。
三、实践·我可以怎么做
思考完“这么做为了什么”,也就不再迷茫纠结,有了新方向剩下的就是踏实干!实践!
01 数据安全·思考
数据安全·简述
国际标准化组织(ISO)对计算机系统安全的定义是:为数据处理系统建立和采用的技术和管理的安全保护,保护计算机硬件、软件和数据不因偶然和恶意的原因遭到破坏、更改和泄露。由此计算机网络的安全可以理解为:通过采用各种技术和管理措施,使网络系统正常运行,从而确保网络数据的可用性、完整性和保密性。所以,建立网络安全保护措施的目的是确保经过网络传输和交换的数据不会发生增加、修改、丢失和泄露等。
防守的目的
1、目的
见上文关系图。
2、实现方法:
保护数据机密性、完整性、可用性-->保护网络系统的硬件、软件及其系统中的数据。
3、影响因素:
破坏,自然灾害、硬盘驱动、人的行为(误操作)、内鬼(社会工程学攻击)、黑客(网络攻击)
更改,人的行为(误操作)、内鬼(社会工程学攻击)、黑客(网络攻击)
泄露,人的行为(误操作、安全意识薄弱)、内鬼(社会工程学攻击)、黑客(网络攻击)
攻击的目的
见上文"攻"与"防"的目的中攻击的目的。
最终,结合攻击目的与影响因素,我发现除去自然因素、硬件本身问题外,关注度最高、危害最大、攻击收益最高的影响数据安全的因素是"泄露"。
02 数据安全·泄露
那明确核心之后,我梳理了一些数据泄露所涉及的一些场景,如下图:
注解
黑,黑客通过网络攻击入侵导致的数据泄露;
白,由于内部人员安全意识薄弱导致的数据泄露;
灰,内鬼、黑产通过爬虫等比较难发现、难控制的手段获取数据导致的数据泄露;
接着,我根据三种场景的成本、价值排序开始了本次修行。
长路漫漫其修远兮,吾将上下而求索。 ——屈原 |
白->黑->灰
2.1 白
白,场景如上文图中所示
简述:
此类风险主要是员工意识薄弱导致,搜索发现发生较多还是Github泄露(当然也有网盘泄露敏感信息等)。
实施措施:
制度->安全意识培训->监控->DLP->其他
成本:
相较于黑&灰两种场景,实施成本较低。
价值:
提高员工意识、解决由员工安全意识薄弱导致信息泄露这一场景。
其实在此场景下最多的还是员工将数据上传至云平台(网盘、Github等)导致的信息泄露,以Github导致信息泄露的场景为例开始思考如何做相关安全建设:
1、制度
"无规矩不成方圆",在公司层面制定相关制度如禁止将代码传至Github等其他开放平台等,这块主要由合规的同学来做不做太多描述。
2、安全意识培训
列举由于员工安全意识薄弱导致的泄露数据场景、风险、案例,避免此类问题发生。
参考链接:https://www.freebuf.com/articles/es/231310.html
3、监控
针对Github信息泄露场景,其实很多公司都会遇到因此互联网上已经有很多开源的平台供大家使用,具体使用方法及搭建过程,可点击下面链接了解:
Github监控平台搭建及使用
老年人,公众号:老年人的杂货铺Github监控平台-Hawkeye
4、DLP
DLP,其实是作为多个场景(黑、白、灰)下数据泄露的重要辅助方法,不管是数据防泄漏,还是推动公司相关数据安全制度落地都有很大的作用。
5、其他
“不能让业务没地方玩,不然没人跟安全玩。”,解决安全问题的同时一般也会对业务或工作效率带来一些影响,以Github信息泄露为例,代码管理平台对与多人协同开发是很重要的。
不允许研发上传公司业务相关代码至Github公开代码放库,那就建议内部搭建平台供大家交流使用。
--------分割线--------
除此之外,安全意识培训也涉及钓鱼邮件相关、Badusb演练相关,通过模拟真实攻击的形式"以攻促防",下面是参考链接:
Gophish 邮件钓鱼平台搭建及使用
老年人,公众号:老年人的杂货铺Gophish 钓鱼了解一下?
Badusb 环境搭建及使用
老年人,公众号:老年人的杂货铺Badusb 攻击实践
白->黑->灰
2.2 黑
黑,场景如上文图中所示
简述:
除钓鱼攻击社工外,主要场景还是利用漏洞的方式入侵系统(咳咳:弱口令yyds!),从而获取重要数据。
实施措施:
安全左移,问题发现越早(在黑客之前发现问题),后期修复代价越小。
成本:
较高,但可以根据实际价值在DevSecOps拆分不同阶段的优先级进行实施。
价值:
在软件设计之初规避风险,降低漏洞修复成本,减少黑客利用漏洞入侵系统这一场景。(当然完整的DevSecOps建设,在每个阶段都有各自不同的价值!)
随着开发运营模式的转变,将安全左移,在软件开发生命周期中嵌入安全是一个必然的趋势,于是乎继续下一场修行-DevSecOps!
了解DevOps->DevSecOps的过程
01 概述
DevSecOps 是一场关于 DevOps 概念实践或艺术形式的变革。为了更好理解 DevSecOps,我去了解了DevOps的演变过程。
1.1 DevOps
DevOps 引言
随着业务的增长,项目开始逐渐变得庞大,变成团队,出现分工,出现了产品经理、项目经理等等角色,这些角色间自然存在工作目标上的矛盾。
举个例子,对于运维来说,稳定压倒一切,新的东西越来越少。而对于研发来说,自然希望开发更多的功能。
就像两匹马拉一辆车,如果马头向着的方向不一致,肯定是没法全速前进的。
DevOps 的理念就是希望能打破这种屏障,让研发(Development)和运维(Operations)一体化,让团队从业务需求出发,向着同一个目标前进。
但我理解根本原因还是开发模式的转变,瀑布式开发->敏捷式开发->DevOps。
虽然敏捷开发大幅提升了软件开发的效率和版本更新的速度,但是它的效果仅限于开发环节。研发们发现运维那边,依旧是铁板一块,成为了新的瓶颈。
运维工程师和开发工程师有着完全不同的思维逻辑。运维团队的座右铭,很简单,就是“稳定压倒一切”。运维的核心诉求,就是不出问题。
什么情况下最容易出问题?发生改变的时候最容易出问题。所以说,运维非常排斥“改变”。
于是乎,矛盾就在两者之间集中爆发了。
这个时候,我们的DevOps,隆重登场了。
那DevOps到底是什么?
维基百科这样定义,DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
从目标来看,DevOps就是让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠。
1.2 DevSecOps
DevSecOps 引言
随着开发运维模型的变更,DevOps带来的各种优势和技术趋势甚至成为了安全实施的难点,所以早在2012年Gartner就提出了DevSecOps,并通过这么多年的发展,逐渐成熟。
那什么是DevSecOps呢?
DevSecOps是Gartner 2012年在一份报告中提出的概念,是应用程序安全(AppSec)领域的一个相对较新的术语。它通过在DevOps活动中扩大开发和操作团队之间的紧密协作,将安全团队也包括进来,从而在软件开发生命周期(SDLC)的早期引入安全。
DevSecOps意味着安全是每个人的共同责任,每个参与SDLC的人都在将安全性构建到DevOps CI/CD的工作中发挥作用。
DevSecOps的落地有几个关键点:
1、工具链建设
2、自动化测试
3、将安全嵌入CI/CD的工作中
结合了解的这些内容,我开始了对这方面知识的学习与实践。
02 Gartner's Model
2.1 Plan (需求&设计阶段)
安全在软件设计之初介入也是非常有必要的,可低成本规避风险,避免上线后造成更大损失。
解决技术安全债务
自从现代计算出现以来,安全防护便与软件开发产生了巨大的脱节。在过去五年间,所有已发布的漏洞中有 76% 来自应用。鉴于攻击者的重点产生了这种根本性的转变,到了将安全防护嵌入开发的时候了。为实现这一点,最好的方式是实施安全防护左移策略。
因此,需要安全人员评估以往需求中的坑点,针对存量问题及新增问题给出解决方案;
衡量指标
确认Devsec的衡量标准,彼得德鲁克曾经说过一句话:你如果无法度量它,就无法管理它("It you can’t measure it, you can’t manage it"),因此DevSecOps推进需要良好的度量方式,来用于评估研发团队的成熟度。
威胁建模
简单来说,威胁建模就是通过结构化的方法,系统地识别、评估产品的安全风险和威胁,并针对这些风险、威胁制定消减措施的一个过程。
例如,我们可以根据公司场景漏洞结合业务场景及功能模块输出相对应的威胁建模并对相关业务研发人员进行培训、考核,让研发或产品经理在应用设计之初就可以考虑到当前功能、当前场景可能存在哪些风险从而尽早的去规避风险。
安全工具&流程培训
DevSecOps最终还是要让安全服务自动化/自助化,因此针对工具、流程等相关安全培训是必不可少的。
工具链
Confluence Wiki、知识库管理、安全培训、安全编码规范、安全测试规范、隐私合规规范、供应商评估、业务需求评审、轻量级威胁建模、安全需求等等一大堆。
2.2 Create(编码&开发阶段)
程序开发阶段,对于代码及程序组件的扫描也是必不可少的。
IDE安全插件
各类安全漏洞扫描、开源组件版本检查甚至是代码质量代码风格等的工具可以让研发人员在编码时就发现和消除一些潜在的安全风险。在开发环节实时对代码安全性进行监控,发现问题及时整改。
Findbugs下载地址:
https://find-sec-bugs.github.io/
Docker 容器安全扫描
随着云和虚拟技术发展,Docker容器的使用越来越流行和方便。有很多企业已经把基础架构由传统实体机转移到了虚拟机化架构,基于公有云、私有云以及容器云构建在线服务。
引用:
07,公众号:老年人的杂货铺Docker容器安全扫描-Grype
开源组件检测(OSS\SCA)
使用"存在已知漏洞的组件"一直是OWASP TOP 10 的漏洞之一。
Fastjson、Shrio 、Log4j2等企业常用开源组件出现新漏洞的事件时有发生,为了快速发现并定位问题,我们非常有必要在项目上线前做好三方依赖的检测工作。
引用:
07,公众号:老年人的杂货铺Service Component Architecture(SCA)漏洞检测-Dependency-Check
2.3 Verify(验证&测试阶段)
DevSecOps是将安全融入开发&测试&运维等各个环节,因此自动化扫描也是必不可少。
SAST
静态应用程序安全测试(StaticApplication Security Testing),是指针对源代码进行静态分析从中找到安全漏洞的测试方式,有些工具也会依赖于编译过程甚至是二进制文件,通过一些抽象语法树、控制流分析及污点追踪等技术手段来提升检测覆盖度和准确度。
Sonarqube下载地址:
https://www.sonarqube.org/downloads/
其他工具:CodeQL、ShiftLeft inspect
DAST
动态应用程序安全测试(DynamicApplication Security Testing),是指在测试或运行阶段分析应用程序的动态运行状态。在不需要系统源码的情况下,通过模拟黑客行为构造特定的输入给到应用程序,分析应用程序的行为和反应,从而确定该应用是否存在某些类型的安全漏洞。
工具列表:Goby/Xray/Awvs/Nessus
IAST
IAST(InteractiveApplication Security Testing,交互式应用安全测试),是指在程序运行时,通过与应用交互的方式,收集程序中运行信息进行安全测试的手段。
IAST 大致分为三类:
1、代理模式
2、active插桩
3、passive插桩
具体概念就不详细说了,大家可以自行了解,实现原理见下文。
引用:
07,公众号:老年人的杂货铺初识 Java Agent - 实现简单AOP操作
混沌工程
混沌工程,是一种提高技术架构弹性能力的复杂技术手段。混沌工程旨在将故障扼杀在襁褓之中,也就是在故障造成中断之前将它们识别出来。通过主动制造故障,测试系统在各种压力下的行为,识别并修复故障问题,避免造成严重后果。
相关文章:
https://zhuanlan.zhihu.com/p/90294032
工具地址:
https://github.com/Netflix/chaosmonkey
Fuzzing
模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。
相关文章:
https://blog.csdn.net/whatday/article/details/85245441
2.4 Preproduction(预发布阶段)
在预发布阶段我们还需对系统&程序进行进一步的加固或配置操作加强安全性。
隐私合规
随着互联网的发展越来越多的APP出现,随之而来的就是用户比较头疼的信息泄露&个人隐私问题。
由于在个人信息处理、共享、转让、公开披露过程中,管理流程和技术手段不规范造成个人信息泄露的安全事件层出不穷,因此隐私合规问题也是需要企业关注的一个重点问题。
引用:
07,公众号:老年人的杂货铺App隐私合规浅谈
安全加固
安全加固服务是指是根据专业安全评估结果,制定相应的系统加固方案,针对不同目标系统,通过打补丁、修改安全配置、增加安全机制等方法,合理进行安全性加强。其主要目的是:
- 消除与降低安全隐患
- 周期性的评估和加固工作相结合,尽可能避免安全风险的发生
安全加固所涉及的内容比较多,如:
PC端,Windows、linux操作系统的加固(基线检查)、应用等;
移动端,Android安全加固(加壳、SDK加固、DEX文件防篡改)等、IOS高级混淆(源码加密)等;
引用:
07,公众号:老年人的杂货铺记一次 Android App 脱壳
2.5 Release(发布阶段)
软件签名
软件签名,目的是确保App的安装包来自于原创的作者,且App没有被篡改,具体原理、工具可以参考下面这些资料(不是做App的怕误人子弟):
相关资料:
https://www.wosign.com/News/news_2018120601.htm
https://www.iteye.com/blog/xlover-1111560
相关工具:
https://developer.android.google.cn/studio/command-line/apksigner
2.6 Prevent&Configure(预防&配置阶段)
完善安全配置,在已有安全相关防护设备添加安全策略&配置等。
签名验证
签名验证,从名字上可以看出重点在于验证,相关资料见上文软件签名部分。
完整性检查
SIV是system integrity verifiers的缩写,即系统完整性检测,主要用于监视系统文件或者Windows 注册表等重要信息是否被修改,以堵上攻击者日后来访的后门。SIV更多的是以工具软件的形式出现,比如“Tripwire”,它可以检测到重要系统组件的变换情况,但并不产生实时的报警信息。
相关资料:
https://www.e-learn.cn/topic/3996714
纵深防御
纵深防御,英文为Defence-in-Depth,简称DiD,原本是军事领域术语,在战争学概念中,指防御地区或防御部署的纵向深度,分为战役纵深防御和战术纵深防御。在网络安全领域,理解为设置多层重叠的安全防护系统而构成多道防线,使得即使某一防线失效也能被其他防线弥补或纠正,即通过增加系统的防御屏障或将各层之间的漏洞错开的方式防范差错发生的。
字面意思还是比较容易理解的,但实际落地是需要大量人力、财力、物力,还是要在成本&收益中寻求平衡点。
2.7 Detect(检测阶段)
在前期做了这么多工作,我们如何检验呢?假如我们有漏掉的部分怎么办?这时候就需要对资产进行检测。
UEBA
UEBA 是用户和实体行为分析技术(user and entity behavior analytics ),UEBA更多的是关注人异常行为,行为主体通常是企业内部的员工。UEBA技术基于海量数据对内部用户的异常行为或内部威胁进行预测,直接以“人”的视角给出判定,抓住“坏人”、主动出击,在数据泄漏之前进行阻止,并为安全分析人员提供可靠的依据。我们可以通俗的理解为,UEBA是通过技术手段侦察到,“谁”在什么时间内做了什么“坏事”,或者“谁”即将准备“做坏事”。
其实UEBA要解决的问题与本文中数据泄露三个场景中的“灰”相似,传统的安全防护大多是基于漏洞\ip\外部异常行为去进行研判、响应、处置;但我认为最重要最难解决的安全问题还是在“人”也就是合法用户这一层,思考下:“如果你传统安全做的很好,没有漏洞,但是竟对公司冒充员工入职你公司拿数据是不是成本最低,最高效?而且拿到的数据还都是格式化处理好的。”
相关资料:
https://zhuanlan.zhihu.com/p/302940770
https://baijiahao.baidu.com/s?id=1674179150246290338&wfr=spider&for=pc
https://baijiahao.baidu.com/s?id=1686219391295853104&wfr=spider&for=pc
Github监控
引用:Github监控平台搭建及使用
老年人,公众号:老年人的杂货铺Github监控平台-Hawkeye
终端安全
引用:Falco终端监控搭建及使用
老年人,公众号:老年人的杂货铺探索Falco:云原生运行时安全检测
SRC
安全应急响应中心(Security Response Center),要看怎么去玩,玩好的话会有出乎意料的惊喜!总之很重要,这里就不做过多解释。
安全扫描
除测试阶段外也需要在上线后进行安全扫描,相关工具:Goby/Xray/Awvs/Nessus
暴露面检查
众所周知,信息收集对于渗透测试前期来说是非常重要的,攻击者掌握了目标网站或目标主机足够多的信息之后,攻击者才能更好地对其进行漏洞检测。
作为防守方,我们自然比攻击者了解的信息多得多。因此,我们需要构建内部的资产管理系统,实时检测暴露在外网的资产并对其进行风险评估。
不管是攻击还是防守,暴露面检测是重中之重的一项工作。
流量检测
几乎各个安全厂商都有基于流量检测的安全产品,不多说了。
开源项目:https://suricata.io/
攻防演练&渗透测试
网络安全,讲一百遍不如打一遍!
2.8 Respond(响应阶段)
俗话说:没有绝对安全的系统,只有不努力的黑客;所以,我们要提前做好挨揍的准备!
应急响应
引用:
07,公众号:老年人的杂货铺应急响应浅谈
WAF
比较常见,在Rasp部分简单介绍。
RASP
引用:
07,公众号:老年人的杂货铺了解Rasp - RASP VS WAF & 简单分析
2.9 Predict(预测阶段)
做安全的都知道,不管多完善多牛皮的安全建设,在0day面前也不堪一击。
所以,我们要有预见未来的能力。
威胁情报
威胁情报,不管是内部安全产品联动还是后期自动化响应都可以提供很大帮助,HW期间也可以通过多家攻击源聚合分析,找出攻击队等等。
行业内有很多平台提供了威胁情报接口,可以自行了解。
根据Gartner对威胁情报的定义,威胁情报是某种基于证据的知识,包括上下文、机制、标示、含义和能够执行的建议,这些知识与资产所面临已有的或酝酿中的威胁或危害相关,可用于资产相关主体对威胁或危害的响应或处理决策提供信息支持。业内大多数所说的威胁情报可以认为是狭义的威胁情报,其主要内容为用于识别和检测威胁的失陷标识,如文件HASH,IP,域名,程序运行路径,注册表项等,以及相关的归属标签。
参考地址:
https://baike.baidu.com/item/%E5%A8%81%E8%83%81%E6%83%85%E6%8A%A5/23311172?fr=aladdin
漏洞预警
漏洞预警也是安全建设中很重要的一环,可以让我们在第一时间接收漏洞信息并结合公司场景进行排查或提前做防御措施。
除了方便安全人员外,实时、准确的漏洞预警也可让领导或其他部门人员感到安心。
实现思路,可以去各大平台进行数据爬取或采用接口对接的方式拉取漏洞信息。(GitHub有很多不错的项目)
2.10 Adapt(优化)
持续优化、迭代,提高工作效率。
优化
规范、方案、规则策略等,不断适配、调整、优化。
靶场,强化团队攻防能力,优化相关防御策略。
自动化编排,等等...
白->黑->灰
2.3 灰
灰,场景如上文图中所示
简述:
除员工意识薄弱、黑客利用漏洞入侵导致数据泄露外,还可能存在:内鬼窃取、员工跳槽、爬虫等导致数据泄露;也就是我所说的灰,区别于黑白之间,它很难识别,因此我理解也是成本最高、最难落地的一部分。
实施措施:
在数据生命周期加入安全防护措施,如采集、传输、存储、处理、交换、销毁等各阶段。
成本:
较高,数据安全不是一个人、一个部门就可以做成或完全落地的,需要各个部门或整个公司配合来完成,因此成本是最高的。
价值:
不管是监管合规层面还是对个人、组织数据保护层面,都是重中之重。(合规价值、业务价值)
数据防泄漏、防篡改、防丢失,我们最终都是朝着"进不来、看不懂、改不了、拿不走、跑不掉"这个方向去努力,实现让数据使用更安全。
那应该怎么做呢?- 于是围绕数据安全开始了我的下一场修行。
为什么要做数据安全
做数据安全除上述数据泄露(风险-案例可百度自查)外,在上述文章中也有提到数据安全在合规&业务层面也都有不同的驱动力。
合规层面
近年来,全球发达经济体包括美国、欧盟、英国等纷纷把数据竞争力上升为国家战略高度。
我国也先后出台《网络安全法》、《数据安全管理办法》、《数据安全法》、《个人信息保护法》、《APP违法违规收集使用个人信息行为认定方法》、《关键信息基础设施安全保护条例》等法律法规,并明确组织在数据安全方面的合规要求。
引用:
07,公众号:老年人的杂货铺App隐私合规浅谈
业务层面
2020年4月,发布的《关于构建更加完善的要素市场化配置体制机制的意见》,中央首次明确数据成为继土地、劳动力、资本和技术之外的第五大生产要素。
数据作为数字经济时代最核心、最具有价值的生产要素,正在加速成为全球经济增长的新动力、新引擎,深刻地改变人类社会的生产和生活方式。
5G联接、人工智能、云计算、区块链、产业互联网、泛在感知等ICT新技术、新模式、新应用无一不是以海量数据为基础,同时又激发数据量呈爆发式增长态势。随着数据量呈指数级增长,数据分析算法和技术迭代更新,数据创新应用和产业优化升级,数据对社会变革的影响更加深远。
因此,数据安全问题,也已成为企业资产安全性、个人隐私安全性、国家和社会安全的核心问题。
怎么做
了解完这些那接下来就该思考数据安全怎么做?又一场修行开始!
阅读了很多资料、文章,看到这样一句话:
数据安全并非单一产品或平台的构建,而是建设一个覆盖数据全生命周期和使用场景的数据安全体系,需要用从决策到技术,从制度到工具,从组织架构到安全技术通盘考虑。
结合我所在公司思考了下确实也是如此,单靠技术手段或者安全一个部门去推动是很难落地的。因此,需要我们建立有效且可落地的数据安全管理体系,其核心实现框架为:
人员组织+策略流程+技术支撑
在人员组织方面,需要从企业或组织内选派合适人员构成一支由决策层(高级管理人员)、管理层(安全部门)、支撑层(业务部门)、监督层(审计部门)构成的负责推动开展数据安全工作的团队。(目前,我司是安全+内审一起推这个事情)
在管理方面,深入调研和解读国家及本行业在数据安全方面的合规要求,建立数据安全管理制度四级文件,最终形成一级方针文件,二级制度规范文件,三级细则指引文件,四级表单、模板、记录文件。(在这一点我理解很多是可以参考27001去实施落地)
在技术方面,需要基于组织人员架构和拟定的制度规范,来选择或实施适合企业的数据安全产品、服务等技术手段。
简单说就是,我们需要自上而下有组织有纪律可落地的去做这件事儿。
--------分割线--------
作为一个螺丝钉,这些组织管理相关理论就不多说了(我们公司是安全&内审一起推),聊一下技术体系落地思路:
资产梳理
不管是网络安全治理还是数据安全治理,我们首先要做到的就是“摸清家底”,要明确我们需要治理那些资产。如同ISO27001安全管理体系一样,第一步是梳理资产。
因此,掌握其中敏感资产的分布、数量、权限及使用情况便成了数据安全治理中的首要任务。
梳理方法:
1)静态梳理(访谈、人工主动扫描探测或登录系统梳理)
2)动态梳理(基于特征库被动扫描,如对敏感信息进行采样,再通过流量监听方式匹配识别敏感数据)
分类分级
数据分类分级是数据安全能力建设中的一个关键部分,是建立统一、准确、完善的数据架构的基础,是实现集中化、专业化、标准化数据管理的基础。
因此,在资产梳理过程中,我们需要结合企业和组织的自身业务特点,依据数据的用途、内容、业务领域对数据资产进行分类(我司是根据用户数据、业务数据、企业数据三部分做的分类)。
分类完毕后根据数据的价值、敏感程度,被泄露后的影响和后果等因素进行分级。
注:分类分级完毕后,应输出对应的依据标准,以便后续审批内部公示等。
数据分类示例
数据分级示例
场景化安全
我们的目的是让数据使用更安全,让坏人"进不来、看不懂、改不了、拿不走、跑不掉"。那么,下一步我们需要以数据分类分级为基础,在不同的场景制定不同的安全要求。
其实可以参考下边这张图:
根据不同级别的数据,在数据生命周期的各阶段设置不同策略,以实现我们的目的,在这里我就不多说了,网上有很多关于各个阶段的实施指南。
可参考国标文档:
《GB/T 37973-2019 信息安全技术 大数据安全管理指南》
《GB/T 37988-2019 信息安全技术 数据安全能力成熟模型》
--------分割线--------
以上三部分是我认知范围内数据安全建设思路,那么还有最重要的一步:如何持续运营?如何管控?
在制定完以上标准、制度或策略后,我们该如何去验收,如何去自动化发现我们遗漏的资产则是持续运营过程中的一大难题,在思考这个问题时,我恰好接触到了API接口安全及相关分类分级技术方案。
因此,我又开始了新的思考:能否通过流量分析的方式,检索出未按照数据分类分级要求整改或曾经遗漏的业务系统,从而提高解决存量及新增问题的效率。
实现思路:
简单写了个演示Demo如下:
四、“总结”·个人感受
不知不觉已经写了这么多字,现在回头看看很感谢当时大哥几句话“怼”醒了我,让我能沉下专心去思考。
三人行必有我师,很庆幸,在迷茫时身边有一群“明灯”,为弟弟指点迷津带我走出“混沌”。
嗯,矫情的话不说了 ,回归正题。
当然除了以上的思考之外,接下来还有很多东西值得学习与思考:
如何更好的融入业务?
业务快速迭代的情况下如何提高效率?
每秒百万级、千万级日志量的情况下如何优化?
被DDOS了怎么办?
真要被攻击了怎么办?
信息真泄露了怎么办?
公司安全预算比较少怎么办?
安全团队人数不多的情况下怎么办?
等等一系列问题都需要继续学习,跟朋友聊天说做安全真难。难在哪里?
要比研发更懂研发,比运维更懂运维,比业务更懂业务,比法务更懂安全相关法律法规...是的,只有这样才能真正去解决或提出可落地最优的解决方案去服务于业务、服务于公司。
以上,是我这段时间一些不成熟的思考和实践,如有不妥的地方欢迎各位随时指出。
最后,祝大家虎年快乐,在新的一年里:逢虎年,走虎运,发虎财,虎气冲天嗷嗷叫,生活幸福哈哈笑!
--------分割线--------
俗话说,“前人栽树后人乘凉”。
很感谢圈内前辈们铺的路,这篇文章中参考了太多大佬写的东西。
文章列表
https://mp.weixin.qq.com/s/g0P313bJnMz99Iimui3NsA
https://mp.weixin.qq.com/s/OMfv9K1DBxFHnA2_flrYtQ
https://mp.weixin.qq.com/s/pEll9Gz8sZ5107TLC3x-uA
https://mp.weixin.qq.com/s/0bV0LoFky3MiKN80LpVBNQ
https://baijiahao.baidu.com/s?id=1641110586024199468&wfr=spider&for=pc
https://www.zhihu.com/question/55874411/answer/608052871
https://www.zhihu.com/question/58702398
https://www.secpulse.com/archives/133336.html
https://xw.qq.com/cmsid/20210619A00XJ900
http://app.myzaker.com/news/article.php?pk=60a88de0b15ec050c031effd
https://www.freebuf.com/articles/database/248950.html
https://mp.weixin.qq.com/s/XcO52gcPsQADMNpO3FIklw
https://wenku.baidu.com/view/fd78367a5d0e7cd184254b35eefdc8d376ee1487.html还有很多没记录...大佬们对不住了。