Skip to content

Вопросы на собеседовании: Инженер безопасности

100 реальных вопросов с образцовыми ответами и пояснениями для уровня Аналитик по безопасности.

Смотреть пример резюме: Инженер безопасности

Тренировка флешкарточками

Интервальное повторение · Hunter Pass

Вопросы

fundamentals

Триада CIA определяет три главные цели безопасности: конфиденциальность, целостность и доступность.

  • Конфиденциальность ограничивает чтение зарплатных данных авторизованными людьми.
  • Целостность выявляет несанкционированные изменения, например через подпись артефакта релиза.
  • Доступность поддерживает работу сервиса с помощью резервирования, бэкапов и защиты от отказа в обслуживании.

Зачем это спрашивают: Интервьюер проверяет, связываете ли вы каждую цель с конкретным контролем.

vulnerabilitiesrisk-managementvulnerability-management

Угроза может причинить вред, уязвимость является слабым местом, а риск объединяет вероятность и влияние эксплуатации.

  • Интернет-злоумышленник является угрозой, а непропатченный публичный сервер является уязвимостью.
  • Риск растет, если сервер хранит данные клиентов, а рабочий эксплойт опубликован.
  • Патч или ограничение внешнего доступа снижает риск, хотя угроза остается.

Зачем это спрашивают: Сильный ответ разделяет понятия и показывает, как контроль меняет риск.

risk-management

Вероятность оценивает реальность события, а влияние оценивает возможный ущерб.

  • Активная эксплуатация делает атаку на публичный сервис вероятнее, чем на изолированный лабораторный хост.
  • Потеря тестовой страницы влияет меньше, чем кража платежных данных из продакшена.
  • Команды используют обе оценки для приоритизации, а не считают все находки равными.

Зачем это спрашивают: Интервьюер оценивает, умеете ли вы приоритизировать риск по вероятности и последствиям.

fundamentalsattack-surface

Поверхность атаки включает все доступные точки взаимодействия злоумышленника с системой.

  • В нее входят API, порты, страницы входа, загрузки, аккаунты, интеграции и физический доступ.
  • Забытые поддомены и неиспользуемые административные эндпоинты учитываются, пока доступны.
  • Удалить ненужный сервис или право надежнее, чем только наблюдать за ним.

Зачем это спрашивают: Интервьюер проверяет понимание внешней доступности и сокращения поверхности атаки.

least-privilegeaccess-control

Принцип наименьших привилегий дает пользователю или сервису только права для текущей задачи.

  • Сервис отчетов, читающий счета, не должен иметь право удаления в базе.
  • Административный доступ лучше выдавать временно, а не привязывать к повседневному аккаунту.
  • Периодические ревью убирают доступ, оставшийся после смены роли или обязанностей.

Зачем это спрашивают: Сильный ответ применяет принцип и к людям, и к сервисам.

fundamentalsdefense-in-depth

Эшелонированная защита использует независимые уровни, чтобы отказ одного контроля не открыл всю систему.

  • Параметризованные запросы предотвращают SQL-инъекцию, а узкие права базы снижают оставшийся ущерб.
  • MFA помогает после кражи пароля, а мониторинг сессий все еще выявляет злоупотребление.
  • Проверенные бэкапы снижают ущерб, если превентивные и детективные меры не сработали.

Зачем это спрашивают: Интервьюер ожидает взаимодополняющие уровни с разными сценариями отказа.

risk-management

После оценки команда может избежать, снизить, передать или принять риск.

  • Избежание может убрать ненужный публичный сервис, а снижение может установить патч и ограничить доступ.
  • Страховка или договор передает часть потерь, но не снимает техническую ответственность.
  • Принятие должно быть явным, ограниченным по времени, записанным и иметь уполномоченного владельца.

Зачем это спрашивают: Интервьюер проверяет, считаете ли вы принятие риска решением, а не бездействием.

