Бірлік 4 / 11

Қол жеткізуді басқару, сәйкестендіру және құпияны басқару

Табыстар:

  • Аутентификация мен авторизацияны бөлу және RBAC/ABAC көмегімен ең аз рұқсатты қолдану мүмкіндігі
  • Үлгіні пайдаланушы контекстінде іске қосу арқылы аралас прокси қаупін болдырмау мүмкіндігі
  • API кілттерін құпия басқару жүйесімен сақтау және айналдыру мүмкіндігі

AI жүйесіне жасалған шабуылдардың едәуір бөлігі үлгіні «алдау» арқылы емес, ұрланған API кілтінен немесе шамадан тыс рұқсат етілген есептік жазбадан басталады. Қауіпсіздіктің бұл деңгейі классикалық ақпараттық қауіпсіздіктен келеді, бірақ AI контекстінде жаңа тәуекелдерді қосады: модель басқа біреудің атынан сапарға шақырады, қызмет тіркелгісі барлық деректерге қол жеткізеді, кілт GitHub-қа ағып кетеді. Бұл бөлімде біз аутентификация, авторизация (RBAC/ABAC), минималды авторизация және құпия басқару арқылы AI жүйесіне қол жеткізуді қысқартуды үйренеміз.

Аутентификация мен авторизацияның айырмашылығы

Екі термин жиі шатастырылады:

  • Аутентификация: «Сіз кімсіз?» — пайдаланушының/қызметтің шынымен кім екенін дәлелдеу (пароль, токен, сертификат, СІМ).
  • Авторизация: «Сен не істей аласың?» — аутентификацияланған тарап қай ресурсқа/әрекетке қол жеткізе алатынын анықтау.

AI жүйелеріндегі маңызды нәзіктік мынада: модель пайдаланушы атынан жұмыс істегенде, ол сол пайдаланушының өкілеттілігімен немесе кең қызмет тіркелгісімен жұмыс істей ме? Соңғысы қауіпті — себебі инъекция арқылы алданған модель қызмет тіркелгісіне толық қол жеткізе алады.

Абайлаңыз: «Шатасып кеткен депутат» мәселесі: өкілеттілігі төмен пайдаланушы жоғары өкілеттік үлгісін аутсорсинг арқылы қол жеткізе алмайтын деректерге жанама түрде қол жеткізеді. Модель әрқашан өзінің кең өкілеттігі емес, пайдаланушының өкілеттігі аясында жұмыс істеуі керек.

RBAC және ABAC

  • RBAC (Рөлге негізделген қатынасты басқару): қатынас пайдаланушының рөліне байланысты. «Қолдау жөніндегі маман» рөлі тұтынушы жазбаларын оқи алады, бірақ оларды жоя алмайды. Қарапайым және жалпы.
  • ABAC (Атрибутқа негізделген қол жеткізуді басқару): Қол жеткізу атрибуттарға байланысты: пайдаланушы бөлімі, деректердің құпиялылық белгісі, тәулік уақыты, сұрау қай желіден келеді. Нақтырақ, бірақ күрделірек.

Көптеген ұйымдар RBAC-тан басталады және құпия деректер үшін ABAC-қа тереңдетіледі. AI үшін негізгі ереже: модель сұрауды жасайтын пайдаланушының рөлі/атрибуттары негізінде өзі шақыратын әрбір агентті және ол қол жеткізетін әрбір деректерді сүзуі керек.

Қадам бойынша: Минималды өкілеттіктерді пайдалану

  1. Түгендеу. Модель қандай құралдарды атайды, қандай деректерге қол жеткізеді? Олардың барлығын тізімдеңіз.
  2. Әрбір қол жеткізуді негіздеңіз. «Бұл көмекшіге шынымен жою рұқсаты қажет пе?» Әйтпесе, оны алып тастаңыз.
  3. Тек оқуға арналған әдепкі. Модель әдепкі бойынша оқуға қабілетті болуы керек; Бөлек, тар ауқымды таңбалауыш жазуды/жоюды талап етеді.
  4. Пайдаланушы контекстін жылжыту. Көлікке қызмет тіркелгісімен емес, пайдаланушының рұқсатымен қоңырау шалыңыз.
  5. Қысқа мерзімді сенімхат. Ұзақ мерзімді кілттердің орнына қысқа мерзімді, автоматты түрде жаңартылатын белгілерді пайдаланыңыз.

