🧠 Сложная и интересная задача для Python-инженеров:
"Запусти чужой Python-код... но так, чтобы он не сломал твой сервер"
Представь, ты разрабатываешь платформу, где пользователи могут запускать произвольные Python-скрипты:
например, в формате онлайн-компилятора, песочницы для тестов, или генератора графиков.
📌 Условия задачи:
Ты должен написать систему, которая:
• Принимает произвольный Python-код от пользователя
• Выполняет его безопасно и изолированно
• Ограничивает время выполнения до 2 секунд
• Ограничивает память до 128 MB
• Блокирует доступ к файловой системе, сети, subprocess, fork
• Возвращает
🛡️ Безопасность — ключ:
• Скрипт может попытаться сделать
• Ваша система не должна пострадать. Даже если кто-то пошлёт fork-бомбу или запросит весь RAM.
📦 Технические ограничения:
• Решение должно быть на Python
• Можно использовать Docker, podman, или Firecracker — но обоснуй выбор
• Стандартная библиотека разрешена, но доступ к
• Никаких внешних HTTP-запросов, файловых сокетов или pip install
🔧 Что ожидается:
1. Функция запуска:
Изоляция среды:
• Вариант 1: через запуск контейнера с ограничениями (docker run --rm --net=none --memory=128m)
• Вариант 2: через Firejail / chroot / seccomp / AppArmor профили
• Вариант 3: через интерпретатор Python внутри subprocess с ограничениями через resource, signal, ast и multiprocessing.Process
Блокировка опасных импортов и функций:
• Запретить import os, import subprocess, import, eval, exec, open, globals()
• Пример: AST-парсер удаляет запрещённые ноды до запуска
Обработка ошибок и ограничений:
• TimeoutExceededError — если код работает > 2 сек
• MemoryLimitError — если процесс превысил лимит
• SecurityViolation — при попытке запрещённого импорта или доступа
Опционально — FastAPI API:
→ Ответ:
🎯 Цель:
Собрать систему, которая запускает потенциально опасный код от незнакомцев — и не падает, не зависает, не открывает доступ к хосту.
🤯 Challenge:
• Как отследить попытку from os import system?
• Что делать с __import__('os').system('ls')?
• Как гарантировать остановку при while True: pass?
• Как контролировать память на уровне Python?
✅ Если решишь — ты разберёшься с:
• AST-парсингом и безопасностью исполнения Python
• Управлением ресурсами (CPU, RAM, время) на уровне ОС
• Изоляцией через контейнеры и sandbox-окружения
• Построением безопасных API и интерпретаторов
"Запусти чужой Python-код... но так, чтобы он не сломал твой сервер"
Представь, ты разрабатываешь платформу, где пользователи могут запускать произвольные Python-скрипты:
например, в формате онлайн-компилятора, песочницы для тестов, или генератора графиков.
📌 Условия задачи:
Ты должен написать систему, которая:
• Принимает произвольный Python-код от пользователя
• Выполняет его безопасно и изолированно
• Ограничивает время выполнения до 2 секунд
• Ограничивает память до 128 MB
• Блокирует доступ к файловой системе, сети, subprocess, fork
• Возвращает
stdout
, stderr
и статус выполнения🛡️ Безопасность — ключ:
• Скрипт может попытаться сделать
os.remove('/')
, import socket
, while True:
и т.п. • Ваша система не должна пострадать. Даже если кто-то пошлёт fork-бомбу или запросит весь RAM.
📦 Технические ограничения:
• Решение должно быть на Python
• Можно использовать Docker, podman, или Firecracker — но обоснуй выбор
• Стандартная библиотека разрешена, но доступ к
os
, sys.modules
, inspect
, eval
, __import__
— должен быть отключён или переопределён • Никаких внешних HTTP-запросов, файловых сокетов или pip install
🔧 Что ожидается:
1. Функция запуска:
result = run_code_safely(code="print(2 + 2)")
# result = { "stdout": "4\n", "stderr": "", "exit_code": 0, "status": "ok" }
Изоляция среды:
• Вариант 1: через запуск контейнера с ограничениями (docker run --rm --net=none --memory=128m)
• Вариант 2: через Firejail / chroot / seccomp / AppArmor профили
• Вариант 3: через интерпретатор Python внутри subprocess с ограничениями через resource, signal, ast и multiprocessing.Process
Блокировка опасных импортов и функций:
• Запретить import os, import subprocess, import, eval, exec, open, globals()
• Пример: AST-парсер удаляет запрещённые ноды до запуска
Обработка ошибок и ограничений:
• TimeoutExceededError — если код работает > 2 сек
• MemoryLimitError — если процесс превысил лимит
• SecurityViolation — при попытке запрещённого импорта или доступа
Опционально — FastAPI API:
POST /run
{
"code": "for i in range(10): print(i)"
}
→ Ответ:
{
"stdout": "0\n1\n2\n...\n",
"stderr": "",
"status": "ok",
"time": 0.032
}
🎯 Цель:
Собрать систему, которая запускает потенциально опасный код от незнакомцев — и не падает, не зависает, не открывает доступ к хосту.
🤯 Challenge:
• Как отследить попытку from os import system?
• Что делать с __import__('os').system('ls')?
• Как гарантировать остановку при while True: pass?
• Как контролировать память на уровне Python?
✅ Если решишь — ты разберёшься с:
• AST-парсингом и безопасностью исполнения Python
• Управлением ресурсами (CPU, RAM, время) на уровне ОС
• Изоляцией через контейнеры и sandbox-окружения
• Построением безопасных API и интерпретаторов
🧬 Genesys: Language Modeling by Language Models
Проект от Allen Institute — Genesys (Genetic Discovery System) — это распределённая эволюционная система, в которой сами языковые модели (LLM) создают и улучшают другие языковые модели.
🛠 Что делает Genesys:
• Автоматизирует весь цикл: от генерации идеи до реализации, проверки, обучения и оценки новых моделей
• Использует LLM-агентов в роли исследователей и архитекторов
• Работает как распределённая система, способная параллельно развивать десятки направлений
• Имеет визуальный интерфейс, где можно наблюдать за эволюцией моделей и сравнивать результаты
🌐 Демо-доступ:
Доступен онлайн на сайте genesys.allen.ai (первая сборка может загружаться медленно)
📊 Основные разделы интерфейса:
• Evolution Statistics — статистика и ход эволюции
• Design Viewer — галерея сгенерированных архитектур (можно скачивать)
• Design Leaderboard — лидерборд лучших дизайнов по метрикам
🎥 Есть короткое видео-демо, где показаны функции и логика системы
📄 Исходный код и исследовательская статья опубликованы на GitHub и в открытом доступе
🧠 Genesys — это шаг к будущему, где языковые модели смогут исследовать и разрабатывать сами себя
💻 Попробовать: https://genesys.allen.ai
📝 Код https://github.com/allenai/genesys
✍️ Статья: https://arxiv.org/abs/2506.20249
Проект от Allen Institute — Genesys (Genetic Discovery System) — это распределённая эволюционная система, в которой сами языковые модели (LLM) создают и улучшают другие языковые модели.
🛠 Что делает Genesys:
• Автоматизирует весь цикл: от генерации идеи до реализации, проверки, обучения и оценки новых моделей
• Использует LLM-агентов в роли исследователей и архитекторов
• Работает как распределённая система, способная параллельно развивать десятки направлений
• Имеет визуальный интерфейс, где можно наблюдать за эволюцией моделей и сравнивать результаты
🌐 Демо-доступ:
Доступен онлайн на сайте genesys.allen.ai (первая сборка может загружаться медленно)
📊 Основные разделы интерфейса:
• Evolution Statistics — статистика и ход эволюции
• Design Viewer — галерея сгенерированных архитектур (можно скачивать)
• Design Leaderboard — лидерборд лучших дизайнов по метрикам
🎥 Есть короткое видео-демо, где показаны функции и логика системы
📄 Исходный код и исследовательская статья опубликованы на GitHub и в открытом доступе
🧠 Genesys — это шаг к будущему, где языковые модели смогут исследовать и разрабатывать сами себя
💻 Попробовать: https://genesys.allen.ai
📝 Код https://github.com/allenai/genesys
✍️ Статья: https://arxiv.org/abs/2506.20249
This media is not supported in your browser
VIEW IN TELEGRAM
Wondera AI ии, который генерирует полноценные треки за минуту и заметно обходит конкурентов по качеству.
Вы можете создавать, редактировать и выпускать музыку бесплатно, а нейронка подскажет, как лучше составить промт для трека.
Пользуемся тут.
Вы можете создавать, редактировать и выпускать музыку бесплатно, а нейронка подскажет, как лучше составить промт для трека.
Пользуемся тут.
Forwarded from Data science Архив бесплатных курсов
• Ideogram (MidJourney) — генератор изображений с огромным количеством настроек.
• Pikalabs (Runway) — инструмент для создания и редактирования видео с помощью ИИ
• Gamma (Power Point) — платформа для создания презентаций с ИИ-поддержкой.
• N&N (Zapier) — автоматизация задач с использованием ИИ.
• Krita (Photoshop) — бесплатный редактор изображений с функциями ИИ.
• Gemini (ChatGPT) — мультимодальная нейросеть от Google для генерации текста, изображений и кода.
freecourses
Please open Telegram to view this post
VIEW IN TELEGRAM