
Apiiro-მ GitHub-ზე Claude Code-ის ნებართვების ფაილებში 2 539 სეკრეტი იპოვა
Apiiro-ს კვლევის მიხედვით, 1 994 საჯარო GitHub-ის რეპოზიტორში 2 539 რეალური სეკრეტი აღმოჩნდა, ხშირად .claude/settings.local.json ფაილებში, რომლებიც დეველოპერების მიერ ბრძანებების დამტკიცებისას იქმნება.
Apiiro-ს მკვლევარებმა 1 994 საჯარო GitHub-ის რეპოზიტორში 2 539 რეალური სეკრეტი იპოვეს, ბევრი მათგანი .claude/settings.local.json ფაილშია. ეს Claude Code-ის ნებართვების ფაილებია და იქმნება, როცა მომხმარებელი სეკრეტის შემცველი ბრძანებისთვის ირჩევს „Yes, and don't ask again“-ს. Apiiro-ს თქმით, დაზარალებულია 63 ორგანიზაცია, ერთმა კი დაადასტურა, რომ მისი გასაღები აქტიური იყო.
როგორ ხვდებიან სეკრეტები ფაილებში
Claude Code shell-ბრძანებების გაშვებამდე მომხმარებელს ეკითხება. „Yes, and don't ask again“-ის არჩევისას ის ზუსტად დამტკიცებულ ბრძანებას ინახავს .claude/settings.local.json-ში პროექტის საქაღალდეში. ბრძანება შეიძლება შეიცავდეს მონაცემთა ბაზის პაროლს, ღრუბლოვანი სერვისის გასაღებს, API ტოკენს ან ლოკალური კონფიგურაციიდან კოპირებულ SSH-ის შესვლის მონაცემებს, ამიტომ სეკრეტი ფაილში იწერება. Claude Code ფაილს დეველოპერის გლობალურ git ignore სიაში ამატებს, მაგრამ არა რეპოზიტორის .gitignore-ში, ამიტომ ის მოგვიანებით commit-ში შეიძლება მოხვდეს. 1 105 რეპოზიტორიდან, რომლებშიც Apiiro-მ რეალურ სეკრეტს მიაკვლია, 539-ში ფაილი შეცვალა Claude-ის თანაავტორობით შექმნილმა commit-მა.
მასშტაბი და ექსპოზიცია
GitHub-ზე 103 617 რეპოზიტორში .claude/settings.local.json-ის 104 185 საჯარო ასლი იყო. Apiiro-მ ამ ფაილებიდან 1 122-ში რეალური სეკრეტი იპოვა, სულ 1 379 განსხვავებული. მათგან 379 მონაცემთა ბაზის პაროლი იყო, 122 კი Supabase-ის service-role გასაღები. Apiiro-მ კიდევ 1 160 სეკრეტი იპოვა git-ის ისტორიაში, გაზიარებულ პარამეტრებში და აგენტის ჩატის ტრანსკრიპტებში. სულ Apiiro-მ 1 994 რეპოზიტორში 2 539 განსხვავებული რეალური სეკრეტი დათვალა. დაზარალებულ შემთხვევებში შედის მონაცემთა ბაზის მომწოდებლის ღრუბლოვანი API გასაღები, Azure Postgres-ის საწარმოო პაროლი, Square-ის საწარმოო ტოკენი, OpenAI-ს ფორმატის API გასაღები, npm ტოკენი და სამედიცინო ჩანაწერების ბაზის მფლობელის პაროლი. Apiiro-მ allowlist-ებში SSH-ის 43 წვდომის მონაცემიც იპოვა, მათ შორის sshpass ბრძანებებში root პაროლები. ზოგადმა სკანერებმა ბევრი სეკრეტი ვერ იპოვეს: gitleaks-მა 1 122 ფაილიდან 564 დააფიქსირა, TruffleHog-მა 643, 215 კი არც ერთმა არ დააფიქსირა. ბევრი პაროლი იყო ბრძანებებში, როგორიცაა PGPASSWORD=, sshpass -p, mysql -p ან bearer header-ები.
რა უნდა გააკეთონ მომხმარებლებმა
Apiiro დეველოპერებს ურჩევს, ფაილი git rm --cached .claude/settings.local.json ბრძანებით თვალთვალიდან მოხსნან და, თუ ფაილი თვალთვალის ქვეშაა, რეპოზიტორის .gitignore-ში დაამატონ. მათ უნდა განაახლონ ყველა წვდომის მონაცემი, რომელიც ფაილში ოდესმე შენახულა, რადგან წაშლა მას ისტორიიდან, fork-ებიდან ან clone-ებიდან არ აშორებს. თუნდაც ფაილი არასდროს დაკომიტებულიყო, გახსნან და წაშალონ ყოველი წესი, რომელიც სეკრეტს შეიცავს. სეკრეტებზე მიუთითონ ცვლადებით, მაგალითად $DB_URL, ნაცვლად ბრძანებებში აკრეფისა; დაამტკიცონ შაბლონები, როგორიცაა Bash(npm run:*), და არა პირდაპირი ბრძანებები. უსაფრთხოების გუნდებმა აგენტის საქაღალდეები და მეხსიერების ფაილები სეკრეტების შემცველად უნდა მიიჩნიონ, დაამატონ pre-commit და CI სკანირებაში და პირველ რიგში განიხილონ საჯარო ჰოსტებთან დაკავშირებული წვდომის მონაცემები.
წყაროები: apiiro.com
SiTech — AI-გაძლიერებული ვებ დეველოპმენტი
ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.