AI texnologiyasi xavfsizlik sohasida tez sur'atlarda rivojlanmoqda. GitHub jamoasi GitHub Security Lab Taskflow Agentini yaratdi. Bu agent dasturchilar va xavfsizlik tadqiqotchilari uchun AI so'rovnomalarini va ish jarayonlarini avtomatlashtirish, paketlash va ulashish imkoniyatini beradi. Bu maqolada biz bu agentni Android ilovalarida zaxariliklarni topishda qanday ishlatishimizni ko'rsatamiz.
AI Agenti Qanday Ishlaydi
Yangi AI modellari kodni tushunishda yaxshilanmoqda. Lekin, xavfsizlik tadqiqotchilari uchun maxsus taskflow so'rovnomalari bor. Ular AI modelini boshqarish va murakkab zaxariliklarni tezroq topishga yordam beradi. Bu taskflowlar yordamida biz Android ilovalarida 24 ta zaxarilikni topdik.
Bu taskflowlarni o'zingizning loyihangizda qanday ishlatish mumkinligini bilish uchun, GitHub Security Lab Taskflow Agenti ochiq manba kodli va oson ishlatilishi mumkin. GitHub Copilot litsenziyasi talab qilinadi va so'rovnomalar premium model so'rovlarini ishlatadi.
Taskflowlarni O'zingizda Qanday Ishlatish
- GitHub seclab-taskflows respositoriyasiga o'ting va codespace ni boshlang.
- Codespace ni boshlash uchun bir necha daqiqa kuting.
- Terminalda quyidagi buyruqni bajaring:
./scripts/audit/run_mobile.sh myorg/myrepo
Bu jarayon o'rtacha hajmli respositoriyada bir necha soat davom etishi mumkin. Tugagandan so'ng, SQLite ko'rsatuvchisi ochiladi. "audit_results" jadvalini oching va "has_vulnerability" ustunida belgilangan qatorlarni ko'ring.
Android Ilovalari Uchun Maxsus Taskflowlar
Bizning hamkasblarimiz Peter va Mo avvalgi blog postlarida o'z taskflowlarini taqdim etishgan. Lekin, Android ilovalari uchun maxsus zaxariliklar bor, shuning uchun biz ularga yo'nalgan taskflowlarni yaratdik.
Birinchi navbatda, biz gather_mobile_entry_point_info.yaml nomli taskflowni qo'shdik. Bu taskflow kirish nuqtalari bilan ishlaydi. Kirish nuqtalari bu kodning shu joylarida hujumkor ma'lumotlar oqib ketishi mumkin bo'lgan joylar. Bu taskflow kirish nuqtalari mobildan va mobildan tashqari bo'lganlarga bo'linadi. Bu AI modeliga turli turdagi ilovalar bilan ishlash imkonini beradi.
Ikkinchi navbatda, biz classify_application_local.yaml ni tahrirladik. Ushbu taskflowda biz mashhur zaxarilik turlarini ro'yxatga olamiz va AI modeliga har bir kirish nuqtasi va komponentni bu kontekstda ko'rib chiqishni so'raymiz. Bu AI modeliga zaxariliklarni topishda yordam beradi.
Taskflowlar Topgan Zaxariliklar Misollari
Bu bo'limda biz taskflowlar topgan va e'lon qilingan zaxariliklar misollarini ko'rsatamiz. Jumladan, OsmAnd ilovasi orqali foydalanuvchilarni kuzatish imkoniyatini topdik.
OsmAnd — bu mashhur uchinchi tomon navigatsiya ilovasi. U Open-Street-Map ma'lumotlar bazasidan foydalanadi. Bu ilova App Store va Play Store da mavjud. Biz Android versiyasini ko'rib chiqamiz, bu versiyada 10 milliondan ortiq yuklab olishlar bor.
Biz topgan eng qiziq zaxarilik bu — zaxarilikli ilovalar orqali qurilmaning joylashuvini kuzatish imkoniyatidir. OsmAnd MapActivity nomli aktivatini eksport qiladi. Bu aktivat ilovaning bir qismi bo'lib, foydalanuvchi bilan o'zaro aloqa qilish uchun foydalaniladi. MapActivity sozlamalar fayllarini ochish va ilovada deeplinklarni boshqaradi.
Lekin, sozlamalar fayllarini ochishda, ilova intent ekstralarini qabul qiladi. Intents bu Androidda boshqa komponentlarga so'rov yuborish uchun ishlatiladigan xabarlar. Intent ekstralar bu xabarlar bilan birga yuboriladigan ma'lumotlar juftligi. MapActivity faqat ushbu ekstralarni AIDL xizmati orqali kutadi. Lekin, ular intent ekstralaridan o'tkazilishi kerak edi, chunki har qanday ilova istalgan ekstralarni istalgan intentga qo'shishi mumkin.
MapActivity eksport qilinganligi sababli, har qanday ilova istalgan intent ekstralarini yuborishi mumkin, jumladan, sozlamalarni yashirincha import qilish imkoniyatini beruvchi ekstralar. Android ilovasi handleOsmAndSettingsImport funksiyasidan foydalanadi sozlamalarni import qilish uchun.
Biz topgan zaxariliklar soni 24 taga yetdi. Bu AI agenti xavfsizlik tadqiqotchilari uchun yangi imkoniyatlar ochdi va Android ilovalaridagi zaxariliklarni topishda katta yordam berdi.
Asl manba: github.blog