Details

Title: Анализ android-приложений методами SAST: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта»
Creators: Пинаев Никита Дмитриевич
Scientific adviser: Коликова Татьяна Всеволодовна
Organization: Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и технологий
Imprint: Санкт-Петербург, 2022
Collection: Выпускные квалификационные работы; Общая коллекция
Subjects: анализ; андроид; приложение; метод sast; sast; android; devsecops; ssdl; ci/cd
Document type: Bachelor graduation qualification work
File type: PDF
Language: Russian
Level of education: Bachelor
Speciality code (FGOS): 09.03.04
Speciality group (FGOS): 090000 - Информатика и вычислительная техника
DOI: 10.18720/SPBPU/3/2022/vr/vr22-3157
Rights: Доступ по паролю из сети Интернет (чтение, печать, копирование)
Additionally: New arrival
Record key: ru\spstu\vkr\19793

Allowed Actions:

Action 'Read' will be available if you login or access site from another network Action 'Download' will be available if you login or access site from another network

Group: Anonymous

Network: Internet

Annotation

В ходе работы был разработан инструмент для статического анализа android приложений, который можно встраивать в пайплайн CI/CD или использовать для ручного анализа локально. Была всесторонне исследована предметная область, описаны основные понятия и стандарты, произведен анализ существующих решений на предмет преимущества и недостатков. Была определена ценность созданного сканера и чем он выгодно отличается от уже существующих. Также были описаны все дефекты, автоматизированный поиск которых был реализован, были приведены примеры эксплуатации и векторы атак. Был реализован скрипт для скачивания приложений из Google Play, который помог в анализе реальных приложений. Была произведена исследовательская работа по анализу самых известных приложений в системе дистрибуции Google Play Market, в ходе которой была реализована проверка корректности работы инструмента. Также были обозначены возможные пути развития и улучшения. В итоге был получен интересный опыт, проведена большая аналитическая и исследовательская работа, поставленные цели были достигнуты.

In the graduation work I developed a tool for static analysis of android applications, which can be embedded into the CI/CD pipeline or used for manual analysis locally. The subject area was comprehensively researched, the basic concepts and standards were described, existing solutions were analyzed for advantages and disadvantages. I defined the value of the created scanner and compared it favorably to existing ones. Also, I described all the defects, which automated search was implemented, I gave examples of exploitation and attack vectors. I implemented a script for downloading applications from Google Play, which helped a lot for scanning real world applications. Research work was done while analyzing top-tier applications in the Google Play Market distribution system, during which I was convinced that my tool is working correctly. Possible ways of development and improvement were also outlined. As a result, I got an interesting experience, did huge research, create my SAST tool and achieved my goals.

Document access rights

Network User group Action
ILC SPbPU Local Network All Read Print Download
External organizations N2 All Read
External organizations N1 All
Internet Authorized users SPbPU Read Print Download
Internet Authorized users (not from SPbPU, N2) Read
Internet Authorized users (not from SPbPU, N1)
-> Internet Anonymous

Table of Contents

  • ГЛАВА 1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
    • 1.1 Использование в DevSecOps
    • 1.2 SAST анализ
    • 1.3 OWASP Mobile
    • 1.4 Инструменты декомпиляции APK
    • 1.5 Строение APK файла
    • 1.6 Использование REGEX
  • ГЛАВА 2 ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ
    • 2.1 Общие тенденции
    • 2.2 Мировые лидеры
    • 2.3 Российские решения
    • 2.4 Open-Source инструменты
    • 2.5 Итоги и актуальность
  • ГЛАВА 3 РЕАЛИЗАЦИЯ И ОПИСАНИЕ ДЕФЕКТОВ
    • 3.1 AndroidManifest
    • 3.2 SSL Pinning
    • 3.3 Чувствительная Информация
    • 3.4 Проверка токенов для Google API
  • ГЛАВА 4 РЕАЛИЗАЦИЯ SAST ИНСТРУМЕНТА
    • 4.1 Составление требований к SAST инстументу
    • 4.2 Основной класс для декомпиляции и обработки apk
    • 4.3 Автоматизация поиска дефектов
    • 4.4 Вариативность использования
    • 4.5 Методы дистрибуции
    • 4.6 Скрипт для скачивания apk из Google Play
  • ГЛАВА 5 ТЕСТИРОВАНИЕ И АНАЛИЗ РЕЗУЛЬТАТОВ
    • 5.1 Тестирование работы SAST инструмента
    • 5.2 Проверка на реальных приложениях
    • 5.3 Анализ корректности работы
    • 5.4 Перспективы развития
  • ЗАКЛЮЧЕНИЕ
  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Usage statistics

stat Access count: 0
Last 30 days: 0
Detailed usage statistics