Часто можно наблюдать, что самые полезные и рациональные вещи и явления становятся вредными и даже опасными, если посмотреть на них под другим углом. Таких примеров очень много. Беда в том, что пользователи узнают об этом гораздо позже тех, кто пытается извлечь выгоду.
Как оказалось, типичный такой пример можно найти в практически любом смартфоне. Ученые из Колумбийского университета обнаружили любопытную и пугающую уязвимость в современных процессорах, которые используются в мобильных устройствах.
С некоторых пор и по сей день идет борьба за максимально возможное сбережение энергии. Тут есть несколько путей и подходов. Одним из самых распространенных (используется с 1994 года) стал способ уменьшения потребляемой процессором мощности в то время, когда от него не требуется значительная производительность.
Если же более углубленно посмотреть на процессы, протекающие в это время, то обнаруживается уязвимость, позволяющая при желании получить полный контроль над устройством. Уязвимость называется CLKSCREW и открывает возможность выполнения любых произвольных кодов, имеющих высшие права. При этом устранение данной уязвимости связано с рядом сложностей.
Как работает уязвимость?
Атаки CLKSCREW основаны на особенности современной памяти – если считывать значение ячейки много раз подряд, оно может инвертироваться. Это явление давно известно и называется «флип-бит». Атака будет успешной, если подобрать максимально высокую частоту, при которой процессор еще работоспособен.
Достижение на таких частотах эффекта «флип-бит» открывает доступ в святая святых процессора – область TrustZone, где традиционно хранятся наиболее важные данные. Овладев контролем над данной областью памяти процессора, можно запускать любые коды.
Полученные сведения должны стать поводом к размышлению для разработчиков.