26.5.1. Cloud szolgáltatás integrációk

2025.10.06.
AI Biztonság Blog

A modern AI rendszerek ritkán működnek elszigetelten. Adatokat olvasnak, modelleket tárolnak, naplókat írnak és számítási erőforrásokat használnak – mindezt jellemzően felhő alapú szolgáltatásokon keresztül. Red teamerként ezek az integrációs pontok kulcsfontosságúak, hiszen egyszerre jelentenek potenciális sebezhetőséget és a tesztelési infrastruktúránk alapját. Az itt bemutatott minták az alapvető kapcsolódási mechanizmusokat demonstrálják a leggyakoribb platformokon.

Kapcsolati űrlap

AI Biztonság kérdésed van? Itt elérsz minket:

Alapelvek és módszerek

Mielőtt a konkrét implementációkra térnénk, fontos tisztázni a két leggyakoribb megközelítést: a natív SDK-k használatát és a közvetlen API hívásokat. Mindkettőnek megvan a maga helye a red team eszköztárában.

Módszer Előnyök Hátrányok
Szolgáltatói SDK (Software Development Kit)
  • Magas szintű absztrakció, egyszerűbb használat.
  • Beépített hitelesítéskezelés, újrapróbálkozási logika.
  • Jól dokumentált és támogatott.
  • Elrejtheti a mögöttes API működésének részleteit.
  • Függőség a szolgáltató által karbantartott csomagtól.
  • Nagyobb méretű lehet, mint ami feltétlenül szükséges.
Közvetlen API hívások (REST/HTTP)
  • Teljes kontroll a kérések felett (fejlécek, body stb.).
  • Nyelvfüggetlen, minimális külső függőség.
  • Lehetővé teszi nem dokumentált végpontok tesztelését.
  • Bonyolultabb hitelesítési folyamat manuális implementálása.
  • Neked kell kezelni a hibákat, időtúllépést, újrapróbálkozást.
  • Több „boilerplate” kódot igényel.

Ebben a fejezetben az SDK-k használatára fókuszálunk, mivel a legtöbb automatizált tesztelési és támadási forgatókönyvhöz ez a hatékonyabb és megbízhatóbb megközelítés. A közvetlen API hívások inkább a mélyebb, feltáró jellegű vizsgálatoknál jönnek képbe.

Tipikus felhőintegrációs folyamat

Red Team Eszköz Cloud SDK Hitelesítés (IAM) Cloud API Végpont

Gyakorlati példák szolgáltatónként

A következőkben a három nagy felhőszolgáltató (AWS, Azure, GCP) esetében mutatunk be egy-egy alapvető, de a red teaming szempontjából releváns integrációs mintát Python nyelven.

AWS: S3 tárolók listázása (boto3)

Az S3 (Simple Storage Service) gyakori célpont, mivel itt tárolhatnak modelleket, betanítási adatokat vagy érzékeny logokat. Egy egyszerű felderítési lépés a fiókhoz tartozó tárolók (bucketek) listázása.

import boto3
from botocore.exceptions import ClientError

# A boto3 automatikusan keresi a credentialeket (pl. ~/.aws/credentials, környezeti változók)
s3_client = boto3.client('s3')

try:
 # Hívás az S3 API-hoz a tárolók listázásáért
 response = s3_client.list_buckets()

 print("Elérhető S3 tárolók:")
 for bucket in response['Buckets']:
 # A 'Name' kulcs tartalmazza a tároló nevét
 print(f" - {bucket['Name']}")

except ClientError as e:
 # Hibakezelés, pl. jogosultsági problémák esetén
 if e.response['Error']['Code'] == 'AccessDenied':
 print("Hiba: Nincs jogosultság az S3 tárolók listázásához.")
 else:
 print(f"Váratlan hiba történt: {e}")

Azure: Blob containerek listázása

Az Azure Blob Storage az AWS S3 megfelelője. A red team feladata itt is lehet az adatszivárgás vagy a helytelen konfigurációk felderítése. A hitelesítéshez itt egy connection stringet használunk, ami egy gyakori, bár nem a legbiztonságosabb módszer.

import os
from azure.storage.blob import BlobServiceClient
from azure.core.exceptions import ResourceNotFoundError

try:
 # A kapcsolati stringet biztonságos helyről, pl. környezeti változóból olvassuk be
 connect_str = os.getenv('AZURE_STORAGE_CONNECTION_STRING')
 if not connect_str:
 raise ValueError("AZURE_STORAGE_CONNECTION_STRING környezeti változó nincs beállítva.")

 # Létrehozzuk a BlobServiceClient klienst
 blob_service_client = BlobServiceClient.from_connection_string(connect_str)

 print("Elérhető Blob containerek:")
 # A list_containers metódussal kérjük le a containereket
 containers = blob_service_client.list_containers()
 for container in containers:
 print(f" - {container['name']}")

except (ValueError, ResourceNotFoundError) as e:
 print(f"Hiba a kapcsolódás vagy listázás során: {e}")

GCP: Logging bejegyzés készítése

A naplómanipuláció egy klasszikus red team technika. Célja lehet a támadási nyomok elfedése, a védelmi rendszerek félrevezetése (fals pozitív riasztások generálása) vagy a rendszer viselkedésének megfigyelése. Itt egy egyszerű naplóbejegyzést hozunk létre a Google Cloud Logging szolgáltatásban.

from google.cloud import logging

# A kliens inicializálása. A hitelesítés automatikusan megtörténik
# a környezet alapján (pl. gcloud auth application-default login)
logging_client = logging.Client()

# A napló nevének megadása, ahova írni szeretnénk
# Ez lehet egy már létező vagy egy új napló
log_name = "ai-red-team-operations"
logger = logging_client.logger(log_name)

# A naplóbejegyzés tartalma. Lehet egyszerű szöveg vagy strukturált JSON.
text_payload = "Sikeres integrációs teszt a red team eszköztárból."

# A bejegyzés elküldése
logger.log_text(text_payload)

print(f"'{text_payload}' bejegyzés sikeresen elküldve a(z) '{log_name}' naplóba.")

Biztonsági megfontolások és jó gyakorlatok

A felhőintegrációk során a hitelesítő adatok (credentials) kezelése a legkritikusabb pont. Soha ne ágyazz be API kulcsokat, jelszavakat vagy connection stringeket közvetlenül a kódba!

  • Környezeti változók: A fenti Azure példában is látható módon a hitelesítő adatokat környezeti változókban tárold. Ez elválasztja a kódot a titkoktól.
  • IAM szerepkörök és Service Accountok: A legbiztonságosabb megközelítés, ha a kódot futtató erőforrásnak (pl. egy virtuális gépnek, konténernek) adsz egy minimális jogosultságokkal rendelkező IAM szerepkört. Így a kódnak egyáltalán nem kell titkokat kezelnie, az SDK automatikusan ideiglenes hozzáférést szerez.
  • Secret Management eszközök: Komplexebb környezetekben használj dedikált titokkezelő szolgáltatásokat, mint az AWS Secrets Manager, Azure Key Vault vagy a HashiCorp Vault.

Ezeknek az alapvető integrációs mintáknak a magabiztos használata elengedhetetlen a hatékony AI red teaming műveletekhez. Lehetővé teszik a környezet felderítését, a rendszerek manipulálását és a tesztelési folyamatok automatizálását. A következő fejezetekben látni fogod, hogyan építhetünk ezekre az alapokra komplexebb, újrafelhasználható API wrappereket.