MST

星途 面试题库

面试题:Bash脚本中的基本安全审计点

请列举至少3个Bash脚本中常见的安全风险点,并简述如何对这些风险点进行审计。
35.3万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
  • 命令注入风险
    • 风险描述:用户输入的数据未经过严格过滤就直接拼接到命令中执行,恶意用户可借此注入恶意命令。例如:command "$input",若input; rm -rf /,可能导致系统文件被删除。
    • 审计方法:检查脚本中是否存在直接使用用户输入构建命令的情况,特别是使用eval等危险函数。查看对输入的验证和过滤逻辑,是否限制输入字符范围、对特殊字符进行转义等。
  • 未验证的文件操作
    • 风险描述:直接对用户指定的文件进行操作,若用户指定恶意路径,可能导致重要文件被删除、修改等。比如rm $file_path,若file_path/etc/passwd,会破坏系统重要配置文件。
    • 审计方法:检查文件操作命令(如rmmvcp等)的参数来源,确认是否对文件路径进行合法性检查,如是否存在文件在预期目录内、路径是否为绝对路径且符合安全策略等判断逻辑。
  • 弱密码使用
    • 风险描述:在脚本中硬编码密码或者使用简单易猜的密码,若脚本被泄露,密码就会暴露。例如在数据库连接脚本中直接写mysql -u user -ppassword
    • 审计方法:搜索脚本中是否有明显的密码形式字符串,对于需要使用密码的场景,确认是否采用了环境变量、密钥管理系统等安全方式传递密码,而非直接硬编码。
  • 权限设置不当
    • 风险描述:脚本文件本身权限设置过大,如设置为777,任何人都可读写执行,可能导致脚本被篡改。或者脚本执行过程中以过高权限运行,完成普通任务却使用了root权限。
    • 审计方法:查看脚本文件权限设置,确保符合最小权限原则。检查脚本执行时获取的权限,是否在满足功能前提下尽量降低权限,对于以root权限运行的部分,确认是否必要且有严格的安全控制。