Serangan & Sesi Pembajakan CSRF

12

Dari catatan rilis 1.8CE Alpha:

Toko web Magento memiliki perlindungan Cross Site Request Forgery (CSRF) tambahan, yang berarti penipu tidak dapat lagi menyamar sebagai pelanggan yang baru terdaftar dan melakukan tindakan atas nama pelanggan.

dan:

Dalam versi sebelumnya, Magento rentan terhadap serangan fiksasi sesi selama proses pendaftaran. Setelah masuk ke akun mereka, ID sesi pengguna terdaftar tidak berubah. Oleh karena itu, jika penyerang memiliki pengetahuan tentang ID sesi yang tidak sah dan jika pengguna itu berhasil mendaftar, penyerang dapat mengambil alih akun yang baru terdaftar. Sekarang, ID sesi berubah setelah pendaftaran berhasil, membuat penggunaan akun yang tidak sah menjadi tidak mungkin.

Jika ini ada dalam catatan rilis, dan saya tidak melihat rilis poin pada versi sebelumnya yang membahas hal ini (apakah saya mencari di tempat yang salah?) - lalu apakah itu berarti bahwa toko-toko pra-1.8 saat ini berpotensi terbuka untuk serangan ini vektor ?

Sumber: http://www.magentocommerce.com/knowledge-base/entry/ce-18-later-release-notes

Philwinkle
sumber
Saya baru saja memperbarui jawaban saya di bawah ini dengan perincian tentang cara mendapatkan tambalan untuk kerentanan ini.
davidalger

Jawaban:

9

Singkatnya, ya. CE 1.7 masih rentan terhadap serangan spesifik tersebut karena tidak ada rilis keamanan yang dikeluarkan yang berisi tambalan.

Dalam kasus yang terakhir, serangan fiksasi sesi, perubahan adalah peningkatan dalam praktik keamanan yang sudah digunakan Magento untuk tetap sejalan dengan praktik terbaik keamanan saat ini. Bukan sesuatu yang mungkin dikeluarkan untuk CE 1.7 jika mereka mengeluarkan tambalan dengan perbaikan CSRF.

Pertanyaan sebenarnya adalah apa sebenarnya kerentanan CSRF ini yang diperbaiki? Tidak diragukan lagi hal yang baik bahwa mereka tidak memasukkan spesifik dalam catatan rilis, sehingga lebih lanjut membahayakan semua rilis sebelumnya, tetapi akan menyenangkan untuk mengetahui demi menambal implementasi lama.

UPDATE # 1: Setelah menjangkau Magento untuk mencari tahu kapan mereka akan mengeluarkan tambalan untuk kerentanan di atas, saya menerima balasan berikut:

Beri saya waktu untuk meneliti ini lebih lanjut. Saya tidak yakin apakah ada tambalan yang tersedia untuk kedua item tersebut, karena mereka terdaftar di sistem kami sebagai perangkat tambahan produk dan bukan sebagai bug. Saya akan memperbarui Anda ketika saya mendapatkan informasi lebih lanjut.

Saya akan memposting kembali rincian lebih lanjut di sini saat saya mendapatkannya, dan akan melakukan yang terbaik untuk mendapatkan tambalan karena tampaknya saat ini tidak ada tambalan yang ada.

UPDATE # 2: Setelah bolak-balik dengan tim pendukung, saya bisa mendapatkan tambalan yang tepat untuk Magento EE 1.12.0.2. Tidak ada tambalan yang dikeluarkan untuk Magento CE 1.7.0.2, dan sejauh yang saya ketahui, teknisi yang memeriksanya secara internal, tidak ada rencana untuk merilis tambalan resmi untuk CE 1.7.x alih-alih menyelesaikan masalah hanya pada CE 1.8 mendatang. rilis stabil.

Mengenai file patch khusus EE, saya tidak dapat mempostingnya (atau alat aplikasi patch) di sini secara langsung karena pasti akan melanggar NDA antara Magento dan saya sendiri secara pribadi dan perusahaan tempat saya bekerja. Nama tambalan yang relevan adalah: "PATCH_SUPEE-1513_EE_1.12.0.2_v1.sh" - Jika Anda memiliki Edisi Perusahaan atau klien yang menggunakannya, Anda harus dapat meminta tambalan ini dari tim dukungan Magento bersama dengan catatan tentang kerentanan CSRF yang seharusnya diperbaiki.

