近年來,許多的組織/企業開始推動並加入Bug Bounty Program(漏洞回報獎勵計畫),在企業的規範條件下,讓人人都可以參與,幫助企業挖掘漏洞,並通報給廠商,而廠商會視漏洞的嚴重性給予適當的獎勵回饋。
企業為了讓產品及本身的服務更安全,透過漏洞回報獎勵計畫,希望藉由全球的白帽駭客一起協助找出企業未知的漏洞/弱點,減少災害發生,其中包括Google、微軟、Apple、Facebook、LINE等各大公司皆有參與此計畫,並且準備高額的獎金/禮物,提供給發現漏洞的研究人員。
在國外,其實有許多企業加入漏洞獎勵計畫,常見的有Google、微軟、Apple、Facebook、LINE、IBM、Toyota、Sony、U.S. Dept Of Defense(美國國防部)、Starbucks,甚至連國外知名成人網站Pornhub也加入了漏洞獎勵計畫。以上皆可從國外知名Bug Bounty平台hackerone進行查詢,該平台是目前全世界知名的漏洞獎勵計畫媒合平台,上面有許多知名企業加入該計畫,也可看到全世界的白帽駭客幫助企業找到弱點、回報紀錄與企業提供的高額獎金回報。
例如,台灣有位傳奇滲透師Orange Tsai先前在hackerone平台上回報了Twitter的pre-auth RCE,並獲得了20,160美元,成為Twitter史上發出的最高獎勵。
在台灣,也有參與Bug Bounty Program的公司,例如:台電、群暉。而其實在台灣也有提供一個協助企業尋找白帽駭客進行Bug bounty的平台HITCON Zeroday,該平台是由社團法人台灣駭客協會成立,並且也與TWCERT/CC合作,目前已協助全台數百家企業執行逾千件的漏洞通報與修復。
可見Bug Bounty Program已逐漸成為許多企業和白帽駭客共同參與的目標。
弱點掃描、滲透測試、紅隊演練又有什麼差別?
首先,需要先一一了解下各個的差異,這邊就簡易說明下。
服務 | 介紹 |
---|---|
弱點掃描 | 使用自動化工具,例如AWVS、Nessus、IBM Appscan、OpenVAS等進行自動化掃描,找出所有已知的風險。 |
滲透測試 | 透過人工方式,模擬駭客的思維角度出發,對指定的範圍內尋找各種潛在的漏洞。 |
紅隊演練 | 透過各種攻擊方式,全面性的從各個點進行攻擊(甚至包括企業實體入侵、撞庫、APT等) |
Bug Bounty | 藉由全世界的白帽駭客,在訂定的規範下,一起協助尋找企業的漏洞。 |
許多網管對於企業內部的系統不夠了解,還處在於人工盤點的情況,當攻擊或漏洞爆發時,完全無法在第一時間有效防範管理,甚至當有服務被揭露0day漏洞時,竟然花了2個月時間才盤點出內部有哪些主機正在使用這個服務。
企業應先妥善評估內部的系統環境,總共有多少台主機? 使用的domain與subdomain是否還正常運作? 分別在哪些網路環境下? 開啟了哪些Port? 常駐哪些服務? 是否有在防火牆外的主機? 是否有在DMZ外的主機? 這些主機又是由哪個部門使用/管理? 誰擁有權限使用?
如果企業本身連自己的服務都無法有效掌控,那又要如何說服人心保護客戶資產呢? 你會放心的把你的個資保存在這樣的企業嗎?
為何企業需要 Bug Bounty Program?
企業開放Bug Bounty Program,是一種正面的方向。
有人問說,我都已經委託專業的資安公司進行了 弱點掃描、滲透測試、紅隊演練了,還有必要開放Bug Bounty Program嗎?
這沒有標準答案,但程式是人寫的,任何程式都一定會有漏洞,沒有一間企業敢保證自己的系統沒有漏洞。
委託專業的資安公司進行檢測,可能會遇到什麼樣的限制?
- 時間 (可能只有2周檢測的時間,長則也只有數個月)
- 資安公司對該企業所使用的語言、系統架構可能不熟
但是 Bug Bounty是廣招全世界的白帽駭客一起來進行測試,所以可以找到各方面的專家、人才,一定會有人特別熟悉你的網站/功能,熟悉程式語言、系統架構。
而且通常還沒有時間壓力的限制,所以白帽駭客們可以隨時隨地進行漏洞檢測。
Bug Bounty對於企業有什麼好處 ?
如果沒有Bounty Program計畫,當有其他駭客找到漏洞時,他可能會轉向將漏洞賣給地下黑市。現今,地下黑市收購漏洞的價格是Bounty的3-10倍以上,甚至在Zerodium上Android的0day更高達250萬美元。
如果企業提供Bounty Program,對於企業與駭客們來說肯定是一件好事。企業可以避免因為資料外洩,造成名譽上的損失;白帽駭客可以透過Bounty Program 來取得想獲得的獎勵。
企業Bug Bounty Program心態
企業並不應該在一開始就規劃導入Bug Bounty計畫!
在導入Bug Bounty之前應該還要很多事情要處理,企業應該保持良好的心態,例如前面提到的資產盤點外,也應先進行弱點掃描、滲透測試等,先將各種已知的風險、潛在的漏洞找出來並修補,這樣可以先有效降低災害的發生。
什麼意思?
以前陣子吵得熱門的第一證券(Firstrade)舉例來說,該企業聘請hackerone.com於週末對系統進行深度測試,但有白帽駭客在進行Bug Bounty期間疑似不嚴謹的進行SQL Injection,導致所有的客戶資料E-mail都被改為「[email protected]」,造成許多客戶都無法登入,這是非常嚴重,駭人的情況。
原因歸更究柢是,第一證券的系統不完善、有許多明顯的系統漏洞,像是SQL Injection等,並沒有事先測試並完成修補;再加上此次參與測試的白帽駭客,對於滲透測試或紅隊演練嚴謹的測試流程不熟悉,才使得該次漏洞獎勵計畫的執行,最終直接影響到第一證券的客戶資料。
引用自 iThome 美商第一證券客戶資料遭竄改,官方宣稱是執行漏洞獎勵計畫的測試 文/黃彥棻 | 2019-09-18發表
如果企業在進行Bug Bounty前,先委託專業的資安公司進行漏洞檢測,是不是也許就可以降低此次的災害發生呢?
企業也不應當濫用Bug Bounty這樣的機制,只為了尋找免費的Hunter,漏洞獎勵應當是對等的。
對於Bug Bounty Hunter的漏洞回報應給予感謝,至少找到漏洞願意回報,而沒有轉向賣到黑市或公開漏洞,造成更嚴重的危害。
當漏洞回報後,應盡早確認漏洞細節,並回應回報者,確切告知漏洞回報者當前進度,免得造成回報者等候過久。
Bug Bounty Hunter的心態
Bug Bounty Hunter協助企業挖掘漏洞,可能出於:
- 獎勵
- 發大財、想拿公司的T-shirt等。
- 名聲
- 會被企業公布在白帽駭客排行榜、面試可以添加至履歷等。
- 興趣
- 成就感。
- 維護世界和平
- 拒絕黑產,人人有責。
好的Bounty Hunter應該遵守企業訂定的規範,了解自己所輸入的每一payload的用意以及後續會造成的影響,而不是在網路上隨意複製payload、exploit到處打天下。
在進行安全檢測時,禁止修改他人資料,如想測試功能,有些企業會提供測試帳號提供測試,或是可自行申請兩組AB帳號,透過A更改B,更改自己的資料。而涉及到金額這類型的數據,就相對敏感了。先前有知名駭客將車票金額改1元並成功購買搭車,這就過頭了。建議可將金額改高,例如原本售價350元,改成351元,這樣就比較不會有圖利的嫌疑發生,當然對於這樣的情況,千萬不要還拿去使用,應盡快通報給企業。
Bounty Hunter必須要記得在任何未經授權的情況下,進行安全檢測都是違法的,絕對不會因為你找到漏洞,然後你有回報就以為沒事,儘管你找到漏洞,沒有閱讀/竊取任何資料也一樣。
刑法 第 三十六 章 妨害電腦使用罪
第 358 條 ~ 第 363 條 好好閱讀下。
所以在進行任何檢測前,一定要先經過合法授權,查看規則後,才可以進行安全測試。
最後,切記!切記!切記! 在未經對方的允許下,絕對禁止公開漏洞的任何細節(包括在私人群組也一樣),應遵守保密原則,不要在任何群組、社群網站等說你找到漏洞,儘管你已經回報了,也一樣。
一方面是尊重,一方面是企業修補漏洞需要時間,儘管已經修補完畢了,但可能其他的站點、服務還需要檢查是否有同樣的漏洞,所以也需要花時間尋找,如果當你非得公開漏洞細節,建議一定要先詢問對方是否能夠同意公開。
好的回報方式
當發現漏洞時,建議截圖或拍影片留存紀錄,並透過正當管道回報給企業,回報的內容應包含 流程細節、截圖證明、所應用的攻擊代碼。
在什麼地方/功能,利用什麼樣的方式,發現什麼樣的漏洞。
最好寫詳細完整,讓企業能夠一看就懂,並且能夠成功重現你的漏洞。
在參與的整體過程中,應該保持著耐心與禮貌,是非常重要的。
企業是需要花時間尋找問題並修補的。
在回報的標題上,建議可填寫 漏洞與發生位址
例:XSS on https://lonelysec.com/xss/index.php
壞的回報方式
- 啊就XSS
- 給我錢 給我錢 我需要更多的錢
如何選擇Bug Bounty ?
進行Bug Bounty之前,應先熟悉閱讀企業的Bounty Scope,避免不小心違規。
通常企業的Bug Bounty頁面都會有scope與out of scope,也會訂定漏洞獎金的range,例如一個XSS可能 1,000-3,000美金。遠端代碼執行(RCE) 10,000美金以上等,每家企業訂定的條件都不一樣,一定要看清楚,否則如果不小心違規了,輕則取消獎勵,重則可能被吉。
通常條件會訂如:
- 禁止用自動化掃描工具。
- 回報DoS不算。
- 回報login / logout CSRF不算。
- 禁止讀取系統的原始碼、機敏資料 等。
對於Bounty Hunter選擇主要分類為四點:
- 獎勵
- 找錢多多的公司,例如Google、LINE,獎金都提供很高。
- 名聲
- LINE、微軟等皆提供名人堂頁面。
- 語言
- 例如你本身就熟悉Ruby等語言,就可以找像Github就是用Ruby開發的,在挖掘漏洞時,針對語言的特性會有很大幫助。
- 熟悉類型
- 如果你天天都在逛某一個網站,或許你就比其他人更了解這網站有什麼功能,更能夠在第一時間挖掘到漏洞。
除了以上類型,也可以直接到hackerone上進行挑選,上面有上百間企業提供Bug Bounty Program,並且可以看到其他人的漏洞回報。所以你可以參考該企業最常被回報什麼樣的漏洞? 這些漏洞都發生在哪一個網址? 哪一類型功能居多? 該企業對於Bounty Hunter的回應速度與心態又是如何?
總結
企業面:
Bug Bounty 並非最佳解,因為內部需要先有一群專業的資安專家來規劃與審視白帽駭客的回報狀況,又很多漏洞可透過一般的自動化工具即可找出,不需要花費額外的人力與金錢來進行。弱點掃描、滲透測試、紅隊演練、Bug Bounty 各有優缺點,企業可針對內部需求選擇適合自己的項目。此外,謹慎評估並委託專業的資安公司,才能有效保護好企業資產。
Bug Bounty Hunter:
增進自己的能力與協助世界和平值得嘉獎,但因避免造成企業的困擾,遵守遊戲規則才能與黑客做為區別,否則可能會讓自身惹上麻煩。