【发布时间】:2018-09-30 15:15:45
【问题描述】:
我很难找到一个权威的答案。 Perl 5 Parser 是否可以安全地解析任意代码?忽略运行或执行代码的含义,解析器本身是否安全?
解析器中允许执行任意代码的漏洞将被视为安全漏洞还是错误?
似乎有些票从安全列表中被拒绝,并在特定于解析器的错误上被推送到一般,
例如,a "Keeper of the Pumpkin" Tony Cook says,
我认为总的来说,我们认为这些问题不是安全问题,毕竟,如果攻击者可以向解析器提供代码,那么你已经很容易受到攻击。
具体来说,我试图澄清这两种威胁模型,
- Safe 假设 Perl 能够正确生成黑名单/白名单操作码树
- Perl (p5p) 假设所有解析都是使用任意代码执行的全部功能完成的,并且如果提供了恶意代码,则您“已经很容易受到攻击”
问题
知道你为什么问会很有趣。这方面的信息可以为您提供更好的答案。
如果 perl 解析器无法安全地解析代码,那么我相信没有任何东西可以保护任意 Perl。所以 Safe.pm 和 OpCode.pm 的全部目的是没有意义的,因为你不能安全地生成一个操作码树来修剪(黑名单操作码)。如果是这样,那么文档中的任何地方都不清楚,并且对这种事情保密是一个非常糟糕的主意。命名删除和开放软件以供利用是不安全的。
【问题讨论】: