SlideShare une entreprise Scribd logo
1  sur  44
Télécharger pour lire hors ligne
Android Apps Security
2013.08.22 @ Android Taipei
Taien Wang<taien_wang@hiiir.com>
英屬維京群島商時間軸科技股份有限公司
電子商務事業群
About Taien
• 簡介
– 常任各演討會講師, 資安教育講師與資安顧問
– 熱愛程式設計, 網路架構與資訊安全
• 獎項
– 2012 Node.js Knockout 台灣區, 第二名
– 2011 Microsoft MVP 微軟最有價值專家
– 2011 趨勢雲端程式競賽, 第一名, 最佳人氣獎
– 5th 全國資安技能競賽金盾獎, 第二名
– 5th 華陀盃台灣區網路解疑技能競賽, 佳作
– 入圍 2009 微軟潛能創意盃, 台灣區, 決賽
– 13th 全國大專院校資服創新競賽, 第一名
– 2th 全國資安技能競賽金盾獎, 優選
• 經歷
– 2012 時間軸科技新創事業部研發部門主管
– 2010 Microsoft Technet 講師
– 2010 台灣微軟行銷營運暨行銷處研發助理
– 2010 台灣微軟技術中心研發助理
– 2009 網駭科技 Net-Hack 資安顧問
– 2009 中華民國資訊軟體協會資安推廣專案講師
– 2008 網駭科技 Net-Hack 研發兼技術工程師
大綱
• OWASP Mobile Top 10 Risk
• Android 客戶端安全
– Android App 架構
– Android 應用程式包
• APK, DEX與JAR
• Manifest.xml
– 權限控制
• APK 分析
– 傳輸層安全
– 儲存安全
– 基礎密碼學認識
• 結論
• 參考資料
OWASP Mobile Top 10 Risk
為什麼我們要瞭解安全
• 工程師
– 案子都做不完了, 先滿足需求就好了
• 現實層面
– 世界就這麼大, 產品做大了怎麼會有奇奇怪怪的問題
– 除了業務上的問題, 還有技術上的
• 滿足需求
– 將需求定義為用戶為了解決問題或達成目標所需要的條件或功能, 或為
了滿足合約, 標準, 規範或其他正是有效的文件, 系統所需擁有的或滿足
的條件或功能
– NSI/IEEE Standard 729
OWASP Mobile Security Project
- Top Ten Mobile Risks
OWASP Mobile Top Ten Mobile Risks (1/2)
• M1. 不安全的資料儲存(Insecure Data Storage) – 對應案例
– SQLite, Log, Plist, XML, Manifest
– 二進位檔, Cookie, SD卡, 雲端同步
• M2. 弱伺服器端的控制(Weak Server Side Controls) – 對應案例
– OWASP Cloud Top 10 Risks, OWASP Web Top 10 Risk
• M3. 傳輸層保護不足(Insufficient Transport Layer Protection) – 對應案例
– 傳輸介面: Wi-Fi, NFC, Ethernet, 藍芽…
– 傳輸加密(SSL, 客製化加密, WS-Security)
• M4. 客戶端注入(Client Side Injection)
– 本地端注入: SQLite Injection, XSS, Fuzzing
• M5. 粗糙的授權與認證(Poor Authorization and Authentication) – 對應案例
– 部分可攜式行動裝置的網頁應用程式僅採用永不變的數值來執行身分驗證與授權階段
– IMEI, IMSI, UUID, Device ID, MAC
OWASP Mobile Top Ten Mobile Risks (2/2)
• M6. 不適當的會話處理(Improper Session Handling) – 對應案例
– Session, Cookie, Token…
• M7. 經由不受信任輸入的安全決策(Security Decisions Via Untrusted Inputs)
– 透過客戶端注入方式來消耗可攜式裝置硬體資源或提權
• M8. 通道端資料洩漏(Side Channel Data Leakage)
– 應用網頁快取, 記錄檔, 暫存檔洩漏
• M9. 加密失效(Broken Cryptography) – 對應案例
– 演算法遭破解
– 常見名詞
• 編碼, 混淆, 序列化, 雜湊
• M10. 敏感資訊洩漏(Sensitive Informaiton Disclosure) – 對應案例
– 機敏訊息如程式碼中或在設備內
Android 客戶端安全
Android 架構 – 大藍圖
節錄至: Android Apps Security, Sheran A. Gunasekera, 2012
Android 架構 – Radio Interface Layer
節錄至: Android Platform Development Kit,
Radio Layer Interface
Android 應用程式
Android Package Kit
• Android Packge Kit(APK) 基本上就是個 ZIP
• 內容包含 DEX, 資源檔, AndroidManifest.xml…
節錄至: Building and Running, Android Developers
JAR 到 DEX 細節
節錄至: Android Apps Security, Sheran A. Gunasekera, 2012
節錄至: Building and Running, Android Developers
JAR 與 DEX 比較
一般打包後的 APK
AndroidManifest.xml
• Android 應用程式用來描述整體資訊的設定檔
– 該應用名稱, 版本號, 最低支援版本, 支援尺寸…
• 描述該應用程式的元件
– activities, services, broadcast receivers, content providers
• 使用到功能, 權限與安全測試
– <uses-feature>
– <uses-permission>, <permission>
– <Instrumentation>
Android 安全架構
• Linux 權限劃分
• 應用程式權限
• 應用程式簽章
Android 權限控制
• Android 利用 Linux 原有的權限管理機制
– 為每個應用程式分配不同的 uid 與 gid
• 更細的權限操作交由 Manifest.xml 定義
• 四大分類
– Normal
– Dangerous
– Signature
– SignatureOrSystem
常見的權限控制
• android.permission.INTERNET
• android.permission.ACCESS_GPS
• android.permission.ACCESS_FINE_LOCATION
• android.permission.ACCESS_COARSE_LOCATION
• android.permission.ACCESS_NETWORK_STATE
• android.permission.CAMERA
• android.permission.READ_PHONE_STATE
• android.permission.WRITE_EXTERNAL_STORAGE
• android.permission.WAKE_LOCK
• android.permission.GET_ACCOUNTS
• android.permission.USE_CREDENTIALS
• android.permission.VIBRATE
• android.permission.LIGHTS
• android.permission.SOUND
• android.permission.ACCESS_MOCK_LOCATION
• com.google.android.c2dm.permission.RECEIVE
• …
AndroidManifest.xml 解譯(1/3)
• 工具
– AXMLPrinter2.jar
• 命令
– java -jar AXMLPrinter2.jar AndroidManifest.xml >
AndroidManifest_decode.xml
AndroidManifest.xml 解譯 – 編譯過的(2/3)
AndroidManifest.xml 解譯 – 反解回的(3/3)
分析 APK
• 方法一: 較適合於軟體邏輯分析
– dex2jar
• 將 dex 轉為 jar
– jd-gui, DJ Java Decompiler
• 使用 jd-gui 觀察架構
• DJ Java Decompiler 解回 .class 與 .java
• 方法二: 較適合於暴力破解
– Apktool
• 解回所有資源檔, 並產出 smali 檔
• 方法三:
– IDA Pro(6.1以後支援 Android)
破解方法
• 訊息回饋法
• 特徵函數法
• 順序查看法
• 代碼注入法
• 暴力破解法
模擬常見案例
本地端序號驗證
Live Demo1: 本地端序號驗證
• 問題
– 本地端相關機密訊息沒有保護
– 握有秘密太少
• 對應 OWASP Mobile 風險
– M9. 加密失效
– M10. 敏感資訊洩漏
• 破解方式
– 逆向工程
• 邏輯分析
• 暴力破解
ProGuard - 保護 APK
• ProGuard
– 為 Java 包優化器與混淆器
– 提供命令列與圖形化介面共設定操作
• 目前新的 Android 安裝已內建在 SDK 工具
– 啟用他時請將專案中 project.properties 裡的
• proguard.config=${sdk.dir}/tools/proguard/proguard-
android.txt:proguard-project.txt
– 註解取消
永遠不要相信混淆器與密碼學百分百保護你
了解原理合理使用才是王道
通訊安全
• HTTP
• HTTPS
• Socket
• SMS
• BlueTooth
攔截 HTTP 通訊
• Charles
• Zed Attack Proxy(ZAP)
API 沒有驗證
比較安全的做法
模擬常見案例
網路序號驗證
Live Demo2: 網路序號驗證
• 問題
– 網路驗證
– 驗證太簡易
• 對應 OWASP Mobile 風險
– M3. 傳輸層保護不足
– M5. 粗糙的授權與認證
– M6. 不適當的會話處理
• 破解方式
– 網路通訊分析
– 攔截竄改
Android 常見儲存
• SQLite
– SQLite Injection
• SharedPreferences
• 客製化檔案
– 二進位
– 文字檔
• 存放位子
– App 目錄
– SD 卡
實際案例 - SharedPreferences
實際案例 - SP 與 SQLite
基礎密碼學認識
• 雜湊演算法
– 不要忘了 salt
• 加密演算法
– 非對稱式加密
• 公開金鑰
– 對稱式加密
• 區塊加密
– ECB, CBC, CFB
– OFB, CTR
• 串流加密
• 驗證機制
– 有驗證表
– 無驗證表
• 亂數產生
– 千萬不要把時間當亂數使用
• 其他名詞
– 編碼
– 混淆
– 序列化
• 沒有任何保護
實際案例
XXX案例
往事只能在記憶回味
結論
• 安全是一段旅程,而不是目的地
• 優化無止境,產品無完美
• 欲進行安全前可進行風險評鑑
– 參考相關風險報告
• OWASP Mobile Top 10
• 先有安全意識,於適當時機導入公司
– Building Security In 讓安全成為軟體開發的必要項目
– SDLC
參考資料
• Projects/OWASP Mobile Security Project - Top Ten Mobile Risks,
OWASP
• OWASP Top 10 Mobile Risks, Jack Mannino
• Top 10 Cloud Risks That Will Keep You Awake at Night, Shankar
Babu Chebrolu, Cisco
• <permission>, Android Developers
• Manifest.permission, Android Developers
簡 報 完 畢

