ASP.NET a „oracle padding“ útok

Za posledných niekoľko dní sa čoraz častejšie objavujú správy o zraniteľnosti technológie ASP.NET, ktorú odprezentoval Juliano Rizzo na bezpečnostnej konferencii ekoparty 2010. Ako však táto chyba funguje a aké sú jej potenciálne hrozby?

ASP.NET používa blokovú šifru AES v CBC móde na výmenu citlivých údajov v komunikácii klienta so serverom, čím zabraňuje ich podvrhnutiu a zaručuje integritu. Táto zraniteľnosť však využíva niektoré implementačné chyby a umožňuje šifrovanie kompletne rozbiť, útočník týmto získava možnosť dáta ľubovoľne modifikovať.

Týka sa nasledovných vecí:
– ViewState
– Autentizačné tickety pre formuláre
– Anonymná identifikácia
– Role Cookies

Inými slovami, zraniteľosť postihuje každú verziu ASP.NET.

Zraniteľnosť využíva základný kryptografický útok CCA (Chosen-ciphertext attack), útočník pošle zašifrovaný text bez toho, aby použil správny kľúč, webovému serveru. Podľa návratovej chyby zistí, či sa istá časť dešifrovala správne. Týmto spôsobom dokáže nazbierať dostatočné množstvo informácií na zistenie kľúča, ktorým aplikácia dáta šifruje. Technické detaily sú k dispozícii v http://netifera.com/research/poet//PaddingOraclesEverywhereEkoparty2010.pdf, útok bol odprezentovaný na bezpečnostnej konferencii Eurocrypt už v roku 2002 ako „padding oracle attack“.

Návrh ASP.NET však umožňuje chybu kriticky zneužiť aj pre aplikácie, ktoré na prvý pohľad neobsahujú citlivé údaje. Podľa nepísaných bezpečnostných pravidiel sa neodporúča umiestniť žiadne citlivé informácie do koreňového adresára pre webový server (DocumentRoot). ASP.NET však túto zásadu porušuje napríklad súborom „web.config“.

Vo verzi ASP.NET 3.5 Service Pack 1 a ASP.NET 4.0 je pridaná podpora načítania ľubovoľného súboru aplikácie. Táto funkcionalita je chránená cez „machine“ kľúč, ktorý je možné tiež útokom získať a zobraziť vyššie spomínaný „web.config“, často obsahujúci prístupové heslá.

Aktuálne neexistuje žiadna ochrana proti útoku, Microsoft síce pred pár dňami uviedol, že stačí nastaviť „CustomErrors“ tak, aby server vrátil rovnakú chybovú stránku pre všetky chyby. Táto ochrana je však úplne nedostatočná, nakoľko je možné zmerať rozdiely časov odozvy a použiť útok s miernou modifikáciou pomocou „time delay“ techniky. Dátum zverejnenia exploitu je zatiaľ neurčitý.

UPDATE: Microsoft zverejnil dnes opravu pre tento druh útoku http://www.microsoft.com/technet/security/bulletin/MS10-070.mspx a podľa vyjadrenia Julianno Rizzo-a danú chybu naozaj rieši.

referencie:
http://en.wikipedia.org/wiki/Chosen-ciphertext_attack

http://blogs.technet.com/b/srd/archive/2010/09/17/understanding-the-asp-net-vulnerability.aspx

http://ekoparty.org

more insights

Kritisches Sicherheitsproblem bei UpdraftCentral: Ein Angreifer mit den Schlüsseln des Dienstes installierte eine Hintertür auf unseren Websites

In der Nacht zum 19. Oktober 2026 missbrauchte ein Angreifer UpdraftCentral, den Fernverwaltungsdienst des Backup-Plugins UpdraftPlus mit über 4 Millionen Installationen, und installierte auf zwei unserer drei Websites eine Hintertür. Unsere Websites waren vollständig aktuell, der Fehler lag nicht bei uns: Der Angreifer signierte seine Befehle mit gültigen Schlüsseln, die der Dienst UpdraftCentral Cloud erzeugt und verwahrt. Wir veröffentlichen eine Analyse der Hintertür, Indikatoren einer Kompromittierung und eine Anleitung zur Prüfung eigener Websites. Der Hersteller bestätigte später, dass der Angreifer die Kundendatenbank von teamupdraft.com einschließlich der UpdraftCentral-Schlüssel erbeutet hat.

Read more >