安全数据科学家的日常:需要做什么?将面对哪些挑战?

云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

导读:目前网络安全领域的工作岗位远远多于合格的人选,所以好消息是网络安全还是一个适合涉足的领域。坏消息是要保持最新状态所需的技能在快速变化。通常情况下,需求是发明的动力。

随着对熟练网络安全专业人士的需求远远超过目前所能供应的,数据科学算法正通过提供有关网络威胁的新见解和预测来填补这一鸿沟。

本文作者分享了自己成为专业安全数据科学家的职业道路。你将看到作为一名安全数据科学家的日常生活是何种状态,以及成为一名高效的数据科学家需要做什么。我们还分享了如何处理数据科学问题,以及在不可避免的挑战面前如何应对的技巧。

安全数据科学家的日常:需要做什么?将面对哪些挑战?

01 成为安全数据科学家之路

正因为安全数据科学是一个全新的领域,成为一名安全数据科学家可以有很多途径。许多人通过科班的正规培训成为数据科学家,也有许多人自学成才

像我便是一个例子,我成长于20世纪90年代,那时我学会了用C语言和汇编语言编程。后来,我获得了人文学科学士学位和硕士学位,然后作为一名安全软件开发人员重新进入技术领域。在此过程中,我通过业余时间自学了数据可视化机器学习,最终进入安全研发公司Sophos成为了一名正式的安全数据科学家。

与我合著出版《基于数据科学的恶意软件分析》一书的Hillary Sanders在大学学习统计学和经济学,她曾做过一段时间的数据科学家,后来就职一家安全公司从事数据科学家的工作,而她就是在这份工作中学习了安全知识。

我们在Sophos的团队非常多样化。我们的同事们拥有不同学科的学位:心理学、数据科学、数学、生物化学、统计学和计算机科学。

虽然安全数据科学偏向于那些在科学定量化方法方面受过正规训练的人,但同时也需要具有不同背景的人加入进来。虽然科学和定量化训练有助于学习安全数据科学,但从我个人的经验来看,只要你愿意自学,你也可以以非传统的背景进入我们的领域并取得优异成绩。

能否精通安全数据科学取决于一个人不断学习新事物的意愿。这是因为在我们这个领域,实践知识和理论知识同样重要,你要通过实践而不是仅仅通过学校的学习来获得实际有用的知识。

乐于学习新事物也很重要,因为机器学习、网络分析和数据可视化技术都在不断变化,所以你在学校学到的东西很快就会过时。例如,深度学习在2012年左右才开始成为一种趋势,此后迅速发展,因此几乎所有在那之前毕业的数据科学专业的人都必须自学这些非常有用的思想。

这对于那些希望进入安全数据科学专业的人来说是个好消息。因为那些已经在这个领域工作的人也必须要通过不断自学新技能,而你正好可以通过了解这些技能来迈出你的第一步。

02 安全数据科学家的一天

安全数据科学家的工作是将技能应用到各种困难的安全问题上。这些技能的应用会连同其他技能一起,形成一个更大的工作流以方便真正去解决问题。根据我们的经验以及其他公司或组织的同行们的经验,图12-1可以描述安全数据科学家的典型工作流

安全数据科学家的日常:需要做什么?将面对哪些挑战?

如图12-1所示,安全数据科学工作流涉及五个工作领域之间的相互作用。第一个领域是确定问题,涉及明确数据科学可以解决的安全问题。例如,我们可能假设,可以基于数据科学识别鱼叉式网络钓鱼邮件,而识别用于混淆已知恶意软件的特定方法,则是一个需要研究的问题。

在这个阶段,任何关于某个问题可以用数据科学解决的猜测都只是一个假设。当你有一个锤子(数据科学)时,每个问题都可以看起来像钉子(机器学习、数据可视化或网络分析问题)。

我们必须考虑这些问题是否真的最适合使用数据科学方法来解决,请记住可以构建一个数据科学解决方案原型,通过测试这个解决方案来更好地理解数据科学是否真的提供了最佳解决方案。

当你在一个组织或机构内工作时,在确定一个好的问题的过程中,经常需要同那些并非数据科学家的合作者进行沟通交流。

例如,在我们公司内部,我们经常与产品经理、管理人员、软件开发人员和销售人员打交道,他们认为数据科学就像一根可以解决任何问题的魔杖,或者认为数据科学类似于“人工智能”,具有某种神奇的能力来实现不现实的结果。

在与这些非专业的合作者交流时,切记要诚实地面对数据科学方法的能力和局限,保持敏锐、谨慎的态度,这样你才不会去追逐错误的问题。你应该抛弃那些没有数据来驱动数据科学算法的问题、缺乏有效评价方法的问题,以及那些明显可以通过手工方法就能更好解决掉的问题。

例如以下的这些问题,别人提出后我们应当拒绝:

  • 自动识别可能向竞争对手泄露数据的员工。针对这个问题缺乏足够的数据来驱动机器学习算法,然而可以通过数据可视化或网络分析来解决这一问题。
  • 解密网络流量。机器学习的数学机理决定了它根本无法解密军用级加密数据。
  • 根据员工生活方式的详细背景知识,自动识别那些针对特定员工的人工特制钓鱼邮件。同样,这也是因为没有足够的数据来驱动机器学习算法,而这个问题则可以利用可视化技术对时间序列或邮件数据进行分析来解决。

一旦你的确成功确定了一个潜在的安全数据科学问题,你的下一个任务就是确定数据源,以便可以使用数据科学技术来解决该问题。

