数据安全法指出,数据处理包括数据的收集、存储、使用、加工、传输、提供、公开等。数据收集活动十分常见,从日常中核酸身份信息采集到工作中企业BI系统收集CRM和订单信息可见一斑。此外,在网络安全领域,安全管理平台需要对网络安全设备的告警、主机的日志进行收集,信息被存储在后台的大数据系统,通过结合威胁情报,利用大数据和人工智能算法分析建模,能够及时发现已知或未知的各种威胁。
数据收集是后续数据处理活动的前提和基础。数据先要收集到系统中,才能继续其他的数据处理活动。本文列举了一些常见的数据收集方式,并且对数据收集活动所面临的安全风险进行分析。
一、数据收集名词——CDC与ETL
数据收集活动涉及两个常用的术语,分别是CDC[1]和ETL[2]:
1.CDC(Change Data Capture) 变更数据捕获
CDC一般与关系型数据库有关,对表中记录变化进行捕获,并将变化信息同步出来,实现数据的收集。CDC 跟踪数据库源(插入、更新和删除等)中的行级更改,向依赖相同数据的其他系统或服务发送更改通知,同步进行更新。
传统的关系型数据,提供基于事物日志的CDC工具。微软SQL Server和Azure SQL Database提供内嵌的CDC工具[3],甲骨文Oracle数据库也有类似的数据集成工具。
2.ETL(Extract/Transform/Load) 数据抽取、转换和加载
ETL描述了将数据从来源端收集到目的端的过程。数据历经数据提取、格式转换,最终加载到目标的数据系统中。数据在收集过程中,转换数据格式、调整顺序、从而符合后台数据库的格式要求,这是数据转换的作用。此外,还可以对原始数据过滤和清洗,剔除无用数据。同时也可以根据隐私要求,对数据变换操作,实现匿名化等。
ETL工具,既有随产品发布各种数据转换工具(如SOC安全平台匹配的告警日志收集工具),也有开源的框架。比较流行的开源ETL工具,例如Kafka Connect框架[4],能够从源端收集数据,经过格式转换,最后加载到目的端的数据平台中。
图:Kafka Connect实现数据收集
ETL一般向后台的数据库/数据仓库发送结构化数据,后台系统已经预先设计好库表结构。随着大数据、数据对象平台、数据湖等平台的发展,可以直接收集原始数据,无需对数据格式做转换。 ETL转换为ELT,数据提取后直接导入,在数据处理分析时,根据需要做转换。
二、数据收集方式
传统的数据收集比较简单,常见的有人工填写表单或辅助硬件收集设备。然而在大数据时代,面对大量数据从不同地方汇聚到大数据平台或数据中台,为实时把握大量数据流的情况,专业、自动化收集方式应运而生。
图:数据收集方式
1.表单录入
表单录入不是专门的数据收集,其实质是应用的数据输入,以完成对数据的收集。比如App的用户注册过程。此外,表单录入也有工具辅助,例如商超的条码扫描仪器能够加快录入速度。
2.关系型数据库
数据库数据收集可以利用上面提到的CDC工具,检测数据库表的变化,将记录的新增/删除/更新等变化,结合ETL框架,实现数据库的实时收集。在实践中,也存在定期将数据库导出,通过文件传输到目的端,或者刻盘(对隔离网络)再导入的情况。
这正是前文所讨论的数据收集方式,每次都需全量导出导入,数据量增大,在目的端写入的时候则需要重新构建索引。基于此,一般采用的做法是首次采取全量导入方式,后续则采用CDC的技术手段,跟踪变化的增量部分,以此减轻负载。值得一提的是,在隔离网络下,不能实现自动数据收集。
3.API接口
源数据平台提供了API接口,可以通过API接口在数据源端读取数据,然后在目的端写入数据,完成数据ETL过程。
4.日志类文件
收集日志类文件作为数据源,常见的有UNIX/Linux主机的Syslog日志、移动应用和物联网设备(如智能水表等)产生的日志等。日志文件包含的数据可以通过网络协议发出来,形成数据流,再通过ETL数据提取转换和导入,收集到后台的数据库或者数据平台中。
三、数据收集安全风险
数据收集过程,伴随着数据的传输、提供、导出等,数据处理活动的风险性不言而喻。
1.网络传输安全
首先是网络层面收集数据,从源端到目的端存在明文传输的风险。解决办法如下,其一,可以在加密网络中进行传输,类似Kafka的数据收集框架,配置数据读取和传输采用加密通道[5];其二,对源数据加密后,可以通过明文网络传输,到达目的端,解密后再进一步导入。
2.数据导出安全
数据导出后形成的文件会保留在主机上,通过移动介质拷贝,刻盘导出,纯文本的数据文件则存在数据泄漏的风险。因此可以对文件进行加密,并在数据收集完毕后对导出数据文件彻底删除。
3.API安全
API接口读取数据,如果使用 HTTP 协议,存在被攻击者窃听的风险。此外,API接口,存在认证和授权、限流等其他安全风险和安全措施。本文只关注数据收集安全风险,采用HTTS协议能够消除数据传输的安全风险。
4.表单录入安全
表单录入情形和API安全类似,客户端和应用系统后之间,存在网络协议明文传输风险。采用加密网络协议避免数据传输的风险。
四、总结
数据收集是数据处理的初始活动,有多种技术方式实现数据的收集。数据收集过程存在安全风险,一方面来自数据收集过程中衍生的数据传输安全,另一方面数据导出后处理不当导致的泄漏风险。对组织而言,在数据收集的过程中,需要识别数据收集的具体方式和安全风险,采用技术措施来抑制和消除安全风险,是数据安全治理和保护的重要一环。
参考资料:
[1]变更数据捕获
https://www.redhat.com/zh/topics/integration/what-is-change-data-capture
[2]百度百科-ETL解释
https://baike.baidu.com/item/ETL/1251949?fr=aladdin
[3]微软CDC工具
[4]Kafka Connect数据收集介绍
https://developer.confluent.io/learn-kafka/kafka-connect/intro/
[5]配置TLS加密Kafka数据传输
https://docs.confluent.io/platform/current/kafka/encryption.html#c3
上述情形之外的任何使用形式,均需提前向绿盟科技(010-68438880-5462)申请版权授权。如擅自使用,绿盟科技保留追责权利。同时,如因擅自使用博客内容引发法律纠纷,由使用者自行承担全部法律责任,与绿盟科技无关。