會寫這一篇的出發點,是在第二頁,列出一些app沒有做保護時會洩漏的資訊還有常常使用的攻擊手法。因為我平常都用這些方法在分析競業app,才會想要找一下防範方法。
在第二頁稍微寫的工具還有他們會造成的什麼影響,我故意沒有細講,我想如果想踏入iOS security研究的人,第二頁那邊的工具可以去玩玩看,留給有興趣的人去發掘,算是個出發點,然後有什麼心得可以加我好友一起來討論XD。想直接看答案的人可參考我之前寫的一篇 iOS app security。
reference有這幾篇:
IOS Application Security Part 24 – Jailbreak Detection and EvasionxCon
xCon-Issues
iOS安全攻防(二十):越狱检测的攻与防
影片也出來了,這幾個月都在比快的
問題
在QA的時候田單單有問:我寫的那個check method如果被hook了,那不就白保護了。
我當時的回答是可以寫成block,讓他檢查不只做一次。回家的路上想想這樣還是不夠完整,
其實還可以再做三階段的加強:
- 第一個是寫成inline block,或者是寫成c的function 宣告,這個目的是為了防止class dump,讓他看不到method name,也就不知道要怎麼hook
- 第二個是把method name變得很長很長,我在sample裡面是取叫isJailBreakCheck,反正objC的method name都是在比長的,寫成isJailBreakCheckIfYouWantToProtectYourApp_ImSwiftSeniorEngineer也是可以,hook的時候打錯一個字就hook不到了,連我自己也覺得這蠻北爛的。
- 第三個是回傳的比對值千萬不要用boolean,一定要用object,先定義好兩個object代表有jb跟沒有jb,最簡單的作法是用string。複雜一點的話可以再加一些加密解密的檢查。
在看這些文章的時候常常會想這些寫security的人是不是神經病,哪來這麼多攻擊跟偵測方法可以一層層的疊上去,然後文章看多了自己似乎也變得疑心病很重。真是沒事不要做security。
其他收穫
在晚上活動一開始的時候,主持人(David)有讓大家分成幾組自我介紹。每次去聚會都會看到很多熟面孔,但每次也都會一些第一次來的人。在我那組自我介紹的時候,有兩個是學生或剛畢業的新鮮人,其中一個說是老師介紹他來的,所以我們問他
「你老師有來過喔?」
「對啊」
在晚上活動一開始的時候,主持人(David)有讓大家分成幾組自我介紹。每次去聚會都會看到很多熟面孔,但每次也都會一些第一次來的人。在我那組自我介紹的時候,有兩個是學生或剛畢業的新鮮人,其中一個說是老師介紹他來的,所以我們問他
「你老師有來過喔?」
「對啊」
眾人大驚。
從來都不知道有學校老師來過,這實在有點可惜。
沒有辦法促進產學交流,這更可惜。
我跟幾個朋友在聚會結束之後都會去吃宵夜聊天,如果有新朋友想加入的,不要害怕,伸出友誼之手就對了,我們可以告訴你很多工程師升級經驗談。
像這個月是一群人在國父紀念館旁邊的公園看OOBE跟superbil玩ingress打變電箱。
像這個月是一群人在國父紀念館旁邊的公園看OOBE跟superbil玩ingress打變電箱。