首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >mlock()是否会被非特权进程恶意使用来锁定系统?

mlock()是否会被非特权进程恶意使用来锁定系统?
EN

Stack Overflow用户
提问于 2021-04-21 15:39:48
回答 1查看 38关注 0票数 0

我刚刚学习了mlock()函数。我知道它允许您将程序内存锁定到RAM中(允许更改物理地址,但不允许清除内存)。我读到过较新的Linux内核版本有一个mlock限制(ulimit -l),但这只适用于非特权进程。如果这是每个进程的限制,那么非特权进程是否会通过fork()-ing产生大量进程,并让每个进程调用mlock(),直到所有内存都被锁定,操作系统因为大量的交换或OOM killer调用而变得缓慢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-22 01:59:44

攻击者可能会在这方面造成问题,但不会比其他情况下造成更多的问题。

在我的系统上,默认的限制是大约2MB。这意味着一个典型的进程不能将超过2MB的数据锁定到内存中。请注意,这只是普通内存,不会被换出;它不是独立的、特殊的资源。

恶意进程可能会产生许多其他进程来使用更多的锁定内存,但是因为一个进程通常需要超过2MB的内存才能运行,所以它们不会通过锁定它来真正更有效地耗尽内存;事实上,启动一个新进程本身在使用内存方面实际上比锁定它更有效。诚然,一个进程可以简单地分叉、锁定内存和休眠,在这种情况下,由于写时复制,它的其他页面可能会被共享,但它也可能只分配相当大的内存块并导致更多问题,事实上,它通常会有这样做的权限,因为许多进程需要大量的内存。

所以,是的,攻击者可能会使用这种技术来制造问题,但因为有许多更容易、更有效的方法来耗尽内存或导致其他问题,所以这似乎是一种愚蠢的方式。作为一个人,我并不担心这是一个实际的安全问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67199043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文