Как это устроено на работе · Обновлено 18 октября 2026 · 14 мин чтения
Вирус — это обычная программа, которую кто-то запустил. Дыра — обычная ошибка в вашей программе, которой воспользовались. Ни то, ни другое не требует гения: достаточно открыть не тот файл или поверить тому, что пришло из формы. Разбираем цепочку заражения, причины дыр и правила, которые закрывают большую часть из них.
Статья для подписчиков: ниже — начало (2 из 8 разделов, около 36 % текста). Полный текст открывается по подписке.
Что ещё в этой статье
Как работает вредоносная программа: четыре шага от файла до последствий
Восемь причин, по которым в коде появляются дыры, — без «плохих хакеров»
Три дыры, которые встречаются чаще всего: ввод как команда, чужой текст на странице, чужой номер в адресе
Десять правил, которые держит в голове программист
Чек-лист: что проверить перед публикацией проекта
Чего делать не нужно: свой антивирус, свой шифр, пароли «как есть»
Закон: где заканчивается «проверить» и начинается статья 273 УК
Это не страшилки про хакеров
Почти всё, что ломается, ломается не «гениальным взломом», а ошибкой, которую никто не проверил: доверили вводу, оставили открытую админку, положили ключ в код. Поэтому статья не про то, как бояться, а про то, что проверить и в каком порядке.
Вирус — это программа, а не «файл, который летает по интернету»
Пока код не выполнился, он ничего не делает. Лежит себе файл в папке «Загрузки» и совершенно безопасен. Опасным его делает запуск: двойной клик, открытый документ с макросом, установленная «бесплатная» программа, скрипт на странице или расширение браузера.
Шаг
Что происходит
Как это выглядит
Попадает
Файл или код оказывается у вас на компьютере
вложение в письме, «кряк» к программе, установщик с торрента, расширение браузера, чужая флешка, ссылка в мессенджере, чужая зависимость в проекте
Запускается
Код начинает исполняться
вы сами нажали; открыли документ с макросом; браузер выполнил скрипт со страницы; сработала автозагрузка
Закрепляется
Программа остаётся после перезагрузки
прописывается в автозапуск (реестр Windows, папка «Автозагрузка», cron на Linux), маскируется под системный процесс, копирует себя в несколько мест
Делает дело
Наступает то, ради чего всё было
крадёт пароли, куки и токены; шифрует файлы и требует выкуп; майнит криптовалюту; рассылает спам; оставляет «дверь» для хозяина — бэкдор
Классические файловые вирусы, которые заражали другие программы, сегодня почти вымерли: данные дороже файлов. Поэтому чаще встречаются кража доступа и шифровальщики — им не нужно ломать вашу программу, достаточно, чтобы вы запустили их.
Почему photo.jpg.exe выглядит как photo.jpg
Windows по умолчанию прячет расширения, поэтому файл с двумя расширениями в проводнике выглядит безобидной картинкой. Один двойной клик — и запустилась программа, а не открылась фотография. Это не «глупость пользователя», а честная ловушка интерфейса: подробнее — в уроке про имя файла и расширение.
Откуда берутся дыры
Уязвимость — это не вирус и не «хакер». Это ошибка или допущение в программе, которым можно воспользоваться. Чаще всего дыру даже не взламывают: ею пользуются руками, потому что дверь оставили открытой.
Причина
Как это выглядит
Почему так вышло
Доверие вводу
проверка только в браузере; запрос собирается склейкой строк; данные из формы уходят прямо в команду или в запрос
«в это поле же не введут ничего плохого» — а поле видят все
Доверие чужому коду
библиотека «для удобства», пакет с похожим названием, установка без фиксации версии
чужой код получает те же права, что и ваш
Настройки по умолчанию
открытая админка, база доступна наружу, отладочный режим на сервере, пароль «admin»
по умолчанию всё открыто, а закрывать нужно руками
Сложность и изменения
новое поле добавили в одном месте, а проверку — нет; старый сценарий остался; «поправили только текст»
программа меняется быстрее, чем её проверяют
Секреты в коде
пароль в файле, ключ в git, токен в переписке
так быстрее — пока репозиторий не увидел кто-то ещё
Спешка
«потом закроем», «выпустим как есть, потом доделаем»
сроки давят сильнее, чем мысль о чужом человеке
«Работает — не трогай»
два года без обновлений, а дыра в зависимости уже известна
обновление выглядит риском, а не защитой
Предположение об окружении
«браузер не даст», «пользователь не подделает запрос», «этот адрес знают только свои»
браузер — чужой компьютер, а адрес может открыть любой
Другие статьи раздела
Работа с ИИ-помощником — Короткий ответ: работа с ИИ-помощником — не профессия, а навык внутри любой профессии, как умение искать в интернете. Разбираем, что помощник уже делает хорошо, чего не умеет вообще и какие три умения остаются за человеком.
Как выглядит работа программиста — Со стороны кажется, что рабочий день — это непрерывное написание кода. На самом деле код занимает меньшую часть времени: остальное — чтение, разговоры, проверка и разбирательство, почему «вчера работало, а сегодня нет». Разбираем, из чего складывается обычный день.
Какие вообще бывают программисты — «Программист» — это не одна профессия, а десяток разных работ. Общее у них одно: превратить задачу в понятные машине шаги. Дальше начинаются различия — инструменты, люди рядом и то, что вы делаете руками каждый день.
Как выбрать направление — «Понятно, что нравится, — и всё равно непонятно, что делать». Это нормально: совет «прислушайтесь к себе» не отвечает на вопрос «кем быть». Ниже — ответ по шагам: наблюдаемые сигналы, таблица «что вам нравится → какая это профессия → какие навыки развивать → с чего начать», план на первые 30 дней и честные оговорки.
Что ещё есть на сайте
Учиться
Уроки — Все уроки трёх траекторий: список, поиск и ваш прогресс.
Компьютер без страха — Файлы, браузер, пароли, мошенники, документы и деньги в интернете простыми словами. Бесплатно и без оплаты.
Если уже случилось — Деньги ушли с карты, пропала симка, взломали аккаунт, потерялись документы — порядок действий по шагам и куда звонить.
Какой компьютер нужен — Чек-лист по уровням: для учёбы ничего покупать не нужно, для своего проекта — 16 ГБ и SSD, для работы — 32 ГБ. Плюс нейросети и устаревание железа.
Без кода: ставить задачу — Как объяснить задачу программисту и принять работу. Кода нет ни строчки.
Профессии и языки — Кто такие программисты, зачем столько языков и что делать после курса.
Потренироваться
Практикум: задачи из жизни — Та же команда урока — на работе, дома и в документах. 63 задачи с проверкой вывода и без регистрации.
Игры-тренажёры — Найти ошибку в чужом коде, прочитать, что делает программа, и увидеть, что случится, если нажать клавишу.
Симулятор: от задания до сдачи — Пройти путь целиком: папка, терминал, файл, сохранение, запуск, проверка по критерию приёмки. Два сценария и две системы.
Мастерская экрана — Проверить цвета и раскладку страницы: контраст, шаблоны, конструктор.
Колесо фортуны — Одна прокрутка в день: скидка на подписку или дни доступа.
Словари и юмор
Словарь программиста — Слова из уроков и кода: парсинг, функция, хеш, компиляция.
Словарь руководителя — Слова из работы простыми словами: скоуп, дедлайн, MVP, бэклог.
Корявые задачи — Юмор: как ставят задачи и что из этого получается. С моралью.
Сайт, оплата и помощь
Родителям — Возраст, время на уроки, безопасность в сообществе, деньги и результат — что важно знать до оплаты.