【CSDN英雄会】黄帅:安全不是独行侠而是系统性的运维过程
英雄會是CSDN旗下針對國內(nèi)IT技術(shù)領(lǐng)域?qū)<艺故竞徒涣鞯钠脚_。通過線下線上的互動形式,為CSDN社區(qū)專家提供更多學(xué)習(xí)、合作、宣傳的機會。英雄會后續(xù)將在北上廣深等國內(nèi)一二線城市建立分會,各個分會后期將組織技術(shù)交流活動。
恰逢11月18日-20日,SDCC2016將在北京舉辦,屆時將在大會現(xiàn)場召開SDCC英雄會,正式成立CSDN英雄會北京分會,所在北京的重量級社區(qū)專家將受邀參加此次英雄會,面對面進行技術(shù)交流。
為了讓大家更好地認識CSDN英雄會的成員,我們特別開設(shè)了【CSDN英雄會】采訪專欄,講述他們的技術(shù)成長之路。
本期邀請的嘉賓是黃帥。他工作五年以來從事過十幾款安卓應(yīng)用的研發(fā),平時熱衷于研究移動設(shè)備的安全問題,針對常見的安卓安全漏洞。在他看來,安全不是獨行俠而是系統(tǒng)性的運維過程,自己做好了安全防范也應(yīng)該協(xié)助和確保合作的其他第三方安全無漏洞。
CSDN:簡單介紹下您和目前所從事的工作。
黃帥:我從事的工作是安卓軟件研發(fā),工作五年以來從事過十幾款安卓應(yīng)用的研發(fā)。曾在烏云網(wǎng)工作,在烏云網(wǎng)主要負責烏云安全中心移動端的研發(fā)工作。擅長安卓應(yīng)用架構(gòu)設(shè)計和安卓應(yīng)用的推廣,平時熱衷于研究移動設(shè)備的安全問題,針對常見的安卓安全漏洞,發(fā)表過多篇解讀報告。工作期間曾獲得SCJP和SCWCD認證,現(xiàn)在在一家創(chuàng)業(yè)公司工作,從事安卓端研發(fā)工作。
CSDN:據(jù)了解,您一直從事Android研發(fā)領(lǐng)域,Android開發(fā)手機安全大概需要什么技術(shù)?
黃帥:我覺得首先應(yīng)該需要的是Java和C語言的技術(shù)作為基礎(chǔ),因為Android開發(fā)和安全技術(shù)就是以這兩種語言為主的,熟練掌握這兩種基礎(chǔ)語言可以更好地開發(fā)Android應(yīng)用程序和NDK程序;其次需要掌握靜態(tài)分析和動態(tài)調(diào)試的技術(shù),學(xué)會IDA和JEB工具的使用;對于底層的安全需要掌握Android虛擬機的機制原理和處理指令,有條件的可以學(xué)習(xí)ARM匯編語言。
CSDN:開發(fā)更安全的Android應(yīng)用要注意哪些?
黃帥:這里我想分享幾個經(jīng)驗:第一,在日常開發(fā)中一定要嚴格按照安卓規(guī)范去研發(fā),例如屬性的配置、數(shù)據(jù)的邊界測試、第三方組件安全性的檢測;第二,不要把敏感的數(shù)據(jù)信息存儲在外部設(shè)備或者進行不安全的網(wǎng)絡(luò)傳輸;第三,網(wǎng)絡(luò)訪問盡可能的使用安全的的連接服務(wù),比如使用HTTPS代替HTTP;第四,針對安全性要求較高的項目使用代碼混淆和APP加固。
CSDN:能不能講講目前Android平臺通用安全目前存在的問題及對應(yīng)策略。
黃帥:這里我談幾個常見的安全問題:
1.破解手機root
一旦Android手機被破解手機root,APP應(yīng)用的數(shù)據(jù)將很容易被竊取,同時攻擊方可以通過logcat獲取應(yīng)用日志信息,甚至安裝一些惡意程序。
2.APP被反編譯
當一個APP被反編譯后,其軟件的源碼就可能暴露出來,攻擊人員可以肆意的對軟件源碼進行邏輯修改,插入惡意代碼和廣告程序等。為了防止我們的APP被反編譯,我們可以使用ProGuard等工具對源碼進行混淆,一些關(guān)鍵邏輯可以寫在so文件中,必要時可以進行APP加固。
3.數(shù)據(jù)泄密
大多數(shù)APP都需要存儲數(shù)據(jù),數(shù)據(jù)的存儲有的在本地,有的進行網(wǎng)絡(luò)傳輸,如果這些數(shù)據(jù)被泄露出去將對APP造成不可挽回的損失。為此,針對本地數(shù)據(jù)存儲,我們可以使用加密的數(shù)據(jù)庫,比如說SQLCiphe,平時研發(fā)過程中不要把敏感信息放在外部存儲上,加載一些數(shù)據(jù)資源時應(yīng)該做完整性校驗;針對網(wǎng)絡(luò)數(shù)據(jù)傳輸,應(yīng)該避免明文傳輸,使用安全可靠的加密方案,對數(shù)據(jù)加密后再進行網(wǎng)絡(luò)傳輸。
4. 組件暴露
Android有四大組件分別是Activity、Service、Broadcast Receiver和Content Provider,通常大家在調(diào)用這四大組件的過程中容易忽略調(diào)用驗證的流程,這就導(dǎo)致很多時候我們APP的組件暴露出去,導(dǎo)致被利用后非法獲取大量信息。為此,對于研發(fā)人員來講,應(yīng)該加強組件調(diào)用時輸入信息驗證,必要時關(guān)閉android:exported屬性,并可以使用
android:protectionLevel屬性來驗證調(diào)用來源。
5. WebView安全
現(xiàn)在的APP越來越多的嵌入WebView以達到使用HTML5或者JS的目的,但是如果不能很好的對JavaScript代碼進行校驗,將會給自己的APP帶來極大的安全風險。常用的做法是對輸入數(shù)據(jù)進行進行驗證,同時在4.2以上的系統(tǒng)中對Java的遠程方法聲明一個@JavascriptInterfac注解,而在4.2以下的系統(tǒng)不要再使用addJavascriptInterface方法,取而代之的是適應(yīng)更安全的HTTP協(xié)議進行傳輸,如果仍舊使用HTTP傳輸,則最好開啟白名單過濾。
CSDN:您怎么看待Android APP開發(fā)的安全性與iOS APP開發(fā)的差距?
黃帥: 1.Android系統(tǒng)是開放的,功能擴展強,但是由于其開放性導(dǎo)致全球市場安卓系統(tǒng)良莠不齊,尤其是國內(nèi),缺少統(tǒng)一的安卓系統(tǒng)安全標準;iOS則是較為封閉性的系統(tǒng),從系統(tǒng)層面來講比起Android安全性稍好一些,但是Android系統(tǒng)的安全也在不斷完善之中。
2.Android和IOS在數(shù)據(jù)安全方面其實遇到的問題幾乎一致,針對本地數(shù)據(jù),二者通常把本地通數(shù)據(jù)保存在本地文件或本地數(shù)據(jù)庫中。如果對本地的數(shù)據(jù)不進行加密處理,很可能被黑客篡改。針對網(wǎng)絡(luò)數(shù)據(jù),Android和IOS都面臨著數(shù)據(jù)傳輸過程中不安全的隱患,比如說針對傳輸數(shù)據(jù)進行抓包、監(jiān)聽、破解通信協(xié)議等。
3.其實Android和iOS在研發(fā)安全方面往往面臨著許多相同的問題,首先現(xiàn)在越來越多的APP功能頁面都采用HTML5或者是JS來實現(xiàn),而為了更好地展現(xiàn)這些二者都是用了Web容器,而這些Web容器本身就有許多安全漏洞,有些漏洞也隨著集成一起帶到了APP中,比如說UXSS。另外JS對象注入、遠程代碼執(zhí)行等問題也不容小覷。
CSDN:您是如何最終走上Android研發(fā)安全這條路的?
黃帥:其實我走上Android研發(fā)安全這條路是因為在烏云網(wǎng)工作的經(jīng)歷決定的。我之前工作并沒有多少研發(fā)安全的概念,加入烏云團隊后,其專業(yè)、細致、全面的安全研發(fā)模式深深的影響了我,在接下來的工作中我很好地落實了團隊對移動安全的要求,腦海中逐漸形成了很強的安全意識;再后來經(jīng)常利用烏云漏洞平臺,學(xué)習(xí)各種Android漏洞的產(chǎn)生原因和修復(fù)原理,最終走上了Android研發(fā)安全這條路。
CSDN:Android研發(fā)安全方面,您是如何和學(xué)習(xí)成長的?
黃帥:一方面通過大量的閱讀書籍(移動設(shè)備安全類的書籍)和網(wǎng)絡(luò)資源(比如說、博客、論壇精華帖子);另一方面自己研究網(wǎng)絡(luò)上的一些典型的漏洞案例。周末也會參加一些線下的安全技術(shù)學(xué)習(xí)沙龍。
CSDN:在Android研發(fā)安全過程中有什么樣的故事可以分享嗎?
黃帥:這里我分享一個開發(fā)中的安全漏洞故事,之前做APP項目,在研發(fā)后期對待上線的APP進行了好多方面的安全測試,自己覺得APP不會有什么安全問題了,但是APP上線后卻被細心的白帽子提交了漏洞,究其原因是我們APP項目中使用的第三方推送平臺,該平臺SDK存在一個漏洞,導(dǎo)致攻擊者可以偽造廣播,利用其進行惡意代碼執(zhí)行和獲取私有文件。后來我們聯(lián)絡(luò)平臺提供商一起修復(fù)了這個Bug,這件事情以后我才逐漸明白一個道理,安全不是獨行俠而是一個系統(tǒng)性的運維過程,自己做好了安全防范也應(yīng)該協(xié)助和確保合作的其他第三方安全無漏洞。
CSDN:您是什么時候接觸CSDN的?它對您學(xué)習(xí)和工作都帶來哪些影響?同時,對CSDN有什么建議?
黃帥:我是2009年接觸CSDN的,起初是為了下載資源和查找學(xué)習(xí)資料,后來也上傳了很多技術(shù)資料到CSDN平臺上,同時也在CSDN論壇上面參與技術(shù)問題交流。
CSDN上面很多優(yōu)秀的博客資源給我提供了很多好的學(xué)習(xí)資源,同時我在日常工作中有解決不了的技術(shù)問題,喜歡去CSDN上查找解決方案,有許多熱心的朋友給了我很多幫助和支持。
未來,希望CSDN能夠越辦越好,多舉辦一些線下活動,促進IT人士更好的技術(shù)交流。
黃帥CSDN博客地址:
http://blog.csdn.net/mynameishuangshuai
往期回顧
【CSDN英雄會 第12期】理想梧桐于博:從技術(shù)到技術(shù)管理轉(zhuǎn)變時的痛點
【CSDN英雄會 第11期】嗶哩嗶哩殷汶杰:合格的多媒體技術(shù)工程師有成為全棧架構(gòu)師的潛質(zhì)
【CSDN英雄會 第10期】關(guān)成龍:核心支付系統(tǒng)是“雙11” 最不可或缺的一項關(guān)鍵技術(shù)
【CSDN英雄會 第9期】 阿里巴巴劉士濤:我是如何拿到阿里巴巴offer的
【CSDN英雄會 第8期】張冰洋:深度學(xué)習(xí)必將成為未來熱門的研究方向
【CSDN英雄會 第7期】滬江徐宜生:掌握工具使用技巧,是提高工作效率的最佳途徑
【CSDN英雄會 第6期】 易寶支付架構(gòu)師、移動產(chǎn)品線技術(shù)負責人程超:走在Java的路上
【CSDN英雄會 第5期】專訪東平軟件研發(fā)中心CEO翟東平:微信是移動端的主要力量
【CSDN英雄會 第4期】大眾點評黃俊東:Android開發(fā)者經(jīng)驗談
【CSDN英雄會 第3期】恒信彩虹趙中:我的十年CTI技術(shù)
【CSDN英雄會 第2期】好未來教育陳剛:Swift是怎樣練成的
【CSDN英雄會 第1期】黃帥:安全不是獨行俠而是系統(tǒng)性的運維過程
歡迎加入CSDN英雄會:http://t.cn/RV9mzUX
總結(jié)
以上是生活随笔為你收集整理的【CSDN英雄会】黄帅:安全不是独行侠而是系统性的运维过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [总结]mac pro 提示“USB设备
- 下一篇: NAND Flash 接口对比