Телефон: +7 (383)-202-16-86

Статья опубликована в рамках: Научного журнала «Студенческий» № 13(99)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3

Библиографическое описание:
Гімінхан С., Сексенбаева А.К. SMALI-КОДТЫ ОБФУСАЦИЯЛАУ НЕГІЗІНДЕ ANDROID ҚОСЫМШАЛАРЫН ҚОРҒАУ ӘДІСІ // Студенческий: электрон. научн. журн. 2020. № 13(99). URL: https://sibac.info/journal/student/99/174370 (дата обращения: 04.06.2020).

SMALI-КОДТЫ ОБФУСАЦИЯЛАУ НЕГІЗІНДЕ ANDROID ҚОСЫМШАЛАРЫН ҚОРҒАУ ӘДІСІ

Гімінхан Сндар

магистр, Л.Н. Гулмилева атындағы Еуразия ұлттық университеті,

Нұр-Сұлтан, Қазақстан

Сексенбаева Айша Курманбекова

т.ғ.к. Л.Н.Газмилева атындағы Еуразия ұлттық университетінің доценті,

Нұр-Сұлтан, Қазақстан

ANDROID APPLICATION PROTECTION BASED ON SMALI CODE OBFUSCATION

 

Sndar Giminkhan

student, Eurasian national University of L.N. Gumilev,

Kazakhstan, Nur-sultan

Aisha K. Seksenbaeva

k.f.-m.n. associate professor Eurasian national University of L.N. Gumilev

Kazakhstan, Nur-sultan

 

AННOТAЦИЯ

Мақалада Smali-кодты обфусациялау негізінде Android қосымшаларын қорғау әдісі ұсынылған. Негізгі идея - Dalvik V.M-нің регистрге негізделген ерекшелігін пайдалану арқылы, деректер ағынының обфусациясы регистрлердегі құндылықтарға қол жеткізу үшін жүргіземіз, оны басқару ағынын обфусация үшін ашық емес предикативті технологиямен біріктіруіміздің түпкі мақсаты - шабуылдаушыға декомпиляция кезінде дұрыс емес мәліметтер ағынын көрсетеді. Тәжірибелік нәтижелерде көрсеткендей, обфусация әдісі кеңінен қолданылатын кері құралдарды jeb, dex2jar, dexdump және IDA pro талдау жасау.

ABSTRACT

An Android application protection method that is based on code obfuscation of smali code is proposed. The basic idea is that confuses the data flow for the access procedure of register data,and combines opaque predicates technology to confuse the control flow,thus when the attacker reversely analyze the application,the decompiling results will be wrong. The experiment results show that ourcan resist the reverse analysis of current popular reverse tools, such as jeb, dex2jar, dexdump and IDA pro.

 

Түйін сөздер: Smali-кодты обфусация; кері инженерия; декомпиляция

Keywords: smali code obfuscation; reverse engineering; decompiling

 

2019 жылдың статистикалық есебіне сәйкес, Android құрылғыларының нарықтағы үлесі 87% құрайды. Сонымен қатар қауіпсіздік мәселелері де артып келе жатыр, мысалы android платформасында көптеген ақылы қосымшаларды қайта клондап алу арқылы пайдаланушылардың құпиялылығы туралы ақпараттын және есеп шот картадағы ақшалардың ұрлануы. Сондықтан android-қосымшаларды қорғау өзекті мәселе болып табылады.

Соңғы жылдары шабуылдаушылар көбінесе қосымшаны қайта клондап немесе өзгерту арқылы өздерінің зиянды әрекеттерін жүзеге асыруда. Шабуылдаушы dump қосымшаның орындалатын файлы .dex-ті кезде, smali кодын талдау үшін тікелей бөлшектемейді, өйткені smali  коды көп, java кодына қарағанда күрделі және талдау көп уақытты алады. Сондықтан, шабуылдаушы алдымен .dex орындалатын файлын Java-ға ауыстыру, яғни, Java-ның бастапқы коды, содан кейін Java-ның бастапқы кодынан кілттер сегментінің орнын тез алады, Осыған сәйкес, кілттер сегментінің орнынан, кейін Smali коды толығымен өзгертеді, сонымен, қайта өзгерту арқылы өзінің зиянды функцияларын орындай алатын  файлды жүзеге асырады. (Процесс 1.-суретте көрсетілген.)

 

1.-сурет. Андроид қосымшалар үшін кері инженерлік процесі

 

SOM әдісі

SOM (Smali code obfuscation method) - smali-кодқа негізделген обфузия әдісі. Бұл әдіс бастапқы кодты қажет етпейді, сонымен бірге декомпилятормен күреседі, осылайша шабуылдаушы декомпиляция арқылы дұрыс код логикасын ала алмайды.

SOM қорғалуы керек қосымшалармен жұмыс істейді, обфусациялау арқылы қорғалған қосымшаны шағарады. Төменде SOM-нің обфусация процесі қысқаша сипатталған:

1-қадам. Обфусацияланған қосымшаны бөлшектегеннен кейін smali-кодты, қайта орындалатын файл құрастырады;

2-қадам 1-қадамдағы обфусацияланған әдістердің bytecode-тын сақтайды, содан кейін жаңа Classes. dex қалыптастыру үшін осы әдісдегі bytecode-ты 0-ге толтыра;

3-қадам Classic.dex орындалу файлдарын жүктеу үшін dex динамикалық жүктеу технологиясын пайдалану арқылы;

4-қадам. Classes.dex-ті жүктегеннен кейін, сақталған обфусацияланған әдістің байт-коды класс атымен / әдіс атымен тиісті жад мекенжайына қайта толтырылады.

