Rumah  >  Artikel  >  Peranti teknologi  >  Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja

王林
王林asal
2024-07-30 02:06:441001semak imbas

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.

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja

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

  • kod anda;

    untuk Komit;

  • Anda memadamkan repositori garpu anda .

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengajaJadi, 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.

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengajaKeadaan 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.

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja

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;

  • Kemudian, kod yang anda serahkan masih boleh diakses selepas pengguna meninggalkan repositori 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:

  • Truffle Security menyerahkan kerentanan P1 kepada syarikat teknologi besar, menunjukkan bahawa mereka secara tidak sengaja menyerahkan pekerja ke GitHub Kunci akaun dengan akses kritikal kepada keseluruhan organisasi GitHub. Syarikat itu segera memadamkan repositori, tetapi kerana repositori telah dicabang, komit yang mengandungi data sensitif masih boleh diakses melalui repositori bercabang, walaupun repositori bercabang tidak pernah disegerakkan dengan repositori "huluan" asal.

Iaitu, sebarang kod yang diberikan kepada repositori awam boleh diakses secara kekal selagi repositori itu mempunyai sekurang-kurangnya satu repositori fork. Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja

Akses data repositori peribadi

Pertimbangkan aliran kerja berikut:

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengajaData peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengajaAnda 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.

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengajaData peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja

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.

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja

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.

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja

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.

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja

Data peribadi dan kandungan yang dipadam boleh diakses secara kekal, rasmi GitHub: direka dengan sengaja

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn