会话窗口重建
会话重建是把一次登录从开始到结束框起来,为后续行为定出观察窗口。边界通常取认证成功行到 session closed 或 Disconnect 行;窗口内的命令、提权与文件改动按时间排列,就得到一次入侵的完整过程。
基本信息
| 开始边界 | 认证成功记录,如 Accepted 或 session opened |
|---|---|
| 结束边界 | session closed、Connection closed、Disconnect |
| 旁证材料 | shell 历史、sudo 记录、审计日志中的 tty 与 pid 字段 |
| 缺失处理 | 没有结束记录时用下一条登录或重启记录作近似边界 |
| 时间粒度 | 到秒,必要时结合相邻事件推断顺序 |
| 输出形态 | 带明确边界的会话表,供报告行为叙述使用 |
典型使用场景
- 还原单次登录期间发生的全部动作
- 判断某次文件改动是否落在会话窗口内
- 处理没有结束记录的崩溃或断电场景
- 为多台主机的事件建立统一观察窗
- 支撑报告中行为叙述章节的时序描述
最小示例
最小示例
sed -n '/03:20:0/,/05:40:/p' /var/log/auth.log | grep -E 'Accepted|sudo|Disconnect|closed' | head -40
last -F | head -10 # 与 wtmp 会话记录互校
grep -E 'sudo:' /var/log/auth.log | head -20 # 窗口内的提权记录
ausearch -ts 03:20:00 -te 05:40:00 -m EXECVE 2>/dev/null | head -20
uptime -s # 窗口内是否发生过重启事件与作用
| 事件 | 作用 | 注意 |
|---|---|---|
| Accepted | 起始边界 | 区分口令与密钥 |
| session opened | 会话正式建立 | 与认证成功可能相差数秒 |
| sudo 记录 | 窗口内提权动作 | 命令内容最直接 |
| session closed | 结束边界 | 缺失说明异常退出 |
| Disconnect | 连接断开 | 多为超时或主动退出 |
| 下一条登录 | 近似边界 | 必须在报告中注明假设 |
缺少结束记录时,用下一条登录、重启或日志轮转作为近似边界,并写明这一假设,不要把它当作精确事实。
会话之间的间隔也值得看:同一账号短时间内反复建立会话,通常是自动化脚本或跳板机的特征。
会话窗口只是观察范围,不等于窗口内每条动作都由该会话产生;多用户同时在线时必须用 tty 与 pid 字段做归属。