我刚开始做信息安全管理工作的时候,领导交给我一个挺有意思的任务——让我在公司各个部门走一圈,看看日常工作中存在哪些泄密风险的隐患。我认认真真地拿着记录本从研发部门走到销售部门,从行政办公室走到会议室,还特意挑了下班之后的时间再去看了看。结果发现了一个让我非常惊讶的事实。我们公司装了不少进口的防火墙、入侵检测系统和文件加密软件,这些技术层面的防护可以说是相当到位的。但是技术手段可以防住来自外部的网络攻击,却挡不住内部日常习惯上那些看起来不起眼的漏洞。我今天就把这些年积累的泄密风险识别经验做一个系统性的梳理,希望能够帮助大家培养出一双善于发现身边风险的眼睛。
第一个方面是环境中的显性风险。这一类风险其实较好识别,因为不需要任何专业工具,你只要走进一个办公区域用眼睛扫一圈就能发现。比如说有没有同事的工位桌面上摊着文件人就走了,有没有人离开座位之后显示器还亮着而且关键文档或者邮件还大开着留在屏幕上,打印机出纸槽里有没有堆着没人及时取走的打印件,会议室的白板上有没有写着项目代码、客户名称和关键讨论要点而没有及时擦掉,会议室的投影或者投屏设备是不是还连接着某个同事的笔记本没有断开,茶水间或者吸烟区的公告板上有没有贴着什么内部的通知或者数据。这些都是特别容易被肉眼看见的,但大家来来往往走来走去就是没有人去指出来或者去处理。我几乎每次做现场巡查都能发现至少两三处这样的情况,而当事人的反应也千篇一律——不好意思刚才只是临时去接了个电话,我没想那么多,我只离开了几分钟不要紧吧。可是这些被大家觉得不要紧的几分钟空档,在每天上百个这样的几分钟累积下来之后,就形成了一个非常大的泄密窗口。识别环境风险的方法真的很简单,你只需要养成一个习惯——不论走进哪个办公区域,都用第三方的陌生视角来观察一下,以你现在的位置能看到什么、能拿到什么。如果能看到或者拿到的东西里有不应该出现在公共视野的信息,那就是一个显性风险。
第二个方面是行为模式中的隐蔽风险。这类风险比前一种难识别,因为当事人往往在做这些事的时候完全意识不到,甚至觉得自己非常认真负责。我举几个常见的情况。有些同事习惯在跟客户或者外部合作伙伴打电话的时候把免提打开,声音非常大,周围几个工位甚至经过的人都听得一清二楚。这些声音里可能包括了项目的交付时间、报价金额、客户的具体需求,甚至一些还没有公开的市场策略。有些人在遇到比较复杂或者重要的工作时,喜欢叫上好几个同事在开放式办公区的工位旁边或走廊里面就开始讨论,你一言我一语地拼出了非常完整的信息拼图。还有一些软件开发或者数据分析的同事,在技术社区里为了解决一个棘手的问题,会把自认为没什么问题的代码片段或者数据样本贴上去做求助。但在这些代码里很可能包含了后端服务器IP地址、数据库的表结构关系、API调用的认证密钥,或者特征非常明显的数据片段。这些行为在做的人看来没有半点恶意,完全是在努力工作、在积极寻求帮助。但恰恰是这种没有恶意的日常行为,构成了信息非正常流动最主要的发生通道。那怎么发现自己的行为模式里有没有这样的风险呢。有一个很好用的小办法——找一个你信任的同事认认真真地观察你半天的工作,请他把你所有拿不准的操作都记录下来,然后你们俩坐下来一起对着这些记录逐条分析,看看有没有可能存在被不正当利用的机会。这个方法不需要任何成本,但效果出奇的好。
第三个方面是沟通过程中的无意泄露。这个问题在跨部门协作和跟外部机构的交流中尤其常见。比方说你跟销售团队同步客户需求的时候,顺嘴提了一下当前开发部门正在准备推出的新功能规划,而这个信息还没有进入任何对外产品发布的渠道。又比如你在技术交流群里为了论证你们团队的方案更有优势,随手发出了一张包含明确项目名称和详细参数的测试结果截图。或者在跟供应商开会沟通交付节点的同时,无意中透露了公司内部的人力资源调配和阶段性工作侧重方向。说这些话的同事从本心出发并没有泄密的意图,他们觉得只是在正常的沟通中顺带说了一下工作上的实际情况。但从信息接收者的角度来看,这些信息有着完全不同的解读价值,竞争对手或者不恰当的第三方可能通过这些零散的信息推断出公司非常核心的竞争策略和业务布局。判断在沟通中是不是存在无意识泄密的简便方法,是给自己定一个说话的预检机制——在你说出一句话之前,先在脑子里过一遍,这句话里的信息接收方是否能够通过完全合法的公开渠道自己获取到。如果答案是肯定的,那你继续说没有问题。如果答案是否定的,这句话就不适合对当前这个对象说出口。
第四个方面是数据处理流程中的风险。这一点跟我们每天和信息打交道的各种方式都有关系,而且覆盖的面相当广。很多同事做数据分析的时候习惯把原始数据集下载到本地的Excel或者数据库工具里再慢慢处理,但下载下来的这些数据可能包含大量的客户个人信息和公司运营数据,你的个人电脑上是否安装了公司要求的终端防护软件,你的电脑硬盘有没有开启全盘加密。再比如有些人为了随时随地都能处理工作,把敏感文件保存在个人的云网盘或者在线笔记中,但这些云服务的数据存储位置在哪里、加密标准是什么、平台运营方有没有权限看到你的数据、你的账号有没有做两步验证,这些问题很多人从来没有仔细想过。还有一个非常普遍但风险同样很高的情况,就是利用U盘或移动硬盘在公司内网和外部网络之间拷贝数据。即便你确认U盘里没有恶意代码,这种物理介质的传输方式本身就绕过了大部分的网络层安全监控手段。识别数据处理环节中的风险有一个很好的判断方法——问自己一个问题,这个数据从最原始的来源开始到最终被我处理完成并存放在最终位置为止,中间的所有流转环节是否都在公司安全管控的范围之内。任何一个脱离了公司管控范围的处理环节,都有可能成为泄密的环节。
第五个方面是社会工程攻击的风险。这一类风险跟前四类有些不太一样,它不是你自己在工作中的行为导致的问题,而是有预谋的攻击者利用各种心理技巧诱骗你主动去做一些不该做的操作。我给你讲几个我亲耳听过的案例你就明白了。有人打电话给你说自己是IT部门的支持人员,通知说你的邮箱账号存储空间快满了需要进行系统维护,让你立刻提供登录密码来配合操作,否则会被锁定。有人通过即时通讯软件用某个同事的名字和头像加你好友,说自己手机出了问题通讯录丢了,麻烦你把公司通讯录发给他。有人发邮件冒充快递公司说你有包裹到了但地址不准确,让你点击链接去核实补充信息。这些手法的技术含量其实非常低,但成功率一点都不低,因为他们利用的是人类的紧迫心理、乐于助人的心理或者对日常流程的习惯性信任。应对社会工程攻击的原则其实只有一个,但是在任何一个场景下都适用——在你按照对方要求的任何一种方式提供任何一种信息之前,先停下来,通过一个完全独立的通信渠道去核验对方的真实身份。不要用对方邮件正文里写着的电话号码回拨过去,而要从公司官网上找到联系渠道。不要直接回复那封要求你点击链接的邮件,而是自己去快递公司的官网查询。这个独立验证的习惯一旦建立起来,基本上可以抵挡绝大多数社会工程攻击的试探。
我这些年观察下来发现了一个很有意思的现象。在泄密风险的识别和防范上,很多在公司待了好多年的老员工反倒不如刚入职几个月的新人做得好。究其原因不是老员工不懂规矩不理解制度,而是他们在日复一日重复的日常工作中形成了高速运转的自动化行为模式,很多操作根本不过脑子就直接做完了。新人反而因为对一切都不熟悉,做每个操作之前都会多考虑一步,多问一句话。所以识别身边的泄密风险,不完全是一个知识积累的问题,更多时候取决于你愿不愿意在惯性驱使之下停下来认真想一下。我特别建议每个团队都能建立一个互相观察和提醒的安全文化氛围,隔一段时间停下来花半小时做一做工作习惯的复盘。不需要大张旗鼓搞得像安全审计一样正式,就是同组的同事坐在一起,聊聊最近在工作中有没有遇到什么新的场景,有没有使用什么新的工具,有没有发现什么之前忽略了的信息处理方面的缺口。这种轻松的聊天的形式坚持下去,积累下来的观察是非常有价值的,能发现很多技术工具完全监控不到的软性风险。真正有效的泄密风险识别,从来不应该是信息安全部门一家的单方面工作,而是每一个需要每天处理信息的同事都应该掌握的一项基本能力。你识别风险的能力越强,你自己的信息安全和团队的整体信息保护水平就越高。