Тип контроля показывает, останавливает ли он событие, выявляет его или возвращает безопасное состояние.

  • MFA является превентивным контролем, блокирующим многие входы с украденным паролем.
  • Алерт о невозможном перемещении является детективным и выявляет подозрительное использование.
  • Отзыв сессий и восстановление бэкапа являются корректирующими действиями после компрометации.

Зачем это спрашивают: Сильный ответ различает момент действия контроля на реалистичных примерах.

Безопасность по умолчанию означает, что новая система начинает работу в безопасном состоянии без ручного усиления.

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

Зачем это спрашивают: Интервьюер оценивает понимание безопасных настроек как защиты от ошибок конфигурации.

threat-modeling

Граница доверия находится там, где данные или управление переходят между компонентами с разным доверием.

  • Ввод браузера при переходе в API остается недоверенным, даже если его создал обычный интерфейс.
  • Вызов базы приложением пересекает границу, управляемую учетными данными и сетевыми правилами.
  • Каждый переход требует идентификации стороны, валидации, авторизации и полезного журнала безопасности.

Зачем это спрашивают: Интервьюер проверяет, умеете ли вы размещать проверки на границах системы.

http

Каждая часть HTTP-запроса под контролем клиента является недоверенной.

  • Путь, параметры, заголовки, cookie и тело можно изменить через curl или прокси.
  • Content-Type описывает данные, но не доказывает их безопасность.
  • Сервер проверяет тип, длину, формат, бизнес-правила и авторизацию до использования.

Зачем это спрашивают: Сильный ответ отвергает доверие к значениям и заголовкам, созданным браузером.

http

HTTP-методы выражают намерение, поэтому контроли учитывают чтение или изменение состояния.

  • GET и HEAD не должны удалять данные, потому что их могут вызвать ссылки и роботы.
  • Изменяющие методы требуют авторизации и защиты от CSRF при сессиях на cookie.
  • Название метода не является контролем доступа, поэтому каждый эндпоинт проверяет права.

Зачем это спрашивают: Интервьюер связывает семантику HTTP с защитой изменяющих запросов.

http

Ошибка должна помогать клиенту действовать, не раскрывая полезные злоумышленнику детали.

  • Возвращайте стабильное сообщение, а не стек, SQL-запрос, путь или секрет.
  • Подробности пишите на сервере с ID корреляции для сопоставления с ответом.
  • Ошибка входа не должна подтверждать существование конкретного аккаунта.

Зачем это спрашивают: Интервьюер оценивает баланс между полезной ошибкой и раскрытием информации.

sessionscookies

Сессионные cookie обычно используют Secure, HttpOnly и подходящее значение SameSite.

  • Secure передает cookie только по HTTPS.
  • HttpOnly запрещает чтение из JavaScript и ограничивает кражу токена при многих XSS.
  • SameSite сокращает межсайтовую отправку, а узкие Domain, Path и срок дополнительно снижают риск.

Зачем это спрашивают: Сильный ответ объясняет отдельную угрозу, которую снижает каждый атрибут.

Политика одного источника запрещает странице свободно читать данные другого источника.

  • Источник объединяет схему, хост и порт, поэтому HTTP и HTTPS различаются.
  • Некоторые запросы к другому источнику отправляются, но JavaScript обычно не читает их ответы.
  • CORS ослабляет границу для разрешенных источников, а формы и встроенные ресурсы имеют отдельные правила.

Зачем это спрашивают: Интервьюер проверяет понимание браузерной границы, изменяемой CORS.

cors

CORS является браузерной политикой, определяющей, какие источники могут читать ответы от другого источника.

  • Браузер отправляет Origin и может выполнить предварительный OPTIONS-запрос.
  • Серверу следует разрешать конкретные источники, особенно при передаче учетных данных.
  • CORS не является аутентификацией, не останавливает curl и не заменяет защиту от CSRF.

Зачем это спрашивают: Сильный ответ объясняет браузерное применение и ограничения CORS.

validation

