linux服務器淪陷爲它人發送短信的工具

linux服務器淪陷爲它人發送短信工具的原因:


 

    今天上班產品經理說:公司的短信驗證碼剩餘使用量爲0j_0062.gif,頭一天我進行檢查的時候還剩1萬多條。震驚!震驚!震驚!


   

查找過程:

  一:於是查看與我們第三方短信運營商進行溝通,查看相應的情況,具體如圖:

    wKiom1kLIU_ANsKyAAAbergow4o428.png-wh_50

    當時的短信條數已經爲0,我們繼續查看下一條:

    wKioL1kLIuPjXftkAACkYkSRlhw889.png-wh_50

    這個已經可以簡單的發現問題了:

    

    1.號碼爲空,發送狀態爲空。可能存在人爲的繞過代碼中的驗證


    2.發送時間(日期)是接連不斷的發送。代表着代碼中的驗證10s,30s,60s這些驗證被人爲的跳過了。


    3.短信運營商沒有對號碼進行過濾,審查。只要我們進行提交,短信運營商就進行發送,發送了就收費。



  二:查看2017.05.04 00:00後端日誌的情況,具體如圖:

   wKiom1kLJPXBTcAKAABKVkbfk88799.png-wh_50


   基本上日誌上的內容都是這樣的情況。遇到此種問題需要與開發進行溝通,協助開發解決此事。

   

   這個日誌是後端的日誌,我們還有前端的一個訪問日誌,大概都是從registerGetPhoneCode當中訪問來的。我們來通過grep和awk查看一下、命令如下:


cat www.log|grep registerGetPhoneCode|awk '{print $1}' |sort|uniq -c |sort -nr |head -n 40


   如圖:

   wKioL1kLKE3ySmKRAABnYPWgj3g086.png-wh_50

   

   命令詳解:查看日誌文件,首先使用grep對registerGetPhoneCode進行過濾,再通過awk倒序排序,去重,只顯示行數之後取文件的第一列進行輸出(被我馬賽克是IP,想了想還是不暴露爲好)。


   很顯然,由此可以看見在凌晨時它人對服務器別有用心。

  

  三:解決辦法:

   1.將這些IP全部添加到防火牆中。。。


     可使用shell腳本添加到防火牆中,可以挨個IP進行手動敲入。。。

     也可使用ipset集合對多量IP實行一條iptables規則

 

   2. 此處開發傳來消息,代碼中:前端‘代碼沒有對手機號進行過濾,導致可以隨意拼接參數’。找到後端的發送網址,進行發送短信。

     

     緊急開發代碼,對手機號進行限制。增加相應的圖形驗證碼。


     開發也在加班加點的解決此事。。。




總結:

    

    1.事情大概是5.4凌晨發生的,從凌晨到上班這段時間我們都沒有發出報警,及時的通知相關人員,因此我們需要建立監控和報警體系。現在的開源監控框架不少,例如zabbix。


    2.代碼質量需要提升,公共方法需要寫入相關說明文檔。


    3.建立相關安全組,減少暴露公網的端口。

   

    

     


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章