◆王夢迪 馬 丁
(中國人民公安大學信息工程與網(wǎng)絡(luò)安全學院 北京 100038)
基于Android平臺的二維碼入侵檢測研究
◆王夢迪 馬 丁
(中國人民公安大學信息工程與網(wǎng)絡(luò)安全學院 北京 100038)
快速發(fā)展的互聯(lián)網(wǎng)和智能手機的巧妙結(jié)合給手機頻繁地遭受到各種惡意程序的侵害提供了可能。目前,越來越多的商家通過讓顧客掃描二維碼來參與到相應的活動中,但是很多別有用心的人會向二維碼中注入一些惡意網(wǎng)站的信息,使用戶的利益遭受損失。本文介紹了一種基于Android平臺的二維碼入侵檢測研究的方法,會使用戶在掃面二維碼后彈出提醒,幫助用戶識別惡意網(wǎng)站。
Android;智能手機平臺二維碼;惡意網(wǎng)站
中國互聯(lián)網(wǎng)絡(luò)信息中心(CHINA INTERNET NETWORK INFORMATION CENTER)于2016年1月在北京發(fā)布了《中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告》[1],報告表明:截止至2015年12月,中國互聯(lián)網(wǎng)用戶中使用手機作為上網(wǎng)工具的人數(shù)已經(jīng)達到6.20 億,與去年同期相比,手機網(wǎng)民新增6303 萬人?;ヂ?lián)網(wǎng)和手機的結(jié)合,已經(jīng)成功塑造了一個全新的社會生活形態(tài),它正潛移默化地改變著所有移動網(wǎng)民日常的生活。根據(jù)數(shù)據(jù)分析,手機作為時下最為便攜的上網(wǎng)設(shè)備,正逐漸替代電腦,成為互聯(lián)網(wǎng)的重要載體。
手機借助互聯(lián)網(wǎng)改變了網(wǎng)民的日常生活,信息之間的傳遞變得簡明、快捷,依托市場應運而生的二維碼,在為人們帶來便利的同時,也存在一定的安全隱患。
對廣大普通的手機用戶來說,用手機去掃描那些無法得知具體內(nèi)容及發(fā)布者身份的二維碼,就變得具有危險性了。本文基于保護移動互聯(lián)網(wǎng)用戶隱私的目的,以Android平臺為基礎(chǔ),介紹了一種檢測方法,以防范惡意二維碼的入侵。
Android的主要構(gòu)架包括操作系統(tǒng)、中間件、用戶界面和應用軟件[2],它最大的特點就是具有真正意義上的開放性,它的開放性保證了Android平臺不會對移動產(chǎn)業(yè)的創(chuàng)新產(chǎn)生任何阻礙。Android平臺的應用軟件統(tǒng)一使用Java語言作為編程語言。Android平臺的構(gòu)架如圖1所示。
圖1 Android平臺的構(gòu)架
(1)應用程序(Applications)
Android本身的配置會搭載一些主要程序,常見的有日歷、瀏覽器、通訊錄、地圖、email客戶端等,編程語言皆采用java語言。
(2)應用程序框架(Application framework)
Android的開發(fā)人員具有和核心應用相同的框架API訪問權(quán)限。在應用的使用中加入安全性約束。
(3)庫(Libraries)
Android的系統(tǒng)中含有一整套C/C++庫,被用來構(gòu)建Android系統(tǒng)內(nèi)部種類繁多的組件。
Android Runtime內(nèi)含了一整套核心的數(shù)據(jù)庫,java語言的眾多功能皆基于此。Android的每一個程序都運行在自己設(shè)定的進程當中。
(4)Linux內(nèi)核(Linux kernel)
Linux內(nèi)核是用來提供底層服務的,可實現(xiàn)的功能包括安全問題、系統(tǒng)內(nèi)部存儲的管理和網(wǎng)絡(luò)對戰(zhàn)等。該內(nèi)核的另一個作用是提供了一個屏蔽層,主要用于屏蔽硬件和上層軟件。
基于技術(shù)門檻低這一特征,黑客們可以在二維碼中任意植入各種不法信息,然后再通過地推,互聯(lián)網(wǎng)廣告等多種途徑來提高相關(guān)二維碼的掃描量。在掃描二維碼的時候,用戶需要多加小心。
2.1 二維碼的定義
二維條碼[3](簡稱二維碼)(2-dimensional bar code)以二維方式來記錄具體數(shù)據(jù)符號信息。它將要傳達的信息以約定的編碼方式表現(xiàn)成黑白圖形。它以圖象輸入或光電掃描的形式來實現(xiàn)識讀以及所需信息的獲取[4]。
2.2 二維碼的功能
(1)二維碼可以實現(xiàn)網(wǎng)站跳轉(zhuǎn)的功能。將網(wǎng)址等信息轉(zhuǎn)換為二維碼形式,用戶掃描后即可進入相關(guān)頁面。比如:新浪微博、微信和淘寶等很多的網(wǎng)站、公司或者商店都實現(xiàn)了掃一掃即可輕松進入的功能,極大程度上方便了用戶的使用。
(2)二維碼可以實現(xiàn)推送廣告的功能。對于以音頻或視頻形式展現(xiàn)的視覺廣告,將其轉(zhuǎn)換為二維碼后進行投放,網(wǎng)民掃描后即可觀看。地鐵或者公交車上隨處可見的二維碼就可以實現(xiàn)這種功能,將廣告植入到人們生活的各個方面,實現(xiàn)真正的廣而告之。
(3)二維碼可以實現(xiàn)防偽溯源的功能。通過對商品進行掃碼,用戶能夠查看其生產(chǎn)日期、生產(chǎn)地、生產(chǎn)商和商標等相關(guān)信息。目前,給動物佩戴二維碼耳標已經(jīng)被廣泛應用,通過對二維碼耳標進行掃描,消費者能夠探知生產(chǎn),運輸和銷售的整個鏈條,從而保證了消費者餐桌上的肉類質(zhì)量的安全可靠,讓消費者放心。
(4)二維碼可以幫助商家進行優(yōu)惠促銷的活動。很多外賣電商都推出了此項服務功能,只要掃描商家提供的二維碼,就可以獲得不同程度的打折劵,提高了自己的市場競爭力的同時,也吸引了很多潛在用戶訂購外賣。
(5)二維碼可以實現(xiàn)手機支付的功能。目前第三方支付以及很多銀行都已實現(xiàn)移動支付功能。現(xiàn)如今,很多便利店都提供了這項服務,只要通過掃一掃,就可以跳轉(zhuǎn)至手機的支付寶頁面,實現(xiàn)支付功能。
(6)二維碼可以實現(xiàn)信息獲取的功能。通過掃描相應的二維碼,用戶就可以得到公司信息、個人的名片信息、WIFI的密碼等信息?,F(xiàn)如今,很多咖啡廳都已經(jīng)開啟了這個服務,只要掃描貼在桌角的二維碼,就可以獲取店內(nèi)的WIFI密碼,實現(xiàn)免費上網(wǎng)的功能,滿足了顧客的上網(wǎng)需求。
2.3 二維碼的特點
(1)存儲的容量比較大,編碼的密度高。主要是通過垂直方向上的堆積來提高存儲密度。它可以存儲幾千個字節(jié),極大地提高了信息量級。它可以通過很小的一塊圖形符號來表示大量的信息,其編碼密度比起一維條碼要高的多。(2)糾錯能力強。當要讀取的二維碼圖像有局部污損或者稍有不清晰時,利用二維碼的糾錯能力,同樣可以正確識讀信息。(3)編碼范圍廣泛。在一維碼原有的基礎(chǔ)上,還能編輯更多的資料,比如文字、圖片、音樂等信息。(4)可引入加密機制[5]。通過一些特殊的算法,對原始的數(shù)據(jù)加密后再表示成對應的二維碼。這樣,掃描二維碼之后,用戶得到的也只是加密之后的文件,并非原文,只有通過相對應的算法才能得到原文件。
2.4 二維碼的解碼
二維碼有很多種類,日本企業(yè)研制的QR碼目前在我國較為普遍。本文展示一種QR碼的解碼方法,核心代碼的展示如下:
3.1 實驗步驟
(1)首先掃描二維碼,然后對二維碼進行解碼;
(2)在對返回的信息中提取URL信息;
(3)將從信息中提取出來的URL地址和數(shù)據(jù)庫中的URL地址進行對比,分析其是否為惡意的鏈接。
3.2 主要代碼
3.3 實驗結(jié)果
用測試機掃描二維碼進行測試,結(jié)果顯示如下圖。如果在對二維碼進行解碼后,返回的信息當中不包含惡意的URL地址,則如圖2所示;如果在對二維碼進行解碼后,返回的信息中包含惡意的URL地址,則如圖3所示。