Éppen tegnap írtunk a Google Pixel telefonok hibájáról most foltozva, potenciálisan veszélyes következményekkel.
A hibakeresők érthető módon izgatottak (és aggódtak) a találtak miatt, úgy döntöttek, hogy a BWAIN elvét követik a maximum érdekében, és ezt egy Hiba Lenyűgöző Névvel: aCropalipse.
Ha kíváncsi, az apokalipszis szó szó szerint bármiféle kinyilatkoztatást jelent, de általában a bibliai szövegre utalnak. Szent János kinyilatkoztatása, amely a világ végét ábrázolja.
Így metaforikus jelentése, a New Oxford American Dictionary szavaival élve, „olyan esemény, amely félelmetes vagy katasztrofális méretű pusztítással vagy kárral jár”.
Nem vagyunk teljesen meggyőződve arról, hogy ez a hiba megérdemelne egy ilyen, ahhhh, apokaliptikus nevet, de hajlandóak vagyunk beismerni, hogy egy olyan világban, ahol az awesome azt jelenti, hogy „egészen jó”, a név valószínűleg elfogadható, ha nem teljesen kivételes.
A „termés” az „aCropalipse”-ben
A név „termés” része abból a tevékenységből származik, amely a legvalószínűbb, hogy kiváltja a hibát, szinkronizálva CVE-2023 20136- a Google inkarnációjában: fényképek vagy képernyőképek levágása, hogy eltávolítsa az érzékeny vagy nem kívánt részeket, mielőtt megosztaná őket.
Ha lazán beszélünk, akkor elképzelhető, hogy ha készítenénk mondjuk egy 1080×1980-as képernyőképet a telefonunk teljes képernyőjéről, akkor valószínűleg nem szeretné a teljes képet feltenni az internetre, vagy elküldeni az egészet egy barátjának.
A legtöbb ember legszívesebben levágná legalább a képernyőkép tetejét, így eltávolítva az olyan részleteket, mint a mobilszolgáltató neve, a dátum és az idő.
És ha mondjuk egy e-mailt vagy egy közösségi médiában közzétett bejegyzést egy lista közepére kattintana, akkor szinte biztosan el akarja takarni azokat az e-maileket vagy bejegyzéseket, amelyek közvetlenül az érdeklődési kör felett vagy alatt jelentek meg.
Még a kép kivágása után is érdemes lehet szerkeszteni annak egyes részeit (egy szakzsargon szó, amely a dokumentum egy részének eltakarását vagy cenzúrázását jelenti), például úgy, hogy egy fekete dobozt helyez a feladó neve, e-mail címe, telefonszáma vagy bármi más fölé. .
Mindenesetre azt feltételezheti, hogy ha kivágott darabokat az eredetiből, elfed néhány részletet egyszínű blokkokkal (amelyek sokkal könnyebben tömörítenek, mint a normál képadatok), és elmentette az új képet a régi helyett…
…hogy az új kép szinte biztosan kisebb lesz, esetleg sokkal kisebb, mint az eredeti.
A kihagyott dolgok miatt!
De nem ez történt a Google Pixel telefonokon, legalábbis a 2023. márciusi Android biztonsági frissítésig.
Felülírva, de nem csonkolva
Az új, kisebb képfájlt a régi elejére írnák, de a fájl mérete változatlan maradna, és az eredeti fájl végén lévő, már feleslegessé vált és nemkívánatos adatok ott maradnának, ahol voltak.
Ha elküldte a fájlt valaki másnak, és ő megnyitotta egy hagyományos képmegjelenítő vagy -szerkesztő eszközzel, akkor a szoftvere addig olvasta a fájlt, amíg el nem ér egy adattömeget, amely azt mondta: „Ennyi; most leállíthatja, és figyelmen kívül hagyhatja a fájl utolsó adatait."
Más szóval, az a kódolási hiba, amely nem kívánt adatokat hagyott hátra a fájl végén, általában nem okoz nyilvánvaló hibákat, ami feltehetően megmagyarázza, miért nem észlelték a hibát egészen a közelmúltig.
De ha a címzett egy érdeklődőbb szoftvereszközzel, például hexadecimális szerkesztővel vagy ravaszul módosított képszerkesztővel nyitja meg, néhány bájttól a hatalmas mennyiségű eredeti képig még mindig ott maradna a hivatalos vége után. képjelölő, amely felfedezésre és potenciálisan exponálásra vár.
A legtöbb képernyőképet a rendszer PNG-fájlként menti, rövidítése hordozható hálózati grafika, és belsőleg tömörítik egy tömörítési algoritmus segítségével, amelyet általában nevén kienged.
A megmaradt adatok ezért nyilvánvalóan nem úgy néznek ki, mint a képpontok sorai és oszlopai, és nem lehet közvetlenül kicsomagolni hagyományos kicsomagoló eszközökkel, amelyek a tömörített adatfolyamot sérültnek tekintik, ami az, és általában visszautasítja. hogy egyáltalán megpróbálja kicsomagolni.
De kienged A tömörítés jellemzően blokkok sorozataként szorítja össze a bemeneti adatokat, ismétlődő szövegeknél csak addig tekint vissza a bevitelben (maximum 32 Kbyte, legfeljebb 258 bájt hosszúságú egyezések esetén), hogy csökkentse az algoritmus futtatásához szükséges memória mennyiségét. .
Ezek a korlátozások nem csak arra a tényre vezethetők vissza, hogy a formátum a Ötvenes évek, amikor a memóriatér sokkal értékesebb volt, mint manapság.
A tömörítő rendszeres „újraszinkronizálásával” csökkenti annak kockázatát is, hogy a tömörített fájlban minden elveszik, ha az elején akár csak néhány bájt is megsérül.
Jelentős rekonstrukció lehetséges
Ez azt jelenti, hogy a tömörített PNG formátumban tárolt képfájlok gyakran lényegesen rekonstruálhatók, még akkor is, ha az eredeti jelentős részeit felülírják vagy más módon megsemmisítik.
És ha olyan képrészletekről beszélünk, amelyek egy levágott vagy szerkesztett fájlból rekonstruálhatók…
…egyértelműen megvan rá az esély, hogy a végén megmaradt adatok, amelyeket le kellett volna vágni, helyreállítható képrészeket tartalmaznak pontosan azokat a részeket tárja fel, amelyeket véglegesen eltávolítani kívánt a képről!
Szerencséd lehet, az biztos: ha a képet soronként tároljuk (tehát a kép tetejének adatai közel vannak a fájl elejéhez, az alsó pedig a végéhez), és levágod a kép tetején valószínűleg egy új kép jelenik meg, amely a régi kép alsó feléből áll a fájl „hivatalos” részében, és az alsó fele megismétlődik a megmaradt adatokban, aminek az kellett volna. levágták, de nem.
De ha levágja a kép alját, az új fájlban a régi felső rész „hivatalosan” újrakódolva és az elejére íródik, a kép levágott alsó fele pedig pontosan ott maradt, ahol korábban volt, az új fájl nem hivatalos végén, és arra vár, hogy egy támadó kicsomagolja.
A Windows 11 is érintett
Nos, az a probléma, hogy a fájlok nem csonkolódnak, amikor új verzióra cserélik őket, a Windows 11-re is vonatkozik, ahol a Képmetsző eszköz, mint a Google Pixel Markup alkalmazás, lehetővé teszi a kép kivágását anélkül, hogy megfelelően levágná a mentett fájlt.
Például itt van egy PNG-fájl, amelyet a GIMP-pel hoztunk létre, és minimális fejléckészlettel mentettünk el, tömörítés nélkül:
A fájl 320 × 200 pixeles 8 bites RGB adatot tartalmaz (képpontonként három bájt), tehát a fájl 320 × 200 × 3 bájt hosszú (192,000 192,590), plusz néhány száz bájt fejléc és egyéb korlátozott metaadatok, összesen XNUMX XNUMX bájt. .
Az alábbi szemléltető hexadecimális kiíratban látható, hogy az adatok 0x20F04E bájt hosszúak, ami decimálisan 192,590 XNUMX:
Ezután olyan kicsire vágtuk, amennyire a Snipping Tool lehetővé teszi (a 48×48 pixel a minimumnak tűnik), és visszamentettük önmagára, de az „új” fájl végül akkora lett, mint a tömörítetlen 320×200-as fájl!
Az alábbi hexadecimális kiíratásban a tetején rózsaszínnel kiemelt rész a kivágott fájl teljes tartalmát jelenti, 0xBD bájt hosszúságban vagy 189 decimális számban.
Az új adatok egy IEND
adatblokk, ahol az új fájlnak véget kell érnie, de láthatja, hogy a korábbi adatokkal folytatódik, végül egy duplikált, de most redundánssal fejeződik be. IEND
blokk, amely a régi fájlból került át, szinte az összes képadatával együtt:
Amikor használtuk a Megtakarítás gombot, hogy kiírhassa egy vadonatúj fájlnév alatt, a tömörített 48×48-as fájl valóban csak 189 bájt hosszúsággal jött ki.
Figyelje meg, hogy a fájlban lévő adatok hogyan egyeznek az előző képen rózsaszínnel kiemelt 189 bájttal:
A hiba tehát az, hogy ha egy fájlt egy meglévő fájlnévre mentünk vissza, akkor nem a régi fájl csonkolja le először, és nem jön létre a várt méretű új fájl.
Egyszerűen fogalmazva, a kivágott fájl az részben felülírva, nem pedig valójában helyébe.
Ahogy fentebb említettük, azt feltételezzük, hogy ezt a hibát eddig senki sem vette észre, mert a képnézegető és -szerkesztő programok az első pillanatig olvastak. IEND
címkét (ez a fenti képernyőkép jobb alsó sarkában látható), és csendben figyelmen kívül hagyja az összes extra dolgot a végén anélkül, hogy bármilyen rendellenességet vagy hibát jelentene.
Mit kell tenni?
- Ha Ön Windows 11 felhasználó. A Snipping eszközzel készített vágott fájlokat mindig új fájlnév alatt mentse, így nem maradhat le benne eredeti tartalom.
- Ha programozó vagy. Tekintse át mindenhol, ahol „új” fájlokat hoz létre a régiek felülírásával, hogy megbizonyosodjon arról, hogy valóban csonkolja az eredeti fájlokat, amikor megnyitja őket újraírásra. Vagy csak úgy hozzon létre új fájlokat, hogy először elmenti őket egy valóban új fájlba (használjon biztonságosan generált egyedi fájlnevet), majd kifejezetten törli az eredeti fájlt, és átnevezze az újat.
Egyébként teszteltük a Microsoft Paint, és amennyire látjuk, az a program olyan vágott fájlokat hoz létre, amelyekben nem maradtak vissza korábbi adatok, függetlenül attól, hogy Megtakarítás (egy meglévő fájl cseréjéhez) ill Mentés másként (újat gyártani).
TANULJON MAGAD A FÁJLNYITÁS MÓDJÁRÓL
Fordítsa le ezt a kódot, és futtassa.
Windows rendszeren használhatja minimalista-C, a sajátunk gondozott építkezés az ingyenes Apró C fordító, ha nincs telepítve fejlesztő rendszer.
A teljes forráskóddal együtt kevesebb mint 500 KByte (!), szemben a Visual Studio vagy a Clang for Windows gigabájtjaival.
#beleértve #beleértve int main(void) { char* az = "ABCDEFGHIJLKMNOPQRSTUVWXYZ"; int fd; // Fájl létrehozása AZ betűvel // Az oktális 0666 azt jelenti, hogy "mindenki olvassa/írjon" // Az O_CREAT azt jelenti, hogy szükség esetén létrehozza fd = open("blah1.txt",O_WRONLY+O_CREAT,0666); írás(fd,az,26); bezár(fd); // Hozzon létre egy másik fájlt az AZ-vel fd = open("blah2.txt",O_WRONLY+O_CREAT,0666); írás(fd,az,26); bezár(fd); // 10 bájt írása O_TRUNC készlet nélkül // A megmaradt 16 bájt maradjon fd = open("blah1.txt",O_WRONLY); write(fd,"----------",10); bezár(fd); // 10 bájt írása *az* O_TRUNC set-tel // A megmaradt régi adatokat le kell vágni fd = open("blah2.txt",O_WRONLY+O_TRUNC); write(fd,"===========",10); bezár(fd); visszatérés 0; }
Jegyezze meg a különbséget a között, hogy megnyit egy meglévő fájlt írásra (O_WRONLY
) beállításával és anélkül O_TRUNC
zászló.
Nyomtassa ki a tartalmát blah1.txt
és a blah2.txt
a tesztprogram futtatása után:
C:UsersduckCROP> petcc64 -stdinc -stdlib test.c Tiny C fordító - Copyright (C) 2001-2023 Fabrice Bellard Paul Ducklin leszerelte tanulási eszközként való használatra Verzió petcc64-0.9.27 [0006] - 64 bites verziót generál Csak PE-k -> t1.c -> c:/users/duck/tcc/petccinc/fcntl.h . . . . -> C:/Windows/system32/msvcrt.dll -> C:/Windows/system32/kernel32.dll --------------------------- ----- virt fájlméret szakasz 1000 200 2a0 .text 2000 600 1cc .data 3000 800 18 .pdata -------------------------- ----- <- t1.exe (2560 bájt) C:UsersduckCROP> t1.exe C:UsersduckCROP>dir blah*.txt A C meghajtó kötetének nincs címke. A kötet sorozatszáma: C001-D00D A C:UsersduckCROP címtára 22. 03:2023 07 blah20.txt 26. 1:22 03 blah2023.txt 07 Fájl(ok) 20 Types by CCR:Usersduck blah10.txt -----------KLMNOPQRSTUVWXYZ C:UsersduckCROP> type blah2.txt ==========
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. Hozzáférés itt.
- Forrás: https://nakedsecurity.sophos.com/2023/03/22/windows-11-also-vulnerable-to-acropalypse-image-data-leakage/
- :is
- $ UP
- 000
- 1
- 10
- 11
- 2023
- 70
- 9
- a
- Rólunk
- felett
- Abszolút
- teljesen
- elfogadható
- tevékenység
- tulajdonképpen
- cím
- Után
- algoritmus
- Minden termék
- mindig
- Amerikai
- összeg
- és a
- android
- Másik
- bárhol
- app
- megjelent
- VANNAK
- AS
- At
- szerző
- auto
- vissza
- background-image
- alap
- BE
- mert
- előtt
- mögött
- hogy
- lent
- között
- Fekete
- Blokk
- Blocks
- határ
- Alsó
- Doboz
- márka
- Brand New
- Bogár
- gomb
- by
- TUD
- Kaphat
- eset
- végzetes
- okozott
- Központ
- biztosan
- esély
- világosan
- közel
- kód
- Kódolás
- szín
- Oszlopok
- hogyan
- általában
- képest
- az érintett
- Következmények
- Fontolja
- Összeáll
- tartalmaz
- tartalmaz
- tartalom
- tartalom
- tovább
- hagyományos
- copyright
- Sarok
- sérült
- tudott
- terjed
- teremt
- készítette
- termés
- Veszélyes
- dátum
- adatszivárgás
- találka
- Időpontok
- üzlet
- határozott
- érdemel
- elpusztított
- részletek
- Fejlesztés
- DID
- különböző
- közvetlenül
- kijelző
- dokumentum
- Nem
- ne
- le-
- hajtás
- Csepegés
- szinkronizált
- kiírása
- minden
- szerkesztő
- e-mailek
- Egész
- teljesen
- teljességét
- hibák
- Még
- esemény
- EVER
- mindenki
- minden
- pontosan
- példa
- izgatott
- létező
- várható
- Elmagyarázza
- feltárt
- kitett
- külön-
- kevés
- filé
- Fájlok
- vezetéknév
- hibája
- következik
- A
- formátum
- talált
- Ingyenes
- barát
- ból ből
- Tele
- általában
- generál
- kap
- fél
- történt
- Legyen
- fejlécek
- magasság
- HEX
- Kiemelt
- lebeg
- Hogyan
- HTTPS
- kép
- hatásos
- in
- Beleértve
- bemenet
- telepítve
- kamat
- belsőleg
- IT
- ITS
- maga
- zsargon
- ismert
- Címke
- tanulás
- mint
- Valószínű
- Korlátozott
- Lista
- Hosszú
- néz
- keres
- vesztes
- csinál
- március
- Margó
- jelző
- max-width
- maximális
- jelenti
- eszközök
- Média
- Memory design
- említett
- Metaadatok
- microsoft
- Középső
- esetleg
- minimális
- minimum
- Mobil
- módok
- módosított
- több
- a legtöbb
- név
- hálózat
- Új
- normális
- szám
- kitakart
- Nyilvánvaló
- of
- hivatalos
- Régi
- on
- ONE
- online
- nyitva
- nyitott
- nyitás
- érdekében
- eredeti
- Más
- másképp
- saját
- Oxford
- rész
- alkatrészek
- múlt
- Paul
- Emberek (People)
- tartósan
- telefonok
- pixel
- Plató
- Platón adatintelligencia
- PlatoData
- plusz
- ábrázolja
- pozíció
- állás
- Hozzászólások
- potenciálisan
- Értékes
- jobban szeret
- előző
- alapelv
- valószínűleg
- Probléma
- gyárt
- Program
- Programozó
- Programok
- ellátó
- tesz
- Arány
- Inkább
- elérte
- Olvass
- nemrég
- csökkenteni
- szabályos
- marad
- eltávolítása
- eltávolítása
- megismételt
- cserélni
- helyébe
- Jelentő
- korlátozások
- visszatérés
- Kritika
- átírás
- RGB
- Kockázat
- futás
- futás
- s
- Mondott
- azonos
- Megtakarítás
- megtakarítás
- Skála
- Képernyő
- screenshotok
- Rész
- biztonság
- Úgy tűnik,
- érzékeny
- Sorozat
- sorozatszám
- készlet
- beállítás
- Megosztás
- rövid
- kellene
- Méret
- kicsi
- kisebb
- So
- eddig
- Közösség
- Közösségi média
- szoftver
- szilárd
- néhány
- Valaki
- forrás
- forráskód
- Hely
- beszélő
- kezdet
- tartózkodás
- Még mindig
- megáll
- memorizált
- folyam
- stúdió
- ilyen
- feltételezett
- SVG
- rendszer
- T1
- TAG
- beszéd
- teszt
- hogy
- A
- a világ
- azok
- Őket
- ebből adódóan
- dolog
- három
- idő
- nak nek
- Ma
- szerszám
- szerszámok
- felső
- Végösszeg
- Utánfutó
- átmenet
- átlátszó
- kiváltó
- Turning
- jellemzően
- Végül
- alatt
- Érthetően
- egyedi
- Kicsomagolás
- felesleges
- Frissítések
- URL
- használ
- használó
- rendszerint
- Hatalmas
- változat
- kötet
- Sebezhető
- Várakozás
- Út..
- Mit
- vajon
- ami
- egész
- szélesség
- lesz
- hajlandó
- ablakok
- A windows 11
- val vel
- nélkül
- csodálkozó
- szó
- szavak
- világ
- lenne
- ír
- írás
- írott
- te
- A te
- zephyrnet