Обнаружение, расследование, проверка исправлений инцидентов безопасности, проблем нулевого дня с использованием Lightrun

Обнаружение, расследование, проверка исправлений инцидентов безопасности, проблем нулевого дня с использованием Lightrun

8 марта 2022 г.

Важно: Вы можете использовать Lightrun бесплатно на своих серверах.


Я не эксперт по безопасности. Я хотел бы думать о себе как о разработчике, заботящемся о безопасности, но это обширная тема с глубиной и широтой. Насколько я понимаю, это [Lightrun и отладка] (https://lightrun.com/debugging/remote-debugging/). В этом качестве я могу показать некоторые творческие способы его использования в качестве инструмента безопасности. «Правильный» эксперт по безопасности может вывести это на новый уровень.


Что такое Лайтран?


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


С Lightrun вы можете внедрять журналы без изменения кода. Добавляйте моментальные снимки (точки останова, которые не останавливают выполнение кода) и используйте метрики для получения наблюдаемой информации на уровне кода.


Варианты использования инструмента безопасности


Есть несколько причин, по которым я бы выбрал Lightrun в качестве инструмента безопасности. Здесь я сосредоточусь на:


  • Проверка наличия уязвимости в системе безопасности

  • Проверка, если кто-то активно использовал уязвимость безопасности

  • Проверка правильности развертывания исправления

Для защиты вашего приложения необходимо сделать гораздо больше. Lightrun — это универсальный инструмент, он не заменяет существующие инструменты безопасности, такие как Snyk и т. д. Он бесплатный, заполняя пробелы на уровне кода.


Наконец, я расскажу, как Lightrun защищает себя. У нас не может быть уязвимого инструмента безопасности… Мы не можем рассматривать Lightrun как инструмент безопасности, если он не является безопасным по своей сути…


Хватит теории высокого уровня. Давайте покажем код!


Проверка уязвимости системы безопасности


Инструменты безопасности похожи на [инструменты наблюдения] (https://lightrun.com/java/full-cycle-observability-with-the-elastic-stack-and-lightrun/). Они обеспечивают оповещения высокого уровня о потенциальных рисках. Но они редко общаются на уровне кода. В результате у разработчика могут возникнуть трудности с действенными задачами безопасности и проверкой. Если проблема с безопасностью воспроизводится локально, это здорово. Часто вы можете заполнить пробел с помощью отладчика.


Но некоторые проблемы безопасности сложно воспроизвести вне производственной среды.


Lightrun не найдет уязвимость на пустом месте, для этого вам нужен специальный инструмент безопасности. Однако, если у вас есть подозрения, Lightrun может помочь в расследовании и доказать наличие уязвимости.


Например. возьмем эту очевидную ошибку:


Очевидная ошибка


Это очевидная ошибка внедрения SQL. Но можно ли его использовать?


Нужно ли нам впадать в истерику, или мы можем потратить время на адаптацию кода?


Кстати, обратите внимание, что я использую [Java] (https://lightrun.com/debugging/top-10-java-linters/), потому что это платформа, с которой мне удобнее всего. Это в равной степени относится ко всем поддерживаемым Lightrun платформам/языкам. Так что все здесь легко применимо к NodeJS, JavaScript/TypeScript, Python, Kotlin, Scala и т. д.


Это тривиально проверить в Lightrun. Мы можем просто добавить журнал или снимок, который будет запускаться при возникновении недопустимого запроса. Затем мы можем попробовать отправить недопустимые значения с помощью команды curl, чтобы увидеть, срабатывает ли наш журнал.


Добавление журнала


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


Активно ли он используется?


Итак, мы обнаружили уязвимость в системе безопасности, подобную той, что описана выше. Должны ли мы паниковать? Хакеры уже есть в системе?


Что мы делаем?


Ну, мы можем сделать что-то похожее на то, что мы сделали выше, и добавить снимок с похожим состоянием и несколькими «настройками»:



Этот образ содержит много, поэтому давайте попробуем его распаковать.


Почему снимок, а не журнал?


Журналы отлично подходят для того, чтобы увидеть, произошло ли что-то. Они быстрые и хорошо справляются с большим объемом. Но если кто-то активно взламывает нашу систему, мы хотим получить всю доступную информацию. Возможно, даже то, о чем мы не думали. Мы хотим знать вектор атаки, что означает знание стека вызовов и т. д. Снимки — идеальный инструмент безопасности.


Ориентация на тег


Обратите внимание, что вход «Агент» указывает на «Производство». Мы можем применить моментальный снимок к группе машин на основе тегов. Так что в этом случае мы можем атаковать все потенциально уязвимые машины одним махом.


Максимальное количество попаданий


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


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


Игнорировать квоту


Эта опция может быть вам недоступна, так как для нее требуются специальные разрешения. Если вы находитесь в такой ситуации, обратитесь за разрешением к своему руководителю.


Это рискованная функция, поэтому она охраняется. Но с эксплойтным взломом это может быть оправданным риском.


Квота ограничивает количество ЦП, которое условие или выражение могут использовать для действия Lightrun. Риск здесь заключается в том, что может произойти эксплойт, и некоторая информация будет «отброшена» из-за загрузки ЦП. Это будет означать, что моментальный снимок не будет приостановлен в любой момент, и мы не «пропустим» потенциальный эксплойт.


Однако это может повлиять на производительность вашего сервера, так что это небезопасно.


Срок действия


Действия Lightrun по умолчанию действуют в течение одного часа после истечения срока действия. Мы хотим, чтобы ваши серверы были быстрыми и гибкими, поэтому мы прекращаем действия, которые не нужны. В этом случае мы хотим, чтобы действие было там, пока мы не получим исправление. Поэтому я установил значение истечения срока действия на 60 часов.


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


Проверьте исправление


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


Вы также можете добавить дополнительное ведение журнала, чтобы убедиться, что попытки эксплойтов достигают области, в которой они должны быть достигнуты, и обрабатываются так, как вы ожидаете.


Лайтран Безопасность


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


Архитектура


Компания Lightrun приняла несколько архитектурных решений, которые значительно сократили векторы атак.


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


Если сервер Lightrun выходит из строя, агент просто ничего не делает. Это означает, что даже DDoS-атака, которая может вывести из строя Lightrun, не повлияет на ваши серверы. Вы не сможете использовать Lightrun, но серверы будут работать нормально.


Закрепление сертификата и OIDC


Агенты и клиенты сервера Lightrun используют закрепление сертификатов для предотвращения сложных атак типа «человек посередине».


Lightrun использует OpenID Connect (OIDC) для безопасной проверенной авторизации в своих инструментах.


Сервер Lightrun ограничивает права пользователей на основе назначенных ролей. Самое главное, каждая операция записывается в журнал администрирования. Это означает, что «плохой актер» не может оскорблять, не оставляя следов.


Песочница


Все операции внутри агента изолированы и имеют ограниченный доступ. Все действия доступны «только для чтения» и не могут использовать слишком много ресурсов ЦП, как мы видели в статье выше.


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


Черный список


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


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


Сокращение PII


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


TL;DR


Мы не разрабатывали Lightrun как инструмент безопасности. Он не должен заменять существующие инструменты безопасности. Но это идеальный помощник для инструментов, которые у вас уже есть. Это использует их сильные стороны и расширяет возможности быстрого реагирования на уязвимости/взломы.


Низкоуровневая глубокая наблюдаемость кода Lightrun позволяет нам быстрее реагировать на потенциальные угрозы и быстрее устранять уязвимости.


Я не эксперт по безопасности. Я уверен, что если да, то вы сможете придумать еще более удивительные варианты использования Lightrun, связанные с безопасностью. Это очень интересно, я не могу дождаться, чтобы услышать о них!


Также опубликовано [Здесь] (https://lightrun.com/security/lightrun-for-application-security-detecting-Investigating-and-verifying-fixes-for-security-incidents-using-lightrun/)



Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE