申请/专利权人:中国科学院信息工程研究所
申请日:2020-09-01
公开(公告)日:2024-03-01
公开(公告)号:CN112199668B
主分类号:G06F21/55
分类号:G06F21/55;G06F11/30;G06F11/34
优先权:
专利状态码:有效-授权
法律状态:2024.03.01#授权;2021.01.26#实质审查的生效;2021.01.08#公开
摘要:本发明涉及一种检测容器中应用层消耗CPU的DoS攻击的方法和装置。该方法的步骤包括:追踪容器中的UTSnamespace的名称、系统调用、以及系统调用对应的进程ID和线程ID;监控请求消耗的CPU时间;将请求消耗的CPU时间与阈值进行比较以判断请求是否为攻击请求。本发明通过监控请求消耗的CPU时间来检测容器中的应用层消耗CPU的DoS攻击,提出了追踪容器中系统调用等相关信息的方法,对容器没有侵入性;通过将请求的生命周期与系统调用相关联来监控请求消耗的CPU时间,不依赖于特定的编程语言和源代码;采用基于Chebyshev不等式设置检测阈值的方法设置合适的阈值,从而降低假阳性率和假阴性率。
主权项:1.一种检测容器中应用层消耗CPU的DoS攻击的方法,其特征在于,包括以下步骤:追踪容器中的UTSnamespace的名称、系统调用、以及系统调用对应的进程ID和线程ID;利用系统调用监控请求消耗的CPU时间;将请求消耗的CPU时间与阈值进行比较,以判断请求是否为攻击请求;所述利用系统调用监控请求消耗的CPU时间,包括:将请求的生命周期与系统调用相关联,通过特定的系统调用表示服务器开始结束处理一个请求;当追踪到表示开始处理请求的系统调用时,开始监控该请求对应的进程消耗的CPU时间;当追踪到表示停止处理请求的系统调用时,停止监控该请求对应的进程消耗的CPU时间;基于Linux内核功能eBPF并采用BCC工具追踪容器中的UTSnamespace的名称、系统调用、以及系统调用对应的进程ID和线程ID,包括:使用BCC中的bpf_get_current_task函数获取指向进程描述符task_struct的指针,在其中的nsproxy字段中获得PID;追踪进程在其PID命名空间中的PID,当发现PID为1的进程时,意味着该进程是新的PID命名空间中的第一个进程,追踪这个进程和其他共享相同PID命名空间的进程,从而将容器进程与其他进程区分开并只追踪容器;使用BCC中的bpf_get_current_task函数获取指向进程描述符task_struct的指针,在其中的nsproxy字段中获得UTSnamespace的名称,追踪UTSnamespace的名称作为容器ID;使用BCC中的attach_kprobe函数追踪系统调用,并获取该系统调用的返回值。
全文数据:
权利要求:
百度查询: 中国科学院信息工程研究所 一种检测容器中应用层消耗CPU的DoS攻击的方法和装置
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。