Rumah > Artikel > Peranti teknologi > Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja
Baru-baru ini, sekeping berita mengejutkan komuniti sumber terbuka: kandungan yang dipadamkan pada GitHub dan data dalam repositori peribadi boleh diakses secara kekal dan ini sengaja direka oleh pegawai itu.
Syarikat perisian keselamatan sumber terbuka Truffle Security memperincikan isu tersebut dalam catatan blog.
Truffle Security memperkenalkan istilah baharu: CFOR (Rujukan Objek Cross Fork): apabila garpu repositori mempunyai akses kepada data sensitif dalam garpu lain (termasuk data daripada garpu persendirian dan garpu yang dipadamkan) Kerentanan CFOR wujud.
Sama seperti rujukan objek langsung yang tidak selamat, dalam CFOR, pengguna boleh terus mengakses data komit dengan memberikan nilai cincang komit, jika tidak, data itu tidak kelihatan.
Berikut ialah kandungan asal blog Truffle Security.
Akses data daripada repositori fork yang dipadamkan
Bayangkan aliran kerja berikut:
Fork repositori awam pada GitHub
untuk Komit;
Jadi, kod yang anda serahkan kepada fork sepatutnya tidak boleh diakses, betul, kerana anda telah memadamkan repositori fork. Walau bagaimanapun, ia boleh diakses secara kekal dan bukan di bawah kawalan anda.
Seperti yang ditunjukkan dalam video di bawah, garpu repositori, serahkan data kepadanya, dan kemudian padamkan repositori garpu, kemudian data yang diserahkan "dipadamkan" boleh diakses melalui repositori asal.
Keadaan ini adalah perkara biasa. Truffle Security menyiasat 3 repositori awam yang kerap bercabang bagi sebuah syarikat AI besar dan dengan mudah menemui 40 kunci API yang sah daripada repositori garpu yang dipadamkan.
Accessing Data dari repositori yang dipadam - Menggalakkan aliran kerja berikut:Anda mempunyai repositori awam di GitHub; fork, dan mereka tidak pernah menyegerakkan repositori bercabang mereka dengan kemas kini anda;
GitHub menyimpan repositori dan repositori bercabang dalam rangkaian repositori, dengan repositori "huluan" asal bertindak sebagai nod akar. Apabila repositori "hulu" awam bercabang "dialih keluar", GitHub menugaskan semula peranan akar kepada salah satu repositori bercabang hiliran. Walau bagaimanapun, semua komit dari repositori "hulu" masih wujud dan boleh diakses melalui mana-mana repositori bercabang.
Situasi ini tidak unik, perkara seperti ini berlaku minggu lepas:
Iaitu, sebarang kod yang diberikan kepada repositori awam boleh diakses secara kekal selagi repositori itu mempunyai sekurang-kurangnya satu repositori fork.
Akses data repositori peribadi
Pertimbangkan aliran kerja berikut:Anda membuat repositori peribadi yang akhirnya akan didedahkan kepada umum
Buat binaan repositori dan peribadi untuk kod itu; untuk ciri yang tidak bertujuan untuk menjadi umum; Anda menjadikan repositori "hulu" anda terbuka dan memastikan repositori garpu anda peribadi.
Kemudian, ciri peribadi dan kod berkaitan tersedia untuk tontonan umum. Sebarang kod yang dilakukan antara garpu dalaman repositori tempat anda mencipta alat dan sumber terbuka alat itu akan boleh diakses melalui repositori awam.
Selepas anda menjadikan repositori "hulu" anda terbuka, sebarang komitmen yang dibuat pada repositori garpu peribadi anda tidak akan kelihatan. Ini kerana menukar keterlihatan repositori "huluan" peribadi menghasilkan dua rangkaian repositori: satu untuk versi peribadi dan satu untuk versi awam.
Malangnya, aliran kerja ini adalah salah satu kaedah yang paling biasa digunakan oleh pengguna dan institusi semasa membangunkan perisian sumber terbuka. Akibatnya, data sulit mungkin terdedah secara tidak sengaja pada repositori awam GitHub.
Bagaimana untuk mengakses data?
Operasi yang merosakkan dalam rangkaian repositori GitHub (seperti 3 senario di atas) mengalih keluar rujukan untuk memasukkan data daripada UI GitHub standard dan operasi git biasa. Walau bagaimanapun, data masih wujud dan boleh diakses (komit cincang). Ini ialah pautan antara kelemahan CFOR dan IDOR.
komit cincang boleh dipaksa secara kasar melalui UI GitHub, terutamanya kerana protokol git membenarkan penggunaan nilai SHA-1 yang pendek apabila merujuk komit. Nilai SHA-1 pendek ialah bilangan minimum aksara yang diperlukan untuk mengelakkan perlanggaran dengan cincang komit lain, dengan minimum mutlak 4. Ruang utama untuk semua nilai SHA-1 4 aksara ialah 65536 (16^4). Brute memaksa semua nilai yang mungkin boleh dicapai dengan mudah.
Menariknya, GitHub mendedahkan titik akhir API acara awam. Anda juga boleh menanyakan cincang komit dalam arkib acara yang diuruskan oleh pihak ketiga dan menyimpan semua acara GitHub dari sepuluh tahun lalu di luar GitHub, walaupun selepas repositori dipadamkan.
GitHub Provisions
Truffle Security menyerahkan penemuannya kepada pegawai GitHub melalui program VDP GitHub. GitHub menjawab: "Ini dengan reka bentuk" dan dokumentasi yang dilampirkan.
Dokumentasi: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/what-forks- -when-a-repository-is-deleted-or-changes-visibility
Truffle Security memuji GitHub kerana bersikap telus tentang seni binanya, tetapi Truffle Security percaya: Pengguna biasa melihat pemisahan repositori peribadi dan awam sebagai sempadan keselamatan, dan Pengguna awam dianggap tidak dapat mengakses sebarang data dalam repositori peribadi. Malangnya, seperti yang dinyatakan di atas, ini tidak selalu berlaku.
Truffle Security membuat kesimpulan bahawa selagi repositori garpu wujud, sebarang komitmen pada rangkaian repositori tersebut (iaitu komit pada repositori "huluan" atau repositori garpu "hiliran") akan kekal selama-lamanya.
Truffle Security juga menegaskan bahawa satu-satunya cara untuk membetulkan kunci yang terjejas dengan selamat pada repositori GitHub awam ialah melalui putaran kunci.
Seni bina repositori GitHub mengalami kecacatan reka bentuk ini. Malangnya, sebahagian besar pengguna GitHub tidak akan memahami cara rangkaian repositori sebenarnya berfungsi, dan akan menjejaskan keselamatan akibatnya.
Pautan asal: https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github
Atas ialah kandungan terperinci Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!