Linux中可怕的fork炸弹

news/2024/11/18 9:02:13/文章来源:https://www.cnblogs.com/o-O-oO/p/18348402

什么是Linux中的 Fork 炸弹

Linux中的Fork炸弹(Fork Bomb)是一种拒绝服务攻击的形式,它利用了操作系统中的“fork()”系统调用。 Fork()系统调用用于创建新进程,该进程是调用进程的副本。 Fork炸弹利用此系统调用创建大量的子进程,以消耗系统资源,例如内存和CPU时间,从而使系统不可用。

要实现Fork炸弹,可以使用以下代码:

:(){ :|:& };:

该代码使用了一个称为“镜像递归”的技术,其中一个进程通过创建另一个进程来反复复制自身,以迅速创建大量进程。管道符号(|)使进程从一个进程传递到另一个进程,以在更快的时间内创建更多的进程。 “:”和“;”字符分别定义了shell函数和结束该函数的语法。

一旦Fork炸弹被激活,它会快速生成许多进程,消耗系统资源,导致系统崩溃或变得不可用。为了避免这种攻击,Linux系统管理员可以限制每个用户创建进程的数量,或者禁用fork()系统调用。

Fork Bomb 基本上就是创建 fork 的过程,无限地创建 fork,直到您的系统没有剩余的资源。

Fork炸弹命令解析

:() 定义了一个名称为 : 的函数,不接受任何参数。
{} 是函数开始和结束的地方。简而言之,它包含最终会崩溃您的机器的命令。
:|: 是递归开始的地方(调用自身的函数)。更准确地说,它会将一个 : 函数加载到内存中,将其输出管道 (|) 其自身的输出到另一个已加载到系统内存中的 : 函数。
& 将执行整个函数后台,以便不会杀死任何子进程。
; 将每个子函数从多个执行的链中分离。
: 运行最近创建的函数,因此链式反应开始了!

如何预防

限制登录用户可以运行的最大进程数量,先查看当前用户可以使用的最大进程数量

ulimit -u

然后编辑 /etc/security/limits.conf 文件

vim /etc/security/limits.conf
@wheel           hard    nproc           5000
rumenz           hard    nproc           5000

这样,这些用户的最大进程数量将被限制在 5000 个进程以内,这有助于防止 Fork Bomb 对系统造成太大的影响。

原创 入门小站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/779600.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

博客总领--咸鱼翻身记

咸鱼犯神经翻身记为什么我为OI泪目?因为我菜得离谱......博客更新计划难度 知识点名称 入队时间 出队时间 链接橙 双指针 8.6 8.8橙 二分答案 8.6 IDK橙 离散化 8.6 IDK橙 归并排序 8.6 IDK橙 二维前缀和 8.6 IDK黄 ST表 8.6 IDK黄 最小生成树 8.6 IDK绿 树上问题 8.6 IDK绿 空…

前端联调budget

测试环境一直报错{"id":"grpc.client","code":14,"detail":"message:connection error: desc = \"transport: Error while dialing dial tcp 172.21.0.2:34083: i/o timeout\", callee_addr:172.21.0.2:34083",&q…

微信小程序解决不支持画布的createConicGradient

微信圆环进度条开发,先看效果 微信小程序中canvas使用createConicGradient,开发者工具中显示正常,真机上报错,表示createConicGradient方法underfed,然后试一下使用图片放进去,发现微信小程序不支持new Image方法,后面查看微信官方文档有 createImage方法 wxml代码: <…

【算法】【线性表】【链表】LRU 缓存2

1 题目 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类:LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void put(int key, i…

介绍一款新奇的开源操作系统:GodoOS

在快节奏的现代办公环境中,一款高效、集成化的操作系统无疑是提升工作效率的利器。今天,我们要为您隆重介绍 ——GodoOS,一款专为内网办公环境设计的全能操作系统。它不仅仅是一个工具,更是您团队协作与文件管理的得力助手,将彻底改变您的工作方式,带来前所未有的便捷体验…

CORS跨域漏洞修复

原文链接: https://www.cnblogs.com/wenyoudo/p/14862701.html 漏洞介绍概述:CORS,跨域资源共享(Cross-origin resource sharing),是H5提供的一种机制,WEB应用程序可以通过在HTTP增加字段来告诉浏览器,哪些不同来源的服务器是有权访问本站资源的,当不同域的请求发生时,…

lg-dp1

记忆化搜索:记忆化压缩 DP 状态(一些期望 dp 里会用)剪枝递推:保证前面的部分已经计算了数位 dp 求 \([l,r]\) 之内满足某种限制的数的个数,该限制应该是与数位有关系的。 带不带前导0取决于是否对统计答案造成影响。 前缀和转化:只有上界补充题:如果 lim=1 的时候前面都…

《最新出炉》系列小成篇-Python+Playwright自动化测试-66 - 等待元素至指定状态(出现、移除、显示和隐藏)

1.简介 在我们日常工作中进行UI自动化测试时,保证测试的稳定性至关重要。其中一个关键方面是正确地定位和操作网页中的元素。在网页中,元素可能处于不同的状态,有些可能在页面加载完成之前不在DOM中,需要某些操作后才会出现,而其他元素可能一直存在于DOM中,但最初处于隐藏…

BACnet初学者教程,第三章:什么是 BACnet/IP 网络

第三章:什么是 BACnet/IP 网络平时调试BACnet协议,一个好用的 BACnet 调试工具和模拟器必不可少,推荐一款: 官网地址:https://www.redisant.cn/bacnetexplorerBACnet/IP 网络是一个或多个 IP 子网(IP 域)的集合,这些子网分配有单个 BACnet 网络号。BACnet 互联网络由两…

BACnet初学者教程,第四章:介绍 BACnet 虚拟链路层

第四章:介绍 BACnet 虚拟链路层平时调试BACnet协议,一个好用的 BACnet 调试工具和模拟器必不可少,推荐一款: 官网地址:https://www.redisant.cn/bacnetexplorer虚拟链路层 (VLL) 背后的基本概念是向现有的 BACnet 网络层呈现某些网络拓扑和功能的视图,利用新协议中内置的…

读零信任网络:在不可信网络中构建安全系统12源代码和构建系统

读零信任网络:在不可信网络中构建安全系统12源代码和构建系统1. 建立应用信任 1.1. 软件正在吞噬整个世界 1.2. 零信任网络需要关注应用程序的安全性,这似乎违反直觉,毕竟网络是不可信的,因此可以预见网络上存在不可信的应用 1.3. 运行在数据中心的软件堪称一切魔法之源,因…

雷达气象相关词汇(二 偏振参量)

参考自https://www.radartutorial.eu/15.weather/wr20.en.html 双偏振雷达 使用双偏振是区分冰雹和雨滴的一种方法。雷达发射和接收线性极化电磁波信号,并在水平和垂直偏振之间快速切换,在单个发射脉冲之间或在脉冲组之间交替。现代双偏振雷达通常同时传输两个偏振方向。示意…