Ubuntu下漏洞的修复流程

这篇具有很好参考价值的文章主要介绍了Ubuntu下漏洞的修复流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近需要修复cve漏洞,研究了如何在源码上修复漏洞,在这里记录一下。

目录

I. 介绍

漏洞和补丁

CVE漏洞

普通漏洞和CVE漏洞的区别

II. 获取补丁

III. 应用补丁

常见的打补丁工具

打补丁的步骤

patch的用法


I. 介绍

首先介绍一下相关的概念

漏洞和补丁

漏洞是计算机软件中存在的错误或者缺陷。

攻击者可以利用漏洞在未经授权的情况下访问和修改文件,以此破坏系统或收集敏感数据。

严重的漏洞可能导致数据泄露,系统崩溃或者系统被控制。

为了解决漏洞带来的问题,软件开发商会发布一个或多个“补丁”来修复漏洞。

 一旦补丁安装成功,相应的漏洞将被消除,系统将变得更加安全和稳定。

CVE漏洞

CVE(Common Vulnerabilities and Exposures)漏洞是指由于软件或硬件产品中存在的安全漏洞所引发的安全问题。

漏洞编号格式为“CVE-年份-序号”,例如“CVE-2022-1234”,每个漏洞都会被分配一个唯一的CVE编号。

普通漏洞和CVE漏洞的区别

CVE漏洞和普通漏洞的区别在于是否有CVE编号。

CVE编号由MITRE公司负责分配,MITRE公司是一家非盈利性的研究机构。

MITRE公司根据一定的标准来选择哪些漏洞应该被分配CVE编号。这个标准主要包括漏洞的严重性、漏洞的公开情况、漏洞的重要性和影响范围等方面。一般来说,只有那些被认为有严重影响和公开的漏洞才会被分配CVE编号。

需要注意的是,CVE漏洞并不一定是最严重的漏洞。

II. 获取补丁

要获取补丁之前首先要确定改漏洞是否被修复(有些漏洞没有被修复),在以下网站查询。

Enterprise Open Source and Linux | Ubuntu

举个例子,假如我要在ubuntu2004上修复CVE-2020-14928,先在网站上查一下。

ubuntu打补丁,安全

 2004对应的名称是focal,对应的状态是Released。

说明这个问题在2004上已经修复了,修复的版本是3.36.3-0ubuntu1.1。

为了简单,你可以直接将软件升级到这个版本。

出于项目需要,要使用旧版本的软件,就需要把对应的补丁应用在旧版本上。

ubuntu打补丁,安全

在对应漏洞的网页上会附上使用的patch的网址,像是修复这个漏洞的有两个patch。

我们进入gitlab,选择Plain Diff将改动(patch)下载下来,改个名字。

ubuntu打补丁,安全  

III. 应用补丁

常见的打补丁工具

patch

一般使用patch指令来打patch。(好像是废话)

patch指令是Linux系统中最基本的打补丁工具。

quilt

quilt是一个比patch更高级的打补丁工具,可以用来管理多个补丁,并对其进行排序、组合和卸载等操作。

这种方法没学明白,先不详细写

diff和patch组合

这是一种手动打补丁的方法,需要手动使用diff命令生成补丁文件,然后使用patch命令应用补丁。

打补丁的步骤

这里以patch指令为例,介绍打补丁的步骤。

将刚刚的两个diff文件改名,效果如下:

ubuntu打补丁,安全

 我们将项目的源码下载到本地,效果如下:

ubuntu打补丁,安全

 

patch --verbose --dry-run --ignore-whitespace --fuzz 3 -p1 < patch的相对路径

用这条指令来打补丁,在解释为什么可以这样打补丁之前先插播一下patch的用法

patch的用法

patch的作用则是将diff记录的结果(即补丁)应用到相应文件(夹)上。最常见的用法为:

patch -pNUM <patchfile>

-p Num

忽略几层文件夹,随后详解。

