Vodič · Rizik poruka · · autor Stefan Tsezarov · ažurirano
Tekst koji ne možete vidjeti
Dvije poruke mogu izgledati potpuno isto i sadržavati potpuno različite znakove.
Kopirate poruku.
Izgleda normalno.
Tri obične rečenice. Ništa čudno.
Zalijepite ga u dokument, web stranicu, novčanik ili AI asistenta.
I odjednom se dogodi nešto što poruka, kako ste je vidjeli, nikada nije rekla.
Kako?
Jer ono što vidite na svom ekranu nije nužno sve što je unutar teksta.
Neki znakovi uopće ne zauzimaju vidljiv prostor.
Još uvijek su tamo.
I dalje se mogu kopirati, lijepiti, pohranjivati i obrađivati.
Jednostavno ih ne možete vidjeti.
Vaše računalo ne vidi slova na način na koji ih vi vidite
Kada gledate rečenicu, vidite oblike.
Vaše računalo vidi podatke.
Slovo A, na primjer, predstavljeno je Unicode znakom s određenom kodnom točkom. Razmak je još jedan znak. Svako slovo, broj, interpunkcijski znak i mnogi drugi simboli imaju svoj vlastiti prikaz.
Ali ne proizvodi svaki znak vidljivi oblik.
Neki znakovi govore softveru kako bi se tekst trebao ponašati.
Oni mogu reći programu:
- povežite ove znakove
- nemojte ovdje prekidati liniju
- prikazati ovaj odjeljak s desna na lijevo
- promijeniti način na koji su ti znakovi poredani
- ili, u nekim slučajevima, jednostavno zauzeti poziciju bez crtanja bilo čega
Dakle, možete imati dva dijela teksta koji izgledaju identično dok su različiti nizovi znakova.
Ta razlika može biti važna.
Puno.
Tri vrste nevidljivog teksta koje vrijedi znati
Postoji nekoliko različitih mehanizama uključenih, ali tri su posebno korisna za razumijevanje.
1. Znakovi koji se ne pojavljuju
Oni se često nazivaju znakovi nulte širine.
Primjeri uključuju razmak nulte širine, spojnik nulte širine i spojnik riječi.
Oni zauzimaju položaj u tekstu, ali ne proizvode vidljive piksele.
Na primjer, ove dvije riječi mogu izgledati identično:
payment
payment
Unutar drugog je nevidljivi lik.
Vjerojatno ne možete vidjeti.
Vaše računalo može.
To znači da dva niza zapravo nisu identična.
To može utjecati na pretraživanja, filtre, korisnička imena, identifikatore i druge sustave koji uspoređuju temeljne znakove, a ne ono što osoba vidi.
I postoji opravdan razlog za postojanje nekih od ovih likova.
Vratit ćemo se na to.
2. Znakovi koji mijenjaju redoslijed koji vidite
Neki nevidljivi znakovi utječu na smjer teksta.
Ovo je neophodno jer se jezici kao što su arapski i hebrejski pišu s desna na lijevo, dok se engleski piše slijeva na desno.
Rečenica koja sadrži oboje može zahtijevati upute koje govore softveru kako različiti dijelovi trebaju biti prikazani.
Ove upute mogu biti korisne.
Ali oni se također mogu zloupotrijebiti.
Znak za kontrolu smjera može učiniti da se znakovi koje je pohranilo računalo pojavljuju drugačijim redoslijedom na ekranu.
To stvara očiti sigurnosni problem.
Naziv datoteke, na primjer, može izgledati kao da završava s jednom ekstenzijom, dok njegov temeljni niz znakova govori nešto drugo.
Isti princip može biti važan u izvornom kodu.
Recenzent vidi jednu stvar.
Računalo obrađuje drugu.
3. Likovi koji mogu nositi nevidljivu poruku
Ovo je neobičan.
Unicode sadrži raspon poznat kao blok oznaka.
Ovi su znakovi dizajnirani za potrebe označavanja i obično su nevidljivi kada se renderiraju.
Zanimljivo je da pojedinačni znakovi oznake mogu predstavljati obične ASCII znakove.
Stavite ih dovoljno zajedno i oni mogu kodirati tekst.
Rečenica stoga može sadržavati dodatni niz znakova koji se ne pojavljuje na ekranu.
Vašim očima poruka može izgledati kao sasvim običan pozdrav.
Za softver koji čita temeljne znakove, tu može biti mnogo više.
A ta razlika postaje posebno zanimljiva kada je odredište AI asistent.
AI ne vidi vašu poruku kao fotografiju ekrana.
Obrađuje znakove.
Dakle, nešto što ne vidite može i dalje biti dio unosa.
Evo kako to izgleda
Uzmite ovu rečenicu:
Send the payment to the address below.
Izgleda normalno, zar ne?
Sada zamislite da su u njega umetnuti nevidljivi znakovi.
Na vašem ekranu još uvijek može izgledati ovako — a ovo je prava stvar, pripremljena da je testirate:
Send the payment to the address below.
Ali ispod, računalo zapravo može sadržavati dodatne znakove.
Na primjer:
Ono što vidite:
Pošaljite uplatu na donju adresu.
Što računalo prima:
Pošalji nevidljivo plaćanje nevidljivo … OZNAKE
Vidljiva rečenica nije se promijenila.
Osnovni niz ima.
To je važna ideja.
Isti izgled. Različiti podaci.
Ako pokrenete posebno pripremljeni primjer kroz skener , skener može identificirati te znakove iako vaše oči ne mogu.
Ponovno upišite vidljivu rečenicu ručno i ti skriveni znakovi neće doći s njom.
To je cijeli trik.
Pismo koje nije pismo
Nevidljivi znakovi nisu jedini problem.
Ponekad je lik savršeno vidljiv.
To jednostavno nije lik kakav mislite da jest.
Razmotrite ovo dvoje:
savesavesave
sаvesavesave
Izgledaju gotovo nemoguće razlikovati.
Ali pažljivo pogledajte drugu.
Drugi znak nije latinično slovo a.
To je ćirilični a .
Izgledaju slično.
Oni su različiti likovi.
Ta tehnika je poznata kao napad homoglifima.
Ista se ideja može koristiti s korisničkim imenima, nazivima domena, nazivima tokena i drugim identifikatorima.
Lažni račun može koristiti sličan lik.
Lažna web stranica može koristiti domenu koja ima izgled.
Osobi se ime može učiniti poznatim.
Za računalo, to je potpuno drugačiji niz.
Gdje to zapravo može uzrokovati probleme?
Ovo nije samo čudan Unicode trik.
Važno je svugdje gdje se tekst kopira, uspoređuje ili djeluje na njega.
AI pomoćnici
Zalijepite poruku u AI asistenta.
Vidite pitanje.
Tekst ispod može sadržavati znakove koji vam nisu vidljivi.
Budući da pomoćnik obrađuje stvarni tekst, a ne samo vizualni izgled, ti znakovi postaju dio unosa.
Zato provjere nevidljivih znakova mogu biti korisne prije lijepljenja nepouzdanog teksta u sustav koji može poduzeti radnje ili obraditi osjetljive informacije.
Korisnička imena i imena računa
Dva računa mogu izgledati kao da imaju isto ime dok sadrže različite znakove.
Zbog toga je lažno predstavljanje mnogo teže uočiti.
Linkovi i domene
Veza može sadržavati znakove koji nalikuju poznatim slovima.
Ime koje prepoznajete nije nužno točna domena za koju mislite da jest.
Kod
Znakovi za kontrolu smjera i drugi neobični Unicode znakovi mogu otežati ispravan pregled izvornog koda.
Programer vidi prikazani tekst.
Kompajler vidi stvarne znakove.
Pretraživanje i filtriranje
Filter obično uspoređuje nizove.
Umetnite nevidljivi znak i niz se mijenja.
To može utjecati na pretraživanja, popise blokiranih, sustave moderiranja i druge alate za obradu teksta.
Kako možete provjeriti?
Ne morate postati stručnjak za Unicode.
Postoji nekoliko jednostavnih provjera.
PROVJERA 1 — Skenirajte tekst
Zalijepite sumnjivi tekst u sigurnosni skener znakova.
Koristan skener trebao bi vam reći:
- jesu li prisutni nevidljivi znakovi
- koliko ih je pronađeno
- koji su to likovi
- kojoj Unicode obitelji pripadaju
- jesu li otkriveni slični znakovi
To je ono što skener na ovoj stranici treba pokazati.
Važan dio je da vam treba reći što je zapravo pronašao, umjesto da vam jednostavno daje tajanstveno zeleno ili crveno svjetlo.
PROVJERA 2 — Usporedite broj znakova
Ovo je brza provjera razuma.
Ako se čini da rečenica sadrži 38 znakova, ali brojač znakova prijavljuje 47, postoji razlika koju vrijedi istražiti.
Broj znakova neće vam reći koji su dodatni znakovi.
Ali može vam reći da postoji nešto što ne vidite.
PROVJERA 3 — Ponovno upišite tekst kada je to potrebno
Ako vam netko pošalje kratku uputu, a ne morate sačuvati izvorno oblikovanje, ručnim upisivanjem važnog dijela možete ukloniti nevidljive znakove iz kopiranog teksta.
Ali zapamtite:
Ponovno upisivanje ne čini odredište pouzdanim.
Ako vam netko pošalje sumnjivu adresu web stranice, na primjer, ručno upisivanje to ne dokazuje da je sama web stranica legitimna.
To je jednostavno način izbjegavanja skrivenih znakova u tekstu koji kopirate.
PROVJERA 4 — Pročitajte stvarnu domenu
Nemojte se oslanjati samo na prepoznavanje kako domena izgleda.
Ako je veza važna, provjerite stvarnu domenu.
Za važne račune upotrijebite oznaku koju ste već spremili ili sami upišite poznatu adresu umjesto da slijedite neočekivanu vezu.
Isti princip vrijedi za korisnička imena i adrese novčanika:
prepoznavanje oblika nije isto što i provjera znakova.
Nemojte paničariti kada pronađete nevidljivog lika
Ovo je važno.
Nevidljivo ne znači automatski zlonamjerno.
Neki nevidljivi Unicode znakovi postoje jer ih ljudi istinski trebaju.
Spoji nulte širine, na primjer, mogu utjecati na to kako se znakovi spajaju u različitim sustavima pisanja.
Također se koriste u sekvencama emotikona.
Znakovi za kontrolu smjera su neophodni za ispravno prikazivanje teksta koji miješa pisma slijeva na desno i zdesna nalijevo.
Dakle, pronalazak nevidljivog lika ne znači automatski:
"Ovo je napad."
To znači:
Ovdje postoji nešto što ne mogu vidjeti.
Što to znači ovisi o kontekstu.
Tko je poslao poruku?
Što vas tekst traži da učinite?
Gdje ćete to zalijepiti?
Ide li u AI pomoćnika, novčanik, web stranicu, terminal ili neki drugi sustav koji će djelovati na njega?
Ta su pitanja važna.
Blok oznaka zaslužuje dodatnu pozornost
Znakovi oznaka su neobični jer je njihova svrha predstavljanje informacija dok ostaju nevidljivi u normalnom prikazivanju teksta.
Ako vam stranac pošalje poruku koja sadrži neočekivani niz njih, to vrijedi istražiti.
Skener može otkriti da znakovi postoje i, gdje je to prikladno, dekodirati tekst koji predstavljaju.
Ali čak ni tada, otkrivanje vam ne govori namjeru pošiljatelja.
Govori vam što je u tekstu.
To je puno korisniji i branjiviji odgovor.
Što vam čisto skeniranje govori - a što ne govori
Ovo je još jedno mjesto gdje sigurnosni alati moraju biti pošteni.
Skener otkriva znakove.
Ne čita ljudske misli.
Ako skener pronađe nevidljive znakove, može vam reći što su oni.
Ne može vam reći tko ih je ubacio.
Ne može dokazati zašto su umetnuti.
A ako ne pronađe ništa, to ne znači da je sama poruka pouzdana.
Rečenica potpuno normalnog izgleda ipak može sadržavati laž, zlonamjernu poveznicu ili opasnu uputu.
Isto tako, poruka koja sadrži nevidljivi znak može biti potpuno bezopasna.
Također postoje ograničenja automatizirane detekcije homoglifa. Skener može provjeriti poznate slične znakove i poznate skupove znakova, ali niti jednu provjeru ne treba smatrati jamstvom da je pronađena svaka moguća vizualna prijevara.
Rezultat vam govori što je otkriveno.
Još uvijek morate odlučiti što tekst znači i vjerujete li njegovom izvoru.
Jednostavna navika koju vrijedi izgraditi
Ne morate se bojati kopiranja i lijepljenja.
Samo usporite kada se tekst koji kopirate sprema nešto učiniti.
AI asistent.
Novčanik.
Web stranica.
Naredbeni redak.
Račun.
Financijska transakcija.
Dio koda.
Ako niste sami upisali tekst, ne morate nužno znati sve što se nalazi u njemu.
I ne morate pogađati.
Provjerite likove prije nego im dopustite da djeluju.
Traje sekunde.
I u mnogim slučajevima, provjera je besplatan.
Ovaj je članak samo u obrazovne svrhe. Objašnjava kako nevidljivi Unicode znakovi, kontrole za smjer teksta i slični znakovi mogu utjecati na digitalni tekst. Primjer na ovoj stranici sadrži namjerno umetnute nevidljive znakove tako da možete sami pregledati mehanizam. Skriveni tekst je bezopasan i postoji samo u svrhu demonstracije.
Nevidljivi znakovi mogu preživjeti kopiranje i lijepljenje, tako da ih skener vidi u oba smjera. Da biste preskočili lijepljenje, koristite oznaku skeniranog odabranog teksta .