我正在尝试使用 puresec 的function_shield来保护我服务的 lambda。
出于测试目的,我编写了一个非常基本的函数,它只是调用boto3.resource('dynamodb')
并退出。
奇怪的是,function_shield记录了child_process生成尝试: {"function_shield":true,"policy":"create_child_process","details":{"path":"/bin/sh"},"mode":"alert"}
{"function_shield":true,"policy":"create_child_process","details":{"path":"/bin/uname"},"mode":"alert"}
我注意到,如果我把资源调用拿走,日志就会一起去......
我会担心吗?
如何确定此呼叫是从 boto3 发出的还是我的系统遭到入侵?
谢谢!
恶意的。Boto3使用Python内置的"platform.system(("函数来检索平台信息。出于某种原因,Python 内置函数正在调用 shell 进程来运行 uname 并获取数据,而不是使用更安全的工具来获取相同的数据。
目前,在我们解决此问题之前,您可以在调用 boto3.resource('dynamodb'(之前禁用 FunctionShield 中的子进程创建,然后立即重新启用它。
function_shield.configure({
"policy": {
"create_child_process": "allow"
}
})
boto3.resource('dynamodb')
function_shield.configure({
"policy": {
"create_child_process": "alert"
}
})
为了将来参考,我们为 FunctionShield 打开了一个 github 存储库,您可以在其中创建问题:https://github.com/puresec/FunctionShield/