Hacker News Digest

Тег: #elastic

Постов: 2

Keeping secrets out of logs (2024) (allan.reyes.sh)

Коротко:
Секреты в логах — это не «одним фиксом» решить нельзя. Ни 80/20, ни чудо-инструмента нет. Есть 10 «свинцовых пуль» — несовершенных, но при правильной раскладке работают.


Почему течёт

Причина Пример
Прямой логинг log.info(user) вместо log.info(user.id)
«Мусорные» дампы logger.debug(req.headers)
Конфиги debug=true выводит весь env
Зашитые секреты JSON-поле password внутри структуры
Телеметрия APM-сборщик хватает всё подряд
Пользователь Вводит пароль в поле «имя»

10 «пуль»

  1. Архитектура данных
    Разделяем «чувствительное» и «остальное» на уровне схемы; в логи идёт только последнее.

  2. Трансформации
    Сериализуем через sanitize() или toLog() — явно выбрасываем секретные поля.

  3. Domain-primitives

    • Компиляция: SecretString не реализует Display.
    • Рантайм: Redactable интерфейс, toString() → "***".
  4. Read-once
    Пароль читается 1 раз, дальше объект пустой — логировать нечего.

  5. Taint-tracking
    Помечаем вход как «грязный»; если доходит до логгера — exception. Дорого, но точно.

  6. Форматтеры логов
    Пишем свой Layout / Encoder, который режет заранее заданные ключи рекурсивно.

  7. Unit-тесты
    Проверяем assertThat(log).doesNotContain(secret); запускаем на каждый PR.

  8. Сканеры
    Regex-правила + entropy-фильтры в CI и в production-потоке. Сэмплируем, чтобы не умереть от CPU.

  9. Pre-processors
    Vector / Logstash / Cribl вырезают поля ещё до попадания в Elasticsearch.

  10. Люди
    Code-review чек-лист: «есть ли тут .toString / JSON.stringify / printf без фильтров?».


Стратегия

  1. Фундамент: классификация данных, единый словарь «что считать секретом».
  2. Карта потока: от источника до хранилища логов.
  3. Контрольные точки: валидация, sanitize, redact.
  4. Защита в глубину: 2-3 слоя из списка выше.
  5. План на инцидент: ротация, оповещение, forensics.

Итог:
Нет волшебства — только дисциплина и много мелких фиксов. Начните с 2-3 «пуль», которые дешёвле всего у вас, и двигайтесь дальше.

by xk3 • 07 сентября 2025 г. в 18:16 • 221 points

ОригиналHN

#logging#security#data-sanitization#taint-tracking#elastic#logstash#code-review#unit-testing#continuous-integration#json

Комментарии (42)

  • Отличный пост: чёткий разбор проблемы «секреты в логах» и конкретные техники борьбы.
  • Основные идеи: taint-tracking, in-band метки, GuardedString/SecureString, доменные примитивы new Secret(...).
  • Сложности: стектрейсы, JSON, core-dumps, динамически создаваемые секреты, человеческий фактор.
  • Защита в глубину: маскировать, ограничивать доступ к логам, не писать всё подряд, валидировать маски (Kingfisher).

Rug pulls, forks, and open-source feudalism (lwn.net)

Rug-pull и вилки: кто кого в OSS

  • В облаке всё решают гиганты (AWS, GCP, Azure); разработчики и пользователи — без прав.
  • Компания-владелец проекта может «рвануть коврик»: сменить лицензию на закрытую, чтобы загнать облачных конкурентов.
  • Пример: Elastic → SSPL, MongoDB → SSPL, Sentry → новая лицензия.
  • Ответ — вилка (fork), но она требует людей и денег; без спонсора умирает.
  • AWS форкнул Elasticsearch → OpenSearch: набрал контрибьюторов с нуля, теперь живёт.
  • Puppet ушёл в Perforce и закрыл код → родилась OpenVox.
  • Вывод: однокомпаночные проекты рискованны; выбирайте те, где власть распределена, или сразу готовьтесь вилковать.

by pabs3 • 06 сентября 2025 г. в 05:59 • 239 points

ОригиналHN

#aws#gcp#azure#elastic#mongodb#sentry#open-source#licensing

Комментарии (115)

  • CLA = право перелицензировать → «rug pull» возможен; DCO такого не даёт.
  • Elasticsearch, Redis, Mongo и др. перелицензировались не от банкротства, а чтобы ограничить конкурентов и поднять доход.
  • Пользователи чувствуют «предательство»: проект начинали под FOSS-лицензией, привлекли вклад и клиентов, потом закрыли код.
  • Форки (OpenSearch, Valkey) спасают, но требуют новой инфраструктуры и сообщества; большинство просто делают «снапшот» и уходят.
  • Проблема устойчивости: без денег проект умрёт, но нынешняя модель дарения дарит прибыль крупным облакам, а не разработчикам.