Unix上的身份验证和相关目标:最佳实践
在扫描Unix和Linux等相关系统时,可以在不需要root权限的情况下扫描大多数漏洞。对于一些漏洞检查和许多策略检查,您将需要根访问权限。如果您计划使用非root用户进行扫描,则需要确保该帐户具有指定的权限,并注意非root用户将无法找到某些检查。下面几节包含了配置哪些内容以及只有通过根访问才能找到哪些内容的指导方针。由于检查的复杂性和经常更新的事实,这个列表可能会更改。
为了确保在作为非root用户扫描时几乎全面的漏洞覆盖,你需要做以下其中之一:
- 提升权限,以便您可以以root身份运行命令,而无需使用实际的root帐户。
- 对系统进行配置,使非root用户对指定的命令和目录具有权限。
以下部分描述这些选项的配置。
配置扫描环境以支持权限提升
一种不使用根用户或执行自定义配置就提升扫描权限的方法是使用权限提升,如sudo或pbrun。这些选项需要特定的配置(例如,对于pbrun,您需要将用户的shell列入白名单),但不需要您自定义权限应用程序运行的命令在下面。
应用程序运行的命令
下面的部分包含了应用程序在扫描时运行哪些命令的指导方针。这些命令中的绝大多数都可以在没有根用户的情况下运行。如上所述,当添加新的检查时,此列表可能会发生变化。
大多数命令都需要以下命令之一:
- 获取操作系统的版本
- 获取已安装软件包的版本
- 运行作为shell脚本实现的策略检查
应用程序期望命令是$PATH变量的一部分,并且不存在非标准的$PATH冲突。
以下命令适用于所有Unix/Linux发行版:
- ifconfig
- java
- sha1
- sha1sum
- md5
- md5sum
- awk
- grep
- egrep
- 减少
- id
- ls
- 解压缩
InsightVM将尝试扫描某些文件,并将能够执行相应的检查,如果用户帐户有适当的访问这些文件的权限。以下是该帐户需要能够访问的文件或目录列表:
- 所属
- / etc / passwd
- grub.conf
- menu.lst
- lilo.conf
- 以及
- /etc/permissions
- /etc/securetty
- /var/log/postgresql
- /etc/hosts.equiv
- . netrc
- /, / dev ', ' / sys ', ' / proc /家庭”“/ var / etc”
- /etc/master.passwd
- 中
对于Linux,应用程序需要读取以下文件(如果存在),以确定发行版:
- /etc/debian_release
- /etc/debian_version
- /etc/redhat-release
- /etc/redhat_version
- /etc/os-release
- /etc/SuSE-release
- /etc/fedora-release
- /etc/slackware-release
- /etc/slackware-version
- /etc/system-release
- /etc/mandrake-release
- /etc/yellowdog-release
- /etc/gentoo-release
- /etc/UnitedLinux-release
- /etc/vmware-release
- /etc/slp.reg
- /etc/oracle-release
在任何Unix或相关的变体(如Ubuntu或OS X)上,帐户需要能够执行特定的命令来运行特定的检查。这些命令应该被列入帐户的白名单。
该帐户需要能够执行以下命令的某些检查:
- 猫
- 找到
- mysqlaccess
- mysqlhotcopy
- 上海
- sysctl
- dmidecode
- perlsuid
- apt-get
- rpm
对于以下类型的发行版,帐户需要指定的执行权限。
AIX
为了正确运行而不报告假阳性漏洞,需要根特权。
- lslpp -cL以列出包
- oslevel
- emgr - l
蓝色的外套
- 显示版本
思科
漏洞扫描要求:
- 显示版本(注意:这在多个思科平台上使用,包括IOS、PIX、ASA和IOR-XR)
策略扫描要求:
- 显示版本|包括思科
- 显示界面
- 显示running-config
- 显示snmp主机
- 显示运行|包括横幅登录
- show log | include Trap日志
- snmp用户显示
- 显示snmp集团
- 显示IP SSH |包括重试
- 显示共深度点
- 显示IP SSH |包括超时
- Show running-config | include []邻居[], *[] *密码
- 显示运行|包括横幅执行
- Show run | include banner motd
Debian-based分布
- uname
- dpkg
- egrep
- 减少
- xargs
F5
- "version", "show",或"tmsh show sys version"
FreeBSD
- FreeBSD -version需要指纹FreeBSD 10及以上版本
- 在FreeBSD 10之前的版本上执行cat /var/db/ FreeBSD -update/tag需要用户账号的权限。
- FreeBSD包指纹要求:
- 包裹的信息
- pkg_info
瞻博网络
- uname
- 显示版本
Mac OS X
- /usr/sbin/softwareupdate
- /usr/sbin/system_profiler
- sw_vers
帕洛阿尔托网络PAN-OS
- 显示系统信息
基于rpm的发行版(例如Red Hat、SUSE或Oracle)
- uname
- rpm
- chkconfig
Solaris
- showrev
- pkginfo
- ndd
VMware ESX或ESXi
- vmware - v
漏洞检查需要RootExecutionService
对于某些漏洞检查,需要根访问权限。如果您选择使用非root用户进行扫描,请注意将不会发现这些漏洞,即使它们存在于您的系统中。下面是需要根访问权限的检查列表:
您可以在安全控制台的搜索栏中搜索漏洞ID,查找漏洞描述和其他详细信息。
脆弱性标题 |
脆弱性ID |
---|---|
Solaris串口登录提示 |
solaris-serial-login-prompts |
Solaris松散目标多归属 |
solaris-loose-dst-multihoming |
启用Solaris正向源路由 |
solaris-forward-source-route |
Solaris Echo Multicast Reply启用 |
solaris-echo-multicast-reply |
接受Solaris ICMP重定向错误 |
solaris-redirects-accepted |
启用Solaris反向源路由 |
solaris-reverse-source-route |
启用Solaris正向定向广播 |
solaris-forward-directed-broadcasts |
Solaris时间戳广播应答启用 |
solaris-timestamp-broadcast-reply |
Solaris Echo Broadcast Reply启用 |
solaris-echo-broadcast-reply |
Solaris空密码 |
solaris-empty-passwords |
OpenSSH配置允许SSHv1协议* |
unix-check-openssh-ssh-version-two * |
. rhosts文件存在 |
unix-rhosts-file |
. netrc文件存在 |
unix-netrc-files |
MySQL mysqlhotcopy临时文件符号链接攻击 |
unix-mysql-mysqlhotcopy-temp-file |
分区安装的弱点 |
unix-partition-mounting-weakness |
- OpenSSH config允许使用SSHv1协议/unix-check-openssh-ssh-version-two和另一种检查在概念上是一样的,SSH服务器支持SSH协议v1 clients/ SSH -v1-supported,它不需要根。