Назад к материалам

Видео + статья / Собеседования

Собеседование Python-разработчика в CTI: вопросы и ответы

Разбираем вопросы Python CTI-интервью: базы данных, SQL-инъекции, JSON, proxy, VPN, Tor, веб-автоматизация, Docker, REST и киберугрозы.

Опубликовано
Обновлено
Видео вышло
Видео
27:05
Текст
8 минут

Если ролик не загружается, выберите другую площадку.

Смотреть на

Как было устроено CTI-собеседование

Позиция требовала писать на Python и понимать среду, из которой приходят данные об угрозах. Поэтому вопросы быстро двигались от баз данных к HTTP, браузерной автоматизации, сетям и моделям атак.

CTI расшифровывается как Cyber Threat Intelligence — аналитика киберугроз. Разработчик здесь автоматизирует сбор разрешённых данных, нормализацию, обогащение и передачу индикаторов аналитикам. Сильный ответ показывает и техническую базу, и безопасную цель применения.

Базы данных и защита от SQL-инъекций

Вопрос: какие типы баз данных вы знаете?

Начать можно с реляционных БД, где данные связаны таблицами и запросами SQL. Затем назвать документные, key-value, колоночные, графовые и поисковые системы. Важнее не список, а выбор: связи и транзакции удобны в реляционной модели, графовые обходы — в графовой, полнотекстовый поиск — в специализированном индексе.

Вопрос: что такое SQL-инъекция?

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

Пример кодаPython
import sqlite3

# Создаём учебную базу в памяти, чтобы пример запускался без внешних файлов.
connection = sqlite3.connect(":memory:")
connection.execute("CREATE TABLE users (id INTEGER, email TEXT, role TEXT)")
connection.execute(
    "INSERT INTO users VALUES (?, ?, ?)",
    (1, "analyst@example.org", "analyst"),
)
user_name = "analyst@example.org"

# Знак вопроса — место для параметра, а не часть пользовательской строки SQL.
query = "SELECT id, role FROM users WHERE email = ?"

# Драйвер сам передаёт значение отдельно от команды и правильно его экранирует.
row = connection.execute(query, (user_name,)).fetchone()
print(row)

Как JSON связан с Python

Вопрос: какой прямой аналог JSON в Python?

JSON object обычно преобразуется в dict, array — в list, string — в str, а числа, логические значения и null получают соответствующие Python-типы. Но JSON — текстовый формат обмена, а dict — объект в памяти программы.

Поэтому ответ «словарь» верен только для JSON-объекта. Хорошее продолжение: при чтении нужно проверять схему, обязательные поля и типы. Внешний JSON нельзя считать корректным только потому, что json.loads не выдал ошибку.

Чем отличаются proxy, VPN и Tor

Proxy перенаправляет трафик конкретного приложения или протокола. VPN создаёт защищённый туннель для сетевого трафика устройства до VPN-сервера. Tor проводит соединение через несколько узлов, разделяя знание об источнике и назначении.

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

Как автоматизировать работу с веб-страницами

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

Для страницы с JavaScript браузерный инструмент ждёт конкретное состояние элемента, а не фиксированное число секунд. Явное ожидание «таблица появилась и доступна» быстрее и стабильнее sleep(10). Селекторы выбирают по устойчивым атрибутам, ошибки и ограничения частоты обрабатывают отдельно.

Cookies, авторизация, Docker и REST

Cookie — небольшое значение, которое сервер просит браузер сохранить и отправлять в подходящих запросах. Сессионная cookie может связывать запрос с авторизованной сессией. Флаги Secure, HttpOnly и SameSite снижают отдельные риски, но не заменяют серверную проверку прав.

Аутентификация отвечает «кто пользователь», авторизация — «что ему разрешено». REST описывает архитектурные ограничения: единый интерфейс ресурсов, stateless-запросы и возможность кэширования. Docker собирает приложение и зависимости в образ, чтобы запуск был воспроизводимым; контейнер при этом использует ядро хоста и не равен полноценной виртуальной машине.

Как объяснять botnet, DDoS и ransomware

Botnet — сеть скомпрометированных устройств под общим управлением. DDoS создаёт распределённую нагрузку, из-за которой сервис перестаёт обслуживать нормальных пользователей. Защита включает фильтрацию, rate limiting, распределённую инфраструктуру и заранее подготовленный план реакции.

Ransomware блокирует доступ к данным или системам и используется для вымогательства. При double extortion злоумышленники дополнительно угрожают публикацией похищенных данных. В ответе полезно назвать защиту: многофакторную аутентификацию, обновления, сегментацию, резервные копии и отработанный план реагирования.

Почему кандидат прошёл собеседование

По исходному материалу кандидат справился с интервью. Он уверенно держал широкий контекст: связывал Python с вебом, сетями и задачами CTI, а сложные понятия объяснял простым языком.

Усилить ответы можно более строгой структурой: короткое определение, рабочий механизм, защитный пример и ограничение. Особенно это важно там, где один неосторожный тезис про анонимность или авторизацию создаёт неверное впечатление.

  • Могу выбрать тип базы под конкретную задачу.
  • Всегда использую параметры вместо склейки SQL.
  • Различаю аутентификацию и авторизацию.
  • Объясняю proxy, VPN и Tor через модель угроз.
  • Описываю кибератаку с позиции обнаружения и защиты.

Источники

частые вопросы

Короткие ответы

Что такое CTI?

Cyber Threat Intelligence — сбор, проверка и анализ сведений о киберугрозах, которые помогают организации принимать защитные решения.

Нужно ли Python-разработчику в CTI знать сети и веб?

Да. Автоматизация опирается на HTTP, cookies, API, базы и сетевые маршруты, поэтому на интервью проверяют не только синтаксис Python.

Как отвечать на вопросы о кибератаках безопасно и профессионально?

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

следующий шаг

Отработайте ответы до реального собеседования

Тренажёр ЮНИКОД помогает повторить теорию, найти пробелы и научиться отвечать коротко, точно и по существу.

Перейти в тренажёр →