SaveSaveSaveSave ← Všechna vodítka
Čeština

Guide · Message risk · · by Stefan Tsezarov · updated

Text, který nevidíte

Dvě zprávy mohou vypadat naprosto stejně a obsahovat zcela odlišné znaky.

Zkopírujete zprávu.

Vypadá to normálně.

Tři obyčejné věty. Nic divného.

Vložíte jej do dokumentu, webové stránky, peněženky nebo asistenta AI.

A najednou se stane něco, co zpráva, jak jste ji viděli, nikdy neříkala.

Jak?

Protože to, co vidíte na obrazovce, nemusí být nutně všechno, co je uvnitř textu.

Některé znaky nezabírají vůbec žádné viditelné místo.

Stále tam jsou.

Stále je lze kopírovat, vkládat, ukládat a zpracovávat.

Jen je nemůžete vidět.


Váš počítač nevidí písmena jako vy

Když se podíváte na větu, vidíte tvary.

Váš počítač vidí data.

Dosavadní stav techniky Písmeno A je například reprezentováno znakem Unicode se specifickým kódovým bodem. Mezera je další znak. Každé písmeno, číslo, interpunkční znaménko a mnoho dalších symbolů má své vlastní znázornění.

Ale ne každý znak vytváří viditelný tvar.

Některé znaky říkají softwaru, jak se má text chovat.

Mohou říci programu:

Takže můžete mít dva kusy textu, které vypadají identicky, přičemž se jedná o různé sekvence znaků.

Na tomto rozdílu může záležet.

Hodně.

Tři druhy neviditelného textu, které stojí za to znát

Dosavadní stav techniky Zahrnuje několik různých mechanismů, ale tři jsou zvláště užitečné k pochopení.

1. Postavy, které se nezobrazují

Tyto znaky se často nazývají znaky s nulovou šířkou.

Příklady zahrnují mezeru s nulovou šířkou, spojku s nulovou šířkou a spojku slov.

Zabírají pozici v textu, ale nevytvářejí viditelné pixely.

Tato dvě slova mohou například vypadat identicky:

Dvě slova · jedno z nich není takové, jaké se zdá být

payment

pay​ment

první: 7 znaků sekunda: 8 znaků

Uvnitř druhého znaku je neviditelný znak.

Pravděpodobně to nevidíte.

Váš počítač může.

To znamená, že tyto dva řetězce nejsou ve skutečnosti totožné.

To může ovlivnit vyhledávání, filtry, uživatelská jména, identifikátory a další systémy, které porovnávají základní znaky spíše než to, co člověk vidí.

A existuje legitimní důvod, proč některé z těchto postav existují.

K tomu se ještě vrátíme.

2. Znaky, které mění pořadí, které vidíte

Některé neviditelné znaky ovlivňují směr textu.

To je nezbytné, protože jazyky jako arabština a hebrejština se píší zprava doleva, zatímco angličtina se píše zleva doprava.

Věta obsahující obojí může vyžadovat instrukce sdělující softwaru, jak by měly být zobrazeny různé části.

Tyto instrukce mohou být užitečné.

Mohou být ale také zneužity.

Znak pro řízení směru může způsobit, že se znaky uložené počítačem objeví na obrazovce v jiném pořadí.

To vytváří zřejmý bezpečnostní problém.

Název souboru může například vypadat, jako by končil jednou příponou, zatímco jeho základní sekvence znaků říká něco jiného.

Stejný princip může mít význam ve zdrojovém kódu.

Recenzent vidí jednu věc.

Počítač zpracovává další.

3. Postavy, které mohou nést neviditelnou zprávu

Toto je neobvyklé.

Unicode obsahuje rozsah známý jako blok značek.

Tyto znaky byly navrženy pro účely označování a při vykreslení jsou normálně neviditelné.

Zajímavé na tom je, že jednotlivé znaky tagů mohou představovat běžné znaky ASCII.

Dejte jich dohromady dostatek a mohou kódovat text.

Věta tedy může obsahovat další řetězec znaků, který se neobjeví na obrazovce.

Pro vaše oči může zpráva vypadat jako úplně obyčejný pozdrav.

V softwaru, který čte základní znaky, toho může být mnohem více.

A tento rozdíl se stává zvláště zajímavým, když je cílem AI asistent.

AI nevidí vaši zprávu jako fotografii obrazovky.

Zpracovává znaky.

Takže něco, co nevidíte, může být stále součástí vstupu.

Tady je to, jak to vypadá

Vezměte si tuto větu:

Send the payment to the address below.

Vypadá normálně, že?