Untuk pengguna CE 1.7.0.2, saya telah mengambil kebebasan untuk menghasilkan file tambalan (berdasarkan tambalan yang disediakan oleh Magento) yang hanya menyertakan potongan kode yang mengubah file kode inti Magento CE 1.7.0.2. Dalam mode normal, itu termasuk bit komentar yang tidak relevan dan pemformatan yang disesuaikan bersama dengan perubahan kode yang relevan. Membuat ini diperlukan secara manual mengubah patch asli untuk menerapkannya menggunakan alat penerapan patch yang disediakan, kemudian menggunakan git untuk menghasilkan patch berdasarkan perubahan yang diterapkan.

File tambalan yang saya buat dapat diunduh dari intisari ini: https://gist.github.com/davidalger/5938568

Untuk menerapkan tambalan, pertama cd ke root instalasi Magento Anda dan jalankan perintah berikut: patch -p1 -i ./Magento_CE_1.7.0.2_v1-CSRF_Patch.diff

Patch spesifik EE termasuk pemeriksaan validasi kunci form untuk pengendali spesifik perusahaan, perubahan pada file template perusahaan / default dan perusahaan / iphone untuk menyertakan kunci form dalam formulir yang digunakan untuk tindakan kontroler yang ditambal, dan tambahan fungsionalitas Cache Halaman Penuh untuk menjelaskan dengan benar melewati tombol formulir bolak-balik di halaman cache.

PENOLAKAN: Saya belum menguji patch EE yang disediakan oleh Magento atau patch yang saya unggah ke intisari tertaut. Patch yang disediakan dalam intisari yang direferensikan disediakan dengan TANPA GARANSI dan mungkin atau mungkin tidak sepenuhnya menyelesaikan kerentanan yang dirujuk dalam catatan rilis CE 1.8. Sebagai tambalan yang belum diuji, juga tidak ada jaminan bahwa itu berfungsi secara keseluruhan atau sebagian. Yaitu menggunakan dengan risiko Anda sendiri, dan melakukan uji tuntas untuk menguji sebelum digunakan ke lingkungan produksi. Jika Anda menemukan masalah dengan tambalan, beri tahu saya dan saya akan memperbaruinya.

davidalger
sumber
1
Keamanan melalui ketidakjelasan bukanlah ide yang baik. Mereka harus membuatnya publik sehingga semua orang dapat menambal instalasinya. Selain itu perbedaan sederhana antara kedua versi akan memberi Anda kesan yang cukup baik tentang cara kerja serangan dan cara menambal instalasi yang lebih lama. Karena itu informasinya keluar.
Darokthar
1
Setuju, ketidakjelasan sama sekali bukan keamanan yang baik, dan saya jelas tidak berusaha menunjukkan hal itu. Namun, pengungkapan yang bertanggung jawab adalah sesuatu yang harus dipertimbangkan. Sejauh yang kita ketahui, kerentanan bisa saja disampaikan ke Magento minggu sebelum rilis EE 1.13 dan CE 1.8a1 ke publik. FWIW, saya akan menghubungi beberapa orang di Magento untuk mengetahui apakah mereka memiliki tambalan untuk EE 1.12 dan rencana apa untuk 1,7 instalasi; khusus untuk kerentanan CSRF.
davidalger
Mari kita perhatikan pembaruan dan edit pertanyaan / jawaban yang sesuai jika tambalan dilepaskan. Terima kasih.
philwinkle
Saya baru saja mengirim pembaruan dengan balasan awal yang saya dapatkan dari Magento. Sepertinya saat ini tidak ada patch, jadi saya akan melihat apa yang bisa saya lakukan tentang itu. Saya pasti akan terus memposting ... di sini dan mungkin di twitter saya juga.
davidalger
2

Saya tidak 100% yakin karena saya tidak dapat mereproduksi masalah tetapi

artinya seorang penipu tidak bisa lagi menyamar sebagai pelanggan baru

berarti bahwa sampai sekarang 'penipu' dapat menyamar sebagai pelanggan yang baru terdaftar.
Saya harap itu hanya 'semantik' tapi saya pikir itu berarti apa yang Anda takutkan artinya.

Marius
sumber
sampai sekarang, berarti diperbaiki dalam 1,8 - atau apa maksudmu?
Fabian Blechschmidt
ya ... itulah yang saya maksud.
Marius