GitHub անվտանգության նախազգուշացում. AI գործիքների արտահոսք և մատակարարման շղթայի հարձակումներ

Ամենադիտվածներ

GitHub

Ծրագրային ապահովման անվտանգության ոլորտում լարված շաբաթ է, քանի որ GitHub-ի հիմնական պահոցները հայտնվել են ինչպես պատահական արտահոսքերի, այնպես էլ բարդ հարձակումների թիրախում։ Ապրիլի 2-ի դրությամբ մշակողների համայնքը պայքարում է Claude Code-ի ավելի քան 500,000 տող ելակետային կոդի բացահայտման և Axios JavaScript գրադարանի լուրջ վտանգման հետևանքների դեմ։

Claude Code-ի արտահոսքը տեղի է ունեցել Anthropic ընկերության կողմից npm-ում հրապարակման ժամանակ թույլ տրված մարդկային սխալի պատճառով՝ ելակետային կոդի քարտեզի ֆայլի (source map) պատահական հրապարակման միջոցով։ Սա բացահայտել է ընկերության ներքին ճարտարապետությունը, թույլտվությունների մոդելները և չհրապարակված գործառույթները։ Թեև ընկերությունը փորձել է հեռացնել կոդի պատճենները GitHub-ից, տեղեկատվության արագ տարածումը դժվարացրել է իրավիճակի վերահսկումը։

Միաժամանակ, Axios գրադարանի դեմ իրականացված հարձակումը ցույց է տվել հյուսիսկորեական UNC1069 խմբավորման կողմից օգտագործվող սոցիալական ինժեներիայի վտանգավորությունը։ Հարձակվողները խաբեությամբ համոզել են գրադարանի պատասխանատուին տեղադրել վնասակար ծրագիր, որը թույլ է տվել վարակված տարբերակներ տարածել։ Այս միջադեպերը ցույց են տալիս, որ սոցիալական ինժեներիան և ավտոմատացված գործընթացների թուլությունները դառնում են հիմնական թիրախներ, ինչը ստիպում է կազմակերպություններին վերանայել անվտանգության իրենց մոտեցումները՝ անցնելով ավելի հուսալի և անփոփոխ թողարկման գործընթացների։

|
Խմբագրական ներդրում:Ազատ TV Խմբագրություն
|
Հրատարակիչ:Ազատ TV

Ամենաթարմ

}// Handle language redirects const langLink = e.target.closest(".azat-switcher-item a"); if (langLink) { e.preventDefault(); e.stopPropagation();const origin = window.location.origin; const path = window.location.pathname; const lang = langLink.getAttribute("data-lang");// Determine current active language of the page: let currentLang = "am"; if (path.startsWith("/en/") || path === "/en") { currentLang = "en"; } else if (path.startsWith("/ru/") || path === "/ru") { currentLang = "ru"; }let newPath = path;if (currentLang === "en" && lang === "ru") { newPath = path.replace("/en/", "/ru/"); } else if (currentLang === "ru" && lang === "en") { newPath = path.replace("/ru/", "/en/"); } else if (currentLang === "en" && lang === "am") { newPath = path.replace("/en/", "/"); } else if (currentLang === "ru" && lang === "am") { newPath = path.replace("/ru/", "/"); } else if (currentLang === "am" && lang === "en") { newPath = "/en" + path; } else if (currentLang === "am" && lang === "ru") { newPath = "/ru" + path; }window.location.href = origin + newPath; } }); })();