Contenu connexe

Tendances

網頁弱點掃描服務簡報 20120606
網頁弱點掃描服務簡報 20120606網頁弱點掃描服務簡報 20120606
網頁弱點掃描服務簡報 20120606Fionsu
 
伺服器端攻擊與防禦I
伺服器端攻擊與防禦I伺服器端攻擊與防禦I
伺服器端攻擊與防禦ITaien Wang
 
2017.11.22 OWASP Taiwan Week (Lucas Ko)
2017.11.22  OWASP Taiwan Week (Lucas Ko)2017.11.22  OWASP Taiwan Week (Lucas Ko)
2017.11.22 OWASP Taiwan Week (Lucas Ko)Lucas Ko
 
OWASP Top 10 (2013) 正體中文版
OWASP Top 10 (2013) 正體中文版OWASP Top 10 (2013) 正體中文版
OWASP Top 10 (2013) 正體中文版Bruce Chen
 
OWST - Orange Web Security Toolkit Documentation
OWST - Orange Web Security Toolkit DocumentationOWST - Orange Web Security Toolkit Documentation
OWST - Orange Web Security Toolkit DocumentationOrange Tsai
 
網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知Justin Lin
 
網站系統安全及資料保護設計認知 2019
網站系統安全及資料保護設計認知 2019網站系統安全及資料保護設計認知 2019
網站系統安全及資料保護設計認知 2019Justin Lin
 
