GitHub Security Lab разкри, че нейната AI система за сигурност с отворен код е идентифицирала 24 уязвимости в приложения за Android, включително дефекти, които биха могли да позволят проследяване на местоположението в OsmAnd и атаки за превземане на профили в Wikipedia за Android.
Констатациите подчертават как целевите AI работни процеси могат да помогнат на изследователите да разкрият сложни логически дефекти в мобилни приложения, макар че все още се изисква човешка проверка.
Изследването използва Taskflow Agent на GitHub Security Lab — рамка с отворен код, създадена за автоматизиране и споделяне на работни процеси при изследвания за сигурност с помощта на AI.
Вместо да се иска от голям езиков модел да сканира цяло хранилище с обща подкана (prompt), изследователите са създали специфични за Android работни процеси (taskflows), които разделят одита на по-малки етапи.
Един от работните процеси идентифицира входните точки на мобилното приложение, като експортирани активности (activities), услуги (services), приемници на излъчвания (broadcast receivers) и дълбоки връзки (deep links). Друг работен процес оценява всяка входна точка спрямо класове уязвимости за Android, включително незащитени намерения (intents), проблеми от типа „confused deputy“, незащитени излъчвания, междоприложни скриптове (cross-app scripting) и рискове в WebView.
Тази структура помага на изкуствения интелект да разбере съответната повърхност за атака в хранилища, които могат да съдържат код за мобилни, уеб и десктоп среди.
AI инструментът на GitHub откри 24 уязвимости в Android
Една от най-сериозните констатации засегна OsmAnd, навигационно приложение за Android с над 10 милиона изтегляния. Изследователите установиха, че експортираната MapActivity на приложението приема чувствителни за сигурността атрибути (intent extras) при импортиране на настройки.
Тъй като експортираните Android активности могат да получават intent заявки от други приложения, злонамерено приложение би могло да предостави контролирани от атакуващия стойности като silent_import, replace и export_type_list_key.
Уязвимата логика позволява на злонамерено приложение без специални привилегии да импортира и замени настройките на OsmAnd, без да известява потребителя. Атакуващ може да промени източника на карти в приложението, така че заявките за карти да се изпращат към сървър, контролиран от него.
Чрез регистриране на координатите на картите атакуващият може да разкрие местоположението и движенията на жертвата. Същата уязвимост може също така да разкрие заявки за маршрутизиране, включително началните точки и дестинациите на маршрутите, докато потребителят продължава да използва приложението нормално.
GitHub подробно описва и верига за атака за превземане на профили в приложението Wikipedia за Android. Приложението регистрира wikipedia:// манипулатор на дълбоки връзки (deep link handler) за отваряне на съдържание вътре в своя WebView. Валидацията на името на хоста обаче използва проверка с endsWith(), вместо да валидира точния доверен домейн.
Това позволява на злонамерен домейн като evil-wikipedia.org да премине проверката за наставка, тъй като името му завършва на wikipedia.org. Атакуващ би могъл да създаде злонамерена уебстраница, съдържаща манипулирана дълбока връзка, и да подтикне жертвата да я отвори.
След това приложението на Wikipedia може да зареди контролирано от атакуващия съдържание в своя WebView, потенциално карайки жертвата да вярва, че преглежда легитимна страница на Wikipedia.
Втори проблем с валидацията на суфикса на домейна в кода за обработка на бисквитки направи атаката още по-сериозна. Неправилната проверка може да накара WebView да предостави бисквитки от Wikimedia на страницата, контролирана от атакуващия.
Изследователите посочват, че откраднатите данни могат да включват потребителско име, дълготраен маркер за удостоверяване (authentication token) и сесиен маркер (session token), валидни за всички проекти на Wikimedia, включително Wikipedia, Wikimedia Commons, Wikidata и Meta. Свързването на двата дефекта може да доведе до пълно превземане на профила, след като жертвата натисне само една злонамерена връзка.
От GitHub предупреждават, че констатациите, генерирани от AI, не трябва да се приемат без експертен преглед. Големите езикови модели могат ефективно да идентифицират кодови модели и съответните API. Те обаче могат и грешно да преценят сериозността, да пренебрегнат защитаващо поведение или да генерират фалшиви позитивни резултати.
Изследователите установиха, че изискването моделът да изгради концептуално доказателство (proof of concept) подобрява триажа, въпреки че ръчното тестване от човек остава от съществено значение. Taskflow Agent и работните процеси за одит на Android са публично достъпни.
От GitHub заявяват, че потребителите се нуждаят от лиценз за GitHub Copilot, а одитите могат да изразходват значителен брой заявки към премиум модели, тъй като хранилища със среден размер могат да отнемат от един до два часа и да изискват множество извиквания на инструменти. Резултатите се съхраняват в SQLite таблица audit_results за преглед от изследователите.