
ԼԼՄ-ի գեներացրած կոդը՝ որպես անվստահելի build արտեֆակտ
dev.to-ում հրապարակված նյութը պնդում է, որ մոդելի ելքը չպետք է ժառանգի անսահմանափակ հասանելիություն աշխատանքային կայանին․ պահպանեք ծագումը, դասակարգեք հնարավորությունները և մեկուսացրեք գործարկելուց առաջ։
ԱԲ պատասխանից «թաքնված կոդը» հեռացնելը թվում է տեքստի մաքրում։ dev.to-ում հրապարակված նյութը, որի բնօրինակը cometapi.com-ում է, դա դիտարկում է որպես կատարման անվտանգության խնդիր․ նախ պարզել, թե ինչ կարող է անել արտեֆակտը, ապա՝ որտեղից են եկել նրա հրահանգները, և միայն դրանից հետո սահմանափակել հնարավորությունները։
Դեպքը, որ ընկած է կանոնի հիմքում
Նյութը հղում է համայնքային հաղորդումներին՝ մոտ 800 ԳԲ ջնջված ֆայլերի, այդ թվում՝ ամբողջությամբ Cursor AI հավելվածի մասին, այն բանից հետո, երբ մշակողը Cursor IDE-ում գործարկել է Gemini 3-ի օգնությամբ գեներացված կոդ։ Հեղինակը նշում է, որ սա հաղորդված դեպք է, ոչ թե հաստատված դատաբժշկական զեկույց, և գեներացված մաքրող կոդը չպետք է ժառանգի անսահմանափակ հասանելիություն աշխատանքային կայանին։
Դարպաս գեներացիայի և գործարկման միջև
«Թաքնված կոդը» ընդգրկում է մի քանի խնդիր․ անուղղակի prompt injection վեբ էջերից, PDF-ներից կամ հավելվածների պատասխաններից. վնասակար JavaScript դիտարկիչում. թաքցված բովանդակություն, օրինակ զրոյական լայնության սիմվոլներ կամ base64 բեռեր։ Վտանգավոր վարքագիծը կարող է պատահական լինել․ պանակը «մաքրելու» խնդրանքը կարող է տալ rm -rf կամ shutil.rmtree՝ առանց հարձակվողի։
Առաջին հերթին ծագումն է․ պահեք բնօրինակ պատասխանը, զրույցը, համակարգային prompt-ը, հայթայթված փաստաթղթերն ու հավելվածների արդյունքները, իսկ արտահանված կոդը՝ առանձին, յուրաքանչյուր ձևափոխության և հաստատման որոշման հետ։ Black-ով կամ Prettier-ով ձևաչափումը կարգուկանոն է, ոչ թե անվտանգության ստուգում. U+200B, U+200C, U+200D և U+FEFF ուշադրության կարիք ունեն, բայց հեռացումը փոխում է տողերը։
Հնարավորությունները դասակարգվում են մինչև հաստատումը․ վերլուծել աղբյուրը, գործարկել լինթերներ և անվտանգության կանոններ։ Ազդակներն են՝ sudo, rm -rf, shutil.rmtree, subprocess.Popen, os.system, eval, exec և անսպասելի բացարձակ ուղիներ։ Տողերի ջնջումը գուշակելու փոխարեն հեղինակը արգելափակում է հնարավորությունները․ AST-ի վրա հիմնված վերաշարադրում, subprocess-ի ժամանակային սահմաններ, mock ադապտերներ, արգելափակված pip և npm տեղադրումներ և իրական API բանալիների բացակայություն։
Մեկուսացված միջավայր, գործիքներ, աուդիտ
Թեստային միջավայրը ցանցից, հոսթի հավատարմագրերից և միացված սկավառակներից զուրկ ժամանակավոր կոնտեյներ կամ microVM է — տարբերակներն են gVisor-ը և Firecracker-ը — seccomp-ով և ռեսուրսների սահմաններով։ Գործիքների հավաքածուն Python-ի ast մոդուլին ավելացնում է Bandit, Semgrep և ESLint-ի հավելումներ։
Երկու փոքր ստուգում ցույց են տալիս սահմանները։ U+200B, U+200C, U+200D և U+FEFF ի վրա ուղղված regex-ը դրանք նշում է աուդիտի համար, մինչդեռ լայնորեն պատճենվող re.compile(r'') նախշը համընկնում է դատարկ տողի հետ և ոչինչ չի հեռացնում։ AST-ի շրջանցումը բռնում է ուղիղ eval և exec կանչերը, ինչպես նաև popen ու system ատրիբուտները, սակայն այլանուններն ու տողերից կառուցված անունները խուսափում են դրանից։ Սահմանը պարզ է․ մոդելի ելքը չի լիազորում սեփական գործարկումը։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։