天天看點

常見運維安全漏洞0x00背景0x01 常見薄弱的安全意識0x02 安全風險典型案例

0x00背景

     常見的不安全的運維意識與運維漏洞,前車之鑒,後者可鑒。

0x01 常見薄弱的安全意識

敏感端口對外開放

資料庫或者緩存應用屬于敏感應用,通常部署在内網,但是如果部署的機器有内外網ip,且預設監聽位址為0.0.0.0的話,則敏感端口會對外開放。如mysql/mongodb/redis/rsync/ docker daemon api等端口對外開放。

敏感應用無認證、空密碼或者弱密碼

如果敏感應用使用預設配置,則不會開啟認證,mysql/mongodb/redis/rsync/supervisord rpc/memcache等應用無認證。有時為了測試友善,配置了弱密碼或空密碼,則認證形同虛設。

敏感資訊洩露,如代碼備份、版本跟蹤資訊、認證資訊洩露

web.tar.gz/backup.bak/.svn/.git/config.inc.php/test.sql等資訊洩露随處可見,人人知道危險,但是始終時不時會有人會踩坑。

應用預設配置未清除

jenkins script/apache server-status等預設功能未清理,例如下圖可直接執行指令。

應用系統打開debug模式

Django debug模式開啟暴露uri路徑,phpinfo()暴露伺服器資訊甚至webroot等,之後攻擊者便可借此進一步滲透,很多白帽子應當有此同感,發現了sql注入但是寫不了webshell,如果能遇上個phpinfo()那是再好不過的事情了。

應用漏洞未及時更新

越是通用的應用,就越經常爆出漏洞。有句話說的好:不是因為黑客這個世界才不安全,而是因為不安全才會有了黑客,才會有黑客去揭開那層假象,讓我們發現有那麼多不安全。于是Struts2、OpenSSL、Apache、Nginx、Flash等等CVE接踵而來。

權限管理松散

不遵循最小權限原則,給開發提供root權限或者給業務賬号授權admin權限。

0x02 安全風險典型案例

弱密碼

  1. SSH弱密碼、資料庫弱密碼、中間件管理背景弱密碼、zabbix弱密碼等。
  • 攻擊者利用資産掃描或者暴力破解攻擊發現弱密碼。

WEB-INF洩露

  1. WEB-INF 是 Java 的 WEB 應用的安全目錄。如果想在頁面中直接通路其中的檔案,必須通過 web.xml 檔案對要通路的檔案進行相應映射才能通路。通常一些 web 應用我們會使用多個 web 伺服器搭配使用,解決其中的一個 web 伺服器的性能缺陷以及做均衡負載的優點和完成一些分層結構的安全政策等。在使用這種架構的時候,由于對靜态資源的目錄或檔案的映射配置不當,可能會引發一些的安全問題,導緻 web.xml 等檔案能夠被讀取。
  • 攻擊者通過掃描目錄,浏覽器直接讀取即可

svn運維安全風險

  1. 部署web代碼時誤将.svn目錄上傳
  2. 使用rsync上傳代碼時沒有exclude掉 .svn目錄,svn倉庫也沒有使用svn propedit svn:ignore <目錄或檔案>的方式ignore掉不應當上傳的檔案或目錄。
  • 攻擊者利用svn資訊洩露利用工具Svn-Tool或者svn-extractor還原代碼。

rsync通路控制風險

  1. rsync使用root使用者啟動,子產品沒有配置認證,還對外開放預設端口873。
  • 攻擊者利用rsync寫crontab任務成功反彈shell,并種上了挖礦木馬。

redis運維安全風險

  1. redis使用root使用者啟動,沒有配置認證,還對外開放預設端口6379。
  • 攻擊者利用redis寫ssh公鑰到root使用者的.ssh目錄成功登上機器。一般部署redis的機器都有内網ip,攻擊者可借此進行内網漫遊了。

kubernetes安全配置風險

  1. k8s的api對外開放,同時未開啟認證。
  • 攻擊者調用api建立容器,将容器檔案系統根目錄挂載在宿主根目錄, 攻擊者利用寫crontab任務成功反彈shell,并在宿主種上了挖礦木馬,有時候容器裡跑着未編譯的代碼或者在淪陷的機器上可以拉到私有docker鏡像倉庫的任意鏡像,後果将難以想象。

docker安全配置風險

  1. 單機安裝docker之後忽略檢查iptables,導緻docker修改iptables開放外網,docker daemon預設是能控制宿主iptables的,如果docker daemon使用tcp socket或者啟動的容器,危害更大。
  • 攻擊者通過通路docker daemon,控制容器,甚至連宿主一同控制。

繼續閱讀