• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zvving
V2EX  ›  程序员

为什么 ImageMagick 这样的开源软件也会引入如此严重的安全漏洞?

  •  
  •   zvving · May 5, 2016 · 7460 views
    This topic created in 3700 days ago, the information mentioned may be changed or developed.

    安全漏洞介绍在这里: 安全预警: ImageMagick 图象处理软件存在远程代码执行(CVE-2016-3714) - FreeBuf.COM | 关注黑客与极客

    LZ 知道开源不是万能的,不过 ImageMagick 这样流行的开源软件必然有少部分外部开发协作维护,为什么也会让这样严重的安全问题代码入库?

    有了解类似情况的前辈能科普下不?

    Supplement 1  ·  May 5, 2016

    很多朋友回复的是软件会有 bug,这当然没问题。

    不过一个图片转换软件为什么要读取并执行图片内容呢?imagemagick 有类似功能?这点我没能理解。

    Supplement 2  ·  May 5, 2016
    乌云的解释很清楚:[CVE-2016-3714 - ImageMagick 命令执行分析 | WooYun 知识库]( http://drops.wooyun.org/papers/15589#rd) 看来的确是有依赖内容调用第三方库执行命令,所以引起的问题。感谢部分答主耐心解释。

    的确是犯了 ”永远不要相信用户的输入“ 类型的错,@justou 👍

    LZ 的确新手一枚,少部分 V 友口下留情才能让 V 站更友好不是。;)
    37 replies    2016-05-06 09:23:35 +08:00
    function007
        1
    function007  
       May 5, 2016   ❤️ 2
    OpenSSL 笑而不语
    tony1016
        2
    tony1016  
       May 5, 2016
    安全 bug 本来就难以被发现。 openssl 比这货更流行,不也心脏出血
    congeec
        3
    congeec  
       May 5, 2016   ❤️ 1
    开源的好处在于代码有很多人看,能发现部分 bug
    当然,代码写的太乱谁也救不了。你看,一楼很懂
    zkd8907
        4
    zkd8907  
       May 5, 2016
    开源!=安全
    akagi
        5
    akagi  
       May 5, 2016
    复杂的边界条件没那么好判断
    realpg
        6
    realpg  
    PRO
       May 5, 2016
    LZ 被迫害妄想症泛滥么

    这是作者故意写的? 2333333
    youxiachai
        7
    youxiachai  
       May 5, 2016
    lz...压根就不知道一个安全漏洞..是历经何其复杂的过程.才被发现.......
    m8syYID5eaas8hF7
        8
    m8syYID5eaas8hF7  
       May 5, 2016
    @youxiachai 对,之前看 struts 那个漏洞的分析贴,不认真看源码真的是什么都发现不了。。。。
    Testalias
        9
    Testalias  
       May 5, 2016
    NTP 也爆出漏洞了
    akagi
        10
    akagi  
       May 5, 2016
    @youxiachai +1 不过自动化工具可以代劳一部分
    xcodebuild
        11
    xcodebuild  
       May 5, 2016
    只要是软件都会有 bug 。。和开源不开源没关系
    sunsh217
        12
    sunsh217  
       May 5, 2016
    免费给你用就不错了,还鸡鸡歪歪。 不想用可以不用。
    xbb7766
        13
    xbb7766  
       May 5, 2016 via Android
    Openssl 和 bash 发来贺电
    leavic
        14
    leavic  
       May 5, 2016
    我从来就不相信别人写的代码
    loading
        15
    loading  
       May 5, 2016   ❤️ 2
    对于开源项目,说句实话,大家都忙于完善功能,对于安全方面,很多都只修正浅显的漏洞。
    harry890829
        16
    harry890829  
       May 5, 2016
    然而,还有一部分人专门 review 代码找 bug 的,找到了拿到黑市卖……
    R4rvZ6agNVWr56V0
        17
    R4rvZ6agNVWr56V0  
       May 5, 2016   ❤️ 1
    鄙人之见,代码中的安全问题往往是经验问题。 contributor 们虽然会写代码但并不一定有很强的意识去 review 代码做安全审查
    ragnaroks
        18
    ragnaroks  
       May 5, 2016
    @loading
    +Max
    foonsun
        19
    foonsun  
       May 5, 2016
    openssl 笑了~
    dphdjy
        20
    dphdjy  
       May 5, 2016 via Android
    @leavic 我连自己写的都不相信 :doge:
    janxin
        21
    janxin  
       May 5, 2016 via iPhone
    为什么大公司的应用也有 bug 呢
    visonme
        22
    visonme  
       May 5, 2016   ❤️ 1
    自古开源不缺坑,只是个臭虫那更加正常了。
    流行度和有外部团队协作维护这不能说明它就不能有重大 bug ,只是在有些的空间和时间内,相对会减低 bug 而已,毕竟真正一天到晚针对 IM 的做安全测试的公司,团队,个人会有多少呢?
    像 ms , google 等大公司有专业的安全 /测试团队,他们的产品也无法避免存在重大的 bug 的问题,所以对于开源我们不能要求太高了。
    zaishanfeng
        23
    zaishanfeng  
       May 5, 2016 via Android
    额 漏洞之所以叫漏洞 是因为你没发现的时候它不叫漏洞
    ffffwh
        24
    ffffwh  
       May 5, 2016
    不好的编程习惯引入的漏洞。

    比方说这次是用了 system()来开 subprocess ,而不是 fork/exec 。
    skyworker
        25
    skyworker  
       May 5, 2016
    如果你能去传说中的"0day"漏洞交易市场看看, 那里的安全性 bug 估计会更让你叹为观止.
    superbear
        26
    superbear  
       May 5, 2016
    你以为开源软件背后是一堆人在维护,其实可能只是一两个人在撑着
    zingl
        27
    zingl  
       May 5, 2016   ❤️ 1
    “让这样严重的安全问题代码入库”

    这马后炮放的
    SlipStupig
        28
    SlipStupig  
       May 5, 2016
    漏洞就跟 bug 一样,是人就会犯错
    youxiachai
        29
    youxiachai  
       May 5, 2016
    oh,no

    lz 该从哪里吐槽呢..

    "不过一个图片转换软件为什么要读取并执行图片内容呢? imagemagick 有类似功能?这点我没能理解。"

    试问一些,一个图片转换文件,不读取文件内容,怎么转换...

    至于后面那句"读取并执行图片内容",那是发现了这个远程执行漏洞...才有这个问题.....不知道 lz 能不能看懂..

    我感觉..lz 对于安全这块的知识几乎是空白的..
    palytoxin
        30
    palytoxin  
       May 5, 2016
    ImageMagick 够难用了,谁说开源就一定好。 IDEA 把 eclipse 甩出一条街
    justou
        31
    justou  
       May 5, 2016   ❤️ 1
    永远不要相信用户的输入
    keakon
        32
    keakon  
       May 5, 2016
    有个东西叫缓冲区溢出,没有做好检查的话,会一直往后写,导致栈被修改掉。而函数的返回地址也在栈里,就导致返回时跳到其他区域,就能执行攻击代码了。
    allenx
        33
    allenx  
       May 5, 2016
    谁让现在这么多闲得蛋疼的人专门去找别人的漏洞呢
    ChiChou
        34
    ChiChou  
       May 5, 2016
    @allenx 有经济利益驱动,怎么能叫闲的蛋疼呢~
    binux
        35
    binux  
       May 5, 2016   ❤️ 1
    这个洞根本不能用粗心犯错解释的,完全就是经验习惯问题。
    system 这么高危的调用,正常都要提起 12 分警觉。而且就像 sql 注入一样,过滤是不够的。
    lslqtz
        36
    lslqtz  
       May 6, 2016 via iPhone
    openssl 笑而不语。
    Neveroldmilk
        37
    Neveroldmilk  
       May 6, 2016
    开源不代表安全吧,这就好比“公共汽车会比私家车安全”一样的伪命题。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1022 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 107ms · UTC 22:45 · PVG 06:45 · LAX 15:45 · JFK 18:45
    ♥ Do have faith in what you're doing.