APT ir atklāta ievainojamība, kas ļauj nomainīt lejupielādējamu pakotni

trāpīga ievainojamība

Ir identificēts ievainojamība APT pakotņu pārvaldniekā (CVE-2019-3462), kas ļauj uzbrucējam iniciēt instalētās pakotnes mānīšanu vai uzbrucējs kontrolē repozitorija spoguli, vai var izjaukt tranzīta trafiku starp lietotāju un krātuvi (MITM uzbrukums).

Problēmu identificēja drošības pētnieks Makss Justičs, kas pazīstams ar ievainojamību noteikšanu APK pakotņu pārvaldniekā (Alpine) un Packagist, NPM un RubyGems krātuvēs.

Problēma Tas ir saistīts ar nepareizu HTTP novirzīšanas apstrādes koda lauku pārbaudi.

Kāda ir problēma?

Šī ievainojamība ļauj uzbrucējam aizstāt savu saturu HTTP sesijas laikā pārsūtītajos datos (Debian un Ubuntu, lai piekļūtu repozitorijam, izmanto HTTP, nevis HTTPS, pieņemot, ka ciparparaksts ir pietiekams ar atbilstošiem metadatiem un pakešu lielumam.)

Konstatētā ievainojamība dod iespēju uzbrucējam nomainiet pārsūtīto pakešu, pēc tam APT uztvers to kā saņemtu no oficiālā spoguļa un sāks instalēšanas procesu.

Iekļaujot instalēšanas laikā palaistos skriptu ļaunprātīgajā paketē, uzbrucējs var panākt sava koda izpildi sistēmā ar root tiesībām.

Lai lejupielādētu datus no repozitorija, APT sāk bērnu procesu ar konkrēta transporta ieviešanu un organizē mijiedarbību ar šo procesu, izmantojot vienkāršu teksta protokolu ar komandu sadalījumu pa tukšu rindu.

Kā es varu atklāt problēmu?

Problēmas būtība ir tāda, ka HTTP transporta apstrādātājs, saņemot atbildi no HTTP servera ar galveni "Location:", tā pieprasa apstiprinājumu par novirzīšanu no galvenā procesa.

Pilnīgi pārsūtot šīs galvenes saturu. Pārraidīto īpašo rakstzīmju tīrības trūkuma dēļ uzbrucējs laukā "Atrašanās vieta:" var norādīt līnijas pārtraukumu.

Tā kā šī vērtība tiks atšifrēta un pārsūtīta caur sakaru kanālu ar galveno procesu, uzbrucējs var simulēt atšķirīgu atbildi no HTTP transporta apstrādātāja un aizstāt manekena 201 URI bloku.

Piemēram, ja, pieprasot paketi, uzbrucējs aizstāj atbildi, šī aizstāšana izraisīs nākamā datu bloka pārsūtīšanu uz galveno procesu.

Lejupielādēto failu jaukšanas aprēķins tiek veikts, un galvenais process vienkārši pārbauda šos datus ar hashēm no parakstīto paku datu bāzes.

Starp metadatiem uzbrucējs var norādīt jebkuru testa jaukšanas vērtību, kas datu bāzē ir saistīta ar faktiskajām parakstītajām pakotnēm, taču tā faktiski neatbilst pārsūtītā faila jaukšanām.

Galvenais process pieņems atbildes kodu, kas aizstāts ar uzbrukumu, meklēs jaucamo datubāzē un uzskatīs, ka pakete, kurai ir pareizs digitālais paraksts, ir ielādēta, lai gan patiesībā lauka ar jaucēju vērtība tiek aizstāta ar saziņas kanāls ar galveno procesu, izmantojot uzbrukumu, un fails, kas norādīts aizstātajos metadatos.

Ļaunprātīgas pakotnes lejupielāde tiek veikta, pārsūtīšanas laikā pievienojot pakotni failam Release.gpg.

Šim failam ir paredzama atrašanās vieta failu sistēmā, un pakotnes pievienošana tā startēšanai neietekmē digitālā paraksta iegūšanu no repozitorija.

Iegūstot datus, apt atspējo darba ņēmēju procesus, kas specializējas dažādos protokolos, kas tiks izmantoti datu pārsūtīšanai.

Pēc tam galvenais process sazinās ar šiem darbiniekiem, izmantojot stdin / stdout, lai pastāstītu viņiem, ko lejupielādēt un kur to ievietot failu sistēmā, izmantojot protokolu, kas izskatās mazliet kā HTTP.

Pēc tam galvenais process iesniegs konfigurāciju un pieprasīs resursu, un darbinieka process atbildēs.

Kad HTTP serveris atbild ar novirzīšanu, darbinieka process atgriež 103 novirzīšanu, nevis 201 URI Gatavs, un galvenais process izmanto šo atbildi, lai noskaidrotu, kuru resursu pieprasīt nākamo.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.