Nyní si představte, že do něj byly vloženy neviditelné znaky.

Na vaší obrazovce to stále může vypadat takto – a tohle je to pravé, připravené k testování:

Připravený příklad · vyberte jej, zkopírujte jej, naskenujte jej

Send the​ payment⁠ to the​ address below.󠁨󠁩󠁤󠁤󠁥󠁮

viditelné znaky: 38skutečné postavy: 47rozdíl: 9

Ale pod tím může počítač ve skutečnosti obsahovat další znaky.

Například:

Stejná věta, popsaná

Co vidíte:

Platbu zašlete na níže uvedenou adresu.

Co počítač přijímá:

Pošlete neviditelné platba neviditelné … ZNAČKY

Viditelná věta se nezměnila.

Podkladový řetězec má.

To je důležitá myšlenka.

Stejný vzhled. Různé údaje.

If you run the specially prepared example through a scanner , the scanner can identify those characters even though your eyes cannot.

Přepište viditelnou větu ručně a tyto skryté znaky s ní nepřijdou.

To je celý trik.

Dopis, který není dopisem

Neviditelné postavy nejsou jediným problémem.

Někdy je znak dokonale viditelný.

Prostě to není postava, kterou si myslíte.

Zvažte tyto dva:

Stejný tvar · různé znaky

savesavesave

sаvesavesave

druhý řetězec, 2. znak: Cyrilice U+0430ne latina U+0061

Vypadají téměř nerozeznatelné.

Ale pozorně se podívejte na druhý.

Druhý znak není latinské písmeno a.

Je to azbuka a .

Vypadají podobně.

Jsou to různé postavy.

Tato technika je známá jako útok homoglyfů.

Stejný nápad lze použít s uživatelskými jmény, názvy domén, názvů tokenů a dalšími identifikátory.

Falešný účet může používat podobnou postavu.

Falešná webová stránka může používat podobnou doménu.

Osobě se může jméno zdát známé.

Pro počítač je to úplně jiný řetězec.

Kde to vlastně může způsobit problémy?

Toto není jen podivný trik Unicode.

Je důležité, kdekoli se text kopíruje, porovnává nebo se s ním pracuje.

Asistenti AI

Vložíte zprávu do asistenta AI.

Vidíte otázku.

Podkladový text může obsahovat znaky, které pro vás nejsou viditelné.

Protože asistent zpracovává skutečný text, nejen vizuální vzhled, stávají se tyto znaky součástí vstupu.

Proto mohou být kontroly neviditelných znaků užitečné před vložením nedůvěryhodného textu do systému, který může provádět akce nebo zpracovávat citlivé informace.

Uživatelská jména a názvy účtů

Dva účty mohou vypadat, jako by měly stejné jméno, zatímco obsahují různé znaky.

To může značně ztížit postřehnutí předstírání identity.

Odkazy a domény

Odkaz může obsahovat znaky, které připomínají známá písmena.

Jméno, které znáte, nemusí být nutně přesně tou doménou, jakou si myslíte.

Kód

Znaky pro řízení směru a další neobvyklé znaky Unicode mohou ztížit správné prohlížení zdrojového kódu.

Vývojář vidí vykreslený text.

Kompilátor vidí skutečné znaky.

Vyhledávání a filtrování

Filtr obvykle porovnává řetězce.

Vložte neviditelný znak a řetězec se změní.

To může ovlivnit vyhledávání, blokované seznamy, systémy moderování a další nástroje pro zpracování textu.

Jak to můžete zkontrolovat?

Nemusíte se stát expertem na Unicode.

Existuje několik jednoduchých kontrol.

KONTROLA 1 — Naskenujte text

Vložte podezřelý text do skeneru pro zabezpečení znaků.

Užitečný skener by vám měl říct:

To je to, co má ukázat skener na této stránce .

Důležitou součástí je, že by vám měl říct, co vlastně našel, spíše než vám jednoduše dávat záhadné zelené nebo červené světlo.

KONTROLA 2 — Porovnejte počet znaků

Toto je rychlá kontrola zdravého rozumu.

Pokud se zdá, že věta obsahuje 38 znaků, ale počítadlo znaků hlásí 47, máte rozdíl, který stojí za prozkoumání.

Počet znaků vám neřekne, jaké jsou další znaky.

Ale může vám říct, že tam je něco, co nevidíte.

KONTROLA 3 — Přepište text, pokud je to vhodné

Pokud vám někdo pošle krátkou instrukci a vy nepotřebujete zachovat původní formátování, ruční zadání důležité části může z kopírovaného textu odstranit neviditelné znaky.

Ale pamatujte:

