在 puresec 的功能屏蔽上检测到空 aws lambda 子进程执行
empty aws lambda child process execution detected on puresec's function-shield
我正在尝试使用 puresec's 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 进程来 运行 取消命名并获取数据,而不是使用更安全的工具来获取相同的数据。
目前,在我们解决此问题之前,您可以在调用 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/
我正在尝试使用 puresec's 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 进程来 运行 取消命名并获取数据,而不是使用更安全的工具来获取相同的数据。
目前,在我们解决此问题之前,您可以在调用 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/