Клиентская валидация улучшает интерфейс, но пользователь контролирует клиент.

  • Злоумышленник удалит JavaScript-проверки, изменит скрытые поля или применит Burp Suite.
  • Сервер обязан проверять значения, размер, бизнес-правила и владение.
  • Скрытая кнопка администратора не защищает эндпоинт от прямого запроса.

Зачем это спрашивают: Интервьюер проверяет, остается ли применение правил на сервере.

tlscryptography

TLS обеспечивает конфиденциальность, целостность и аутентификацию стороны для передаваемых данных.

  • Шифрование не дает сетевому наблюдателю читать трафик приложения.
  • Проверка целостности делает незаметное изменение практически невозможным.
  • Проверка сертификата подтверждает сервер, но TLS не делает код приложения безопасным.

Зачем это спрашивают: Сильный ответ охватывает три свойства и важное ограничение.

cryptography

Предупреждение означает, что браузер не смог подтвердить доверенную подлинность сайта, поэтому не обходите его и не вводите чувствительные данные.

  • Проверьте URL и часы устройства, потому что неверное имя хоста или дата могут вызвать предупреждение.
  • Обычно браузер проверяет имя хоста и цепочку сертификатов до доверенного центра сертификации.
  • Остановитесь и сообщите о проблеме, не вводите пароль или платежные данные до исправления.

Зачем это спрашивают: Интервьюер проверяет базовую реакцию на предупреждение о сертификате и понимание цепочки доверия.

network-securitydnsnetworking

DNS находит IP по имени, порт выбирает сервис, а межсетевой экран управляет соединениями.

  • Браузер может разрешить app.example.com и подключиться к TCP-порту 443.
  • Имя хоста все еще нужно для проверки TLS и виртуального хостинга HTTP.
  • За разрешенным портом все равно нужны безопасный код, аутентификация и авторизация.

Зачем это спрашивают: Интервьюер проверяет основы сети без представления межсетевого экрана полной AppSec-защитой.