滲透測試簡述(資訊安全顧問服務)
滲透測試簡述(資訊安全顧問服務)滲透測試簡述(資訊安全顧問服務)
滲透測試簡述(資訊安全顧問服務)wanhung1911
 
.NET Security Application/Web Development - Part II
.NET Security Application/Web Development - Part II.NET Security Application/Web Development - Part II
.NET Security Application/Web Development - Part IIChen-Tien Tsai
 
一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教Bruce Chen
 
.NET Security Application/Web Development - Part I
.NET Security Application/Web Development - Part I.NET Security Application/Web Development - Part I
.NET Security Application/Web Development - Part IChen-Tien Tsai
 
6.web 安全架构浅谈
6.web 安全架构浅谈6.web 安全架构浅谈
6.web 安全架构浅谈Hsiao Tim
 
.NET Security Application/Web Development - Overview
.NET Security Application/Web Development - Overview.NET Security Application/Web Development - Overview
.NET Security Application/Web Development - OverviewChen-Tien Tsai
 
.NET Security Application/Web Development - Part IV
.NET Security Application/Web Development - Part IV.NET Security Application/Web Development - Part IV
.NET Security Application/Web Development - Part IVChen-Tien Tsai
 
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享ChinaNetCloud
 
資訊安全入門
資訊安全入門資訊安全入門
資訊安全入門Tyler Chen
 
WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」Orange Tsai
 
.NET Security Application/Web Development - Part III
.NET Security Application/Web Development - Part III.NET Security Application/Web Development - Part III
.NET Security Application/Web Development - Part IIIChen-Tien Tsai
 
滲透測試 Talk @ Nisra
滲透測試 Talk @ Nisra滲透測試 Talk @ Nisra
滲透測試 Talk @ NisraOrange Tsai
 

Tendances (19)

網頁弱點掃描服務簡報 20120606
網頁弱點掃描服務簡報 20120606網頁弱點掃描服務簡報 20120606
網頁弱點掃描服務簡報 20120606
 
伺服器端攻擊與防禦I
伺服器端攻擊與防禦I伺服器端攻擊與防禦I
伺服器端攻擊與防禦I
 
2017.11.22 OWASP Taiwan Week (Lucas Ko)
2017.11.22  OWASP Taiwan Week (Lucas Ko)2017.11.22  OWASP Taiwan Week (Lucas Ko)
2017.11.22 OWASP Taiwan Week (Lucas Ko)
 
