
ყალბი პროექტის რეპოში დამალული git hook დეველოპერის კომპიუტერზე კოდს უშვებდა
დეველოპერი ფრენკ უაილსი მიზანმიმართული თავდასხმის სამიზნე გახდა: ყალბი კლიენტის გამოგზავნილ რეპოში დამალული git hook მის კომპიუტერზე მავნე კოდს უშვებდა. უაილსმა ხრიკი დროულად შეამჩნია და უსაფრთხოების გუნდები გააფრთხილა.
ყალბი შეკვეთა და დამალული .git
დეველოპერული კომპანია REVSYS-ის დამფუძნებელმა და Django Steering Council-ის წევრმა ფრენკ უაილსმა (Frank Wiles) 2026 წლის 2 ოქტომბერს ბლოგზე საკუთარ თავზე მიზანმიმართული თავდასხმის ისტორია გამოაქვეყნა. ყველაფერი ჩვეულებრივი შეკვეთით დაიწყო: უცხო ადამიანმა დაუკავშირდა და დაინტერესდა, ხელმისაწვდომი იყო თუ არა მისი გუნდი Ed Tech სფეროში ვებაპლიკაციაზე სამუშაოდ. უაილსმა შეხვედრა შესთავაზა.
„კლიენტმა“ სთხოვა, შეხვედრამდე გაცნობოდა პროექტის აღწერას და ხელი მოეწერა NDA-ს, შემდეგ კი Dropbox-ის საქაღალდე გაუზიარა, სადაც Markdown ფაილები და ბუნდოვანი, მაგრამ დამაჯერებელი სპეციფიკაცია იდო. უაილსმა მაშინვე ვერ შეამჩნია, რომ იქ .git დირექტორიაც იმალებოდა.
„NDA ბრენჩი“ და post-checkout hook
როცა უაილსმა NDA ვერ იპოვა და ელფოსტით გამოგზავნა სთხოვა, პასუხი მიიღო: დოკუმენტი „NDA ბრენჩში“ ინახება და საკმარისია მასზე გადართვა, შევსება და შეხვედრამდე დაბრუნება. სწორედ მაშინ მიხვდა, რომ პროექტი რეალური არ იყო. .git/hooks საქაღალდეში მან სტანდარტული .example hook ფაილების გვერდით ერთი ნამდვილი post-checkout hook აღმოაჩინა.
ასეთ hook-ებს პრაქტიკაში თითქმის არავინ იყენებს, ამიტომ უაილსმა ის ფრთხილად გახსნა. hook Vercel-ის აპლიკაციას command-and-control არხად იყენებდა: ბრენჩის გადართვისას ჩამოტვირთავდა კონკრეტული ოპერაციული სისტემისთვის განკუთვნილ ბინარულ ფაილს, ხდიდა შესრულებადს, უშვებდა და შემდეგ თავად იშლებოდა. git post-checkout hook-ს ბრენჩის გადართვისას ავტომატურად ასრულებს, ამიტომ „NDA ბრენჩზე გადასვლის“ ჩვეულებრივი ინსტრუქციის შესრულება დეველოპერის კომპიუტერზე უცხო კოდის გაშვებას ნიშნავდა.
უაილსმა მაშინვე აცნობა Dropbox-ის და Vercel-ის უსაფრთხოების გუნდებს, რომ ანგარიშები მოეხსნათ, სანამ სხვა მსხვერპლს იპოვიდნენ. მისივე თქმით, თაღლითები უცნობი დეველოპერული კომპანიის მფლობელის სახელსაც იყენებდნენ. თავად უაილსი არ დაზარალებულა.
რატომ არის ეს საშიში დეველოპერებისთვის
hook-ები git-ის ჩვეულებრივი ნაწილია, მაგრამ ისინი დამატებითი დადასტურების გარეშე, ავტომატურად სრულდება. .git საქაღალდე კი ადვილად რჩება შეუმჩნეველი, რადგან ბევრი ინსტრუმენტი მას ფაილების სიაში არ აჩვენებს. საკმარისია უცხო ადამიანის გამოგზავნილ რეპოზიტორიაში ბრენჩის გადართვა, რომ მავნე კოდი დეველოპერის კომპიუტერზე აღმოჩნდეს. სამიზნე კი ღირებულია: GitHub-ის ანგარიშები, SSH გასაღებები, API ტოკენები და კლიენტების სისტემებზე წვდომა.
უაილსი კოლეგებს სიფხიზლისკენ მოუწოდებს: უცხო „იდეალურ შეკვეთას“, რომელიც რეპოზიტორიასთან კონკრეტული ნაბიჯების გადადგმას მოითხოვს, ეჭვით უნდა მოეკიდოს, ხოლო კოდის გაშვებამდე hook ფაილები შეამოწმოს და იზოლირებული გარემო გამოიყენოს.
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.