Forwarded from Blue (h/c)at Café
Я тебе не верю! JWT, JWS, JWE и Zero Trust
С ростом сложности распределённых систем и микросервисов обеспечение безопасности обмена данными становится не просто задачей, а ключевым условием существования современных приложений. JWT, являясь уже стандартом передачи идентификационных и авторизационных данных, требует глубокого понимания тонкостей своей реализации в первую очередь безопасниками. Особенно это касается применения JWS, JWE и интеграции принципов архитектуры/философии Zero Trust.
✏️ Подпись и целостность токенов
JWS предназначен для защиты целостности и подтверждения подлинности JWT. Важно отметить, что подпись JWS не шифрует содержимое токена, а лишь предотвращает его модификацию.
Основные алгоритмы, применяемые в JWS:
🔵 RS256 (RSA Signature с SHA-256)
🔵 ES256 (ECDSA Signature с SHA-256)
На что стоит обратить внимание при проверке JWS:
🔵 Алгоритм подписи;
🔵 Валидность публичного ключа;
🔵 Корректная валидация всех полей claims (aud, iss, exp и др.).
Частая ошибка, которую допускают разработчики - отсутствие проверки используемого алгоритма, что может привести к атакам типа "none algorithm" или подмене алгоритма подписи.
Пример:
🌐 Шифрование чувствительных данных
В отличие от JWS, JWE предназначен для защиты конфиденциальности данных внутри JWT. Использование JWE позволяет гарантировать, что только владелец приватного ключа сможет прочитать данные токена.
При реализации JWE важно обеспечить:
🟢 Надежное управление ключами;
🟢 Правильный выбор алгоритмов (например, RSA-OAEP и AES-GCM);
🟢 Отсутствие утечек ключей и материалов шифрования в логах или памяти.
👮♀️ Zero Trust и JWT
Zero Trust требует, чтобы каждый запрос проверялся независимо, не доверяя никаким промежуточным слоям. JWT идеально вписывается в эту модель при некоторых условиях:
🟢 Независимой проверки JWT каждым микросервисом;
🟢 Минимального lifetime токенов;
🟢 Глубокой валидации всех claims и строгой политики доступа.
А в ваших микросервисах всё так ?)
❔ Уязвимый фрагмент кода для анализа
Как я и говорил, что немного меняю подход к обучающим постам, теперь в каждом из них будет идти код с ошибкой (Я могу и сам ошибиться в ошибке, не серчайте🤪 ).
Так вот, что тут не так и где беда?
Телеграмм не позволяет делить открытие скрытого текста, поэтому ответ будет отправлен спустя 1 день.
Также мне нужна обратная связь по ЯП. Я умею в Go, Python, немного в Java и JS. Вы не будте против, если при коде на других языках, Вас будет проверять ИИ?
Подсказка:
Обрати внимание на то, что код проверяет только тип алгоритма, но не конкретный алгоритм и не проверяет claims. Почему это может быть критично?
❕ Заключение и краткие рекомендации
Для повышения безопасности JWT необходимо:
🟢 Всегда явно проверять указанный алгоритм подписи (например, RS256);
🟢 Обязательно проверять и валидировать все критически важные claims (iss, aud, exp);
🟢 Использовать JWE для защиты чувствительных данных внутри JWT;
🟢 Следовать Zero Trust модели с обязательной независимой валидацией JWT каждым сервисом.
В заключение мне хочется сказать, что тема JWT стала основным, что я спрашиваю у людей на собеседовании, потому что это БАЗА, которую нужно знать.
#appsec
С ростом сложности распределённых систем и микросервисов обеспечение безопасности обмена данными становится не просто задачей, а ключевым условием существования современных приложений. JWT, являясь уже стандартом передачи идентификационных и авторизационных данных, требует глубокого понимания тонкостей своей реализации в первую очередь безопасниками. Особенно это касается применения JWS, JWE и интеграции принципов архитектуры/философии Zero Trust.
JWT – JSON Web Token
JWS – JSON Web Signature
JWE – JSON Web Encryption
JWS предназначен для защиты целостности и подтверждения подлинности JWT. Важно отметить, что подпись JWS не шифрует содержимое токена, а лишь предотвращает его модификацию.
Основные алгоритмы, применяемые в JWS:
На что стоит обратить внимание при проверке JWS:
Частая ошибка, которую допускают разработчики - отсутствие проверки используемого алгоритма, что может привести к атакам типа "none algorithm" или подмене алгоритма подписи.
Пример:
token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
return publicKey, nil
})
В отличие от JWS, JWE предназначен для защиты конфиденциальности данных внутри JWT. Использование JWE позволяет гарантировать, что только владелец приватного ключа сможет прочитать данные токена.
При реализации JWE важно обеспечить:
Zero Trust требует, чтобы каждый запрос проверялся независимо, не доверяя никаким промежуточным слоям. JWT идеально вписывается в эту модель при некоторых условиях:
А в ваших микросервисах всё так ?)
«Безопасность — не продукт, а процесс»
Наверное, одно из моих любимых выражений, которую не понимают многие люди из ИБ
Как я и говорил, что немного меняю подход к обучающим постам, теперь в каждом из них будет идти код с ошибкой (Я могу и сам ошибиться в ошибке, не серчайте
Так вот, что тут не так и где беда?
func ValidateToken(tokenString string, publicKey *rsa.PublicKey) (*jwt.Token, error) {
token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
if _, ok := token.Method.(*jwt.SigningMethodRSA); !ok {
return nil, fmt.Errorf("Неожиданный алгоритм подписи: %v", token.Header["alg"])
}
return publicKey, nil
})
if err != nil {
return nil, err
}
return token, nil
}
Телеграмм не позволяет делить открытие скрытого текста, поэтому ответ будет отправлен спустя 1 день.
Также мне нужна обратная связь по ЯП. Я умею в Go, Python, немного в Java и JS. Вы не будте против, если при коде на других языках, Вас будет проверять ИИ?
Обрати внимание на то, что код проверяет только тип алгоритма, но не конкретный алгоритм и не проверяет claims. Почему это может быть критично?
Для повышения безопасности JWT необходимо:
В заключение мне хочется сказать, что тема JWT стала основным, что я спрашиваю у людей на собеседовании, потому что это БАЗА, которую нужно знать.
#appsec
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Proxy Bar
CVE-2025-0927
*
Affected Versions
* Linux Kernel, up to 6.12.0
* Ubuntu 22.04 with Linux Kernel 6.5.0-18-generic
/
Большой WriteUP + Source Exploit.c - Linux kernel hfsplus slab-out-of-bounds Write
UPDATE: если совсем коротко то -локальные юзеры (без особых прав) могут устанавливать произвольные файловые системы через
#linux
*
Affected Versions
* Linux Kernel, up to 6.12.0
* Ubuntu 22.04 with Linux Kernel 6.5.0-18-generic
/
Большой WriteUP + Source Exploit.c - Linux kernel hfsplus slab-out-of-bounds Write
UPDATE: если совсем коротко то -локальные юзеры (без особых прав) могут устанавливать произвольные файловые системы через
Udisks2 из-за правил для Polkit. Включая в себя ФС, чьи монтирования обычно требуют CAP_SYS_ADMIN в init user namespace.#linux
Forwarded from s0ld13r ch. (s0ld13r)
LOL... да кто это ваш LOLRMM?! 😠
Последние тенденции крутятся вокруг легитимного или условно легитимного софта, именуемых как LOL (Living of the Land). Данную технику часто применяют Threat Actor'ы, чтобы немного поиграть на нервишках SOC и оставаться в сети максимально долго🥷
Я уже обозревал некоторые проекты по типу LOLC2, а комьюнити уже выкатило огромный список RMM инструментов (по типу AnyDesk/TeamViewer):
Из интересного для TH🛡
Собрали 272 индикаторов инструментов для удаленного администрирования, что позволит обогатить данные в правилах и с большей долей вероятности поймать плохиша❗️
Из интересного для Red Team🎩
Список инструментов которые можно использовать и тихо сидеть в сетке не вызывая шума под носом у Антивируса😏
🔗 Link: https://lolrmm.io/
@s0ld13r_ch
Последние тенденции крутятся вокруг легитимного или условно легитимного софта, именуемых как LOL (Living of the Land). Данную технику часто применяют Threat Actor'ы, чтобы немного поиграть на нервишках SOC и оставаться в сети максимально долго
Я уже обозревал некоторые проекты по типу LOLC2, а комьюнити уже выкатило огромный список RMM инструментов (по типу AnyDesk/TeamViewer):
LOLRMM is a curated list of Remote Monitoring and Management (RMM) tools that could potentially be abused by threat actors. Inspired by the original LOLBAS project for tracking binaries and closely associated with LOLDrivers for malicious drivers, this project aims to assist security professionals in staying informed about these tools and their potential for misuse.
Из интересного для TH
Собрали 272 индикаторов инструментов для удаленного администрирования, что позволит обогатить данные в правилах и с большей долей вероятности поймать плохиша
Из интересного для Red Team
Список инструментов которые можно использовать и тихо сидеть в сетке не вызывая шума под носом у Антивируса
🔗 Link: https://lolrmm.io/
@s0ld13r_ch
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Adaptix Framework
В версии 0.3 будут реализованы "internal" листенеры, для коммуникации агентов между собой по различным каналам. В качестве примера реализован SMB beacon.
В поле External отображается текущих управляющий агент и имя линка
В поле External отображается текущих управляющий агент и имя линка
Forwarded from SHADOW:Group
Раскрыли подробности новой уязвимости в Next.JS
CVE-2025-29927. Уязвимость затрагивает все версии Next.js начиная с 11.1.4. Суть проблемы — некорректная обработка заголовка x-middleware-subrequest, позволяющая полностью игнорировать middleware, включая проверку авторизации и перезапись путей.Как это работает
Next.js использует
x-middleware-subrequest для внутренних нужд: он указывает, какие middleware уже были пройдены. Однако злоумышленник может сам подставить значение, указывающее, что middleware уже обработан, и тем самым обойти все проверки.x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware
x-middleware-subrequest: src/middleware:src/middleware:src/middleware:src/middleware:src/middleware
Пример запроса:
GET /admin/dashboard HTTP/1.1
Host: vulnerable.site
x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware
Результат: Middleware полностью игнорируется, и запрос проходит, как будто пользователь авторизован.
Другие сценарии атак
Если middleware устанавливает Content-Security-Policy и другие заголовки - они будут проигнорированы.
Например, если сайт делает rewrite на основе геолокации, можно закэшировать "пустую" или ошибочную версию страницы, нарушив доступность для других.
Кого это касается
Приложения, использующие middleware для авторизации или других чувствительных задач. Если middleware не используется - уязвимость малозначима (кроме DoS-сценариев).
📖 Подробнее:
https://zhero-web-sec.github.io/research-and-things/nextjs-and-the-corrupt-middleware
#web #bac #cache #dos #csp
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Proxy Bar
Forwarded from CyberSecrets
Новые старые связи BloodHound
С выходом BloodHound CE я как-то перестал следить за тем, что нового добавляется в функционал. А зря! Просматривая новостные ленты, я обнаружил, что разработчики планируют добавить (может уже добавили) новую связь
Пойдем дальше, аналогично со связью
В этом запросе, сначала находим группу
В дополнение, можно добавить связь
Визуализация путей позволяет расширить картину инфраструктуры и найти оптимальные пути для выполнения работ.
#BloodHound #Внутрянка #Cypher
С выходом BloodHound CE я как-то перестал следить за тем, что нового добавляется в функционал. А зря! Просматривая новостные ленты, я обнаружил, что разработчики планируют добавить (может уже добавили) новую связь
CoerceAndRelayNTLMToSMB. Эта связь показывает возможность выполнения последовательности атаки от принудительной аутентификации до NTLM Relay в SMB для получения различных учетных данных или выполнения кода на удаленном компьютере. Выполнять Relay SMB в LDAP нельзя без определенных условий. Но если есть компьютеры, которые являются локальными администраторами на других компьютерах, данная связь уже имеет смысл. Второй вариант использования этой связи, когда мы заставляем пользователей пройти принудительную аутентификацию (например, LNK файлы) и выполняем технику NTLM Relay на хосты, где они имеют привилегии локального администратора. Пойдем дальше, аналогично со связью
CoerceAndRelayNTLMToSMB можно добавить связь CoerceAndRelayWebClient, которая будет показывать возможность выполнять технику Relay HTTP в LDAP. В посте про поиск компьютеров с включенным WebClient есть скрипт, который позволяет автоматизировать этот процесс и сразу выводить информацию в виде Cypher запросов. После загрузки данных можно выполнить следующий запрос, чтобы добавить новую связь:
MATCH (g:Group) WHERE g.objectid ENDS WITH "S-1-5-11"
MATCH (c:Computer) WHERE c.webclient = TRUE
MERGE (g)-[r:CoerceAndRelayWebClient]->(c)
В этом запросе, сначала находим группу
AUTHENTICATED USERS и все компьютеры, у которых запущен WebClient и устанавливаем между ними связь.В дополнение, можно добавить связь
GetServiceTicket (Kerberoasting) от группы `AUTHENTICATED USERS до всех незаблокированных пользовательских учетных записей, у которых есть SPN. Cypher запрос будет следующим.cypher
MATCH (g:Group) WHERE g.objectid ENDS WITH "S-1-5-11"
MATCH (u:User) WHERE u.hasspn = TRUE AND u.enabled = TRUE
MATCH (g)-[r:GetServiceTicket]->(u)
Визуализация путей позволяет расширить картину инфраструктуры и найти оптимальные пути для выполнения работ.
#BloodHound #Внутрянка #Cypher