Авторы вредоносных программ давно научились определять среду окружения с целью маскировки или дезинформации противника. Грамотно написанный зловред не будет проявлять никакой активности при запуске в виртуальной машине или покажет так называемую ложную активность. Идея в том, чтобы затруднить обратную разработку программы и анализ вредоносного кода со стороны сотрудников антивирусных компаний.
Финансовый троян Shylock, как и другие аналогичные программы, пытается скрыться от обнаружения и не проявляет себя при исполнении в виртуальной машине. Исследователи из компании Trusteer сообщают, что при анализе Shylock заметили и новый «трюк»: дроппер Shylock способен обнаруживать протокол RDP (Remote Desktop Protocol), который тоже часто используется при анализе вредоносного кода. Эксперты говорят, что это первый случай, когда вредоносная программа демонстрирует способность обнаруживать RDP.
Дело в том, что исследователи могут запускать образец вируса на удалённой машине — и наблюдать за его поведением через RDP. Именно этот сценарий предусмотрели авторы Shylock, так что в подобной среде программа не будет работать.
Обнаружение RDP осуществляется следующим образом. Дроппер динамически подгружает библиотеку Winscard.dll и вызывает функцию SCardForgetReaderGroupA(0, 0). Программа продолжает установку только в том случае, если возвращаемое значение функции равно 0x80100011 (SCARD_E_INVALID_VALUE) или 0x2 (ERROR_FILE_NOT_FOUND). Если дроппер исполняется локально, то возвращаемое значение равно 0x80100011, но в сессии RDP оно возвращает другую ошибку 0x80100004 (SCARD_E_INVALID_PARAMETER).