Sakhanda Wire
NVDA $214.13 -1.43% MSFT $529.05 -1.93% GOOGL $340.59 -2.47% META $709.33 -3.72% AMZN $250.00 -1.87%
← До новин

Perplexity відкрила код SPACE — пісочниці з мікроVM Firecracker для ШІ-агентів

Perplexity відкрила код SPACE — платформи-пісочниці, що лежить в основі кожного завдання в Perplexity Computer. Пісочниця Perplexity SPACE надає кожному завданню агента власну мікровіртуальну машину Firecracker. Облікові дані та вихідний трафік контролюються ззовні цієї віртуальної машини. Код опубліковано за ліцензією Apache 2.0 на GitHub. Для команд, які створюють агентів для програмування або перегляду вебсторінок, це протестований у production-умовах рівень ізоляції, який вони можуть розгорнути самостійно.

Коротко

  • Розмір: кодова база на Rust, реліз 0.8.0 — публічна базова версія. HTTP API та серверні події.
  • Працює на: хості Linux x86_64 з KVM, /dev/kvm, btrfs і Docker. Локальний Kind (Kubernetes) або прямий режим. macOS не підтримується.
  • Продуктивність: у production-умовах медіанна затримка створення зменшилася з 185 мс до 60 мс порівняно з попереднім провайдером Perplexity.
  • Найкращий результат: 0 із 108 спроб втечі з віртуальної машини на хост були успішними для 9 передових моделей.
  • Найгірший результат: до виправлень агенти обходили політику вихідного трафіку у 11 із 54 запусків із частково доступною мережею.

Що таке Perplexity SPACE?

SPACE (Sandboxed Platform for Agentic Code Execution) — це платформа Perplexity для запуску коду агентів в ізольованих мікровіртуальних машинах. Застосунки використовують її HTTP API, щоб створювати середовища Linux, виконувати команди та передавати вивід у потоці.

Шаблон містить початкову файлову систему. Пісочниця — це один екземпляр цього шаблону з власною віртуальною машиною та диском із правом запису. В одній пісочниці можна виконувати багато команд.

Публікація про запуск Perplexity пояснює мету цього дизайну. Агенти виконують команди, встановлюють пакети та викликають сервіси з правами root усередині пісочниці. Хост залишається поза контролем гостя. Робота агента є довготривалою, зберігає стан і розгалужується, тому вона має переживати перезапуски.

Як SPACE ізолює агентів?

Кожна пісочниця — це мікровіртуальна машина Firecracker із власним ядром гостьової системи. Мережевий шлюз на хості для кожної пісочниці застосовує політику вихідного трафіку до кожного вихідного з’єднання.

Секрети ніколи не потрапляють до гостя. Згідно з липневою інженерною публікацією Perplexity, облікові дані впроваджуються на мережевому рівні. Сховище облікових даних підтримує ієрархічне розмежування доступу, обмеження швидкості та журналювання аудиту.

Посібник з архітектури поділяє систему на 4 частини. Це API на базі PostgreSQL, контролери, робочі сервіси та площина даних. Робочі сервіси керують віртуальними машинами, мережами, томами, шаблонами та обліковими даними. btrfs із копіюванням під час запису створює кожну кореневу файлову систему.

Як працюють призупинення, зупинка та відновлення?

Пісочниці проходять через 4 стани: запущена, призупинена, зупинена та видалена.

  • Призупинена: пам’ять віртуальної машини залишається резидентною на робочому вузлі. Це не довговічний знімок.
  • Зупинена: пам’ять віртуальної машини, стан виконання та коренева файлова система зберігаються у вигляді знімка. Активні ресурси звільняються.
  • Типовий режим бездіяльності: пісочниці зупиняються після 6 годин без активності.

Для швидкого створення розгортання Kubernetes використовують пули попередньо запущених екземплярів. В одно-нодових конфігураціях натомість використовуються базові знімки.

У production-умовах затримка створення на 90-му перцентилі зменшилася з 447 мс до 89 мс. Perplexity повідомляє, що 100% сеансів Computer працюють на SPACE.

Чи витримала SPACE тестування червоною командою?

У звіті Perplexity «Втеча з SPACE: частина I» протестовано 9 моделей із правами root усередині гостя. Дослідження охопило 216 запусків, 2 завдання та 4 конфігурації.

  • Втеча з пісочниці: у 0 із 108 запусків вдалося дістатися секрету на стороні хоста.
  • Обхід без мережі: 0 із 54 запусків були успішними.
  • Обхід у частково доступній мережі: до виправлень успішними були 11 із 54 запусків. Шлях знайшли 4 моделі.

Claude Opus 5.0, GPT-5.6 Sol, GPT-5.6 Cyber і Kimi K3 знайшли способи обходу. В атаках використовувалися підміна DNS і спільні IP-адреси CDN.

