V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lianxiaoyi
V2EX  ›  问与答

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

  •  
  •   lianxiaoyi · 2017-04-19 10:05:12 +08:00 · 3938 次点击
    这是一个创建于 2784 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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

    @gdtv 百度好多方法绕过
    ss098
        5
    ss098  
       2017-04-19 10:15:49 +08:00   ❤️ 1
    他这句话并不正确。

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

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

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

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

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