Přetypování nečiní cíl důvěryhodným.

Pokud vám někdo pošle adresu podezřelé webové stránky, například její ruční zadání nedokazuje, že samotná webová stránka je legitimní.

Je to jednoduše způsob, jak se vyhnout skrytým znakům v textu, který kopírujete.

KONTROLA 4 — Přečtěte si aktuální doménu

Nespoléhejte se pouze na rozpoznání toho, jak doména vypadá.

Pokud na odkazu záleží, zkontrolujte skutečnou doménu.

U důležitých účtů použijte záložku, kterou jste si již uložili, nebo zadejte známou adresu sami, abyste nesledovali neočekávaný odkaz.

Stejný princip platí pro uživatelská jména a adresy peněženek:

Rozpoznání tvaru není totéž jako ověření znaků.

Nepropadejte panice, když najdete neviditelnou postavu

To je důležité.

Neviditelný automaticky neznamená zlomyslný.

Některé neviditelné znaky Unicode existují, protože je lidé skutečně potřebují.

Dosavadní stav techniky Spojovače s nulovou šířkou mohou například ovlivnit, jak se znaky spojují v různých systémech psaní.

Používají se také v sekvencích emoji.

Dosavadní stav techniky Znaky pro řízení směru jsou nezbytné pro správné zobrazení textu, který míchá skripty zleva doprava a zprava doleva.

Nalezení neviditelné postavy tedy automaticky neznamená:

"Toto je útok."

Znamená to:

Je zde něco, co nevidím.

Co to znamená, závisí na kontextu.

Kdo poslal text?

K čemu vás text žádá?

Kam se to chystáte vložit?

Jde o asistenta umělé inteligence, peněženku, webovou stránku, terminál nebo nějaký jiný systém, který na to bude působit?

Tyto otázky jsou důležité.

Blok Tags si zaslouží zvláštní pozornost

Znaky tagů jsou neobvyklé, protože jejich účelem je reprezentovat informace, zatímco při normálním vykreslování textu zůstávají neviditelné.

Pokud vám cizí osoba pošle zprávu obsahující jejich neočekávanou sekvenci, stojí za to to prozkoumat.

Skener může odhalit existenci znaků a případně dekódovat text, který představují.

Ale ani potom vám detekce neřekne záměr odesílatele.

Řekne vám, co je v textu.

To je mnohem užitečnější a obhajitelnější odpověď.

Co vám čisté skenování řekne – a co ne

Toto je další místo, kde bezpečnostní nástroje musí být poctivé.

Skener detekuje znaky.

Nečte lidem myšlenky.

Pokud skener najde neviditelné znaky, může vám říci, které to jsou.

Nemůže vám říci, kdo je vložil.

Nelze prokázat, proč byly vloženy.

A pokud nic nenajde, neznamená to, že zpráva samotná je důvěryhodná.

Zcela normálně vypadající věta může stále obsahovat lež, zlomyslný odkaz nebo nebezpečný pokyn.

Podobně může být zcela neškodná zpráva obsahující neviditelný znak.

Existují také limity pro automatickou detekci homoglyfů. Skener může zkontrolovat známé podobné znaky a známé znakové sady, ale žádná jednotlivá kontrola by neměla být považována za záruku, že byl nalezen každý možný vizuální podvod.

Výsledek vám řekne, co bylo zjištěno.

Stále se musíte rozhodnout, co text znamená a zda důvěřujete jeho zdroji.

Jednoduchý zvyk, který stojí za to vybudovat

Nemusíte se bát kopírování a vkládání.

Jen zpomalte, když se text, který kopírujete, chystá něco udělat.

Asistent AI.

Peněženka.

Webová stránka.

Příkazový řádek.

Účet.

Finanční transakce.

Část kódu.

Pokud jste text nenapsali sami, nemusíte nutně vědět vše, co je v něm obsaženo.

A nemusíte hádat.

Zkontrolujte postavy, než je necháte jednat.

Trvá to sekund.

A v mnoha případech je kontrola zdarma.


Tento článek je určen pouze pro vzdělávací účely. Vysvětluje, jak mohou neviditelné znaky Unicode, ovládací prvky pro směrování textu a podobné znaky ovlivnit digitální text. Příklad na této stránce obsahuje záměrně vložené neviditelné znaky, takže si můžete mechanismus sami prohlédnout. Skrytý text je neškodný a existuje pouze pro demonstrační účely.

Neviditelné znaky přežijí kopírování a vkládání, takže je skener vidí v obou směrech. Chcete-li vkládání přeskočit, použijte záložku skenování vybraného textu .