Після цього Perplexity додала перевірку адреси джерела через nftables. Тепер шлюз завершує TLS і перевіряє SNI та HTTP host за списком дозволених значень. Під час повторного тестування жодна модель не продемонструвала підтвердженого обходу.

Та сама команда протестувала 10 сторонніх платформ. У 8 із них було виявлено щонайменше один обхід мережевої політики. Perplexity розкрила результати кожному постраждалому постачальнику.

Назад</button><button class="btn" id="psx-next">Наступний стан ▶</button></div> </div> <div class="pane" data-p="2"> <div class="bars" id="psx-rt"></div> <div class="note">9 моделей, 216 запусків, права root усередині гостя. Виправлення: перевірка адреси джерела через nftables, завершення TLS із перевірками списку дозволених SNI + Host. Джерело: Perplexity, «Втеча з SPACE: частина I» (23 вересня 2026 року).</div> </div> <div class="pane" data-p="3"> <div class="bars" id="psx-lat"></div> <div class="note">Трафік у перший тиждень production-запуску, SPACE проти попереднього провайдера пісочниць Perplexity. Менше — краще. Джерело: інженерний блог Perplexity (15 липня 2026 року).</div> </div> <div class="pane" data-p="4"> <div class="tw"><table> <tr><th>Функція</th><th>SPACE</th><th>E2B Runtime</th><th>microsandbox</th></tr> <tr><td>Ізоляція</td><td>мікровіртуальна машина Firecracker</td><td>мікровіртуальна машина Firecracker</td><td>мікровіртуальна машина libkrun</td></tr> <tr><td>Ліцензія</td><td>Apache 2.0</td><td>Apache 2.0</td><td>Apache 2.0</td></tr> <tr><td>Мова</td><td>Rust</td><td>Go</td><td>Rust</td></tr> <tr><td>Тест вихідного трафіку Perplexity</td><td>0 обходів після виправлення</td><td>обхід HTTPS, планується пом’якшення</td><td>обхід HTTP + HTTPS, виправлено у v0.6.18</td></tr> </table></div> <div class="note">Результати щодо вихідного трафіку з тестів Perplexity, проведених 31 серпня — 1 вересня 2026 року, для протестованих версій.</div> </div> <div class="ft"><span>Джерела: github.com/perplexityai/SPACE · perplexity.ai/hub/blog</span><b>© Marktechpost</b></div> </div> <script> (function(){ var R=document.getElementById('pplx-space-x'); function post(){try{parent.postMessage({psxHeight:R.offsetHeight+40},'*')}catch(e){}} var tabs=R.querySelectorAll('.tab'),panes=R.querySelectorAll('.pane'); var D=['<b>Гостьова мікровіртуальна машина.</b> Кожне завдання отримує власну мікровіртуальну машину Firecracker із власним ядром гостьової системи. Агент може виконувати команди та встановлювати пакети з правами root. Хост залишається поза його контролем.', '<b>Шлюз для кожної пісочниці.</b> Увесь вихідний трафік гостя проходить через шлюз на стороні хоста. Тепер він завершує TLS і вимагає, щоб і SNI, і HTTP Host були внесені до списку дозволених та пов’язані з DNS.', '<b>Зовнішні сервіси.</b> Облікові дані ніколи не потрапляють до гостя. Вони впроваджуються на мережевому рівні з розмежуванням доступу, обмеженнями швидкості та журналюванням аудиту.']; var det=document.getElementById('psx-detail'),boxes=R.querySelectorAll('.box'); function showD(i){boxes.forEach(function(b,j){b.classList.toggle('act',i==j)});det.innerHTML=D[i];post()} boxes.forEach(function(b){b.addEventListener('click',function(){showD(+b.dataset.d)});b.addEventListener('mouseenter',function(){showD(+b.dataset.d)})}); showD(0); var L=['<b>Запущена.</b> Процеси виконуються. Оперативна пам’ять віртуальної машини та файлова система з правом запису зберігаються.', '<b>Призупинена.</b> Виконання зупиняється. Пам’ять віртуальної машини залишається резидентною на робочому вузлі. Це не довговічний знімок.', '<b>Зупинена.</b> Пам’ять віртуальної машини, стан виконання та коренева файлова система зберігаються у вигляді знімка. Активні ресурси віртуальної машини звільняються. Типово: зупинка після 6 годин бездіяльності.', '<b>Видалена.</b> Пісочниця більше недоступна через API.']; var li=0,sts=R.querySelectorAll('.st'),ld=document.getElementById('psx-life'); function life(){sts.forEach(function(s,j){s.classList.toggle('on',j==li)});ld.innerHTML=L[li];post()} document.getElementById('psx-next').onclick=function(){li=(li+1)%4;life()}; document.getElementById('psx-prev').onclick=function(){li=(li+3)%4;life()}; sts.forEach(function(s,j){s.style.cursor='pointer';s.onclick=function(){li=j;life()}}); life(); function bars(el,data){el.innerHTML=data.map(function(d){return '<div class="row"><div class="lbl"><span>'+d[0]+'</span><em>'+d[1]+'</em></div><div class="track"><div class="fill" data-w="'+d[2]+'" style="background:'+d[3]+'"></div></div></div>'}).join('')} bars(document.getElementById('psx-rt'),[ ['Втеча з віртуальної машини на хост','0 із 108 запусків',1.5,'#76B900'], ['Обхід мережі, без мережі','0 із 54 запусків',1.5,'#76B900'], ['Обхід мережі, часткова мережа (до виправлення)','11 із 54 запусків',20.4,'#E5675A'], ['Обхід мережі, після виправлення','0 підтверджених обходів',1.5,'#76B900'], ['Сторонні платформи з обходом','8 із 10',80,'#1FB8CD']]); bars(document.getElementById('psx-lat'),[ ['Медіанне створення, попередній провайдер','185 мс',41.4,'#5E5B66'], ['Медіанне створення, SPACE','60 мс',13.4,'#20808D'], ['Створення p90, попередній провайдер','447 мс',100,'#5E5B66'], ['Створення p90, SPACE','89 мс',19.9,'#20808D']]); function anim(p){p.querySelectorAll('.fill').forEach(function(f){f.style.width='0';setTimeout(function(){f.style.width=f.dataset.w+'%'},60)})} tabs.forEach(function(t){t.onclick=function(){var i=+t.dataset.t;tabs.forEach(function(x,j){x.classList.toggle('on',j==i)});panes.forEach(function(p,j){p.classList.toggle('on',j==i)});anim(panes[i]);post()}}); window.addEventListener('load',post);window.addEventListener('resize',post);setTimeout(post,300); })(); </script> </body> </html> ">