Құпия басқару

Құпия - API кілті, құпия сөз, таңбалауыш немесе сертификат сияқты құпия болып қалуы керек тіркелгі деректері. AI жобаларындағы ең жиі кездесетін апат модель провайдерінің API кілті кодқа ендірілген және нұсқаны басқаруға (Git) ағып кеткен кезде болады.

Дұрыс қолдану:

  • Ешқашан кодқа кілттерді ендірмеңіз; Айнымалы ортаны немесе құпия басқару жүйесін (кілттерді шифрланған сақтайтын және кіруді басқаратын қызмет) пайдаланыңыз.
  • Айналдыру: кілттерді тұрақты аралықпен жаңартып отыру (мысалы, 90 күн сайын); Егер ағып кетуге күдік болса, дереу тоқтатыңыз.
  • Ауқымды азайту: Әрбір қосқышта тек қажетті қызмет пен талап етілетін рұқсат бар.
  • Аудит: Кілтті кім, қашан және қайда пайдаланғанын тіркеу.

Көшірілетін төрт үлгі

Қол жеткізуді тексеруді басқару шақыруы:

Төмендегі құралдар тізіміндегі әрбір құрал үшін мынаны бағалаңыз: - Бұл құрал осы көмекшінің жұмысын орындау үшін КЕРЕК пе? (иә/жоқ) - тек оқуға арналған ба әлде жазу/өшіру? - Бұл құрал пайдаланушының рұқсатымен немесе қызмет тіркелгісімен шақырылады ма? Қажет емес немесе шамадан тыс рұқсат етілгендерді "ЖОЮ/ ӨЗГЕРТУ" деп белгілеңіз.<tools>{{ tool_list }}</tools>

Құпия ағып кетуді сканерлеуге шақыру:

Келесі код үзіндісінде қатты кодталған құпия болуы мүмкін кез келген нәрсені табыңыз: API кілті, құпия сөз, таңбалауыш, қосылым жолы, жеке кілт. Әрқайсысы үшін жолды және теруді беріңіз. Жауапқа мәнді КӨШІРУ;маска (алғашқы 4 таңба + ***).<code>{{ source }}</code>

Ең аз өкілеттік шешімінің ережесі:

Жаңа құрал/қолжетімділік сұрауы келгенде, сұраңыз: 1. Тапсырманы осы рұқсатсыз орындауға болады ма? -> Иә болса: ҚАБЫЛДАУ2. Тек оқу үшін жеткілікті ме? -> Иә болса: жазуға рұқсат беру3. Қолдану аясын бір көзге дейін қысқартуға бола ма? -> Егер иә болса: darat Әдепкі жауап «жоқ»; Қол жеткізу ақылға қонымды.

Айналмалы күнтізбенің еске салғышы:

Әрбір құпия үшін жазу: иесі, жасалған күні, жарамдылық мерзімі, қолданылу аясы. 90 күннен асқан немесе 30 күн бойы пайдаланылмаған кез келген кілтті "АЙНАЛУ/БОЧАУ ҮМІТКЕРІ" ретінде хабарлаңыз.

Әлсіз шақыру / Күшті шақыру

нашар көзқарас

Күшті көзқарас

Модель барлық деректерге бір қызмет тіркелгісі арқылы қатынасады

Модель сұрауды жасайтын пайдаланушының өкілеттігімен қатынасады

API кілті кодқа енгізілген, ол ешқашан өзгермейді

Негізгі құпия менеджерде ротация, 90 күн

Көмекшіге кең «ештеңе істеу» өкілеттігі

Тек оқуға арналған әдепкі, тар жаз

Қол жеткізулер ешқашан қаралмайды

Тұрақты рұқсатты тексеру және қайтарып алу

Үш шағын корпус

1-жағдай — Ағып кеткен аралас прокси деректері. Ішкі көмекші қызметкерлердің барлық жазбаларына қол жеткізе алатын қызмет тіркелгісімен жұмыс істеді. Интерн пайдаланушы әдетте көрмейтін деректерге «басқарушы жалақы кестесін қорытындылау» деп қол жеткізді; өйткені модель оған пайдаланушының емес, өзінің кең өкілеттілігі аясында күмән келтірді. Пайдаланушы мәтінмәні жылжытылатын етіп реттелсе, интерн тек өзі көре алатын жазбаларды тарта алды.

