Үлкен тіл үлгілері (LLM) жұмыс кодын көбірек жасап, әзірлеу құбырлары мен агент стектеріне біріктірілген сайын, жасырын or зиянды нұсқаулар — үлгі шығыстарына ендірілген, веб-беттер немесе үшінші тарап плагиндері арқылы енгізілген немесе үлгіні оқыту кезінде енгізілген — код орындалғанда қауіпті әрекетті тудыруы мүмкін.
Әзірлеушілер қауымдастығында таралатын пайдаланушы есептеріне сәйкес, бағдарламалық жасақтаманы әзірлеуші апатты деректердің жоғалуын бастан кешірді — шамамен 800 ГБ файлдар жойылдықоса алғанда, бүкіл CursorAI қолданбасының өзі — көмегімен жасалған кодты орындағаннан кейін Егіздердің 3 ішінде жұмыс істегенде CursorAI IDE. Әзірлеушілер кодты генерациялау үшін LLM-ге көбірек сенім артқан сайын, қаралмаған немесе қауіпті сценарийлердің салдары күшейе түседі.
Сондықтан LLM жасаған қауіпті кодтарды қалай анықтау және жою керектігін білу өте маңызды.
ChatGPT және LLM контекстіндегі «жасырын код» дегеніміз не?
Адамдар «жасырын код» деп нені білдіреді?
«Жасырын код» - әзірлеушілер LLM қабылдайтын немесе шығаратын мәтіндегі (немесе файлдардағы) кез келген кірістірілген нұсқауларды немесе орындалатын мазмұнды сипаттау үшін пайдаланатын қолшатыр термин, соның ішінде:
- Шақыру стиліндегі нұсқаулар пайдаланушы мазмұнына ендірілген (мысалы, PDF файлында жасырылған «Бұрынғы нұсқауларды елемеу...»).
- Көрінбейтін кейіпкерлер немесе таңбалауыштарды жасыру немесе токенизация болжамдарын бұзу үшін пайдаланылатын нөлдік ен бос орындар.
- Кодталған пайдалы жүктемелер (base64, URL-кодталған, кескіндер немесе құжаттар ішіндегі стеганографиялық ендірулер).
- Жасырын HTML/JS немесе пішімделген мазмұнға енгізілген сценарий блоктары, оларды төменгі ағындық рендерерлер түсіндіруі мүмкін.
- Метадеректер немесе аннотациялар (файлға түсініктемелер, PDF файлдарындағы жасырын қабаттар) іздеу жүйелеріне немесе үлгіге нұсқау береді.
- Жасырын мінез-құлық қауіпті API интерфейстерін пайдаланатын жасалған кодтан туындайтын (мысалы,
eval,exec,subprocess, немесе желі/жүйелік қоңыраулар) — ниет анық зиянды болмаса да. - Жедел инъекциялық нұсқаулар бұл модельдің жасырын пәрмендерді немесе бэкдорға ұқсас логиканы қамтитын кодты жасауына себепші болады, себебі шабуылдаушы шақыруды немесе контекстті құрастырған.
Бұл шабуыл векторлары жиі аталады жедел инъекция or жанама жедел инъекция мақсат үлгі мінез-құлқын өзгерту болғанда. Қауіпсіздік қауымдастығы қазір жедел енгізуді негізгі LLM осалдығы ретінде қарастырады және OWASP оны LLM тәуекел санаты ретінде ресімдеді.
Бұл кәдімгі зиянды бағдарламадан немесе XSS-тен қалай ерекшеленеді?
Айырмашылық мынада семантикалық қабат: жедел енгізу хост операциялық жүйесіне немесе шолғышты көрсету механизміне емес, модельдің нұсқауларға сәйкес әрекетіне бағытталған. Яғни, жасырын HTML немесе веб-рендерерде іске қосылатын сценарий әлі де орындалатын шабуыл (XSS тәрізді); семантикалық және орындау қабаттары да қорғалуы керек. Өнеркәсіп жетекшілері мен зерттеушілер жедел инъекцияны «шекаралық қауіпсіздік мәселесі» деп атады және әсерді азайту стратегияларын жариялауды жалғастыруда.
Неліктен LLM жасырын немесе қауіпті кодты жасай алады?
Үлгі мінез-құлық, жаттығу деректері және нұсқаулық контексті
LLM-лер контекст пен нұсқауларға сәйкес ақылға қонымды жалғастыруды жасауға үйретілген. Мәтінмәнде қарсылас белгілер болса немесе пайдаланушы модельден қуатты әрекеттерді орындайтын кодты сұраса, үлгі нәзік немесе белсенді әрекетті қамтитын кодты шығара алады.
LLMs сенімді, бірақ қауіпті код шығарады
LLM деструктивті жанама әсерлер болған кезде қауіпсіздік үшін емес, еркіндік пен пайдалылық үшін оңтайландырылған. Олар қысқаша мазмұнды қуана жасайды rm -rf /path/to/dir or shutil.rmtree() «тазалау» сұралғанда қоңырау шалыңыз — және олардың жауаптары жиі сенімді түрде берілгендіктен, пайдаланушылар жеткіліксіз тексерумен көшіріп, іске қоса алады. Бұл «сенімді галлюцинация» мәселесі, сондықтан зиянсыз болып көрінетін сұраулар қауіпті болады.
Күрделі жұмыс процестерін автоматтандыру
Қауіпті субъектілер енді LLM қоңырауларын тізбектеу арқылы кодты жасыруды автоматтандыруда: бір модель пайдалы жүктемені жасайды, екіншісі қолтаңбаны анықтауды болдырмау үшін оны қайта өңдейді және т.б. Өнеркәсіптік қауіптер туралы есептер мен 2025 жылғы жеткізушілер талдаулары бұл «AI көмегімен жасырынуды» жаңадан пайда болған әдіс ретінде құжаттайды.
Модель шығыстарының ішіндегі жасырын кодты қалай анықтауға болады?
Жылдам триажды тексеру тізімі
- Көрінбейтін/ерекше Юникодты іздеңіз (нөлдік біріктіргіштер, нөлдік кеңістіктер, байт ретінің белгілері, ASCII емес гомоглифтер).
- Статикалық талдауды / AST талдауын іске қосыңыз қуатты API интерфейстерін пайдалануды анықтау үшін (
eval,exec,subprocess,os.system, шағылысатын қоңыраулар). - Кодталған пайдалы жүктемелерді іздеңіз (base64, он алтылық блобтар, қайталанатын ұзын жолдар немесе қысылған мазмұн).
- Түсірілім үлгілерін тексеріңіз (API атауларын құрайтын жолды біріктіру, таңба арифметикасы,
chr()тізбектер). - Семантикалық талдауды қолданыңыз кодтың шын мәнінде енгізу/шығару, желілік немесе файлдық жүйе мутациясын орындайтынын растау үшін.
Статикалық үлгіні анықтау (жылдам, бірінші жол)
- Тіл білетін талдау және линтинг. Жасалған нәтижені прозаға қарсы код блоктарына дереу талдау. Пішімдеушілер мен линтерлерді іске қосыңыз (Black/Prettier, pylint, eslint). Lint ережелері пайдалануды белгілеуі керек
eval,exec,rm -rf, өңделмеген қосалқы процесс шақырулары немесе пәрмендерді динамикалық түрде құрастыратын қабық құбырлары. - Токендік және жолдық үлгілі сканерлер. Тәуекелдері жоғары белгілер мен үлгілерді іздеңіз:
sudo, сияқты абсолютті жолдар/home/,C:\,rm -rf,shutil.rmtree,subprocess.Popen, кірістірілген base64 блоктары, ұзақ түсіндірілмейтін жолдар және аудармашы мәтінмәтін ауыстыратын шебангтар. - Құпия сканерлеу және шығу тексерулері. Қатты кодталған тіркелгі деректерін, сенімсіз тізбелерді көрсететін URL мекенжайларын немесе ерікті көздерден бумаларды динамикалық түрде тартатын кодты анықтаңыз.
Статикалық талдау көптеген айқын мәселелерді тез шешеді және CI қақпасының бөлігі ретінде іске қосу арзан.
Семантикалық және контекстік анықтау (тереңірек)
- Мақсатты талдау. Жасалған кодтың мақсатын жіктеу үшін қосымша үлгіні немесе ереже механизмін пайдаланыңыз: ол «оқу», «жазу», «жою», «желі», «орнату» ма? Жою/жазу ретінде санатталған кез келген нәрсе эскалацияны тудыруы керек.
- Деректер ағынын талдау. Тексерілмеген немесе пайдаланушы қамтамасыз еткен жолдардың деструктивті API интерфейстеріне жете алатынын анықтау үшін кодты талдаңыз. Мысалы, LLM шығысынан немесе қашықтағы файлдан алынған айнымалы кейінірек қабық пәрменіне біріктірілсе, оны белгілеңіз.
- Шығу корреляциясы. Әңгімелесудің, жүйе шақыруының және контекстік беттердің толық жазбасын сақтаңыз. Күдікті шығыстар белгілі бір сыртқы құжатпен немесе плагин шақыруымен байланысты болса, бұл жылдам енгізуді немесе бүлінген контекстті көрсетуі мүмкін.
Динамикалық және мінез-құлықты анықтау (ең сенімді)
- Мониторинг арқылы құмсалғыштың орындалуы. Жасалған кодты желісіз, хост қондырғыларысыз және жүйені сүзгілеусіз (seccomp) қатаң шектелген эфемерлі ортада орындаңыз. Файлдық жүйенің белсенділігін, әрекетті желілік қоңырауларды, уылдырық шығару процесін және әдеттен тыс енгізу/шығаруды бақылаңыз.
- Канария сынағы. Нақты деректерде іске қоспас бұрын, кодты құрамында sentinel файлдары бар синтетикалық каталогтарға қарсы іске қосыңыз; жоюды немесе қайта жазуды қадағалаңыз.
- Мінез-құлық эвристикасы. Негізгі каталогтарды аралайтын циклдарды, тереңдік тексерусіз рекурсивті операцияларды немесе көптеген файлдарды зақымдауы мүмкін үлгілердің атын өзгертуді іздеңіз (мысалы, бір файл атауын қайталап жазу).
Динамикалық талдау тек орындалу уақытында түсініксіз, кешіктірілген немесе іске қосылған пайдалы жүктемелерді анықтаудың жалғыз жолы болып табылады.
LLM шығыстарын орындамас бұрын жасырын кодты қалай жою немесе бейтараптандыру керек?
Қорғанысты жою және семантиканы өзгерту
«Жасырын кодты жою» кезінде екі мақсат бар:
- Санитариялау — анық кодсыз немесе күдікті мазмұнды алып тастаңыз (көрінбейтін Юникод, нөлдік ен таңбалар, қосымша base64 пайдалы жүктемелері). Бұл мақсатты, жақсы логиканы өзгертпеуі керек.
- Нейтрализация — сыртқы қызметтерді орындайтын немесе шақыратын кез келген нәрсе үшін, бұл қоңырауларды өшіріңіз немесе тексерілмейінше, оларды өшіріңіз.
Әрқашан артықшылық бейтараптандыру + шолу соқыр жою: код бөліктерін ерікті түрде жою бұзылған немесе күтпеген әрекетті тудыруы мүмкін. Оның орнына, күдікті құрылымдарды қауіпсіз істен шығатын анық, журналға жазылған түтіктермен ауыстырыңыз (ерекшеліктерді көтеріңіз немесе қауіпсіз әдепкі мәндерді қайтарыңыз).
1-қадам — Жасалған кодты сенімсіз деректер ретінде қарастырыңыз
Кодты ешқашан ChatGPT (немесе кез келген LLM) арқылы жою және қатайту құбыры арқылы өткізбей тікелей орындамаңыз. Бұл конвейер саясатпен орындалуы және CI/CD-де автоматтандырылуы керек.
2-қадам — Кодты шығарып алыңыз және канонизациялаңыз
- Мәтінді қалыпқа келтіріп, ендігі нөлдік таңбаларды алып тастаңыз: U+200B, U+200C, U+200D, U+FEFF және басқа нөлдік ен / пішімдеу код нүктелері сияқты жолақ таңбалары. Тексеру үшін жойылғандарды журналға жазыңыз. Бұл қадам көрнекі жасырындық үшін пайдаланылатын көптеген «жасырын» кодтауларды жояды.
- Барлық кодтық емес контекстті алып тастаңыз: әңгімені, жасырын пікірлерді және кез келген HTML/Markdown орауыштарын алып тастаңыз. Тіл пішімдеушілерін (Қара, Әдемі) пайдаланып кодты канондық пішінге түрлендіру, осылайша түсініксіз бос кеңістік немесе басқару таңбалары қалыпқа келтіріледі.
- Осы конструкциялармен кодты қабылдамаңыз немесе карантинге қойыңыз: динамикалық
eval, өңделмеген қосалқы процесс шақырулары (os.system,subprocess.Popen), кірістірілген base64 блоктары орындауға декодталған немесе ендірілген#!аудармашы контекстін өзгертуге әрекеттенетін директивалар. Мәтінді қалыпқа келтіріп, ендігі нөлдік таңбаларды алып тастаңыз
U+200B, U+200C, U+200D, U+FEFF және басқа нөлдік ен/пішімдеу код нүктелері сияқты жолақ таңбалары. Тексеру үшін жойылғандарды журналға жазыңыз. Бұл қадам визуалды жасырындық үшін пайдаланылатын көптеген «жасырын» кодтауларды жояды.
3-қадам — AST талдау және қауіпті түйіндерді ауыстыру
AST ішіне талданған кодпен динамикалық орындауды шақыратын түйіндерді табыңыз (мысалы, exec) немесе функция атауларын бағдарламалық түрде құрастырады. Оларды «қауіпті динамикалық әрекет бұғатталған» деп көрсететін басқарылатын ерекшелік тудыратын қауіпсіз түтіктермен ауыстырыңыз. Тексеру үшін AST қолдайтын көздің тазартылған көшірмесін жасаңыз. Қауіпсіздік үлгісін тексеруді іске қосыңыз (ортаңыз үшін реттелетін semgrep ережелері). Сіріңкелер табылған жерлерде оларды белгілеп, залалсыздандырыңыз.
4-қадам — Статикалық қатайту және қайта жазу
- Автоматтандырылған қайта жазу: қауіпті қоңырауларды қауіпсіз орауыштармен алмастыратын автоматтандырылған дезинфекциялау құралы арқылы кодты өткізіңіз — мысалы, ауыстыру
os.system()/subprocessкүту уақытын және желі блоктарын орындайтын бекітілген құмсалғышты орындаушымен. - Қабілеттік қақпасы: API кілттерін, таңбалауыштарды немесе артықшылықты соңғы нүктелерге қоңырауларды өзгерту немесе жою; оларды жергілікті тестілеу үшін жалған адаптерлермен ауыстырыңыз. Құпиялардың немесе URL мекенжайларының кездейсоқ қосылуын болдырмаңыз.
- Тәуелділік қайта жазылады: блок динамикалық
pip/npmкод арқылы жасалған орнатулар. Тәуелділіктерді тізілім арқылы жариялауды және бекітуді талап етіңіз.
5-қадам — Агрессивті құм жәшігінде іске қосыңыз
- Эфемерлі контейнерлер / microVMs: желі жоқ, хост тіркелгі деректеріне қатынасы жоқ және файлдық жүйеге шектеулі қатынасы жоқ контейнерде/VM ішінде кодты орындаңыз. gVisor, Firecracker немесе арнайы эфемерлік орындау қызметтері сияқты технологиялар қолайлы. Код енгізу/шығаруға кіруі керек болса, саясатты жүзеге асыратын проксиді пайдаланыңыз.
- Жүйелік қоңырау сүзгілері және сек: рұқсат етілген жүйені шектеңіз. Уақытша каталогтан тыс файлдарды жазуды блоктау керек.
- Ресурс/уақыт шектеулері: тіпті логикалық бомбалар шексіз жұмыс істей алмайтындай етіп CPU/жад/уақыт шектеулерін орнатыңыз.
Құм жәшігін орындау және бақылау жиі статикалық тексерулер өткізіп жіберетін пайдалы жүктемелерді анықтайды. Өнеркәсіптік нұсқаулық және соңғы ақ қағаздар құмсалғышты негізгі жұмсарту ретінде ұсынады.
Сіздің құбырыңызда қандай автоматтандырылған құралдар мен ережелер болуы керек?
Ұсынылатын құралдар тізбегі компоненттері
- Юникодтық санитарлық модуль (арнайы немесе бар кітапханалар). Қалыпты таңбаларды тіркеу керек.
- Талдаушы + АСТ анализаторы әрбір мақсатты тіл үшін (Python
ast,typed-ast, JavaScript талдаушылары, Java талдаушылары). - Статикалық анализаторлар / SAST: Bandit (Python), Semgrep (көп тілге арналған, теңшелетін), қауіпсіздік плагиндері бар ESLint.
- Энтропия және декодер эвристикасы: base64/hex/gzip анықтау және тексеруге бағыттау.
- Құм жәшігінің орындалу уақыты: қатаң seccomp/AppArmor профилі бар минималды контейнер немесе өшірілген жүйе қоңыраулары бар тіл деңгейіндегі аудармашы.
- Саясатты орындаушы: рұқсат етілген модульдерді, рұқсат етілген соңғы нүктелерді және қауіпсіз API орауыштарын анықтайтын құрамдас.
- Аудит жолдары: бастапқы шығысты, тазартылған шығысты, айырмашылықтарды және шешімдерді жазатын өзгермейтін журналдар.
semgrep үлгілерінің мысалы (концептуалды)
Қауіпті функцияларды пайдалануды белгілейтін қысқа, консервативті ережелерді пайдаланыңыз. Мысалы:
- Жалау
eval,exec,Functionконструктор (JS), динамикалық импорттаулар немесе жолдан құрастырылған API атаулары. - Рұқсат етілген тізімнен тыс желілік қоңырауларды белгілеу (мысалы,
requests.getбелгісіз хосттарға). - Сезімтал жолдарға жалауша жазады (
/etc, жүйелік қалталар) немесе процестердің пайда болуы.
(Оларды әр ұйым үшін конфигурация элементтері ретінде сақтаңыз және уақыт өте келе оларды қатайтыңыз.)
Практикалық тазарту үзінділері қандай (қауіпсіз мысалдар)?
Төменде сіз бейімдеуге болатын қауіпті емес, қорғаныс мысалдары берілген. Олар дезинфекциялау және анықтау үзінділер — нұсқауларды пайдаланбаңыз.
Мысал: ендігі нөлдік таңбалар (Python, қорғаныс)
import re
ZERO_WIDTH_RE = re.compile(r'')
def strip_zero_width(s: str) -> str:
cleaned = ZERO_WIDTH_RE.sub('', s)
return cleaned
Бұл шабуылдаушылар басқаша көрінетін мәтіндегі кодты жасыру үшін жиі қолданатын таңбаларды жояды. Әрқашан жойылғандарды тіркеу және жоюды аудит ізінің бөлігі ретінде қарастырыңыз.
Мысал: AST талдау және тексеру (Python, тұжырымдамалық)
import ast
def has_dynamic_exec(source: str) -> bool:
tree = ast.parse(source)
for node in ast.walk(tree):
if isinstance(node, ast.Call):
if getattr(node.func, 'id', '') in ('eval', 'exec',):
return True
if isinstance(node, ast.Attribute):
if getattr(node, 'attr', '') in ('popen', 'system'):
return True
return False
If has_dynamic_exec True қайтарады, кодты іске қоспаңыз; оның орнына динамикалық түйінді қауіпсіз түтікпен ауыстырыңыз және тексеруді қажет етеді.
Ескерту: бұл мысалдар қорғаныс сипатында. Жүйеден журналды, аудитті немесе адам тексеруін жоймаңыз.
Қорытынды ойлар: LLM шығысын әрқашан сенімсіз код ретінде қарастырыңыз
LM – қуатты өнімділік құралдары — олар талғампаз кодты жасай алады, жобаларды тездетеді және күнделікті жұмысты автоматтандырады. Бірақ олар орындалу кезінде қауіпсіздік ережелері өзгереді: үлгі шығыстары сенімсіз артефактілер ретінде қарастырылуы керек. Соңғы 18-30 айдағы жедел инъекциялар, бэкдорлық зерттеулер және нақты әлемде осалдықты ашудың үйлесімі нақты нүктені көрсетеді: тәуекел беті өсті және дами береді.
Талдау, статикалық талдау, құмсалғыш динамикалық тестілеу, басқару және үздіксіз қызыл топтастыруды біріктіретін практикалық қорғаныстар көптеген шабуылдарды тоқтатады. Бірақ командалар ұйымдық бақылауға да инвестиция салуы керек: ең аз артықшылық, шығу тегі және LLM нәтижелерін тексеру қажет деп есептейтін мәдениет. Өнеркәсіп осы үлгілерді жеңілдету үшін құралдар мен құрылымдарды жасауда; бұл ретте жоғарыдағы бақылау парағын қабылдау жасырын пайдалы жүктің сырғып кету мүмкіндігін азайтады.
Әзірлеушілер соңғы LLM API интерфейсіне қол жеткізе алады, мысалы Claude Sonnet 4.5 API және Gemini 3 Pro алдын ала қарау CometAPI арқылы және т.б. соңғы үлгі нұсқасы әрқашан ресми сайтпен жаңартылып отырады. Бастау үшін үлгінің мүмкіндіктерін зерттеңіз Ойын алаңы және кеңесіңіз API нұсқаулығы егжей-тегжейлі нұсқаулар үшін. Қол жеткізу алдында CometAPI жүйесіне кіріп, API кілтін алғаныңызға көз жеткізіңіз. CometAPI біріктіруге көмектесу үшін ресми бағадан әлдеқайда төмен баға ұсыныңыз.
Баруға дайынсыз ба?→ CometAPI-ге бүгін тіркеліңіз !
Егер сіз AI туралы көбірек кеңестер, нұсқаулықтар және жаңалықтар білгіңіз келсе, бізге жазылыңыз VK, X және Арасындағы айырмашылық!


