ABASH: finding bugs in bash scripts

ABASH: finding bugs in bash scripts
复制标题

ABASH:查找 bash 脚本中的错误

DOI:
10.1145/1255329.1255347
复制
发表时间:
2007
影响因子:
14.3
通讯作者:
M. Sipper
M. Sipper
中科院分区:
计算机科学1区
文献类型:
--
作者:
Michael Orlov;M. Sipper

文献摘要

被引文献

相似文献

本文介绍了Abash的设计和实现,Abash是一种用于静态分析用bash脚本语言编写的程序的工具。尽管它没有正式的保证来抵御错过的错误或虚假警告(主要是由于Bash脚本的高度动态性质),但Abashis对于检测可能导致安全漏洞的某些常见程序错误有用。在使用来自流行的Internet存储库中的49个BASH脚本的实验中,Abash能够将其中的20个识别为包含不同严重性的错误,同时仅在这些脚本上发出合理数量的虚假警告和Ubuntu的通常无漏洞的初始化脚本Linux分布。 ABASH通过通过抽象的语义进行抽象解释来解释bash脚本,该语义解释了外壳可变扩展。该分析还通过描述外部程序接口的签名集合(用于UNIX命令等)进行参数化,从而产生一个易于配置且可扩展的框架,用于在Bash脚本中查找错误
This paper describes the design and implementation of ABASH, a tool for statically analyzing programs written in the bash scripting language. Although it makes no formal guarantees against missed errors or spurious warnings (largely due to the highly dynamic nature of bash scripts), ABASHis useful for detecting certain common program errors that may lead to security vulnerabilities. In experiments with 49 bash scripts taken from popular Internet repositories, ABASH was able to identify 20 of them as containing bugs of varying severity while yielding only a reasonable number of spurious warnings on both these scripts and the generally bug-free initialization scripts of the Ubuntu Linux distribution. ABASH works by performing abstract interpretation of a bash script via an abstract semantics that accounts for shell variable expansion. The analysis is also parameterized by a collection of signatures that describe external program interfaces (for Unix commands, etc.), yielding an easily configurable and extensible framework for finding bugs in bash scripts