Перейти к руководству
CyberScope2.3 Вернуться в приложение
РАБОЧАЯ ОБЛАСТЬ БЕЗОПАСНОСТИ РУКОВОДСТВО 2.3

CyberScope 2.3 — руководство пользователя

Цель: найти поддерживаемые опасные потоки и настройки, получить доказательства и подготовить проверяемое исправление. Результат всегда относится к перечисленным файлам и этапам. Пустой список находок не гарантирует безопасность.

В локальном режиме файлы остаются на вашем компьютере. В серверном режиме подготавливается доступ по адресу https://cyberscope.digital-projects.tech на 85.142.37.11; будущий адрес — https://cyberscope.i-tech.unecon.ru после изменения университетской DNS. Публичный запуск пока не подтверждён: используйте адрес после сообщения администратора о завершённом размещении. Вход выполняется только через HTTPS: введите выданный ключ доступа в форму. Ключ входа не является SSH ключом, не добавляется в URL и не сохраняется браузером. Загрузки и отчёты находятся на сервере в рабочей области вашего сеанса; SSO и отдельные роли пользователей в этой версии не реализованы.

Подписанный ключ сеанса сохраняется в localStorage этого HTTPS-адреса, действует семь дней и продлевается при успешном подключении интерфейса. Вкладку можно закрыть и открыть снова. Если срок истёк, введите ключ доступа: вместе с сохранённым ключом сеанса он восстановит ту же рабочую область. При потере сохранённого ключа вход создаёт новую область. На общем устройстве нажмите Выйти на этом устройстве и подтвердите действие: оно забывает доступ в браузере, сохраняет серверные файлы и не останавливает начатые проверки. Перед выходом экспортируйте нужные результаты. При смене временного адреса на университетский браузер не переносит сеанс автоматически; заранее сохраните отчёты.

1. Запустите актуальную сборку

На этом Mac откройте ОТКРЫТЬ_CYBERSCOPE.command в основной папке «Решение ИИ хакатона». После завершения приёмки он запускает обновлённую программу в подпапке CyberScope_2.3; предыдущая сборка сохраняется отдельно. Внизу меню должна быть версия сервера 2.3.0. При несовпадении интерфейса и сервера приложение показывает предупреждение и блокирует новую проверку: остановите старый экземпляр кнопкой питания и запустите указанный файл снова.

При первом открытии используется светлая тема. Переключатель в верхней панели включает тёмную; выбранная тема сохраняется для этого адреса. Тема меняет и фон, подписи и цвета 3D-карты.

Для другой машины предусмотрен архив CyberScope_2.3_source.zip, создаваемый при финальной сборке релиза. После получения архива распакуйте его. Нужен Python 3.11+. На macOS запустите START_MAC.command; на Linux — START_LINUX.sh. Вручную из папки программы: python3 launch.py на macOS/Linux или python launch.py на Windows. Для JavaScript нужен установленный Node.js в доверенном системном каталоге. Acorn входит в комплект. Windows, запуск START_LINUX.sh вне контейнера и запуск через Finder/Gatekeeper не проверены в этой среде; проверен запуск того же Mac-скрипта через bash. Серверный Linux-контейнер проверяется отдельно: результаты фиксируются в deploy/verification и не подтверждают переносимость локального запуска на любую ОС.

Главный экран CyberScope 2.3, светлая тема и автоматические тесты
Главный экран CyberScope 2.3 · фактический снимок локального интерфейса

2. Сначала проведите демонстрацию

Нажмите Открыть демонстрацию. Это настоящий анализ включённого учебного проекта, а не заранее нарисованный отчёт. Дождитесь завершения. Откройте SQL-находку: видно строку, причину решения и путь данных. Не переносите намеренно уязвимый пример в рабочую систему.

3. Передайте собственный проект

Откройте Исходники. Выберите папку, исходный файл или ZIP; можно перетащить файл. Для небольшого примера переключитесь на Вставить код и выберите правильное расширение. Для анализа связей между файлами передавайте всю папку проекта. Добавьте manifest и lock-файлы зависимостей: без них CVE-проверка не сможет установить версии. Каталоги сборки, сторонних зависимостей и символические ссылки исключаются; причины видны в покрытии. Для поиска уязвимостей в самих тестовых файлах включите «Анализировать также тестовые файлы». Эта настройка отличается от выполнения тестов.

