Embedded Hardcoded URL

Embedded_URL Вредоносное ПО (Malware) LOW +1 очков

🎮 Влияние на механику Minecraft

Модификации регулярно обращаются к внешним серверам для штатных задач: проверки наличия обновлений, перехода к документации или баг-трекеру, подгрузки скинов или отображения ссылок на сообщества в главном меню.

Embedded_URL выполняет инвентаризацию всех строковых URL-адресов в байткоде мода. В исследованном образце Destra Client (ru.destra.gui.MainMenuScreen) встроенные строковые константы (SOCIAL_URL_*) используются методом инициализации интерфейса ensureSocialButtons() для создания кнопок быстрого перехода. Примечательно, что в оригинальном коде автора иконка SOCIAL_ICON_TELEGRAM передается вместе со ссылкой SOCIAL_URL_DISCORD, а иконка SOCIAL_ICON_DISCORD — вместе со ссылкой SOCIAL_URL_TELEGRAM.

Наличие встроенных ссылок само по себе не свидетельствует о вредоносности: большинство легитимных модов содержат ссылки на исходный код и страницы авторов. Тем не менее учет встроенных адресов обеспечивает прозрачность внешних сетевых связей мода, позволяя аудиторам выявлять каналы сбора телеметрии, рекламные редиректы и адреса сторонних серверов.

🔍 Анализируемые функции и API

ConstantPool CONSTANT_Utf8

Строковая константа с префиксом http:// или https:// в пуле констант класса.

⚙️ Декомпилированный вид (Vineflower)

public static final String SOCIAL_ICON_TELEGRAM = "c";
public static final String SOCIAL_URL_DISCORD = "hxxps://discord[.]gg/<redacted>";
public static final String SOCIAL_ICON_VK = "A";
public static final String SOCIAL_URL_VK = "hxxps://vk[.]ru/<redacted>";
public static final String SOCIAL_ICON_YOUTUBE = "b";
public static final String SOCIAL_URL_YOUTUBE = "hxxps://youtube[.]com/@<redacted>";
public static final String SOCIAL_ICON_DISCORD = "a";
public static final String SOCIAL_URL_TELEGRAM = "hxxps://t[.]me/<redacted>";

public void ensureSocialButtons() {
   if (this.socialButtons.isEmpty()) {
      this.socialButtons.add(new MainMenuSocialButton(this, FontManager.destraFont, SOCIAL_ICON_TELEGRAM, SOCIAL_URL_DISCORD));
      this.socialButtons.add(new MainMenuSocialButton(this, FontManager.mainFont, SOCIAL_ICON_VK, SOCIAL_URL_VK));
      this.socialButtons.add(new MainMenuSocialButton(this, FontManager.destraFont, SOCIAL_ICON_YOUTUBE, SOCIAL_URL_YOUTUBE));
      this.socialButtons.add(new MainMenuSocialButton(this, FontManager.destraFont, SOCIAL_ICON_DISCORD, SOCIAL_URL_TELEGRAM));
   }
}

🛡️ Сигнатура байткода и статический детект

Детектор анализирует строковые константы в пуле констант класса (CONSTANT_Utf8) на наличие строк, начинающихся с протокольных префиксов http:// или https://.

Правило фиксирует любые классы, содержащие встроенные веб-адреса. Главное техническое ограничение заключается в том, что проверка регистрирует лишь сам факт наличия строки URL: она не разделяет легитимные ресурсы (документацию, адреса проверки обновлений, баг-трекеры) и вредоносную инфраструктуру (эндпоинты выгрузки данных, адреса загрузки сторонних бинарных файлов).