Keluaran WordPress 5.2 dengan sokongan untuk menyemak kemas kini melalui tandatangan digital

Dikemukakan oleh keluaran sistem pengurusan kandungan web WordPress 5.2. Keluaran ini terkenal kerana siap epik enam tahun pada pelaksanaan keupayaan menyemak kemas kini dan penambahan menggunakan tandatangan digital.

Sehingga kini, apabila memasang kemas kini dalam WordPress, faktor keselamatan utama adalah kepercayaan pada infrastruktur dan pelayan WordPress (selepas memuat turun, cincang telah diperiksa tanpa mengesahkan sumbernya). Jika pelayan projek telah terjejas, penyerang dapat memalsukan kemas kini dan mengedarkan kod hasad di kalangan tapak berasaskan WordPress yang menggunakan sistem pemasangan kemas kini automatik. Selaras dengan model penyampaian amanah yang digunakan sebelum ini, penggantian sedemikian tidak akan disedari oleh pengguna.

Mengambil kira hakikat bahawa Menurut daripada projek w3techs, platform WordPress digunakan pada 33.8% tapak di rangkaian, kejadian itu akan mengambil skala bencana. Pada masa yang sama, bahaya kompromi infrastruktur bukanlah hipotetikal, tetapi agak nyata. Sebagai contoh, beberapa tahun lalu salah seorang penyelidik keselamatan ditunjukkan kelemahan yang membenarkan penyerang melaksanakan kodnya pada bahagian pelayan api.wordpress.org.

Dalam kes tandatangan digital, mendapatkan kawalan ke atas pelayan pengedaran kemas kini tidak akan membawa kepada kompromi sistem pengguna, kerana untuk melakukan serangan, anda juga perlu mendapatkan kunci peribadi yang disimpan secara berasingan, yang dengannya kemas kini ditandatangani.

Pelaksanaan menyemak sumber kemas kini menggunakan tandatangan digital telah dihalang oleh fakta bahawa sokongan untuk algoritma kriptografi yang diperlukan muncul dalam pakej PHP standard yang agak baru-baru ini. Algoritma kriptografi yang diperlukan muncul berkat penyepaduan perpustakaan Libsodium kepada pasukan utama PHP 7.2. Tetapi sebagai versi PHP yang disokong minimum dalam WordPress dinyatakan keluaran 5.2.4 (dari WordPress 5.2 - 5.6.20). Mendayakan sokongan untuk tandatangan digital akan membawa kepada peningkatan ketara dalam keperluan untuk versi minimum PHP yang disokong atau penambahan pergantungan luaran, yang tidak dapat dilakukan oleh pembangun memandangkan kelaziman versi PHP dalam sistem pengehosan.

Penyelesaiannya ialah pembangunan dan kemasukan versi kompak Libsodium dalam WordPress 5.2 - Sodium Compat, di mana set minimum algoritma untuk mengesahkan tandatangan digital dilaksanakan dalam PHP. Pelaksanaannya meninggalkan banyak perkara yang diingini dari segi prestasi, tetapi menyelesaikan sepenuhnya masalah keserasian, dan juga membenarkan pembangun pemalam untuk mula melaksanakan algoritma kriptografi moden.

Algoritma digunakan untuk menghasilkan tandatangan digital Ed25519, dibangunkan dengan penyertaan Daniel J. Bernstein. Tandatangan digital dijana untuk nilai cincang SHA384 yang dikira daripada kandungan arkib kemas kini. Ed25519 mempunyai tahap keselamatan yang lebih tinggi daripada ECDSA dan DSA, dan menunjukkan kelajuan pengesahan dan penciptaan tandatangan yang sangat tinggi. Rintangan terhadap penggodaman untuk Ed25519 adalah kira-kira 2^128 (secara purata, serangan ke atas Ed25519 memerlukan operasi 2^140 bit), yang sepadan dengan rintangan algoritma seperti NIST P-256 dan RSA dengan saiz kunci 3000 bit atau sifir blok 128-bit. Ed25519 juga tidak terdedah kepada masalah perlanggaran cincang dan tidak terdedah kepada serangan pemasaan cache atau serangan saluran sisi.

