跳到主要内容

安全访问 - 文件不落地

· 阅读需 4 分钟
何丰良
技术支持人员

为什么需要文件不落地?

我们认为在生产环境中,文件是企业资产的一部分,“所有权”应归属于企业实体。一些敏感信息文件如果被下载并传播,会给企业造成不可挽回的损失。

软件技术可以保护原始文件数据,避免被窃取和传播,但无法完全避免文件的内容传播,攻击者依然可以截图/拍照然后软件识别文字或者直接用纸笔记录等手段实现内容传播。

使用技术进行阻隔可以大幅度增加攻击者采集和还原数据的成本,当攻击者所得利益大于攻击成本时,攻击行为失去意义,攻击者会选择放弃攻击。

用户故事

『 小明(攻击者)作为一家企业的技术员最近要离职,试图将企业内部核心技术资料相关的文件复制到自己的U盘中带走。 』

假设这些核心资料是PDF格式,有100个文件,每文件20页,总大小80MB。

在“可下载”场景中攻击者可以直接下载文件并复制到U盘。

在“文件不落地“场景中攻击者需要先对文件中的每页内容进行截图,然后通过识图软件获取内容重新排版还原。

为了更清晰的展示攻击者成本,以下我们用数学方式做简单的论证。

下载所有文件的时间,预计10S(秒):

TD(a:all  file)=time  to  download  filesTD(a:all\;file) = time\; to\; download\; files

所有文件复制到U盘时间,预计10S:

TC(a:all  file)=time  to  copy  filesTC(a:all\;file) = time\; to\; copy\; files

每页PDF文件内容的截图时间,预计5S:

TS(p:number  of  pages)=single  page  screenshot  timeTS(p:number\; of\; pages) = single\; page\; screenshot\; time

每页的内容从截图中还原时间,预计30S:

TR(p:number  of  pages)=Restore  time  for  a  single  pageTR(p:number\; of\; pages) = Restore\; time\; for\; a\; single\; page

攻击者的时间成本:

“可下载” 场景

TD(a)+TC(a)=20STD(a)+TC(a) = 20 S

“文件不落地” 场景

(TS(20)+TR(20))×100+TC(a)=70010S(TS(20)+TR(20))×100+TC(a) = 70010 S

从结果可以看出,在以上用户故事中,"文件不落地"场景下攻击者的时间成本是"可下载"场景下的3500倍。

实施

当用户查看文件时,安全检查机制会根据当前环境(内网、外网、信任设备)和用户的权限评估是否允许查看/打印,如果评估成功则由服务端根据原始文件内容在线渲染内容并附加水印保护,然后发送给用户展示,如下图1:

图1

实现效果

通过设定权限,让用户仅可以在线查看文件的内容,但无法下载和分享。当用户预览文件时,在内容页面覆盖水印,附加安全信息、用户名、时间等,防止屏幕被截图或拍照传播。如下图2:

图2

由于"文件不落地"功能强依赖于文件的在线预览功能,因此我们需要支持更多常用文件格式的在线预览能力。