库存或审计安装的Linux软件

我正在开发一个项目,我们需要能够定期告知和报告我们各种 Linux / Unix服务器上安装的软件.我看过这个,How to inventory what software/roles a Linux server is “serving up” to clients?,帖子和这个,Open-source inventory agent,帖子,并且无法找到可以提示我的问题答案的信息.我不确定OCS代理会像在Windows中一样报告Linux / Unix服务器.是否有任何脚本,开源软件,软件代理等可用于针对大量Linux / Unix服务器运行,以报告安装了哪些软件以及安装了哪些版本?

=========================

更新清晰度:

我正在寻找一种可靠的方法来确定Linux / Unix机器上是否存在特定的软件.理想情况下,这将是一个远程解决方案,我可以将其指向有问题的服务器,并让它返回结果,指示相关软件是否存在于该框中.另外,我是否应该关注与Linux / Unix主机上安装的软件有关的以下问题?

>从软件包安装的软件
>从源安装的软件
>安装到未知或意外位置的软件

我将如何处理这些条件并查明软件是否存在?

解决方法

>检查包管理数据库
>不完全可靠,但扫描整个文件系统以获得预期的可执行文件或库文件名.
>与#2相同,但如果有人想将netcat重命名为purrmeow,静态编译并通过调用libc而不是直接执行来运行它,则不要指望它.

您可以尝试使用前几个字节的内容来识别任何文件以检查executable magic numbers,然后记下任何没有主页的文件.这将照顾意外或无辜的违规装置.但是,如果有人想要放置一些东西并让它隐藏起来,那么你会很难受.

要真正偷偷摸摸,可以在文件的某个垃圾部分嵌入可执行文件,mmap它,然后内存跳转到它.哪里有遗嘱,就有黑客……所以如果这是一个审计功能,请注意你选择的任何方法的局限性.

相关文章

Linux中的ARP防火墙主要用于防御ARP欺骗攻击,其效果取决于多...
insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...