KeePass是伟大的,我喜欢它,但在使用它几年后,有时我希望安装一个插件,但我不想,因为我害怕这个插件能做什么,没有我的同意。
关于插件开发的文献资料非常短。我下载并编译了源代码,但是我不明白插件可以访问的函数列表在哪里。
正如文档中所说的,PLGX格式是一种“尚未编译”的格式。
不是将插件编译到DLL程序集,而是可以将插件源代码文件打包到PLGX文件中,而KeePass将在加载插件时自行编译它。
所以应该可以读取这些文件。怎么做?
让我们以偏袒下装载机甚至密码计数器为例。这两个插件清楚地表明,他们都可以访问互联网和我的密码。那我怎么能确定他们不会偷呢?我的意思是,他们可以把我所有的信息都发送到服务器上,我永远也不会知道。
因此,如果没有办法让我阅读PLGX文件,唯一的办法,以确保一个最佳的安全性是开发我自己的插件?
发布于 2017-05-25 07:15:08
因此,简单地说,确保KeePass插件的最佳安全性的唯一方法是自己检查它们的代码。
唯一的问题是,其中一些是开源的,而另一些则不是。此外,在开源插件的情况下,您无法确定您下载的PLGX文件是否真正符合公共可用的源代码。因此,要么自己生成PLGX文件,要么直接检查PLGX文件的代码。
我选择了第二种解决方案,因为它还允许审查非开源插件的代码。
为了实现这一点,我修改了KeePass 2.35的代码。带有安装说明的项目可在https://github.com/jmevel/KeePassPluginsSourceCode上使用。
代码非常简单,只驻留在KeePass/Plugins/PlgxCsprojLoader.cs文件中。
我不会直接向您提供keepass.exe文件,因为它没有意义,您必须自己编译它。否则你怎么知道这个.exe文件到底在做什么.?
快乐的代码审查大家!
发布于 2017-05-24 17:35:54
KeePass插件几乎可以完成KeePass本身所能做的任何事情,实际上它只是一个.NET库。AFAIK,一个KeePass插件根本没有沙箱。因此,除非您反编译并进行代码检查,否则您必须信任插件的作者(S),即编译插件的人,并且插件在传输过程中没有被篡改。一个插件可以将你的全部密码列表发送到互联网上,如果你以拥有特权的用户的身份运行KeePass,就可以格式化硬盘。
另外,当您查看KeePass插件的源代码时,不要忘记也检查--plgx-build-pre:和--plgx-build-post:代码。任何shell命令都可以在插件编译/安装期间使用这些选项运行。
发布于 2020-09-09 17:40:01
在Windows中,您还可以创建一个防火墙规则,以防止KEEPASS.EXE进行传出通信。
它将阻止KEEPASS检查更新,但至少可以防止流氓PLGX在编译到KEEPASS后发送任何内容的可能性很小。
https://security.stackexchange.com/questions/160240
复制相似问题