Fork-lara malik uzaq və özəl GitHub depolarından verilərə giriş.

Truffle Security şirkəti GitHub-da depolarla işləmənin bir neçə standart təcrübəsi üzrə hücum ssenarilərini yayımlayıb. Bu, açıq forklara malik olan və ya fork kimi yaradılan uzaq depolardan məlumat çıxarmağa imkan verir.

Yerli forklara bağlı bütün depo commitlərinə hash ilə giriş imkanı, GitHub-un optimallaşdırma məqsədilə və təkrarlamaları aradan qaldırmaq üçün, əsas depo və forklardakı bütün obyektləri birləşdirərək saxladığı üçün yaranır. Bu cür saxlama metodu, əsas depoda hər hansı bir forkun commitini onun hash-i açıqca URL-də göstərərək görməyə imkan tanıyır. Məsələn, istifadəçi "\/torvalds\/linux" depo onun forkunu yarada bilər və orada istənilən kodu əlavə edə bilər, bundan sonra bu kod, "\/torvalds\/linux" deposunda birbaşa hash bağlantısı ilə əldə oluna bilər. Depo silindiyi halda, əgər ən azı bir açıq fork varsa, silinmiş depodan məlumatlar commit hash-ı ilə əlçatan qalır.

Təhlükəsizlik təhdidi olan üç ssenari təklif olunur:

  • Birinci ssenari, inkişaf etdiricilərin açıq depo forklayıb, bunlara dəyişikliklər əlavə edib, eksperimentlər aparıb və sonra silməsi vəziyyətlərini əhatə edir. İctimaiyyətə açıq olmayan kodun sızması ilə yanaşı, eksperimentlər zamanı koddakı nümunə fayllarına API-yə giriş açarları əlavə edilməsi kimi bir risk var. Bu halda, hücumçu, fork silindikdən sonra əsas depodan hash-ayrılmış commit-i əldə edə bilər. Məsələn, bu yolla araşdırmaçılar, maşın öyrənməyə aid üç depo ilə təxminən 30 işlək API giriş açarını müəyyən edə biliblər.
  • İkinci ssenari, əgər bu depoya forklar yaradılıbsa, əsas deponun silinməsi sonrası məlumatlara giriş əldə etmə imkanını əhatə edir. Məsələn, bir şirkətin açıq deposunda bir işçinin bağlanmış açarının təsadüfən yayımlanması ilə bütün şirkətə aid depolara tam giriş imkanı yaranıb. Şirkət məlumat səthinin keçdiyi depoyu silsə də, açarlar hələ də forklar vasitəsilə commit hash ilə çıxarılması üçün əlçatan qaldı.
    Fork-lara malik uzaq və özəl GitHub depolarından verilərə giriş.
  • Üçüncü senaryo, açıq versiyanı ictimai depoda inkişaf etdirən və genişlənmiş mülkü versiyanı privat depoda inkişaf etdirən layihələrin inkişafı modelilə bağlıdır. Əgər şirkət əvvəlcə layihəni privat depoda inkişaf etdirirsə, daha sonra kodu açdıqdan sonra onu ictimai depoya keçirdərsə, lakin hələ də privat forkda bağlanmış daxili və ya genişləndirilmiş versiyanı inkişaf etdirməyə davam edərsə, ictimai depodan commitlərin hashları vasitəsilə privat forkda əlavə edilən dəyişikliklərə daxil olmaq imkanı yaranır. Bu halda, yalnız əsas depo ictimailəşənə qədər privat forkda əlavə edilən dəyişikliklərə daxil olmaq mümkündür (privat və ictimai depozitarlar ayrı-yetidir, amma iki depo privat olduqda, commitlər birgə saxlanılır, buna görə də əsas deposu ictimaiyə çevirdikdən sonra hələ də depo daxilində qalır).
    Fork-lara malik uzaq və özəl GitHub depolarından verilərə giriş.

Repozitarın forklarında commitlərə əsas depo ilə olan bağlantı vasitəsilə əldə etməyə imkan tanıyan düzəldici bir metod uzun illərdir ki, məlumdur və zaman-zaman müxtəlif zarafatlara və inkişafçılarla aldatmalara səbəb olur (məsələn, zarafatçılar bəzən bu cür metodlarla GitHub-dakı Linux nüvəsi reposunun backdoor-larını yerləşdirə biləcəyini təsvir edirlər). Belə zarafatlara qarşı mübarizə məqsədilə GitHub, istənilən commitin cari repozitara aid olmadığını və mümkünsə bir fork-a aid olduğunu xəbərdar edən bir xəbərdarlıq əlavə edib. Bununla yanaşı, bağlı forklar vasitəsilə commit'lərə hash üzrə daxil olmaq imkanı təhlükəsiz bir hal olaraq değerlendirilir, çünki xarici və privat forklar daxilində məlumatların əldə edilməsi üçün commit hashləri haqqında məlumat bilmək lazımdır.

SHA-1 alqoritmi əsasında formalaşan və 32 simvolu özündə birləşdirən commit hashini tapmaq qeyri-mümkündür, amma bunun da lazım olmadığı məlum olub. GitHub, hashın ilk bir neçə simvolu ilə dəyişiklikləri adresləməyə imkan verən qısaldılmış bir forma dəstəkləyir, əgər başqa commitlərlə kəsişmə absentdirsə. Qısaldılmış hash adresləmə üçün minimum simvol sayı 4-dür ki, bu da 65 min kombinasiya (16^4) qarışdırmanı təmin edir. Bununla belə, qarışdırmanı nəzərə almaq lazım olmaya bilər, çünki GitHub API-si, tərəfdaş layihələr tərəfindən istifadə edilən hadisələri tutmaq üçün işləyən emalçıları qoşmağa imkan verir, burada commit hashləri haqqında məlumatlar repo silindikdən sonra da qalır.

Mənbə: opennet.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster