Files

36 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AWS Sigma
## Описание
ArSib Web Services Sigma - это сервис serverless функций, напоминающий AWS Lambda. Он позволяет пользователям создавать произвольные обработчики HTTP запросов (бессерверные функции) на языке JavaScript, способные взаимодействовать с диском и базой данных.
## Возможности
- Регистрация и вход (JWT под капотом)
- Создание и управление проектами
- Создание и управление функциями, редактирование кода с автодополнением, просмотр логов
- Исполнение кода функции, назначенной на определенный HTTP endpoint, на стороне сервера
## Реализация
- Бэкенд на TypeScript + NestJS реализует функции панели управления проектами и балансировщик нагрузки/очередь для запуска функций на исполнение.
Использует MongoDB
- JavaScript рантайм на Rust + Boa позволяет (не)безопасно исполнять произвольный пользовательский код на сервере с лимитами по использованию памяти и времени исполнения.
Использует PostgreSQL для хранения пользовательских данных
- Веб-панель управления на TypeScript + React
## Уязвимости
- Arbitrary file access через API файловой системы для пользовательских функций
-> Доступ к сгенерированному JWT токену в /etc/sigma/jwt.secret
- Недостаточная валидация доступа к базе данных через API для пользовательских функций -> доступ к данным других проектов
- NoSQL инъекция в обработчике GET /api/v1/projects через get query
- NoSQL инъекция в практически любом обработчике через подделку JWT токена
- DoS by design при выполнении пользовательских функций.
Предусмотрены опции рантайма для быстрого закрытия уязвимости