OWASP Top 10 (2013) 正體中文版
OWASP Top 10 (2013) 正體中文版OWASP Top 10 (2013) 正體中文版
OWASP Top 10 (2013) 正體中文版
 
OWST - Orange Web Security Toolkit Documentation
OWST - Orange Web Security Toolkit DocumentationOWST - Orange Web Security Toolkit Documentation
OWST - Orange Web Security Toolkit Documentation
 
網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知
 
網站系統安全及資料保護設計認知 2019
網站系統安全及資料保護設計認知 2019網站系統安全及資料保護設計認知 2019
網站系統安全及資料保護設計認知 2019
 
滲透測試簡述(資訊安全顧問服務)
滲透測試簡述(資訊安全顧問服務)滲透測試簡述(資訊安全顧問服務)
滲透測試簡述(資訊安全顧問服務)
 
.NET Security Application/Web Development - Part II
.NET Security Application/Web Development - Part II.NET Security Application/Web Development - Part II
.NET Security Application/Web Development - Part II
 
一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教
 
.NET Security Application/Web Development - Part I
.NET Security Application/Web Development - Part I.NET Security Application/Web Development - Part I
.NET Security Application/Web Development - Part I
 
6.web 安全架构浅谈
6.web 安全架构浅谈6.web 安全架构浅谈
6.web 安全架构浅谈
 
.NET Security Application/Web Development - Overview
.NET Security Application/Web Development - Overview.NET Security Application/Web Development - Overview
.NET Security Application/Web Development - Overview
 
.NET Security Application/Web Development - Part IV
.NET Security Application/Web Development - Part IV.NET Security Application/Web Development - Part IV
.NET Security Application/Web Development - Part IV
 
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
 
資訊安全入門
資訊安全入門資訊安全入門
資訊安全入門
 
WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」WebConf 2013「Best Practices - The Upload」
WebConf 2013「Best Practices - The Upload」
 
.NET Security Application/Web Development - Part III
.NET Security Application/Web Development - Part III.NET Security Application/Web Development - Part III
.NET Security Application/Web Development - Part III
 
滲透測試 Talk @ Nisra
滲透測試 Talk @ Nisra滲透測試 Talk @ Nisra
滲透測試 Talk @ Nisra
 

Similaire à Android Taipei 2013 August - Android Apps Security

Android 软件安全攻防研究现状 claud isf2012
Android 软件安全攻防研究现状 claud isf2012Android 软件安全攻防研究现状 claud isf2012
Android 软件安全攻防研究现状 claud isf2012正炎 高
 
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训 在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训 zhiyanhui
 
分会场三以更加敏锐的洞察力来保护您的非结构化数据:介绍Data insight
分会场三以更加敏锐的洞察力来保护您的非结构化数据:介绍Data insight分会场三以更加敏锐的洞察力来保护您的非结构化数据:介绍Data insight
分会场三以更加敏锐的洞察力来保护您的非结构化数据:介绍Data insightITband
 
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引liu sheng
 
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...Wales Chen
 
議題三:政府網站常見弱點與分析
議題三:政府網站常見弱點與分析議題三:政府網站常見弱點與分析
議題三:政府網站常見弱點與分析Nicolas su
 
Rsa2012 下一代安全的战略思考-绿盟科技赵粮
Rsa2012 下一代安全的战略思考-绿盟科技赵粮Rsa2012 下一代安全的战略思考-绿盟科技赵粮
Rsa2012 下一代安全的战略思考-绿盟科技赵粮NSFOCUS
 
ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...
ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...
ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...ChinaNetCloud
 
云安全防护的战略思考
云安全防护的战略思考云安全防护的战略思考
云安全防护的战略思考drewz lin
 
Brochure ahn lab trusguard utm
Brochure ahn lab trusguard utmBrochure ahn lab trusguard utm
Brochure ahn lab trusguard utmahnlabchina
 
Internet System Security Overview
Internet System Security OverviewInternet System Security Overview
Internet System Security OverviewChinaNetCloud
 
分会场三赛门铁克 Data loss prevention产品介绍
分会场三赛门铁克 Data loss prevention产品介绍分会场三赛门铁克 Data loss prevention产品介绍
分会场三赛门铁克 Data loss prevention产品介绍ITband
 
2009通信安全峰会(11月6日)
2009通信安全峰会(11月6日)2009通信安全峰会(11月6日)
2009通信安全峰会(11月6日)Jordan Pan
 
[DDD] 快快樂樂學DDD
[DDD] 快快樂樂學DDD[DDD] 快快樂樂學DDD
[DDD] 快快樂樂學DDDClark
 