Dalam keluaran WordPress 5.2, pengesahan tandatangan digital pada masa ini hanya meliputi kemas kini platform utama dan tidak menyekat kemas kini secara lalai, tetapi hanya memaklumkan kepada pengguna tentang masalah tersebut. Ia telah memutuskan untuk tidak mendayakan penyekatan lalai serta-merta kerana keperluan untuk semakan dan pintasan penuh masalah yang mungkin. Pada masa hadapan, ia juga merancang untuk menambah pengesahan tandatangan digital untuk mengubahsuai sumber pemasangan tema dan pemalam (pengilang akan dapat menandatangani keluaran dengan kunci mereka).

Sebagai tambahan kepada sokongan untuk tandatangan digital dalam WordPress 5.2, perubahan berikut boleh diperhatikan:

  • Dua halaman baharu telah ditambahkan pada bahagian "Kesihatan Tapak" untuk menyahpepijat masalah konfigurasi biasa, dan borang juga telah disediakan di mana pembangun boleh menyerahkan maklumat penyahpepijatan kepada pentadbir tapak;
  • Menambahkan pelaksanaan "skrin putih kematian", dipaparkan sekiranya berlaku masalah maut dan membantu pentadbir menyelesaikan masalah yang berkaitan dengan pemalam atau tema secara bebas dengan menukar kepada mod pemulihan ranap sistem khas;
  • Sistem untuk menyemak keserasian dengan pemalam telah dilaksanakan, yang secara automatik menyemak kemungkinan menggunakan pemalam dalam konfigurasi semasa, dengan mengambil kira versi PHP yang digunakan. Jika pemalam memerlukan versi PHP yang lebih baharu untuk berfungsi, sistem akan menyekat kemasukan pemalam ini secara automatik;
  • Menambah sokongan untuk membolehkan modul dengan menggunakan kod JavaScript beg web ΠΈ Babel;
  • Menambah templat privacy-policy.php baharu yang membolehkan anda menyesuaikan kandungan halaman dasar privasi;
  • Untuk tema, pengendali cangkuk wp_body_open telah ditambah, membolehkan anda memasukkan kod serta-merta selepas teg badan;
  • Keperluan untuk versi minimum PHP telah dinaikkan kepada 5.6.20, pemalam dan tema kini mempunyai keupayaan untuk menggunakan ruang nama dan fungsi tanpa nama;
  • Menambah 13 ikon baharu.

Selain itu, anda boleh menyebut pengesanan kelemahan kritikal dalam pemalam WordPress Sembang Langsung WP (CVE-2019-11185). Kerentanan membolehkan kod PHP sewenang-wenangnya dilaksanakan pada pelayan. Pemalam itu digunakan di lebih daripada 27 ribu tapak untuk mengatur sembang interaktif dengan pelawat, termasuk di tapak syarikat seperti IKEA, Adobe, Huawei, PayPal, Tele2 dan McDonald's (Sembang Langsung sering digunakan untuk melaksanakan pop timbul menjengkelkan sembang di tapak syarikat dengan sembang tawaran dengan pekerja).

Masalahnya nyata dalam kod untuk memuat naik fail ke pelayan dan membolehkan anda memintas semakan jenis fail yang sah dan memuat naik skrip PHP ke pelayan, dan kemudian melaksanakannya terus melalui web. Menariknya, tahun lepas kelemahan yang sama telah dikenal pasti dalam Sembang Langsung (CVE-2018-12426), yang membenarkan memuatkan kod PHP di bawah samaran imej, menyatakan jenis kandungan yang berbeza dalam medan Jenis kandungan. Sebagai sebahagian daripada pembetulan, semakan tambahan telah ditambahkan untuk senarai putih dan jenis kandungan MIME. Ternyata, semakan ini dilaksanakan secara tidak betul dan boleh dipintas dengan mudah.

Khususnya, muat naik terus fail dengan sambungan ".php" adalah dilarang, tetapi sambungan ".phtml", yang dikaitkan dengan penterjemah PHP pada banyak pelayan, tidak ditambahkan pada senarai hitam. Senarai putih hanya membenarkan muat naik imej, tetapi anda boleh memintasnya dengan menentukan sambungan berganda, contohnya, ".gif.phtml". Untuk memintas semakan jenis MIME pada permulaan fail, sebelum membuka teg dengan kod PHP, ia sudah cukup untuk menentukan baris "GIF89a".

Sumber: opennet.ru

Tambah komen