免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 4214 | 回复: 37
打印 上一主题 下一主题

[转] OpenSSH缓冲区管理操作远程溢出漏洞(包括AS3) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-04-01 23:35 |只看该作者 |正序浏览
以下是我今天看到的,AS3的SSH是3.6.1p2

我找到一个3.8的下载地址
ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-3.8p1.tar.gz
(2004-2-24)

刚刚发现一个最新的
ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-3.8.1p1.tar.gz

(2004-4-19)

绿盟科技紧急通告(Alert2003-06)
Nsfocus安全小组(security@nsfocus.com)
http://www.nsfocus.com
发布日期:2003-09-17

CVE CAN ID:CAN-2003-0693

受影响的软件及系统:
====================
所有低于OpenSSH 3.7的版本均受影响:

    OpenSSH OpenSSH 3.6.1 p2
    OpenSSH OpenSSH 3.6.1 p1
    OpenSSH OpenSSH 3.5
    OpenSSH OpenSSH 3.4 p1
    OpenSSH OpenSSH 3.4
    OpenSSH OpenSSH 3.3 p1
    OpenSSH OpenSSH 3.3
    OpenSSH OpenSSH 3.2.3 p1
    OpenSSH OpenSSH 3.2.2 p1
    OpenSSH OpenSSH 3.2
    OpenSSH OpenSSH 3.1 p1
    OpenSSH OpenSSH 3.1
    OpenSSH OpenSSH 3.0.2
    OpenSSH OpenSSH 3.0.1
    OpenSSH OpenSSH 3.0

综述:
======
3.7版本之前的OpenSSH包含一个缓冲区管理错误,远程攻击者可以利用这个漏洞进行拒绝服务或者可能以OpenSSH进程权限在系统上执行任意指令。

根据目前的信息显示此漏洞将大多数情况下将只造成拒绝服务攻击,但也有消息说已经有可以执行指令的攻击代码在流传,因此我们强烈建议用户立刻检查一下您的系统是否受此漏洞影响,并按照我们提供的解决方法予以解决。

分析:
======
OpenSSH是一种开放源码的SSH协议的实现,初始版本用于OpenBSD平台,现在已经被移植到多种Unix/Linux类操作系统下。

3.7版本之前的OpenSSH包含一个缓冲区管理错误,远程攻击者可能利用这个漏洞进行拒绝服务或者可能以OpenSSH进程权限在系统上执行任意指令。

当OpenSSH接收到一个长度超过已分配缓冲区大小的数据包时会试图重新分配一块大的内存,这时记录当前缓冲区大小的变量值会相应增加,新长度值会被检查是否符合要求,如果检查失败会调用fatal()来清理并退出,在某些情况下,执行清理工作的代码可能会按新缓冲区长度的大小去释放那个实际并没有扩大的缓冲区,结果导致缓冲区外的数据被重写为NULL值。这样可能造成拒绝服务攻击或执行任意指令。

解决方法:
==========
如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

  * 在边界或者主机防火墙上过滤不可信任IP对SSH服务的访问请求,通常是22/TCP端口。

  * 使用权限分隔来使影响最小化

   运行OpenSSH 3.2或更高版本的系统管理员可以通过在sshd配置文件中使用
   "UsePrivilegeSeparation"配置选项来降低这个漏洞的影响。一般来讲,可以通过
   创建privsep用户,设置受限制的(chroot)环境,然后向/etc/ssh/sshd_config中
   添加以下命令行来实现上述操作:

     UsePrivilegeSeparation yes

   这个临时解决方案不能防止攻击者利用这个漏洞,但由于权限分隔机制,攻击者会被局限在仅有受限权限的受限制的chroot环境中。这个临时解决方案不能防止漏洞导致拒绝服务。不是所有的操作系统厂商都执行了权限分隔代码,在某些操作系统中代码还可能限制OpenSSH的功能。

厂商状态:
==========
OpenSSH
目前厂商已经在3.7及以后版本的软件中修补了此漏洞,请到厂商的主页下载ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
其他系统厂商的安全补丁请在"参考链接"中查询。

附加信息:
==========
参考链接:

http://www.nsfocus.com/index.php?act=sec_bug&do=view&bug_id=5405
http://www.openssh.com/txt/buffer.adv
http://www.cert.org/advisories/CA-2003-24.html
http://www.linux-mandrake.com/en/security/2003/2003-090.php
http://www.debian.org/security/2002/dsa-382
http://www.redhat.com/support/errata/RHSA-2003-279.html
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-03:12.openssh.asc
nozxb 该用户已被删除
38 [报告]
发表于 2004-04-23 17:27 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
nozxb 该用户已被删除
37 [报告]
发表于 2004-04-23 17:01 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
36 [报告]
发表于 2004-04-03 17:34 |只看该作者

[转] OpenSSH缓冲区管理操作远程溢出漏洞(包括AS3)

