首页/安全/取证与溯源速查/Unix 套接字与本地通信
Linux 取证135 条

Unix 套接字与本地通信

Unix 域套接字承载数据库、容器与 agent 的本地通信,权限配置不当会让低权限用户直接控制高权限服务。

取证与溯源速查安全更新于 2026-10-13

Unix 套接字与本地控制通道

Unix 域套接字承载数据库、容器运行时与 agent 的本地通信,很多高权限操作直接通过它完成,例如控制容器、查询系统状态、下发任务。套接字以文件形式出现在文件系统中,权限位与所在目录权限共同决定谁能连接;放在可被普通用户写入的目录里,等于把服务控制权交给该用户。排查时先用 ss -xlp 列出本地套接字与对应进程,再把路径、属主与目录权限一起核对。

基本信息

查看命令ss -xlp,或读取 /proc/net/unix
关注对象权限可写的套接字、非标准路径、属主异常
常见高风险/var/run/docker.sock、/run/systemd/private
判断维度套接字权限 + 所属目录权限 + 命名空间

典型使用场景

  • 排查谁能通过本地通道控制容器或服务
  • 寻找被投放在临时目录的非标准套接字
  • 确认 agent 与主进程之间的通信路径是否被替换
  • 评估容器内挂载宿主套接字带来的提权风险
  • 核对近期新建的套接字文件,发现新出现的服务

查看套接字与权限

查看套接字与权限
ss -xlp | head -20                          # 列出本地套接字与关联进程
ls -l /var/run/docker.sock /run/systemd/private 2>/dev/null
stat -c '%a %U:%G %n' /run/systemd/private 2>/dev/null   # 权限与属主
find / -type s -newermt '-7 days' -not -path '/proc/*' 2>/dev/null | head   # 近期新增
cat /proc/net/unix | head -20               # 不经 ss 的原始视图

ss -x 输出读法

列含义判读要点
Netid协议类型,unix 表示域套接字结合 -x 参数确认视图
State连接状态LISTEN 与 ESTAB 反映使用中
Local Address套接字对应的文件路径非标准路径重点核查
Process关联进程与 pid需权限才显示,可用来定位服务
把套接字放在可被普通用户写入的目录,等同于把服务控制权交给该用户:即使套接字文件本身权限严格,只要目录允许改名或删除,攻击者也能用自己的文件替换它。
容器与宿主看到的路径可能不同,容器内挂载宿主套接字是常见的提权路径;排查时先确认进程所在命名空间,再判断权限结论是否成立。
取证过程中不要随意连接未知套接字,某些套接字上的单个请求就可能导致服务状态改变,例如触发重启或任务下发。

易错点

  • 只看套接字文件权限不看目录权限,替换攻击路径被漏掉
  • 在容器内排查却按宿主路径结论,权限判断完全错位
  • 把发行版标准的 /run/systemd/private 等当成异常项
  • 用 ss 连接测试未知套接字,改变了现场状态

数据来源与参考

  • man 7 unix(Unix 域套接字)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