2019年的數據泄漏,裸奔的不只是你的個人信息
2019年11月09日10:54

原標題:2019年的數據泄漏,裸奔的不只是你的個人信息

​日前,疑似“陝西普通話成績查詢網(sxpth.cn)”由於網站的程式員把所有考生信息(包括照片、身份證、準考證號、院校等)通過硬編碼的方式直接寫進了網頁源代碼里,導致大量考生信息泄漏。
該網站在之後被查明是一個假冒官方的網站。不過這種 “Serverless無服務器”的架構方式受到了程式員的群嘲,也引起了大眾對於個人數據泄漏的擔心。
雖然以上這種低級的錯誤,相信絕大多數稍有水平的程式員都不會犯。然而,目前確實還存在著很多由於開發者數據安全意識不強造成的數據泄漏,其中最明顯例子的就是在GitHub上。

今年4月22日嗶哩嗶哩源代碼GitHub泄漏門估計大家都還記憶猶新,更久遠一些的Uber 5700萬司機與乘客數據泄漏,估計大家也還有印象,但是如果你以為GitHub上只會由於程式員的不小心偶爾泄漏某些大公司的源代碼或者數據,那你就大錯特錯了。

為了讓大家瞭解由於開發者的數據安全意識不強(很多時候是無意的)而導致的在GitHub平台上的數據泄漏,我們對此進行了一番研究,得出的結果可謂是觸目驚心:你的身份證、住址、電話等個人信息,郵箱賬號、密碼、銀行卡號等敏感信息,個人或企業的數據庫,可能都在GitHub上以公開信息的形式裸奔。

一、什麼是GitHub

GitHub是目前最大的軟件源代碼託管平台,類似於代碼的雲倉庫。簡單來說,假如開發者小A開發了一款坦克大戰的遊戲,他可以通過GitHub把這款遊戲的源代碼開源出來,供全世界的開發者參考和學習。

當然,為了這款遊戲更完善,全世界的開發者也可以通過GitHub提出自己的修改版本,大家一起完善這款遊戲。GitHub由於本身具備代碼開源共享的屬性,吸引了超過四千萬的用戶,保存了超過1億個代碼存放的倉庫。

代碼開源共享促進了開發者的學習和交流,也成為了開發者的一大主流價值觀。大家越來越願意把自己寫好的代碼文件提交到GitHub上供其他人參考和學習,然而在提交的過程中,很可能就無意識地把一些代碼中的敏感信息和文件一併共享了出來。

二、個人郵箱賬號密碼泄漏

開發者不小心共享出來的東西有哪些呢?最常見的就是各種賬號和密碼,特別是通過硬編碼方式寫入代碼文件裡面的個人郵箱賬號密碼。這些提交到GitHub平台共享出來的賬號密碼,任何人通過關鍵字搜索都可以獲取到,相當於直接公開。

我們在GitHub通過關鍵字搜索發現,包含網易、QQ、新浪、Gmail、Outlook、Hotmail、Yahoo等各種郵箱的賬號和密碼在GitHub平台上都存在公開泄漏。以下是通過關鍵字搜索得出的各主流郵箱賬號和密碼存在於代碼文件中的數量:
可見單單Gmail就存在1350.9萬個,當然這1350.9萬個結果當中,有些只是代碼文件中包含了關鍵字,有些賬號對應的密碼已被安全意識較強的開發者提交GitHub前就刪除掉了。但是如果只按5%的賬號密碼有效比率來估計的話,這裡面列出來的郵箱中,就存在139萬個郵箱的賬號密碼存在公開泄漏。

三、個人簡曆信息泄漏

程式員都比較喜歡鼓搗屬於自己的個人網站,在這些個人網站裡面通常會放上自己的介紹或者簡曆,以便獲取更好的機會。同時,他們之中有些人也比較喜歡把自己的建站代碼開源到GitHub上。這樣一來,在GitHub搜索跟“簡曆(resume)”相關的關鍵詞時,無數份程式員的簡曆數據就出來了。

