Home
Explore
Submit Search
Upload
Login
Signup
Advertisement
Check these out next
我的 Windows 平台自動化經驗:基礎批次檔撰寫實務
Will Huang
PyPy: Dynamic Language Compilation Framework
National Cheng Kung University
Git vs svn
Suman Mukherjee
Advanced Git Presentation By Swawibe
Md Swawibe Ul Alam
寫給大家的 Git 教學
littlebtc
Git and GitHub
James Gray
Git flow Introduction
David Paluy
初心者 Git 上手攻略
Lucien Lee
1
of
40
Top clipped slide
Mobile 開發常見資安議題
Jul. 15, 2017
•
0 likes
17 likes
×
Be the first to like this
Show More
•
3,391 views
views
×
Total views
0
On Slideshare
0
From embeds
0
Number of embeds
0
Download Now
Download to read offline
Report
Mobile
主要介紹Mobile開發時常見資訊安全議題
JunAn Lai
Follow
Lead iOS, Android Application Developer at E.Sun Bank
Advertisement
Advertisement
Advertisement
Recommended
給 iOS 工程師的 Flutter 開發
Weizhong Yang
7.8K views
•
50 slides
Android 逆向工程心得分享
EnPing Eric Hsieh
6.9K views
•
49 slides
Android起動周りのノウハウ
chancelab
31.3K views
•
60 slides
Androidの新ビルドシステム
l_b__
19.2K views
•
26 slides
Git Pull Requests
Callon Campbell
882 views
•
29 slides
PHPの戻り値型宣言でselfを使ってみよう
DQNEO
2.3K views
•
25 slides
More Related Content
Slideshows for you
(20)
我的 Windows 平台自動化經驗:基礎批次檔撰寫實務
Will Huang
•
14.1K views
PyPy: Dynamic Language Compilation Framework
National Cheng Kung University
•
6.2K views
Git vs svn
Suman Mukherjee
•
8.8K views
Advanced Git Presentation By Swawibe
Md Swawibe Ul Alam
•
700 views
寫給大家的 Git 教學
littlebtc
•
211.6K views
Git and GitHub
James Gray
•
11.2K views
Git flow Introduction
David Paluy
•
8.9K views
初心者 Git 上手攻略
Lucien Lee
•
23.1K views
AndroidとSELinux
android sola
•
32.6K views
Write microservice in golang
Bo-Yi Wu
•
14.7K views
Git One Day Training Notes
glen_a_smith
•
3.4K views
How To Build Android for ARM Chip boards
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
•
22.8K views
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
•
46K views
Linuxカーネルを読んで改めて知るプロセスとスレッドの違い
Retrieva inc.
•
5K views
Go初心者がGoでコマンドラインツールの作成に挑戦した話
dcubeio
•
6.3K views
GDB Rocks!
Kent Chen
•
11.9K views
Easybuggy(バグ)の召し上がり方
広平 田村
•
3.9K views
Git由超淺入超深
羊 小咩 (lamb-mei)
•
5.6K views
Git (実践入門編)
Naomichi Yamakita
•
5.2K views
What Can Compilers Do for Us?
National Cheng Kung University
•
16.7K views
Similar to Mobile 開發常見資安議題
(20)
20140610 net tuesday - 行動裝置安全
Net Tuesday Taiwan
•
3.5K views
【HITCON FreeTalk】Supply Chain Attack
Hacks in Taiwan (HITCON)
•
7.7K views
手機可以埋藏秘密,但是 App 不行 - 淺談 App 安全檢測與實作
Hong-Ting Zhou
•
537 views
Twitter Wanghongyang Backup Security 20090402 0713
Hongyang Wang
•
1.7K views
雲端入侵:郵件攻擊與密碼竊取
openblue
•
26.7K views
網頁安全 Web security 入門 @ Study-Area
Orange Tsai
•
58.6K views
雲端入侵 – 郵件攻擊與密碼竊取
OFMKT
•
854 views
HITCON GIRLS: Android 滲透測試介紹 (Elven Liu)
HITCON GIRLS
•
2.9K views
08
chanlung wu
•
422 views
安博士Asec 2010年9月安全报告
ahnlabchina
•
230 views
99 第六屆國際健康資訊管理研討會簡報botnet
Shi-Hwao Wang
•
880 views
黑站騎士
openblue
•
35.5K views
安博士Asec 2010年1月安全报告
ahnlabchina
•
188 views
安博士Asec 2010年1月安全报告
ahnlabchina
•
149 views
SYMANTEC CODE SIGNING 為您的軟體增加至關重要的安全功能
Symantec
•
300 views
雲端生活面面觀
Vista Cheng
•
1.4K views
Security threatsandtrends michaelsentonas
ITband
•
185 views
Session1(更新20230205).pdf
ssuser9026c8
•
10 views
Chinese Uses of Big Data Cloud Security 漫步在雲端資安新戰場
Bill Hagestad II
•
1.2K views
安博士Asec 2010年7月安全报告
ahnlabchina
•
223 views
Advertisement
Recently uploaded
(20)
在哪里可以办英国大学文凭《卡迪夫大学毕业证成绩单仿制》
efagvah
•
3 views
Slide36.pdf
Pembiayaan syariah
•
3 views
★英国提赛德大学毕业证成绩单
ghjkijij
•
2 views
《留学生办丹佛大学毕业证文凭证书学位证书》
zhgadu
•
3 views
#办理马格德堡-施滕达尔学院学历学位认证
wwwb2d4t
•
3 views
Slide35.pdf
Pembiayaan syariah
•
3 views
《留学生办雷丁大学毕业证文凭证书学位证书》
peqbtou
•
2 views
《》伪造美国德克萨斯大学阿灵顿分校学士毕业证
fgbjhfbh
•
2 views
补办《埃默里大学毕业证文凭和学位证书》
w435dawe
•
2 views
▲伪造英国东英吉利大学本科硕士学位证书
mvmmm
•
2 views
墨尔本大学毕业证样本及办理流程
ebcoyz
•
3 views
Telegram被駭的解決辦法_R1.pdf
ChihErhJustinWu
•
219 views
《留学生办萨瓦大学毕业证文凭证书学位证书》
eucank
•
2 views
☀️《SDSU毕业证仿真》
jjkjkijk
•
2 views
购买《波士顿大学本科毕业证书学历认证》
wda23
•
4 views
★加拿大兰加拉学院毕业证成绩单
Lfklo
•
3 views
《留学生办昆士兰大学毕业证文凭证书学位证书》
peqbtou
•
2 views
#《辍学办新西兰国立理工学院毕业证书成绩单》
noeoh
•
3 views
♥制作美国凤凰城大学研究生毕业证学位证书
ssuserd075a31
•
2 views
留学美国必看:科罗拉多大学波尔得分校毕业证、学位证办理流程
oqcymp
•
3 views
Mobile 開發常見資安議題
Mobile 開發 常⾒見見資訊安全介紹 賴俊安(Joey Lai)
. . . .
. . () 2 2
第三⽅方Pokemon暗藏⽊木⾺馬 發現有惡惡意軟體開發者將遠端存取⽊木⾺馬 (Android.Sandorat)偽裝成Pokémon Go應⽤用 程式,散佈在多個下載網站和遊戲論壇供玩家下載。⼀一旦玩家安裝了了有⽊木⾺馬病毒的 Pokémon
Go之後,攻擊者就獲得使⽤用者⼿手機的完全存取權限甚⾄至是信⽤用卡資料。
官⽅方APP 資安風險 reference http://news.ltn.com.tw/news/politics/paper/1100473
Gogoro APP 遭破解 reference http://www.setn.com/News.aspx?NewsID=166617 http://www.techbang.com/posts/44967-gogoro-three-funding-risk-inside-be-careful-all-internet- products
OWASP • 開放網路路軟體安全計畫,簡稱OWASP(Open Web Application
Security Project) • 開放社群、非營利利性組織,全球⽬目前有82分會,主要⽬目標 是研議協助解決網路路軟體安全之標準、⼯工具與技術⽂文件, 長期致⼒力力於協助政府或企業瞭解並改善應⽤用程式的安全性 • 美國聯聯邦貿易易委員會(FTC)強烈建議所有企業務必遵循 OWASP所發佈的⼗十⼤大網路路弱點防護守則,美國國防部亦 將此守則列列為最佳實務,連國際信⽤用卡資料安技術(PCI) 標準更更將其列列為必要元件
OWASP Mobile Top
10 • M1不當使⽤用⾏行行動作業平台(M1 - Improper Platform Usage) • M2不安全資料儲存(M2 - Insecure Data Storage) • M3不安全通訊(M3 - Insecure Communication) • M4不安全⾝身分認證(M4 - Insecure Authentication) • M5不⾜足夠的加密(M5 - Insufficient Cryptography)
OWASP Mobile Top
10 • M6不安全授權(M6 - Insecure Authorization) • M7⽤用⼾戶端程式碼品質(M7 - Client Code Quality ) • M8程式碼竄改(M8 -Code Tampering) • M9逆向⼯工程(M9 - Reverse Engineering) • M10多餘的功能(M10 - Extraneous Functionality)
M1不當使⽤用⾏行行動作業平台(M1 - Improper
Platform Usage) • 誤⽤用平台功能或平台安全控制使⽤用失敗(如 Android intents, permissions, Touch ID或 Keychain 誤⽤用)
M1不當使⽤用⾏行行動作業平台(M1 - Improper
Platform Usage) • iOS • iOS7以上螢幕在背景時快取縮圖 • 被存在(App Folder) /Library/Caches/ Snapshots/com.bundle.id.of.your.app/ • 使⽤用applicationWillResignActive來來蓋⼀一張圖或是清除機敏資訊 • applicationDidBecomeActive時還原 • Android • 在登入畫⾯面避免被截圖 • getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
M1不當使⽤用⾏行行動作業平台(M1 - Improper
Platform Usage) • iOS • Networking Cache Policies • HTTP或HTTPS的 request的URLCache • (App Folder)/Library/Caches/com.bundle.id.of.your.app/Cache.db • 清除Cache • [[NSURLCache sharedURLCache] removeAllCachedResponses]; • [[NSURLCache sharedURLCache] setDiskCapacity:0]; • [[NSURLCache sharedURLCache] setMemoryCapacity:0];
M1不當使⽤用⾏行行動作業平台(M1 - Improper
Platform Usage) • Android • 在正式環境的App應將android:debuggable=“false” • allowBackup 設為false • Intents 限制使⽤用 • 如service使⽤用android:exported=“false” • 應只取⽤用需要之permission
M2不安全資料儲存(M2 - Insecure
Data Storage) • ⽤用⼾戶端裝置未適當保護機敏資料,例例如:機敏資 料(帳號、密碼等)未加密或誤認資料”編碼”即已 加密,因⽽而可能導致機敏資料外洩
M2不安全資料儲存(M2 - Insecure
Data Storage) • iOS • NSUserDefaults儲存機敏資料在JB⼿手機可輕易易存取 • 鑰匙串串(Keychain)功能使⽤用iOS 7以上的版本時,若若惡惡意第三⽅方有機會存取到有 加密的iTunes備份,Keychain就有可能被破解 • 因為當iTunes備份被啟⽤用時,iOS會重新對Keychain進⾏行行加密,所以這時如果 惡惡意第三⽅方可以知道備份的加密密碼,那麼Keychain就有可能部分被解密。 • 此外,Keychain在有進⾏行行越獄( jailbreak)的設備上,其存取控管也可能會失 效。在有越獄的⼿手機上,任何的應⽤用程式都可能存取到別隻程式的Keychain內 容。⽽而對於那些本⾝身就含有Bootrom漏洞洞(Bootrom exploit)的舊設備(例例如 iPhone4),攻擊者可以藉由實體存取⽽而破解Keychain。 (Reference ⾏行行動應⽤用資安聯聯盟)
M2不安全資料儲存(M2 - Insecure
Data Storage) • • 當有使⽤用Keychain儲存資料時,開發⼈人員應使⽤用最嚴格的防護類別(可參參考 kSecAttrAccessible屬性),⽽而且使⽤用該種類別(class)完全不會影響到App本⾝身的 運作流暢度。例例如,若若你的應⽤用程式並不是設計於背景 (background)執⾏行行的,可 使⽤用kSecAttrAccessibleWhenUnlocked或 kSecAttrAccessibleWhenUnlockedThisDeviceOnly • 若若要避免因iTunes備份讓Keychain曝光,可以使⽤用「ThisDeviceOnly」保護類別 • 對於⾼高度敏感的資料,可考慮使⽤用Keychain所提供的另⼀一種更更安全的保護機 制,即應⽤用程式層的加密機制。 例例如在進入應⽤用程式時,使⽤用者會輸入通⾏行行密碼 (passphrase)以進⾏行行認證,並在資料儲存到Keychain前,⽤用此通⾏行行密碼對資料進 ⾏行行加密 (Reference ⾏行行動應⽤用資安聯聯盟)
M2不安全資料儲存(M2 - Insecure
Data Storage) • Android • SharedPreference 儲存機敏資料在root⼿手機可 輕易易存取修改 • 使⽤用NDK儲存機密資訊
M3不安全通訊(M3 - Insecure
Communication) • 未以加密⽅方式傳輸機敏資料如HTTPS,或是SSL版 本不正確,SSL handshake不正確,可能導致的 攻擊有中間⼈人攻擊(Man-in-the-middle attack)導致 機敏資料外洩或遭竄改
pay.taipei 未使⽤用 HTTPS Reference http://www.techbang.com/posts/52151-pay-taipei-just-online-offline- because-of-alert-data-is-not-encrypted
未使⽤用HTTPS • 使⽤用者機敏資料暴暴露在⾼高度風險下(帳號、密碼) • 中間⼈人攻擊(Man-in-the-middle
attack)竄改傳輸資 料,造成個資外流、盜刷
未使⽤用HTTPS • Apple 要求所有提交app
store 的app必須使⽤用HTTPS連線
中間⼈人攻擊(MITM) • reference • https://www.incapsula.com/web-application-security/man-in-the-middle- mitm.html
Certificate Pinning • 把需要進⾏行行比對的憑證存在應⽤用程式,並且在進 ⾏行行SSL
Handshake時與伺服器憑證做比對 • 實作可參參考 http://devco.re/blog/2014/08/15/ssl- mishandling-on-mobile-app-development/
M4不安全⾝身分認證 (M4 -
Insecure Authentication) • 使⽤用者驗證失敗、session處理理不正確等問題
M4不安全⾝身分認證 (M4 -
Insecure Authentication) • App應先進⾏行行驗證如Regular Expression • 不只前端驗證,後端⼀一定要再進⾏行行驗證 • 若若使⽤用OAuth的token需要具有時效性,並且token 需要加密保存 • Session id長度在128bit以上確保不會遭暴暴⼒力力破解
M5不⾜足夠的加密(M5 - Insufficient
Cryptography) • 加密的⽅方式不正確或加密程度不⾜足導致破解之可 能 • 使⽤用不安全的演算法如RC2.MD4.MD5.SHA1 • 避免hardcode key在app裡
M6不安全授權(M6 - Insecure
Authorization) • 建議使⽤用TLS1.1以上的SSL協議 • 應由後端進⾏行行授權
M7⽤用⼾戶端程式碼品質(M7 - Client
Code Quality ) • App程式碼品質不佳造成的問題,如buffer overflow. format string等 • 緩衝區溢位(buffer overflow),是針對程式設計缺陷,向程 式輸入緩衝區寫入使之溢位的內容(通常是超過緩衝區能儲存 的最⼤大數據量量的資料),從⽽而破壞程式執⾏行行、趁著中斷之際並 取得程式乃⾄至系統的控制權。 • 使⽤用靜態分析⼯工具如Xcode static analyze. Android Lint進⾏行行 分析並且改善 • 市⾯面上⼯工具如fortify. checkmarx
M8程式碼竄改(M8 -Code Tampering) •
透過以下⼿手法對程式進⾏行行竄改 • binary patching, local resource modification, method hooking, method swizzling, and dynamic memory modification • 進⾏行行JB. root偵測並且混淆,若若偵測JB. root進⾏行行 相應動作
JB偵測 Reference ⾏行行動應⽤用資安聯聯盟
拒絕Debug模式執⾏行行 Reference ⾏行行動應⽤用資安聯聯盟
M9逆向⼯工程(M9 - Reverse
Engineering) • 透過逆向⼯工程將可了了解程式式如何運作以及進⾏行行 分析造成風險 • iOS • 透過⼯工具如 IDA Pro, Hopper, otool, 對binary檔案 進⾏行行 decompile等進⾏行行反組譯,class-dump查看 class. category. protocol等
M9逆向⼯工程(M9 - Reverse
Engineering) • Android • 透過⼯工具如apktool是拿來來把 apk 拆開,反編譯 apk 之後,看到smali檔案跟resource • dex2jar 可以把 apk 轉成 jar再⽤用jd-gui檢視 java code • 可進⾏行行竄改程式並且重新產⽣生apk檔
M9逆向⼯工程(M9 - Reverse
Engineering) • 可使⽤用obfuscate進⾏行行程式碼混淆 • Android 本⾝身內建基本proguard⼯工具 • iOS 可⽤用open source https://github.com/ obfuscator-llvm/obfuscator/wiki • 可⽤用 obfuscate進階⼯工具,如DexGuard. Arxan. AppGuard等⼯工具除了了混淆之外也有些是加殼或是 靜態、動態防護
M10多餘的功能(M10 - Extraneous
Functionality) • 額外功能,如開發時常常會使⽤用後⾨門或是在側 是環境為了了⽅方便便直接輸入密碼等功能容易易造成 不⼩小⼼心上線到正式環境的風險
M10多餘的功能(M10 - Extraneous
Functionality) • 在程式開發階段,應進⾏行行⼈人⼯工code review避免此狀狀況發⽣生,可配 合如pull request機制來來進⾏行行merge前的關卡 • 檢查Log資訊是否不包含機敏資訊 • 使⽤用proxy⼯工具如charles. MITM proxy來來檢查app連線 • iOS • 可以使⽤用不同target或debug flag來來分開環境 • Android • ⽤用debug flag分開環境
其他常⾒見見問題 • ⾏行行動應⽤用App使⽤用第三⽅方函式庫前,需先確認其是來來⾃自 可靠來來源、有持續更更新並經測試沒有漏 洞洞、後端⽊木⾺馬及 不明傳送⽬目的地。 •
對使⽤用者輸入驗證,避免SQL injection等問題 • iOS 使⽤用 ARC開發 • iOS使⽤用ATS(HTTPS)設定 • JB. Root已弊⼤大於利利
安全軟體開發 • 設計階段:清楚定義資訊安全政策 • 開發階段:針對原始碼進⾏行行安全漏洞洞掃描,並且針 對漏洞洞等級分類追蹤與修復,及早發現問題並調整 •
測試階段:模擬駭客進⾏行行滲透測試(Penetration Test) • 上線階段:監控並追蹤攻擊,避免造成風險
⿊黑⽩白箱測試 • iOS • Santoku.
Snoop-it. MobSF • Android • Santoku. MobSF
Zero Day 平台 •
ZeroDay • 烏雲
Q&A
Advertisement