Социальная инженерия и безопасность: уроки Кевина Митника
Социальная инженерия и безопасность: чему учит история Кевина Митника и как основателям закрыть процессные дыры - доступы, логи, роли и безопасные настройки.

Почему провалы безопасности часто начинаются с людей
Большинство инцидентов начинается не с «дырки в коде», а с разговора, письма или просьбы. Злоумышленнику часто проще убедить человека, чем ломать систему. Поэтому социальная инженерия рядом с безопасностью почти всегда: атака целится в доверие, спешку и привычку «быстро помочь».
Здесь обычно смешиваются две причины. Снаружи это выглядит как невнимательность: открыли вложение, назвали код из СМС, дали доступ «на часик». Но чаще корень в процессах: нет правила перепроверки, доступы выдаются всем подряд, непонятно, кто за что отвечает. Тогда даже осторожный сотрудник рано или поздно попадет в ловушку.
Типичная сцена: в общий чат пишет «подрядчик» и просит срочно добавить его в админку, потому что «релиз горит». Кто-то кидает инвайт, чтобы не тормозить работу. Если нет понятной процедуры, все выглядит как обычная рабочая суета. Именно так «входят» в компании.
Защита здесь - не один инструмент, а повторяемые привычки и правила:
- Любая просьба о доступе проверяется через второй канал (звонок, подтверждение у владельца системы).
- Доступ выдают минимальный и на нужный срок.
- Важные действия оставляют след: кто, когда и что изменил.
- Секреты не пересылают в чатах и почте, даже «на минуту».
- Нельзя ускорять процесс в обход правил, даже ради релиза.
Особенно критично это для стартапов, маленьких команд и аутсорса: людей мало, ролей много, дедлайны жесткие, а доступы часто раздаются «про запас». Чем раньше вы оформите простые правила, тем меньше шансов, что один разговор превратится во взлом.
Кевин Митник: уроки про доверие и слабые места процессов
Кевина Митника вспоминают не потому, что он был «гением кода», а потому что он наглядно показал: ломается не только техника, но и рутина людей. Его истории удобны тем, что в них почти нет «магии» - только привычки и пробелы в правилах.
Митник умел находить короткий путь туда, где «все и так понятно». Он давил не на сложные уязвимости, а на то, что происходит каждый день: звонки, просьбы, доступы, пароли, согласования. Когда в компании нет ясных правил, любой уверенный голос может подменить процесс.
Чаще всего работают простые рычаги: доверие («я из ИТ»), спешка («срочно, директор ждет»), авторитет («мне поручил руководитель») и рутинность («мы так делаем постоянно»).
Главная мысль: атакуют не только софт, но и процедуры. Если «временный доступ на час» не имеет срока и не фиксируется, он легко становится постоянным. Если вход в админку не требует второго фактора, то один выманенный пароль решает все. Если никто не проверяет, кто и зачем запросил доступ, то просьба превращается в обход контроля.
Эти истории стоит читать без романтики. Это не про «хакерскую харизму», а про дисциплину: кто может запрашивать доступ, как подтверждается личность, что считается нормой, а что красным флагом.
Если команда собирает продукт быстро (например, в TakProsto, где многое делается через чат и роли), такие правила лучше договорить заранее: кто подтверждает запросы, кто выдает права, кто имеет доступ к операциям уровня деплоя.
Как работает социальная инженерия на практике
Социальная инженерия ломает защиту не из-за «хакерских» трюков, а из-за обычных разговоров и переписок. Атакующий редко взламывает систему сразу. Сначала он добивается того, чтобы человек сам открыл дверь.
Обычно это выглядит как правдоподобная роль: «служба поддержки», «банк», «провайдер», «руководитель», «клиент» или «новый подрядчик». Дальше добавляется срочность: «иначе заблокируем аккаунт», «штраф уже начисляется», «прямо сейчас нужен доступ, иначе сорвем релиз».
Это бьет по простым триггерам: страх, желание помочь, давление сроков и уважение к статусу. В стартапах особенно легко, потому что нет четких правил, а один человек может и счета оплачивать, и доступы выдавать, и поддержку вести.
Часто атакующему нужен не «секретный сервер», а маленький шаг, который запускает цепочку: код из СМС или приложения-аутентификатора, сброс пароля «на минуту», доступ к документам, установка «временной» программы для удаленной помощи, подтверждение входа «это ведь вы?».
Простой пример: бухгалтеру звонят «из поддержки почты» и говорят, что видят подозрительный вход. Просят назвать код из СМС, чтобы «отменить попытку». Через минуту злоумышленник уже меняет пароль и настраивает пересылку писем, чтобы тихо читать счета и переписку.
Сильная защита начинается с привычки: любые срочные просьбы про доступы проверяются вторым каналом и по короткому внутреннему правилу, даже если просит «сам директор».
С чего начать основателю: карта систем и ролей
Многие инциденты начинаются не со взлома, а с путаницы: кто за что отвечает, где лежат ключи, какие доступы «временно» выдали и забыли. Поэтому первый шаг - не покупать новый инструмент, а нарисовать простую карту: системы, люди, права.
Шаг 1. Соберите список систем (активов)
Возьмите один документ и выпишите все места, где есть данные, деньги или возможность что-то менять. Обычно это почта и мессенджеры, облака и хранилища файлов, репозитории кода и CI/CD, CRM и поддержка клиентов, финансы (банк, эквайринг, бухгалтерия), домены и DNS.
Если вы делаете продукт в TakProsto, добавьте сюда саму платформу, операции деплоя и хостинга, экспорт исходников, управление доменом, а также снимки и откат (snapshots и rollback). Это тоже точки управления, которые важно контролировать.
Шаг 2. Опишите роли и реальные задачи
Дальше составьте список ролей (не людей): основатель, разработчик, менеджер, поддержка, бухгалтер. Для каждой роли запишите 3-5 ежедневных действий. Так легче увидеть лишние доступы: поддержке не нужен доступ к платежам, а менеджеру - к смене DNS.
Отдельно отметьте критические операции, которые нельзя делать «по просьбе в чате»: платежи и возвраты, сброс паролей, выдача и отзыв доступов, релизы и откаты, изменение домена, DNS, токенов и ключей.
Назначьте владельца каждой системы: одного человека, который отвечает за настройки, список пользователей и порядок выдачи прав. Это уменьшает шанс, что злоумышленник сыграет на спешке и размытых границах ответственности.
Принцип наименьших привилегий: простые правила
Принцип наименьших привилегий звучит скучно, но закрывает половину «человеческих» провалов. Идея простая: у каждого есть только тот доступ, который нужен для текущей работы, и не больше. Если аккаунт украдут или человек ошибется, ущерб будет ограничен.
Начните с понятного деления прав. В большинстве команд достаточно трех уровней: просмотр, изменение, администрирование. Просмотр нужен поддержке и аналитике, изменение - тем, кто реально правит контент или настройки в рамках своей зоны, администрирование - одному-двум ответственным. Чем меньше админов, тем проще контролировать риски и разбирать инциденты.
Дальше уберите «общие» учетные записи. Один логин на отдел и пароль в чате превращают любую проверку в гадание: кто именно сделал действие, когда и зачем.
Полезное правило для стартапа - временные доступы. Выдали право на конкретную задачу (подключить домен, сделать деплой), задача закрыта - доступ снят. То же относится к подрядчикам и стажерам: отдельный профиль и отдельный набор прав, без админских «на всякий случай».
Чтобы это не разваливалось, привяжите пересмотр прав к событиям: выход человека на работу (выдать базовый минимум), смена роли (пересобрать доступы), завершение проекта (снять временное), окончание работ подрядчика (закрыть доступ в тот же день), увольнение (немедленно отключить и проверить ключи и токены).
Простой пример: дизайнеру дали доступ «редактирование» только в проекте, где он правит интерфейс. Если его аккаунт попадет к злоумышленнику, тот не сможет открыть админку, менять платежные настройки или удалять окружения. Ошибаться можно, катастрофы быть не должно.
Аудит и следы действий: что фиксировать и как смотреть
Когда атака начинается с письма или звонка, защита часто ломается не на «взломе», а на действиях людей. Поэтому аудит действий пользователей и логи важны так же, как пароли: они показывают, что именно произошло, кто это сделал и с какого устройства.
Сначала зафиксируйте события, которые меняют доступ и деньги. Для небольшой команды достаточно базового набора: входы (успешные и неуспешные), вход с нового устройства или страны, выдача прав и смена ролей, создание и удаление пользователей, изменения настроек безопасности (2FA, ключи API, интеграции), операции с биллингом (оплаты, возвраты, смена реквизитов), опасные действия с данными (массовое удаление, экспорт, восстановление из бэкапа).
Чтобы логи были полезны, делайте их «читаемыми». У события должно быть простое имя, время, кто сделал (конкретный пользователь), откуда (IP и устройство), и что изменилось (старое значение и новое). Если сотрудник работает под «общим админом», расследование почти всегда превращается в спор.
Минимальные оповещения лучше настроить сразу: подозрительный вход, массовое удаление, смена ролей, создание нового ключа API. Оповещения должны быть редкими, иначе их начнут игнорировать.
Просмотр логов тоже должен быть процессом. Дайте доступ к просмотру только тем, кому нужно, и назначьте владельца: один человек раз в неделю смотрит последние события и отмечает аномалии. Если вы используете TakProsto, это удобно привязать к ритму команды: после релиза или перед откатом по снимку выделить 10 минут на проверку последних изменений.
Храните логи достаточно долго, чтобы успеть заметить проблему (часто 30-90 дней), и защищайте их от удаления. Идеально, когда даже администратор не может «подчистить следы» без отдельного подтверждения и записи об этом.
Безопасные настройки по умолчанию и процесс без импровизации
Когда команда растет, проблемы начинаются не с «хакеров», а с мелких послаблений: кто-то открыл доступ «на минуту», кто-то выдал права «пока не разберемся». Злоумышленнику часто достаточно поймать момент, когда вы действуете по привычке.
Сделайте так, чтобы новый сервис или проект стартовал уже в безопасном режиме. Полезно завести простой шаблон настроек, который копируется каждый раз, а не собирается по памяти:
- роли по умолчанию с минимальными правами (админов как можно меньше)
- все доступы закрыты, пока их явно не открыли (особенно публичные)
- журналы действий включены сразу и хранятся достаточно долго
- секреты (ключи, токены) не лежат в чате и заметках, а меняются при подозрении
- тестовые среды отделены от продакшена и не имеют лишних интеграций
Дальше важен процесс, который не ломается из-за спешки. Для критичных действий (выдача прав, смена домена, экспорт исходников, отключение логов) помогает правило двух шагов: подтверждение вторым человеком или хотя бы вторым каналом (например, голосом, а не только сообщением).
Отдельно опишите восстановление доступа. В нем не должно быть места фразам «срочно сделайте». Пусть будет один понятный маршрут: кто может запросить, кто подтверждает личность, какие данные проверяются, как фиксируется результат. Если вы используете TakProsto, заранее решите, кто имеет право на операции уровня деплоя и отката (снимки и rollback), и как это подтверждается.
Раз в месяц делайте короткую ревизию: проверьте список админов, публичные настройки, свежесть ключей и то, что логи реально пишутся и их кто-то просматривает.
Пошаговый план на 7 дней для небольшой команды
За неделю можно заметно снизить риск «человеческих» инцидентов, если идти от простого: кто за что отвечает, кто что может делать, и где это видно.
Дни 1-5: наводим порядок в доступах и следах действий
- День 1: инвентаризация. Выпишите все системы (почта, облако, банк, домены, репозитории, CRM, хостинг) и назначьте владельца на каждую. Соберите текущие списки доступов: кто админ, у кого есть права на платежи, экспорт кода, изменение продакшена.
- День 2: убрать лишнее. Отзовите доступы тем, кому они «когда-то понадобились». Закройте общие аккаунты и «пароли в чате». Оставьте минимум, без которого человек не может делать свою работу.
- День 3: права по ролям. Опишите 3-6 ролей (разработка, поддержка, финансы) и раздайте права по ним, а не «по просьбе в личку». Для чувствительных действий добавьте второй шаг подтверждения.
- День 4: логи и уведомления. Включите журналирование входов, смены прав, платежей, смены паролей и ключей. Назначьте ответственного: кто раз в день смотрит алерты и раз в неделю делает короткую проверку.
- День 5: фиксируем процедуры. На одной странице опишите, как выдаете доступ, как его забираете, как делаете сброс пароля, как согласуете платежи, что делать при увольнении или потере устройства.
Дни 6-7: учим команду и закрепляем «по умолчанию безопасно»
День 6: 30 минут обучения на ваших реальных сценариях: «срочно оплатить», «дай доступ на час», «я потерял телефон». Введите правило: любая срочность проверяется вторым каналом.
День 7: включите безопасные настройки по умолчанию: запрет админ-прав без причины, тайм-ауты сессий, обязательные обновления, доступ к продакшену только по необходимости. Если вы собираете продукт в TakProsto, отдельно проверьте, кто может экспортировать исходники, менять домены, откатывать снапшоты и запускать деплой.
Типичные ошибки и ловушки, в которые попадают основатели
Самые дорогие провалы безопасности происходят не из-за «суперхакеров», а из-за привычек команды и дыр в процессах. У основателей есть особый риск: скорость важнее всего, и решения «временно» становятся постоянными.
Частая ловушка - выдавать всем админ-доступ «на всякий случай». Так проще запускать релизы и чинить проблемы ночью, но цена высокая: любая ошибка или взлом аккаунта становится взломом всей системы. Правило простое: доступ дается под задачу и на срок.
Вторая проблема - нет владельцев систем. Если непонятно, кто отвечает за настройки, бэкапы и реагирование на инциденты, то в момент атаки начинается хаос. Назначьте ответственного хотя бы за три вещи: учетные записи, конфигурации и разбор подозрительных событий.
Третья ловушка - доступы не снимаются после завершения проекта или увольнения. «Потом удалим» часто означает «никогда». В итоге бывший подрядчик или старый токен в CI продолжает жить месяцами.
Еще один риск - критичные операции решаются в личных чатах: «срочно открой порт», «дай доступ к базе», «скинь дамп». Без фиксации, без проверки личности, без второго шага. Подмена аккаунта или похожий ник легко превращают «помоги» в инцидент.
Наконец, логи могут быть включены, но никто их не смотрит и не понимает, что считать подозрительным. Минимальный набор сигналов, который стоит договориться отслеживать:
- входы в админку и панели из новых мест или в необычное время
- массовые изменения прав и создание новых ключей
- экспорт данных, дампы, скачивание больших объемов
- отключение логирования, бэкапов, уведомлений
Большинство этих проблем лечится простыми правилами и дисциплиной, а не сложными инструментами.
Короткий чеклист: быстрые проверки за 15 минут
Если времени мало, не пытайтесь «сделать безопасность» целиком. За 15 минут можно найти самые частые дыры: отсутствие владельцев, общие доступы и тишину в логах.
Откройте заметку и выпишите: какие сервисы у вас есть (почта, облако, Git, CRM, хостинг, платежи, админка продукта), кто за каждый отвечает, и где хранятся доступы.
Пять быстрых проверок, которые дают максимум пользы:
- Список систем + владелец. Для каждого сервиса должен быть один ответственный человек.
- Нет общих аккаунтов. Проверьте логины вида admin/team/shared и общие пароли в чатах. У каждого сотрудника должен быть личный вход.
- Логи включены и их кто-то смотрит. Фиксируйте входы, изменения прав и ключевые настройки. Уведомления о подозрительных входах (новое устройство, новая страна, много ошибок пароля) лучше включить сразу.
- Критичные действия с подтверждением. Смена прав, удаление данных, выпуск ключей и перенос домена должны требовать подтверждения или второго человека.
- Понятный сценарий доступа. Как выдаете доступ новичку, как снимаете в день увольнения, и как восстанавливаете при утере. Ответ «по ситуации» означает, что регламент нужен.
Мини-пример: разработчик просит «на час» доступ к продакшену. Если у вас нет личных аккаунтов и логов, вы не узнаете, кто и что поменял. Если есть личный доступ, ограничение по времени и запись действий - риск резко падает.
Пример сценария: срочная просьба и проверка на подмену
В пятницу в 18:40 в общий чат приходит сообщение: «Срочно. Я на встрече, нет времени. Нужен доступ к админке и выгрузка базы, отправь мне сегодня. И еще переведи 180 000 по реквизитам, я скину в ответ». Имя и аватар совпадают с руководителем, стиль похож. Атакуют не сервер, а вашу спешку.
Первая реакция команды должна быть не «сделать быстрее», а «проверить, кто это». Помогает короткое правило, которое срабатывает автоматически:
- Проверить канал: это точно корпоративный аккаунт, а не новый контакт или пересланное сообщение.
- Перезвонить по номеру из вашего справочника, а не по номеру из чата.
- Попросить подтверждение вторым способом: например, кодовая фраза дня или подтверждение в другом канале.
- Если речь о платеже, включить правило двух согласований.
Дальше помогает не героизм, а процесс. Запрос на доступ идет через известный путь: роль, срок, причина. Если доступ нужен, выдайте его временно и минимально (принцип наименьших привилегий), а действие отметьте в журнале. Для платежей - только через утвержденный регламент и реквизиты из заранее сохраненного списка.
Если выяснилось, что это был подменный аккаунт, не ищите виноватого. Сделайте разбор на 10 минут: где правило было неясным, что можно упростить в настройках по умолчанию, какие уведомления и аудит действий пользователей добавить. Затем обновите памятку одним абзацем и напомните команде: «срочно» не отменяет проверку.
Следующие шаги: закрепить процессы и встроить безопасность в разработку
Социальная инженерия чаще всего срабатывает там, где у команды нет ясных правил: кто что может делать, как проверяем просьбы, что считаем подозрительным. Прогресс обычно дает не один большой проект, а несколько маленьких улучшений, доведенных до привычки.
Выберите на этот месяц три изменения, которые реально внедрите:
- Права. Раздать доступы по ролям и убрать лишнее, особенно у админов и подрядчиков.
- Логи. Включить понятные следы действий (входы, изменения настроек, выдача прав, удаление данных).
- Настройки по умолчанию. Запретить опасные значения по умолчанию (общие пароли, публичные ресурсы, «всем доступно») и сделать нормой 2FA там, где возможно.
Дальше важен ритм: раз в неделю 15 минут на просмотр событий и странных действий (новые устройства, входы ночью, массовые изменения), раз в месяц - короткий аудит доступов и список «кому и зачем».
Зафиксируйте процессы на одной странице: как выдаете доступ, как меняете права, как подтверждаете срочные просьбы, что делать при подозрении. Это нужно не «ради документа», а чтобы новички и основатели действовали одинаково.
Если вы быстро делаете внутренние инструменты, закладывайте роли, логи и откат изменений с первого дня. Например, в TakProsto это удобно учитывать сразу: продумать роли, включить аудит действий, договориться, кто может делать деплой и откат по снимкам. Так меньше зависит от ручных настроек и «памяти» одного человека.
FAQ
Почему социальная инженерия часто опаснее уязвимостей в коде?
Социальная инженерия бьет по доверию и привычке «помочь быстро». Технику ломать сложнее и дольше, а человека можно убедить сделать нужное действие: открыть вложение, назвать код, выдать доступ или подтвердить вход.
Защита начинается с правил и привычек, а не с «еще одного инструмента».
Что делать, если в чат пришла срочная просьба «дай доступ на час»?
Используйте короткое правило: любые просьбы про доступы, платежи, коды и сброс пароля подтверждаются вторым каналом.
Практика:
- перезвонить по номеру из вашего справочника, а не из сообщения;
- уточнить у владельца системы;
- не принимать «срочность» как аргумент для обхода процесса.
Как правильно выдавать доступ подрядчику или новому сотруднику?
Проверяйте три вещи: кто просит, зачем, на какой срок.
Минимальный чек:
- подтверждение личности (второй канал);
- доступ только под задачу (просмотр/изменение/админ);
- срок действия и автоматическое снятие;
- запись в логах: кто выдал, кому, когда, на сколько.
Что такое принцип наименьших привилегий и как внедрить его без бюрократии?
Принцип простой: дать минимум прав, достаточный для текущей работы, и не больше.
На практике это означает:
- меньше администраторов;
- раздельные уровни «просмотр / изменение / администрирование»;
- временные права под конкретную задачу;
- никаких общих аккаунтов «на команду».
С чего основателю начать, если в компании нет порядка с доступами?
Начните с карты «системы → владелец → кто имеет доступ». В списке должны быть места, где есть деньги, данные или возможность менять продукт.
Обычно это: почта, мессенджеры, облачные хранилища, репозитории и CI/CD, CRM/поддержка, банк/эквайринг/бухгалтерия, домены и DNS, хостинг/деплой. Если используете TakProsto — добавьте операции деплоя, экспорт исходников, домены, snapshots и rollback.
Какие логи и аудит-события нужно включить в первую очередь?
Фиксируйте все, что влияет на доступы, деньги и безопасность.
Минимальный набор событий:
- входы (успешные/неуспешные), вход с нового устройства;
- выдача/изменение ролей, создание/удаление пользователей;
- смена 2FA, ключей API, интеграций;
- операции с оплатами/возвратами/реквизитами;
- массовое удаление, экспорт, восстановление.
Логи должны быть «читаемыми»: кто сделал, когда, откуда, что изменилось (до/после).
Почему общие аккаунты и «пароли в чате» — это почти гарантированный провал?
Одна причина: ими невозможно управлять и расследовать инциденты.
Две основные проблемы:
- вы не знаете, кто именно совершил действие;
- злоумышленник получает «готовый ключ» ко всему.
Решение: личные аккаунты для каждого, роли по задачам, и запрет пересылки паролей/кодов в чатах.
Какие безопасные настройки по умолчанию стоит ввести в команде?
Сделайте «безопасно по умолчанию» частью шаблона запуска.
Базовые настройки:
- минимальные роли по умолчанию, админов — минимум;
- доступ закрыт, пока его явно не открыли;
- логи включены сразу и защищены от удаления;
- секреты не хранятся в чатах/заметках и меняются при подозрении;
- тест и прод разделены.
Для критичных действий добавьте второй шаг: подтверждение другим человеком или вторым каналом.
Как защититься от атак через коды 2FA и “подтвердите вход, это ведь вы?”
Сосредоточьтесь на трех вещах:
- подтверждение личности вторым каналом;
- запрет сообщать коды из СМС/аутентификатора и пароли кому бы то ни было;
- понятный маршрут восстановления: кто запрашивает, кто подтверждает, как фиксируется.
Если человек давит «срочно» и просит код — это почти всегда красный флаг.
Можно ли снижать риск в TakProsto, если продукт быстро собирается через чат и роли?
Да, если заранее определить, кто и как их делает.
Рекомендации:
- назначьте владельцев операций: деплой, экспорт исходников, смена домена, rollback;
- включите аудит действий и редкие, но важные уведомления (новый ключ, смена ролей, подозрительный вход);
- выдавайте права на эти операции временно и минимально;
- договоритесь, что «срочно» не отменяет подтверждение.
Это особенно важно в средах, где много делается через роли и чат-процессы.