這些簡曆裡面,不但包含了個人的姓名、電話、微信號、郵箱,還包括生日、學曆、畢業院校、工作經曆、所在城市等。雖然很多人覺得自己的這些信息被人看到的幾率也不高,但是如果被有心人士批量獲取下來的話,那麼下回接到能夠準確說出你姓名、生日和經曆等對你個人信息瞭如指掌的推銷電話的時候,就不要太驚訝了。

四、身份證號、家庭住址等個人信息泄漏

看到這裏你可能會想:前面兩項的泄漏都集中在一些程式員的身上,可能跟我們關係並不大呀。客官且慢,請往下看。

在提倡網絡實名製的今天,有些網站註冊的時候動不動就要填自己的身份證號碼進行實名認證。但是,一些網站對於個人信息的保護卻做得不怎麼好。當我們使用跟“身份證”相關的關鍵字進行GitHub搜索的時候,結果出現了大量包含姓名、身份證號、家庭住址等個人信息的數據表。這些個人信息明顯是需要被嚴格加密保護的,卻被分享到了公開的平台上。

類似於以上的這些被開源共享出來的個人信息數據數不勝數。有些數據表除了個人信息之外,通常還包括了更多與個人有關的詳細信息。在我們使用關鍵字進行搜索期間,在這些開源文件中還意外發現大連市某知名企業董事長及高管的身份證、住址等個人信息都被公開了。
我們再往深處想一下,這些涉及個人身份證、家庭住址等敏感信息的數據會被開源到GitHub公開出來,如果數據持有方是企業的話,說明有些企業對個人信息數據嚴重缺乏管理和保護機製,如果數據持有方是個人的話,拋開數據安全保護意識不說,這些個人數據來源於哪裡,也是一個大問題。

再從另一方面看,這些能被不小心開源到GitHub的個人信息數據其實只是個人信息數據中的冰山一角,可以想像這背後的冰山有多大。可能你我提交的個人信息,早就在互聯網上被轉手、交易、裸奔好多回了。

五、卡號和密碼泄漏

以上都是關乎個人信息的,可能你會“破罐子破摔”地覺得已經沒什麼所謂了,反正自己的個人信息早就已經在裸奔了,又不涉及具體的利益。客官且慢,請往下看。

在我們使用跟“卡號”相關的關鍵詞進行GitHub搜索的時候,得出了大量的卡號以及對應的密碼搜索結果。這裡面的卡包括各種購物卡、禮品卡、充值卡、各種平台的會員卡等。裡面甚至出現了銀行卡卡號和密碼,而且密碼竟然幾乎都是明文密碼!

六、API秘鑰、雲服務器、雲數據庫泄漏

當然,2019年的數據泄漏,裸奔的不只是你的個人信息,還有各種API秘鑰、個人和企業的雲服務器秘鑰、個人和企業的雲數據庫地址和密碼。

API秘鑰泄漏的話,可能被別有用心的人竊用,導致高額的服務費。雲服務器、雲數據庫泄漏的話,可能被別人非法登錄,輕則被獲取到雲服務器、雲數據庫里存儲的個人或企業的全部數據,重則被惡意刪庫。有時候真的不是駭客太狡猾,而是開發者太大意了。

為了弄清楚開發者開源到GitHub上的各種秘鑰泄漏有多嚴重,來自美國北卡羅萊納州立大學的一個團隊進行了深入的研究,他們使用近六個月的時間(2017年10月31日至2018年4月20日)掃瞄了GitHub上13%的代碼庫,總共包含數10億個代碼文件,發現超過10萬個代碼庫泄漏了秘鑰,每天有數千個新的秘鑰在泄漏。[1]

這些秘鑰,來自於Twitter、Facebook、亞馬遜、Google、YouTube、PayPal等等主流的平台。研究顯示,6%的秘鑰在上傳到GitHub後一小時之內被刪除掉,說明只有6%的開發者馬上意識到了這個問題並採取了措施。在上傳到GitHub 1天之內,只有12%的秘鑰被刪除掉,16天之內,只有19%的秘鑰被刪除掉,這說明1天之內沒有刪除掉的秘鑰,基本上都會在GitHub上長期存在,長期公開泄漏。