Chinese Uses of Big Data Cloud Security 漫步在雲端資安新戰場
Chinese Uses of Big Data Cloud Security 漫步在雲端資安新戰場 Chinese Uses of Big Data Cloud Security 漫步在雲端資安新戰場
Chinese Uses of Big Data Cloud Security 漫步在雲端資安新戰場 Bill Hagestad II
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & developmentXuefeng Zhang
 
Hiiir 資安講座 II 使安全成為軟體開發的一部分
Hiiir 資安講座 II 使安全成為軟體開發的一部分Hiiir 資安講座 II 使安全成為軟體開發的一部分
Hiiir 資安講座 II 使安全成為軟體開發的一部分Hiiir Lab
 
互联网公司web安全挑战与防护思路浅谈
互联网公司web安全挑战与防护思路浅谈 互联网公司web安全挑战与防护思路浅谈
互联网公司web安全挑战与防护思路浅谈 zhiyanhui
 

Similaire à Android Taipei 2013 August - Android Apps Security (20)

Android 软件安全攻防研究现状 claud isf2012
Android 软件安全攻防研究现状 claud isf2012Android 软件安全攻防研究现状 claud isf2012
Android 软件安全攻防研究现状 claud isf2012
 
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训 在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
在互联网公司推行SDL(Security Development Lifecycle)的一些经验和教训
 
分会场三以更加敏锐的洞察力来保护您的非结构化数据:介绍Data insight
分会场三以更加敏锐的洞察力来保护您的非结构化数据:介绍Data insight分会场三以更加敏锐的洞察力来保护您的非结构化数据:介绍Data insight
分会场三以更加敏锐的洞察力来保护您的非结构化数据:介绍Data insight
 
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
 
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
賽門鐵克端點安全教戰守則 - Symantec Endpoint Protection 及 Symantec Critical System Protec...
 
議題三:政府網站常見弱點與分析
議題三:政府網站常見弱點與分析議題三:政府網站常見弱點與分析
議題三:政府網站常見弱點與分析
 
Rsa2012 下一代安全的战略思考-绿盟科技赵粮
Rsa2012 下一代安全的战略思考-绿盟科技赵粮Rsa2012 下一代安全的战略思考-绿盟科技赵粮
Rsa2012 下一代安全的战略思考-绿盟科技赵粮
 
ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...
ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...
ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...
 
云安全防护的战略思考
云安全防护的战略思考云安全防护的战略思考
云安全防护的战略思考
 
Brochure ahn lab trusguard utm
Brochure ahn lab trusguard utmBrochure ahn lab trusguard utm
Brochure ahn lab trusguard utm
 
Internet System Security Overview
Internet System Security OverviewInternet System Security Overview
Internet System Security Overview
 
分会场三赛门铁克 Data loss prevention产品介绍
分会场三赛门铁克 Data loss prevention产品介绍分会场三赛门铁克 Data loss prevention产品介绍
分会场三赛门铁克 Data loss prevention产品介绍
 
2009通信安全峰会(11月6日)
2009通信安全峰会(11月6日)2009通信安全峰会(11月6日)
2009通信安全峰会(11月6日)
 
Epp0716
Epp0716Epp0716
Epp0716
 
[DDD] 快快樂樂學DDD
[DDD] 快快樂樂學DDD[DDD] 快快樂樂學DDD
[DDD] 快快樂樂學DDD
 
Chinese Uses of Big Data Cloud Security 漫步在雲端資安新戰場
Chinese Uses of Big Data Cloud Security 漫步在雲端資安新戰場 Chinese Uses of Big Data Cloud Security 漫步在雲端資安新戰場
Chinese Uses of Big Data Cloud Security 漫步在雲端資安新戰場
 
N-layer design & development
N-layer design & developmentN-layer design & development
N-layer design & development
 
Hiiir 資安講座 II 使安全成為軟體開發的一部分
Hiiir 資安講座 II 使安全成為軟體開發的一部分Hiiir 資安講座 II 使安全成為軟體開發的一部分
Hiiir 資安講座 II 使安全成為軟體開發的一部分
 
網路安全防護
網路安全防護網路安全防護
網路安全防護
 
互联网公司web安全挑战与防护思路浅谈
互联网公司web安全挑战与防护思路浅谈 互联网公司web安全挑战与防护思路浅谈
互联网公司web安全挑战与防护思路浅谈
 

Plus de Taien Wang

[MOPCON2019]從零建立商業技術團隊
[MOPCON2019]從零建立商業技術團隊[MOPCON2019]從零建立商業技術團隊
[MOPCON2019]從零建立商業技術團隊Taien Wang
 
[ModernWeb2019] Taien - 高併發的道與術
[ModernWeb2019] Taien - 高併發的道與術[ModernWeb2019] Taien - 高併發的道與術
[ModernWeb2019] Taien - 高併發的道與術Taien Wang
 
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞Taien Wang
 