Қазіргі уақытта Android қосымшаларын бұзу және зиянды код енгізу оңай, сондықтан қорғаудың тиімді әдістерін ұсыну өте маңызды. Осы мақалада ұсынылған smali кодына негізделген обфускация әдісі қазіргі уақытта Android қосымшаларында кездесетін қиындықтарды тиімді шеше алады.

(1)Деректер ағынын обфускациялау

Dalvik виртуалды машинасы регистрлердің түріне қарамастан, байт-ағынын орындау кезінде операция кодының түріне байланысты тікелей тиісті регистрлерден операндаларды алады, осылайша обфусация жұмысы smali кодтағы long және double константалар 64 биттік болғандықтан, оларды екі іргелес 32 биттік регистрлерде сақтау керек, сонымен, 32 биттік іргелес регистрлерде сақталатын екі тұрақтының орнына long типті константаларды қолдануға болады.

(2)Басқару ағынын обфускациялау

Басқару ағынын обфусациялау қағидаты - бағдарламаның шынайы басқару ағынын жасыру немесе өзгерту үшін әртүрлі техникалық құралдарды пайдалану, осылайша шабуылдаушының бағдарламаның басқару ағынын талдауына жол бермейді.

Осы мақалада ұсынылған smali-кодты обфусациялау әдісі үшін бағдарламаны тек деректер ағынымен ғана емес, сонымен қатар басқару ағынының обфусация әдісімен жүзеге асыруға болады. Деректер ағынының обфусациясы тұрғысынан біз айнымалыларды сақтауды және қайтарылатын мәнін обфусациялай аламыз, екі әдіс кері инжиниринг бағдарламаның дұрыс логикалық құрылымын алуға кедергі келтіреді,біз екі int типті тұрақты константанты бір double типті тұрақты константантыпен обфусациялаймыз, шабуылдаушы әр түрлі кері құралды кері қайтару үшін қолданған кезде алынған нәтиже мәні дұрыс болмайды; Тәжірибе нәтижелері 2-суретте көрсетілген. Сонымен қатар басқару ағынының обфусациялау жағынан, шабуылдаушыға кілт функциясының қайтару мәнін алу үшін бағдарламаның логикасын талдауы өте маңызды, сондықтан негізгі функцияны шақыру мен қайтару мәнін алу нұсқауы арасында анық емес предикат енгізілген. Нәтижесі 3-суретте көрсетілген.

 

     2-суретте Кері талдау процесі                3-суретте Инженерлік реверстің жағдайы

 

Бұл мақалада талдаудың кері бағытында статикалық және динамикалық талдауға қарсы тұра алатын жүйенің прототипі әзірленеді және іске асырылады. Қазіргі уақытта кері әдіс негізінен статикалық талдау мен динамикалық талдауды қамтиды. Статикалық анализге қарсыласу тұрғысынан, біз Smali кодын обфусацияланған соң қайта орындалатын файл құрылады, одан кейін осы орындалатын файлдағы обфусацияланған әдісінің байт коды бос толтырылады, шабуылшы статикалық талдау жасағанда, қосымшаның дұрыс логикалық құрылымын алу мүмкін емес болады. Динамикалық анализге қарсыласу тұрғысынан, егер шабуылшы Dalvik-де .dex орындалатын файлды жадына жүктеген соң, біз әлі дұрыс bytecode-ты толтырмас бұрын dump қосымшаның орындалатын файлына барамыз, осы кезде dump орындалатын файл статикалық талдауға қарсы тұрғанда орындалатын файлмен бірдей, сондықтан дұрыс талдау жасау мүмкін емес; Сонымен қатар, егер шабуылдаушы біз dump орындалатын файлды іске қосқан кезде болса,яғни біз обфусациялаған bytecode-ты толтырғаннан кейін, dump орындалатын файл келесі  кезеңі декомпиляцияға жіберіліді, 1.3-суретте кері инженерлікге мысалда көрсетілгендей дұрыс емес декомпиляция нәтижесі.

Қорытындылай келе, осы мақалада ұсынылған кодты обфусация әдісі Android қосымшаларын қорғаудың пайдасы бар екенін көрдік, бірақ Android қосымшаларындағы жергілікті кітапханалар ескермейді. Сондықтан келесі жұмыс жергілікті кітапханадағы кодты обфусациялау және қорғау болады, бұл қорғаныс беріктігін жақсартуға және кері талдау процесінде қиындықты арттыруға мүмкіндік береді.

 

Әдебиеттер тізімі:

  1. JESUSFREKEJ. smali/backsmali: An assembler/ disas- sembler for Android's dex format[EB /OL]. [2011]. http: / /code. google. com /p/samli.[4]XU J,LI S,ZHANG T. Security Analysis and Protection
  2. Based on Smali Injection for Android Applications[M] / / Algorithms and Architectures for Parallel Processing. Berlin: Springer International Publishing,2014: 577-586.
  3. BARAK B,GOLDREICH O,IMOAGLIAZZO R,et al. On the ( im ) possibility of obfuscating programs[C] / / Advances in cryptology—CRYPTO 2001. Springer Berlin Heidelberg,2001: 1-18.
  4. PREDA M D,GIACOBAZZI R. Semantic-Based Code Obfuscation by Abstract Interpretation [J]. Lecture Notes in Computer Science,2005,17( 17): 1325-1336.
  5. WIKIPEDIA. Java Native Interface[EB/OL].[2016]. https: //en.wikipedia.org/wiki/Java_Native_Interface.
  6. Romin Irani. Android Application Class[EB /OL]. [2010]. http: / /www. xoriant. com /blog /mobile-application-development/ android-application-class.html

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом