RubyRussia2019。Mikhail Pronyakin:Ruby安全吗?

RubyRussia会议上将有很多关于如何编写代码以及如何比其他方面做得更好的演讲 。 但是,如果您公司发布的产品不安全,则可能导致大问题。 Grigory Petrov与VALEK集成平台开发商ONSEK公司的Mikhail Pronyakin讨论了这个重要话题。

图片

告诉我您做什么以及如何使用Ruby?

从前,我曾在信息安全领域担任专家。 做过一些类似Web应用程序和各种物理设备的测试。 与此同时,他从事C语言的系统编程。当时,像现在一样,Metasploit框架很受欢迎,可以通过其自身的漏洞搜索和利用模块进行扩展。 它是用Ruby写的-所以我开始熟悉这种语言。 然后,我去Onsek工作,首先我通过将代码从Ruby重写为C来加速了项目后端的某些关键部分,然后我才开始仅在Ruby中编写新功能。 我们公司的活动与信息安全有关,我们正在开发Valarm,这是一个用于保护和测试Web应用程序的平台(不仅限于此)。 事实证明,我既是Ruby开发人员,还是信息安全专家。

您的报告将与此主题相关。 告诉我更多。

RoR为程序员提供了编写代码的巨大机会,但也存在一些明显的问题,可能导致安全问题。 在会议上,我将讨论Ruby应用程序的典型漏洞,并提供有助于防止错误的实用示例。

您认为,Rails在安全性方面现在如何?

在Ruby和Rails的哲学中,存在“协议优先于配置”之类的东西。 如果协议中考虑了所有内容,则不会出现安全问题。 但是,如果突然出现一种情况,您可以默认编写易受攻击的代码,则可能已经造成了严重的问题。 特别是对于刚开始学习Rails甚至不考虑代码安全性的新手开发人员。 回顾过去,过去在所有安全方面都比现在更糟。 这不仅适用于Ruby,还适用于其他语言和框架。 每年,安全功能都越来越深入地集成到框架中。 例如,Rails到处都有开箱即用的CSRF令牌,这非常好。 所有这些操作都是在后台进行的,但是,如果您不知道如何做并且想做一些自定义操作,则可能会损害应用程序的安全性。

如果我们考虑漏洞,可以将它们大致分为两种类型:这些是运行时漏洞和语言本身的漏洞。 曾几何时,在Python中有一个悲惨的故事-事实证明,在Python中,字典的哈希值是不加盐的。 一个人可能恶意激怒了无数次碰撞。 结果,字典溢出,服务器因攻击请求的数兆字节而死亡。 告诉我,在您的Rails世界中,根据您的经验,Ruby自身中有多少个漏洞,以及Rails中有多少个漏洞?

如果我们关注漏洞主题,那么它不仅比Ruby和Rails还要广泛。 例如,我们有nginx。 如果配置不正确,那么您可以简单地从服务器读取一些文件并获取Rails应用程序的秘密。 就是这样,应用程序被黑了-做您想做的事。 您需要了解,安全性不仅限于一种语言和框架-存在执行安全性的环境,组装安全性的环境以及数百万种不同的细微差别。

就数量而言,您能以某种方式找出哪里存在更多漏洞吗? 在Ruby和Rails之外,还是在语言本身,在其运行时,在标准库中,还是在Rails作为使用Ruby的框架中?

我要说的是,大多数漏洞都在应用程序逻辑与Rails本身或其他库函数之间的交界处。

在过去的几年中,您或您的同事发现最有趣的漏洞是什么? 从系列节目“啊,嗯,那就是你必须那样弄糟的东西”。

最令人难忘的漏洞是在gem中,它允许语音文本。 您给他发短信,然后他发声。 Gem调用了控制台实用程序,并在未经适当筛选的情况下将参数传递给它。 结果,在Bash中发现了注入,您可以听到执行任意命令的结果。 您将命令“ ls /”发送到输入,响应语音指示“ slash dev slash等”,依此类推。

在过去的几年中,Python,Ruby,JavaScript等超高级语言的生态系统已依赖大量的小型库。 它们有很多,它们彼此依赖,因此消除了一些左垫,这杀死了生态系统。 攻击者开始建立自己的图书馆,或者控制陌生人,并向您添加一些您找不到的恶意代码。 这现在有多大和可怕?

这是一个问题,但是到目前为止,还没有人真正想到它,每个人都“随机地”依靠。 如果攻击者的目标是以某种方式攻击特定的公司,那么今天没有人会阻止他。 没有什么可以阻止仅制作一个好的宝石,在GitHub上赢得很多明星并等待所有人开始使用它的。 然后,将恶意代码秘密地嵌入其中,这一点都不困难。 我认为今天的依赖问题是信任问题:这个问题是开放的,仍在等待解决方案。

RubyRussia见!

报告发布后,可以向Mikhail询问有关安全性的问题,也可以在其公司的展位上讨论。 您可以在9月28日在网站上查看摩擦论者还将讨论的其他主题。

除了演讲者和与会人员之外,您还可以了解支持会议的出色公司:

主办单位-Evrone
一般合伙人-Toptal
金牌合作伙伴-Gett
银牌合作伙伴-ValarmJetBrainsBookmateCashwagon
铜牌合作伙伴-InSales

Source: https://habr.com/ru/post/zh-CN467369/


All Articles