Ang isang kahinaan ay nakita sa APT na nagbibigay-daan sa iyo upang palitan ang isang nada-download na pakete

apt kahinaan

Nakilala na isang kahinaan sa APT package manager (CVE-2019-3462), Ano Pinapayagan ang isang umaatake na simulan ang isang spoof ng naka-install na pakete kung ang magsasalakay ay may kontrol sa repository mirror o maaaring makagambala sa trapiko ng transit sa pagitan ng gumagamit at ang imbakan (atake ng MITM).

Ang problema ay kinilala ng security researcher na si Max Justicz, na kilala sa pagtuklas ng mga kahinaan sa manager ng package ng APK (Alpine) at sa mga repositoryang Packagist, NPM at RubyGems.

Ang problema Ito ay dahil sa maling pag-verify ng mga patlang sa HTTP pag-redirect ng code.

Ano ang problema?

Ang kahinaan na ito Pinapayagan ang isang umaatake na palitan ang kanyang sariling nilalaman sa data na naihatid sa loob ng session ng HTTP (Gumagamit ang Debian at Ubuntu ng HTTP at hindi HTTPS upang ma-access ang imbakan, sa pag-aakalang ang digital na lagda ay sapat na may pagtutugma ng metadata at laki ng packet.)

Pinapayagan ng natukoy na kahinaan ang kapangyarihan ng umaatake palitan ang nailipat na packet, pagkatapos kung saan ay makikita ito ng APT na natanggap mula sa opisyal na salamin at simulan ang proseso ng pag-install.

Sa pamamagitan ng pagsasama sa nakakahamak na pakete ng mga script na inilunsad sa panahon ng pag-install, ang isang magsasalakay ay maaaring makamit ang pagpapatupad ng kanyang code sa isang system na may mga pribilehiyo ng ugat.

Upang mag-download ng data mula sa imbakan, nagsisimula ang APT ng isang proseso ng bata sa pagpapatupad ng isang tukoy na transportasyon at inaayos ang pakikipag-ugnay sa prosesong ito gamit ang isang simpleng teksto na proteksyon sa paghati ng mga utos ng isang walang laman na linya.

Paano ko matutukoy ang problema?

Ang kakanyahan ng problema ay ang HTTP transport handler, sa pagtanggap ng isang tugon mula sa HTTP server na may header na "Lokasyon:", humihiling ito ng kumpirmasyon ng pag-redirect mula sa pangunahing proseso.

Ganap na paglilipat ng nilalaman ng header na ito. Dahil sa kakulangan ng kalinisan ng naihatid na mga espesyal na character, maaaring tukuyin ng isang umaatake ang isang break ng linya sa patlang na "Lokasyon:".

Dahil ang halagang ito ay mai-decode at maililipat sa pamamagitan ng channel ng komunikasyon kasama ang pangunahing proseso, ang magsasalakay ay maaaring gayahin ang isang iba't ibang mga tugon mula sa HTTP handler ng transportasyon at palitan ang dummy 201 URI block.

Halimbawa, kung, kapag humihiling ng isang packet, kapalit ng umaatake ang tugon, ang pagpapalit na ito ay magreresulta sa paglipat ng susunod na bloke ng data sa pangunahing proseso.

Ang pagkalkula ng mga hash para sa na-download na mga file ay pinangangasiwaan at ang pangunahing proseso ay simpleng suriin ang data na ito na may mga hash mula sa database ng mga naka-sign na package.

Kabilang sa metadata, maaaring tukuyin ng isang magsasalakay ang anumang halaga ng mga pagsubok na hash na naka-link sa database sa aktwal na naka-sign na mga pakete, ngunit hindi talaga ito tumutugma sa mga hash ng inilipat na file.

Tatanggapin ng pangunahing proseso ang sagot na code na pinalitan ng pag-atake, hanapin ang hash sa database at isaalang-alang na ang packet kung saan mayroong isang tamang digital na lagda ay na-load, kahit na ang halaga ng patlang na may hash ay pinalitan sa channel ng komunikasyon sa pangunahing proseso gamit ang pag-atake at ang file na tinukoy sa pinalitan na metadata.

Ang pag-download ng isang nakakahamak na pakete ay ginagawa sa pamamagitan ng paglakip ng package sa file na Release.gpg, habang inililipat.

Ang file na ito ay may isang mahuhulaan na lokasyon sa file system at ang paglakip ng isang pakete sa pagsisimula nito ay hindi nakakaapekto sa pagkuha ng digital signature mula sa repository.

Kapag kumukuha ng data, hindi pinapagana ng apt ang mga proseso ng manggagawa na nagpakadalubhasa sa iba't ibang mga protokol na gagamitin para sa paglilipat ng data.

Ang pangunahing proseso pagkatapos ay nakikipag-usap sa mga manggagawa sa pamamagitan ng stdin / stdout upang sabihin sa kanila kung ano ang mai-download at kung saan ilalagay ito sa filesystem gamit ang isang protocol na mukhang HTTP.

Ang pangunahing proseso ay magsusumite ng pagsasaayos nito at hihiling ng isang mapagkukunan at tutugon ang proseso ng manggagawa.

Kapag ang HTTP server ay tumugon sa isang pag-redirect, ang proseso ng manggagawa ay nagbabalik ng isang 103 Redirect sa halip na isang 201 URI Tapos na, at ginagamit ng pangunahing proseso ang tugon na ito upang malaman kung aling mapagkukunan ang susunod na hihilingin.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.