macOS 安全审计:查看系统登录日志与异常进程监控方法
macOS 使用统一日志系统(Unified Logging System),通过命令行工具。),敏感操作建议在隔离环境测试。:所有日志查询需管理员权限(
·
macOS 安全审计:查看系统登录日志与异常进程监控方法
一、查看系统登录日志
macOS 使用统一日志系统(Unified Logging System),通过命令行工具 log 访问日志数据:
-
基础登录事件查询
查看最近 24 小时登录事件:log show --predicate 'eventMessage contains "login"' --last 24h--predicate:过滤条件(如"login"含登录/登出事件)--last 24h:时间范围(支持1d/12h等格式)
-
精细化过滤
查询特定用户的 SSH 登录记录:log show --predicate 'process == "sshd" AND eventMessage contains "Accepted"' --info- 关键字段:
Accepted(成功登录)、Failed(失败尝试)、session opened(会话开始)
- 关键字段:
-
导出日志分析
将日志输出到文件进行深度分析:log show --predicate 'subsystem == "com.apple.eventkit"' --last 7d > ~/login_audit.log
二、异常进程监控方法
-
实时进程监控
使用top命令动态观察资源占用:top -o cpu -s 5 # 按CPU排序,每5秒刷新- 重点关注:
%CPU> 70%、COMMAND含非常见进程名(如随机字符串)
- 重点关注:
-
进程快照对比
定期保存进程列表并对比差异:# 生成当前进程快照 ps aux > ~/process_snapshot_$(date +%F).txt # 对比两次快照差异 diff ~/process_snapshot_2023-08-01.txt ~/process_snapshot_2023-08-02.txt -
恶意进程检测
检查未签名或可疑进程:# 列出所有运行进程的签名状态 codesign -dv --verbose=4 $(ps aux | awk '{print $2}' | tail -n +2) 2>/dev/null- 警报项:
not signed(未签名)、adhoc(临时签名)
- 警报项:
三、自动化监控方案
-
创建定时审计脚本
audit_script.sh示例:#!/bin/bash # 记录登录事件 log show --predicate 'eventType == "auth"' --last 1h >> /var/log/security_audit.log # 捕获高CPU进程 ps -eo pid,user,%cpu,command --sort=-%cpu | head -n 10 >> /var/log/high_cpu.log通过
launchd每小时执行:<!-- /Library/LaunchDaemons/com.security.audit.plist --> <dict> <key>ProgramArguments</key> <array><string>/path/to/audit_script.sh</string></array> <key>StartInterval</key> <integer>3600</integer> </dict> -
第三方工具推荐
四、关键安全实践
- 日志保护
sudo chmod 640 /var/log/*.log # 限制日志访问权限 sudo chown root:admin /var/log/security*.log - 告警阈值设置
- 单日登录失败 > 5 次触发邮件告警
- 未知进程持续运行 > 30 分钟时报警
- 审计重点
- 凌晨时段的登录活动(00:00 - 05:00)
root用户的直接登录- 监听非常用端口(> 1024)的进程
操作注意:所有日志查询需管理员权限(
sudo),敏感操作建议在隔离环境测试。定期备份/var/log目录防止日志篡改。
更多推荐
所有评论(0)