安全是产品的属性,安全的目标是保障产品里信息资产的保密性(Confidentiality)、完整性(Integrity)和可用性(Availability),简记为CIA。
广义上的信息安全(Information Security),是基于“安全体系以信息为中心”的立场,泛指整个安全体系,侧重于安全管理。
狭义上的信息安全,在不同组织内部,往往有不同的含义,主要有:
最早的网络安全(Network Security)是基于“安全体系以网络为中心”的立场,主要设计网络安全域、防火墙、网络访问控制、抗DDoS(分布式拒绝服务攻击)等场景,特别是以防火墙为代表的网络访问控制设备的大量使用,使得网络安全域、边界、隔离、防火墙策略等概念深入人心。
后来,网络安全的范围越来越大,向云端、网络、终端等各个环节不断延伸,发展为网络空间安全(Cyberspace Security),甚至覆盖到陆、海、空领域,但是Cyberspace 这个词太长,简化为 Cyber Security。
广义数据安全(Data Security) 是基于“安全体系以数据为中心”的立场,泛指整个安全体系侧重于数据分级及敏感数据全生命周期的保护。它以数据的安全收集或生成、安全使用、安全传输、安全存储、安全披露、安全流转与跟踪、安全销毁为目标,涵盖整个安全体系。
数据安全,也包括个人数据安全与法律合规,也就是隐私保护方便的内容。
在IT产品的安全性上,常见的三类安全架构,组成了三道防线:
在具备SDL(Security Development Lifecycle,安全开发生命周期)流程的企业中,通常会有系统架构师、安全架构师、运维架构师或者数据库架构师等人员产于产品的正式方案评审活动,其中安全架构师的职责是对该产品的安全性进行评估。
核心要素包括:
主体的范围与局限于用户,将其扩展到所有人员(用户/员工/合法伙伴/访客等)、设备、系统。
安全架构从应用扩展、网络和通信层、设备和主机层、应用和数据层。
资产包括:
审计内容:
CIA是目标,5A是手段。
“彩虹表”黑客技术,就是针对各种数字或数字字母的组合、已泄漏的弱口令,预先计算它们MD5值,并进行索引(可以简单理解成:为了快速检索而做了重新排序,实际上是采用了B+树之类的数据结构,可以快速找到对应的记录和口令)。如果黑客拿到了MD5值,且用户的原始口令强度不高,就可以直接在彩虹表中找到,而不用重新计算。
慢速加盐散列:可视为将加盐单向散列的动作重复很多次,常见的算法包括bcrypt、scrypt、PBKDF2等,通过延缓时间(百毫秒级)来提高暴力破解难度。
MD5 (2004 发现碰撞)
SHA-1 (2017 发现碰撞)
SHA-256
基于用户Ticket的后台身份认证(重点)
适用于ToC业务,数据范围仅限于用户个人创建的数据(UGC数据)
用户通过SSO系统认证,获得SSO颁发的Ticket首次访问应用系统时,应用系统在验证Ticket无误之后,直接将其纳入会话缓存起来(Ticket即Session)。这样后续每次请求都会带上Ticket,后台之间请求数据的时候也带上这个Ticket,
基于AppKey的后台身份认证
建议使用POST方式传递APPID和APPKEY,APPSECRET
基于非对称加密算法的后台身份认证
RSA和ECC
私钥加密数据,只有对应的公钥能够解开(私钥加密的过程又叫数字签名,可用于证明私钥持有方的身份)
公钥加密的数据,只有对应的私钥能够解开(消息推送给谁,就用谁的公钥加密,即指使用对方的公钥加密)
基于HMAC的后台身份认证
HMAC全称 Hash-based Message Authentication Code(散列运算消息认证码),是加密和Hash算法的结合,可以视为HASH算法的安全加强版
基于AES-GCM共享密钥的后台身份认证(重点)
Two Factor Authentication (2FA)
Multi Factor Authentication (MFA)
从安全意义上,默认权限越小越好(甚至没有任何权限),满足基本需要即可。
是在规则明确的情况,应用系统可以不用建立授权表,只将这种规则纳入访问控制模块即可,通过比对属性(或规则)来决定是否放行。
ACL(Access Control List)即访问控制表,在执行访问控制时候,访问控制模块会依据ACL设定的权限来决定是否放行。你可以把访问控制表看成一张表格,具体的字段取决于具体的业务场景。ACL的主体可以是单个用户,也可以是一群租。
动态授权是基于专家知识或者人工智能学习,来判断访问者的信誉度,以决策是否放行。比如分析某个请求,如果是正常用户就允许访问,如果高度怀疑是入侵行为或为授权的抓取网站内容的爬虫,则可能拒绝访问或者需要额外的操作,如输入验证码。
三要素:
基于属性的访问控制(Attribute-Based Access Control,ABAC)
基于角色的访问控制(Role-Based Access Control,RBAC)
基于任务的访问控制(Task-Based Access Control,TBAC)
为了保障流程任务完成而采取的动态访问控制
基于ACL的访问控制
基于专家知识的访问控制
强制访问控制(Mandatory Access Controll,MAC)
基于IP的辅助访问控制
DMZ(Demilitarized Zone,非军事区)是一个安全等级介于服务器内网和互联网之间的网络区域,常用于部署直接对外提供服务的服务器,如Web业务的前端服务器。在IDC(Internet Data Center,互联网数据中心)模式下,通常没有DMZ这个网络区域,而采用双网卡机制,一张网卡用于内网,另外一张网卡用于外网,外网网卡可视为虚拟的DMZ。
访问控制与授权的关系:
1,授权是决策单元,是执行访问控制的依据或者输入之一;
2,访问控制是执行单元,只能按着司令官的意志来决定是否放行;除此之外,还包括控制措施的实施。
在实践中决策单元和执行单元也经常整合在一起,合称为授权和访问控制。
常见漏洞:
这些漏洞被利用,无一例外的是输入参数出现了问题。
应用因该默认不信任企业内部和外部的任何人/系统,需要基于身份认证和授权,执行以身份为中心的访问控制和资产保护。
风险:
需要特别抢到的观点:指令是指令,数据是数据,不要将指令和数据混在一起。重要原则是不要拼接SQL语句。
推荐的写法是基于预编译(Prepare)和参数绑定(Bind)的参数化查询机制,否则就会出现“数据变指令”的情况,导致风险发生。
如果非要拼接SQL,要么要把参数转换为整数,将错误拦截在转换阶段;要么将字符串用单引号,缓解部分SQL注入。
XSS(Cross-site Scripting,跨站脚本攻击),指攻击者构建特殊的输入作为参数传入服务器,将恶意代码植入到其他用户访问的页面中,可造成盗号、挂马、DDoS,Web蠕虫(自动关注指定的用户,或者自动发送消息等),公关删帖等后果。
主要原因来自用户侧创建的不安全内容,防止方法就是服务器应检查并拒绝接收不安全的内容,或者对这部分内容进行转义(无害化处理)。重点关注语法闭合标签<>’”()等,这些字符转义后字符为(<>'"())。
另外,采用CSP策略(Content Security Policy,内容安全策略),可以缓解XSS风险如,在响应头部添加:Content-Security-Policy:default-src ‘self’
CSRF(Cross-site Request Forgery,跨站请求伪造),是一种操纵用户浏览器自动提交请求的攻击方法。CSRF 是有用户的浏览器自动发起,使用的是用户已认证通过的凭证,在Web应用上提交的请求或者操作不是出自用户的本意。
路径操纵(Path Manipulation)或者路径遍历(Path Traversal)
经典场景:将路径或者文件名作为作为参数传递,如果处理不当,可能被恶意利用,使用…/…/等形式进行路径比那里,读取敏感系统文件如/etc/passwd,造成任意文件下载风险。
防止方法:限定目录,或者使用文件ID作为参数。
URL地址如果作为参数进行传递,也是高风险的参数类型,黑客可能提交内部域名或者内部IP,造成对内网的探测扫描,构成SSRF漏洞。
SSRF(Server side Request Forgery,服务器端请求伪造),通常由黑客提交经过构造的内网地址及参数,但由服务器侧发起针对内网进行探测的请求,常用于攻击内部系统。
上产控制,主要是防止WebShell文件被上传,以及防止WebShell文件上传后被解析执行。
所有WebShell,就是以脚本网页文件(如PHP、JSP、ASP、ASPX或者其他CGI)形式出现的命令执行环境,也称为网页木马,可以通过浏览器访问,在界面上可服务器端交互,在服务器上执行操作系统命令或者脚本。
防止方法:
可审计(Auditable)就是记录所有敏感操作,并可用于事件追溯。记录下来的内容,即通常所说的操作日志。
此外,可以基于审计日志构建日常的例行的大数据分析和事件挖掘活动,主动发现未警告的安全事件或隐患。
时间(When)、地点(Where)、人物(Who)、事件(What),称为记叙文的四要素。
常见的操作:
此外,操作日志应该排除敏感信息,记录敏感信息可能导致信息泄漏。
资产保护(Asset Protection)就是保护资产全生命周期的安全性。
资产包括数据和资源两大类、其中对数据的保护是资产保护的重中之重。而且保护的范围不再局限于数据的安全存储,而是包括数据的生成、使用、流转、传输、存储在内的全生命周期的安全管控,以数据的安全使用、安全传输、安全存储、安全批露、安全流转为跟踪目标
AES
BASE64
AES-GCM
建议加密的数据
加密后如何检索
如何加密结构化数据
密钥管理方式
安全上首选应用层字段加密,并配合KMS。 一套安全的加密系统,至少需要二级或二级以上的加密机制。
关键概念
安全传输,目的就是保障传输过程中的安全性,既要达到保密效果,也要确定传输内容完成无误,即没有被篡改。
方式:
证书类型
证书可选择:
TLS质量与合规
虽然配置HTTPS,但仍可能存在风向,也不一定满足严格的安全合规要求,特别是需要执行PCI-DSS认证的业务。加固措施:
数据脱敏,即按照一定的规则对数据进行变形、隐藏或部分隐藏处理,让处理后的数据不会泄漏原始的敏感数据,实现对数据的保护。
业务安全,是指产品自身业务逻辑的安全性,避免出现业务逻辑缺陷导致业务损失。
典型场景:
关键数据不能由用户带出去
在各种跨组织(商户到商户)的交易活动中,最核心的诉求就是交易安全,包括互不信任、证据链完整、抗抵赖、抗重放等。要保障交易安全,首先需要确保双发的身份无误,这一点通过双方的数字证书来实现。
签名 = 使用自己的私钥加密
电子签名采用的是非对称加密算法(RSC或ECC),用了自己的私钥加密,就可以用自己的公钥解开,而公钥是可以通过网络公开获取的,这就意味着仅有自己的数字签名只能证明这个交易数据是我方发出的,也能防止我方抵赖;但是发给谁没有法律意义上的确认,就算我方声称是发给对方公司的,对方还有可能抵赖。为了防止对方抵赖,还需要在我方数字签名后的交易数据基础上,使用对方的公钥对其加密,这样对方收到交易数据后,需要先使用自己的私钥解密,这样对方就无法抵赖。
CC(Challenge Collapsar,挑战黑洞)攻击,是早期围绕抗DDoS产品Collapsar而发展出来一种攻击形式,该攻击模拟大并发用户量,访问那些需要消耗较多资源的动态页面或者数据接口,以达到耗尽目标主机资源的目的。也是DDoS(分布式拒绝服务)的一种。防御措施:
网页静态化与缓存机制
网页静态化,就是网页尽可能使用的静态的网页文件(html、js、css、图片等文件),由于静态内容只占很少的系统资源,这部分就不会引入攻击(含CC攻击)。
静态化的网页,在现今黄祖耀采用编译技术发布网站,比如使用Hugo编译Mardown文件,生成html文件,很适合程序员创建个人博客,也适用于常见的产品介绍、产品手册等。
采用SPA(Single Page Application,单页应用)技术及框架(Angular、React、VUE等)构建网站的前端,除了会与后端动态交互,基本也算是静态页面
如果后端生成网页,应考虑使用缓存技术(Redis,Memcached)将动态网页转换成接近静态网页的效果。
消息队列与异步机制
针对消耗资源比较多的功能或接口,可采取分布式异步消息队列等处理机制,相比同步处理可以提高并发能力。在高并发业务场景中,消息队列可用于降低业务模块间的耦合,削峰填谷、提高并发能力。
负载均衡
如果业务能够平行扩展,可在不同的地域部署多台服务器,或使用CDN(Content Delivery Network,内容分发网络),进行负载均衡,用户被分流到不同的入口,就近访问,从而提升服务能力,且大部分GET请求可以不用回源。
安全技术体系基础设施及配套产品:
思维:
安全体系建设没有捷径,需要从最基础的地方开始建设,做好基本功,步步为营,层层防御。
建设思路:要以预防性建设为主,检测响应为辅的思路
网络层延伸
业界发展出网络接入认证、NAC(Network Access Control,网络接入控制)等产品或者解决方案。威胁通过网络进入,数据通过网络泄漏。对流量进行审计和数据挖掘,可帮助我们主动发现风险和安全事件。
主机层延伸
从跳板机开始,安全运维步入人们的视线,HIDS(基于主机的入侵检测系统)走向舞台。
应用层延伸
统一接入网关的引入,并于SSO、授权等系统联动,可以让业务聚焦在业务本身不用再关注安全既可解决部分安全问题;
WAF与接入网关集成,可以保护范围覆盖到全部对外开放的业务,拦截SQL注入、XSS、上传Webshell等黑客攻击;
有了HTTPS的流量也能正常解密,可以建立基于大数据的流量分析系统(离线/实时),用于数据建模、入侵行为告警等
KMS的引入,可以让加密更加安全。
安全新技术
人工智能
人工智能(AI)可以学习、完善安全防护规则,或执行辅助防御,AI WAF,AI Webshell 检测等。
人脸识别,用于身份认证;
还可用于风控系统
大数据
大数据不仅可以用于事件挖掘与审计,还可以用于为黑产、诈骗、僵尸网络、傀儡肉机、盗版源建立数据,作为风控系统的决策依据,用于访问控制。
云计算
云计算自身也面临着一些安全问题,如Overlay(虚拟网,云上主机所在网络环境)和Underlay(底层承载网络)的隔离、租户的隔离、安全域、云上防御,以及它们与传统数据中心的路由与访问控制关系等。
安全技术体系架构就是安全技术体系的主要组成部分及组成部分之间的关系。各种基础设施与安全产品,包括安全防御基础设施、安全工具和技术、安全组件与支持系统等,共同构建了安全技术体系。
如果只用一个维度,首选核心5要素:
另一网络分层维度:
第一道防线,就是业务自身风险管理。业务主管是业务风险第一责任人,出了事件后,首先应该问责的就是业务主管。
第二道防线,安全技术体系领域,通常包含如下工作:
第三道防线,就是承担审计职责的部门,以及外部审计机构、测评机构等。审计工作是独立的,不受第一道和第二道防线所在部门制约,会独立履行职责,识别第一道防线、第二道防线中包括战略、管理政策、流程、人员、技术等各领域的风险。不仅包括业务自身风险,对管理文件、技术规范、控制措施覆盖不到的地方,也会提出改进意见,促进安全防御体系的不断完善。
网络部署架构
产品在发布或部署时,一个良好的网络安全域、接入基础设施及访问控制策略,可以为产品提供额外的安全防御能力,降低产品面临的各种风险。
针对互联网数据中心(IDC),原则上建议大部分服务器都不配置外网网卡,而是统一接入应用网关反向代理,防止误将高危服务器开放到互联网。
接入网关可以跟安全防御基础设施(如WAF)集成,为产品提供安全防御能力。
业务网关不直接对外提供服务,避免了高危服务直接对外开放的风险。
主机层安全
应用层安全
数据层安全
安全技术体系架构包括通用基础设施、安全防御基础设施、安全运维基础设施、安全工具和技术、安全组件与支持系统等。
聚焦到网络和通信层,通用基础设施包括:
防御基础设施包括:
其他方面还包括:
这里没有提网络层IPS(入侵检测系统),主要是由于HTTPS或加密传输的普及,这些基于明文协议的工作产品,使用范围大大受限。
企业的网络架构涉及各个安全域以及安全域之间的访问控制。
安全域是具有相同安全边界的网络分区,是由路由、交换机ACL(访问控制表)、防火墙等封闭起来的一个逻辑上的区域,可以跨地域存在,这个区域内所有主机具有相同的安全等级,内部网络自由可达。各个安全域之间的访问控制,即网络访问控制策略,由于路由、交换机ACL不会经常变更,所以网络访问控制策略管理的日常工作重点是防火墙的策略管理。
n个安全域,需要n*(n-1)套规则集;
网络层也需要身份认证:
在设备认证方面,会配合NAC(Network Admission Control,网络准入控制)机制共享使用。
简单方式,在资产库记录设备ID,MAC地址,只要是已登机的设备且MAC一致,即可认证通过。再严格要求的网络环境,可以通过颁发设备数字证书,来执行设备认证。
主机层的基础设施主要包括:
对linux服务器来说,一般指SSH登录;对于Windows服务器是远程桌面(RDP);对于网络设备来说除了SSH,一些旧设备还支持传统的Telnet。
设备/主机认证的主要风险
动态口令
https://www.lxlinux.net/1281.html
一次一密认证方案
私有协议后台认证方案
主机授权与账号的访问控制
主机服务监听地址
跳板机与登录来源控制
https://github.com/jumpserver/jumpserver
自动化运维
数据传输
设备的访问控制
运维审计就是对运维操作进行记录、分析,从中找出恶意的行为或者攻击线索。
B/S架构
建议将数据库作为底层基础设施统一管理起来,对业务封装成数据服务,以降低数据直接开放带来的风险。
应用和数据层,包括业务应用系统(含数据服务),以及数据库、缓存、NoSQL等存储系统
SSO身份认证系统
SSO单点登录系统是应用和数据层身份认证的支持系统。内部办公业务需要一套内部SSO系统,且通常采用双因子认证动态口令;如果存在ToC业务,还需要一套面向用户的SSO系统。
业务系统的身份认证
对业务系统来说,如果是面向外网的用户,需要跟用户SSO系统集成;如果是面向员工的内部业务,则需要跟内部SSO系统集成。集成方式有两种:
存储系统的身份认证
登录状态和超时管理
授权管理的两种思路:
统一的应用网关接入
数据库实例的安全访问原则
数据服务发布时,可以通过统一的API网关,将数据服务统一管理起来,并通过API网关提供数据服务,这样API网关以及后台的数据服务就构成了数据中台。
在审计方面,如果日志涉及可能存储个人信息或个人隐私的时候,就不能记录敏感信息的明文。
KMS与存储密钥
KMS(Key Management System,密钥管理系统)的主要作用是让业务无法单独对数据解密,这样黑客单独攻克一个系统是无法还原数据的。
加密时,使用随机生成的DEK对明文数据进行加密,使用KEK对随机DEK加密,最后加密后的数据和加密后的DEK一并写入数据库。
简单一点KMS:
加密算法使用AES(必要长度可选128,192,256,首选256,模式首选GCM),这种方案的效率和可靠性高,跟KMS交互少。不过当内存也成为可能的安全隐患时,业务内存中的KEK可能泄露。改进方案,在加密时DEK随机生成,使用DEK加密业务数据记录,将DEK安全传递给KMS,KMS提取该业务的KEK对其加密,向业务返回加密后的DEK,KMS不保存DEK。可根据具体场景选择合适的方案。
应用网关与HTTPS
WAF(Web应用网关)
WAF的作用就是拦截针对Web应用的入侵行为,如SQL注入、跨站脚本、文件遍历、WebShell上传或者通信等。
CC攻击防御
CC(Challenge Collapsar,挑战黑洞)攻击,是早期围绕抗DDoS产品Collapsar而发展出来的一种攻击形式,是模拟大并发用户量,访问需要消耗过多资源的动态网页或者数据接口,以达到耗尽目标主机资源的目的。也是DDoS攻击的一种。
在CC攻击过程中,每一个请求看起来都是合法的,因此基于参数特征的防御机制就对CC攻击失败了。
RASP(Runtime Application Self-Protection)运行时应用自我保护
RASP的控制点在应用程序里面(PHP、Java),直接将防护引擎嵌入到应用内部,能够感知到应用的上下文,可以先标记可疑行为,将前后访问关联起来进行判断,判定为高风险行为后加以阻断。也可以理解为运行在中间件内部的WAF。
OpenRASP(https://rasp.baidu.com)
业务风险控制
验证码
CAPTCHA(Completely Automated Public Turing Test to tell Computers and Humans Apart,全自动区分计算机和人类的图灵测试),目的是区分出计算机和人类,让人类很容易通过,但计算机很难通过。
最简单的验证码是在服务器侧基于一串数字生成添加干扰的图频啊,用户侧浏览器只能收到图片而不知道数字本身,添加干扰的主要是为了增加黑客使用OCR(Optical Character Recognition,光学字符识别)进行识别的难度。
基于大数据的互联网风控系统
在没有具备黑产大数据之前,我们需要建立相应的算法或者规则,为黑产画像,来构建黑产大数据。例如,银行、信贷、保险等,先基于用户行为建立信用档案,然后用于业务决策。
基于人工智能的内容风控系统
视频黄赌毒的识别,视频是由一帧一帧的图片构成,所以可以一图片的识别和分类作为基础。以图片鉴黄为例,就需要用到基于深度学习的分类算法。
反爬虫
防止专有数据被抓取,如文学、动漫等内容。
客户端数据安全
客户端,是指包括手机APP、电脑客户端软件参与网络通信的客户端软件。
2010年,时任Forester的首席分析师John Kindervag提出“零信任”概念;2017年,Google基于零信任构建的BeyondCorp项目完工,取消了办公网,取消了VPN,为零信任安全架构的实践提供了参考。
无边界网络概述
零信任架构以身份为中心,员工能否访问响应的业务,不是取决于他所接入的网络是否为公司办公网,而是取决于他的身份是否具有访问对应业务的权限。因此可以取消办公网,VPN。
对于生产网络,采用了统一的接入网光(GFE,Google Front-End),不再需要专门的防火墙;网关后面的服务之需要配置内网地址,天然无法直接对外提供服务,而只能被接入网关托管。
对人的身份认证(SSO及U2F)
对设备的身份认证
最小授权原则
设备准入控制
应用访问控制(RBAC,ABAC)
借鉴与改进
数据库字段加密
数据库透明加密
磁盘文件加密方案探讨
网盘存储建议:
配置文件口令加密
配置文件中对口令加密保护是一种较弱的保护机制;
加密用于防止木马自动寻找口令、挡住ScriptBoy等技能不足的黑客。
“数据安全治理”,是在数据安全领域采取的战略、组织、政策框架的集合。
“数据安全管理”,则是主要侧重于战术执行层面
对比元素 | 管理 | 治理 |
---|---|---|
决策者 | 职能部门最高级别主管 | 董事会或各领域风险管理委员会(集体决策) |
角色定位 | 被授权,在决策框架内以及职能部门内执行战术层面的决策(执法)、业务合规、沟通与报告 | 战略方向决策、制定政策、授权给合适的人选以及监督和问责 |
改进方法 | 面向目标,使用技术手段、业务手段、团队激励与考核方法调整 | 面向战略,组织架构调整与全责的重新划分(部门整合、裁撤等),部门管理者调整(轮岗、调岗等)、跨部门流程 |
数据安全治理是企业为达成数据安全目标而采取的战略、组织、政策的综合。数据安全治理的需求来自于企业的战略、所面临的法律合规或监管层面的合规要求、业务面临的风险等,目的是让企业在市场中保持竞争优势、法律合规以及数据的安全。
数据安全的目标是保障数据的安全收集、安全使用、安全传输、安全存储、安全披露、安全流转与跟踪、防止面感数据泄露,并满足合规要求(包括法律法规的要求、监管的要求、合同义务、认证/评测机构认可的行业最佳实践等)。这一目标是我们的政策文件中明确的。
数据安全治理确定了边界、改进方向、以及朝着目标前进所进行的战略决策、组织架构设计、政策制定、监督等活动。
实践中,数据安全治理的大部分工作通常是由第二道防线(也就是风险管理部,比如数据安全管理部)规划方案,然后在董事会或者风险管理委员会决策,形成决议后生效的。
数据安全治理的要素
数据安全战略
第一,“零损失”是一个非常不现实的目标,浙江使得成本非常高昂,最后也不一定能够达成目标。无差别的全面防御,即重要性不同的业务都采用同样等级的防护措施,对高敏感业务保护不足,对普通业务保护措施过剩。建议:先把敏感数据识别出来重点防护,先把预算用在真正需要保护的资产上。数据安全战略:
第二,工作重心
第三,数据安全是“产品为中心”,还是以“数据为中心”。产品安全架构是“以产品为中心”。当产品边界模糊时,复用数据时候,要以“数据为中心”架构模式,统一管理数据服务,构成数据中台。在以数据为中心的架构模式下,可以让数据作为生产力,在此基础上可以快速构建出新的业务。
第四,数据安全,数据全生命周期保护。
数据安全组织
参与数据安全工作的,不仅有专职的安全团队,也有业务团队,以及审计、法务、内控、合规、政府关系等团队参与,在落地上,全员都会参与。“三道防线”
进一步展开,还包括指导委员会、技术管理委员会等虚拟组织。职责与权利,“数据控制者”担主要责任
政策总纲/框架
监督
数据安全治理与数据安全管理的关系
数据安全管理中几个较大的领域包括风险管理、项目管理、运营管理与安全治理三要素的关系。
本内容的安全项目管理是指(Security Program Management),是为了达到长期目标而采取一系列活动或者项目(Project)的集合。
基础设施:
数据安全管理系统功能参考:
简单的说,数据安全管理系统可以视为数据安全的仪表盘(dashboard)
安全运营主要是为了支撑组织履行职责,以及为管理问责、团队绩效考核提供依据。促进安全从业人员提升主观能动行,提高安全的效率和价值。
高层支持
管理者当责(中基层管理者负起责任)
通过适当形式,将此类问题暴露出来并同步给业务管理层
跨部门协作配合
员工支持
风险:
教育:
数据分析与绩效可视
合规,及符合法律合规、监管的各项要求。与风险管理合在一起,称为:“数据安全合规与风险管理”,其目的是支撑数据安全治理中的政策总纲与框架,将政策总纲与框架中的原则和精神在日常产品开发与业务活动过程中落地。合规与风险管理可以概括为:定政策、融流程、降风险。
SDL(Security Development Lifecycle,安全开发生命周期),将安全要素与安全检查点融入产品的项目阶段以及开发过程,从流程上控制风险管理模式。
防止SQL注入
根本原因是SQL语句的拼接,建议传参查询,将指令和数据分开;
代码审计,通过采购或者自研代码审计工具,在代码提交时发现代码开发上的错误,以及可能的安全漏洞,给出提示和告警。
安全自检
安全扫描或安全测试
漏洞扫描器,进行安全测试。渗透测试,在发布前消除大部分漏洞。
安全配置
安全验收:
SDL关键检查点与检查项
可以考虑在数据分级的基础上,将SDL的关注重点收缩到敏感业务上。
SDL的核心工作
安全培训
宣传、培训、推广
安全评估
风险识别与评估
风险数据库
5A方法论,来审视产品架构的安全性
风险度量或成熟度分析
风险度量
首先选取用于的度量的风险指标。
安全能力分级
级别 | 能力描述 | 数据安全能力钙素 |
---|---|---|
5 | 最佳实践+持续改进 | 安全架构实践符合最佳实践并具备持续改进的流程机制 |
4 | 增加安全+量化安全 | 安全措施接近最佳实践,并具备风险量化与闭关管理跟进机制 |
3 | 充分定义与合规 | 已按内外部合规要求执行所有必要的安全改进并重复执行 |
2 | 计划跟踪 | 仅具备针对典型高危风险的改进计划和跟进措施 |
1 | 非正式执行 | 数据安全工作来自于被动需求,尚未主动开展数据安全合规与改进工作 |
阿里巴巴公司牵头拟订了国家标准《信息安全技术数据安全能力成熟度模型》
(Data Security Maturity Model,DSMM),可以作为整个数据全体系的参考
身份认证能力
授权能力
访问控制能力
审计能力
资产保护能力
风险处置与收敛风险
实时或准实时的风险列表展示
序号 | 风险描述 | 风险等级 | 负责部门/负责人 | 改进建议 |
---|---|---|---|---|
1 | XX业务服务对外网开发 | 高 | XX/XX | 修改监听地址 |
2 | XX业务存在弱口令 | 高 | XX/YY | 修改口令 |
风险处置流程
办公系统我的代办,流程中需要有确认,完成闭环。
风险运营工具和技术
PDCA是指计划(Plan)、执行(Do)、检查(Check)、处理(Action)的缩写,是一个循环改进过程,最早由美国质量管理专家休哈特博士提出的,有戴明采纳并发扬光大,又称戴明环。
四层文件体系:数据安全政策总纲、管理政策、安全标准、技术规范。
安全数据文件体系,即一系列管理、标准与规范、流程、指南、模版等文件的文档化记录。
当企业规模尚小的时候,也许根本用不上建立政策文件,当企业开始规范化运作的时候,特别是需要通过外部的认证、测评的时候,文档化的文件体系就不可少了,如等级保护三级认证。
各种能力成熟度,通常分为五级:
第一级,为临时的或不可重复的实践做法
第二级,为可重复的实践做饭
第三级,为充分定义的政策、流程、控制措施、并文档化发布(及格线)
第四级,可量化(可度量)
第五级,基于度量、定期审计的反馈与持续改进。
标准、规范与管理规定的关系
外部法规转为内部文件
往往采用的方法拿着外部的法规、业界最佳实践、外部标准等对内部现有文件的查漏补缺。
数据安全的目标和范围
数据安全以数据的安全收集、安全使用、安全传输、安全存储、安全披露、安全流转与跟踪为目标,防止敏感数据泄露,并满足合规要求。数据安全保护的范围:
数据安全涉及的组织范围:全体。
数据安全组织与职责
数据安全组织/角色 | 职责描述 | 建议团队 |
---|---|---|
数据安全政策的制定者 | 负责建立、解释、持续优化企业内数据安全相关的管理政策、标准、规范要求等,作为业务数据安全改进的依据;对业务数据安全改进提供必要的支持,包括但不限于运营宣传、改进指引、数据安全解决方案的风险平贵及合规判定等 | 有负责企业整体安全的安全团队担任 |
数据安全改进的推动者 | 负责推动数据安全政策在所负责业务领域的落地;作为政策制定者和政策执行者之间的桥梁,收集业务反馈意见并参与与数据安全政策优化评估 | 来自业务的安全团队担任 |
数据安全改进的执行者 | 负责数据安全解决方案的实际落地,包括但不限于自行开发、整合现有的数据安全解决方案 | 业务团队 |
数据安全解决方案的提供者 | 为共性的数据安全问题提供通用的解决方案,避免各业务重复造轮子 | 安全建设团队 |
数据Owner | 数据安全负责人,数据安全管理负责人等,负责数据安全权利主张、数据流转的审批、数据安全风险的决策等,对所负责业务线的数据安全负责。 | 业务管理团队 |
授权原则
这里的授权,是指对角色或人员的授权。通常来说,授权的原则有以下几点供参考:
数据保护原则
数据安全外部合规要求
数据分级与分类
数据分级通常是按照数据的价值、敏感程度、泄露之后的影响等因素进行分级;通常数据分级一旦涉及,基本不再变化;
数据分类通常是按着数据用途、内容、业务领域等因素进行分类;数据分类可随着业务变化而动态变化。
业界没有统一的标准,企业可根据实际需要进行分级。一般二到五级,如:
数据分级 | 数据分类 | 说明 | 数据保护要点 |
---|---|---|---|
敏感数据 | 敏感个人数据 | 如证件号码,生物特征、银行卡号、手机号、地址等,以及儿童个人信息; | |
各种交易/通信/医疗/运动/出行/住宿/、财务/征信/健康状况、关系链、生物基因、种族血统、宗教信仰、性、一斤敏感的UGC内容(用户创建的不便于公开的内容,如相册、文档、日记等) | 加密、脱敏、去标识化、隐私法律合规等 | ||
敏感数据 | 身份鉴别数据 | 如用户口令、系统口令、密钥 | 加密 |
敏感数据 | 敏感业务数据 | 如预算、计划、命案业务文档 | 水印、流转跟踪,加密(可选)等。 |
普通数据 | 一般个人数据 | 姓名、出生日期等 | 脱敏 |
普通数据 | 一般业务数据 | 可以在内部公开的数据 | 安全使用 |
公开数据 | 公开数据 | 如新闻、公关、博客、自媒体数据 | 合规审核 |
风险评估与定基指南
ISO 27001,ISO 13335,信息安全评估指南等包含风险评估内容。
风险发生概率(可能性,简记为P,即Probability)
风险后产生的影响(简记为I,即Impact)
风险等级:高、中、低
风险管理要求
事件管理要求
基本原则:“以快速恢复业务,降低风险影响为主要目的”。入侵事件发生后,启动应急响应包括:
事件分级
分级 | 定位 | 分类 | 典型场景 |
---|---|---|---|
一级 | 可给企业或广大用户带来重大影响或经济损失 | 批量敏感数据泄露,如个人数据可定位到自然人 | 包含敏感数据库被拖走、API数据接口由于没有认证等机制被批量查询窃取、通过SQL注入窃取批量敏感数据 |
一级 | 敏感业务不可用 | 敏感业务遭遇DDoS时无能力缓解,系统宕机、网络故障 | |
一级 | 敏感业务内容被篡改 | 门户网站首页被篡改 | |
二级 | 可给企业或用户带来中等影响或干扰 | 批量普通数据泄露,或者敏感记录小于n条。 | 普通数据库被拖走 |
二级 | 普通业务不可用 | 普通业务遭遇DDoS | |
二级 | 普通业务内容被篡改 | 普通业务首页被篡改 | |
三级 | 首亮相普通数据泄露 | 入侵事件不产生实质影响 | |
三级 | 边缘业务不可用 | 系统宕机、网络故障 | |
三级 | 边缘业务内容被篡改 | 边缘业务首页被篡改 |
人员管理要求
人员包括员工、访客、合作伙伴等,需要遵循、配合相应的安全管理政策、流程。人员有意识或无意识的各种行为,可能给业务带来风险、因此需要加以规范。
身份认证
禁止互相借用账号,通过正规渠道申请
授权
授权与行权分离
访问控制
需要防止员工从事恶意行为,如DDoS攻击外部第三方网站,收集或破解口令、大量发送垃圾邮件、以及编写或发布后门程序等。
可审计
禁止破坏安全监控系统或安全工具的运作
资产保护
配置和运维管理
配置管理,这里所说的配置管理,不是指该如何设定业务系统的各种配置文件或加固措施,而是CMDB(配置管理数据库)中登记与维护更新,维护CMDB的及时性和准确性,并将CMDB作为安全检测的数据源。
运维管理,即规范运维操作,如使用自动化运维管理平台或跳板机,只从内部源部署开源组件、执行安全加固等。这一领域,应该将自动化运维能力的提升作为改进的方向:
运维管理还应包括:
业务连续性管理
业务连续性管理(BCM,Business Continuity Management)是为了应对各种天灾人祸等异常而采取的防御性管理与技术管理。常见的做法:
算法与协议标准
在安全的工程实践中,“不要自行设计加密算法”已是大家的共识,使用经过时间检验的、成熟的加密算法是最佳的选择。
对称加密算法
GCM是在加密算法中采用的一种计数器模式,带有GMAC消息认证码。AES的GCM模式属于AEAD(Authenticated Encryption with Associated Data)算法,同时实现了加密、认证和完整性保证功能;而其他不带认证码的模式无法实现消息的认证。
对称加密的典型使用场景:
SSO系统的身份认证通过之后,用户可以在会话有效期内不再执行身份认证,与SSO系统不同,认证加密机制对每一次交互都需要身份认证。
非对称加密算法
适用场景:
由于非对称加密算法的效率不高,不适用于对大量内容进行加密,因此真正对大量数据进行加密的部分还是需要对称加密算法来完成,非对称加密算法仅用于安全的传递对称加密密钥。
单向散列
口令存储时,推荐做法:
消息认证
推荐使用HMAC-SHA256,用途:
密码学安全的随机数生成器
在无外部输入的情况下,计算机本身无法产生真正的随机数,最多只能产生密码学安全的伪随机数,即CSPRNG(Cryptographically Secure Pseudo-Random Number Generator,密码学安全的伪随机数生成器)。通常数据函数库所提供的随机数函数,基本都不是密码学安全的随机数,应首选考虑使用操作系统提供的功能或加密库提供相关的函数。
平台 | 推荐的随机数生成器 | 不推荐使用 |
---|---|---|
Unix/Linux | /dev/urandom | - |
GoLang | crypt/rand | math/rand |
java | SecureRandom() | Math.random() |
javascript | window.crypto.getRandomValues() | Math.random() |
c# | System.Security.Cryptography.RNGCryptoService Provider | - |
Python | os.urandom() | - |
传输协议
口令标准
服务侧静态口令标准
能够与SSO集成的场景,均应使用SSO身份认证,并配合动态口令或双因子认证,验证员工身份。
员工口令标准
用户口令标准
产品与组件标准
数据脱敏标准
数据脱敏,即按照一定的规则对数据进行变形、隐身或者部分隐藏处理,让处理后的数据不会泄露原始的敏感数据,实现对敏感数据的保护。
常用个人数据 | 脱敏标准(参考) | 示例 |
---|---|---|
姓名 | 只展示最后一个字 | **三 |
身份证号 | 只展示末位 | ********5 |
银行卡号 | 只展示末4位 | ***** ***** **** **** 1234 |
手机号 | 只展示前3位和后4位 | 138 **** 3134 |
地址 | 只展示到区级 | 深圳市南山区****** |
名字部分只展示首位和末位 | z****[email protected] |
漏洞定级标准
数据安全技术规范,用于指导或者规范业务的安全架构设计、开发实现、部署实施、运维实践等目的,包括:
安全架构设计规范、从架构方案上保障产品的方案设计复合业界最佳实践
安全开发规范,从编码上保障产品的各项安全要素得以落地
防止SQL注入(参数化查询,禁止SQL拼接)
防止XSS(启用转义及CSP策略缓解XSS攻击)
防止路径遍历(指定路径)
防止SSRF(避免URL作为参数)
防止缓存溢出(执行边界检查)
隐藏内部信息(异常信息不能直接暴露给用户)
禁止高危功能,包括以下:
PHP中禁用
安全运维规范,规范产品的发布流程,以及上线后的运维要求等
安全配置规范,针对操作系统或者具体中间件的加固规范。
安全配置规范用来指导业务对常用的操作系统和常用组件进行加固,防止默认或错误的配置引入风险。常见的风险有:弱口令、误将高危服务端口直接外网开放、使用含有高危漏洞的开源组件等。
安全配置规范至少应覆盖如下产品:
应该从架构5A出发,探讨应该包含哪些内容
CII与等级保护
《关键信息基础设施安全保护条例》规定:发生安全事件后可能造成严重后果(危害国家安全、国计民生、公共利益等)的设施,属于CII(Critical Information Infrastructures,关键信息基础设施)。等级保护根据信息的重要程度由低到高划分为5各等级,目前广泛认证的是等级保护三级,金融、支付等业务还会涉及四级认证。
需要纳入CII的产品和服务包括但不限于:
PCI-DSS
虽然不属于法律,但只要涉及支付卡处理,就需要履行合同义务,执行PCI-DSS合规。
CSA STAR
云安全国际认证(CSA-STAR)以ISO/IEC27001认证为基础(增强版本),结合云端安全控制矩阵CCM(Cloud Control Matrix)的要求,运用BSI(British Standards Institution,英国标准协会)提供的成熟度模型和评估方法,为提供和使用云计算的组织,从5个维度,综合评估组织在云端的安全管理和技术能力:
ISO 27001
ISO 27001信息安全管理体系认证,是针对安全管理体系的认证,以风险管理为核心,通过定期评估风险和控制措施的有效性来保证体系的持续运行;通过整体规划的信息安全解决方案,来确保企业信息系统和业务的安全性和连续性。体系分为两部分:
ISO 29151
ISO 29151 提供了针对个人身份信息(PII,Personally Identifiable Information)的保护实践指南,覆盖26个控制域,181条控制措施,旨在控制个人身份信息相关风险,满足隐私影响评估的要求,确保个人身份信息全生命周期的安全。
其他隐私框架标准还有,
https://www.iso.org/standard/62726.html
ISO 27018
ISO 27018 用于保护云上个人可识别信息(Personally Identifiable Information,PII)
https://www.iso.org/standard/61498.html
ISO 27701