Ireport ang pagkompromiso sa git repository ug base sa tiggamit sa proyekto sa PHP

Ang unang mga resulta sa pag-analisa sa usa ka insidente nga may kalabutan sa pag-ila sa duha ka malisyoso nga nahimo sa Git repository sa usa ka proyekto sa PHP nga adunay backdoor nga gi-activate sa dihang nagpadala sa usa ka hangyo uban sa usa ka espesyal nga gidisenyo nga User Agent header namantala na. Sa dagan sa pagtuon sa mga pagsubay sa mga kalihokan sa mga tig-atake, nakahinapos nga ang git.php.net server mismo, diin nahimutang ang git repository, wala gi-hack, apan ang database nga adunay mga account sa mga developers sa proyekto nakompromiso. .

Posible nga ang mga tig-atake nakahimo sa pag-download sa user database nga gitipigan sa DBMS sa master.php.net server. Ang mga sulod sa master.php.net nabalhin na sa bag-ong main.php.net server nga na-install gikan sa wala. Ang tanan nga mga password sa developer nga gigamit sa pag-access sa imprastraktura sa php.net gi-reset ug ang proseso sa pagbag-o niini gisugdan pinaagi sa usa ka espesyal nga porma sa pagbawi sa password. Ang git.php.net ug svn.php.net repository nagpabilin nga read-only (development gibalhin sa GitHub).

Human madiskubre ang unang malisyoso nga commit nga gihimo pinaagi sa account ni Rasmus Lerdorf, ang founder sa PHP, gituohan nga na-hack ang iyang account ug si Nikita Popov, usa sa mga nag-unang PHP developers, mipabalik sa mga kausaban ug gibabagan ang commit rights alang sa ang problema nga account. Paglabay sa pipila ka mga panahon, ang pagkaamgo nga ang pag-block dili makatarunganon, tungod kay kung wala’y pag-verify sa mga commit gamit ang usa ka digital nga pirma, bisan kinsa nga partisipante nga adunay access sa php-src repository mahimo’g magbag-o pinaagi sa pag-ilis sa usa ka tinumotumo nga ngalan sa tagsulat.

Sunod, nagpadala ang mga tig-atake og malisyoso nga pasalig alang mismo ni Nikita. Pinaagi sa pag-analisar sa mga log sa gitolite nga serbisyo, nga gigamit sa pag-organisar sa pag-access sa mga repositoryo, usa ka pagsulay ang gihimo aron mahibal-an ang partisipante nga aktuwal nga naghimo sa mga pagbag-o. Bisan pa sa paglakip sa accounting alang sa tanan nga mga nahimo, wala’y mga entri sa log alang sa duha nga makadaot nga mga pagbag-o. Nahimong tin-aw nga adunay pagkompromiso sa imprastraktura, tungod kay direkta nga gidugang ang mga commit, nga gilaktawan ang koneksyon pinaagi sa gitolite.

Ang git.php.net server na-disable dayon, ug ang nag-unang repository gibalhin sa GitHub. Sa pagdali, nakalimtan nga ang pag-access sa repository, dugang sa SSH gamit ang gitolite, adunay laing input nga nagtugot kanimo sa pagpadala sa mga commit pinaagi sa HTTPS. Sa kini nga kaso, ang git-http-backend gigamit aron makig-uban sa Git, ug ang pag-authentication gihimo gamit ang Apache2 HTTP server, nga nagpamatuod sa mga kredensyal pinaagi sa pag-access sa database nga gi-host sa DBMS sa master.php.net server. Gitugotan ang pag-login dili lamang sa mga yawe, apan usab sa usa ka regular nga password. Ang pagtuki sa mga http server logs nagpamatuod nga ang malisyosong mga kausaban gidugang pinaagi sa HTTPS.

Sa dihang gitun-an ang mga log, gipadayag nga ang mga tig-atake wala magkonektar sa unang higayon, apan sa sinugdan misulay sa pagpangita sa ngalan sa account, apan human sa pag-ila niini, sila naka-log in sa unang pagsulay, i.e. nahibal-an nila daan ang mga password ni Rasmus ug Nikita, apan wala nahibal-an ang ilang mga login. Kung ang mga tig-atake nakakuha ug access sa DBMS, dili klaro kung ngano nga wala dayon nila gigamit ang husto nga pag-login nga gitakda didto. Kini nga kalainan wala pa makadawat usa ka kasaligan nga katin-awan. Ang hack sa master.php.net gikonsiderar nga labing lagmit nga senaryo, tungod kay kini nga server migamit sa karaan nga code ug usa ka outdated nga OS, nga wala gi-update sa dugay nga panahon ug adunay wala’y patch nga mga kahuyangan.

Ang mga aksyon nga gihimo naglakip sa pag-instalar pag-usab sa master.php.net server environment ug ang pagbalhin sa mga script ngadto sa bag-ong bersyon sa PHP 8. Ang code alang sa pagtrabaho uban sa DBMS giusab aron sa paggamit sa parameterized nga mga pangutana nga makapakomplikado sa pag-ilis sa SQL code. Ang bcrypt algorithm gigamit sa pagtipig sa password hash sa database (kaniadto, ang mga password gitipigan gamit ang dili kasaligan nga MD5 hash). Ang kasamtangan nga mga password gi-reset ug giaghat ka sa pagtakda og bag-ong password pinaagi sa porma sa pagbawi sa password. Tungod kay ang pag-access sa git.php.net ug svn.php.net repository pinaagi sa HTTPS nahigot sa MD5 hash, nakahukom nga biyaan ang git.php.net ug svn.php.net sa read-only mode, ug ibalhin usab ang tanan ang nahabilin kanila nga PECL extension repository sa GitHub, susama sa main PHP repository.

Source: opennet.ru

Idugang sa usa ka comment