我们只需4/30即可调整Futureestack注册。条款和条件适用。 现在注册

用1,000个最常见的单词解释安全风险

11分钟阅读

许多在技术领域工作的人需要创建安全系统,但不是安全专家。受网络漫画xkcd创作者Randall Munroe的启发,我决定尝试一个交流实验。

Munroe创建了A.漫画和一个只用1000个最常用的英语单词来解释技术话题。其结果既滑稽又有益。有些想法可以用简单的语言清晰地表达出来,而有些想法则被滑稽地扭曲了。例如,氧气是“你需要呼吸的空气的一部分,但不是其他东西”,而构造板块是“我们赖以生存的又大又平的岩石”。

作为一名安全工程师,我想试着重写一下Open Web Application Security Project (OWASP) top10,以这种风格列出了10个关键信息安全弱点。(门罗的xkcd网站包括一个工具它最初是我们公司Slack内部的一个笑话,但人们比我想象的更喜欢它。所以我试着把它们清理一下,和大家分享一下。

结果是……好坏参半。下面是我用1000个(或100个)最常见的英语单词来解释OWASP十大词汇时发生的事情:

  1. 注射:一个坏人可以回答计算机用同样的单词询问计算机用于给自己方向的问题。那么坏人可以让电脑做坏事。
  2. 损坏的身份验证:如果糟糕的家伙假装是其他人,并且没有什么可以阻止他们,他们可以看到其他人的信息并做坏事。
  3. 敏感数据暴露如果你不保护那些人们不想让别人知道的特殊信息,坏人就可以窃取并利用它来伤害别人。
    安全风险可能会让你容易受到蒙面不了的蒙面的人,弯腰的头巾,试图窃取数据。
    一个“坏人”
  4. XML外部实体例如计算机可以以文字的形式存储信息。如果单词指向外部事物,坏人就会告诉它们指向不好的单词,并让电脑做不好的事情。
  5. 破碎的访问控制如果电脑知道我是谁,但不阻止我看别人的东西,我可以窃取或修改他们的信息。
  6. 安全错误配置:糟糕的家伙可以闯入设置错误的计算机。
  7. 跨站点脚本编制:如果计算机系统存储有些人写在一台计算机上的单词,并将那些单词显示给另一台计算机上的其他人,一个坏人可以告诉计算机系统存储坏词,当别人的计算机读这些词时会做坏事。
  8. 不安全的反序列化:如果有人以文字的形式存储信息,而你的电脑将这些文字转换成信息,那么坏人就可以输入让电脑做坏事的文字。
  9. 使用具有已知漏洞的组件如果你使用别人给的电脑指令,而坏人知道这些指令会让他们做坏事,那么坏人也会对你的电脑做坏事。
  10. 日志记录和监控不足如果你不仔细观察你的计算机系统,或者不让计算机记录足够多的有关它所做的事情的信息,你就不会知道如果不好的事情发生在它身上。

因为这是互联网,在这里细微差别会消失,我觉得有必要非常清楚地说明:我不是提倡每个人都应该用这种极其简化的风格逐字地写他们所有的技术交流。我更感兴趣的是我们能从这次尝试中学到什么,它在哪里起作用,在哪里不起作用。

有些是有用的

我认为其中一些翻译得很好——听起来很有趣,但它们传达了你需要理解的思想,以便掌握这种类型的安全风险。

人们不应该“看到其他人的信息并做坏事。”“保护人们不希望别人了解的特殊信息是非常重要的。”系统应该“阻止我看起来属于其他人的东西。”他们应该记录足够的信息,即管理员将“知道不好的东西会发生错误”。这些都是信息安全中的所有基础知识,教授我们为它们创建专门术语,如身份验证,敏感数据,访问控制和检测。

专业术语允许我们快速沟通我们已经理解并同意的基本概念的含义。不幸的是,当与那些不擅长安全的人交谈时,这些术语也会威胁到人们。不只是非技术人员,拥有多年经验的软件工程师和系统管理员也不熟悉信息安全术语。有时候这也没关系,因为每个人都有自己不是专家的领域。有时候——比如当您试图让所有人都遵循安全最佳实践时——专门的安全术语可能会让人们不敢采取他们完全有资格实现的简单预防措施。

你不必真正反对“坏人”或告诉人们确保他们“足够努力地看着他们的电脑系统”。但有时技术沟通可能会变得有点易于访问,如果您想到哪种语言会感受到您的观众最容易的最平衡。除了选择更简单的语言外,它还可以帮助选择您的观众熟悉的示例或隐喻。您可以链接到在线文档中使用的条款的外部解释。或者,您可以开始演示文稿,简要说明您计划在整个演讲中使用的一些关键术语。(询问某人不太熟悉主题阅读您的草稿或聆听您的练习介绍有助于帮助!)

其中一些没有

有些概念如果没有技术术语是无法解释的,或者至少没有足够专业的词汇,它们不会出现在前100名中。以这个例子为例,这是我最喜欢写的一个:

XML外部实体例如计算机可以以文字的形式存储信息。如果单词指向外部事物,坏人就会告诉它们指向不好的单词,并让电脑做不好的事情。

一方面,弄清楚如何编写它使我从安全性的角度思考XML的基本问题是什么。我知道这里的“事物”指的是“对象”,而“词语”指的是“以标准化文本格式存储的数据”。我还知道“指向外部单词”意味着对其他文件的引用(在本例中,主要通过XML文档类型定义或dtd)。

30 .另一方面…对于那些无法看穿我的大脑并得到所有这些术语定义的人来说,最终的结果是完全不连贯的。“关于事物的词语”模糊了面向对象编程中“对象”的特定含义,以及序列化格式不同于人类语言的方式。“一个坏人可以告诉他们指向不好的词语”-什么使这些词语成为“坏”,而坏人又如何“告诉”善意的词语指向意想不到的地方?电脑可以做什么坏事呢?甚至问这些问题都是一种慷慨的解释;如果你在看这样的句子,并试图在娱乐价值之外理解它们,你可能无法充分理解他们想说什么,甚至不知道从哪里开始问技术问题。

因此,价值不在于阅读这些句子,突然成为XML外部实体方面的专家,以及为什么它们会带来安全风险。对我来说,这是强迫我的大脑去质疑我可能持有的假设,关于我真正理解了多少这些风险,并深入了解我可能忽略的细节。我正在从不同的角度看问题,在这样做的过程中,捕捉到我第一次可能漏掉的细节。为什么XML如此强大,因而对应用程序开发人员如此有吸引力?与其他数据序列化格式相比,为什么它特别容易受到攻击?攻击者用来劫持XML以运行恶意命令的具体手段是什么?我们如何防范它们?

有时尝试并无法以更简单的方式解释一个概念可以揭示您可能没有遇到的想法,或者提示您更彻底地解释您认为您的观众已经理解的攻击向量。但这并不意味着这种方法是向其他人传达这些想法的有效方法。

我们如何沟通?

您可以找到无数的人们试图使技术概念更容易理解的例子。考虑这样的人朱莉娅·埃文斯艾米·维博沃Bubblesort杂志是谁让卡通简化了技术概念和项目简单的英语维基百科,甚至是编程工具,比如刮伤(一种为儿童设计的图形编程语言)和毛刺(一个帮助各种技能水平的人快速构建、部署和获得JavaScript应用程序帮助的站点)。

特别是为了安全,故意破坏应用程序,比如OWASP果汁店帮助以易于理解的方式演示安全漏洞。这些应用程序对所有水平的学习者都很有价值,可以帮助人们克服一些似乎无法达到的技术障碍。对于信息安全,许多从事技术工作的人需要能够创建安全的系统,而不是安全专家。

与此同时,可能有诱惑过度简化的东西。您无法治疗阅读“计算机[应该]阻止属于其他人的内容”的单词,可以互换在复杂应用程序中实现访问控制所需的经验,等等。此外,从“简单”的单词中创建一个句子并不总是使句子更容易理解;语言不那样工作。

至少,有必要能够定义特定于域的术语。首先,创建这些术语是因为某种原因(“对象”具有面向对象编程中的特定含义,并将其转换为“事物”不会传达相同的含义)。此外,必须不断重复定义短语(如“存储信息作为单词”,因为“序列化”)是乏味和分散注意力。

在一天结束的时候,选择单词来表达一个想法给需要理解它的人是很困难的,而只使用英语中排名前100的单词是一个可以帮助我们从不同的角度看它的方法。在信息安全方面,任何使用或制造计算机系统的人都有最好的做法来防止坏人窃取他们的信息。我认为我们都可以寻找一些方法来帮助我们的用户、开发人员和管理员更好地理解。

你知道你能帮上忙吗改进New Relic文档通过归档问题和提交pull请求?我们有开放资源docs.newrelic.com