11月到現在才過不到10天
發薪日都還沒到
我卻彷彿經歷了我人生中資訊密度及壓力最大的一個星期
# 前言
嗯?你說放Bemani家的歌會被版權砲?
誰他媽在乎,你只要知道這超好聽就好
# 資安事件
開門見山的說了
我們公司的系統遭到來路不明的駭客攻擊
被平行攻擊並竊取了部分的資料
# 攻擊的起點
11/03 半夜
某個駭客藉由驗證漏洞
註冊並登入了我們的系統
接著不知道哪裡來找到的白癡後門
把一個普通的帳號越權成super group
事件就在這個根本沒人發現的細節中展開序幕
# 發現攻擊
11/03 晚間
有客戶回報訂單莫名被取消
反查之後發現是有人直接打api取消的
這時候大家開始意識到不對勁
因為我們內部人員要做取消單壓根不會用正式站
到底是哪裡來的訊號呢?
跟著經手人log反查
發現是一個從來沒見過的super group帳號
此時才發現完蛋了
操 我們被駭了
# 緊急修復
很操蛋的是 事發的當時
我因為前一天剛熬夜升級資料庫
連日的加班讓我回家倒頭就睡
發現系統遭駭時
我他媽睡死在床上
根本沒人聯絡得到我
此時我真的是很感謝我的Apple Watch
愣是靠著被PM奪命連環call把我震醒了
我總算在事情發生並且擴散失控的兩個小時內醒來了
由於完全不知道駭客攻擊的途徑
我們只能先強制把所有站點設立白名單
然後讓SaaS的客戶一個一個加白名單
我知道這樣很蠢但在大半夜沒人可以找洞和仔細看log的時候只能這樣了好吧
# 漏洞、漏洞還是他媽的漏洞
我們在緊急封鎖網站之後
開始瘋狂的挖api log查詢駭客到底是怎麼越權的
最後在挖出了一個調權限的後門中發現了線索
這東西該死的沒有權限驗證
只要戳api就會該死的作用
但大半夜也沒人能支援了
我們只能先暫時發了個hotfix MR把洞封上
可糟糕的是,那些權限、帳號早就leak到駭客手上了
我們現在也沒什麼手段可以阻擋了
只好維持愚蠢的繼續維持全IP封鎖的白名單制
# 第二波攻擊
就這樣到了隔天早上
好不容易出動了所有的R(A)D(I)
去瘋狂的掃我們還有什麼大漏洞
哇操 平常做弱掃都抓不出來的蟲一發生事情抓的跟什麼米蟲一樣
一整天就是瘋狂的在抓洞補洞
而且每個人都只用自己手上的AI跟人工去掃描
於此同時,我們總不能一直把SaaS服務鎖著不給用
所以我們在補到一個段落之後
還是把IP給開放了
並做了一些路徑封鎖的手段去進行阻擋
這樣會有用才有鬼啦
IP一開放不到五分鐘
駭客就又開始繼續打了
而且這絕對不只是滲透測試的攻擊程度
是可以直接DDoS我們系統的流量
作為一個維運很兩難欸
我不太有辦法直接參與程式的修補
但又不可能直接去做服務的限流
# 無能狂怒
這時候的我很無奈
心如死灰的下了一堆奇怪的armor去阻擋
包括特定路徑封鎖、看到異常流量IP就ban等等
甚至極端到想把整個公司的服務全給擋了
因此此時駭客已經把我們整個公司的服務都給平行打穿了
每個請求的來源就算不是curl、python
也可能是從我們自己家的網站跳板過來的
我總不能把自己家的服務給鎖了吧
# 反守為攻
過了幾個小時候
我盯著那堆被駭客利用的異常帳號
(當然拿不到全部,只能看一個抓一個)
這時候我就開始想
不對 既然駭客開始洪流攻擊了
肯定Load Balancer上能夠看到對方打了我們什麼api
因此掛了一個排程去攔截和分析
雖然沒有馬上鎖定駭客的目的和來源
但總算是找出了一些移動蹤跡
像是駭客「知道」要去訪問/oauth/token去請求新的token
並且是每次都知道要去更新token
也因此我們不管擋多少次
只要駭客手上還有可用的帳號就無法阻止駭客請求我們的服務
因此我的反擊就是:
透過web log去反推駭客是從哪一個跳版站進來的
就直接把對應的s2s secret給反手幹掉了
起碼就算我不知道駭客到底持有什麼帳號
但我總之到自己家有什麼服務可以跳吧
其他外部來源我就管他去死了
這已經不是管這個的時候了
果然,把client secret和token都rotate掉之後
駭客的攻擊頻率大幅降低了
看起來是手上持有的token失效了
# 覆盤
後面的幾天,我每天都盯著load balancer
膽戰心驚的深怕又有突發的異常流量攻打進來
也去認真盤點了一下db中異常的per user
以及從api log裡面反推出到底有多少的客戶資料被外洩了
由於波及範圍過大
我們被個資法逼著去申報備案
後面幾天就是一直在一邊與駭客攻防、一邊準備備案資料、一邊修補漏洞
每天就是加班加班加班
直到我們把最後一筆駭客生成的假帳號刪除之後
我們依舊不敢把心放下來
# 反省
在覆盤時
我們發現了駭客可能並不只一批人
因為在我們被攻擊的同時
新聞中也有許多大企業遭受到攻擊
只是Maintenance的程度和時間不同罷了
其中,大家的攻擊點都有一個共通點
就是一大堆的「AI」攻擊痕跡
怎麼這麼說呢?因為那些他媽該死的假用戶名字
全部都是那種一眼就是AI取的名字
而且這種精準的攻擊
就算是我們這種熟諳資安的人都不見的可以這麼精準的嘗試
除非是我們的source code整個被leak出去
我能想像到的只有AI攻擊了
事實證明
我自己拿沒有記憶的AI打自己家的服務
也能用幾乎一樣的軌跡打穿
這讓我徹身的體悟到現代武器的可怕
這種感覺就跟伊斯蘭國讓隨機一個小朋友持有AK一樣
放在以往
資安專家就那幾個人
而黑帽駭客也就只是其中的一小部分
10個駭客裡面,面對1000個網站
可能還不見的每個網站都有一定的能力比可以被打穿
畢竟人類的腦袋、時間都是有限的
你不一定會成為目標,就算被當作目標可能也沒這麼容易被打穿
但現在完全不同了
現在隨便一個阿貓阿狗都能使用AI去隨機攻擊任意的服務
變成100000個攻擊者(可能裡面還是只有10個人是真的有學過的駭客)
但同樣只面向1000個網站
這個戰力比怎麼算都是溢出的
算力過剩的結果就是所有1000個網站全部都他媽的遭殃
可能同時有100個攻擊同時想要嘗試遍歷你的漏洞
更別提AI的功能力強大到連同樣是AI寫的東西都能打穿
何況是年代久遠的系統
我只能說我對於現在未來科技的發展深深的感受到恐懼
# 生活
抱怨夠了,講點生活瑣事吧
雖然最近忙到靠北
不只把我的生心靈全部給壓榨殆盡
作息也是他媽的一團糟
我一整個星期沒好好的睡覺休息
# 遊戲
跟以前一樣
我有在玩的手遊只有神魔之塔、多鄰國
現在連音遊都很少在玩了
但是!但是!
我他媽的在跟我夫人躺床看B站的時候
夫人開了明日方舟塔露拉的前瞻影片
操 我被帥到
接著夫人又打開了遊戲
讓我看看帥帥的望老頭
哇哇哇哇哇可以不要這樣勾引人嗎
總之因為這種低俗的理由我入坑明日方舟了
# 書
我有一個壞習慣
就是只要人進到誠品、墊腳石等書店
不帶幾本書出來就不舒服
也因此我有賊他媽多櫃子的書
多到我放不下我現在的住處必須帶回老家的程度
可是也因為我的生活太忙了
我老是買了一堆書卻只翻幾頁就沒機會繼續讀了
我好希望我有一個時間段
是可以好好放鬆好好沖上喜歡的咖啡
坐在那邊好好的看書
唉 到底什麼時候能辦到呢
# 想做的事情
雖然日子過的一團糟
但在好不容易有機會休息之後
我久違的拿起了blog開始打字
很久違的提起了筆開始練習我的日文和英文
自從脫離了硬性規定需要考試的年紀
我早就沒有那個耐心和記性去學習新的事物
但這次,我沒有打算給自己什麼死線
也沒有強迫自己一定要馬上去考過什麼檢定
或許我就是單純被身邊的人刺激到吧
總覺得自己好像什麼都做不好
想做一點感覺自己摸得到的成就來證明自己
說到底還是那個該死的虛榮心吧
不過話是是這麼說,說什麼我沒有給自己什麼死線
不過因為我日檢已經報下去了所以隨便啦
必須得面對那個該死的N2
即便我的日文程度真的是破到有剩還是得去應付一下
(畢竟上次死就只死聽力其他全過 操)
# 後話
看來最近的心情不只是「把生活過好」而已了呢
我希望好好的大學生活的最後一年過完
好好的把工作做好多掙點錢
好好的讓我可以跟我的老婆好好的穩定生活
希望破事可以不要再找上我了啦