這說明,絕大部分提交秘鑰到GitHub的開發者是並不知道、事後也沒有意識到自己把秘鑰通過這種方式公開了的。

該研究還把這些秘鑰所在的文件拓展名進行了分類,看這些秘鑰都藏在哪些類型的文件里。結果表明,超過50%的秘鑰都藏在專門用於儲存秘鑰或者憑證的文件里(如拓展名為.key的文件),接近30%的秘鑰嵌在源代碼文件里(如拓展名為.py的文件),約8%在數據表裡(如拓展名為.csv的文件),約2%在配置文件里(如拓展名為.conf的文件)。

這說明,大部分的秘鑰泄漏的原因是把秘鑰直接寫死在源代碼裡面。莫非真的應了那句話:最危險的地方就是最安全的地方?

該研究還通過假設檢驗的方法證明,把秘鑰提交到GitHub這種泄密方法,跟開發者自身的經驗、GitHub使用時長並無太大關係。也就是說,這是一個新手、老手都可能犯的錯誤。

由於該研究涉及的主要是美國的企業,那麼中國企業的雲服務器、雲數據庫等,是否也被無意中公開泄漏了呢?我們在GitHub通過關鍵字檢索發現,這一情況在我國有過之而無不及,包括阿里雲、騰訊雲、百度雲在內的國內主要雲服務提供商,其提供給個人或者其它企業使用的雲服務器、雲數據庫都存在公開泄漏。

要知道,這些公開了主機、端口號、用戶名及密碼的雲數據庫,任何人利用這些信息都是可以連接上的,跟裸奔沒有區別。一旦被別有用心的人獲取到,數據庫裡面存儲的包含企業、客戶、用戶信息的所有數據表、所有詳細的經營數據都會處於危險之中。

這些雲數據庫在GitHub上的數量可能有多少呢?以MySQL雲數據庫為例子,我們通過關鍵字搜索了阿里雲、騰訊雲、百度雲潛在泄漏的MySQL雲數據庫數量:

最多的是阿里雲,存在31128個潛在泄漏的MySQL雲數據庫。如果按照5%的有效比率保守估計的話,都存在超過1678個個人或者企業的MySQL雲數據庫存在泄漏!

七、現在能怎麼辦呢?

看完以上的情況,真是讓人不寒而慄。2019年的數據泄漏,個人數據、企業數據都在裸奔,而企業數據裡面又可能包含大量的個人數據。那現在能怎麼辦呢?

Alfred看來,這事兒必須從政府加強數據保護立法、企業加強數據保護製度建設、開發者加強數據安全意識培訓、GitHub平台加強提交前敏感信息檢測提醒四方面著手。

加強數據保護立法,是從根源上解決數據保護問題的方法。歐盟2018年5月生效的GDPR(《通用數據保護條例》)是一個很好的例子。我國最近頒布的《密碼法》也是一個很好的開端。

企業方面需要加強數據保護製度建設,明確數據的獲取、操作、管理流程和相關權限,對開發者做好數據安全意識培訓。畢竟一項由IBM Security發起的Ponemon研究所2019年7月公佈的第7次資料外泄的調查報告顯示,數據外泄近50%來自內部。[2]

那麼對於普通人而言呢?這篇文章警示著大家要好好保護好自己的個人信息,別用個人信息換取一時的方便。

八、聲明

本文所引用的所有數據或例子,均為GitHub上已公開的數據。為了防止數據進一步泄漏,我們把所有敏感的信息都打上了馬賽克。Alfred數據室並未獲取和使用這些密碼、秘鑰,並且已儘可能通知相關代碼倉庫的上傳者。

引用

[1] Michael Meli, et al. How Bad Can It Git? Characterizing Secret Leakage in Public GitHub Repositories. Network and Distributed Systems Security (NDSS) Symposium, 2019.

[2] Ponemon Institute. Cost of a Data Breach Report 2019.IBM Security, 2019.

關注我們Facebook專頁
    相關新聞
      更多瀏覽