如何设置和使用 python 审计挂钩

Har*_*oli 7 python cpython

Python 3.8 引入了PEP 578——Python 运行时审计挂钩,它承诺“使 Python 运行时采取的操作对审计工具可见”。

此 pep 提供了一些用例,这些用例似乎主要与系统管理员、安全专业人员和测试框架贡献者相关。然而,据我所知,这需要在选择的 python 实现上进行一些自定义选项。但是,我无法在网上找到太多信息来记录如何设置这些选项或哪些选项可用于在哪个实现中实现。

我如何开始在 cpython 中使用这些钩子?当前可用的所有钩子的完整列表在哪里(不建议实施)?

小智 7

当前可用的所有挂钩的完整列表在哪里?

https://docs.python.org/3/library/audit_events.html

我如何开始在 cpython 中使用这些钩子?

您可以从编写自己的钩子开始并研究一些函数。以下是对代码动态初始化(code.__new 事件)的审核,灵感来自开发生活博客文章, 请随意根据自己的需要操作它。

def audit(event, args):
    if event == 'code.__new__':
        print(f'audit: {event} with args={args}')
sys.addaudithook(audit)
Run Code Online (Sandbox Code Playgroud)