事件發生在3年前網際網路公司工作,很難避免不和黑客們打交道,我呆過的兩家網際網路公司,幾乎每月每天每分鐘都有黑客在公司**上掃瞄。
有的是尋找sql注入的缺口,有的是尋找線上伺服器可能存在的漏洞,大部分都是各個黑客檢測工具來掃瞄,當然更高階一點的入侵需要很多人工協助。
一般情況下,**被黑客入侵都是因為開發人員平時沒有安全意識導致的,厲害的黑客往往會對平台的業務和內部流程非常熟悉,很多漏洞是從邏輯上分析出來的。
當然了,所有的黑客攻擊行為都是有目的,99%都是因為其中隱藏著暴利。
比如2015-2023年,很多網際網路金融公司遭遇黑客敲詐,最後都是打錢了事。
今天給大家分享的是,去年一家公司發生的事情。
技術人員接到這個反饋之後,在生產環境多次測試並沒有復現這個問題,於是給客戶反饋有可能是網路的問題,可以換個網路再試試。
技術這邊將問題上公升到技術經理,開始排查問題原因,技術經理通過大量測試發現,這個緩慢現象在測試10次會復現1次。
看來又是乙個偶現的問題,偶現的bug是最難處理的,技術經理帶著研發人員在伺服器調了一下前端業務日誌,分析之後也沒有找到具體的原因。
公司有乙個核心**商將此問題反饋到技術老總,老總安排技術總監來關注此問題。技術總監要求把訪問路徑的關鍵節點都打上日誌,看看具體是哪部分操作慢了。
既然問題是偶發並且後面的快取使用率並不高,那麼應該不是程式哪塊出現bug了,應該是其它方面的問題,遂要求排查是否是伺服器問題。
前端使用者使用手機操作某乙個功能時,請求經過防火牆路由器分發到最前端的nginx,nginx 又通過均衡負載分發到後面的五颱業務伺服器。
業務操作的時候需要呼叫一組資料,這些資料會根據業務規則快取到背後的快取伺服器集群中,用來緩解後端資料庫的壓力。
經過和運維人員配合調查發現,在分發的這5臺業務伺服器中,其中有1臺伺服器的壓力比較大,凡是請求分發到這台伺服器的時候就會出現慢的情況。
因為線上的伺服器已經用了很多年,懷疑是不是伺服器配置老化導致的問題,隨後將壓力比較大的伺服器進行下線,無縫切換到新的伺服器上。
過了半個小時後繼續觀察,又發現另外的一台伺服器也出現負載壓力大的問題。後面變了很多方案,比如減少到3臺伺服器來支撐,或者增加到9臺伺服器來支撐。
總是切換半個小時到兩個小時的時候,其中的1-2臺伺服器的壓力會突然上來,一直保持比較高的訪問量,經過這些測試排除是伺服器的問題。
緊接著排除nginx是不是分發的策略有問題,導致某個伺服器分發的請求過多,試著變了幾次nginx的分發策略後,還是會復現出問題,排除ngingx分發異常。
技術人員繼續跟蹤,負載壓力比較高的伺服器執行緒down出來和正常的伺服器對比,發現在負載壓力比較大的伺服器上某個執行緒的呼叫數量異常的高。
再繼續跟蹤這個執行緒,原來是某乙個忘記密碼的功能被頻繁的呼叫,忘記密碼應該是乙個普通的介面,為什麼會被這樣高頻率的呼叫呢?
然後再繼續跟蹤是哪些ip在頻繁的呼叫這些介面,不跟蹤不知道,一跟蹤嚇一跳,把呼叫最頻繁的 top100 ip列出來查了一下,發現都是國外的ip。
什麼 巴黎、孟買、菲律賓、泰國,幾乎所有的外國的ip都有,但是作為一家國內的第三方支付公司,怎麼可能會出現國外的ip呢?
大家都知道在手機上填忘記密碼的時候,絕大部分平台都是使用手機號作為其中的乙個條件,如果你沒有在這家平台註冊,那麼就會反饋手機號不存在。
這是乙個非常常見的功能,但是對於黑客來講,這個功能夠暴利了。
很多同行業的競爭者需要挖角其它公司客戶,但是怎麼知道這些平台的客戶有哪些?
直接通過這個介面,暴力破解就可以了。
是不是很黃很暴力!
因為公司處理的業務都是國內業務,所以只要直接在 nginx 寫指令碼,把所有來自國外的ip都給遮蔽,可以暫時解決被國外 ip 攻擊的問題。
可能黑客過了一晚上也反應過來了,又開始使用國內的伺服器**ip高頻呼叫此介面,既然黑客使用了國內的ip位址,肯定不能把國內ip都封了吧。
不過在 nginx 之後還有乙個前置伺服器,在前置伺服器中加乙個非常簡單的過濾器:設定乙個ip位址在某個時間段內(可配置)只能訪問此介面5次,即可解決此問題。
然後再以使用者為維度加限制,乙個使用者在某個時間段內(可配置)只能訪問此介面5次。
上面這些手段都上完之後,一切都安靜了,再也沒有出現過服務過載或者使用者反饋操作反應慢的問題了。
但是如果黑客有足夠多的國內 ip 呢,為了防止出現這樣的問題,我們再接著對產品進行公升級,來防止黑客的這種可能性。
所以需要公升級新一代的智慧型驗證措施,現在很多創業公司都可以提供這種服務,這樣就從各個維度防止了黑客通過暴力手段獲取客戶資訊。
其實據我所知,很多網際網路公司到現在仍然存在這種漏洞,很容易讓黑客通過暴力破解就拿到使用者註冊的手機號,只要拿到了使用者的手機號後面就可以採用各種營銷策略。
這是目前很多公司,採用的一種競爭手段。
有的時候,產品的易用性和安全性其實是有衝突的,產品在設計的時候,其實就應該和技術多考慮風控的相關設計,不然在產品運營的後期容易出現問題。
乙個大型網際網路公司中風險點非常多,伺服器風險點、業務風險點都需要做提前考慮,同時公司必須配備相應的安全人員,對公司**做常規安全巡檢。
監控公司所有的訪問介面頻次,定期把公司裡面所有的ip訪問情況做成圖表進行分析,看哪些是正常的請求,哪些是異常的訪問。
定期排查統計分析訪問的所有請求,可以提前發現很多問題。
開發人員和黑客鬥爭其實是乙個長期的工作,任何乙個訪問量比較大的公司都會遇到類似的問題,遇到問題不要驚慌,仔細排查每乙個細節,最終肯定會找到問題的答案。
在我的職場經歷中,和黑客有過非常多交手的經歷,現在回過頭來看,這些經歷才是我提公升最快的最好養分。
解決問題是程式設計師成長的第一動力,解決大問題是成為大牛的關鍵。程式設計師的一生,也就是不斷解決問題的一生。
這樣看來,我們要感謝職場上遇到的那些困難!
所有能爬過去的問題都成為了經歷和談資,只有那些越不過的 bug 才能稱之為問題。
黑客瞄準高考生背後,一場反抗位元大陸的鬥爭
高考成績陸續公布那幾天,門羅幣 xmr 挖礦木馬病毒又出現了,這次植入的是 高考錄取查詢系統 開啟幾所高校官方網頁,查詢高考錄取情況,自動觸發門羅幣挖礦程式。那幾天,成千上萬的高考錄取查詢系統因此被卡死。這是門羅幣自今年4月初,為對抗以位元大陸為首的asic礦機選擇硬分叉以來,第8個有公開資料可查的...
東北育才 第6天和第7天
我失言了 沒有寫第6天的部落格 頹 去了 怎麼辦 陷入無限的自責 今天考圖論,該錯的,不該錯的,全錯了。幸好沒有爆零。我們很多板塊確實很弱。今天中午吃手抓飯,但不讓手抓。清真食堂特別節儉不許倒飯,一想起我們學校的食堂,心裡就很不是滋味。下午講課的大佬在高一的時候就已經進了集訓隊,和這樣的大佬坐在一起...
和UI design鬥爭的乙個月
最近乙個月來,一直在使用carbide工具中整合的ui design來生成介面,修改屬性,新增事件響應,期間遇到很多問題,所幸能都找到一些簡單易行的方法來逐個應對,具體如下 1.覆蓋 history ui design 會改寫已經寫好的.cpp和.h檔案,如果需要回溯,可以開啟compare裡面的h...