Закрытые вопросы

  • 21

    Что такое инъекция как класс уязвимостей?

    injectionvulnerabilitiesvulnerability-management
  • 22

    Как возникает SQL-инъекция и как ее предотвратить?

    injectionweb-attackssql
  • 23

    Что такое инъекция команд операционной системы?

    injectionsystem-design
  • 24

    Что такое межсайтовый скриптинг, или XSS?

    xssweb-attacks
  • 25

    Что такое межсайтовая подделка запроса, или CSRF?

    csrfweb-attacks
  • 26

    Что такое подделка серверных запросов, или SSRF?

    ssrf
  • 27

    Что такое уязвимость обхода пути?

    vulnerabilitiesvulnerability-managementpath-traversal
  • 28

    Чем опасна небезопасная десериализация?

  • 29

    Что считается ошибкой конфигурации безопасности?

    web-attacks
  • 30

    Какие проверки безопасности нужны при загрузке файлов?

  • 31

    Чем отличаются аутентификация и авторизация?

    authidentity-access
  • 32

    Как следует хранить пароли?

    passwords
  • 33

    Что такое соль и перец при хранении паролей?

    passwords
  • 34

    Как работает серверная сессия?

    sessions
  • 35

    Какие меры защиты нужны для сессии?

    sessions
  • 36

    Что такое JWT и из каких трех частей он состоит?

    jwt
  • 37

    Какие проверки нужны при валидации JWT?

    jwtvalidation
  • 38

    Какую проблему решает многофакторная аутентификация?

    authidentity-accessmfa
  • 39

    Чем отличаются RBAC и ABAC?

    rbacidentity-accessabac
  • 40

    Что такое IDOR, или нарушение авторизации на уровне объекта?

    authidentity-access
  • 41

    Чем отличаются кодирование, хеширование и шифрование?

    encryptioncryptography
  • 42

    Чем отличаются симметричная и асимметричная криптография?

  • 43

    Что доказывает цифровая подпись?

    cryptography
  • 44

    Почему важны безопасная случайность, nonce и IV?

    cryptography
  • 45

    Чем отличаются SAST и DAST?

    sastdast
  • 46

    Что дают SCA и SBOM?

    supply-chain
  • 47

    Как следует управлять секретами приложения?

    secrets
  • 48

    Какие базовые практики безопасности применимы к контейнерам?

    containers
  • 49

    Как CVE и CVSS помогают управлять уязвимостями?

    vulnerabilitiesvuln-managementvulnerability-management
  • 50

    Каковы основные этапы управления уязвимостями?

    vulnerabilitiesvuln-managementvulnerability-management
  • 51

    Semgrep обнаружил SQL-инъекцию: поисковая строка попадает в запрос PostgreSQL. Как вы проверите и классифицируете находку?

    injectionvalidationweb-attacks
  • 52

    OWASP ZAP сообщил об отражённой XSS на странице поиска в staging. Что вы проверите перед подтверждением?

    xssowasp
  • 53

    Snyk нашёл CVE высокой критичности в транзитивном npm-пакете API-сервиса. Как вы классифицируете находку?

    vuln-managementcveapi
  • 54

    SonarQube пометил строку `test-password` в unit-тесте как жёстко заданный пароль. Что вы сделаете?

    passwordsunit
  • 55

    DAST сообщает, что в HTTPS-ответе страницы входа нет HSTS, но приложение работает за CloudFront. Как вы проверите находку?

    dastcloud-securityaws
  • 56

    SCA-гейт блокирует релиз из-за критической CVE в тестовом runner, который заявлен только как dev-зависимость. Что вы сделаете?

    vuln-managementcve
  • 57

    CodeQL обнаружил path traversal в функции распаковки архива. Как вы проверите отчёт?

    validationpath-traversal
  • 58

    Burp Scanner сообщил о CSRF в запросе настроек аккаунта. Как понять, можно ли это эксплуатировать?

    csrfattacksappsec-tools
  • 59

    Trivy показывает 18 уязвимостей высокой критичности в пакетах Debian внутри контейнера. Как вы их приоритизируете?

    vulnerabilitiescontainers
  • 60

    Semgrep, ZAP и Snyk создали три тикета, которые похожи на одну уязвимость upload-эндпоинта. Как вы их разберёте?

    vulnerabilitiesendpoints
  • 61

    Node.js эндпоинт поиска вставляет `q` в SQL-условие LIKE через конкатенацию. Как вы это исправите?

    sqlendpoints
  • 62

    Комментарии пользователей в Markdown выполняют скрипт при просмотре в админке. Как вы устраните проблему?

  • 63

    Страница профиля передаёт поле `bio` из API в `element.innerHTML`. Как исправить и проверить риск DOM XSS?

    xssrisk-managementapi
  • 64

    Функция предпросмотра URL может запросить `http://127.0.0.1:3000/admin`. Как вы исправите SSRF?

    ssrfhttpnetworking
  • 65

    Download-роут объединяет каталог загрузок с параметром `filename` из запроса. Как предотвратить path traversal?

    joinspath-traversal
  • 66

    API возвращает `Access-Control-Allow-Origin: *` вместе с credentials. Что проверить перед изменением CORS-конфигурации?

    corsconfig
  • 67

    Production-страница ошибки показывает stack trace Django и настройки окружения. Что вы измените?

    frameworksdebuggingtracing
  • 68

    Загрузка аватара доверяет расширению `.jpg` и хранит файлы под web root. Как её усилить?

  • 69

    После входа приложение перенаправляет на любой URL из параметра `next`. Как убрать open redirect?

  • 70

    Страницу подтверждения платежа можно встроить во внешний iframe. Как исправить риск clickjacking?

    risk-management
  • 71

    Как проверить login-эндпоинт на базовые слабости против brute force и раскрытия существующих аккаунтов?

    endpoints
  • 72

    Как вы протестируете password-reset flow перед релизом?

    passwords
  • 73

    Пользователь меняет пароль, но существующая browser-сессия остаётся активной. Как это проверить и оформить?

    passwordssessions
  • 74

    Приложение выдаёт посетителям session cookie до входа. Как проверить его на session fixation?

    sessionscookies
  • 75

    JWT содержит `role: admin`. Как проверить, что изменение claim не даст права администратора?

    jwt
  • 76

    Как вы проверите `GET /api/invoices/{id}` на IDOR?

    api
  • 77

    В API проектов есть роли viewer и editor. Какие проверки авторизации вы проведёте?

    authidentity-accessapi
  • 78

    Кнопка администратора скрыта от обычных пользователей, но в API-роуте не видно проверки роли. Как вы это проверите и исправите?

    api
  • 79

    Как вы проверите долгоживущую session cookie функции `remember me`?

    sessionscookies
  • 80

    Как вы протестируете flow резервных кодов MFA?

    identity-access
  • 81

    Gitleaks нашёл приватный ключ в сборке pull request в GitHub Actions. Что вы сделаете сначала?

    ci-cd
  • 82

    В выпущенном container image обнаружен проектный `.npmrc` с рабочим токеном приватного registry. Что вы сделаете?

    containersregistriestokens
  • 83

    Dependabot предлагает patch-обновление прямой уязвимой зависимости. Как безопасно довести его до production?

    vulnerabilitiesdependencies
  • 84

    Для критической CVE библиотеки нет совместимого исправления на текущей версии фреймворка. Что может сделать junior-инженер?

    vuln-managementcve
  • 85

    Docker-образ запускает Node.js API от root. Какое базовое усиление вы сделаете?

    dockerapi
  • 86

    Production-образ содержит компиляторы, curl и всё дерево исходников. Как уменьшить поверхность атаки?

    fundamentalsattack-surfacehttp-tools
  • 87

    Логи приложения содержат Authorization headers и password-reset links. Как вы это исправите?

    authpasswordsidentity-access
  • 88

    Как добавить Trivy-сканирование образов в GitHub Actions, не превратив его в постоянный шум?

    ci-cd
  • 89

    Как создать и использовать SBOM для небольшого контейнерного сервиса?

    supply-chaincontainers
  • 90

    Какой базовый процесс security-сканирования вы настроите для web-команды из 12 человек?

  • 91

    Что должно быть в Jira-тикете о подтверждённой критической уязвимости?

    vulnerabilitiesvulnerability-management
  • 92

    Критическая уязвимость загрузки файлов требует экстренного patch сегодня. Как помочь исправлению и не потерять доказательства?

    vulnerabilitiesvulnerability-management
  • 93

    Support сообщает, что stored XSS могла выполниться в браузерах двух сотрудников. Что вы сделаете?

    xss
  • 94

    Логи показывают попытки проверить SQL-инъекцию на публичном эндпоинте. Как вы поможете локализовать и расследовать случай?

    injectionweb-attacksincident-response
  • 95

    Публичный support-тикет содержит ссылку на клиентский экспорт со встроенным access token. Как вы отреагируете?

    tokens
  • 96

    Эндпоинт конвертации изображений раньше собирал shell-команду из имени загруженного файла, а исправление теперь использует `spawn` с массивом аргументов. Как провести ретест?

    endpoints
  • 97

    Разработчик отметил уязвимость исправленной, но то же правило Semgrep падает в release-ветке. Что вы сделаете?

    vulnerabilitiesvulnerability-management
  • 98

    Обновление зависимости исправляет CVE, но ломает один integration-тест. Как вы поможете команде?

    vuln-managementcveintegration
  • 99

    Product owner просит навсегда принять риск высокой уязвимости, потому что её неудобно эксплуатировать. Как вы ответите?

    vulnerabilitiesattacksrisk-management
  • 100

    Что вы проверите перед закрытием уязвимости, которая участвовала в небольшом security incident?

    vulnerabilitiesvulnerability-managementincidents