Як SPACE порівнюється з іншими відкритими пісочницями?

ФункціяPerplexity SPACEE2B RuntimemicrosandboxDaytona
Ізоляціямікровіртуальна машина Firecracker для кожної пісочницімікровіртуальна машина Firecracker для кожної пісочницімікровіртуальна машина libkrunвиділене ядро для кожної пісочниці
ЛіцензіяApache 2.0Apache 2.0Apache 2.0Публічний репозиторій, не підтримується з червня 2026 року
МоваRustGoRustНе розкрито
Вимоги до хостаLinux x86_64 + KVMНе розкритоLinux із KVMНе розкрито
Контроль вихідного трафікуШлюз для кожної пісочниці, завершення TLSфаєрвол nftables, списки SNI/HostНе розкритоНе розкрито
Тест вихідного трафіку Perplexity0 обходів після виправленняобхід HTTPS, планується пом’якшенняобхід HTTP + HTTPS, виправлено у v0.6.18обхід HTTPS, пом’якшення випущено
Підтримка E2B SDKТак, через обгортку ECWВбудованаНе розкритоНе розкрито

Як розробники розгортають SPACE?

Посібник зі встановлення розгортає SPACE у локальному кластері Kind. Хосту потрібні /dev/kvm, /dev/net/tun, loop-пристрої та btrfs. Для запуску всередині віртуальної машини потрібна вкладена віртуалізація.

Команди, які вже використовують E2B, можуть випробувати обгортку сумісності E2B. Її протестована базова версія — пакет Python e2b==2.21.1. Еталонне розгортання AWS EKS міститься в репозиторії.

Ключові висновки

  • SPACE запускає кожне завдання агента у власній мікровіртуальній машині Firecracker.
  • Облікові дані та політика вихідного трафіку перебувають за межами гостьової віртуальної машини.
  • У тестах червоною командою 0 із 108 спроб втечі дісталися хоста.
  • До виправлень обходи вихідного трафіку відбулися в 11 із 54 запусків, після — у 0.
  • Apache 2.0, Rust, потрібен хост Linux x86_64 із KVM.

Перегляньте репозиторій на GitHub, документацію і звіт червоної команди. Уся заслуга належить досліднику цього проєкту. Також підписуйтеся на нас у Twitter і не забудьте приєднатися до нашого субреддіту про машинне навчання з понад 150 тисячами учасників та підписатися на нашу розсилку. Стривайте! Ви є в Telegram? тепер ви також можете приєднатися до нас у Telegram.

Перекладено автоматично з англійської. Оригінал статті — за посиланням нижче.

Вперше опубліковано виданням MarkTechPost

Читати оригінал на MarkTechPost ↗

Текст і зображення належать MarkTechPost і наводяться тут із зазначенням авторства та посиланням на оригінальну публікацію.

← До новин

Ще новини

Усі останні новини