-E

选项说明如果发现了空文件,那么就删除它

-R

取消打过的补丁。

-l or --ignore-whitespace  

忽略修补数据与输入数据的跳格,空格字符

--verbose  

详细显示指令的执行过程

--dry-run

尝试patch软件,并不真正改动软件

-F<行数> or -fuzz<行数>  

非精确匹配的行数目

为了解释 -p 参数,需要看看如下patch文件片段:

--- old/modules/pcitable       Mon Sep 27 11:03:56 1999
+++ new/modules/pcitable       Tue Dec 19 20:05:41 2000

如果使用参数 -p0,那就表示从当前目录找一个叫做old的文件夹,再在它下面寻找 modules/pcitable 文件来执行patch操作。
而如果使用参数 -p1,那就表示忽略第一层目录(即不管old),从当前目录寻找 modules 的文件夹,再在它下面找pcitable。


理解了patch的用法再来看我们的指令。

ubuntu打补丁,安全

打开diff文件,默认找a/src/camel/camel-stream-buffer.c文件(对应---那行的文件)

我们解压源码之后发现没有a目录,只有src目录(源码下载到本地效果图里有),所以p对应的num数为1。

所以切换到src上一级所在的目录,执行patch --verbose --dry-run --ignore-whitespace --fuzz 3 -p1 < patch的相对路径 即可。

当然,当前使用了--dry-run参数,如果patch成功应用,就可以把这个参数去掉了。

ubuntu打补丁,安全

出现succeed即为成功。


为了深入理解patch的p参数,我们来换个目录试一下。

p参数代表忽略的目录层数,我们之前是忽略了一层,我们能不能忽略两层呢?

当然是可以的!

光看文字可能有点乱,我在这里加了个表格。

忽略层数 对应目录
0层 a/src/camel/camel-stream-buffer.c
1层 src/camel/camel-stream-buffer.c
2层 camel/camel-stream-buffer.c

忽略两层的话,就要找camel目录了。

camel目录在哪里呢?src目录下,所以我们进入src目录下,执行atch --verbose --dry-run --ignore-whitespace --fuzz 3 -p2 < patch,即可成功应用补丁!文章来源地址https://www.toymoban.com/news/detail-675029.html

