Поредна уязвимост в Android: OCtoRuTA

Най-четени

Методи Дамянов
Методи Дамянов
В "Калдата" от 2012г. насам. С интереси в сферата на информационната и интернет сигурност, дисруптивните технологии (IoT, AI, облак), видеоигрите с душа и послание и интернет свободата. Фен на Кен Ливайн, Ричард Столман и Джон Пери Барлоу.

Поредна уязвимост в Android: OCtoRuTA

Когато ви съобщихме за последната, четвърта уязвимост за Android, в период по-малък от месец, предположихме – както изглежда с право – че вземайки предвид хакерските изложения, които съпровождат летния сезон, това няма да са последните проблеми, за които ще чуем. И за съжаление, явно ще е точно така.

Този път, печалните новини идват от USENIX WOOT 2015. Новата уязвимост, официално заведена като CVE-2015-3825, може и да не е толкова страшна, колкото Stagefright, но без съмнение не е проблем, който може да бъде пренебрегнат.

Въпросната уязвимост, открита от специалисти от IBM и кръстена OCtoRuTA от Sophos, които ни съобщават за нея (по името на доклада на IBM, озаглавен One Class to Rule Them All), вече е докладвана на Google, които са издали и обновление за нея, скоро след това. Експлоатирането на OCtoRuTA позволява повишението на привилегиите на системно ниво.

Проблемът може да бъде провокиран чрез специално изготвено приложение, позволявайки на атакуващата страна кражбата на данни от приложенията, достигане на мрежата и извличането на лични данни, замяната на вече инсталирани приложения с подправени техни версии, а така също инсталирането на зловредни модули за ядрото.

Въпросната уязвимост би могла да бъде провокирана от един-единствен клас в Java.

„Споделянето на данни между приложенията може да е доста деликатен и непредвидим процес, особено, ако тези приложения са написани на различни езици, или поддържат изцяло различни компютърни системи, които представят по различен начин информацията в паметта“, пише Пол Дъклин от блога на Sophos. Той посочва, че проблемът е свързан с процеса на сериализацията на данни в Java, при който програма събира и записва цялата налична информация, която иска да трансферира в един стандартизиран формат (вместо просто да осигури препратки към данните, като адреси от паметта и файлови манипулатори (file handles).
Android използва свой собствен тип сериализация, наречен Parcels или „изгладени данни“ (flattened data).

Т.нар. „пакети“ могат да се съотнасят към типа от данни, известни като „живи обекти“ (live objects), което означава, че данните биха могли да се променят до времето, при което програмата, която десериализира информацията изиска да използва пакета. Когато Процес Б обработва (или „разглажда“) данни от Процес А, тази информация може не само да се промени, но даже и да престане да съществува. „Всъщност, авторите на доклада отбелязват, че програмистите, които използват Parcel обекти трябва да внимават при етикирането на непостоянните информационни обекти чрез отбелязването им с маркера transient“, пише Дъклин.

Той обяснява, че ако програмист забрави да постави етикета transient е сходно с това митничар да забрави да сложи на паспорта на влизащия в страната дата на изтичане на визата. Това може да бъде експлоатирано по-късно от злонамерена странна.

Търсейки подобни Java класове, специалистите се натъкнали на пропуск, посредством който зловреден процес Б може да заблуди Android да „разглади“ данни от  привилегирован процес А, използвайки програмен код, доставен от непривилегирован процес Б.

Пълният доклад на IBM може да откриете тук (pdf).

АбонаментВсичко важно от света на технологиите, директно в пощата ти.

С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!

Нови ревюта

Подобни новини