Positive Development Community – Telegram
Positive Development Community
3.14K subscribers
1.42K photos
224 videos
4 files
461 links
Download Telegram
Всем привет! 👋
(@vkochetkov здесь)

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

Дело в том, что сей Pedram, предлагая решать проблему обработки входных данных «зря в корень», похоже, даже близко себе не представляет, где этот корень находится. Рассмотрим на примере первой части статьи. В ней автор рассматривает примеры решений одного из челленджей SecDim, основанного на CVE-2021-43798, и отбраковывает одно за другим, апеллируя к тому, что они не устраняют корень проблемы. Корень же Path Traversal, по убеждению автора, заключается в (я цитирую):

> is the lack of path canonicalization

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

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

Btw, предложенное автором решение никак не защищает от, например, обращения к альтернативным потокам NTFS, если приложение окажется (не дай бог, конечно) развёрнутым под виндой. Как и от внедрения нуль-байта, управляющих символов и прочих DoS через жестко-заданные в ОС файловые имена. Зависит от окружения, конечно, но кто ж так в корень-то смотрит? 🤦‍♂️

И потом, если уж мы протащили файловые пути на уровень бизнес-логики, то реализуя тем самым требование «отдать пользователю существующий файл по запрошенному, жестко-заданному пути». И вот что мешало вспомнить о принципе KISS и сделать как-то так — ума не приложу:

if not str.isidentifier(filename) or filename not in os.listdir("/resources"):
return HttpResponseBadRequest()

(почему не с помощью os.path.exists() — пусть будет домашним заданием)

На две трети решённая задача обеспечения безопасности приложения — это грамотный дизайн его архитектуры и модели предметной области.

А не вот это вот всё... 🫠

❗️И да, это тоже #экспериментальная_рубрика. А вы как думали?👇
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍12🍌21
Forwarded from Positive Technologies
🛡 Каждая крупная российская компания, даже если она не из IT-отрасли, занимается внутренней разработкой. А значит, она должна думать о том, как сделать ее безопасной на всех этапах жизненного цикла. Иначе внутренние продукты и системы могут стать слабым местом в киберзащите.

Уже завтра, 11 октября в 11:00, Алексей Астахов, руководитель продуктов Application Security, Positive Technologies, примет участие в прямом эфире AM Live, на котором обсудят лучшие средства, инструменты и практики российской безопасной разработки, процессы ее внедрения и поговорят о том, где взять нужных для этого специалистов.

Слушайте, если хотите узнать:

• Что такое опасная и безопасная разработка на конкретных примерах.
• Из чего состоят процессы DevSecOps и как определить, насколько они зрелые у вас в компании.
• С чего начать внедрение безопасной разработки и какие IT-продукты в этом помогут.
• Какие практики и инструменты лучше всего подходят для проверки исходного кода.
• Как подготовить инфраструктуру и найти сотрудников.
• Как обеспечить DevSecOps при внешней и open-source-разработке.
• Что про все это думают регуляторы.
• Каковы перспективы безопасной разработки: прогнозы, законодательство, станет ли она must have для всех.

Регистрируйтесь и готовьте ваши вопросы. До встречи в эфире!

@Positive_Technologies
#PositiveЭксперты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
📌 Наиболее интересные публикации по аппсеку за прошедшую неделю

📰 Кажущийся большим, но на деле — весьма сжатый гайд о том, как найти в аббревиатуре «IoT» ту самую букву «S», означающую «Security».

📰 Очередной метод сокрытия внедряемого в .NET-сборки кода от ресёрчеров CheckPoint.

📰 Языковой ИИ-ассистент для тех, кому слишком скучно работать в консоли с популярными security-тулами.

📰 Неплохой и весьма обширный гайд по атакам на front-end веб-приложений.

📰 Обзор и сравнительный анализ современных инструментов поиска утечек памяти.

📰 Опыт Авито по организации виртуализированной песочницы в macOS.

📰 Локальный TCP/UDP прокси для пентеста приложений с кастомными протоколами.

📰 Описание забавной атаки на клиентов Cloudflare средствами самой Cloudflare.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥142🤩1
🔍 Наиболее интересные уязвимости прошедшей недели

🐛 CVE-2023-41580, обнаруженная в платформе управления IP-адресами phpipam до версии 1.5.2, позволяет аутентифицированному атакующему получать конфиденциальные данные из хранилища через LDAP инъекцию. Уязвимость заключается в отсутствии санитизации пользовательских данных, попадающих в функцию $adldap->user()->info, которая формирует LDAP запросы для получения данных о пользователе. В исправлении данные, попадающие в LDAP запрос, проходят через экранирующую функцию ldap_escape с флагом LDAP_ESCAPE_DN.

🐛 CVE-2023-42809 в клиенте Redisson до версии 3.22.0 позволяет исполнять произвольный код при подключении к вредоносному серверу. Уязвимость заключается в попадании пользовательских данных в функцию ObjectInputStream.readObject и их небезопасной десериализации. В патче был добавлен "белый" список классов, который определяет разрешенные объекты при десериализации. Упрощению эксплуатации способствует наличие в составе Redisson библиотеки "Apache Commons Collections 4", для которой существует стандартный ysoserial гаджет "CommonsCollections2".

