首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >匹配安全openssl和不安全openssl的正则表达式

匹配安全openssl和不安全openssl的正则表达式
EN

Stack Overflow用户
提问于 2014-07-20 10:52:05
回答 3查看 378关注 0票数 1

这样做的目的是要在多台机器上运行ansible或fabric,以找出哪些机器容易受到心脏出血的影响。心脏出血已经有一段时间了,这将搜索安装在Ubuntu12.04LTS上的版本。

对于Ubuntu用户来说,正确的补丁版本也依赖于发布。使用此列表查看发布的最低安全版本:

代码语言:javascript
运行
复制
Ubuntu 10.04: Unaffected (Shipped with older version prior to vulnerability)
Ubuntu 12.04: 1.0.1-4ubuntu5.12
Ubuntu 12.10: 1.0.1c-3ubuntu2.7
Ubuntu 13.04: SUPPORT END OF LIFE REACHED, SHOULD UPGRADE
Ubuntu 13.10: 1.0.1e-3ubuntu1.2

我已经对此进行了一段时间的修补,我不知道为什么这与连字符以外的内容不匹配:

代码语言:javascript
运行
复制
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9].[1-2]*)\b'

将匹配

代码语言:javascript
运行
复制
Version: 1.0.1-

而不是

代码语言:javascript
运行
复制
Version: 1.0.1-4ubuntu5.16

我试过:

代码语言:javascript
运行
复制
dpkg -s openssl | grep -Ei '\b(Version: (0|1)\.0\.(0|1)[a-c]\-(ubuntu)*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (0|1)\.0\.(0|1)[a-f]\-(ubuntu)*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (0|1)\.[0-9]\.(0|1)[c-z]?\-(ubuntu)[5-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]-- -[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]---[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]--[4-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]--[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]--[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]--[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]-[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9].([4-9]ubuntu))\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9].([4-9]ubuntu*))\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9].[4-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9].[4-9]ubuntu)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9][c-z]?--[4-9](ubuntu)*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9][c-z]?--[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9][c-z]?--[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9][c-z]?\-[4-9](ubuntu)*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\- --[4-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-([4-9]ubuntu*))\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-*[4-9])\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-*[4-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\---[4-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\---[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\--[4-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\--[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\--\-[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-.[4-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-[4-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-[4-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-[4-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-[4-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-[4-9]ubuntu*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-\.[4-9]*)\b'
dpkg -s openssl | grep -Ei '\b(Version: (1)\.[0-9]\.[1-9]\-\[4-9]*)\b'

我可能做了很明显的错事,请帮帮忙。

我的逻辑是:

  1. 检查机器是否有最低安全版本或更高版本?中频机
  2. 有安全版本或更高版本,一切正常,什么都不做。
  3. 如果计算机没有安全版本或更高版本,如果计算机与较低不安全版本匹配,则执行另一正则搜索。
  4. 如果机器与旧版本/不安全版本匹配,请执行一些操作。
EN

回答 3

Stack Overflow用户

发布于 2014-07-20 14:04:46

根据CVE-2014-0160,下列版本受到影响:

  • 1.0.1-beta1
  • 1.0.1-beta2
  • 1.0.1-beta3
  • 1.0.1
  • 1.0.1a
  • 1.0.1b
  • 1.0.1c
  • 1.0.1d
  • 1.0.1e
  • 1.0.1f
  • 1.0.2-beta1

因此,最简单的方法就是查找这些版本号:

代码语言:javascript
运行
复制
^Version:\s+1\.0\.(1([abcdef]|\.beta[123])?|2\.beta1))(-|$)

我不确定beta版本的编号语法,您可能需要调整它。

票数 1
EN

Stack Overflow用户

发布于 2014-07-20 10:57:09

您可以尝试下面的grep命令来执行grep --以Version:开头的行,

代码语言:javascript
运行
复制
dpkg -s openssl | grep -Ei '\bVersion:.*$'

代码语言:javascript
运行
复制
dpkg -s openssl | grep -oP '\bVersion: 1\.[0-9]\.[0-9](?:[a-z])?-[0-9]ubuntu[0-9]+(?:\.[0-9]+)?\b'

示例:

代码语言:javascript
运行
复制
$ dpkg -s openssl | grep -Ei '\bVersion:.*$'
Version: 1.0.1f-1ubuntu2
$ dpkg -s openssl | grep -Ei '^Version:.*$'
Version: 1.0.1f-1ubuntu2
票数 0
EN

Stack Overflow用户

发布于 2014-07-20 11:04:01

我试过:

代码语言:javascript
运行
复制
dpkg -s openssl | grep -Ei '\b(Version: (1)\W+)\b'

对我来说很管用

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

https://stackoverflow.com/questions/24849755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档