A biztonságról mindig érdemes beszélgetni. A támadók mindig előttünk vannak, de fontos a védekezés, és hogy a legújabb fenyegetések ellen fel legyünk vértezve. A bejegyzés címét átneveztem, mert szerintem a problémához képest feleslegesen pánikkeltő volt.
Nem teljesen értem. Egy JPG fájl ... végére rosszindulatú shellcode-ot rejtettek. Mi és mikor fogja ezt végrehajtani? Általában a .jpg kiterjesztéshez társított alkalmazás nyitja meg a kép fájlokat. Miért hajtaná végre a kép végén talált "szemetet"? A képnéző alkalmazás szempontjából nézve szemét, nem a képhez tartozó adat, így szinte biztos hogy eldobja. Ez igaz a C forráskódra is.
#2
Volt már ilyen a törtélem során, még a 32 bites rendszerek hajnalán. A Windows képnézőkéje, és az ACDSEE is sáros lett, csak az Irfanwiev volt immunis ezzel szemben. A mechanizmust úgy kell elképzelni, hogy a képnéző a tömörített fájl tartamát betölti teljes egészében a memóriába, az adathalmazt meg elkezdi átkonvertálni bitképre, ami megjelenik a monitoron, és amikor az értelmezhetetlen kódhoz jut, akkor egy olyan hibára fut, amire valószínűleg nincs felkészítve, mert nem jellemző hogy ilyesmi adat lenne a tömörített képfájlban. Ezt úgy hívják kivétel hiba, azért kivétel, mert minden egyéb hiba lekezelése le van programiba, kivéve ezt. Na most kivétel hiba esetén a vezérlés a következő memória címre ugrik -hisz minden egyéb hiba esetén a megfelelő hibakezelő ágra futott volna - a következő címen meg a rosszindulatú kód van, processzor meg végrehajtja.
A kivétel hiba az mindig súlyos dolog, vannak magas szintű program nyelvek, amik ezt lekezelik exception error ágra futással, mint pl. a JAVA, de a C pont nem ilyen. Ott a programozónak kell gondoskodni arról, hogy minden hibát lefedjen, de mindenre is elég gyakran nem gondol az ember
Nem teljesen értem. Egy JPG fájl ... végére rosszindulatú shellcode-ot rejtettek. Mi és mikor fogja ezt végrehajtani? Általában a .jpg kiterjesztéshez társított alkalmazás nyitja meg a kép fájlokat. Miért hajtaná végre a kép végén talált "szemetet"? A képnéző alkalmazás szempontjából nézve szemét, nem a képhez tartozó adat, így szinte biztos hogy eldobja. Ez igaz a C forráskódra is.
#3
Na de minden képnézőben van ilyen sérülékenység? Mert az nem írják, hogy mely programok érintettek. Plusz hiába tölti be az egészet a memóriába, a CPU számára értelmezhetetlen utasítások sora lesz, ha egy ASCII-ban kódolt BASH utasításokkal találkozik. Lövése nincs mi az a BASH kód, Ő csak a gépi kódot érti. Ahhoz hogy lefusson meg kell hívnia a parancsértelmezőt, hogy értelmezze az ott leírt parancsokat. Erős kételyeim vannak azzal kapcsolatban, hogy bármelyik képnézegető, ha hibára fut azzal kezdi, hogy na akkor futtassuk le ezt a (képként értelmezhetetlen) kódot...
Az hogy a képfájlokba mezei szöveget "rejthetünk" évtizedek óta létező dolog. Egy program (képdekódoló modul) hiányosságait kell kihasználni ahhoz, hogy ebből végrehajtható kód legyen. De általános, mindenprogramot egyformán érintő hiba nem létezik, mivel a kép kezelő/dekódoló algoritmusok, megvalósítások is eltérőek, nem beszélve a hibakezelésükről. Az egyik program A megoldást használja, a másik pedig a B-t, egy harmadik meg ír magának egy sajátot. Nincs univerzális "fenyegetés".
Arról nem is beszélve, hogy a beépített védelmi mechanizmusok megelőzik az adatnak lefoglalt memória területekre (ahová betölti/kicsomagolja a képet) futtatható kód kerüljön. Az operációs rendszer megakadályozza, hogy az adat szegmensekbe véletlenül gépi kód kerüljön és végrehajtódjon. Ez a "Memory Protection" része: például az adat szegmensek "writeable", de nem "executable", míg a kódszegmensek "executable", de nem "writeable" jellemzőkkel rendelkeznek.
Szóval továbbra sem világos hogy egy képnézegetőt mi(és hogyan) venne rá, hogy végrehajtsa a fájl végéhez írt scriptet,
#2 Volt már ilyen a törtélem során, még a 32 bites rendszerek hajnalán. A Windows képnézőkéje, és az ACDSEE is sáros lett, csak az Irfanwiev volt immunis ezzel szemben. A mechanizmust úgy kell elképzelni, hogy a képnéző a tömörített fájl tartamát betölti teljes egészében a memóriába, az adathalmazt meg elkezdi átkonvertálni bitképre, ami megjelenik a monitoron, és amikor az értelmezhetetlen kódhoz jut, akkor egy olyan hibára fut, amire valószínűleg nincs felkészítve, mert nem jellemző hogy ilyesmi adat lenne a tömörített képfájlban. Ezt úgy hívják kivétel hiba, azért kivétel, mert minden egyéb hiba lekezelése le van programiba, kivéve ezt. Na most kivétel hiba esetén a vezérlés a következő memória címre ugrik -hisz minden egyéb hiba esetén a megfelelő hibakezelő ágra futott volna - a következő címen meg a rosszindulatú kód van, processzor meg végrehajtja.
A kivétel hiba az mindig súlyos dolog, vannak magas szintű program nyelvek, amik ezt lekezelik exception error ágra futással, mint pl. a JAVA, de a C pont nem ilyen. Ott a programozónak kell gondoskodni arról, hogy minden hibát lefedjen, de mindenre is elég gyakran nem gondol az ember
#4
Bocs! De az hogy szamodra nem vilagos egy ilyen tipusu tamadas, azt jelenti hogy nem
is letezhet?
Az vilagos szamodra hogy felhasznaloi interaktivitas nelkul meg tudjak fertozni a rendszeredet
- mert mar ilyen is van! :(
(Nem kell kattintanod semmire - eleg ha csak be van kapcsolva a keszuleked.)
#3 Na de minden képnézőben van ilyen sérülékenység? Mert az nem írják, hogy mely programok érintettek. Plusz hiába tölti be az egészet a memóriába, a CPU számára értelmezhetetlen utasítások sora lesz, ha egy ASCII-ban kódolt BASH utasításokkal találkozik. Lövése nincs mi az a BASH kód, Ő csak a gépi kódot érti. Ahhoz hogy lefusson meg kell hívnia a parancsértelmezőt, hogy értelmezze az ott leírt parancsokat. Erős kételyeim vannak azzal kapcsolatban, hogy bármelyik képnézegető, ha hibára fut azzal kezdi, hogy na akkor futtassuk le ezt a (képként értelmezhetetlen) kódot...
Az hogy a képfájlokba mezei szöveget "rejthetünk" évtizedek óta létező dolog. Egy program (képdekódoló modul) hiányosságait kell kihasználni ahhoz, hogy ebből végrehajtható kód legyen. De általános, mindenprogramot egyformán érintő hiba nem létezik, mivel a kép kezelő/dekódoló algoritmusok, megvalósítások is eltérőek, nem beszélve a hibakezelésükről. Az egyik program A megoldást használja, a másik pedig a B-t, egy harmadik meg ír magának egy sajátot. Nincs univerzális "fenyegetés".
Arról nem is beszélve, hogy a beépített védelmi mechanizmusok megelőzik az adatnak lefoglalt memória területekre (ahová betölti/kicsomagolja a képet) futtatható kód kerüljön. Az operációs rendszer megakadályozza, hogy az adat szegmensekbe véletlenül gépi kód kerüljön és végrehajtódjon. Ez a "Memory Protection" része: például az adat szegmensek "writeable", de nem "executable", míg a kódszegmensek "executable", de nem "writeable" jellemzőkkel rendelkeznek.
Szóval továbbra sem világos hogy egy képnézegetőt mi(és hogyan) venne rá, hogy végrehajtsa a fájl végéhez írt scriptet,
#4
A szteganográfiai megoldás (szöveg elrejtése digitális képben) az a bittérképnek a legalsó bájtjaiba kódolja az információt. Ebbe "magától működő" kódot nem lehet rejteni, de már volt arra példa, hogy ilyen módon adtak át utasításokat külső virnyának. Azt gondolom tudod, mi a különbség egy bittérképes kép, és egy tömörített kép között, mint pl. a JPG.
Ugyancsak volt példa arra is, hogy a metadata területen adtak át így információkat. De a tuti az a kódvégrehajtós megoldás.
És nem, nem feltétlenül bash szkript vagy hasonló a megoldás, hanem lefordított gépi kód, vagy olyan kód, amit a külső program végrehajt, ami a képet megjeleníti. Ami nem feltétlenül egy képnéző, hanem lehet pl. böngésző (az ugye rengetegféle szkriptet is tud futtatni).
A CPU működése folyamatos, Minden órajelciklusra végrehajtja amit kap. Nem nézi, hogy mi az, végrehajtja.
Láttál már program kódot?
Úgy néz ki, hogy van egy eleje, meg van egy vége, egy lezáró utasítás, a HALT
A programot addig futtatja a CPU amíg a HALT-hoz nem ér. Ha a program eleje és a vége közé kerül valami, akkor azt végrehajtja. Na most a programon belül vannak ciklusok, feltételek szerinti elágazások. És adódhat olyan feltétel, ami nem felel meg egyetlen lekódolt esetnek sem, azaz nem fut körbe egyik ágon sem a végrehajtás, így a CPU nem éri el a HALT-ot, még azt gondolja a programot futtatja, ám programból már "kijöttük" ilyenkor, a CPU így azt futtatja, ami éppen ott van a memóriában a következő helyen. Ez a kivétel hiba, és ez bármilyen programban lehetséges, minden programozó rémálma, mert alkalmasint igen nehéz észrevenni.
A 1990-es évek végén már voltak nem működő JPG vírus próbálkozások, nagy kárt nem okozott, de terjedni tudott.
2001-ben az Anna Kournikova vírus (ezt a nevet azért kapta, mert a kép a teniszező nőt ábrázolta) az Outlook Express sérülékenységét használta, VBS szkriptet futtatott.
2002-ben a McAfee-nak küldtek több mintát is, számos proof of concept fertőzött JPG-vel, ekkor derült ki először, hogy ilyen dolog létezhet működő változatban is. Nyáron már helyzet volt: https://www.zdnet.com/article/jpeg-worm-breaks-new-ground/
Volt ami a Windows GDI+ csomag hibájára alapult.
2019-ben a Moebyes kampány során böngészők sérülékenységét használták ki, több millió érintett volt
Ha rákeresel a "JPG virus" -ra akkor számos leírást kapsz arról, hogy működnek ezek.
#3 Na de minden képnézőben van ilyen sérülékenység? Mert az nem írják, hogy mely programok érintettek. Plusz hiába tölti be az egészet a memóriába, a CPU számára értelmezhetetlen utasítások sora lesz, ha egy ASCII-ban kódolt BASH utasításokkal találkozik. Lövése nincs mi az a BASH kód, Ő csak a gépi kódot érti. Ahhoz hogy lefusson meg kell hívnia a parancsértelmezőt, hogy értelmezze az ott leírt parancsokat. Erős kételyeim vannak azzal kapcsolatban, hogy bármelyik képnézegető, ha hibára fut azzal kezdi, hogy na akkor futtassuk le ezt a (képként értelmezhetetlen) kódot...
Az hogy a képfájlokba mezei szöveget "rejthetünk" évtizedek óta létező dolog. Egy program (képdekódoló modul) hiányosságait kell kihasználni ahhoz, hogy ebből végrehajtható kód legyen. De általános, mindenprogramot egyformán érintő hiba nem létezik, mivel a kép kezelő/dekódoló algoritmusok, megvalósítások is eltérőek, nem beszélve a hibakezelésükről. Az egyik program A megoldást használja, a másik pedig a B-t, egy harmadik meg ír magának egy sajátot. Nincs univerzális "fenyegetés".
Arról nem is beszélve, hogy a beépített védelmi mechanizmusok megelőzik az adatnak lefoglalt memória területekre (ahová betölti/kicsomagolja a képet) futtatható kód kerüljön. Az operációs rendszer megakadályozza, hogy az adat szegmensekbe véletlenül gépi kód kerüljön és végrehajtódjon. Ez a "Memory Protection" része: például az adat szegmensek "writeable", de nem "executable", míg a kódszegmensek "executable", de nem "writeable" jellemzőkkel rendelkeznek.
Szóval továbbra sem világos hogy egy képnézegetőt mi(és hogyan) venne rá, hogy végrehajtsa a fájl végéhez írt scriptet,
A biztonságról mindig érdemes
Beküldte kami911 -
Értékelés:
A biztonságról mindig érdemes beszélgetni. A támadók mindig előttünk vannak, de fontos a védekezés, és hogy a legújabb fenyegetések ellen fel legyünk vértezve. A bejegyzés címét átneveztem, mert szerintem a problémához képest feleslegesen pánikkeltő volt.
Nem teljesen értem. Egy JPG
Beküldte cigam -
Értékelés:
Nem teljesen értem. Egy JPG fájl ... végére rosszindulatú shellcode-ot rejtettek. Mi és mikor fogja ezt végrehajtani? Általában a .jpg kiterjesztéshez társított alkalmazás nyitja meg a kép fájlokat. Miért hajtaná végre a kép végén talált "szemetet"? A képnéző alkalmazás szempontjából nézve szemét, nem a képhez tartozó adat, így szinte biztos hogy eldobja. Ez igaz a C forráskódra is.
Hogyan fertőz meg egy kép egy gépet?
Nem teljesen értem. Egy JPG
Beküldte T.István -
Értékelés:
A kivétel hiba az mindig súlyos dolog, vannak magas szintű program nyelvek, amik ezt lekezelik exception error ágra futással, mint pl. a JAVA, de a C pont nem ilyen. Ott a programozónak kell gondoskodni arról, hogy minden hibát lefedjen, de mindenre is elég gyakran nem gondol az ember
Nem teljesen értem. Egy JPG
Beküldte cigam -
Értékelés:
Az hogy a képfájlokba mezei szöveget "rejthetünk" évtizedek óta létező dolog. Egy program (képdekódoló modul) hiányosságait kell kihasználni ahhoz, hogy ebből végrehajtható kód legyen. De általános, mindenprogramot egyformán érintő hiba nem létezik, mivel a kép kezelő/dekódoló algoritmusok, megvalósítások is eltérőek, nem beszélve a hibakezelésükről. Az egyik program A megoldást használja, a másik pedig a B-t, egy harmadik meg ír magának egy sajátot. Nincs univerzális "fenyegetés".
Arról nem is beszélve, hogy a beépített védelmi mechanizmusok megelőzik az adatnak lefoglalt memória területekre (ahová betölti/kicsomagolja a képet) futtatható kód kerüljön. Az operációs rendszer megakadályozza, hogy az adat szegmensekbe véletlenül gépi kód kerüljön és végrehajtódjon. Ez a "Memory Protection" része: például az adat szegmensek "writeable", de nem "executable", míg a kódszegmensek "executable", de nem "writeable" jellemzőkkel rendelkeznek.
Szóval továbbra sem világos hogy egy képnézegetőt mi(és hogyan) venne rá, hogy végrehajtsa a fájl végéhez írt scriptet,
Nem teljesen értem. Egy JPG
Beküldte lala -
Értékelés:
Bocs! De az hogy szamodra nem vilagos egy ilyen tipusu tamadas, azt jelenti hogy nem
is letezhet?
Az vilagos szamodra hogy felhasznaloi interaktivitas nelkul meg tudjak fertozni a rendszeredet
- mert mar ilyen is van! :(
(Nem kell kattintanod semmire - eleg ha csak be van kapcsolva a keszuleked.)
Nem teljesen értem. Egy JPG
Beküldte T.István -
Értékelés:
Ugyancsak volt példa arra is, hogy a metadata területen adtak át így információkat. De a tuti az a kódvégrehajtós megoldás.
És nem, nem feltétlenül bash szkript vagy hasonló a megoldás, hanem lefordított gépi kód, vagy olyan kód, amit a külső program végrehajt, ami a képet megjeleníti. Ami nem feltétlenül egy képnéző, hanem lehet pl. böngésző (az ugye rengetegféle szkriptet is tud futtatni).
A CPU működése folyamatos, Minden órajelciklusra végrehajtja amit kap. Nem nézi, hogy mi az, végrehajtja.
Láttál már program kódot?
Úgy néz ki, hogy van egy eleje, meg van egy vége, egy lezáró utasítás, a HALT
A programot addig futtatja a CPU amíg a HALT-hoz nem ér. Ha a program eleje és a vége közé kerül valami, akkor azt végrehajtja. Na most a programon belül vannak ciklusok, feltételek szerinti elágazások. És adódhat olyan feltétel, ami nem felel meg egyetlen lekódolt esetnek sem, azaz nem fut körbe egyik ágon sem a végrehajtás, így a CPU nem éri el a HALT-ot, még azt gondolja a programot futtatja, ám programból már "kijöttük" ilyenkor, a CPU így azt futtatja, ami éppen ott van a memóriában a következő helyen. Ez a kivétel hiba, és ez bármilyen programban lehetséges, minden programozó rémálma, mert alkalmasint igen nehéz észrevenni.
A 1990-es évek végén már voltak nem működő JPG vírus próbálkozások, nagy kárt nem okozott, de terjedni tudott.
2001-ben az Anna Kournikova vírus (ezt a nevet azért kapta, mert a kép a teniszező nőt ábrázolta) az Outlook Express sérülékenységét használta, VBS szkriptet futtatott.
2002-ben a McAfee-nak küldtek több mintát is, számos proof of concept fertőzött JPG-vel, ekkor derült ki először, hogy ilyen dolog létezhet működő változatban is. Nyáron már helyzet volt: https://www.zdnet.com/article/jpeg-worm-breaks-new-ground/
Volt ami a Windows GDI+ csomag hibájára alapult.
2019-ben a Moebyes kampány során böngészők sérülékenységét használták ki, több millió érintett volt
Ha rákeresel a "JPG virus" -ra akkor számos leírást kapsz arról, hogy működnek ezek.