劉濤:大家下午好,我是來(lái)自盤(pán)古的劉濤。今天我給大家?guī)?lái)的議題是《使用Janus大規(guī)模挖掘?yàn)E用授權(quán)憑證的移動(dòng)應(yīng)用》。
首先我們先來(lái)看一下,我們?cè)谧霭踩治龅臅r(shí)候,我們作為一個(gè)白帽子或者一個(gè)灰帽子經(jīng)常會(huì)遇到這樣一個(gè)情況,就是說(shuō)相比起大的安全公司,像安天或者是阿里,他們每天可能會(huì)收到成百上千,或者是上萬(wàn)的安全應(yīng)用。但是對(duì)于我們一些白帽子、灰帽子來(lái)說(shuō),我們每天可能就是搜集到一兩個(gè)或者是十多個(gè)有用的樣本,我們會(huì)對(duì)它進(jìn)行一些分析。我們對(duì)于這些單一的樣本分析可能會(huì)發(fā)現(xiàn)一些很有趣的問(wèn)題,比如說(shuō)像前不久,最先在百度地圖里面發(fā)現(xiàn)有一個(gè)漏洞,當(dāng)這個(gè)分析人員,這個(gè)白帽子找到有這樣一個(gè)漏洞的時(shí)候,由于他沒(méi)有足夠的樣本資源,他僅僅只能是把這樣一個(gè)漏洞提交到烏云,或者是分享到一些像天眼的平臺(tái)上面去,把這個(gè)漏洞發(fā)布。但是我不能夠去找到更多的應(yīng)用,從而把它造成一個(gè)輿論的事件。所以在這里面我們可以看到,SVM的發(fā)明者弗拉基米爾·萬(wàn)普尼克說(shuō)過(guò)這樣一句話,很可能你擁有足夠的信息來(lái)很好的解決一個(gè)感興趣的特定問(wèn)題,但是你沒(méi)有足夠的信息來(lái)解決一個(gè)一般性的問(wèn)題,我們經(jīng)常在分析當(dāng)中就會(huì)有一個(gè)信息不完全的問(wèn)題。針對(duì)這個(gè)我們?cè)谙?,有沒(méi)有可能我們?nèi)ゴ罱ㄟ@樣一個(gè)平臺(tái),我們能夠把大量的APK的樣本搜集到,我們對(duì)它進(jìn)行一些信息的提取,我們發(fā)現(xiàn)我們的安全人員能夠到這個(gè)平臺(tái)上來(lái),對(duì)他感興趣的問(wèn)題去查看,看他所發(fā)現(xiàn)的問(wèn)題有沒(méi)有大規(guī)模的存在,從而能夠發(fā)現(xiàn)更多的情況。
這就是我們搭建Janus的初衷。首先Janus會(huì)去搜集大量的原始數(shù)據(jù),這些數(shù)據(jù)主要是APK,還有一些就是URL,比如一些常見(jiàn)的惡意的樣本庫(kù)里面的一些URL,或者是一些敏感的,比如說(shuō)大的數(shù)據(jù),像騰訊,或者是像阿里、支付寶這樣一些URL的鏈接,還有一些其他的信息資源。這些主要會(huì)通過(guò)渠道牽掣,或者是爬蟲(chóng),我們會(huì)搜集到這樣一些原始數(shù)據(jù)。收集到這些數(shù)據(jù)之后,我們自己之前也開(kāi)發(fā)過(guò)很多靜態(tài)分析工具以及動(dòng)態(tài)分析工具,我們就能夠把搜集到的這些數(shù)據(jù)原數(shù)據(jù),一些有用的信息可以提取出來(lái)。比如說(shuō)像APK里面的字符串,或者是他的一些簽名,或者是所有的一些布局文件,Layout或者是URL的信息。其次我們也可以通過(guò)動(dòng)態(tài)的,剛才陸立新教授提到的,我們可以用沙箱在里面跑一段時(shí)間,我們可以把這個(gè)APK基本的一些行為數(shù)據(jù)也可以提取出來(lái)作為一個(gè)原數(shù)據(jù)進(jìn)行分析。
當(dāng)我們把這些數(shù)據(jù)存儲(chǔ)之后,就可以構(gòu)成一個(gè)數(shù)據(jù)平臺(tái),之后我們都可以在這個(gè)上面進(jìn)行一些數(shù)據(jù)挖掘或者是構(gòu)建一些檢測(cè)規(guī)則,我們可以利用一些分析引擎,在里面做一些威脅情報(bào)的搜集或者是一些漏洞的預(yù)警,這個(gè)主要就是我們Janus的整體架構(gòu)。
在Janus的周?chē)梢钥吹竭€有很多云,除此之外我們還可以在Janus上面做一些其他的事情。比如說(shuō)我們可以去進(jìn)行機(jī)器學(xué)習(xí),我們可能去發(fā)現(xiàn)一些以前不知道的一些潛在漏洞。還有就是我們可以進(jìn)行一些相似性比對(duì),我們經(jīng)常會(huì)發(fā)現(xiàn)在Android市場(chǎng)上面經(jīng)常會(huì)存在重打包的問(wèn)題。一個(gè)開(kāi)發(fā)者他開(kāi)發(fā)出一個(gè)應(yīng)用來(lái)之后,一旦放到市場(chǎng)上面的話,會(huì)有很多其他的人員,他們會(huì)把這個(gè)東西,把APK下載下來(lái),Android也是開(kāi)源的,加一個(gè)東西重新打包,放到市場(chǎng)上面去。對(duì)于用戶(hù)來(lái)說(shuō),用戶(hù)他并不Care這些東西。但是對(duì)于一個(gè)開(kāi)發(fā)者,或者對(duì)于用戶(hù)的信息安全來(lái)說(shuō),會(huì)產(chǎn)生一些問(wèn)題。比如像惡意分析,安全評(píng)估,SDK使用,這些都可以在我們這個(gè)平臺(tái)上面延伸出去,我們覺(jué)得這個(gè)應(yīng)該是有很大的作為的。
這個(gè)主要是我們的界面,我們不僅可以在渠道上面去挖掘和拉取到一些數(shù)據(jù),我們也希望一些安全分析人員可以到上面來(lái)提交你所感興趣的應(yīng)用,我們會(huì)幫你盡量去提取一些數(shù)據(jù)出來(lái)。比如說(shuō)我們會(huì)提供一個(gè)在線交互分析的工具,這樣的話,它集成了我們現(xiàn)在大部分的Android分析,包括反編輯。你可以看到,我們還可以對(duì)于某一個(gè)程序點(diǎn)可以去看它的一些交叉引用或者是調(diào)用的一些關(guān)系。其次我們也會(huì)內(nèi)置一些我們以前總結(jié)的分析插件,當(dāng)你把這個(gè)APK提取上來(lái)的時(shí)候,我們可以幫你去抓取到一些我們已知的問(wèn)題。你可以去對(duì)這個(gè)問(wèn)題進(jìn)行深入的分析,去看這個(gè)問(wèn)題是否會(huì)真正導(dǎo)致一些什么敏感的潛在漏洞。除了反編譯的話,我們也提供了一些阿里代碼的東西,使得你能夠更直觀的去分析這個(gè)程序的問(wèn)題,因?yàn)楫吘惯@個(gè)反編譯的話,可能會(huì)造成一些信息的缺失。
這一塊是除了我們對(duì)于深層的交互分析之外,我們還會(huì)去提取一些基本信息。比如像這里面,我們會(huì)提取出一些MD5或者是其他的,我們會(huì)跟一些其他的安全廠商有一些合作,交叉的把一些情報(bào)關(guān)聯(lián)起來(lái)。這是一個(gè)我們的規(guī)則匹配界面,除了交互分析之外,你也可以把一些你總結(jié)出來(lái)的安全規(guī)則,可以用一個(gè)簡(jiǎn)單的語(yǔ)法表示出來(lái),我們可以在整個(gè)的信息平臺(tái)上面收集,看你這個(gè)東西是否會(huì)出現(xiàn)。
之后就進(jìn)入我們今天要講的一個(gè)惡意憑證的泄漏。首先我們要講到這個(gè)授權(quán)憑證的話,就需要提到一個(gè)開(kāi)放平臺(tái),現(xiàn)在隨著SNS的發(fā)展,很多的SNS都會(huì)推出一個(gè)開(kāi)放平臺(tái),可以使得第三方應(yīng)用方便的接入到用戶(hù)資源上面去。很多開(kāi)放平臺(tái)的接入現(xiàn)在一般都是用2.0協(xié)議,當(dāng)用戶(hù)在移動(dòng)應(yīng)用里面發(fā)起一個(gè)操作請(qǐng)求之后,第三方應(yīng)用會(huì)向開(kāi)放平臺(tái)申請(qǐng)一個(gè)授權(quán)。在經(jīng)過(guò)用戶(hù)確認(rèn)授權(quán)之后,第三方應(yīng)用就能到這個(gè)開(kāi)放平臺(tái)上面去拿取到用戶(hù)的一些數(shù)據(jù),或者是他自己的一些數(shù)據(jù)進(jìn)行交互分析。
在這里面主要就是在第一步,他會(huì)通過(guò)一個(gè)授權(quán)憑證去認(rèn)證這個(gè)第三方應(yīng)用是否有一個(gè)權(quán)限去訪問(wèn)這些用戶(hù)的數(shù)據(jù)。一個(gè)授權(quán)憑證主要是由兩部分構(gòu)成,一個(gè)就是Client ID,一個(gè)就是Client Secret,在向第三方平臺(tái)申請(qǐng)認(rèn)證服務(wù)的時(shí)候,由服務(wù)平臺(tái)給開(kāi)發(fā)者的,主要是用于認(rèn)證這個(gè)開(kāi)發(fā)者和所對(duì)應(yīng)應(yīng)用的主要手段。
當(dāng)這個(gè)東西如果存在濫用的話會(huì)有一個(gè)什么樣的問(wèn)題呢?首先一個(gè)最直接的就是說(shuō),我可以去利用這個(gè)授權(quán)憑證,用這個(gè)客戶(hù)端認(rèn)證的方式,就可以用你的憑證修改這個(gè)應(yīng)用的一些基本注冊(cè)信息。比如說(shuō)像我們之前發(fā)現(xiàn)Facebook上面,如果說(shuō)我知道了你一個(gè)應(yīng)用的授權(quán)憑證的話,我會(huì)直接去Facebook上面,包括上面的官網(wǎng)地址,或者應(yīng)用的一些鏈接能夠直接篡改掉,比如說(shuō)可以設(shè)置成一個(gè)釣魚(yú)鏈接或者是其他的東西。其次也可以以應(yīng)用的身份跟后面的交互,比如我們提到在微信的公共號(hào)當(dāng)中,如果有這個(gè)公共號(hào)的授權(quán)憑證的話,在這個(gè)公共號(hào)上面交互的時(shí)候可以切入進(jìn)去,跟用戶(hù)直接進(jìn)行交互。還有我們之前在烏云上面也可以看到有一些報(bào)告,就是我可以去利用這個(gè)授權(quán)憑證,構(gòu)建一些虛假的鏈接,然后幫用戶(hù)點(diǎn)擊或者是掃描的時(shí)候,經(jīng)過(guò)篡改或者是中間人攻擊的方式,就可以去獲得用戶(hù)的一些登錄憑證,從而就可以直接以用戶(hù)的身份登錄上去竊取用戶(hù)的一些信息。除此之外還有更多的一些情況,也是有待于后面繼續(xù)發(fā)現(xiàn)。
這里看一個(gè)簡(jiǎn)單的例子。這是去年曝光在烏云上面的一個(gè)廣東號(hào)碼百事通“總機(jī)服務(wù)”微信號(hào)授權(quán)憑證的泄漏。這是公眾號(hào)的界面,大家都可以到烏云上面去看這個(gè)東西。這個(gè)問(wèn)題當(dāng)時(shí)是怎么發(fā)現(xiàn)的呢?就是這個(gè)安全人員他通過(guò)這個(gè)公眾號(hào)的抓包,就可以發(fā)現(xiàn)這個(gè)授權(quán)憑證直接是固化在通訊包里面的,就可以看到當(dāng)初這個(gè)公共號(hào)的授權(quán)憑證是APP ID和Secret,攻擊者和安全人員就可以上去,直接換取到一個(gè)授權(quán)憑證ACCESS-TOKEN。進(jìn)入之后,就可以通過(guò)剛才那個(gè)調(diào)試頁(yè),能夠獲取到用戶(hù)的OpenID,就是所有在這個(gè)公眾號(hào)上面進(jìn)行關(guān)注的用戶(hù)的OpenID。當(dāng)用戶(hù)有交互的時(shí)候,我也可以跟用戶(hù)發(fā)送一些信息,還有可以上傳頁(yè)面,還可以去更改這個(gè)公眾號(hào)的一些菜單信息,這些都是在授權(quán)的范圍內(nèi)的。
在知道這些情況之后我們也去掃描了一些我們搜集到的APK,一些Android應(yīng)用。我們可以發(fā)現(xiàn),單就微信的授權(quán)憑證,我們實(shí)際上很多應(yīng)用里面都有發(fā)現(xiàn),它有些是固化在代碼當(dāng)中的,有些可能是固化在配置文件里面。針對(duì)于微信這個(gè),我們可以發(fā)現(xiàn)提取一個(gè)特征,這個(gè)特征主要就是以WX開(kāi)頭,后面接16位的十六進(jìn)制串,是一個(gè)MD5。這樣的話我們就可以很簡(jiǎn)單的構(gòu)建出這樣一個(gè)匹配規(guī)則,有了這個(gè)匹配規(guī)則,因?yàn)槲覀冎耙呀?jīng)搭建了Janus,我們已經(jīng)對(duì)這些APK里面的字符串進(jìn)行過(guò)搜集處理,那么我們就能夠直接到Janus,就是之前你們看到的規(guī)則頁(yè)面上面,可以建立這樣一個(gè)檢測(cè)規(guī)則。這個(gè)寫(xiě)得比較簡(jiǎn)單,就是只檢測(cè)剛才所提到的這個(gè)匹配表達(dá)式。之后再選擇和控制我們所有的應(yīng)用,去進(jìn)行一個(gè)掃描。
由于時(shí)間的關(guān)系,我們并沒(méi)有去做一個(gè)全庫(kù)的,我們只是選取了6萬(wàn)多個(gè)應(yīng)用進(jìn)行了微信的授權(quán)掃描。這是我們掃描出來(lái)的,包含有儀式授權(quán),就是剛才那個(gè)匹配成功的一個(gè)應(yīng)用的列表。我們可以點(diǎn)擊打開(kāi),能看到有很多字符串上的匹配。為什么會(huì)有那么多字符串?就是因?yàn)檫@邊可能是授權(quán)平臺(tái),還有很多,我畢竟是去掃一個(gè)符合MD5的十六進(jìn)制串。這里面匹配出來(lái)有一些可能不是,我們可以導(dǎo)出來(lái)這樣一些匹配成功的數(shù)據(jù)。之后我們會(huì)進(jìn)行一個(gè)驗(yàn)證操作,驗(yàn)證操作的話就如同之前所提到的,就是我直接去到測(cè)試頁(yè)上面構(gòu)造一個(gè)URL請(qǐng)求,去看這樣一個(gè)本來(lái)搜索到十六進(jìn)制串,是否可能去獲取到一個(gè)ACCESS—TOKEN,下一步就直接可以用這個(gè)ID拉取到用戶(hù)的一些信息,還有可能會(huì)進(jìn)一步的跟用戶(hù)交互或者是其他操作。
這是我們掃描出來(lái)的一個(gè)簡(jiǎn)單的結(jié)果,就是我們掃了5萬(wàn)多個(gè)應(yīng)用,大概有400多個(gè)是找到了這樣一些憑證,最終是有21對(duì)收到。這個(gè)數(shù)據(jù)是今年我們做的數(shù)據(jù),去年做的數(shù)據(jù)會(huì)比這個(gè)稍微好一點(diǎn)。主要一個(gè)原因就是我們后來(lái)發(fā)現(xiàn),好像騰訊后來(lái)也更新了一個(gè)授權(quán)憑證的系統(tǒng),使得以前能夠正常訪問(wèn)的現(xiàn)在這些憑證有一些已經(jīng)過(guò)期了,導(dǎo)致這個(gè)操作不能成功。
除了之前所說(shuō)的憑證以外,也可以把獲取授權(quán)憑證這樣一個(gè)鏈接作為一個(gè)規(guī)則,我們可以去掃描出來(lái)列表之后,到交互平臺(tái)里面去,依次的去分析,看這個(gè)東西,去找到這個(gè)授權(quán)憑證可能會(huì)在什么樣的位置。這樣的話,找到的東西可能會(huì)更為精確一點(diǎn),也更為實(shí)際一些,就是這兩種分析的模式。除此之外,我們也會(huì)去新浪微博、阿里云、Facebook這些去分析,看有沒(méi)有這樣的問(wèn)題。
之后我們講一下為什么會(huì)有這樣一個(gè)授權(quán)憑證的問(wèn)題,我們是掃了一下。首先第一個(gè),開(kāi)發(fā)人員可能會(huì)存在這樣一個(gè)情況,就是說(shuō)他用于去分享數(shù)據(jù),獲取數(shù)據(jù)或者存儲(chǔ)數(shù)據(jù)。因?yàn)槲覀儼l(fā)現(xiàn)有很多應(yīng)用,比如我去使用阿里云的服務(wù),我會(huì)去在上面存儲(chǔ)一些應(yīng)用的基本數(shù)據(jù)信息,比如說(shuō)像游戲里面,他可能會(huì)使用排行榜,他可能會(huì)要用阿里云的服務(wù)進(jìn)行一些存儲(chǔ)。還有一些比如說(shuō)他可能會(huì)到新浪微博或者是微信的朋友圈進(jìn)行分享的時(shí)候,他可能也會(huì)需要用到這樣一個(gè)授權(quán)憑證。
不正確使用Auth2.0的協(xié)議。因?yàn)樵贏uth2.0里面認(rèn)證是分為三個(gè)部分,客戶(hù)端和服務(wù)器,大部分的認(rèn)證操作都是在服務(wù)器上面完成的,對(duì)于有一些Android的應(yīng)用,把這個(gè)服務(wù)器上面的認(rèn)證工作直接放到了客戶(hù)端上面去進(jìn)行。這樣的話,就勢(shì)必使得這個(gè)授權(quán)憑證直接放到客戶(hù)端上面了,這樣的話就會(huì)造成一個(gè)憑證的泄漏。還有我們發(fā)現(xiàn)有一些開(kāi)發(fā)人員,他可能在寫(xiě)測(cè)試代碼的時(shí)候并沒(méi)有把這個(gè)測(cè)試代碼移除掉。這樣的話,就會(huì)使得一些代碼放在外部版當(dāng)中,也會(huì)造成一些問(wèn)題的泄漏。
剩下的就是一些建議,我們對(duì)于應(yīng)用開(kāi)發(fā)者,他應(yīng)該去保護(hù)好自己的授權(quán)憑證,以防止有意者拿到授權(quán)憑證做一些其他事情。還有一個(gè)就是希望開(kāi)發(fā)人員能夠在保證最小的應(yīng)用授權(quán),這樣即使你的授權(quán)憑證在不小心的情況下泄漏出去了,也不會(huì)造成過(guò)大的一些影響。后面我們可能第一是進(jìn)一步擴(kuò)展我們Janus的能力,另外就是對(duì)外進(jìn)行開(kāi)放。現(xiàn)在基本上我們Janus也做得差不多了,我們正在做下一步的調(diào)試。另外一個(gè)就是對(duì)外開(kāi)放API的接口,使得開(kāi)發(fā)人員能夠調(diào)用我們這些接口,去挖掘到一些他們所感興趣的信息。就像前面提到的,我們下一步可能會(huì)對(duì)于Android應(yīng)用市場(chǎng)上面的重打包以及推廣類(lèi)的App,像一些黑色的App,我們會(huì)進(jìn)行一個(gè)挖掘分析,到時(shí)候可能會(huì)出一份報(bào)告。
我今天講的就是這些內(nèi)容,不知道大家有沒(méi)有想要問(wèn)的。
提問(wèn):我想的可能不太對(duì),我請(qǐng)教一下。我看到你講的過(guò)程當(dāng)中直接就是ACCESS-TOKEN了,是用的什么模式?
劉濤:其實(shí)這里面檢測(cè)主要是針對(duì)第四個(gè)模式,就是客戶(hù)端認(rèn)證的模式。
提問(wèn):最簡(jiǎn)單的客戶(hù)端認(rèn)證的模式?
劉濤:不是最簡(jiǎn)單的客戶(hù)端認(rèn)證的模式。
提問(wèn):2.0里面說(shuō)了一下,最后的模式是有一定的安全隱患的。
劉濤:是的,但是對(duì)于一二三四種模式其實(shí)都是使用到了一個(gè)認(rèn)證的方式,都使用到了授權(quán)憑證。為什么我們只是檢測(cè)了第四種模式?因?yàn)槲覀冊(cè)谧龆糠治龅臅r(shí)候,其實(shí)并沒(méi)有用戶(hù)的參與加入進(jìn)來(lái)。所以說(shuō)我們?cè)谒阉魇跈?quán)憑證的時(shí)候,我們只是針對(duì)了最后一種模式,就是說(shuō)在分析的時(shí)候會(huì)簡(jiǎn)化一些,在我們整個(gè)分析里面,但是并不是說(shuō)這個(gè)授權(quán)憑證不會(huì)用到ER里面去。其實(shí)對(duì)于像很多這種開(kāi)放平臺(tái)的話,它都有授權(quán)憑證,有一些是一樣的。比如說(shuō)像之前你們可以看到微信的公眾號(hào)里面的授權(quán)憑證,就是首先我能夠進(jìn)行第四步驗(yàn)證,就是直接是ACCESS-TOKEN,也可以用這個(gè)授權(quán)憑證在第一個(gè)正常的授權(quán)認(rèn)證模式,讓用戶(hù)去發(fā)起一個(gè)登錄認(rèn)證,之后再去拿到一個(gè)臨時(shí)的OID,我再去數(shù)據(jù)服務(wù)器上面拉取到用戶(hù)實(shí)際的登錄ACCESS-TOKEN。這是在不同的應(yīng)用場(chǎng)景里面,但是都會(huì)用到這個(gè)授權(quán)憑證。
提問(wèn):在你們實(shí)際測(cè)試的過(guò)程中,是不是說(shuō)大部分產(chǎn)品就沒(méi)有定時(shí)的刷新ACCESS-TOKEN過(guò)程呢?
劉濤:這個(gè)并不在我們這次分析當(dāng)中,就是我們?cè)趹?yīng)用當(dāng)中挖掘看看是否有授權(quán)憑證的存在,而不是看整個(gè)登錄Auth2.0的使用過(guò)程當(dāng)中是否是安全的,這是兩個(gè)問(wèn)題。你說(shuō)的這個(gè)東西,我們也可以寫(xiě)另外一個(gè)檢測(cè)規(guī)則去掃描,這些都可以在Janus上面完成。
提問(wèn):我想問(wèn)一下你們?cè)趻呙柽@些授權(quán)憑證過(guò)程中影響最大的,影響用戶(hù)最多的是哪個(gè)?
劉濤:這個(gè)數(shù)據(jù)我沒(méi)有帶過(guò)來(lái),要回去稍微看一下這個(gè)東西。你提到用戶(hù)最多,不知道你要通過(guò)哪個(gè),是通過(guò)下載量去分析,還是說(shuō)去通過(guò)在線用戶(hù)度去分析。
提問(wèn):因?yàn)槟阌媚莻€(gè)授權(quán)憑證,就是可以看到用戶(hù)的信息。你拿到那個(gè)開(kāi)發(fā)者的數(shù)據(jù),你可以訪問(wèn)嗎?
劉濤:你說(shuō)像剛才那個(gè)微信公眾號(hào)上面,我是可以拿取到用戶(hù)列表的。這個(gè)我們沒(méi)有去做過(guò)統(tǒng)計(jì),因?yàn)槲覀儍H僅只是去單獨(dú)驗(yàn)證,因?yàn)槭亲詣?dòng)化的,我們只是說(shuō)去看到我們可以拿到一個(gè)OID,我們就認(rèn)為好,這個(gè)東西就過(guò)了。但是其實(shí)我們后面也手動(dòng)分析過(guò),我們從中挑了一個(gè)去看過(guò)。我們搜集到有一些,是一個(gè)游戲的公眾號(hào),我記不起是什么名字了,大概是有幾千個(gè)用戶(hù)關(guān)注了這個(gè),但是我們只是抽取了其中幾個(gè),可能有一些其他的,有些可能就只有幾百個(gè),有些有上千個(gè),但是這些數(shù)據(jù)你現(xiàn)在向我要的話,我給不了你,抱歉。
提問(wèn):這些開(kāi)放平臺(tái)大部分是可讀的嗎?還是可寫(xiě)的?可以修改用戶(hù)的數(shù)據(jù)嗎?
劉濤:你要修改用戶(hù)的數(shù)據(jù)的話,這個(gè)好像我沒(méi)有怎么去關(guān)注過(guò),但是我可以去修改這個(gè)應(yīng)用的數(shù)據(jù)。因?yàn)楫吘鼓阋薷挠脩?hù)的數(shù)據(jù)的話,就像剛才那位女士提到的這個(gè)問(wèn)題,就是說(shuō)我要修改用戶(hù)的數(shù)據(jù)的話,我一般都要通過(guò)第一步認(rèn)證,就是必須都要有用戶(hù)的登錄參與,就是說(shuō)要有用戶(hù)的確認(rèn)授權(quán)的話,他才可以去連接到用戶(hù)的數(shù)據(jù)。拿到授權(quán)憑證的話,主要修改都以應(yīng)用的身份去改一些東西。所以說(shuō)改的大部分都是應(yīng)用的一些相關(guān)的東西,但是我可以通過(guò)應(yīng)用的東西去影響到用戶(hù)。
提問(wèn):我想問(wèn)一下,咱們Janus在分析我們APK數(shù)據(jù)的時(shí)候,如果遇到那種加固的應(yīng)用我們一般是怎么處理?
劉濤:可能剛才我沒(méi)有提到,我們現(xiàn)在也已經(jīng)對(duì)一些常見(jiàn)的一些加固的進(jìn)行了一個(gè)脫殼的處理,但是就是說(shuō)現(xiàn)在還不是對(duì)所有的加固都能進(jìn)行這樣一個(gè)操作,但是我們現(xiàn)在正在研究怎么樣更通用的把一個(gè)應(yīng)用的加固去掉,現(xiàn)在有一部分是可以把殼脫掉的。
提問(wèn):你說(shuō)的這個(gè)脫殼是完整的脫下來(lái)還是靜態(tài)的,就是只是還原一步?加密過(guò)之后不是一個(gè)完整的,很多代碼是抽掉的,就是只有在運(yùn)行的時(shí)候。
劉濤:運(yùn)行的時(shí)候動(dòng)態(tài)注入出去是嗎?
提問(wèn):對(duì)這一部分代碼進(jìn)行保護(hù)的時(shí)候,我們?cè)谔崛∵@一部分代碼數(shù)據(jù)的時(shí)候有沒(méi)有一些方案?
劉濤:現(xiàn)在我們還正在研究當(dāng)中,但是我現(xiàn)在只能告訴你,就是說(shuō)一部分的加固我們是可以進(jìn)行脫殼處理的,另外還有一些,我們也正在有一定的解決方案,還有一些是在研究進(jìn)一步的解決方案,并不是所有殼都能脫掉的,這倒是肯定的。在Janus系統(tǒng)里面,我們也是有提取的,我們也是有處理的,只是說(shuō)可能有一些并不會(huì)還原到Java代碼上面去。
提問(wèn):靜態(tài)分析方面有嗎?
劉濤:有,剛才你看到的交互分析,很多數(shù)據(jù)其實(shí)都是通過(guò)靜態(tài)分析獲取到的。
提問(wèn):您提到開(kāi)放問(wèn)題,有沒(méi)有可能以后開(kāi)放給其他的企業(yè)或者是個(gè)人用戶(hù)?
劉濤:這些都會(huì)的,我們對(duì)于普通的安全人員,比如像白帽子我們有這樣的用戶(hù)接口,還有對(duì)于企業(yè)的話,我們也有相應(yīng)的用戶(hù)接口。
提問(wèn):我看您進(jìn)的過(guò)程當(dāng)中都是用Http的,是直接就沒(méi)有Https,直接在網(wǎng)上抓包得到的數(shù)據(jù)嗎?
劉濤:剛才說(shuō)的抓包的話,其實(shí)是當(dāng)初去年在烏云上面曝光的廣州號(hào)碼百事通里面,當(dāng)時(shí)是通過(guò)抓包獲得的這個(gè)ACCESS-TOKEN,后來(lái)這個(gè)Janus我們是通過(guò)直接靜態(tài)分析得到的,并沒(méi)有存在抓包的。但是針對(duì)你ACCPS,我們?cè)趧?dòng)態(tài)獲取當(dāng)中,我們是對(duì)于這個(gè)做過(guò)一定的處理得,ACCPS我們也可以抓取到里面的數(shù)據(jù)的。
提問(wèn):你是說(shuō)把包解下來(lái)?
劉濤:把包解下來(lái),可以拿到一些數(shù)據(jù)?,F(xiàn)在根據(jù)我團(tuán)隊(duì)里面的成員他反饋給我的信息,好像有能夠解決一部分,但是不是全部的。