如图12-1中的步骤2所示。当一天的工作结束时,如果你还没能获得你可用来训练机器学习模型、提供可视化或驱动网络分析的数据源,以解决你所选择的安全问题,那么数据科学很可能并不能帮你解决这一问题。

在选定了问题并确定了一个足以构建一套数据科学解决方案的数据源之后,就可以开始构建你的解决方案了。在实际应用中,一个解决方案在图12-1所示步骤3和步骤4之间不断地循环:构建某个东西,然后对它进行评价,再对它进行改进,再重新对它进行评价,依此迭代下去。

最后,一旦你的系统准备好了,就可以部署它了,如图12-1中的步骤5所示。当系统处于部署状态时,如果有新的数据源可用,你必须重复之前的步骤来集成新的数据,尝试新的数据科学方法,并重新部署系统的新版本。

安全数据科学家的日常:需要做什么?将面对哪些挑战?

03 高效安全数据科学家的特征

在安全数据科学中取得成功很大程度上取决于你的态度。在这一节中,我们列出了一些我们自己发现对成功进行安全数据科学工作来说很重要的心理因素。

1.开放的心态

数据充满了惊喜,这破坏我们对问题的了解。重要的是,你要对那些证明你某个先入为主的想法是错误的数据保持开放心态。如果不这样做,会导致你最终错过那些从该数据中得到的重要知识,甚至会把太多的信息读成随机噪音来说服你自己相信一个错误的理论。

幸运的是,你在安全数据科学领域做的工作越多,你对从数据中“学习”这件事就会越发地开放思想。你会逐渐正确地面对自身所知有限的事实,也会更加擅于从每个新问题中学到更多的知识。随着时间的推移,你会开始享受并期待数据为你带来的惊喜。

2.无穷的好奇心

数据科学项目需要研究数据来发现模式、异常和趋势,然后利用这些来构建我们的系统,这与软件工程和IT项目非常不同。识别这些数据中相互关联和相互作用的机理并不容易:通常需要运行数百个实验或分析,才能理解数据的总体形状和隐藏其中的故事。

有些人有一种天生的、近乎成瘾的动力,去进行精心设计的实验并对数据进行更深入的挖掘,而另一些人则没有这种动力。

前者便是那种倾向于在数据科学方面取得成功的人,正因如此,好奇心便是这个领域的必要条件,因为好奇心区分了我们能够对数据进行理解的深浅程度。在对数据进行模型构建和可视化分析过程中,你的好奇心越是强烈,最终得到的系统就会越有用。

3.对结果的痴迷

一旦你定义了一个好的安全数据科学问题,开始迭代地尝试解决方案并对其进行评价,那么对结果的痴迷感将会支配你,这一点在机器学习项目上体现得特别明显。

例如,当我深入参与一个机器学习项目时,我会一周7天、每天24小时地开展着多项实验。这意味着我可能会在一个晚上醒来很多次来检查实验的进度,并且经常需要修复bug,并在凌晨3点重启实验。我倾向于每晚睡觉前检查一下我的实验,整个周末都会检查好几次。

这种全天候的工作流程通常是构建顶级安全数据科学系统所必须的状态。缺乏这种状态,人们会很容易满足于平庸的结果,便无法打破常规,或者克服由错误的数据假设造成的阻碍。

4.对结果的怀疑

人们很容易误以为自己在一个安全数据科学项目上取得了成功。例如,可能你的评价过程设置不正确,导致系统的准确性看起来比实际情况好很多。基于同训练数据过于相似或与实际数据差距太大的数据来评价你的系统,是一个常见的陷阱。

你还可能无意中从你的网络可视化分析中挑选了一些你认为有用的示例,但是大多数用户并没有从中发现太多价值。

或者也许你在你的方法上付出了太多的努力,以至于你说服自己统计评价数据是好的,但实际上它们还不足以让你的系统在实际工作中发挥作用。

很重要的一点是你要对实验结果保持合理的怀疑态度,以免有一天发现自己已陷入了某种尴尬的境地。

安全数据科学家的日常:需要做什么?将面对哪些挑战?

04 未来的工作

本文只是触及皮毛,如果已经说服你以一种严谨的方式从事安全数据科学,我们有两个建议:

  • 首先,将你学到的工具立即应用于你关心的问题上;
  • 其次,阅读更多关于数据科学和安全数据科学的书籍。

以下是一些实际问题的例子,你可以考虑将新技能应用到其中:

  • 检测恶意域名
  • 检测恶意URL
  • 检测恶意电子邮件附件
  • 可视化分析网络流量以发现异常
  • 可视化分析电子邮件发件人/收件人模式来检测钓鱼邮件

为了扩展你对数据科学方法的知识,我们建议你从简单的开始,通过维基百科文章了解更多关于数据科学算法的知识。对于数据科学而言,维基百科是一个令人惊喜的、可免费访问的并且权威性的知识资源。

对于那些想要在机器学习方面深入学习的人,我们建议他们选择线性代数、概率论、统计学、图分析和多变量微积分等方面的书籍,或者参加免费的在线课程。学习这些基础知识将为你以后的数据科学生涯带来回报,因为这些内容是这个领域的基础。

除了关注这些基础知识之外,我们还建议你参加课程或者阅读关于Python、Numpy、sklearn、Matplotlib、seaborn、Keras等更加“实用”的书籍,以及涉及的在数据科学社区中大量使用的其他工具。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-03-31
本文作者:约书亚·萨克斯(Joshua Saxe)
本文来自:“大数据DT 微信公众号”,了解相关信息可以关注“大数据DT ”