0


Linux安全检测工具--运行即可抓到多数僵尸程序

摘要

随着网络攻击的日益猖獗,Linux 系统的安全性面临着严峻的挑战。为了及时发现和防范安全威胁,许多 Linux 安全检测工具应运而生。本文将详细介绍作者开发的 Linux 安全检测工具的功能,包括进程分析、网络分析、日志分析、文件分析、利用现有检测工具、容器分析、数据库分析、环境变量分析、启动脚本分析、启动服务分析、账号密码配置分析、账号权限配置分析、预加载库/动态链接器/动态链接库分析、内核模块分析、敏感目录下异常文件分析等,帮助用户更好地了解和选择合适的 Linux 安全检测工具。

1. 进程分析

进程分析是 Linux 安全检测工具的核心功能之一,主要用于检测系统中是否存在可疑或恶意的进程。主要分析方法包括:

  • 高 CPU/MEM 占用检测: 检测系统中 CPU 或内存占用率异常的进程,这些进程可能存在性能问题或被恶意软件利用。
  • 伪装内核进程检测: 检测系统中伪装成内核进程的可疑进程,这些进程可能试图隐藏其真实身份。
  • 隐藏路径进程检测: 检测系统中启动路径包含隐藏字符(如点号)的可疑进程,这些进程可能试图隐藏其启动位置。
  • 随机进程名检测: 检测系统中进程名包含随机字符串的可疑进程,这些进程可能试图隐藏其真实目的。
  • 带特征字符串进程检测: 检测系统中进程名或启动参数包含特定特征字符串(如 “scan”、“payload” 等)的可疑进程,这些进程可能涉及恶意行为。
  • 带恶意域名进程检测: 检测系统中进程连接到已知恶意域名或 IP 地址的可疑进程,这些进程可能试图与远程服务器通信或下载恶意软件。
  • 带可疑路径进程检测: 检测系统中进程启动路径包含特定可疑目录(如 “/tmp”、" /var/tmp/" 等)的可疑进程,这些进程可能试图在系统临时目录中执行恶意操作。
  • 带删除标识进程检测: 检测系统中进程关联的文件已被删除但进程仍在运行的异常情况,这可能是恶意软件为了隐藏自身而采取的手段。
  • memfd 无文件进程检测: 检测系统中使用 memfd 文件系统创建的无文件进程,这些进程可能试图隐藏其代码和数据。
  • 隐藏进程检测: 检测系统中在 /proc 目录下找不到对应进程信息的隐藏进程,这些进程可能使用 Rootkit 等恶意软件进行隐藏。
  • 异常启动用户检测: 检测系统中由非正常用户(如 “postgres”、“portalnav” 等)启动的可疑进程,这些进程可能被用于执行恶意操作。
  • 提权进程检测: 检测系统中以 root 权限运行的进程,这些进程可能存在安全隐患或被恶意软件利用。
  • 异常 shell 执行进程检测: 检测系统中使用非标准 shell(如 tcsh)执行的可疑进程,这些进程可能试图绕过安全限制。
  • 进程名伪造检测: 检测系统中进程名与实际执行程序不匹配的进程,这些进程可能被用于隐藏其真实目的。
  • 审计追踪异常行为检测: 通过审计系统调用来检测进程的异常行为,例如非法访问文件、创建隐藏进程等。
  • function check_process() { echo "Checking for suspicious processes..." # 高 CPU/MEM 占用检测 high_mem_cpu_processes=$(ps -aux --sort=-%mem | awk '{if($4 > 80 || $3 > 80) print$0}') if [[ -n $high_mem_cpu_processes ]]; then echo "High mem/cpu占用进程:$high_mem_cpu_processes" fi # 伪装内核进程检测 ps_output=$(ps -ef | awk '{if($2!="2"&&$3!="2"&&$NF/^[.*]/)print$0}') if [[ -n $ps_output ]]; then echo "Suspicious process pretending to be a kernel process detected: $ps_output" fi # 带隐藏路径进程检测 hidden_path_output=$(ps -ef | awk '{if($0/(/| )./)print$0}') if [[ -n $hidden_path_output ]]; then echo "Process with hidden path detected: $hidden_path_output" fi # ... 其他进程分析代码 ... }

2. 网络分析

网络分析主要用于检测系统中是否存在可疑的网络连接和行为,主要分析方法包括:

  • 异常 SYN_SENT 数据包检测: 检测系统中大量发送 SYN_SENT 数据包的进程,这些进程可能进行端口扫描或分布式拒绝服务攻击 (DDoS)。
  • 会话连接数异常检测: 检测系统中单个进程或用户建立的会话连接数异常的情况,这可能是恶意软件进行横向移动或数据窃取的迹象。
  • 不同程序共用相同套接字检测: 检测系统中不同进程使用相同套接字的情况,这可能是恶意软件绕过安全限制的手段。
  • 异常远程服务连接检测: 检测系统中进程连接到非正常远程服务的可疑情况,这些进程可能被用于执行恶意操作或下载恶意软件。
  • 异常 rawsocket 发包进程检测: 检测系统中使用 rawsocket 发送数据包的可疑进程,这些进程可能进行网络攻击或绕过防火墙。
  • 孤岛外连检测: 检测系统中单个进程建立的孤立外连情况,这可能是恶意软件进行隐蔽通信的迹象。
  • 外连 IP 域名命中威胁情报检测: 检测系统中进程连接到已知恶意 IP 地址或域名的可疑情况,这些进程可能被用于执行恶意操作或下载恶意软件。
  • dns 解析域名命中威胁情报检测: 检测系统中 DNS 解析请求指向已知恶意域名的可疑情况,这些进程可能被用于执行恶意操作或下载恶意软件。
  • 查看组件监听端口定位入侵点: 检测系统中组件监听的端口,这些端口可能被用于攻击或入侵系统。
  • tcpdump 抓包分析: 使用 tcpdump 工具捕获网络数据包并进行分析,例如检测异常流量、恶意协议等。
  • audit 审计 connect 系统调用: 通过审计 connect 系统调用来检测进程的网络连接行为,例如检测异常端口连接、域名解析等。 function check_network() { echo "Checking network connections..." # 异常 SYN_SENT 数据包检测 syn_sent_packets=$(netstat -an | grep SYN_SENT | grep -v "127.0.0.1" | more) if [[ -n $syn_sent_packets ]]; then echo "Abnormal SYN_SENT packets detected: $syn_sent_packets" fi # 会话连接数异常检测 abnormal_connections=$(netstat -an | awk '{print$6}' | sort | uniq -c | awk '$1 > 10 {print$0}' | more) if [[ -n $abnormal_connections ]]; then echo "Abnormal number of session connections detected: $abnormal_connections" fi # ... 其他网络分析代码 ... }

3. 日志分析

日志分析主要用于检测系统中是否存在可疑的日志记录和行为,主要分析方法包括:

  • 常见安全相关关键字检测: 检测系统中日志文件中是否包含 “failed password”、“authentication failure” 等常见安全相关关键字,这些关键字可能指示系统受到攻击或存在安全漏洞。
  • bash 操作日志检测: 检测系统中 bash 命令操作日志,这些日志可能包含恶意命令或可疑行为。
  • 定时任务日志检测: 检测系统中定时任务日志,这些日志可能包含恶意定时任务或可疑行为。
  • 用户登录信息检测: 检测系统中用户登录日志,这些日志可能包含非法登录尝试或可疑用户行为。
  • 密码修改信息检测: 检测系统中密码修改日志,这些日志可能包含密码泄露或被篡改的情况。
  • secure 日志检测: 检测系统中 secure 日志,这些日志可能包含系统安全事件记录。
  • dmesg 日志检测: 检测系统中 dmesg 日志,这些日志可能包含系统硬件或驱动程序错误信息。
  • 组件日志检测: 检测系统中应用程序或服务组件日志,这些日志可能包含错误或异常行为信息。
  • 已安装安全检测工具日志检测: 检测系统中已安装安全检测工具的日志,这些日志可能包含安全警报或检测结果。
  • 数据库操作日志检测: 检测系统中数据库操作日志,这些日志可能包含 SQL 注入或数据泄露情况。
  • 堡垒机操作日志检测: 检测系统中堡垒机操作日志,这些日志可能包含非法登录尝试或可疑用户行为。
  • 防火墙日志检测: 检测系统中防火墙日志,这些日志可能包含网络攻击或入侵尝试信息。
  • 网络流量日志检测: 检测系统中网络流量日志,这些日志可能包含异常流量或恶意行为信息。
  • audit 审计日志检测: 检测系统中 audit 审计日志,这些日志可能包含系统安全事件记录。
  • 容器日志检测: 检测系统中容器日志,这些日志可能包含容器内部安全事件或异常行为信息。
  • function check_logs() { echo "Checking system and application logs..." # bash 操作日志检测 bash_logs=$(grep -E "bash" /var/log/* | more) if [[ -n $bash_logs ]]; then echo "Bash operation logs detected: $bash_logs" fi # 定时任务日志检测 cron_logs=$(grep -E "cron" /var/log/* | more) if [[ -n $cron_logs ]]; then echo "Cron task logs detected: $cron_logs" fi # ... 其他日志分析代码 ... }

4. 文件分析

文件分析主要用于检测系统中是否存在可疑的文件或目录,主要分析方法包括:

  • 高 CPU/MEM 占用文件检测: 检测系统中占用大量 CPU 或内存的文件,这些文件可能存在性能问题或被恶意软件利用。
  • 伪装内核文件检测: 检测系统中伪装成内核文件的恶意文件,这些文件可能试图隐藏其真实身份。
  • 隐藏路径文件检测: 检测系统中路径包含隐藏字符(如点号)的可疑文件,这些文件可能试图隐藏其位置。
  • 随机文件名检测: 检测系统中文件名包含随机字符串的可疑文件,这些文件可能试图隐藏其真实目的。
  • 带特征字符串文件检测: 检测系统中文件内容包含特定特征字符串(如 “scan”、“payload” 等)的可疑文件,这些文件可能涉及恶意行为。
  • 带恶意域名文件检测: 检测系统中文件内容包含已知恶意域名或 IP 地址的可疑文件,这些文件可能被用于与远程服务器通信或下载恶意软件。
  • 带可疑路径文件检测: 检测系统中文件路径包含特定可疑目录(如 “/tmp”、" /var/tmp/" 等)的可疑文件,这些文件可能试图在系统临时目录中执行恶意操作。
  • 样本分析: 对可疑文件进行内存转储、字符串分析、脱壳和反编译等操作,以提取文件特征和功能信息。
  • 利用现有检测工具: 使用现有的恶意软件检测工具和规则对可疑文件进行扫描和分析。

5. 其他功能

除了上述功能外,一些 Linux 安全检测工具还提供以下功能:

  • 容器分析: 检测容器镜像和容器内部是否存在恶意文件或配置。
  • 数据库分析: 检测数据库目录下是否存在加密文件或可疑操作。
  • 环境变量分析: 检测环境变量中是否存在恶意或可疑的值,例如路径篡改、注入恶意代码等。
  • 启动脚本分析: 检测系统启动脚本中是否存在恶意或可疑的命令或脚本,例如启动恶意程序、修改系统配置等。
  • 启动服务分析: 检测系统启动服务中是否存在恶意或可疑的服务,例如监听非法端口、执行恶意操作等。
  • 账号密码配置分析: 检测账号密码配置文件中是否存在恶意或可疑的配置,例如弱密码、默认密码、异常用户权限等。
  • 账号权限配置分析: 检测账号权限配置文件中是否存在恶意或可疑的配置,例如过度授权、异常用户组等。
  • 预加载库/动态链接器/动态链接库分析: 检测系统预加载库、动态链接器和动态链接库中是否存在恶意或可疑的库,例如注入恶意代码、修改系统函数等。
  • 内核模块分析: 检测系统中加载的内核模块中是否存在恶意或可疑的模块,例如 Rootkit、木马等。
  • 敏感目录下异常文件分析: 检测系统敏感目录(如 /etc、/bin、/sbin 等)下是否存在恶意或可疑的文件或目录,例如隐藏文件、异常脚本、临时文件等。

6. 选择合适的 Linux 安全检测工具

选择合适的 Linux 安全检测工具需要考虑以下因素:

  • 功能需求: 根据系统的安全需求选择功能全面或专注于特定安全领域的工具。
  • 性能影响: 选择性能开销较小的工具,避免对系统正常运行造成影响。
  • 易用性: 选择操作简单、易于理解的工具,方便用户使用和管理。
  • 更新频率: 选择更新频率较高的工具,及时获取最新的安全威胁信息和检测规则。
  • 社区支持: 选择社区活跃、支持完善的工具,方便获取帮助和解决使用过程中遇到的问题。

7. 总结

Linux 安全检测工具是保障 Linux 系统安全的重要工具,作者的脚本可以帮助用户及时发现和防范安全威胁。运行可发现绝大多数系统被入侵的迹象和僵尸恶意程序, 选择该工具并合理使用,可以有效提升 Linux 系统的安全性。有兴趣的网络安全工程师可以留言评论。

标签: linux 安全 运维

本文转载自: https://blog.csdn.net/weixin_33193047/article/details/140803569
版权归原作者 博大信息安全 所有, 如有侵权,请联系我们删除。

“Linux安全检测工具--运行即可抓到多数僵尸程序”的评论:

还没有评论