Как стать автором
Поиск
Написать публикацию
Обновить

Вредоносное ПО: Имитация экстремистского трафика

Уровень сложностиПростой

31.08.2025 Президент России Владимир Путин подписал закон с поправками о штрафах 3–5 тыс. руб. за умышленный поиск экстремистских материалов в интернете.

Во времена android 4 я активно тестировал прошивки и сталкивался с программками имитирующими пользовательскую активность. Отсюда у меня и возник вопрос: как будут доказывать, что умышленно, а что нет?

Если доказательством будет являться список запросов, который делал пользователь с какой-то периодичностью, к примеру:

  • 02.02.2030 в 13:35 user1 ищет в ya.ru запрещённую информацию

  • 02.02.2030 в 13:37 user1 переходит по запрещённой ссылке

  • 03.02.2030 в 14:20 user1… и так далее

То возникает вопрос, что если вместо пользователя это делает вредоносное ПО? И как пользователю это доказать?

Допустим, у нас есть user1 и user2, оба любят смотреть фильмы: user1 – фантастику, user2 – детективы, и у обоих периодический запрещённый трафик – не тем интересуются наши user1 и user2. К примеру, мы точно знаем, что у одного из них установлено вредоносное программное обеспечение: как определить, у кого? И вообще, является ли это целью? Нужно ведь только доказать, что трафик умышленный. А если периодический, значит, умышленный. А далее, мяч на стороне пользователя, пусть объясняет почему каждый день ходит по запрещённым ссылкам.

Конечно, ещё не ясно, как будет исполняться данный закон, как будут штрафовать, и возможно, моё предположение не стоит вашего клика и байтов на серверах.

Тем не менее, после вступления закона в силу появление программ, которые будут имитировать такой трафик, – вопрос времени, потому что появляется мотив к созданию таких программ: скрыть трафик в массе (будучи владельцем оных ресурсов), вредительство… Опять таки, на данный момент, мне так кажется.

Я уверен, что когда-то скачаю .exe-файл – может это будет плагин для FL Studio или сетевая игра, скачаю что-нибудь с торрента, или установлю расширение со скрытым функционалом, вроде запуска удалённого кода с помощью функции eval – не я так, кто-нибудь другой.

В связи с этим возникает вопрос о защите от данного рода программ.

Чтобы написать вредоносное ПО, имитирующее бурную деятельность, необязательно быть сильным программистом. Вот что сгенерировал Gemma3:4b на NVidia 1650 (Ctrl+C → Ctrl+V).

import requests
from urllib.parse import urlparse
import random

# Список URL, которые должны идти через VPN
VPN_URLS = [
    "https://www.example.com/vpn_data",
    "https://www.example.com/vpn_data2",
    "https://www.example.com/vpn_data3"
]

# Обычные URL (без VPN)
NORMAL_URLS = [
    "https://www.google.com",
    "https://www.github.com",
    "https://www.example.com"
]

# Настройки SOCKS-прокси (например, запущенного через `ssh -D 1080`)
SOCKS_PROXY = "socks5://127.0.0.1:1080"

# Настройки для имитации поведения пользователя (задержки)
задержка_между_запросами = random.uniform(1, 3)
задержка_между_страницами = random.uniform(3, 7)


def make_request(url, use_vpn=False):
    """Отправляет запрос к URL, используя прокси, если необходимо."""
    proxies = {}
    if use_vpn:
        proxies = {
            "http": SOCKS_PROXY,
            "https": SOCKS_PROXY,
        }

    try:
        print(f"Запрос к {url} (прокси: {proxies if proxies else 'нет'})") 
        response = requests.get(url, proxies=proxies, timeout=10)
        response.raise_for_status()  # Вызывает исключение для плохих статусов (4xx, 5xx)
        print(f"[{'VPN' if use_vpn else 'NO VPN'}] {url} → Status: {response.status_code}")
    except requests.exceptions.RequestException as e:
        print(f"Error fetching {url}: {e}")


