Табыстар:
- AI шығысын үш деңгейде тексеру мүмкіндігі: дәлдік, қауіпсіздік және бастапқы/лицензия
- Қауіпсіз қалыптармен және құралдармен инъекция, галлюцинация пакеттері және көмілген құпиялар сияқты тәуекелдерді жабу мүмкіндігі
- Құзыретті инженердің бекітуіне қауіпсіздік үшін маңызды кодты ұсыну және жауапкершіліктің берілмейтінін түсіну мүмкіндігі
AI кодын жасау оңай; Оған сену қымбат. Бұл бөлімнің бірден-бір мақсаты – біз алдыңғы бөлімдердің барлығында қайталаған «тексеру» принципін жүйелі инженерлік пәнге айналдыру. Өйткені AI шығарған код, бір қарағанда дұрыс болып көрінсе де, үш бөлек қауіп төндіреді: жұмыс істемейтін/дұрыс емес (галлюцинация), қауіпсіз емес (осалдық) және заңдық/лицензиялық тәуекелдер. Осы үшеуін білу және олардың әрқайсысына есік орнату сізді кәсіби етеді.
Бұл жерде біз «тексеруді» үш деңгейде қарастырамыз: дұрыстық (код шынымен жұмыс істей ме?), қауіпсіздік (ол зиянды енгізуге төтеп бере ме?) және шығу тегі/лицензия (бұл кодты қолдануға құқығым бар ма?). Әрбір қабаттың өз басқару құралдары бар және олардың ешқайсысын «AI осылай айтты» деп айналып өтуге болмайды.
Тәуекелдің үш қабаты
1. Дәлдік қаупі (галлюцинация). Модель жоқ функцияны шақыруы, API қатесін пайдалануы, шеткі жағдайды үнсіз айналып өтуі мүмкін. Код «ақылға қонымды» болып көрінеді, бірақ қате. Антидот: жинақтау, тестілеу, статикалық талдау және визуалды тексеру.
2. Қауіпсіздік тәуекелі. AI оқыту деректеріндегі қауіпті үлгілерді қайталай алады: SQL инъекциясына осал сұрау, аутентификацияланбаған пайдаланушы енгізуі, әлсіз шифрлау, қауіпті сериядан шығару, ашық қайта бағыттау. Код жұмыс істейді, бірақ шабуылға осал. Антидот: қауіпсіздікке бағытталған шолу, автоматтандырылған сканерлер (SAST) және белгілі қауіпсіз үлгілерді енгізу.
3. Бастапқы/лицензия тәуекелі. Жасанды интеллект авторлық құқықпен қорғалған немесе шектеуші лицензияланған кодқа ұқсас нәтиже шығаруы мүмкін немесе ол сәйкес емес лицензияланған тәуелділікті ұсынуы мүмкін. Антидот: тәуелділік пен лицензияны тексеру, түпнұсқалықты тексеру, корпоративтік саясат.
Абайлаңыз: Осы үш тәуекелдің ішіндегі ең жасырынсы қауіпсіздік; себебі код сынақтан өтіп, өндірісте бірқалыпты жұмыс істей алады және осалдық тек шабуылдаушы оны тапқан кезде ашылады. «Жұмыс» «қауіпсіз» дегенмен бірдей емес.
Қадамдық: Қабатты аутентификация қақпасы
- Түсініп оқы. Кодты қабылдамас бұрын оны шынымен түсініңіз; Түсінбейтін кодты біріктірмеңіз. Егер сіз «неге жұмыс істейтінін» түсіндіре алмасаңыз, ол әлі расталмаған.
- Оның бар екенін тексеріңіз. Пайдаланылған әрбір функцияның, API және пакеттің шынымен бар екенін және дұрыс пайдаланылғанын растаңыз (галлюцинация қақпасы).
- Автоматтандырылған құралдарды іске қосыңыз. Компилятор, линтер (стиль/қате сканері), тип тексерушісі, бірлік сынақтары және мүмкін болса SAST (статикалық қолданба қауіпсіздігін сынау — осалдықтарға бастапқы кодты сканерлейтін құрал).
- Қауіпсіздік тұрғысынан қараңыз. Кіріс расталды ма? Сұрау параметрленді ме? Құпия жерленген бе? Авторизациялық бақылау бар ма?
- Дереккөзді және лицензияны тексеріңіз. Жаңа тәуелділіктер лицензияланған ба? Шығару белгілі кодтық базаға тым ұқсас болып көріне ме?
- Қауіпсіздік үшін өте маңызды болса, сарапшының рұқсатын сұраңыз. Аутентификация, төлем, криптография, қол жеткізуді бақылау сияқты салаларда құзыретті инженердің тәуелсіз сараптамасы міндетті болып табылады.
Үш шағын корпус
1-жағдай – SQL инъекциясы тексеру қақпасында ұсталды. Пайдаланушы енгізуін іздеудің соңғы нүктесі үшін тікелей SQL сұрауына біріктіретін AI жасаған код ("... WHERE атауы = '" + q + "'"). Код жұмыс істеп, сынақтан өтті. Қауіпсіздікке бағытталған тексеру және SAST сканерлеу мұны анықтады; Ол параметрленген сұрауға (дайындалған мәлімдеме) түрлендірілді. Егер ол ұсталмаған болса, бұл деректердің ағып кетуіне қатысты классикалық осалдық болар еді.
2-жағдай – Галлюцинация пакеті. AI тапсырма үшін жоқ npm бумасын (жылдам қауіпсіз талдау) ұсынды. Әзірлеуші оны орнатуға тырысқанда, пакет табылмады. Сорақысы: кейбір жағдайларда шабуылдаушылар мұндай «елес» бума атауларын нақты, зиянды пакеттермен толтыра алады (тәуелділік шатасуы). Сабақ: әрбір ұсынылған буманы ресми тізіліммен және жүктеп алу/техникалық қызмет көрсету тарихымен салыстырыңыз.
3-жағдай — Лицензияның сәйкессіздігі. AI ұсынған тамаша серіктес кітапханада мекеменің өнім лицензиясымен үйлеспейтін күшті копилефт лицензиясы болды. Тәуелділік лицензиясын сканерлеу бұл туралы хабарлады; Команда лицензияны қолайлы баламамен ауыстырды. Тексерусіз өнімді таратуда заңды ауыртпалық пайда болады.
Көшірілетін төрт үлгі
Қабылдау алдындағы өзін-өзі тексеру:
Келесі AI жасалған кодты қабылдамас бұрын мынаны тексеріңіз: 1) Ол пайдаланатын әрбір функция/API/пакет шынымен бар ма? Күдіктілерді белгілеңіз.2) Қандай да бір расталмаған енгізу, SQL/пәрмендерді біріктіру, жасырын құпия, әлсіз крипто бар ма?3) Адрессіз қателер/жиек жағдайлары қандай? Әр табылғанды «белгілі/ ықтимал» деп белгілеп, түзетулерді ұсыныңыз.{{code}}
Қауіпсіздікке бағытталған шолу:
Бұл кодты қауіпсіздік көзімен тексеріңіз. Жалпы OWASP стиліндегі осалдықтарды іздеңіз: инъекция, бұзылған аутентификация/авторизация, құпия деректерді ашу, қауіпті сериядан шығару, аутентификацияланбаған қайта бағыттау. Әрбір қорытынды үшін: тәуекел, пайдалану сценарийі, қалпына келтіру. Бұл алдын ала тексеру; маңызды қорытындыларды адам қауіпсіздігіне шолуға сілтеме жасаңыз.{{code}}
Тәуелділік пен лицензияны тексеру:
Осы кодпен қосылған/ұсынылған тәуелділіктерді тізімдеңіз. Әрқайсысы үшін: пакет шын мәнінде бар ма, ол сақталған ба, оның әдеттегі лицензиясы қандай болуы керек (ТЕКСЕРУ КЕРЕК) және ол жоба үшін шынымен қажет пе немесе оны бар құралмен жасауға бола ма?{{код немесе тәуелділік тізімі}}
Қауіпсіз қалыпқа салу (өндірісте):
{{task}} үшін код жазыңыз. МІНДЕТТІ қауіпсіздік ережелері:- Барлық сыртқы кірістерді тексеру/санитизациялау.- Дерекқорға кіруде параметрленген сұрауды ғана пайдаланыңыз.- Құпияларды кодқа ендірмеңіз; ортаның айнымалысы/құпия менеджерін қабылдаңыз - Қателерді жұтпаңыз; Оны мағыналы түрде қарастырыңыз. 3 тармақта кодтың осы ережелерге қалай сәйкес келетінін түсіндіріңіз.
Әлсіз шақыру / Күшті шақыру
Әлсіз: "Пайдаланушы аты бойынша іздейтін сұрауды жазыңыз." (Инъекцияға осал код пайда болуы мүмкін.)
Күшті: "Пайдаланушы аты бойынша іздейтін функцияны жазыңыз. Ешқашан пайдаланушы енгізуін сұрауға жол ретінде біріктірмеңіз; параметрленген сұрауды (дайындалған мәлімдеме) пайдаланыңыз. Ұзындық пен таңба үшін енгізуді растаңыз. Код инъекцияға неліктен жабық екенін 2 сөйлеммен түсіндіріңіз."
Күшті нұсқа басынан бастап қауіпсіз үлгіні жүктейді; Осылайша, ол осалдықты кейінірек ұстаудың орнына, мүлде пайда болмауын қамтамасыз етеді. Дегенмен, жасалған кодты тексеру қақпалары арқылы өткізу өте маңызды.
Аутентификация қабаты
Құрал/әдіс
«AI айтты» жеткілікті ме?
дәлдік
Құрастыру, тестілеу, көзбен шолу
жоқ
API/пакет шындығы
Ресми құжат/жазбаны бақылау
жоқ
Қауіпсіздік
SAST, қауіпсіздік шолуы
жоқ
Лицензия/көз
Тәуелділік пен лицензияны тексеру
жоқ
Қауіпсіздік-критикалық логика
Сарапшы инженердің рұқсаты
Мүлдем жоқ
Жауапкершілікті ауыстыру мүмкін емес
AI құралы шығарған кодтан туындайтын қателер, осалдықтар немесе бұзушылықтар үшін жауапкершілік құрал провайдеріне емес, сол кодты жинайтын және тарататын топқа тиесілі. Бұл кәсіби және заңды факт: сіз қол қоясыз. Демек, «AI оны жасады» - бұл ақтау емес, қосымша сақтық үшін негіздеме. Әсіресе қауіпсіздік тұрғысынан маңызды жүйелерде AI нәтижесі ешбір жағдайда білікті инженердің қарауын және мақұлдауын алмастыра алмайды; Көбінесе AI инженерді жылдамдататын жоспарды ұсынады.
Кеңес: Командаңызда «AI жасаған кодты тексеру қақпасы» деп атайтын қысқаша бақылау тізімін жасаңыз (құрастыру + сынақ + қауіпсіздікті сканерлеу + визуалды тексеру). Бұл қақпа әдетке айналғаннан кейін жылдамдықты жоғалту минималды және тәуекелді азайту максималды болады.
Жалпы қателер
- «Жұмыстарды» «сейфті» шатастыру. Тестілеуден өткен код шабуылға осал болуы мүмкін.
- Пакетті/API оны растамай пайдалану. Галлюцинаторлық пакеттер бүлдіреді және қауіпсіздікке қауіп төндіреді.
- Автоматтандырылған құралдарды айналып өту. Linter, type checker және SAST адамдар жібермейтін нәрсені арзанға түсіреді.
- Лицензияны елемеу. Тиісті емес лицензияланған тәуелділік таратуға заңды ауыртпалық тудырады.
- Жауапкершілікті көлікке жүктеу. Топ өндірістегі кодқа жауап береді; «AI жасады» - ақтау емес.
Қысқаша айтқанда
AI шығысын қабылдау үш тексеру деңгейін талап етеді: дұрыстық (құрастыру, сынақ, визуалды тексеру), қауіпсіздік (SAST және қауіпсіздікке бағытталған шолу) және дереккөз/лицензия (тәуелділікті тексеру). Пайдаланылған әрбір пакет пен API шын мәнінде бар екенін растаңыз, қауіпсіз үлгілерді басынан бастап енгізіңіз және білікті инженердің бекітуіне қауіпсіздік үшін маңызды кодты жіберіңіз. «Жұмыстар» қауіпсіз дегенді білдірмейді, ал «жасанды AI» жауапкершілікті алып тастамайды. Тексеру қақпасы - жылдамдық емес, кәсіпқойлықтың бағасы.
Қолданбалы тапсырма
Жасанды интеллектке қауіпсіздікке сезімтал тапсырманы (мысалы, «пайдаланушы енгізуі арқылы дерекқорды іздейтін функция») бұл жолы қауіпсіз үлгі қолданбастан әдейі беріңіз. Кіріс кодын «алдын ала өзін-өзі тексеру» және «қауіпсіздікке бағытталған шолу» үлгілері арқылы өткізіңіз: инъекция, жасырын құпия, галлюцинацияланған пакет немесе аутентификацияланбаған енгізу бар ма? Содан кейін бірдей тапсырманы «қауіпсіз үлгі енгізу» үлгісімен қайта сұраңыз және екі нәтижені салыстырыңыз. Мүмкін болса, linter/SAST құралын іске қосыңыз және нәтижелерді AI өзін-өзі реттеуімен салыстырыңыз.
бақылау парағы
- [ ] Мен AI шығысын үш деңгейде тексеремін: дәлдік, қауіпсіздік және лицензия.
- [ ] Пайдаланылған әрбір функция, API және бума шынымен бар екенін растаймын.
- [ ] Мен компиляция, тестілеу, линтер және мүмкін болса, SAST құралдарын іске қосамын.
- [ ] Мен басынан бастап қауіпсіз үлгілерді (параметрленген сұрау, енгізуді тексеру, құпия басқару) енгіземін.
- [ ] Мен жаңа тәуелділіктердің лицензиялануын және талаптарын тексеремін.
- [ ] Мен құзыретті инженердің бекітуіне қауіпсіздік үшін маңызды кодты жіберіп жатырмын және жауапты екенімді түсінемін.