2-жағдай - Ағып кеткен кілт, 2 аптада 190 000 TL. Әзірлеуші ​​үлгі API кілтін көмекші сценарийге ендірді және оны жалпыға ортақ репозиторийге жіберді. Бот кілтті 40 минутта тауып, оны екі апта бойы пайдаланды; Шот 190 000 лираға жетті. Кілт құпия басқарушыға жылжытылғанда, айналдыруға қосылғанда және репозиторийді сканерлеу қосылғанда, оқиға қайталанбады.

3-жағдай — тек оқуға арналған әдепкі үзіліс. DevOps көмекшісі жедел инъекция арқылы «өндірістік дерекқорды қалпына келтіру» пәрменін алды. Алайда көмекшіге тек оқуға арналған белгі ғана берілді; жазу/өшіру бөлек бекітілген ағында болды. Пәрмен авторизация қатесімен қабылданбады және оқиға дабыл ретінде тіркелді; Деректер жоғалған жоқ.

Кеңес: Жаңа рұқсат сұрауына «жоқ» деп әдепкі жауап беріңіз. Қол жеткізу - бұл негіздеу арқылы алынған нәрсе; Барлығына кеңірек беріп, содан кейін қысқарту ешқашан орындалмайды және тәуекел жинақталады.

Жалпы қателер

  • Үлгіні үлкен қызмет тіркелгісімен іске қосу және пайдаланушы контекстін жоғалту (аралас прокси).
  • API кілтін кодқа ендіру және оны нұсқаны басқаруға жіберу.
  • Пернелерді мүлде айналдырмайды («жұмыс істейді, тиіспеңіз»).
  • Көмекшіге әдепкі бойынша жазу/жою рұқсаттарын беру.
  • Бір рет рұқсат беру және оны ешқашан қайта қарастырмау.
  • Аутентификацияны авторизациямен шатастырып, «ол жүйеге кірді, ол бәріне қол жеткізе алады» деп болжау.

Қысқаша айтқанда

  • Аутентификация – «сен кімсің» деген сұрақ, авторизация – «не істей аласың» деген сұрақ; AI-де екеуі де пайдаланушы контекстінде жұмыс істеуі керек.
  • Модель өзінің кең өкілеттілігімен емес (аралас агенттік тәуекелін болдырмай) сұрауды жасайтын пайдаланушының өкілеттігімен жұмыс істеуі керек.
  • RBAC-тан бастаңыз, құпия деректерде ABAC-пен тереңдетіңіз; Ең аз өкілеттікті әдепкі етіп жасаңыз.
  • Құпияларды кодқа қоймаңыз; оны құпия менеджерде сақтаңыз, оны тарылтып, оны тұрақты айналымға қойыңыз.
  • Тек оқуға арналған әдепкі және тар жазу инъекцияның әсерін айтарлықтай шектейді.

Қолданбалы тапсырма

AI көмекшісі қол жеткізетін барлық құралдар мен деректерді тізімдеңіз. Әрқайсысы үшін үш сұраққа жауап беріңіз: (1) Бұл шынымен қажет пе? (2) Тек оқу үшін жеткілікті ме? (3) Ол пайдаланушы контекстінде жұмыс істей ме? Содан кейін барлық қатты кодталған құпияларды іздеңіз (жоғарыдағы сканерлеу сұрауы арқылы) және тапқан әрбір кілт үшін айналдыру жоспарын жазыңыз. Кем дегенде бір қажетсіз рұқсатты алып тастаңыз.

бақылау парағы

  • [ ] Үлгі сұрауды жасайтын пайдаланушының өкілеттік контекстінде іске қосылады.
  • [ ] Құрал мен деректерге қол жеткізу ең аз артықшылық принципіне дейін тарылды.
  • [ ] Жазу/өшіру тек оқуға арналғандан бөлек, аутентификацияланған және тар.
  • [ ] Кодта ешқандай құпия жоқ; Ол құпия менеджерде сақталады.
  • [ ] Кілттер үшін айналдыру кестесі және жою процедурасы бар.
  • [ ] Кірулер жүйелі түрде қаралады.