def main():
    # Проверяем каждый URL: если он в списке VPN_URLS → используем прокси
    test_urls = VPN_URLS + NORMAL_URLS
    for url in test_urls:
        use_vpn = url in VPN_URLS
        make_request(url, use_vpn)
        time.sleep(задержка_между_страницами) # Задержка между запросами


if __name__ == "__main__":
    main()

Я набросал небольшой скрипт, работающий с hosts-файлом, он добавляет список URL-адресов из blacklist.txt. hosts-файл требует уровня администратора для редактирования.

Таким образом запрещённый URL-адрес не дойдёт до провайдера, а будет заблокирован на уровне операционной системы. Сам список найти можно, но именно в этом и заключается казус: нужно искать, хранить и обновлять такой список. В результате, получаем защиту от программ, не использующих уровень администратора, от «открой эту ссылку там такой угар хахаха», от сокращателя ссылок.

Хорошо, допустим, со списком Russia-blacklist разобрались, но ещё остались поисковые запросы. В формулировке «за умышленный поиск… и получение доступа…» мне не ясно, два действия неразрывно связаны или нет: то есть, я в поисковике Яндекс пишу «Как сделать бомбу?» (бомбовую статью 😁), не нахожу, переформулирую, умышленно ищу…, но не могу найти, ведь Яндекс заблокировал в поисковой выдаче соответствующие ресурсы. Будет ли это являться фактом поиска умышленной экстремистской информации и подпадать под статью? С точки зрения защиты от вредоносного ПО, можно пойти по пути создания правила для брандмауэра. (это пример кода не готовый к использованию, только чтоб показать логику)

# Список поисковых систем
$searchEngines = @(
    "www.google.com",
    "www.bing.com",
    "search.yahoo.com",
    "duckduckgo.com"
)

# Список разрешенных браузеров (их EXE-файлы)
$allowedBrowsers = @(
    "chrome.exe",
    "firefox.exe",
    "msedge.exe",
    "opera.exe",
    "brave.exe"
)

# Создаем правило блокировки для каждого поисковика
foreach ($domain in $searchEngines) {
    $ips = (Resolve-DnsName $domain -Type A).IPAddress
    
    foreach ($ip in $ips) {
        # Блокируем все приложения
        $ruleName = "Block $domain ($ip) for non-browsers"
        New-NetFirewallRule -DisplayName $ruleName `
                           -Direction Outbound `
                           -Action Block `
                           -RemoteAddress $ip `
                           -Program "System" `
                           -Enabled True
        
        # Разрешаем браузерам
        foreach ($browser in $allowedBrowsers) {
            $allowRuleName = "Allow $domain ($ip) for $browser"
            New-NetFirewallRule -DisplayName $allowRuleName `
                               -Direction Outbound `
                               -Action Allow `
                               -RemoteAddress $ip `
                               -Program "%ProgramFiles%\*\$browser" `
                               -Enabled True
        }
    }
}

Но даже теоретически, всё это выглядит как-то не очень. Нужно следить за списком плохих URL-адресов, крайне осторожно предоставлять уровень администратора, и это не решает проблему с расширениями и удалённо встраиваемым кодом. Представьте, 30-40 тыс. устройств с вредоносным ПО.

А что насчёт самого обычного пользователя?

Очень много людей вообще не следят за тем, что они устанавливают и откуда – это взято не с потолка. Стоит отметить, что я не являюсь специалистом в области информационной безопасности, профессиональным программистом и не владею юридическим языком. Я также не против такого закона, который будет образумливать маленьких любителей экстремизма, но реализация для меня не ясна.

А целью моей статейки является: поднять вопрос о безопасности устройств в контексте нового закона, узнать мнение экспертов в области информационной безопасности и как доказать, что программа? Последнее остаётся открытым.


Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.