[quote]原帖由 "platinum"]为什么一定建立一个sshd的用户[/quote 发表:

openssh支持Privilege Separation,将运行中的openssh分成两部分,一部分有特权,另一部分没有特权,所有的这一切都是出于安全的考虑。而没有特权的部分是使用sshd用户运行的,所以需要加入sshd用户。在Openssh 3.8中,这是一个默认打开的选项,不须要在sshd_config中写明。而在Redhat7.3中的openssh还不支持这种功能,所以默认安装的redhat7.3是不存在这个用户。升级时需要加入sshd用户,否则启动openssh会失败。
你也可以升级后在sshd_config文件中加入
UsePrivilegeSeparation no
取消Privilege Separation功能。这样就不需要加入sshd用户了,不过出于安全的考虑并不推荐这种做法。

论坛徽章:
0
35 [报告]
发表于 2004-04-03 06:17 |只看该作者

[转] OpenSSH缓冲区管理操作远程溢出漏洞(包括AS3)

为什么一定建立一个sshd的用户

论坛徽章:
0
34 [报告]
发表于 2004-04-02 20:48 |只看该作者

[转] OpenSSH缓冲区管理操作远程溢出漏洞(包括AS3)

以下是我的经验(苦,就是因为升级openssh ,现在在数据中心机房还有台Redhat7.3服务器还等着我去执行3,4两步操作,幸好上面还没有部署任何服务,不幸中的万幸

在 redhat 7.3 及其以下版本上将openssh升级到3.8p1时,首先要进行以下操作

1.升级 zlib 到 zlib-1.1.4-8.7x

2.升级 zlib-devel 到 zlib-devel。
下载这两个包后,运行 rpm -Uvh zlib* ,升级包可以到rpmfind.org上面查找,下载地址是ftp://195.220.108.108/linux/redhat/updates/7.3/en/os/i386/zlib-1.1.4-8.7x.i386.rpm,ftp://195.220.108.108/linux/redhat/updates/7.3/en/os/i386/zlib-devel-1.1.4-8.7x.i386.rpm,如果没有,留下Email,我可以发给你

3.在/etc/passwd 里面增加一行 sshd:74:74rivilege-separated SSH:/var/empty/sshd:/sbin/nologin

4.在/etc/shadow 里面增加一行 sshd:!!:12506:0:99999:7:::

最后升级openssh
./configure --prefix=/usr --with-pam --with-md5-passwords --sysconfdir=/etc/ssh
make
make install

如果没有执行1,2两步操作,在 ./configure 时将会出错
如果没有执行3,4两步操作,在 make install 时将出现
    Privilege separation user sshd does not exist
    make: [check-config] Error 255 (ignored)
错误。
此时你的sshd已经是升级成功了,但是无法启动。当你重新启动sshd时(比如重起服务器),出现
[root@root openssh-3.8p1]# service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshdrivilege separation user sshd does not exist                                                           [FAILED]
错误,如果你是使用ssh远程进行操作的,这意味着你将不得不跑到服务器面前去进行3,4两步操作。
当然你也可以在升级openssh之后进行3,4两步操作,但在操作完成之前不要重起sshd服务。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
33 [报告]
发表于 2004-04-02 19:11 |只看该作者

[转] OpenSSH缓冲区管理操作远程溢出漏洞(包括AS3)

传完了。

论坛徽章:
0
32 [报告]
发表于 2004-04-02 19:09 |只看该作者

[转] OpenSSH缓冲区管理操作远程溢出漏洞(包括AS3)

手动cp过去了,重启服务了,还是SSH-1.99-OpenSSH_3.8p1,为什么呀?

论坛徽章:
0
31 [报告]
发表于 2004-04-02 18:50 |只看该作者

[转] OpenSSH缓冲区管理操作远程溢出漏洞(包括AS3)

原帖由 "badseed" 发表:
这样安装的
./configure --prefix=/usr --with-pam --with-md5-passwords  --sysconfdir=/etc/ssh
make
make install


最后有几行提示
/etc/ssh/ssh_config already exists, install will not overwrite
/etc/ssh/sshd_config already exists, install will not overwrite
/etc/ssh/moduli already exists, install will not overwrite
/etc/ssh/ssh_host_key already exists, skipping.
/etc/ssh/ssh_host_dsa_key already exists, skipping.
/etc/ssh/ssh_host_rsa_key already exists, skipping.
/usr/sbin/sshd -t -f /etc/ssh/sshd_config
[root@server openssh-3.8p1]#

要不要紧?用不用手动弄过去?

论坛徽章:
0
30 [报告]
发表于 2004-04-02 18:39 |只看该作者

[转] OpenSSH缓冲区管理操作远程溢出漏洞(包括AS3)

原帖由 "platinum" 发表:
你还记得升级前是什么吗?
AS3是1.9,升级后还是1.9
另外,好好,你说改他提示的版本号,具体怎么改?sshd_config吗?不会……

升级之前是 SSH-2.0-OpenSSH_3.5p1
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP