以下是一个基于eBPF监控SSH登录的程序的示例代码,使用Python编写:
```python
import os
import ctypes
from bcc import BPF
# eBPF程序
bpf_text = """
#include <uapi/linux/ptrace.h>
#include <linux/sched.h>
struct ssh_session {
u32 pid;
u64 login_time;
int success;
char comm[TASK_COMM_LEN];
};
BPF_HASH(sess_table, u32, struct ssh_session);
int trace_auth_success(struct pt_regs *ctx) {
u32 pid = bpf_get_current_pid_tgid();
u32 tid = bpf_get_current_tid_tgid();
struct ssh_session *sess, init_sess = {};
sess = sess_table.lookup(&pid);
if (sess) {
strncpy(sess->comm, bpf_get_current_comm(), TASK_COMM_LEN);
sess->success = 1;
sess->login_time

本文介绍了一个使用Python和BCC库编写的eBPF程序,它通过kprobe机制监控SSH登录事件,记录成功和失败情况,实时展示登录信息包括PID、进程名、时间及状态。
最低0.47元/天 解锁文章
1234

被折叠的 条评论
为什么被折叠?



