成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

梆梆SDKs詳細(xì)分析-防界面劫持SDK

前言

十多年的瑞昌網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整瑞昌建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“瑞昌網(wǎng)站設(shè)計(jì)”,“瑞昌網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。


    前段時(shí)間,國(guó)外知名的安全公司fireeye發(fā)表了一篇病毒分析文章,講述的主角是一個(gè)專門針對(duì)手機(jī)銀行的android手機(jī)病毒。文章鏈接如下:https://www.fireeye.com/blog/threat-research/2015/12/slembunk_an_evolvin.html。這個(gè)手機(jī)病毒變種甚多,影響廣泛,也不乏一些高端技術(shù)的應(yīng)用。其中有一個(gè)很有意思的特性,就是它可以劫持手機(jī)銀行的登錄界面,從而盜取受害者的銀行賬號(hào)、密碼。

   看完fireeye這篇精彩的分析文章之后,我對(duì)這個(gè)病毒使用的一些技術(shù)很感興趣,無(wú)奈沒有找到樣本,不能自己動(dòng)手分析,因此也只能作罷。

   事情過(guò)了大概一兩個(gè)月,有一次和朋友出去吃飯聊起這個(gè)病毒的一些特性。友人說(shuō),你說(shuō)的這個(gè)技術(shù)梆梆就有啊,而且他們還出了一個(gè)防御界面劫持的SDK呢。聽完我甚是欣喜,于是就有了接下來(lái)對(duì)梆梆SDK的分析。下面分析的SDK均可以在梆梆的SDK主頁(yè)上下載到。http://www.bangcle.com/solution/sdk-center/。

 

梆梆防界面劫持SDK


界面劫持概述

    界面劫持通俗來(lái)說(shuō)就是病毒或***在后臺(tái)實(shí)時(shí)監(jiān)控某個(gè)窗口的產(chǎn)生,例如QQ、支付寶、手機(jī)銀行等軟件的登錄界面。一旦發(fā)現(xiàn)目標(biāo)窗口出現(xiàn),病毒就馬上創(chuàng)建一個(gè)跟目標(biāo)窗口一毛一樣的窗體來(lái)覆蓋在它之上。

    當(dāng)發(fā)生界面劫持時(shí),用戶在無(wú)察覺的情況下將自己的賬號(hào)、密碼信息輸入到仿冒界面中,惡意程序再把這些數(shù)據(jù)上報(bào)到其自身服務(wù)器,這個(gè)過(guò)程便是釣魚***。

    界面劫持具有病毒制作成本低(技術(shù)含量低)、用戶難察覺、殺毒軟件不易查殺等特點(diǎn)而被廣泛使用。早在PC時(shí)代該技術(shù)就已經(jīng)很成熟了,當(dāng)時(shí)比較出名的是“QQ粘蟲病毒”,此病毒看名字就已經(jīng)通俗易懂了,主要是被用來(lái)盜取受害者的QQ賬號(hào)密碼。

 

SDK預(yù)覽

    梆梆的防界面劫持SDK里面提供了兩個(gè)APK,一個(gè)是防界面劫持demo,我們可以稱它為demo1,界面如圖1。從圖中可以看出,梆梆的SDK提供了基類和接口兩種方式來(lái)防御界面劫持。

梆梆SDKs詳細(xì)分析 - 防界面劫持SDK

圖1

 

    另一個(gè)就是界面劫持demo,我們可以稱它為demo2,界面如圖2所示。它的功能比較簡(jiǎn)單,就是啟動(dòng)和關(guān)閉界面劫持。

梆梆SDKs詳細(xì)分析 - 防界面劫持SDK

圖2

 

    梆梆想的還是蠻周到的,提供了攻、防兩個(gè)程序。Demo2開啟功能后可以劫持demo1產(chǎn)生的窗口。Demo1檢測(cè)到界面劫持之后會(huì)給用戶一個(gè)提示,“疑似非本應(yīng)用界面,請(qǐng)注意?。?!”。如圖3。

梆梆SDKs詳細(xì)分析 - 防界面劫持SDK

圖3

 

逆向分析

    看完了梆梆SDK的功能演示,我覺得他們這技術(shù)很是新奇,于是準(zhǔn)備逆向分析之。反編譯界面劫持demo的時(shí)候發(fā)現(xiàn)該APK加了梆梆的殼,無(wú)奈手工脫殼,接著分析。

 

在理解梆梆防界面劫持SDK原理之前,我們先來(lái)了解下android程序中onPause方法的一些知識(shí)。

    onPause方法用于由一個(gè)Activity轉(zhuǎn)到另一個(gè)Activity、設(shè)備進(jìn)入休眠狀態(tài)(屏幕鎖住了)、或者有dialog彈出時(shí)由系統(tǒng)通知程序的一個(gè)方法。此時(shí),我們的android程序知道自己的窗體發(fā)生切換了。在這個(gè)方法里面,開發(fā)者可以保存一些必要的窗體狀態(tài)信息。

    當(dāng)界面劫持發(fā)生時(shí),正常APP的登錄界面會(huì)被病毒程序的仿冒界面覆蓋,即上述所說(shuō)的一個(gè)Activity轉(zhuǎn)到另一個(gè)Activity,此時(shí)正常APP的onPause方法會(huì)被調(diào)用。因此,梆梆的界面劫持SDK在onPause階段檢查頂層窗口即可判斷是否被劫持了。

