Laporan ngeunaan kompromi tina gudang git sareng pangkalan pangguna tina proyék PHP

Hasil mimiti analisa kajadian anu aya hubunganana sareng idéntifikasi dua komitmen jahat dina gudang Git tina proyék PHP kalayan backdoor diaktipkeun nalika ngirim pamundut sareng lulugu Agen Pamaké anu dirarancang khusus parantos diterbitkeun. Dina kursus diajar ngambah kagiatan panyerang, éta disimpulkeun yén server git.php.net sorangan, dimana gudang git ieu lokasina, teu hacked, tapi database jeung akun tina pamekar proyék ieu compromised. .

Aya kamungkinan yén panyerang tiasa ngaunduh pangkalan data pangguna anu disimpen dina DBMS dina server master.php.net. Eusi master.php.net parantos dipindahkeun ka server main.php.net énggal anu dipasang ti mimiti. Sadaya kecap akses pamekar anu dianggo pikeun ngaksés infrastruktur php.net di-reset sareng prosés ngarobihana diprakarsai ngaliwatan formulir pamulihan sandi khusus. Repositori git.php.net sareng svn.php.net tetep dibaca wungkul (pangwangunan parantos dipindahkeun ka GitHub).

Saatos kapanggihna komitmen jahat anu munggaran dilakukeun ngaliwatan akun Rasmus Lerdorf, pangadeg PHP, dianggap yén akunna parantos diretas sareng Nikita Popov, salah sahiji pamekar PHP konci, ngagulung deui parobihan sareng diblokir hak komitmen pikeun. akun anu bermasalah. Saatos sababaraha waktos, realisasi sumping yén meungpeuk éta henteu asup akal, sabab tanpa verifikasi komitmen nganggo tanda tangan digital, pamilon anu gaduh aksés kana gudang php-src tiasa ngarobih ku ngagentos nami pangarang fiktif.

Salajengna, panyerang ngirimkeun komitmen jahat atas nama Nikita sorangan. Ku analisa log tina layanan gitolite, dipaké pikeun ngatur aksés ka repositories, usaha dijieun pikeun nangtukeun pamilon anu sabenerna nyieun parobahan. Sanajan kaasup akuntansi pikeun sakabéh commits, teu aya éntri dina log pikeun dua parobahan jahat. Janten jelas yén aya kompromi tina infrastruktur, saprak commits ditambahkeun langsung, bypassing sambungan via gitolite.

The git.php.net server ieu promptly ditumpurkeun, sarta Repository primér dipindahkeun ka GitHub. Buru-buru, éta hilap yén pikeun ngaksés gudang, salian ti SSH nganggo gitolite, aya input sanés anu ngamungkinkeun anjeun ngirim commits via HTTPS. Dina hal ieu, git-http-backend ieu dipaké pikeun berinteraksi sareng Git, sarta auténtikasi dipigawé maké server Apache2 HTTP, nu diverifikasi Kapercayaan ku ngakses database hosted dina DBMS dina master.php.net server. Login diidinan henteu ngan ukur nganggo konci, tapi ogé nganggo kecap konci biasa. Analisis log server http dikonfirmasi yén parobahan jahat ditambahkeun via HTTPS.

Nalika ngulik log, diungkabkeun yén panyerang henteu nyambung pertama kalina, tapi mimitina nyobian milarian nami akun, tapi saatos ngaidentipikasi éta, aranjeunna asup kana usaha anu munggaran, i.e. aranjeunna terang kecap akses Rasmus sareng Nikita sateuacanna, tapi henteu terang loginna. Upami panyerang tiasa nampi aksés kana DBMS, henteu écés naha aranjeunna henteu langsung nganggo login anu leres anu dijelaskeun di dinya. Penyimpangan ieu henteu acan nampi katerangan anu tiasa dipercaya. Hack of master.php.net dianggap skenario paling dipikaresep, saprak server ieu ngagunakeun kode pisan heubeul jeung OS luntur, nu geus lila teu diropéa sarta miboga kerentanan unpatched.

Tindakan anu dilaksanakeun kalebet pamasangan ulang lingkungan pangladén master.php.net sareng mindahkeun skrip kana versi PHP énggal 8. Kodeu pikeun damel sareng DBMS parantos dirobih nganggo pamundut parameterisasi anu ngahesekeun substitusi kode SQL. Algoritma bcrypt dianggo pikeun nyimpen hash sandi dina pangkalan data (saméméhna, kecap akses disimpen nganggo hash MD5 anu teu dipercaya). Kecap akses nu geus aya direset jeung anjeun dipenta pikeun nyetel kecap akses anyar ngaliwatan formulir recovery sandi. Kusabab aksés ka git.php.net sareng svn.php.net repositories via HTTPS dihijikeun kana hashes MD5, éta diputuskeun ninggalkeun git.php.net sareng svn.php.net dina modeu baca wungkul, sareng ogé mindahkeun sadayana. sésana ka aranjeunna repositories extension PECL on GitHub, sarupa jeung Repository PHP utama.

sumber: opennet.ru

Tambahkeun komentar