处理安全事故是怎样的体验
初步发现
身陷其中
稳定运营
新闻与社交媒体
行业同行
持续影响
最后的思考
今年早些时候,我所在的软件开发公司遭遇了一起安全事件。接下来的几个月非常特别,我将会铭记于心,终生难忘。
事件发生之前,我完全不知道如果真的发生了会怎么样。网上关于这种情况的第一手资料似乎很少。我想分享一下我当时的经历,至少能让你了解一下,如果你的公司也遭遇同样的情况,会是什么样子。
免责声明:以下是我作为一名开发人员处理安全事件的个人经历。安全并非我的专长;我并非事件的“前线”,因此我不会在此透露任何技术细节。根据你的职位和所在公司,你的情况可能会完全不同,但我希望你也能从中找到价值!
初步发现
大约五月下旬,我在家办公时,看到公司发来一封邮件,说系统某个区域发现了一些可疑活动,目前已被隔离,正在调查。我对事情的经过非常好奇,所以第二天上班时,我四处打听了一下。我得到的印象是,这只是一次相当轻微的违规行为;甚至在可能造成任何危害之前就处理好了。听起来一切都尘埃落定,所以在聊了一会儿之后,我就像往常一样回去工作了。
仅仅一两个小时后,一位领导拍了拍我的肩膀,邀请我加入一个正在进行的会议。我不确定他想要什么,但我很高兴加入。加入后,我走进了一个房间,里面有其他几位领导、几名开发人员和我们整个安全团队。我很快被告知,正在讨论的所有内容都是“需要知道”的,不能在办公室里随意传播。最终,他们表示,这起事件的潜在影响比最初预想的要广泛。虽然不再存在活跃的威胁,但我们必须对系统进行大量审计,以发现任何异常或入侵迹象。此外,鉴于这起事件,我们必须重新评估现有的安全风险,并制定解决方案,以确保此类事件不再发生。
我听到的消息让我大吃一惊——就在刚才,我还以为没什么好担心的——但我必须承认,能够参与到这样一份保密的工作中,感觉也很好,因为我的技能会派上用场。尤其是,我自愿加入一个负责执行审计任务的团队,因为我过去的项目让我对我们将要检查的软件基础设施有了很好的了解。
会议结束后,我基本上放弃了所有其他任务,加入了我们刚刚组建的临时审计团队。
身陷其中
由于多种原因,接下来的一两周是一段有趣、令人困惑且有些令人沮丧的时光。
虽然我们的审计工作非常重要,但它却并非最引人入胜的。审计如此庞大的基础设施对我们来说是一项新任务,尽管我们一直在寻找工具来辅助,但很多工作都是手动完成的。基本上,我们会花费数小时点击资源,查找任何可疑之处,并确认没有任何问题。一无所获固然是好事,但很快就会变得非常无聊和耗费精力。在做这种重复性且没有太多成果的任务时,很难感受到自己在创造价值。也许只有我一个人这样,但在完成这项任务的过程中,团队的士气略显低落。
留意办公室里的口口相传也有点尴尬。当我在审计团队工作时,我们应对该事件的工作量不断增加。随着工作量的增加,需要更多的开发人员参与其中,因此“需要知道”的信息慢慢传播得越来越广。最终,公司里几乎每个开发人员都在处理与该事件相关的工作。此时,很难知道任何一个人对正在发生的一切了解多少。如果我从开发人员 A 那里听到一些新信息,我应该告诉开发人员 B 吗?我所知道的信息是否还像我第一次发现时一样保密?虽然我完全信任我的同事,但在不清楚谁应该知道什么的情况下处理机密信息仍然有点不舒服。
此外,与审计团队合作意味着我与我原来的开发团队隔绝。事实上,就在事件发生前一周,我刚调入一个新团队,其他成员都驻扎在海外。这让情况更加棘手,因为出于数据主权和合同方面的原因,我们的国际团队无法访问我们的系统,这意味着他们无法参与响应工作,因此无法了解事件发生的所有细节。这样做的好处是,他们可以继续进行计划中的工作,但坏处是,他们在我们响应期间可能被蒙在鼓里。我被拉去参与一个我不能过多谈论、需要我投入全部精力的项目,这对我的新团队的组建非常不利。作为团队中唯一的本地成员,我实际上感到有些内疚,因为我没有做更多努力让他们了解正在发生的事情。
稳定运营
最初几周后,我们的开发团队已经解决了大部分眼前的风险和担忧,情况的紧迫性正在逐渐降低。此时,我们已完全摆脱“救火”模式,开始着手一些在事件发生后被赋予高优先级的新计划项目。我所在的审计团队已经没什么事可做,所以团队成员开始转而加入其他团队,负责这些新项目。
我加入的项目团队有机会替换我们系统中一个相当老旧但稳定的组件——在正常的业务环境下,你可能根本不会碰它,因为它“能正常工作”。我们的任务是通过用我们选择的全新实现来替换它,从而提高系统的安全性。与我之前做的审计工作相比,这简直是一股清流。我们能够快速试验新技术,缩小范围,找到我们认为最佳的解决方案,然后不断改进,最终交付生产——我们看到的结果非常令人满意。
说实话,参与这个新项目让我开始思考我们公司目前经历的一些“好处”。突然之间,那些通常因为缺乏紧迫性而无法优先处理的项目,到处都在忙着。作为一名开发者,有机会参与这些项目让我非常兴奋,即使它们背后的情况并不那么幸运。
大约在这个时候,公司还希望完成第三方验证,以确保我们的系统内部不再存在任何活跃威胁。在验证完成之前,你对软件基础设施和资源的看法会发生微妙的变化。当你看到一些不认识的东西,或者一些名称不明确、用途不明的东西时,你就会开始怀疑它是不是某种被随意丢弃的无害资源,而是一个安全风险。有一两次,我会看到一群同事匆匆忙忙地讨论着发现了一个潜在的可疑资源,结果在紧张的一两个小时后才发现,这完全是无害的东西。这样一来,遭遇安全事故真的会让你开始提心吊胆,对系统产生恐惧。
新闻与社交媒体
事件公开后,新闻媒体很快就开始报道。公司里有几个人建议不要看任何报道,但我——我敢打赌我的很多同事——还是读了。
新闻报道正如我所料:耸人听闻的标题,从我们的公告中摘录令人震惊的引言,成了常态。虽然我对这些报道的内容并不感到意外,但我还是忍不住对这些报道的写作方式感到些许个人冒犯。每天,我都能看到情况在慢慢好转,我的同事们都在竭尽全力挽回局面;与此同时,一些文章却试图宣扬公司的厄运,或者夸大事件本身的影响。读过几篇这样的文章后,我确实开始越来越少读了,因为读这些煽动性的文章对我来说已经没什么意义了。
社交媒体的情况也类似。出于某种病态的好奇心,我会在推特上搜索关于这家公司的提及,看看大家是怎么评论的。在一家通常不为公众所知的公司工作,看到人们谈论它感觉很奇怪。关于这起事件,有不少愤怒和不满的推文,当我看到有人散布不准确的信息时,我很想插嘴纠正他们。显然,这样做是个糟糕的主意——在公共论坛上为自己辩护可能会招致各种不必要的关注,对我本人或公司都没有任何好处。此外,我完全理解人们为什么会对发生的事情感到愤怒,尤其是在信息有限、人们无法真正了解这起事件可能对他们造成的影响的情况下。
行业同行
媒体的回应让我有点担心当地行业圈子里的其他开发者会如何看待这件事。如果我参加聚会或在聚会上发言,并告诉人们我的工作地点,我会得到什么样的回应?别人对我的看法会不会受到他们所听到的关于我所在公司的报道的影响?
我不想让这件事太过困扰,于是像往常一样继续介绍我自己和我所在的公司——结果却出乎意料!我很快发现,每当我告诉别人我的工作地点时,他们只需片刻就能判断出他们是否听说过这件事。那些听说过的人会露出一种睁大眼睛的表情(虽然只是短暂的一瞬),同时把公司的名字和他们读到的关于我们的记忆联系起来。说实话,这真是太有趣了!每当我注意到这一点,我都会忍不住笑出来。
更重要的是,随后的对话总是令人鼓舞。我立刻感觉到,我的同行们非常理解我们的处境,并且常常意识到,如果运气不好,同样的情况也很容易发生在他们身上。我认为我们的事件对很多公司来说是一个警示,提醒他们需要非常重视自身安全。看到大家如此支持我们所经历的一切,我感到非常欣慰。我的一些专业人士偶尔会联系我,询问情况,并祝我们一切顺利,这让我非常感激。
持续影响
总而言之,事情花了几个月的时间才真正开始恢复正常。事件发生几个月后,我们感觉已经恢复了相当正常的“一切照旧”的节奏,但你仍然几乎可以在我们所做的每一件事中看到它的影响。
由于此次事件的影响,仍有大量项目(无论大小)需要开展,这对开发路线图产生了巨大影响。那些因事件而停滞的项目可能无法恢复,或者只能在范围和优先级进行大幅调整后才能恢复。还有很多令人兴奋的工作要做,但看到一个你原本以为进展顺利的项目因为优先级的改变而被打乱,难免会感到有些难过。
还必须考虑对公司的财务影响。虽然我不清楚具体细节,但很明显,像这样的活动,前期和后续成本都高得惊人。尽管如此,我本人并没有从财务角度注意到公司有什么变化,这令人欣慰——尽管我确实对那些负责计算数字和安排可预见未来预算的人感到难过。
最后的思考
亲身经历安全事件既让人感到压力重重,又让人困惑不已,但同时也让人兴奋不已。虽然这对公司所有人来说都很艰难,但它也让我们展现出一些我引以为豪的品质:
- 不责备的文化。从来没人质疑谁应该为事件或导致事件发生的事件“负责”。每一位开发人员都感到自己对问题负有共同的责任,并知道解决问题所需的一切。
- 团队敏捷性。处理安全事件导致正常的沟通渠道中断,新的团队迅速组建,围绕待解决的问题展开工作,来自各个领域的开发人员也纷纷加入,在最需要他们技能的领域提供帮助。虽然有时工作会比较忙乱,但每个人都能够从容应对,并高效地合作。
对我来说,这一切都体现了我们对所有开发人员的高度信任。这么说可能有点自私,但在某种程度上,我很高兴这一切发生在我能够亲眼目睹它发展的地方,并见证了我们在如此艰难的环境下能够如此良好地合作。
在撰写本文之前,我在网上找不到很多类似的开发者经历,大概是因为任何关于安全事件的信息通常都相当保密,难以分享。我希望未来我们社区能够更加公开地分享此类经历,因为安全事件还会继续发生在更多公司,并且都会对员工产生相当大的影响。
最后,我希望我的经历能对你的职业生涯有所帮助。虽然我不希望任何人遭遇这样的事情,但请记住,它仍然能为开发者带来很多积极的影响,而且它本身就是一次很棒的学习经历。
非常感谢 unDraw 为本文提供的精彩免费图片。
鏂囩珷鏉ユ簮锛�https://dev.to/chrislewisdev/what-its-like-to-work-through-a-security-incident-5d6o