# Module #8 # Что такое OWASP Непрофитабельный проект, предоставляет большое количество гайдов для "безопасного" написания кода. Есть гайды для тестирования, проектирования и проведения оценки реализации SDL. # OWASP MSTG и ASVS [MSTG](https://github.com/OWASP/owasp-mstg) - Mobile Testing Guide. Набор инструкций для тестирования популярных мобильных платформ. База знаний, которая поддерживается community. Показаны примеры использования инструментов и описаны некоторые особенности мобильных платформ. [ASVS](https://github.com/OWASP/ASVS/tree/v4.0.3#latest-stable-version---403) - Application Security Verification Standart. Стандарт, который не только отвечает на вопросы "Что тестировать?" и "Как тестировать?", но и дает возможность оценить и исправить недостатки, которые могли бы быть обнаружены в рамках проверки. Стандарт определяет 3 уровня проверки безопасности: 1. Низкий уровень доверия, проводится при тестировании на проникновение. 2. Уровень, который используют для приложений, которые содержат конфидентиальные данные. 3. Уровень, который используется для тестирования приложений, которые содержат данные с высокой стоимостью. Стандарт ориентируют для создания чек листов безопасного программирования. ![](https://i.imgur.com/be6UrHE.png) # OWASP Mobile Top-10 [Список](https://owasp.org/www-project-mobile-top-10/) рисков, которые могут возникать в мобильных приложениях. Список аналогичен списку рисков, которые существуют для веб-приложений. Содержит список типов уязвимостей, которые могут привести к нарушению безопасности данных, которые обрабатываются приложением. ## M1 - Обход архитектурных ограничений Категория, которая включает неверное использование платформенных функций и API. Включает в себя работу с привелегиями, работой с биометрией, Keychain и других механизмов. ## M2 - Небезопасное хранение данных Категория включает в себя уязвимости, которые могут появится вследствии того, что при разработке приложение не учитывает окружение, которое используется для запуска. Чаще всего это уязвимости и недостатки в использовании примитивов шифрования для хранения данных. ## M3 - Небезопасная передача данных Недостатки, которые возникают при передачи данных приложением. При этом могут использоваться различные среды передачи данных - мобильная сеть,Wi-Fi, Bluetooth. ## M4, M6 - Небезопасная аутентификация и авторизация Уязвимости в механизмах авторизации, которые могут быть использованы для атаки на приложения. ## M5 - Слабая криптография Уязвимости, которые могут быть использованы для доступа к данным приложения. ## M7 - Недостаточное качество кода приложений Включает в себя недостатки, которые могут быть в коде. Недостатки заключаются в недостаточной санитизации данных. И использовании антипаттернов программирования. ## M8 - Модификация кода Атака, которая позволяет провести модификацию оригинального приложения. ## M9 - Обратная разработка Недостатки, которые позволяют восстановить полностью или частично исходный код приложения или его алгоритм. ## M10 - Скрытый функционал Функционал, который может быть использован для компрометации пользовательских данных. Обычно остаются функции, которые использовались для отладки алгоритма.