Елестетіп көріңіз: сіз өзіңіздің жасанды интеллект көмекшіңізге кодты тексеруді сеніп тапсырасыз. Ал ол қателерді іздеудің орнына, сіздің парольдеріңіз бен кілттеріңізді ұрлайды. Мұның бәрі — кәдімгі PNG форматындағы суреттің кесірінен. Бұл ғылыми фантастика сияқты естіледі ме? Жоқ, бұл Ghostcommit деп аталатын нақты шабуыл.
Миссури-Канзас-Сити университетінің зерттеушілері (доцент Судипта Чаттопадхьяй және зерттеуші Мурали Эдига) зиянды командаларды мәтінде емес, суреттің ішіне жасыруға болатынын анықтады. Жариялау алдында кодты тексеретін ЖИ агент суретті тіпті ашпайды және бәрін сабырмен өткізіп жібереді. Ал кейінірек басқа ЖИ көмекші бұл суретті оқып, ондағы команданы тауып, парольдер мен кілттері бар құпия файлға кіріп, оларды зиянсыз сандар жиынтығы ретінде кодқа жазып қояды.
Алдаудың мәні неде?
Барлығы кодты шынымен тексерудің тоқтатылуынан басталады. Демек, осалдықтар жиі анықталады. Зерттеушілер ең танымал ашық жобалардағы 6 мыңнан астам өзгерісті қарап, 73% жағдайда код жобаға ешқандай нақты тексерусіз — адам да, бағдарлама да қарамастан — енгенін анықтады.
Бағдарламашылар кілттерді, парольдерді және кіру деректерін жиі жеке қызметтік файлда (әдетте .env деп аталады) сақтайды. Ал жаңа кодты тексеруге оларға ЖИ бағдарламалары — өзгерістерді оқып, бәрі дұрыс па екенін айтатын автоматты редактор тәрізді нәрсе — жиі көмектеседі.
Қулық мынада. ЖИ көмекшілерінде жоба ережелері бар арнайы файл болады, олар оны өздері оқиды және «мұнда қалай жұмыс істеу әдеттегідей» деген нұсқаулық ретінде қарастырады. Хакер бұл файлда құрастыру параметрлері туралы зиянсыз мәтінді қалдырады — онда ешқандай пароль айтылмайды. Файл тек суретке сілтеме жасайды. Ал суретте зиянды команда жазылған: құпия файлды оқы, әрбір таңбаны санға айналдыр және осы сандарды кодқа енгіз.
Тексеруші бағдарлама үшін сурет — бұл жай ғана деректер жиынтығы, оны ол талдамайды. Кейбір ЖИ әдепкі бойынша суреттерді мүлде қарамайды, басқалары ешқандай күдікті нәрсе таппайды. Зерттеушілер тіпті суретке «зиянды команда» және «құпия файлды оқы» деп тікелей жазды — бәрібір тексеру сәтті өтті.
Ұрлық бірден болмайды. Команда «ұйықтап» тұрғандай. Уақыт өтеді, бағдарламашы ЖИ көмекшісінен кәдімгі нәрсені — мысалы, кішкене код бөлігін қосуды сұрайды. Көмекші іске қосылғанда сол ережелер файлын оқиды, суретке сілтеме бойынша өтеді, құпия файлды ашады және парольдерді ұзын сандар тізімі ретінде кодқа байқатпай енгізеді. Бір сынақта көмекші бүкіл құпия файлды бірінші әрекетте толығымен жазды. Бағдарламашы қажетті функция дайын екенін көріп, кодты жариялайды. Ал хакер кейін бұл сандарды ашық жобадан алып, оларды қайтадан парольдерге айналдырады. Кәдімгі қорғаныс бағдарламалары ештеңе байқамайды — олардың «ойына да келмейді», зиянсыз сандар тізімінің артында кілттер жасырылған.
Мәселе ЖИ-де емес, бағдарламада
Командаларды суреттерге жасыруды бұрыннан ойлап тапқан, бірақ Ghostcommit-те ешқандай маскировка жоқ: команда тікелей, ашық мәтінмен жазылған. Қулықты жасыру емес, кәдімгі немқұрайлылық жұмыс істейді — тексеруші суретке жай ғана қарамайды.
Ең қызығы басқада. Ішінде қандай «ми» (ЖИ моделі) тұрғаны емес, ол қандай бағдарламаға енгізілгені маңыздырақ болып шықты. Бір ЖИ бір бағдарламада парольдерді мойынсұнып ұрласа, екіншісінде алдауды танып, бас тартты. Бір жағдайда көмекші алдымен құпияны жазды, содан кейін оны алдап жатқанын түсініп, жазғанын өшірді. «Ми» бірдей, бірақ мінез-құлық қарама-қарсы, себебі бәрін оны қоршаған қабықша шешеді.
Бұдан қорытынды: бір ғана сиқырлы қорғаныс болмайды, бірнеше деңгей қажет. Зерттеушілердің өздері суреттерді шынымен ашып оқитын өз бағдарламасын жасады. 80 жаңа өзгерістегі сынақта ол бір ғана шабуылды өткізіп жіберді және адал кодта ешқашан жалған дабыл көтермеді.
Қорғаныстың екінші деңгейі — көмекшінің жұмыс барысында не істейтінін бақылау: егер ол кенеттен себепсіз парольдер файлына кірсе, бұл алаңдауға себеп.
Менің пікірім: Ghostcommit — бұл кезекті хакерлік ойлап табу емес, жүйелік проблеманың симптомы. Біз ЖИ агенттеріне маңызды тапсырмаларды тым тез сеніп тапсырдық, оларға тиісті «иммундық жүйені» қамтамасыз етпей. Әзірлеушілер суреттер мазмұнын талдау және агенттердің мінез-құлқын бақылауды қоса алғанда, көп деңгейлі тексеруді енгізбесе, мұндай шабуылдар тек көбейе береді. Код қауіпсіздігі қаражат қауіпсіздігі болып табылатын криптовалюта нарығы бұған ерекше назар аударуы керек.