Профиль Автоматически — выбрать доступные проверки — рекомендуемый первый запуск. Программа определяет языки и конфигурации, выбирает подходящие установленные движки и фиксирует план. Установленные анализаторы запускаются автоматически. Для исполнения распознанных тестов включена отдельная настройка; среду один раз подготавливает администратор. Встроенные — без внешних движков запускает встроенные анализаторы. Вручную — настроить движки позволяет выбрать Semgrep, Bandit и Trivy явно. Неполная проверка означает, что часть запрошенных этапов не выполнена; полезные находки всё равно сохраняются.

Профиль и настройки
Профиль и настройки Снимок интерфейса 2.2 · расположение основных разделов сохранено в 2.3

Нажмите Запустить анализ. Если процесс длится долго, смотрите этап и журнал, а не только процент. Большой проект ограничивается снимком: до 4 000 файлов, 600 КБ на файл и 80 МБ текста; строка результата «частично» требует просмотра причин.

После этого программа сама строит снимок, выполняет доступные анализаторы, объединяет результаты, сохраняет доказательства и отчёт. Запускать Python, Semgrep, Bandit и Trivy вручную для каждой проверки не требуется. В серверной сборке инструменты и база подготовлены администратором; локальная установка инструментов выполняется один раз отдельно.

Автоматическое выполнение тестов

В режиме Исходники настройка Автоматически запустить тесты проекта включена по умолчанию. Загрузите весь проект вместе с тестами, конфигурацией и нужными ресурсами. После статического анализа программа распознает Python unittest/pytest, Node test или npm test и сама передаёт неизменяемый снимок отдельному обработчику.

В результате откройте раздел Автоматический запуск проекта: он показывает фактический статус, выбранные проверки, коды завершения и ограниченный журнал. Пустой набор, все пропущенные тесты и отсутствующие зависимости не считаются успешным выполнением. Ошибка теста сохраняет результаты поиска уязвимостей; прочитайте обе части отчёта.

На сервере тесты выполняются в отдельном контейнере без сети, ключей и данных приложения: один процесс проверки одновременно, 1 CPU, 512 МБ памяти, до 64 процессов и 90 секунд. Сеть и автоматическая установка зависимостей выключены. Для npm выполняется только объявленный test; pretest/posttest не запускаются. Проект со сторонними зависимостями, которых нет в подготовленной среде, может требовать отдельного доверенного образа от администратора.

Фактический статус недоступного исполнения в локальной сборке 2.3
Локальная 2.3 без обработчика · честный статус «Исполнение недоступно»; серверные успешные запуски подтверждаются отдельно

Если указано Обработчик исполнения не подключён, доступны анализаторы, но тесты не выполнятся. Это ожидаемый статус обычного локального запуска без серверного обработчика. Не запускайте незнакомые проекты вручную на рабочем компьютере ради обхода этого ограничения.

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

4. Разберите результат по приоритету

Начните с фильтра Обоснованные и высокой важности. Выберите строку в списке: справа откроется карточка. Найдите источник данных, опасную операцию и причину решения. Проверяйте совпадение с реальным поведением вашего проекта; статический путь не равен выполненной атаке.

Результат анализа
Результат анализа Снимок интерфейса 2.2 · расположение основных разделов сохранено в 2.3

Обосновано анализом — поддерживаемый источник достигает опасной операции, наблюдается конкретная настройка либо сопоставлена установленная версия зависимости с advisory. Требует проверки — есть признак, но контекст или контракт не установлены. Отклонено — указан безопасный признак или неисполняемый текст. Принятое исключение — явно заданное разработчиком решение с объяснением. Важность — потенциальные последствия, она не является вероятностью истинности.

В карточке откройте путь данных и исходный файл. Для Python путь может переходить между модулями; отображаются файлы и строки. Неразрешённые функции, динамические импорты, сложное состояние объектов и бизнес-авторизация требуют ручного разбора. У браузерного JavaScript поддержка относится к описанным источникам URL/DOM и опасным операциям; TypeScript/JSX и серверные JS-фреймворки не получают автоматически те же доказательства.

Путь данных и исходная строка
Путь данных и исходная строка Снимок интерфейса 2.2 · расположение основных разделов сохранено в 2.3

3D-карта: от структуры к строке кода

После завершения анализа справа отображаются реальные файлы и находки отчёта. До запуска показана только схема; она не содержит результатов проверки. Режим Структура помогает выбрать файл или находку. Цвет показывает основание: обосновано анализом, требует проверки или отклонено/исключено; он не означает выполненную эксплуатацию.

