如何确定shell脚本是安全的

时间:2011-11-25 12:25:57

标签: security shell sh chmod access-rights

我从this网站下载了this shell脚本。

bash脚本非常大。所以我用文本编辑器打开它并注意到了 在代码背后有很多无意义的字符。

我害怕使用chmod +x jd.sh正确执行脚本。您能告诉我如何识别它是否安全或如何设置它在系统中的有限权利?

谢谢

3 个答案:

答案 0 :(得分:2)

"非感觉角色"指示直接包含在SH文件中的二进制文件。该脚本将使用文件本身作为文件存档,并根据需要复制/提取文件。 SH安装程序没什么不寻常的。 (编辑:例如,makeself

与其他软件一样,几乎不可能决定是否运行脚本是安全的"。

答案 1 :(得分:1)

不要运行它!该网站在我工作的地方被屏蔽,因为众所周知它会提供恶意软件。

现在,关于验证代码,如果没有完全隔离它(技术上很难,但如果没有已知的漏洞可以运行VM)并运行它来观察它实际上做了什么,那么它实际上是不可能的。使用第三方软件时,健康的不信任总是有用的,但当然没有人有时间验证他们运行的所有软件,甚至是其中的一小部分。这将需要数千(更可能是数百万)的工作年,并且会发现足够的错误以使开发人员忙上一千年。您通常可以做的最好的事情是仅运行已创建的软件或至少由您信任的人推荐的软件。信任必须根据您自己的标准来确定,但是有些软件对我有利:

  • 主要操作系统/发行版的一部分。这意味着一些大型组织决定信任它。
  • 源代码可公开获取。至少任何由公司政策引起的恶意软件(参见索尼CD崩溃)都有更大的机会被发现。
  • 源代码分发在适当的平台上。像GitHub这样的网站可以让你衡量软件的受欢迎程度,并跟踪软件的发生情况,而没有任何评论功能,版本控制或错误数据库的随机网站是保存有用代码的绝佳场所。

答案 2 :(得分:1)

虽然脚本的来源似乎不值得信任(IP地址?),但可能仍然是合法的。使用shell脚本,可以在末尾附加二进制内容,从而构建一种安装程序。几年前,Sun将以完全相同的形式发布JDK for Solaris。不过,我不知道是否仍然如此。

如果您想在没有风险的情况下进行测试,我会在VirtualBox(免费虚拟机软件)中安装Linux,在那里运行脚本并查看其功能。

的附录查看它的作用:UNIX上有各种各样的工具可用于分析二进制程序,如strace,ptrace,ltrace。可能还有趣的是使用chroot运行脚本。这样您就可以轻松找到所有已安装的文件。

但是在一天结束时,这可能会产生更多的二进制文件,这些文件不容易检查(因为任何反病毒软件开发人员都会告诉你)。因此,如果您根本不信任源,请不要运行它。或者,如果您必须运行它,请在虚拟机中执行此操作,至少它不会造成太大的损害或访问您的任何数据。