Современные разработчики мобильных приложений повторяют те же ошибки, что и web-разработчики в далеких 1990-2000-х годах, когда многие инциденты безопасности происходили из-за некорректной проверки входных данных. Некоторые разработчики научились фильтровать вводимые пользователями данные, однако многие по-прежнему повторяют старые ошибки.
Ранее в этом году исследователи Техасского университета A&M Абнер Мендоза (Abner Mendoza) и Гуофэй Гу (Guofei Gu) опубликовали результаты исследования, посвященного современным проблемам разработки мобильных приложений.
По словам исследователей, разработчики до сих пор включают бизнес-логику (проверку вводимых пользователем данных, авторизацию и аутентификации пользователей) в клиентскую, а не серверную часть кода. В результате пользователи мобильных приложений становятся уязвимыми к простым атакам с использованием инъекций параметров HTTP-запросов. Подобных атак можно было бы легко избежать, реализовав бизнес-логику в компоненте серверной части кода, к которой принадлежит большинство таких операций.
Мендоза и Гу создали систему WARDroid для массового анализа мобильных приложений. С ее помощью исследователи определили формат запросов, используемых приложениями, и проверили их на предмет уязвимости к инъекциям параметров HTTP-запросов.
С помощью WARDroid исследователи выявили порядка 4 тыс. приложений с проблемной логикой в API, и 1743 из них передавали данные в незашифрованном виде по HTTP. Затем эксперты случайным образом выбрали из обнаруженных приложений 1 тыс. программ, изучили их вручную и подтвердили наличие проблемной логики в API 962 из них. Экстраполировав полученное число по отношению к Google Play Store, исследователи пришли к выводу, что уязвимость может затрагивать миллионы приложений.
Бизнес-логика в разработке информационных систем – совокупность правил, принципов, зависимостей поведения объектов предметной области (области поддерживаемой системой человеческой деятельности). Другими словами, бизнес-логика является реализацией правил и ограничений автоматизируемых операций.