安全厂商仅通过 openssh 版本判定是否有漏洞

2017-10-26 10:26:38 +08:00
 liuzuo

讲道理各大 linux 系统每个版本对 openssh 升级不是通过升级 openssh 大版本来进行的,都是基于现有 openssh 版本打补丁。 但某些安全厂商提供的扫描工具仅通过 openssh 的标准版本来断定 openssh 是否有漏洞,这也太不负责任了吧。

5257 次点击
所在节点    信息安全
16 条回复
ivmm
2017-10-26 10:39:12 +08:00
不是不负责任,是根本就没能力

做安全的连发行版的修复姿势都搞不清楚,还做 P 个安全?
0xvincebye
2017-10-26 18:48:12 +08:00
是说某盟的扫描器吗
RIcter
2017-10-27 20:53:06 +08:00
@ivmm 说个解决方案?

不通过版本的话,给你一个 exp 打过去,然后挂了谁负责?用户怪谁头上?
不检测的话,是不是又要 PR 一波你们 XXX 做得这么烂这个漏洞都检测不到?

DoS 是不是要给你 DoS 了? RCE 了是不是要在你服务器执行个命令?任意文件删除是不是得删个服务器上的文件?
ivmm
2017-10-27 21:37:17 +08:00
@RIcter

追踪热门发行版的修复记录和发行版的版本号,一般来都说像 RHEL、Debian 都是有安全订阅的,可以追踪安全事件,提醒用户更新。至少我就是这么做的

安全厂商完全可以想到更完美的解决方案。

然后请注意审题,LZ 的情况是 “仅版本判定是否有漏洞” 并不说什么文件扫描,什么某骑士进程常驻。 “ DoS 是不是要给你 DoS 了? RCE 了是不是要在你服务器执行个命令?任意文件删除是不是得删个服务器上的文件?” 你是在说什么,喵喵喵?
RIcter
2017-10-27 21:45:13 +08:00
@ivmm 嗯?不是说判断有漏洞吗?不利用怎么判断呀?
ivmm
2017-10-27 21:49:51 +08:00
@RIcter

如果 openssl-1.0.1e-57.el6.x86_64 是最新版本,openssl-1.0.1e-57.el6.x86_63 存在漏洞,通过子版本号就可以判断
RIcter
2017-10-27 21:56:51 +08:00
@ivmm 讲道理这种方式主机 agent 没问题,而且我们确实也是这么实现的。
但是楼主说的应该是外部扫描吧,外部扫描拿不到这么精确的版本号,所以要怎么判断呢?
ivmm
2017-10-27 22:02:15 +08:00
@RIcter 外部应该扫不到 openssh,如果是 OpenSSL 是可以的
leakless
2017-10-27 22:06:09 +08:00
@ivmm 你都知道外部扫不到 ssh 你还问。。
ivmm
2017-10-27 22:09:57 +08:00
@leakless

能扫到 OpenSSH 的姿势肯定内部 agent 啊
leakless
2017-10-27 22:25:15 +08:00
@ivmm 兄弟。。你见过哪家给机器挨个装 agent 就为了判断是否有漏洞的。。

换句话说,装 agent 的,不是为了判断是否有漏洞而装 agent
想知道你机器是否有漏洞的,为啥要费劲巴拉的装 agent,我一个 exp 打过去不就得了

但是话说回来,你的机器,被别人装了 agent,还是以最高权限运行的,你在机器上的一举一动别人都能知道,甚至别人可以执行任意命令,这安全么?
是,装了 agent 能精准判断版本号,但是你知道他除了判断版本号之外不会做些别的?
万一这个 agent 写的有问题,被人日了,咋算?

不装 agent,我直接用 exp 打你,打死了,是可以精确的判断版本号,但是业务也挂了,咋办?
温柔的扫描,只能看出来大版本号,小版本号看不出来,你还不开心,嫌安全厂商不负责任。

安全:这活你来干我不干了
ivmm
2017-10-27 22:58:41 +08:00
@leakless

可能我一楼的话有点傻。

不过呢,LZ 只是说了厂商仅通过版本来判断漏洞,并没有说是如何修复的,也有没有说 agent 的安装姿势。而且 LZ 也没说是主动安装的厂商的 agent 还是被动的的。

仅通过 cli -- version 或者 -v 是完全不需要 root 权限的,agent 只要一个普通用户的权限即可。“只能看出来大版本号,小版本号看不出来” 这是什么骚操作? openssl-1.0.1e-57.el6.x86_64 正常版本就是这样子的,拿来的大小版本之说?
leakless
2017-10-27 23:25:13 +08:00
@ivmm

一看你就没干过活。
举个例子,oracle 数据库。
用某绿盟家的漏扫给 Oracle 数据库服务器做漏扫,会扫出来 N 多个漏洞。为啥呢?
oracle 的补丁包打完,修复了 N 多漏洞,但是版本号是不变的。
漏扫只能根据扫描信息获取到 Oracle 数据库的版本来匹配漏洞库里和这个版本号有关的漏洞,但是究竟你修没修某些漏洞,是无法通过版本号来确定的,并且漏扫也不可能利用 exp 来验证漏洞是否存在,所以为了防止遗漏漏洞,每个扫 Oracle 的报告上都会列一大堆漏洞,看着巨吓人。
但是注意,在漏洞详情里,会特别标注,扫描是通过版本进行的,可能发生误报。因为无法通过无杀伤性的远程扫描的方式来知道 Oracle 的漏洞究竟修了还是没修,同样的也无法判断涉及漏洞的补丁是打了还是没打。

至于怎么证明你修了漏洞?列出来你打的所有补丁,针对漏扫的报告里涉及的漏洞出个说明文档,证明漏扫涉及的漏洞的补丁我们全都打完了。当然这个说明文档是在上级来检查的时候才弄的文档,平时哪有人弄=。=


再说 agent。
你可以看看现在国内这些云提供商所卖的 VPS 里有哪个是不附赠 agent 的。
至于权限,我建议你看看各家云的 agent 都是拿啥权限跑的,然后再思考一下这东西的安全性。
当然,如果是你自己写个 agent,完全可以用普通权限跑,然后把 version 信息返回到你的控制中心,但问题在于现在哪有用非最高权限跑的 agent,vmtools 还 system 权限呢。
ivmm
2017-10-27 23:33:39 +08:00
@leakless

原来 Oracle 是这样的,学习了,但是 OpenSSH 不会出现类似 Oracle 的版本号问题

既然提到了用安全厂商的,那么肯定是自愿按照相关软件的,至于什么权限怎么操作,肯定是接受用户协议才能注册账号并使用
leakless
2017-10-27 23:42:44 +08:00
@ivmm 话虽这么说,但是首先 99%的人士不会看又臭又长的用户协议的,其次就算看完了又臭又长的协议,很多人还是十分抵触在自己管理的机器上瞎球装和自己业务无关的东西的。。。
并且还是那个老问题,你装完了 agent,万一这个 agent 也有问题呢,这不就相当于直接给自己机器留后门了。。
就算这个 agent 是以普通权限跑的,不还有提权这一步么,还是那句话,装了 agent 之后,鬼才知道它都干了什么 /它能干什么 /它想干什么。
ctsed
2017-11-03 11:50:38 +08:00
脚本丢给运维批量跑提取关键的详细的信息放平台上分析有没漏洞

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/400845

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX