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