話說2016春節火爆朋友圈的不是春節晚會的段子,而是pyyx。pyyx是什麼?請自動看你的輸入法聯想什麼。如果說是「便宜一點」,那你可是個講價狗,如果是「培養一下」那你可是有yp黨的嫌疑。
好了,我們不調皮了,pyyx其實就是「朋友印象」,一款匿名社交APP。
看到小夥伴們玩得這麼高興,小編的手也癢了起來,分別用客服和個人的微信進行了測試。
小編發現了一個問題:膽小,不自信的人多會用匿名社交、聊天軟體來表達愛慕之心。
於是有人希望通過語言特點與經驗判斷匿名的人是誰。那我們能不能找到此軟體的漏洞從而得知匿名者是誰呢?因此小編馬上開始諮詢了這方面Newsky的技術天才song。沒想到song真的就發現了朋友印象這款APP的問題。太多的技術細節我也不便多說,簡單來說就是朋友印象APP的加密在應用層上,很容易就破解抓取到明文數據。
總之一句話,還真被他做到了。我能很輕鬆的就得到本來匿名和我聊天的人的微信ID。像下面這樣:
閒話不多說,馬上開始測試之。
<! link to web Tools>
你就假裝已經拿到了工具好了,因為偉大的黑客界人物,我們的精神導師shotgun(啟明星辰VP)教導我們,一定要做好白帽子,廠商還沒確認就不能給工具。
Step1:打開song 開發的工具,界面是土了點,但是滿滿的技術範兒。
Step2:輸入你的帳號密碼登錄工具。中國區號86。
點擊藍色的按鈕「登錄」,再點擊「點這裡獲取聊天記錄……」下面的文本框顯示出「X個匿名聊天」等字樣的時候說明你登錄成功。
Step3,將第一個對話框的內容全選複製黏貼到第二個對話框中。點擊「處理聊天記錄」。
就會得到如下效果:
每個匿名人和你聊天的最後一句話都會以文字連結的形式顯示。你點擊進去就可以查看這個人的微信暱稱了哦。
這裡面分為兩種情況:
A。對方沒有註冊朋友印象通過連結與你進行聊天,工具抓取來的數據如框1便顯示的直接是他的微信暱稱。
B。對方註冊了朋友印象與你聊天工具抓取來的數據如框2顯示,需要仔細查找下面的欄位才能得知對方的微信暱稱。
本漏洞已經提交給烏雲並已報廠商確認中,細節內容不便多說,希望大家多多包涵。
匿名聊天服務的興起,有人說是因為自卑,色情,不顧情面的衝動。然而當你開始以為可以盡情對自己邪惡的一面的放縱的時候,也觸發了一部分人不可扼制的窺私慾。因此對於這種匿名社交服務提供商而言,個人信息安全的保護更為重要。希望國內的網際網路公司也都能將重視安全問題擺到前臺來。
為了更好地普及小白,這裡附上啟明星辰VP shotgun的科普,請細看:
這是一個什麼漏洞?這是一個應用程式洩露用戶隱私的漏洞,用戶選擇匿名評論,肯定是不希望被評論者得知自己的身份。
我在使用這個APP的時候發現一個奇怪的現象,當我把某個實名用戶拉進黑名單以後,對這個實名用戶相應的匿名用戶發送消息就會失敗,這當然是程式設計師在實現拉黑邏輯的時候出現了錯誤,但是往深裡去想的話,這就意味著伺服器並沒有對用戶進行匿名轉換,客戶端層面是可以讀取到用戶的實名信息的,我的同事用調試工具測試了一下,果然如此。
這個漏洞嚴重嗎?
一般來說,洩露用戶隱私的漏洞屬於中等危害,並不屬於最嚴重的那種,然而,朋友印象這類匿名社交,其主打的核心功能之一就是匿名評論和聊天,很多用戶也是因為匿名才能夠暢所欲言地吐槽,因此匿名可讀這個問題就會嚴重很多,可以說是破壞了這個應用的根基。同時,我們從這個漏洞的出現,也可以看到,該應用的開發團隊在安全架構和設計方面存在較大的缺陷,所以一定還會存在其他類型的漏洞,我們也建議開發團隊能夠本著對用戶負責的態度全面地檢查一下(建議NewSky評估一下)
其他的應用也會有類似的漏洞嗎?是的,某國內著名的社區應用,以及某國內著名的問答網站應用,都存在/曾經存在類似的漏洞,包括且不僅限於:匿名用戶信息可讀、用戶間私密簡訊可讀、強迫任意關注等。
例如,在幾個月前,筆者曾經發現國內某知名問答社區存在可以讀取匿名用戶信息的漏洞,雖然用戶從網站或者APP看不到匿名用戶的信息,然而只需要稍微使用一些小技巧就可以通過系統的返回判斷出匿名用戶是誰,該漏洞的機理和今天這個漏洞是幾乎一樣的,沒有在底層對匿名信息進行處理。問答社區爆出匿名洩露的漏洞對用戶的影響可以說是很大的,因為用戶在回答問題的時候如果選擇匿名,往往是因為不想洩露個人隱私,或者擔心回答會引來爭吵、謾罵,而匿名洩露等於完全去掉了用戶的這層保護,很可能會引發很多的矛盾和衝突。
可以說在移動網際網路飛速增長的同時,移動網際網路的安全卻停滯不前,很多在電腦時代大家耳熟能詳的信息安全老坑,在移動網際網路時代還得一個一個地填平。
為什麼會出現類似的漏洞?
一方面,很多移動網際網路開發團隊急於出活,缺乏對安全的重視,這體現在:
1、很多移動應用缺少安全的設計。
由於開發工期緊,很多移動應用並沒有加入安全的設計,而是先完成功能,趕緊上線,安全問題以後再說。用戶認證、傳輸加密、防盜號、隱私保護、防跨站腳本、防資料庫注入、防破解逆向等等功能都完全沒有,幾乎就是不設防。
2、開發過程中沒有重視安全功能的實現。
有些應用,雖然設計了安全功能,但是實現的時候馬虎大意,使得安全功能形同虛設,很容易被繞過。
3、上線前缺少安全測試。
我們知道但凡是程序就必然有BUG,安全功能也不例外,而安全功能的BUG會更加隱蔽,因為正常使用時很難暴露,發現的人往往也是奇貨可居不會主動上報,這就更加需要對應用進行全面的安全測試了,例如使用newskysecurity的掃描工具對朋友印象的APP進行掃描,發現其中有十幾個安全漏洞,其中包括了客戶端使用明文對用戶密碼進行傳輸(意味著你在公開的網絡上登錄就很可能會丟失密碼)。
另一方面,很多移動網際網路開發團隊缺少足夠的安全意識和技能,並沒有把信息安全看作是架構層面的設計,而簡單的當作是普通功能。比如此次的漏洞:
1、既然是匿名,就應該在系統底層對用戶進行匿名處理,轉換為內部ID而不是使用微信ID來進行識別,匿名信息的屏蔽操作應該統一由一個安全模塊完成,而不是各個功能模塊自行完成。這是把信息安全當成基礎設施的原則;
2、所有匿名到實名的轉換操作應該在伺服器而不是客戶端完成,這是任何時候都不要信任客戶端以及用戶輸入的原則;
3、敏感數據在網絡上傳播的時候應該加密;
這幾個原則在PC時代已經廣為開發人員熟知,然而在移動網際網路開發中,能嚴格遵守的團隊屈指可數,上文提到的newskysecurity團隊使用他們的自動化工具掃描檢查了大量的移動應用,其中60%有中等以上的安全漏洞,包括且不僅限於:各個銀行、超市、航空公司、電商、社交軟體的手機客戶端。例如美國著名的超市Target和Costco的手機應用,都被檢查出有嚴重的安全問題。
作為普通的用戶,應該注意些什麼呢?用戶應該要有安全防範意識:
1、網絡上沒有真正的匿名,由於大數據的存在,由於安全漏洞的存在,匿名很容易被洩露,所以不要仗著匿名去做一些平時實名時不敢做的事情,這樣很容易出問題;
2、移動網際網路的安全問題越來越嚴重,使用第三方的應用時要小心謹慎,特別是不要把自己的敏感信息(如實名信息或者銀行信息)存在應用裡;
3、經常關注信息安全公告,發生重大信息安全事件時能夠及時反應,降低損失。