Вопросы на собеседовании: Инженер безопасности
100 реальных вопросов с образцовыми ответами и пояснениями для уровня Аналитик по безопасности.
Смотреть пример резюме: Инженер безопасности →Тренировка флешкарточками
Интервальное повторение · Hunter Pass
Вопросы
Триада CIA определяет три главные цели безопасности: конфиденциальность, целостность и доступность.
- Конфиденциальность ограничивает чтение зарплатных данных авторизованными людьми.
- Целостность выявляет несанкционированные изменения, например через подпись артефакта релиза.
- Доступность поддерживает работу сервиса с помощью резервирования, бэкапов и защиты от отказа в обслуживании.
Зачем это спрашивают: Интервьюер проверяет, связываете ли вы каждую цель с конкретным контролем.
Угроза может причинить вред, уязвимость является слабым местом, а риск объединяет вероятность и влияние эксплуатации.
- Интернет-злоумышленник является угрозой, а непропатченный публичный сервер является уязвимостью.
- Риск растет, если сервер хранит данные клиентов, а рабочий эксплойт опубликован.
- Патч или ограничение внешнего доступа снижает риск, хотя угроза остается.
Зачем это спрашивают: Сильный ответ разделяет понятия и показывает, как контроль меняет риск.
Вероятность оценивает реальность события, а влияние оценивает возможный ущерб.
- Активная эксплуатация делает атаку на публичный сервис вероятнее, чем на изолированный лабораторный хост.
- Потеря тестовой страницы влияет меньше, чем кража платежных данных из продакшена.
- Команды используют обе оценки для приоритизации, а не считают все находки равными.
Зачем это спрашивают: Интервьюер оценивает, умеете ли вы приоритизировать риск по вероятности и последствиям.
Поверхность атаки включает все доступные точки взаимодействия злоумышленника с системой.
- В нее входят API, порты, страницы входа, загрузки, аккаунты, интеграции и физический доступ.
- Забытые поддомены и неиспользуемые административные эндпоинты учитываются, пока доступны.
- Удалить ненужный сервис или право надежнее, чем только наблюдать за ним.
Зачем это спрашивают: Интервьюер проверяет понимание внешней доступности и сокращения поверхности атаки.
Принцип наименьших привилегий дает пользователю или сервису только права для текущей задачи.
- Сервис отчетов, читающий счета, не должен иметь право удаления в базе.
- Административный доступ лучше выдавать временно, а не привязывать к повседневному аккаунту.
- Периодические ревью убирают доступ, оставшийся после смены роли или обязанностей.
Зачем это спрашивают: Сильный ответ применяет принцип и к людям, и к сервисам.
Эшелонированная защита использует независимые уровни, чтобы отказ одного контроля не открыл всю систему.
- Параметризованные запросы предотвращают SQL-инъекцию, а узкие права базы снижают оставшийся ущерб.
- MFA помогает после кражи пароля, а мониторинг сессий все еще выявляет злоупотребление.
- Проверенные бэкапы снижают ущерб, если превентивные и детективные меры не сработали.
Зачем это спрашивают: Интервьюер ожидает взаимодополняющие уровни с разными сценариями отказа.
После оценки команда может избежать, снизить, передать или принять риск.
- Избежание может убрать ненужный публичный сервис, а снижение может установить патч и ограничить доступ.
- Страховка или договор передает часть потерь, но не снимает техническую ответственность.
- Принятие должно быть явным, ограниченным по времени, записанным и иметь уполномоченного владельца.
Зачем это спрашивают: Интервьюер проверяет, считаете ли вы принятие риска решением, а не бездействием.
Тип контроля показывает, останавливает ли он событие, выявляет его или возвращает безопасное состояние.
- MFA является превентивным контролем, блокирующим многие входы с украденным паролем.
- Алерт о невозможном перемещении является детективным и выявляет подозрительное использование.
- Отзыв сессий и восстановление бэкапа являются корректирующими действиями после компрометации.
Зачем это спрашивают: Сильный ответ различает момент действия контроля на реалистичных примерах.
Безопасность по умолчанию означает, что новая система начинает работу в безопасном состоянии без ручного усиления.
- Новый аккаунт не получает привилегированную роль до явной выдачи.
- Новое объектное хранилище изначально приватно, а не публично для чтения.
- Опции совместимости не должны незаметно отключать проверку TLS, аутентификацию или аудит.
Зачем это спрашивают: Интервьюер оценивает понимание безопасных настроек как защиты от ошибок конфигурации.
Граница доверия находится там, где данные или управление переходят между компонентами с разным доверием.
- Ввод браузера при переходе в API остается недоверенным, даже если его создал обычный интерфейс.
- Вызов базы приложением пересекает границу, управляемую учетными данными и сетевыми правилами.
- Каждый переход требует идентификации стороны, валидации, авторизации и полезного журнала безопасности.
Зачем это спрашивают: Интервьюер проверяет, умеете ли вы размещать проверки на границах системы.
Каждая часть HTTP-запроса под контролем клиента является недоверенной.
- Путь, параметры, заголовки, cookie и тело можно изменить через curl или прокси.
- Content-Type описывает данные, но не доказывает их безопасность.
- Сервер проверяет тип, длину, формат, бизнес-правила и авторизацию до использования.
Зачем это спрашивают: Сильный ответ отвергает доверие к значениям и заголовкам, созданным браузером.
HTTP-методы выражают намерение, поэтому контроли учитывают чтение или изменение состояния.
- GET и HEAD не должны удалять данные, потому что их могут вызвать ссылки и роботы.
- Изменяющие методы требуют авторизации и защиты от CSRF при сессиях на cookie.
- Название метода не является контролем доступа, поэтому каждый эндпоинт проверяет права.
Зачем это спрашивают: Интервьюер связывает семантику HTTP с защитой изменяющих запросов.
Ошибка должна помогать клиенту действовать, не раскрывая полезные злоумышленнику детали.
- Возвращайте стабильное сообщение, а не стек, SQL-запрос, путь или секрет.
- Подробности пишите на сервере с ID корреляции для сопоставления с ответом.
- Ошибка входа не должна подтверждать существование конкретного аккаунта.
Зачем это спрашивают: Интервьюер оценивает баланс между полезной ошибкой и раскрытием информации.
Сессионные cookie обычно используют Secure, HttpOnly и подходящее значение SameSite.
- Secure передает cookie только по HTTPS.
- HttpOnly запрещает чтение из JavaScript и ограничивает кражу токена при многих XSS.
- SameSite сокращает межсайтовую отправку, а узкие Domain, Path и срок дополнительно снижают риск.
Зачем это спрашивают: Сильный ответ объясняет отдельную угрозу, которую снижает каждый атрибут.
Политика одного источника запрещает странице свободно читать данные другого источника.
- Источник объединяет схему, хост и порт, поэтому HTTP и HTTPS различаются.
- Некоторые запросы к другому источнику отправляются, но JavaScript обычно не читает их ответы.
- CORS ослабляет границу для разрешенных источников, а формы и встроенные ресурсы имеют отдельные правила.
Зачем это спрашивают: Интервьюер проверяет понимание браузерной границы, изменяемой CORS.
CORS является браузерной политикой, определяющей, какие источники могут читать ответы от другого источника.
- Браузер отправляет Origin и может выполнить предварительный OPTIONS-запрос.
- Серверу следует разрешать конкретные источники, особенно при передаче учетных данных.
- CORS не является аутентификацией, не останавливает curl и не заменяет защиту от CSRF.
Зачем это спрашивают: Сильный ответ объясняет браузерное применение и ограничения CORS.
Клиентская валидация улучшает интерфейс, но пользователь контролирует клиент.
- Злоумышленник удалит JavaScript-проверки, изменит скрытые поля или применит Burp Suite.
- Сервер обязан проверять значения, размер, бизнес-правила и владение.
- Скрытая кнопка администратора не защищает эндпоинт от прямого запроса.
Зачем это спрашивают: Интервьюер проверяет, остается ли применение правил на сервере.
TLS обеспечивает конфиденциальность, целостность и аутентификацию стороны для передаваемых данных.
- Шифрование не дает сетевому наблюдателю читать трафик приложения.
- Проверка целостности делает незаметное изменение практически невозможным.
- Проверка сертификата подтверждает сервер, но TLS не делает код приложения безопасным.
Зачем это спрашивают: Сильный ответ охватывает три свойства и важное ограничение.
Предупреждение означает, что браузер не смог подтвердить доверенную подлинность сайта, поэтому не обходите его и не вводите чувствительные данные.
- Проверьте URL и часы устройства, потому что неверное имя хоста или дата могут вызвать предупреждение.
- Обычно браузер проверяет имя хоста и цепочку сертификатов до доверенного центра сертификации.
- Остановитесь и сообщите о проблеме, не вводите пароль или платежные данные до исправления.
Зачем это спрашивают: Интервьюер проверяет базовую реакцию на предупреждение о сертификате и понимание цепочки доверия.
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