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, misalnyaNAME=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
Posting Komentar