惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
T
The Exploit Database - CXSecurity.com
I
Intezer
P
Privacy & Cybersecurity Law Blog
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
K
Kaspersky official blog
AWS News Blog
AWS News Blog
Schneier on Security
Schneier on Security
雷峰网
雷峰网
www.infosecurity-magazine.com
www.infosecurity-magazine.com
宝玉的分享
宝玉的分享
G
Google Developers Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Forbes - Security
Forbes - Security
T
The Blog of Author Tim Ferriss
S
Security @ Cisco Blogs
NISL@THU
NISL@THU
N
News and Events Feed by Topic
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
爱范儿
爱范儿
GbyAI
GbyAI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
Blog — PlanetScale
Blog — PlanetScale
Help Net Security
Help Net Security
F
Full Disclosure
V
Vulnerabilities – Threatpost
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
A
Arctic Wolf
D
Docker
T
Tailwind CSS Blog
L
LangChain Blog
The Last Watchdog
The Last Watchdog
美团技术团队
博客园 - Franky
H
Hacker News: Front Page
Stack Overflow Blog
Stack Overflow Blog
W
WeLiveSecurity
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Recorded Future
Recorded Future
V
Visual Studio Blog
N
Netflix TechBlog - Medium
Hacker News: Ask HN
Hacker News: Ask HN
博客园 - 司徒正美
Cyberwarzone
Cyberwarzone
S
Schneier on Security
Know Your Adversary
Know Your Adversary

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Как создать ИБ-сервис без нагрузки на IT-инфраструктуру
Chepliev (Ко · 2026-04-23 · via Все публикации подряд на Хабре

Уровень сложностиПростой

Время на прочтение8 мин

Охват и читатели3.3K

Кейс

Привет! Я Максим Чеплиёв, менеджер продукта Staffcop, одного из ИБ-сервисов Контура. Расскажу, как мы разрабатываем Staffcop так, чтобы он не нагружал безмерно IT-инфраструктуру клиента. Сразу оговорюсь, что не буду рассказывать о технической реализации на уровне кода, но обращу внимание на уровень архитектуры и стратегических решений.

Staffcop — это сервис для расследования ИБ-инцидентов и мониторинга действий сотрудников на компьютерах. Работает он так: на устройства сотрудников ставятся «агенты», которые передают данные об их действиях на сервер сервиса, развёрнутый в инфраструктуре клиента. Поэтому работа Staffcop связана не только с технической инфраструктурой, но и с работой специалистов по безопасности, которые используют сервис по назначению, IT-специалистов, которые занимаются его развёртыванием, и рядовых сотрудников, на чьих компьютерах установлены агенты.

Дисклеймер: установка Staffcop легальна. Агенты ставятся только на рабочих компьютерах — это собственность работодателя и он имеет право контролировать действия сотрудника на служебных ПК. Кроме этого, сотрудники подписывают согласие с ИБ-политикой компании.

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

Элемент первый: агенты 

Зачем они нужны 

Основная задача сервиса — расследование ИБ-инцидентов. Инцидент — это, например, утечка данных из-за их передачи через мессенджер. Агенты устанавливаются на компьютерах сотрудников и как раз фиксируют действия пользователей, например, передачу файлов третьим лицам. 

Проблема 1: большая нагрузка на память

Раз агент устанавливается на компьютере сотрудника, то его работа может саботировать действия пользователя. Например, слишком большой объём агента или нагрузка на операционную память может помешать сотруднику выполнять его задачи. Кроме этого, агент взаимодействует с другими приложениями, и важно, чтобы это не приводило к каскадному росту нагрузки: в Telegram передаётся файл, агент его копирует и это дополнительно нагружает арм пользователя. 

Как мы спасаем ситуацию

Чтобы не блокировать работу пользователя, мы делаем агенты лёгкими, а также выставляем ограничения на работу с памятью и на трафик. 

Что же такое лёгкие агенты 

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

Инструменты управления работой агента

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

Чтобы снизить нагрузку, мы регулируем, контролируем и ограничиваем объём хранимых данных. Кроме этого, организовали их ротацию, так что при переполнении памяти удалять будут файлы, а не события — и это не повлияет на статистику по действиям пользователя.

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

Оптимизация функций

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

Кроме этого, мы используем вариативный алгоритм сжатия, чтобы ещё сильнее уменьшить объём скриншотов. Инструмент по созданию пакетов сам меняет алгоритм в зависимости от доступных ресурсов на конечной рабочей станции. Чем больше процессов запущено, тем сильнее сжимаются данные. 

В итоге это позволяет снижать объём одного и того же куска информации с 500 мб при видео до 10 мб для серии скриншотов. 

Проблема 2. Конфликты при контроле трафика

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

Как мы спасаем ситуацию

Иногда возникают конфликты между агентом Staffcop и другими решениями, контролирующими трафик, или между стандартным шифрованием на веб-ресурсе. Чтобы этот конфликт не привёл к блокировке ресурса, мы реализовали настройку исключений ресурсов, где не будет осуществляться анализ данных, передаваемых по сети. Настройка исключений — процесс в основном ручной, но благодаря механизму MITM, он требуется только в редких случаях, когда веб-сервис жёстко требует соответствия сертификатов (например, «Госуслуги») или когда MITM осуществляет другое решение. Если агент не может автоматически проверить возможное наличие конфликтов, у нас реализованы широкие настройки исключений — администратор системы может сам внести все необходимые ресурсы в «белый список». Например, те ресурсы, которые не несут рисков в рамках ИБ-политик (банковские ресурсы, «Госуслуги»). 

Элемент второй: сеть

Зачем нужен элемент

Так как система реализована в архитектуре агент-сервер, становится крайне критичным процесс взаимодействия между этими компонентами. Очень важно иметь возможность оперативно реагировать на события безопасности и изменения в правилах работы агента. Сеть здесь выступает инструментом взаимодействия: агент обращается к серверу, передаёт собранные данные, получает по необходимости команды, новые правила. И, как раз, — небольшой объём данных, которые курсируют между агентом и сервером, а также возможность управлять этим потоком — важны для организаций, где канал передачи имеет ограничения или используется несколькими сервисами.

Проблема 1. Нагрузка на сеть

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

Как мы спасаем от этого

Объём

Информация о действиях пользователей, так называемых «событиях», на 90% состоит из текстовых файлов. Их объём небольшой — даже передача 1000 событий в день с каждого агента (в среднем не более 200 Мб) не даст большой нагрузки на сеть. 

Кроме этого, мы можем регулировать объёмы передачи данных с агента на сервер с помощью трёх параметров:

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

  • Количество данных, поступающих на сервер. Чаще всего Staffcop устанавливают на виртуальном сервере и важно не перегрузить передачей данных все ресурсы сервера, которые критичнее тратить на антивирус и NGFW. 

Такая регулировка позволяет настроить работу Staffcop под конкретного клиента — ведь в каждой компании своя сетевая структура (с филиалами и без), свой набор приложений, которые грузят сеть.

Элемент третий: сервер

Зачем нужен элемент

Сервер — это основной инструмент системы. Если агенты — это руки, сервер —  всё остальное. Он управляет и взаимодействует с агентами, получает и записывает в себя данные, передаёт новые правила и команды агентам. Собранные данные он анализирует, обрабатывает политиками безопасности, выявляет инциденты, анализирует содержимое\контент. Хранит собранную информацию и предоставляет доступ к ней специалистам по безопасности. И, в итоге, предоставляет специалистам множество инструментов по анализу данных, администрированию и настройкам самой системы. 

Проблема 1. Хранение и автоматический анализ данных 

В требованиях тех или иных регуляторов и внутренних ИБ-политик прописано, какие данные нужно хранить на серверах и в течение какого времени. Чем больше данных, тем больше это грузит сервер. 

Как мы спасаемся 

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

Для снижения нагрузки используем удаление и автоочистку. Например, пользователь может удалить ненужные данные не только по периоду, но и автоматически точечно удалять события, которые востребованы для расследования. Такая же ситуация с фильтрацией — можно указать агенту исключить сбор ряда данных, которые не несут ценности.

Кроме этого, наша поддержка имеет высокую квалификацию по работе с базой данных Postgres и, зачастую, может помочь клиенту донастроить её в зависимости от особенностей собираемых клиентом данных. Например, настроить использование кластера и архивирование данных для распределения нагрузки. Также можем дублировать данные в дополнительную базу данных Clickhouse — это требует больше места для хранения, но существенно увеличивает скорость загрузки данных в веб-интерфейсе.

Элемент четвёртый: пользователи и администраторы 

Чем важен элемент

Конечный пользователь системы — это специалист службы безопасности, который получает с сервера Staffcop данные о действиях пользователей в виде отчётов и дашбордов. Администратор — это IT-специалист, который обслуживает систему. У него не должно возникать проблемы при настройке Staffcop. 

Проблема 1. Отчёты для пользователя без нагрузки на инфраструктуру

Конечный пользователь должен получать уведомления и отчёты от Staffcop своевременно и с минимумом ложноположительных срабатываний. Одно из возможных решений — это ML, которая автоматически интерпретирует большие объёмы данных и выдаёт результаты в виде отчётов. Но ML требует дополнительных ресурсов для обработки данных. 

Как мы спасаемся 

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

Для того, чтобы увеличить скорость отображения данных и загрузки отчётов, используем Clickhouse. Это колоночная СУБД, запросы к которой в связи со структурой хранения информации выполняются быстрее. Данные из Postgres синхронизируются с Clickhouse, в итоге полностью архив данных хранится в Postgres, но быстрый поиск выполняется в Clickhouse. 

Проблема 2. Техническое обслуживание системы. 

Система должна логировать процесс работы и возможные проблемы. Логи должны хранить все необходимые данные, при этом, не занимать много места. Иначе под них придётся выделять отдельные диски и отдельные каналы передачи информации. 

Кроме этого, с этими логами должно быть удобно работать. 

Как мы справляемся 

Для работы с логами существуют специальные решения, например, Grafana. Мы их рекомендуем и помогаем с настройками. Это позволяет оперативно выявлять аномалии и отклонения в инфраструктуре заказчика как на уровне работы системы, так и на уровне влияния этой системы на инфраструктуру заказчика. Администратор может увидеть, какой объём трафика занят, чем занят, как используются данные. В итоге у нашей технической поддержки есть информация из логов, с которой они могут решить проблемы заказчика. Например, внести изменения в конфигурационных файлах или в продукте. Например, поменяли спуллер, потому что однопоточный перестал справляться с объёмом клиентских данных. 

Проблема 3. Управление настройками Staffcop

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

Как мы с этим справляемся

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

Также мы рассказываем клиентам о том, что ранее выявленные проблемы мы решили.