Langsung ke konten utama

Cara Melindungi Repositori Git Anda dari Gitdumper: Tutorial Lengkap dengan Langkah-Langkah dan Contoh



Git Dumper: Cara Menggunakan dan Fitur-fiturnya

Git Dumper adalah sebuah alat yang dapat mengunduh repositori git dari sebuah situs web yang memiliki direktori .git yang terbuka. Alat ini berguna untuk melakukan pengujian keamanan di tahap requirement gathering, karena dapat membantu Anda menemukan informasi sensitif seperti kode sumber, riwayat versi, konfigurasi, kredensial, dan lain-lain.

Cara Menginstal Git Dumper

Anda dapat menginstal Git Dumper dengan mudah menggunakan pip:

pip install git-dumper

Cara Menggunakan Git Dumper

Untuk menggunakan Git Dumper, Anda perlu memberikan dua argumen posisional: URL situs web yang ingin Anda unduh repositorinya, dan direktori output tempat Anda ingin menyimpan hasil unduhan. Misalnya:

git-dumper http://website.com/.git ~/website

Perintah di atas akan mengunduh repositori git dari http://website.com/.git dan menyimpannya di direktori ~/website di komputer Anda.

Selain itu, Anda juga dapat memberikan beberapa argumen opsional untuk mengatur perilaku Git Dumper, seperti:

  • --proxy PROXY: menggunakan proxy yang ditentukan untuk melakukan permintaan.
  • -j JOBS, --jobs JOBS: jumlah permintaan simultan yang dapat dilakukan.
  • -r RETRY, --retry RETRY: jumlah percobaan permintaan sebelum menyerah.
  • -t TIMEOUT, --timeout TIMEOUT: waktu maksimum dalam detik sebelum menyerah.
  • -u USER_AGENT, --user-agent USER_AGENT: user-agent yang digunakan untuk permintaan.
  • -H HEADER, --header HEADER: header HTTP tambahan, misalnya NAME=VALUE.

Anda dapat melihat bantuan lengkap dari Git Dumper dengan menggunakan argumen -h atau --help:

git-dumper -h

Fitur-fitur Git Dumper

Git Dumper memiliki beberapa fitur yang membuatnya menjadi alat yang handal dan efisien untuk mengunduh repositori git dari situs web, yaitu:

  • Git Dumper dapat mengunduh repositori git bahkan ketika directory listing dinonaktifkan. Alat ini akan mencari semua file umum (.gitignore, .git/HEAD, .git/index, dll) dan mencari sebanyak mungkin objek (sha1) dengan menganalisis .git/packed-refs, .git/index, dll.
  • Git Dumper dapat mengunduh file idx dan pack yang berisi banyak objek yang dikompresi. Alat ini akan mencoba menebak nama file idx dan pack berdasarkan referensi yang ditemukan, dan kemudian mengunduh dan mengekstraknya.
  • Git Dumper dapat melakukan permintaan secara paralel untuk meningkatkan kecepatan unduhan. Anda dapat menentukan jumlah permintaan simultan dengan menggunakan argumen -j atau --jobs.
  • Git Dumper dapat menangani berbagai macam situasi yang mungkin terjadi saat mengunduh repositori git, seperti redirect, autentikasi, error, timeout, dan lain-lain. Anda dapat menyesuaikan perilaku Git Dumper dengan menggunakan argumen-argumen opsional yang tersedia.

Cara Mencegah Gitdumper

Gitdumper adalah sebuah alat yang dapat mengunduh repositori git dari sebuah situs web yang memiliki direktori .git yang terbuka¹. Alat ini dapat membahayakan keamanan situs web Anda, karena dapat membocorkan informasi sensitif seperti kode sumber, riwayat versi, konfigurasi, kredensial, dan lain-lain². Oleh karena itu, Anda perlu melakukan beberapa langkah pencegahan untuk menghindari gitdumper, yaitu:

Langkah 1: Mengatur Izin Server

Langkah pertama yang harus Anda lakukan adalah mengatur izin server untuk memastikan file git tidak terbuka untuk publik. Anda dapat menambahkan aturan berikut ke konfigurasi server Anda, tergantung pada jenis server yang Anda gunakan:

  • Jika Anda menggunakan server nginx, Anda dapat menambahkan aturan berikut ke konfigurasi server nginx Anda³:
location ~ /.git/ {
  deny all;
}
  • Jika Anda menggunakan server Apache, Anda dapat menambahkan aturan berikut ke file .htaccess di root situs web Anda⁴:
<Directorymatch "^/.*/\.git/">
  Order deny,allow
  Deny from all