Нажмите узел или выберите его в Текстовом списке узлов. Кнопка Открыть карточку переводит к настоящим деталям находки. Если движок сохранил trace, переключитесь на Путь данных: видны конкретные шаги source → sink и ссылки на исходные строки. Нажатие строки открывает сохранённый исходник с SHA-256. Если trace отсутствует, карта не придумывает путь.

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

Перетаскивание вращает карту; кнопки плюс/минус меняют масштаб, отдельная кнопка сбрасывает вид. С клавиатуры доступны стрелки, плюс/минус и Home. Автовращение включается вручную. При выключенном WebGL или reduced motion доступны текстовая навигация и карточки. Карта ограничивает количество отображаемых узлов и указывает границу; полный список находится в отчёте и экспорте.

Настоящая 3D-трасса SQL-находки в CyberScope 2.3
CyberScope 2.3 · фактическая трасса из анализа учебного проекта

5. Проверьте предложение исправления

Если доступен патч, откройте его diff. Сравните логику до и после, учитывая API и версию библиотеки. Синтаксическая проверка и повторный поиск показывают лишь выполненные проверки. Они не заменяют функциональные тесты проекта. Скачайте изменённую копию и загрузите полный изменённый проект с тестами для новой проверки. Сравните исходный и повторный отчёты; затем перенесите проверенное изменение в рабочий репозиторий. CyberScope не перезаписывает оригинальный проект.

Предложение исправления
Предложение исправления Снимок интерфейса 2.2 · расположение основных разделов сохранено в 2.3

6. Обязательно прочитайте покрытие

В плане видны профиль, языки, выбранные движки и фактические результаты их запусков. Раскройте Полное покрытие, ограничения и исходные данные. Проверьте пропущенные файлы, ошибки разбора, отсутствующие инструменты, дату локальной базы и ограничения режима. «Выполнен» относится к этапу в его границах; наличие внешнего инструмента ещё не означает, что он проверил все зависимости.

Покрытие и ограничения
Покрытие и ограничения Снимок интерфейса 2.2 · расположение основных разделов сохранено в 2.3

Если инструмент отсутствует, используйте SETUP_ENGINES.command по инструкции EXTERNAL_ENGINES.md. Получение инструментов и базы требует сети и выполняется отдельно. Подготовленная база Trivy проверяется на структуру и дату, но независимо не аттестуется. Не отключайте проверку TLS для обхода ошибки установки.

7. Сохраните отчёт и вернитесь к нему

HTML удобен для чтения и печати, JSON хранит полный машинный результат, SARIF подходит для интеграций. При передаче отчёта вне отдела проверьте контекст кода и включите маскирование значений секретов перед новым анализом. В истории отображаются дата, объект и версия анализатора. Старые отчёты не пересчитываются автоматически: для проверки исправления запускайте новый анализ.

История с версиями
История с версиями Снимок интерфейса 2.2 · расположение основных разделов сохранено в 2.3

8. Как проверять веб-приложение

Выберите Веб-приложение, введите URL объекта, на проверку которого у вас есть право, и укажите предел страниц. В локальной сборке для собственного тестового стенда можно включить частные адреса. На сервере частная сеть и адреса самих серверов исключены администратором. Анализ делает обычные ограниченные GET-запросы: получает HTML, заголовки, cookie, формы и пригодный JavaScript того же узла. Конкретные cookie/CSP/form-настройки и поддерживаемые опасные JS-потоки сопровождаются HTTP-свидетельствами. Внешние скрипты и потенциально изменяющие состояние пути пропускаются с объяснением.

Анализ локального веб-стенда
Анализ локального веб-стенда Снимок интерфейса 2.2 · расположение основных разделов сохранено в 2.3

URL не раскрывает серверный код. Для SQL-инъекций и других серверных потоков дополнительно передайте исходники в режиме Исходники. Вход в аккаунт, исполнение SPA, отправка форм и активная эксплуатация автоматически не выполняются. Отсутствие защитного заголовка или имя cookie сами по себе не подтверждают уязвимость. HTTP-проверка CyberScope не заменяет полноценный DAST: HawkScan запускается отдельно на выбранном стенде, а его фактическое выполнение и результаты фиксируются в отдельном отчёте проверки.

9. Другие объекты и модель

Программа: статические сведения PE/ELF/Mach-O/.app, архитектура, хеш и поддерживаемые защитные признаки; без запуска и декомпиляции. Для логики приложения нужны исходники. Журналы: фильтры, группировки и корреляции со ссылками на строки; журнал неполного периода даёт неполную картину.

