Обнаружена опасная программа CoffeeLoader — загрузчик вредоносного ПО, который скрывается от антивирусного программного обеспечения, используя набор хитроумных методов, вплоть до выполнения на видеокарте. Её обнаружили эксперты в области кибербезопасности компании Zscaler ThreatLabz.
Чтобы оставаться незамеченным, CoffeeLoader прибегает сразу к нескольким ухищрениям: подменяет стек вызовов, использует обфускацию сна и применяет пользовательские потоки Windows. Стек вызовов можно описать как «хлебные крошки», в которых записывается, какие функции вызывала программа. Средства безопасности проверяют их, чтобы отследить поведение программы и выявить вредоносную активность, но CoffeeLoader подменяет эти «хлебные крошки», маскируя своё присутствие.
Обычно задача загрузчика вредоносного ПО состоит в том, чтобы проникнуть в систему и загрузить вредоносные программы — например, вымогатели или шпионское ПО. Обфускация сна помогает сделать код и данные вредоносного ПО зашифрованными, пока оно неактивно, то есть находится в состоянии сна. В незашифрованном виде фрагменты вредоносного кода появляются в памяти только при его выполнении. Для этого программа использует пользовательские потоки (fibers) Windows — контексты выполнения, переключение между которыми производится вручную.
Однако наиболее тревожным аспектом CoffeeLoader оказался упаковщик Armoury, код которого выполняется на графическом процессоре, что затрудняет его анализ в виртуальных средах. «После того как графический процессор выполняет функцию, декодированный выходной буфер содержит самомодифицирующийся шелл-код, который затем передаётся в центральный процессор для расшифровки и выполнения основной вредоносной программы», — сообщили в Zscaler ThreatLabz. Этот упаковщик используется для защиты полезных нагрузок у SmokeLoader и CoffeeLoader. На практике CoffeeLoader применялся для развёртывания шелл-кода Rhadamanthys в кампаниях по краже информации.