🐛 CVE-2023-43793 в децентрализованной социальной медиа платформе Misskey до версии 2023.9.0 позволяет обходить процесс аутентификации, для эндпойнтов, начинающихся с /queue. Проблема затрагивала процедуру сравнения пути эндпойнта с закодированным URI, что обеспечивало обход процесса аутентификации. В исправлении URI запроса перед его сравнением декодируется при помощи функции decodeURI.

🐛 CVE-2023-44390, выявленной в .NET библиотеке html-санитизации HtmlSanitizer до версии 8.0.723, позволяет обходить процесс санитизации и добавлять вредоносные html-объекты. В библиотеке данные, находящиеся в комментариях или в текстовых полях html документа, обрабатывались без экранирования. Для этих случае в патче была добавлена замена символов "<" и ">" на их html-мнемоники ("&lt;" и "&gt;").

🐛 CVE-2023-26153 в библиотеке для работы с геолокацией geokit-rails до версии 2.5.0 позволяет неаутентифицированному атакующему выполнять произвольные команды с помощью эксплуатации небезопасной YAML десериализации. Проблема связана с попаданием значения "geo_location" куки в уязвимую функцию YAML.load. Для исправления уязвимости функцию YAML.load заменили на безопасную функцию JSON.parse.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4🔥2🍌1
Всем весёлой и удачной 13-ой пятницы 😈
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣248
📌 Наиболее интересные публикации по аппсеку за прошедшую неделю

📰 Очередной обзор security-заголовков HTTP. Краткий и неполный, но для того, чтобы погрузиться в тему — вполне. Btw, более детально изучить упомянутый в обзоре HSTS можно в ещё одной свежей статье от Sucuri.

📰 Достаточно подробный разбор внутреннего устройства TLS пополнился продолжением.

📰 Небольшой, но годный гайд по генерации криптографически-устойчивых последовательностей случайных чисел.

📰 Описание техник злонамеренного использования GhostScript.

📰 Детальный разбор нашумевшей на прошлой неделе атаки "HTTP/2 Rapid Reset".

📰 Очередной райтап от AP Security по прохождению заданий на виртуалках TryHackMe (на этот раз, "Enterprise").

📰 И, в завершение, два авторских райтапа с разбором интересных bugbounty-уязвимостей: в CloudTips/CloudPayments, и в FortiNAC.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥5🎉2❤‍🔥1
🔍 Наиболее интересные уязвимости прошедшей недели

🐛 CVE-2023-44487 в протоколе HTTP/2. Проблема связана с дизайном протокола HTTP/2 и касается возможности одностороннего сброса потока отправкой RST_STREAM, что в итоге позволяет создавать неограниченное количество новых потоков для сервера и приводит к отказу в обслуживании. Многие разработчики библиотек, реализующих протокол HTTP/2, уже добавляют механизмы контроля количества новых потоков (клон Nginx tengine, jetty, envoy, пакет go x/net/http2 и т.д). Ссылку на подробный разбор ищите в нашем предыдущем новостном посте.

🐛 CVE-2023-36820 в платформе Micronaut Security до версий 3.1.2, 3.2.4, 3.3.2, 3.4.3, 3.5.3, 3.6.6, 3.7.4, 3.8.4, 3.9.6, 3.10.2 и 3.11.1 приводит к обходу процесса валидации ID токена. Проблема заключается в отсутствии проверки значения aud на соответствие идентификатору клиента при условии, что в настройках значение micronaut.security.authentication выставлено в idtoken, а также значение iss совпадает со значением текущего эмитента приложения. В патче скорректирована логика валидации токена через использование логического оператора "и" ( && ) вместо "или" ( || ).

🐛 CVE-2023-44393, выявленная в приложении Piwigo до версии 14.0.0beta4, приводит к возможности внедрения дополнительных DOM сущностей в состав HTML документа. Уязвимость заключается в отсутствии санитизации пользовательских данных ( $_GET['plugin_id'] ), попадающих в переменную $activate_url, которая участвует в формировании тела ответа. В исправлении был исключен канал воздействия путем удаления $_GET['plugin_id'] из формирования значения переменной $activate_url.

🐛 CVE-2023-41047 в веб-интерфейсе для 3D принтеров OctoPrint до версии 1.9.3 позволяет привилегированным пользователям выполнять произвольный код путем создания специально сформированных GCODE-скриптов. Уязвимость состоит в использовании небезопасного jinja2-окружения jinja2.sandbox.Environment при работе с шаблонами. Патч заменяет jinja2.sandbox.Environment на более безопасный вариант - jinja2.sandbox.SandboxedEnvironment, в котором при попытке исполнения небезопасного кода будет выдано исключение jinja2.sandbox.SecurityError.

🐛 CVE-2023-23930, найденная в платформе для обучения vantage6 до версии 4.0.0, заключается в использовании небезопасной реализации процесса десериализации с использованием библиотеки pickle, что может привести к исполнению произвольного кода. В исправлении уязвимая функция pickle.loads была заменена на безопасный вариант - json.loads.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Эй, псст! У вас найдётся минутка, чтобы посмотреть пятничные мемчики? 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥16👍8🤣3🔥2😁2