Trumpai
Pokalbių robotas jūsų svetainėje yra viešas, todėl Apex kūrėme manydami, kad kas nors bandys juo piktnaudžiauti: padidinti jūsų sąskaitą, priversti jį pasakyti tai, ko neturėtų, perskaityti kito kliento duomenis ar perimti paskyrą. Čia aprašytos apsaugos, kurios įjungtos pagal numatytuosius nustatymus. Šiame puslapyje aprašoma, ką produktas daro šiandien, o ne siekiai.
Jūsų svetainė ir pokalbių valdiklis
- Veikia tik jūsų svetainėse. Kiekvienas asistentas turi viešą svetainės raktą, tačiau pokalbių API jį priima tik iš jūsų nurodytų svetainių. Užklausos iš bet kurios kitos kilmės atmetamos, kaip ir naršyklės išankstiniai patikrinimai (pre-flight), todėl nukopijuotas įterpimo kodas kitur nieko nedaro. Svetainės raktas nėra paslaptis ir nesuteikia prieigos prie jūsų paskyros.
- Atskirtas nuo jūsų puslapio. Valdiklis atvaizduojamas Shadow DOM aplinkoje, todėl jūsų svetainės CSS negali jo sugadinti, o jis neskaito jūsų puslapio.
- Jokių slapukų, jokio sekimo. Valdiklis nenaudoja slapukų ir trečiųjų šalių sekiklių. Priklausomai nuo jūsų nustatymo, jis prisimena tik pokalbio ID – skirtuke, naršyklėje arba visai neprisimena.
- Tik nedidelės užklausos. Kiekviena užklausa ribojama iki 16 KB, žinučių ilgis ribojamas (pagal numatytuosius nustatymus 1 000 simbolių, galima keisti), o pokalbis turi didžiausią ilgį.
- Atsakymai nėra talpinami podėlyje ir siunčiami su
nosniff, todėl naršyklė ar CDN negali išsaugoti ar kitaip interpretuoti lankytojo pokalbio.
DI sauga
- Atsakymai remiasi jūsų turiniu. Asistentui nurodyta atsakyti tik faktais, esančiais puslapiuose ir tekste, kuriuos pateikėte Apex, niekada neišsigalvoti kainų, taisyklių ar kontaktinių duomenų ir pasakyti, kad nežino, kai nieko aktualaus nerasta. Kai nežino, jis gali pasiūlyti perduoti pokalbį jūsų komandai.
- Atsparus raginimų injekcijoms. Lankytojų žinutės, jūsų svetainės tekstas ir jūsų pačių pasirinktinės instrukcijos perduodami modeliui kaip duomenys aiškiai pažymėtose skiltyse, o fiksuotos saugumo taisyklės eina pirmiausia ir jos negali jų panaikinti. Tekstas, mėgdžiojantis mūsų skilčių žymenis, neutralizuojamas prieš jam pasiekiant modelį. Jūsų instrukcijos gali formuoti toną ir temas, bet negali išjungti pagrįstumo ar saugumo.
- Jokių įrankių, jokių veiksmų. Asistentas negali pateikti užsakymų, keisti paskyrų, vykdyti kodo, naršyti internete ar kreiptis į kitas sistemas. Blogiausia, ką gali padaryti sėkminga manipuliacija, – pakeisti tai, ką sako vienas pokalbis.
- Atvirai sako esantis DI ir neteikia galutinių medicininių, teisinių ar finansinių patarimų. Taip pat galite išvardyti temas, apie kurias jis turi mandagiai atsisakyti kalbėti.
- Atskirta kiekvienam klientui. Paieška vykdoma tik klausiamo asistento turinyje, todėl vieno kliento žinios niekada nenaudojamos atsakant kito kliento svetainėje.
Apsauga nuo piktnaudžiavimo ir išlaidų
- Užklausų riba kiekvienam lankytojui: pagal numatytuosius nustatymus 15 žinučių per minutę vienam lankytojui, galima keisti kiekvienam asistentui (nuo 1 iki 120), be to, taikoma bendra asistento riba, todėl vienas asmuo ar scenarijus negali išnaudoti jūsų limito.
- Dienos žetonų biudžetas kiekvienam asistentui (pagal numatytuosius nustatymus 2 milijonai, iki 20 milijonų), skaičiuojamas duomenų bazėje, todėl išlieka ir po paleidimo iš naujo. Jam pasibaigus, asistentas iki kitos dienos pagal UTC nebeatsako, užuot didinęs išlaidas.
- El. paštas negali tapti šlamšto patranka. Perdavimai ribojami kiekvienam lankytojui, asistentui ir gavėjui – per valandą ir per dieną. Perdavimo adresas turi būti patvirtintas jam išsiųstu kodu, kol jam ką nors išsiųsime, todėl niekas negali nukreipti sistemos į svetimo žmogaus pašto dėžutę.
- Robotų patikra. Registraciją, prisijungimą, slaptažodžio atkūrimą ir laukiančiųjų sąrašą saugo Cloudflare Turnstile. Jei patikros atlikti nepavyksta, užklausa atmetama, o ne leidžiama.
Paskyros ir prisijungimas
- Slaptažodžiai niekada nesaugomi; saugoma tik su druska sukurta scrypt maiša (sąmoningai lėta, daug atminties reikalaujanti funkcija). Mažiausias ilgis – 8 simboliai. Maišas vėliau galima sustiprinti niekam neužblokuojant prieigos.
- El. pašto patvirtinimas privalomas prieš atveriant valdymo skydelį. Kodai yra šešių skaitmenų, galioja 15 minučių, saugomi tik kaip maiša, užblokuojami po 5 neteisingų bandymų, o jų prašymų ir spėjimų skaičius per valandą ribojamas.
- Apsauga nuo slaptažodžių rinkimo. Nesėkmingi prisijungimai skaičiuojami pagal el. pašto adresą, IP adresą ir jų derinį, o tolesni bandymai užblokuojami 15 minučių. Nežinomo el. pašto adreso atmetimas trunka tiek pat, kiek neteisingo slaptažodžio, o klaidos pranešimas toks pat, todėl forma neatskleidžia, kuriems adresams sukurtos paskyros.
- Sesijos. Slapuke saugomas atsitiktinis 256 bitų žetonas; mūsų duomenų bazėje laikoma tik jo SHA-256 maiša, todėl duomenų bazės nutekėjimas neatskleidžia aktyvių sesijų. Slapukas yra HttpOnly (scenarijai jo neperskaito), Secure (tik HTTPS) ir SameSite=Lax. Sesija trunka 24 valandas arba 30 dienų, jei pasirenkate „Likti prisijungus“.
- Kontrolė lieka jums. Pakeitus ar atkūrus slaptažodį, atjungiami visi kiti įrenginiai. Visus kitus įrenginius taip pat galite atjungti nustatymuose ir matyti, kiek jų aktyvių.
- Prisijungimas per Google ir GitHub naudoja vienkartinę būsenos reikšmę (o Google – ir PKCE). Priimame tik tokį el. pašto adresą, kurį paslaugų teikėjas nurodo kaip patvirtintą, todėl niekas negali pasisavinti ne savo adreso.
- Saugumo žurnalas. Prisijungimai, nesėkmingi bandymai, atkūrimai ir slaptažodžių keitimai registruojami nurodant laiką, IP adresą ir naršyklę, kad būtų galima ištirti incidentą.
- Paskyrą galite ištrinti patys, patvirtinę įvesdami savo el. pašto adresą. Kartu ištrinamos darbo sritys, kuriose esate vienintelis narys.
Jūsų duomenų apsauga
- Šifravimas perdavimo metu. Kiekvienas ryšys su svetaine, valdymo skydeliu ir pokalbių API naudoja HTTPS su HSTS (dvejiems metams, įskaitant subdomenus), todėl naršyklės niekada negrįžta prie nešifruoto HTTP. Ryšys su duomenų baze šifruojamas, o pokalbių API tikrina duomenų bazės sertifikatą.
- Kiekviena darbo sritis atskirta. Valdymo skydelio užklausos visada apribotos prisijungusio naudotojo darbo sritimi. Kiekvienoje duomenų bazės lentelėje įjungta eilučių lygmens apsauga be viešų politikų, todėl viešoji duomenų bazės REST sąsaja nieko negali perskaityti; tai gali tik mūsų serveriai su savo prisijungimo duomenimis.
- Kodai ir žetonai saugomi kaip maišos, o ne perskaitoma forma: sesijų žetonai, patvirtinimo ir slaptažodžio atkūrimo kodai bei perdavimo patvirtinimo kodai.
- Asmens duomenys nepatenka į žurnalus. El. pašto adresai, telefono numeriai, kortelių numeriai (tikrinami Luhn algoritmu) ir Turkijos, Lietuvos, Latvijos bei Estijos IBAN numeriai užmaskuojami prieš į mūsų programų žurnalus įrašant bet ką.
- Saugojimo trukmę nustatote jūs. Pokalbiai automatiškai ištrinami praėjus jūsų pasirinktam laikotarpiui (nuo 1 iki 365 dienų, pagal numatytuosius nustatymus 30), o bet kurį iš jų galite ištrinti patys valdymo skydelyje.
- Apmokymas – tik su sutikimu. Jūsų turinį savo modeliams tobulinti naudojame tik tada, jei sutikote, o šį pasirinkimą galite bet kada pakeisti.
- Talpinama ES ten, kur tai svarbu. Pokalbių API veikia Frankfurte, Vokietijoje. Visi duomenis tvarkantys paslaugų teikėjai nurodyti privatumo politikoje.
Saugus jūsų svetainės skaitymas
Kai pateikiate Apex URL, mūsų skaitytuvas jį atsisiunčia jūsų vardu. Kadangi URL įvedate jūs, laikome jį nepatikimais įvesties duomenimis, kad jo nebūtų galima panaudoti mūsų vidiniam tinklui pasiekti:
- Tik
httpirhttpsstandartiniais prievadais (80 ir 443); jokių URL su įterptais prisijungimo duomenimis. - Tik vieši adresai. Privatūs, grįžtamojo ryšio (loopback), vietinio ryšio (link-local) ir rezervuoti diapazonai blokuojami, įskaitant jų IPv6 ir į IPv4 susietas formas, o patikrinamas adresas, prie kurio iš tikrųjų jungiamasi, – tai užkerta kelią DNS perrišimo (DNS rebinding) gudrybėms. Vietiniai prieglobos vardai, pavyzdžiui,
localhost,.localir.internal, atmetami. - Kiekvienas peradresavimas tikrinamas iš naujo, daugiausia 5 šuoliai. Laikas ir dydis ribojami, įskaitant po išskleidimo, kad būtų sustabdytos „zip bombos“.
- Jis prisistato kaip
ApexBotir laikosi svetainėsrobots.txt.
Naršyklės apsaugos
Valdymo skydelis ir svetainė kiekviename puslapyje siunčia šias saugumo antraštes:
X-Frame-Options: DENYirframe-ancestors 'none', kad valdymo skydelio nebūtų galima įterpti į rėmelį spustelėjimų užgrobimui.Strict-Transport-Securitydvejiems metams, įskaitant subdomenus.X-Content-Type-Options: nosniffir griežta nukreipiančiojo puslapio (referrer) politika.object-src 'none'irbase-uri 'self'turinio saugumo politikoje.- Leidimų politika, išjungianti kamerą, mikrofoną ir vietos nustatymą.
API priima tik JSON turinį, kurio kitos svetainės forma negali išsiųsti be išankstinio patikrinimo, o serverį identifikuojanti antraštė neatskleidžiama.
Kaip jį kuriame ir eksploatuojame
- Kodas, tvarkantis prisijungimą, paiešką, užklausų ribas, skaitytuvą ir duomenų maskavimą, turi automatinius testus.
- Paslaptys (API raktai, duomenų bazės prisijungimo duomenys) laikomos talpinimo paslaugų teikėjų paslapčių saugyklose, o ne kode.
- Duomenų bazės pakeitimai yra versijuojamos migracijos, kurios taikomos automatiškai ir saugiai paleidžiamos pakartotinai.
- Paslaugų teikėjai, kuriais remiamės, ir tai, ką kiekvienas gauna, išvardyti privatumo politikoje.
Ką galite padaryti jūs
- Nurodykite tik tas svetaines, kuriose turi būti rodomas asistentas, ir peržiūrėkite sąrašą, kai keičiasi jūsų domenai.
- Naudokite stiprų, unikalų slaptažodį arba prisijungimą per Google ar GitHub ir atjunkite nebenaudojamus įrenginius.
- Nepateikite privačios informacijos puslapiuose ir tekste, kuriuos teikiate Apex: laikykite, kad visa tai gali būti pacituota lankytojui.
- Nustatykite jūsų svetainei tinkamą saugojimo laikotarpį ir dienos biudžetą bei naudokite jūsų kontroliuojamą perdavimo adresą.
- Informuokite lankytojus, kaip tvarkote jų duomenis, kaip reikalauja BDAR ir KVKK.
Praneškite apie pažeidžiamumą ar incidentą
Jei manote, kad radote silpnąją vietą, arba kažkas negerai su jūsų paskyra, rašykite adresu hello@apexbot.eu. Pateikite pakankamai informacijos, kad problemą būtų galima atkartoti. Prašome suteikti mums pagrįstą galimybę ją ištaisyti prieš skelbiant viešai ir nesinaudoti kitų asmenų duomenimis, netrikdyti paslaugos ir nevykdyti automatinių skenavimų produkcinėje aplinkoje. Patvirtinsime, kad gavome jūsų pranešimą, ir informuosime apie eigą.
Nė viena sistema nėra visiškai saugi. Jei duomenų saugumo pažeidimas paveiks jūsų duomenis, pranešime jums ir institucijoms, kaip reikalauja įstatymai. Kaip tvarkome asmens duomenis, rasite privatumo politikoje.