Агент који може да инсталира било шта, позове било шта и пише било где безбедан је само ако су зидови стварни. У Kortix-у су испод агента, у платформи, где их упит не може заобићи убеђивањем.
Сесија није картица у дељеном окружењу. Она је сопствена машина, а база података не дозвољава да две сесије имају исту машину. Раздвајање две ваше сесије користи исти механизам као раздвајање сесија два различита корисника.
унутар једне сесије
никада не улази
Алатки је потребан стварни акредитив за стварни посао, па искрено питање није да ли га машина икада садржи. Питање је која машина садржи који кључ, ко је то одлучио и шта никада не улази.
01
Шифровано помоћу AES-256-GCM кључем изведеним по пројекту.
02
И улога особе и декларисано одобрење агента морају то да дозволе.
03
Постављено у сесију при покретању, по имену, на tmpfs-у са режимом 0600.
04
Алатка га чита из окружења. Не уписује се у упит.
05
Датотека се брише при гашењу, а машина се уништава заједно с њом.
Већина AI алатки агенту даје све до чега може да досегне особа која га је покренула. Kortix то не ради. Идентитет агента носи сопствене смернице, које се процењују независно, па не може да наследи приступ нечему што му никада нисте одобрили.
главни субјект
тип ресурса
Дозволе се везују за принципала, за радњу, над типом ресурса.
Уграђене улоге — на сваком плану
account
project
Enterprise
Available on Enterprise, and on a self-hosted instance with an Enterprise license. The built-in roles above are free on every plan.
Сервисни налог је пуноправни машински идентитет у власништву налога, а не људски токен са шеширом. Смернице се везују директно за њега, а захтев који пошаље процењује се искључиво према његовим смерницама — никада не наслеђује домет онога ко га је креирао.
Особа или група може бити ограничена на именоване агенте и вештине унутар пројекта: маркетинг може да користи овог агента и ону вештину, и ништа друго. Све што не ограничите остаје доступно целом пројекту, па је ограничење избор, а не нешто што морате накнадно да поништавате.
Одобрење није подешавање скривено у администраторском панелу. То је блок у kortix.yaml-у, верзионисан са свим осталим, који одређује који позиви алатки се извршавају, који чекају особу, а који се одмах одбијају.
# reads run; writes and destructive calls stop for a humanpolicy: default_mode: risk policies: # a name-only rule cannot gate the target — conditions can - match: gmail.send_email action: require_approval conditions: - arg: to match: /@example\.com$/ # anything else through this tool is refused outright - match: gmail.send_email action: block # whole connectors can be gated with one glob - match: stripe.* action: require_approvalТри радње
always_run, require_approval, block. Правило упоређује glob са потпуно квалификованим путањама алатки, па један ред може обухватити један позив или цео конектор.
Ограничите циљ, не само алатку
„Сме ли агент да пошаље email“ није заштитна мера. Услови упоређују аргументе, па правило може бити „само на ове адресе“. Аргумент који се не може проценити подразумевано се одбија.
Без општег „увек дозволи“
Сваки ограничени позив се одобрава засебно, са његовим аргументима пред вама. Не постоји одобрење за целу сесију иза којег би се каснији позив са другачијим аргументима могао сакрити — та пречица је уклоњена на месту спровођења, а не само из UI-ја.
Подесите жељену подразумевану вредност
default_mode: risk омогућава читања, а слање, уписе и деструктивне позиве прослеђује особи. Пројекат без блока смерница задржава попустљиву стару подразумевану вредност, зато ово подесите изричито.
Агент може да пише колико жели на сопственој грани. Пренос тог рада у main је засебна могућност коју нема, осим ако му је намерно не предате — а и сама предаја је измена коју неко мора да одобри.
Свака измена стиже на грану направљену за ту сесију. Ништа што агент уради није видљиво другој сесији нити main-у.
Када агент жели да нешто преживи машину, прави commit и отвара захтев за измену усмерен ка main-у. То су једина врата.
Захтев за измену је diff. Агент који преписује сопствени упит прегледа се на исти начин као измена кода — јер то и јесте измена. Захтев за измену чији манифест није важећи уопште не може да се споји.
Спајање је засебна могућност, одбијена сваком агенту док је администратор не одобри. То одобрење живи у kortix.yaml-у — па агент не може да прошири сопствени домет без захтева за измену који неко други одобри.
Свака радња налога и свака радња агента бележи се на сваком плану. План одређује ко сме да чита, извезе или преноси тај запис — не да ли он постоји.
Исти производ се испоручује као управљани cloud, као стек унутар ваше мреже и као изоловано постављање. Отвореног је кода, па верујете коду који можете да прочитате.
Управљана услуга. Ми управљамо контролном равни и рачунарским ресурсима; ви управљате компанијом.
Један Docker Compose стек на вашем рачунару, из истих слика које користи управљани cloud. Ваша база података и датотеке налазе се на диску који ви контролишете.
A single-tenant deployment inside your own network. Isolated topologies are scoped with us rather than self-served.
Где заиста стојимо
Немамо ISO 27001 нити HIPAA и не сугеришемо да их имамо. Када извештај стигне, овај ред се мења тог дана, а не раније.
Немојте отварати јавни issue због рањивости. Пошаљите безбедносном контакту погођену верзију или commit, кораке за репродукцију и утицај.
безбедносни контакт
security@kortix.comОдајемо признање пријавиоцима који то желе, чим исправка буде објављена.
Почните са једним послом и ширите се одатле.