В локальной сборке в Модель и хранение можно указать уже установленную локальную или совместимую модель. По умолчанию она отключена и не нужна для основных проверок. При включении фрагменты передаются именно указанному серверу; выбирайте его согласно правилам отдела. Ответ модели не повышает автоматически статус находки и не означает выполненный тест.

10. Практический цикл ИТ-отдела

  1. Зафиксируйте версию проекта и проверьте всю папку с lock-файлами в автоматическом профиле.
  2. Проверьте покрытие и устраните ошибки, затем разберите обоснованные высокие находки.
  3. Передайте каждой находке владельца и воспроизводимый контекст; спорные результаты проверяйте вручную.
  4. Проверьте патч и функциональные тесты в отдельной копии.
  5. Повторите анализ той же области и сравните JSON/baseline.
  6. Для приёмки добавьте независимый тестовый корпус университета и отдельную динамическую проверку.

Для автоматизации и разработчиков

Из папки программы (на Windows используйте python вместо python3):

python3 -m cyberscope --version
python3 -m cyberscope engines
python3 -m cyberscope scan /path/to/project --profile auto --output current.json
python3 -m cyberscope scan /path/to/project --profile manual --engines semgrep bandit --format sarif --output current.sarif
python3 -m cyberscope scan /path/to/project --profile basic --baseline previous.json --output current.json

Для исполнения в подготовленной среде: python3 -m cyberscope scan /path/to/project --execute-tests --fail-on-tests --output report.json. При необходимости явно выберите --runner python-unittest, python-pytest, node-test или npm-test; по умолчанию — auto. Путь очереди задаёт только администратор через CYBERSCOPE_SANDBOX_QUEUE; API не принимает команды, образ, mount или настройки сети. Установка обработчика описана в deploy/sandbox/README.md и ACCEPTANCE.md.

Коды завершения: 0 — завершено, нет новых обоснованных находок выше порога; 1 — такие находки есть; 2 — ошибка или неполное выполнение; 3 — тесты не завершились успешно при явно заданном --fail-on-tests. Baseline должен быть завершённым отчётом совместимой схемы 2.0, которую использует и приложение 2.3. Аргументы описаны в python3 -m cyberscope scan --help. Архитектура — ARCHITECTURE_V2.md и ARCHITECTURE_V21.md; измерения — QUALITY_V21.md. Для добавления движка возвращайте находки, решения, ошибки и ограничения, регистрируйте его в pipeline.py и объявляйте реальные возможности в planning.py.

Особенности серверной сборки

Системный выбор файлов компьютера сервером недоступен; кнопка питания означает Выйти на этом устройстве, а не отключение сервера. Для папки проекта создайте ZIP и загрузите его, сохранив структуру и lock-файлы. Пути каталогов сервера, произвольные API моделей и пути баз/правил ввести нельзя. Программа работает с вашей загрузкой и отчётами рабочего пространства; идентификатор чужой задачи не открывает её данные.

Одна проверка выполняется в рабочем пространстве, до двух — на всём сервере. Загрузка — до 100 MB, ожидающих загрузок — пять. При превышении admission-квоты 512 MB на пространство/4 GB всего хранилища программа предложит экспортировать и удалить ненужные отчёты. Эти пределы не являются файловой quota во время создания результата. Данные автоматически не удаляются. Для конфигурации и доступа администратор использует отдельную документацию HOSTED_MODE_V22.md.

Контейнер ограничен 4 CPU, 4 GiB памяти и 256 процессами/потоками для всего приложения. У worker сохраняются CPU-предел 280/300 секунд и контроль прошедшего времени проверки родителем: по умолчанию 300 секунд, настройка 60–1800 секунд. На Linux внутри подтверждённого cgroup-предела до 4 GiB дополнительный лимит виртуальной памяти не применяется; без такого предела остаётся RLIMIT_AS = 1 500 000 000 байт, который может ограничивать внешние движки. Их ошибки видны в покрытии. Эти ресурсные пределы и статический анализ не гарантируют безопасность проверяемого проекта.

Не подключайтесь к старому серверу 85.142.37.10 по историческим документам. Актуальная цель размещения — i-tech-llm, 85.142.37.11. Временный адрес — https://cyberscope.digital-projects.tech; переход на https://cyberscope.i-tech.unecon.ru выполняется после университетской DNS и проверки нового HTTPS origin. Наличие домена или подготовленной конфигурации не подтверждает выполненный публичный deploy, внешнюю проверку или готовность эксплуатации.