百人團隊敏捷轉型暨持續性整合與交付實踐
百人團隊敏捷轉型暨持續性整合與交付實踐百人團隊敏捷轉型暨持續性整合與交付實踐
百人團隊敏捷轉型暨持續性整合與交付實踐Taien Wang
 
淡江Git與GitHub操作介紹
淡江Git與GitHub操作介紹淡江Git與GitHub操作介紹
淡江Git與GitHub操作介紹Taien Wang
 
成長駭客 Growth Hacker
成長駭客 Growth Hacker成長駭客 Growth Hacker
成長駭客 Growth HackerTaien Wang
 
20160105 wnmp & phalcon micro app - part II
20160105   wnmp & phalcon micro app - part II20160105   wnmp & phalcon micro app - part II
20160105 wnmp & phalcon micro app - part IITaien Wang
 
20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part ITaien Wang
 
我編程.我快樂
我編程.我快樂我編程.我快樂
我編程.我快樂Taien Wang
 
Scrum深入淺出
Scrum深入淺出Scrum深入淺出
Scrum深入淺出Taien Wang
 
淡江大學 - ios+android+html5(javascript)
淡江大學 - ios+android+html5(javascript)淡江大學 - ios+android+html5(javascript)
淡江大學 - ios+android+html5(javascript)Taien Wang
 
淡江大學 - 網站開發應用技術及雲端應用技術
淡江大學 - 網站開發應用技術及雲端應用技術淡江大學 - 網站開發應用技術及雲端應用技術
淡江大學 - 網站開發應用技術及雲端應用技術Taien Wang
 
PHP更有效率的除錯 - XDebug
PHP更有效率的除錯 - XDebugPHP更有效率的除錯 - XDebug
PHP更有效率的除錯 - XDebugTaien Wang
 

Plus de Taien Wang (13)

[MOPCON2019]從零建立商業技術團隊
[MOPCON2019]從零建立商業技術團隊[MOPCON2019]從零建立商業技術團隊
[MOPCON2019]從零建立商業技術團隊
 
[ModernWeb2019] Taien - 高併發的道與術
[ModernWeb2019] Taien - 高併發的道與術[ModernWeb2019] Taien - 高併發的道與術
[ModernWeb2019] Taien - 高併發的道與術
 
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
[ModernWeb2018] Web3.0 區塊鏈 DApp + 智能合約開發:你必要挑戰的坑坑洞洞
 
百人團隊敏捷轉型暨持續性整合與交付實踐
百人團隊敏捷轉型暨持續性整合與交付實踐百人團隊敏捷轉型暨持續性整合與交付實踐
百人團隊敏捷轉型暨持續性整合與交付實踐
 
淡江Git與GitHub操作介紹
淡江Git與GitHub操作介紹淡江Git與GitHub操作介紹
淡江Git與GitHub操作介紹
 
成長駭客 Growth Hacker
成長駭客 Growth Hacker成長駭客 Growth Hacker
成長駭客 Growth Hacker
 
20160105 wnmp & phalcon micro app - part II
20160105   wnmp & phalcon micro app - part II20160105   wnmp & phalcon micro app - part II
20160105 wnmp & phalcon micro app - part II
 
20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I20151229 wnmp & phalcon micro app - part I
20151229 wnmp & phalcon micro app - part I
 
我編程.我快樂
我編程.我快樂我編程.我快樂
我編程.我快樂
 
Scrum深入淺出
Scrum深入淺出Scrum深入淺出
Scrum深入淺出
 
淡江大學 - ios+android+html5(javascript)
淡江大學 - ios+android+html5(javascript)淡江大學 - ios+android+html5(javascript)
淡江大學 - ios+android+html5(javascript)
 
淡江大學 - 網站開發應用技術及雲端應用技術
淡江大學 - 網站開發應用技術及雲端應用技術淡江大學 - 網站開發應用技術及雲端應用技術
淡江大學 - 網站開發應用技術及雲端應用技術
 
PHP更有效率的除錯 - XDebug
PHP更有效率的除錯 - XDebugPHP更有效率的除錯 - XDebug
PHP更有效率的除錯 - XDebug
 