梆梆防界面劫持SDK的代碼非常簡(jiǎn)單,逆向出來(lái)的源碼不足百行,已經(jīng)自測(cè)功能正常,大致如下:

代碼:

public class MyBaseActivity extends Activity {

  private static Set set = new HashSet();

  private boolean b = true;

  

  @Override

  protected void onCreate(Bundle savedInstanceState) {

    if (set.size() == 0) {

      try {

        InputStream is = getAssets().open("white.txt");

        BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));

        while (true) {

          String write = br.readLine();

          if (write == null) {

            break;

          }

          

          set.add(write);

        }

        

        is.close();

        br.close();

      }

      catch (IOException exp) {

        exp.printStackTrace();

      }

    }

    

    set.add(getPackageName());

    super.onCreate(savedInstanceState);

  }

  

  protected void onPause() {

        if(b) {

            String packagename = ((ActivityManager)getSystemService(Context.ACTIVITY_SERVICE)).

                getRunningTasks(1).get(0).topActivity.getPackageName();

            

            if(!set.contains(packagename)) {

                String msg = "疑似界面劫持***,請(qǐng)小心使用,并查殺病毒!";

                Toast toast = Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG);

                toast.setGravity(17, 0, 0);

                toast.show();

                b = false;

            }

        }

        

        b = true;

 

        super.onPause();

    }

}

SDK的不足之處

    逆完了梆梆的防界面劫持SDK之后,我覺得他們的這個(gè)檢測(cè)方法并不是很好,主要有以下幾點(diǎn)不足之處:

1. 誤報(bào)多。

    因?yàn)榘鸢鹗窃趏nPause的時(shí)候檢測(cè)頂層窗口是不是自己的,如果不是,就開始報(bào)警。所以說(shuō),只要是窗口發(fā)生切換,不論是不是界面劫持它都會(huì)報(bào)警。為了證明我的猜測(cè),我用Android Studio生成了一個(gè)完全沒有功能的Hello World測(cè)試程序,之后點(diǎn)擊“Run”按鈕來(lái)啟動(dòng)程序。如圖4。

梆梆SDKs詳細(xì)分析 - 防界面劫持SDK

圖4

    稍等片刻之后,Android Studio會(huì)啟動(dòng)我們的測(cè)試程序。與此同時(shí),窗體會(huì)發(fā)生切換,由梆梆的防界面劫持demo切到了我們的測(cè)試程序界面。此時(shí),梆梆的防界面劫持demo就發(fā)出報(bào)警了,說(shuō)有界面劫持發(fā)生。這是一個(gè)典型的誤報(bào)。如圖5所示。而且類似這樣的界面切換操作,在android機(jī)器上是很容易發(fā)生的,因此多誤報(bào)在所難免。

梆梆SDKs詳細(xì)分析 - 防界面劫持SDK

圖5

    顯然,梆梆也意識(shí)到了誤報(bào)多這個(gè)問(wèn)題了。于是,他們?cè)赟DK中加入了一些白名單,主要根據(jù)包名來(lái)過(guò)濾,如果是白名單中的程序就不報(bào)警了。白名單如圖6所示。

梆梆SDKs詳細(xì)分析 - 防界面劫持SDK

圖6

 

2. 容易被繞過(guò)。

    既然有了白名單,那么無(wú)疑是增加了被繞過(guò)的幾率。例如圖6中的com.sonyericsson.*,這些程序只有在索尼的機(jī)器上才會(huì)有。那么病毒***只要把自己命名成com.sonyericsson.home,就可以在諸如小米、華為、三星這樣的手機(jī)上繞過(guò)梆梆防界面劫持SDK的檢測(cè)了。

 

3. 僅支持android 5.0以下機(jī)型。

    由上面我逆向出來(lái)的代碼中可以看出,梆梆防界面劫持SDK主要是通過(guò)getRunningTasks這個(gè)函數(shù)來(lái)獲取頂層窗口對(duì)應(yīng)的包名的。然而這個(gè)函數(shù)存在泄露用戶個(gè)人信息的風(fēng)險(xiǎn),因此在android 5.0以后google就不讓第三方程序使用該API了。Google的文檔中也寫的很清楚了,如圖7所示。

梆梆SDKs詳細(xì)分析 - 防界面劫持SDK

圖7

 

總結(jié)


    通過(guò)逆向梆梆的防界面劫持SDK,我對(duì)android上的界面劫持技術(shù)有了一個(gè)更深入的了解。另外,梆梆在android安全方面有很多的技術(shù)儲(chǔ)備,如果能很好的解決上述三個(gè)不足之處,那應(yīng)該能造福不少的android用戶。

分享題目:梆梆SDKs詳細(xì)分析-防界面劫持SDK
當(dāng)前地址:http://jinyejixie.com/article40/jjeeeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、品牌網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、定制開發(fā)、全網(wǎng)營(yíng)銷推廣、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
项城市| 依安县| 保靖县| 积石山| 曲麻莱县| 东山县| 洞头县| 洞头县| 曲麻莱县| 永兴县| 淅川县| 呼伦贝尔市| 杭锦旗| 岗巴县| 静安区| 自治县| 常山县| 博罗县| 长武县| 呼伦贝尔市| 儋州市| 积石山| 莎车县| 彭水| 荆州市| 时尚| 海城市| 平定县| 时尚| 赤城县| 容城县| 绥德县| 台东市| 天气| 大姚县| 青龙| 孝感市| 瑞安市| 南涧| 阳东县| 科技|