lianxiaoyi
V2EX  ›  问与答

docker 上面跑 PHP 真的不安全么???

  •  
  •   lianxiaoyi · Apr 19, 2017 · 4454 views
    This topic created in 3336 days ago, the information mentioned may be changed or developed.

    最近竞争对手被人脱裤了。。应该是论坛 discuz 直接访问了数据库造成的。。。作为一家没有专业运维的 phper ,老大就发话了,要保证安全。。。现在做了以下几点

    1.使用的阿里云的 rds ,数据库只能内网访问,只要服务器不被攻破,那数据库还是很难进

    2.所有上传文件均不留在自己服务器,都是放在阿里 oss

    3.缓存服务器也不在本机,都是有另外服务器支撑

    4.ssh 默认 22 端口已经改掉了

    现在正在研究 docker ,以为把运行环境放到 docker 中会更安全,因为你嗅探的数据全是虚拟机的数据,无法对真实机器文件做嗅探,所以应该拿不到密码文件,但是刚看到

    https://www.v2ex.com/t/355724#reply38

    这篇底下评论 docker 并不安全,瞬间就方了。。。不知道有没有必要更换 docker ,还有哪些地方需要注意呢?

    同样回复都会花铜币感谢,希望各位大神指教一二。。。。。。。

    23 replies    2017-04-19 16:50:30 +08:00
    jarlyyn
        1
    jarlyyn  
       Apr 19, 2017 via Android   ❤️ 1
    并不更安全
    lianxiaoyi
        2
    lianxiaoyi  
    OP
       Apr 19, 2017
    @jarlyyn 大神能仔细解答一下么???非常感谢。。。。
    gdtv
        3
    gdtv  
       Apr 19, 2017 via Android   ❤️ 2
    我搭车问一下, openbase_dir 有多安全?会不会被攻破,从而访问到网站目录外的文件?
    ovear
        4
    ovear  
       Apr 19, 2017   ❤️ 1
    没差呀。。你 discuz 被干了,就可以拿到数据库的账号密码,就可以连。。
    docker 是方便部署用的

    @gdtv 百度好多方法绕过
    ss098
        5
    ss098  
       Apr 19, 2017   ❤️ 1
    他这句话并不正确。

    Docker 确实能隔离环境,但是并不是你需要的那种“安全”。
    gouchaoer
        6
    gouchaoer  
       Apr 19, 2017   ❤️ 1
    你服务器上跑了 N 个 php 应用就一定要用不同的 docker 容器跑, docker 是很好的方案
    数据库内网访问没用,你 php 应用有漏洞还是可以拉你的库啊,然后 2/3/4 只是降低一些风险,意义不算大

    你竞争对手是因为把 discuz 和主业务放一起被人从 discuz 下手搞了的吧

    害怕被脱裤最主要的是害怕用户表被拖了,你可以把用户表分离出来,用不同的数据库存,然后 php 登录的地方用 rpc 调用另一个专门负责登录的 php 应用。。。基本上就这样了,没了。。。。
    lianxiaoyi
        7
    lianxiaoyi  
    OP
       Apr 19, 2017
    @gdtv 欢迎上车。。。。。吓得我赶紧百度了一下什么是 openbase_dir
    gouchaoer
        8
    gouchaoer  
       Apr 19, 2017   ❤️ 1
    openbase_dir 根本就没用,还有啥 user_dir 啥的,这些策略 php 官方也慢慢持消息态度的
    lianxiaoyi
        9
    lianxiaoyi  
    OP
       Apr 19, 2017
    @ovear 我已经把 discuz 单独搞了一个服务器,买了阿里云的安骑士收费版,也为它单独买了一个 rds ,它的用户信息也和我原有业务不相同。。。。。可谓是下了血本。。。。。。
    lianxiaoyi
        10
    lianxiaoyi  
    OP
       Apr 19, 2017
    @gouchaoer 应该是从 discuz 下手的。。。我已经把 discuz 完全甩出去了。。。。啊哈哈 。。。。看来要想安全真够麻烦的 。。。。。
    ovear
        11
    ovear  
       Apr 19, 2017   ❤️ 1
    @lianxiaoyi 没用啊。。逻辑是:
    你 Discuz 可以用->Discuz 服务器可以访问数据库->如果是 Discuz 有洞洞->Discuz 服务器被淦->通过 Discuz 服务器脱裤
    问题在 Discuz 身上呀。。。
    血本下错地方了。。血本应该放在对 Discuz 进行代码审计,还有做所有好日志
    lianxiaoyi
        12
    lianxiaoyi  
    OP
       Apr 19, 2017
    @ovear 我们的 discuz 不是很重要,只是一些资料放里面用户可以找到。。。。一天访问量也不到 2000 。。而且它现在也不访问我主业务的数据库。。。。已经用两个 rds 隔开了。。。。。相当于给 discuz 完全平移出去了,跟我主业务没半毛钱关系了。。。我现在只要我主业务代码审计做好就行了。。。不过我好久没看手底下人代码了。。。。囧。。。。。
    yongzhong
        13
    yongzhong  
       Apr 19, 2017   ❤️ 1
    docker 的侧重在于通过 image 方式进行部署,只关注应用,基础镜像会删掉很多不必要的软件,而不是像虚拟机一样让你 ssh 上去自己倒腾

    docker 用 namespace,cgroups 帮你完成命名空间到 CPU 等资源的隔离

    你的标题是一个伪命题,没有什么是绝对安全的
    lianxiaoyi
        14
    lianxiaoyi  
    OP
       Apr 19, 2017
    我现在服务器还有 exec 函数权限。。。。醉了 。。。。打算开始用 python 写这部分 exec 内容。。。。。。。
    sagaxu
        15
    sagaxu  
       Apr 19, 2017   ❤️ 1
    用了 docker 会增加那么一点点安全性,起码隔离性好了,但是也无法完全杜绝。再好的运维,也没法阻止猪队友的垃圾代码产生的漏洞。
    lianxiaoyi
        16
    lianxiaoyi  
    OP
       Apr 19, 2017
    @yongzhong 好吧。。。使用 docker 平移生产环境镜像确实比较容易。。。。。。。是我想多了。。。。。
    thankuu
        17
    thankuu  
       Apr 19, 2017   ❤️ 1
    这个锅 docker 不背,明明是 discuz 的锅
    lianxiaoyi
        18
    lianxiaoyi  
    OP
       Apr 19, 2017
    @sagaxu 我也是这么想的。。能有一点点隔离性也是好的。。。增加了一点点难度。。。多个小难度就会集结成大难度。。。。。。应该能防一部分人。。。。
    lianxiaoyi
        19
    lianxiaoyi  
    OP
       Apr 19, 2017
    @thankuu 哥。。我没说是 docker 的锅。。。。我是想问上 docker 后会不会更安全。。。。。。 discuz 我已经完全甩出去了。。。。
    grayon
        20
    grayon  
       Apr 19, 2017   ❤️ 1
    docker 是可以做数据隔离,但是不会增加 php 的安全性, php 被攻陷的话, php 能访问到的资源都会暴露
    docker 本身没什么安全问题,但是 docker 有个远程管理问题可以直接拿到主服务器的 root 权限
    lianxiaoyi
        21
    lianxiaoyi  
    OP
       Apr 19, 2017
    @grayon 我想过对 php 代码进行加密。。。但是因为项目太大。。测试起来比较复杂。。。。所以不敢上加密。。。。。。。。。
    Felldeadbird
        22
    Felldeadbird  
       Apr 19, 2017   ❤️ 1
    要先知道攻击点在何处。 discuz 注入、 XSS 都可能会引起连锁问题。
    用 docker 可以隔离多个 PHP 应用。这样 discuz 被注入了,也就是 discuz 当前隔离区被提权。那么接下来就是考验黑客是否需要对 docker 挖掘漏洞提取。。。。
    你 PHP 加密作用也不大,源码基于 discuz 而来,该有的 0day 漏洞,一样会有。你加密和不加密实际上根本没帮助。
    另外,安全这事情嘛,别交给开发了!既然都有对手来干你们,就安心地去聘请安全人员吧。
    Ouyangan
        23
    Ouyangan  
       Apr 19, 2017
    docker 跟安全有什么关系...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   927 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 22:45 · PVG 06:45 · LAX 15:45 · JFK 18:45
    ♥ Do have faith in what you're doing.