到了这里,关于Ubuntu下漏洞的修复流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 当心这46个重要漏洞!微软发布1月补丁日安全通告

    当心这46个重要漏洞!微软发布1月补丁日安全通告

    近日,亚信安全CERT监测到微软1月补丁日发布了针对48个漏洞的修复补丁,其中,2个漏洞被评为紧急,46个漏洞被评为重要,共包含10个权限提升漏洞,11个远程代码执行漏洞,3个欺骗漏洞,11个信息泄露漏洞,6个拒绝服务漏洞,7个安全功能绕过漏洞。目前暂未发现相关漏洞被

    2024年01月16日
    浏览(10)
  • 当心这30个重要漏洞!微软发布12月补丁日安全通告

    当心这30个重要漏洞!微软发布12月补丁日安全通告

    近日,亚信安全CERT监测到微软12月补丁日发布了34个漏洞的安全补丁(不包含此前发布的Microsoft Edge等安全更新),其中,4个被评为紧急,30个被评为重要。包含10个权限提升漏洞,8个远程代码执行漏洞,5个欺骗漏洞,6个信息泄露漏洞,5个拒绝服务漏洞。微软还修复了1个0

    2024年01月20日
    浏览(11)
  • 漏洞补丁修复之openssl版本从1.1.1q升级到1.1.1t以及python版本默认2.7.5升级到2.7.18新版本和Nginx版本升级到1.24.0

    漏洞补丁修复之openssl版本从1.1.1q升级到1.1.1t以及python版本默认2.7.5升级到2.7.18新版本和Nginx版本升级到1.24.0

    ​ 一、Openssl升级 1、查看Openssl安装的版本 2、查看Openssl路径 3、上传openssl安装包到服务器:openssl-1.1.1t.tar.gz,并且解压,安装: make完成图示: 此时版本还是1.1.1q的动态库: 4、更新使用最新版openssl库: 5、重新加载动态链接库

    2024年01月21日
    浏览(11)
  • CSRF安全漏洞修复

    使用burp进行拦截请求 然后使用csrf伪造进行请求伪造。 在每个请求中增加 referer字段,如果没有这个字段则说明是伪造的请求。然后判断referer字段的域名和request的请求域名是否相同,如果不同则说明是伪造的请求。 本处判断只判断接口,对页面进行放行(判断是否为页面的

    2024年02月16日
    浏览(12)
  • 不安全的TLS协议漏洞修复

    不安全的TLS协议漏洞修复

    以上是在做项目过程中,发现了Nginx的配置支持了SSL3.0, TLS1.0和TLS1.1等不安全的协议,存在安全隐患。 登录了服务器,修改Nginx的配置,如果有多套,都需要修复,修改的配置如下: 使用工具:Nmap工具 下载地址:https://nmap.org/download 因为我本机是Windows 10,就下载了nmap-7.93-s

    2024年02月05日
    浏览(27)
  • 漏洞修复--Haxx curl 安全漏洞 (CVE-2020-8177)

    漏洞修复--Haxx curl 安全漏洞 (CVE-2020-8177)

    Haxxcurl是瑞典Haxx公司的一套利用URL语法在命令行下工作的文件传输工具。该工具支持文件上传和下载,并包含一个用于程序开发的libcurl(客户端URL传输库)。Haxxcurl7.20.0版本至7.71.0之前版本中存在安全漏洞。攻击者可利用该漏洞覆盖本地文件。 使用阿里云或者腾讯云的仓库

    2024年02月08日
    浏览(25)
  • vue项目安全漏洞扫描和修复

    vue项目安全漏洞扫描和修复

    npm audit  是npm 6 新增的一个命令,可以允许开发人员分析复杂的代码并查明特定的漏洞。 npm audit名称执行,需要包package.json和package-lock.json文件。它是通过分析 package-lock.json 文件,继而扫描我们的包分析是否包含漏洞的。 npm audit命令将项目中配置的依赖项的描述提交到默认注

    2024年02月06日
    浏览(13)
  • 【高危安全通告】微软8月多个漏洞修复

    【高危安全通告】微软8月多个漏洞修复

    安全狗应急响应中心监测到,微软发布了2022年8月的例行安全更新公告,共涉及漏洞数121个,严重级别漏洞17个。本次发布涉及组件有Microsoft Office Outlook、Microsoft Office Excel、Active Directory Domain Services、Windows Kerberos、Windows Storage Spaces Direct、Windows Print Spooler Components、Windows Netw

    2024年02月05日
    浏览(9)
  • Ubuntu无法引导启动的修复

    Ubuntu无法引导启动的修复

    TLDR:使用Boot-Repair工具。 Boot-Repair 是一个简单的工具,用于修复您在Ubuntu中可能遇到的常见启动问题,例如在安装Windows或其他Linux发行版后无法启动Ubuntu时,或者在安装Ubuntu后无法启动Windows时,或者当GRUB不再显示时,某些升级会破坏GRUB等。 引导修复允许您通过简单的单击

    2024年02月03日
    浏览(8)
  • 【网络安全】SQL注入漏洞的修复建议

    【网络安全】SQL注入漏洞的修复建议

    SQL注入是Web应用程序常见的安全漏洞之一,攻击者通过恶意构造的SQL查询语句,成功在应用程序的数据库中执行任意操作,导致数据泄露、篡改或其他安全问题。 本篇技术博客将详细介绍SQL注入漏洞的修复建议,包括过滤危险字符和使用预编译语句,通过具体的代码案例帮助

    2024年02月06日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包