Android Taipei 2013 August - Android Apps Security

  • 1. Android Apps Security 2013.08.22 @ Android Taipei Taien Wang<taien_wang@hiiir.com> 英屬維京群島商時間軸科技股份有限公司 電子商務事業群
  • 2. About Taien • 簡介 – 常任各演討會講師, 資安教育講師與資安顧問 – 熱愛程式設計, 網路架構與資訊安全 • 獎項 – 2012 Node.js Knockout 台灣區, 第二名 – 2011 Microsoft MVP 微軟最有價值專家 – 2011 趨勢雲端程式競賽, 第一名, 最佳人氣獎 – 5th 全國資安技能競賽金盾獎, 第二名 – 5th 華陀盃台灣區網路解疑技能競賽, 佳作 – 入圍 2009 微軟潛能創意盃, 台灣區, 決賽 – 13th 全國大專院校資服創新競賽, 第一名 – 2th 全國資安技能競賽金盾獎, 優選 • 經歷 – 2012 時間軸科技新創事業部研發部門主管 – 2010 Microsoft Technet 講師 – 2010 台灣微軟行銷營運暨行銷處研發助理 – 2010 台灣微軟技術中心研發助理 – 2009 網駭科技 Net-Hack 資安顧問 – 2009 中華民國資訊軟體協會資安推廣專案講師 – 2008 網駭科技 Net-Hack 研發兼技術工程師
  • 3. 大綱 • OWASP Mobile Top 10 Risk • Android 客戶端安全 – Android App 架構 – Android 應用程式包 • APK, DEX與JAR • Manifest.xml – 權限控制 • APK 分析 – 傳輸層安全 – 儲存安全 – 基礎密碼學認識 • 結論 • 參考資料
  • 5. 為什麼我們要瞭解安全 • 工程師 – 案子都做不完了, 先滿足需求就好了 • 現實層面 – 世界就這麼大, 產品做大了怎麼會有奇奇怪怪的問題 – 除了業務上的問題, 還有技術上的 • 滿足需求 – 將需求定義為用戶為了解決問題或達成目標所需要的條件或功能, 或為 了滿足合約, 標準, 規範或其他正是有效的文件, 系統所需擁有的或滿足 的條件或功能 – NSI/IEEE Standard 729
  • 6. OWASP Mobile Security Project - Top Ten Mobile Risks
  • 7. OWASP Mobile Top Ten Mobile Risks (1/2) • M1. 不安全的資料儲存(Insecure Data Storage) – 對應案例 – SQLite, Log, Plist, XML, Manifest – 二進位檔, Cookie, SD卡, 雲端同步 • M2. 弱伺服器端的控制(Weak Server Side Controls) – 對應案例 – OWASP Cloud Top 10 Risks, OWASP Web Top 10 Risk • M3. 傳輸層保護不足(Insufficient Transport Layer Protection) – 對應案例 – 傳輸介面: Wi-Fi, NFC, Ethernet, 藍芽… – 傳輸加密(SSL, 客製化加密, WS-Security) • M4. 客戶端注入(Client Side Injection) – 本地端注入: SQLite Injection, XSS, Fuzzing • M5. 粗糙的授權與認證(Poor Authorization and Authentication) – 對應案例 – 部分可攜式行動裝置的網頁應用程式僅採用永不變的數值來執行身分驗證與授權階段 – IMEI, IMSI, UUID, Device ID, MAC
  • 8. OWASP Mobile Top Ten Mobile Risks (2/2) • M6. 不適當的會話處理(Improper Session Handling) – 對應案例 – Session, Cookie, Token… • M7. 經由不受信任輸入的安全決策(Security Decisions Via Untrusted Inputs) – 透過客戶端注入方式來消耗可攜式裝置硬體資源或提權 • M8. 通道端資料洩漏(Side Channel Data Leakage) – 應用網頁快取, 記錄檔, 暫存檔洩漏 • M9. 加密失效(Broken Cryptography) – 對應案例 – 演算法遭破解 – 常見名詞 • 編碼, 混淆, 序列化, 雜湊 • M10. 敏感資訊洩漏(Sensitive Informaiton Disclosure) – 對應案例 – 機敏訊息如程式碼中或在設備內
  • 10. Android 架構 – 大藍圖 節錄至: Android Apps Security, Sheran A. Gunasekera, 2012
  • 11. Android 架構 – Radio Interface Layer 節錄至: Android Platform Development Kit, Radio Layer Interface
  • 13. Android Package Kit • Android Packge Kit(APK) 基本上就是個 ZIP • 內容包含 DEX, 資源檔, AndroidManifest.xml… 節錄至: Building and Running, Android Developers
  • 14. JAR 到 DEX 細節 節錄至: Android Apps Security, Sheran A. Gunasekera, 2012 節錄至: Building and Running, Android Developers
  • 15. JAR 與 DEX 比較
  • 17. AndroidManifest.xml • Android 應用程式用來描述整體資訊的設定檔 – 該應用名稱, 版本號, 最低支援版本, 支援尺寸… • 描述該應用程式的元件 – activities, services, broadcast receivers, content providers • 使用到功能, 權限與安全測試 – <uses-feature> – <uses-permission>, <permission> – <Instrumentation>
  • 18. Android 安全架構 • Linux 權限劃分 • 應用程式權限 • 應用程式簽章
  • 19. Android 權限控制 • Android 利用 Linux 原有的權限管理機制 – 為每個應用程式分配不同的 uid 與 gid • 更細的權限操作交由 Manifest.xml 定義 • 四大分類 – Normal – Dangerous – Signature – SignatureOrSystem
  • 20. 常見的權限控制 • android.permission.INTERNET • android.permission.ACCESS_GPS • android.permission.ACCESS_FINE_LOCATION • android.permission.ACCESS_COARSE_LOCATION • android.permission.ACCESS_NETWORK_STATE • android.permission.CAMERA • android.permission.READ_PHONE_STATE • android.permission.WRITE_EXTERNAL_STORAGE • android.permission.WAKE_LOCK • android.permission.GET_ACCOUNTS • android.permission.USE_CREDENTIALS • android.permission.VIBRATE • android.permission.LIGHTS • android.permission.SOUND • android.permission.ACCESS_MOCK_LOCATION • com.google.android.c2dm.permission.RECEIVE • …
  • 21. AndroidManifest.xml 解譯(1/3) • 工具 – AXMLPrinter2.jar • 命令 – java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest_decode.xml
  • 22. AndroidManifest.xml 解譯 – 編譯過的(2/3)
  • 23. AndroidManifest.xml 解譯 – 反解回的(3/3)
  • 24. 分析 APK • 方法一: 較適合於軟體邏輯分析 – dex2jar • 將 dex 轉為 jar – jd-gui, DJ Java Decompiler • 使用 jd-gui 觀察架構 • DJ Java Decompiler 解回 .class 與 .java • 方法二: 較適合於暴力破解 – Apktool • 解回所有資源檔, 並產出 smali 檔 • 方法三: – IDA Pro(6.1以後支援 Android)
  • 25. 破解方法 • 訊息回饋法 • 特徵函數法 • 順序查看法 • 代碼注入法 • 暴力破解法
  • 27. Live Demo1: 本地端序號驗證 • 問題 – 本地端相關機密訊息沒有保護 – 握有秘密太少 • 對應 OWASP Mobile 風險 – M9. 加密失效 – M10. 敏感資訊洩漏 • 破解方式 – 逆向工程 • 邏輯分析 • 暴力破解
  • 28. ProGuard - 保護 APK • ProGuard – 為 Java 包優化器與混淆器 – 提供命令列與圖形化介面共設定操作 • 目前新的 Android 安裝已內建在 SDK 工具 – 啟用他時請將專案中 project.properties 裡的 • proguard.config=${sdk.dir}/tools/proguard/proguard- android.txt:proguard-project.txt – 註解取消
  • 30. 通訊安全 • HTTP • HTTPS • Socket • SMS • BlueTooth
  • 31. 攔截 HTTP 通訊 • Charles • Zed Attack Proxy(ZAP)
  • 35. Live Demo2: 網路序號驗證 • 問題 – 網路驗證 – 驗證太簡易 • 對應 OWASP Mobile 風險 – M3. 傳輸層保護不足 – M5. 粗糙的授權與認證 – M6. 不適當的會話處理 • 破解方式 – 網路通訊分析 – 攔截竄改
  • 36. Android 常見儲存 • SQLite – SQLite Injection • SharedPreferences • 客製化檔案 – 二進位 – 文字檔 • 存放位子 – App 目錄 – SD 卡
  • 38. 實際案例 - SP 與 SQLite
  • 39. 基礎密碼學認識 • 雜湊演算法 – 不要忘了 salt • 加密演算法 – 非對稱式加密 • 公開金鑰 – 對稱式加密 • 區塊加密 – ECB, CBC, CFB – OFB, CTR • 串流加密 • 驗證機制 – 有驗證表 – 無驗證表 • 亂數產生 – 千萬不要把時間當亂數使用 • 其他名詞 – 編碼 – 混淆 – 序列化 • 沒有任何保護
  • 42. 結論 • 安全是一段旅程,而不是目的地 • 優化無止境,產品無完美 • 欲進行安全前可進行風險評鑑 – 參考相關風險報告 • OWASP Mobile Top 10 • 先有安全意識,於適當時機導入公司 – Building Security In 讓安全成為軟體開發的必要項目 – SDLC
  • 43. 參考資料 • Projects/OWASP Mobile Security Project - Top Ten Mobile Risks, OWASP • OWASP Top 10 Mobile Risks, Jack Mannino • Top 10 Cloud Risks That Will Keep You Awake at Night, Shankar Babu Chebrolu, Cisco • <permission>, Android Developers • Manifest.permission, Android Developers
  • 44. 簡 報 完