</Directorymatch>
  • Jika Anda menggunakan server IIS, Anda dapat menambahkan aturan berikut ke file web.config di root situs web Anda⁵:
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <hiddenSegments>
          <add segment=".git" />
        </hiddenSegments>
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

Aturan-aturan di atas akan membuat server Anda menolak semua permintaan yang mengakses direktori .git atau subdirektori.

Langkah 2: Menggunakan File robots.txt

Langkah kedua yang harus Anda lakukan adalah menggunakan file robots.txt untuk memastikan tidak mungkin untuk mengindeks direktori .git atau subdirektori. File robots.txt adalah sebuah file yang memberitahu mesin pencari mana saja halaman atau direktori yang boleh atau tidak boleh diindeks. Anda dapat menambahkan file robots.txt di root situs web Anda dengan isi berikut:

User-agent: *
Disallow: /.git/

Isi di atas akan memberitahu semua mesin pencari untuk tidak mengindeks direktori .git atau subdirektori. Namun, perlu diingat bahwa file robots.txt tidak bersifat mengikat, dan mesin pencari atau alat lain dapat mengabaikannya. Oleh karena itu, langkah ini hanya bersifat tambahan dan tidak dapat menggantikan langkah pertama.

Langkah 3: Menggunakan File .gitignore

Langkah ketiga yang harus Anda lakukan adalah menggunakan file .gitignore untuk memastikan file sensitif tidak ditambahkan ke repositori. File .gitignore adalah sebuah file yang memberitahu git mana saja file atau pola yang ingin Anda abaikan saat melakukan commit. Anda dapat membuat file .gitignore di root repositori Anda dengan daftar file atau pola yang ingin Anda abaikan, misalnya:

# Ignore credentials file
credentials.json

# Ignore all files in secrets folder
secrets/*

# Ignore all files with .bak extension
*.bak

Isi di atas akan memberitahu git untuk tidak menambahkan file credentials.json, semua file di folder secrets, dan semua file dengan ekstensi .bak ke repositori. Dengan demikian, Anda dapat mengurangi risiko bocornya informasi sensitif melalui repositori.

Langkah 4: Bekerja Sama dengan Peneliti Keamanan

Langkah keempat yang harus Anda lakukan adalah bekerja sama dengan peneliti keamanan untuk mengidentifikasi dan mengatasi kerentanan repositori git. Anda dapat menggunakan layanan seperti Inspectiv untuk melakukan pemeriksaan keamanan secara otomatis dan mendapatkan laporan yang rinci. Anda juga dapat memberikan imbalan kepada peneliti keamanan yang menemukan dan melaporkan kerentanan repositori git Anda melalui program bug bounty.

Komentar

Postingan populer dari blog ini

Fungsi lain tombol penerima panggilan di headset

Kegunaan tombol yang berada di headset utamanya adalah untuk menerima panggilan dan pause panggilan. Dan headset itu sendiri, kadang juga digunakan untuk mendengarkan music, digunakan bersama saat main game, supaya suara yang dikeluarkan oleh gadget tidak terlalu keras sehingga mengurangi beban gadget. Dengan mengurangi beban gadget, ada beberapa yang beranggapan kalau itu akan menghemat batere.

Apa itu index file seperti index.html, index.php kegunaannya dan bagaimana membuat custom nya

Index file adalah file yang berfungsi sebagai halaman utama atau tampilan pertama dari sebuah website. File ini memiliki nama default yang bervariasi, tergantung pada jenis server dan konfigurasinya, namun beberapa nama default yang umum digunakan adalah index.html, index.php, index.jsp, atau index.asp.

Membersihkan cache dan dalvik-cache menggunakan link2sd

Mungkin banyak yang menanyakan kenapa internalnya selalu berkurang free space nya. Padahal tidak menginstall applikasi baru. Hanya melakukan aktifitas normal. Dan sampai pada waktunya, internal memory low dan tidak bisa menambah aplikasi baru lagi.  Ada kemungkinan file cache dari sebuah aplikasi atau dalvik yang dibuat oleh OS android sudah  mulai membengkak. Sehingga perlu di bersihkan secara manual supaya tersedia penyimpanan kosong yang banyak. Sebelum mengetahui cara membersihkan cache dan dalvik cache, kita kupas sekilas apa itu cache dan dalvik cache. Cache adalah sebuah data file sementara yang di hasilkan oleh sebuah applikasi guna mempercepat pemrosesan dimasa yang akan datang (Cache Wikipedia) .  Dalvik-cache adalah ruang kosong sementara yang di pake oleh java virtual machine untuk menjalankan aplikasi android (Dalvik Wikipedia) .