Kysymys:
Voiko JPEG-kuvan yksinkertainen purkaminen laukaista hyödyntämisen?
JDługosz
2015-08-27 00:01:00 UTC
view on stackexchange narkive permalink

Romaania Daemon kehutaan usein siitä, että se on realistinen esityksessään sen sijaan, että vain peittäisi muotisanoja.

Tämä kuitenkin tuntui epärealistiselta:

Graggin sähköposti sisälsi myrkytetyn JPEG: n välityslogosta. JPEG-tiedostot olivat pakattuja kuvatiedostoja. Kun käyttäjä katsoi sähköpostia, käyttöjärjestelmä suoritti purkualgoritmin graafisen kuvan esittämiseksi näytöllä; tämä purkamisalgoritmi suoritti Graggin haitallisen komentosarjan ja antoi hänen liukua käyttäjän järjestelmän sisään - mikä antoi hänelle täyden pääsyn. Dekompressiovirheelle oli saatavilla korjaustiedosto, mutta vanhemmilla, rikkailla ihmisillä ei yleensä ollut aavistustakaan tietoturvakorjauksista.

Onko sellaista? Perustuuko tämä kuvaus todelliseen hyödyntämiseen?

Tämä julkaistiin joulukuussa 2006.

Onko järkevää sanoa, että "käyttöjärjestelmä" purkaa kuvan purkamista sen renderoimiseksi?


Huomaa, että tällä ei ole mitään tekemistä PHP-kuvien latausohjelmien turvallisuuden kanssa. Kysyn JPEG-tiedoston näyttämisen purkamisprosessista , enkä komentosarjoista, jotka ottavat syötettä etäkäyttäjiltä, ​​eikä tiedostoista, jotka on nimetty väärin nimellä .jpeg . Kopioitu kopiointi, johon vastaan, näyttää huonolta jopa sanasanalla; oikeastaan ​​mitään muuta kuin kuvatiedostojen mainitseminen.

Valitettavasti melkein kaikki muodot voidaan myrkyttää. Jopa jotkut vahingoittuneet tiedostot voivat kaataa sisäänrakennetun purku- ja / tai dekoodausrutiinin.
En löydä mitään todisteita Internetistä, mutta muistan, että sain kerran JPG-kuvan, joka avasi CD-lokeroni (tämä oli yli 12 vuotta sitten Windows XP: n kanssa).
Kuvatiedostoissa olevat haittaohjelmat ovat olleet suosittuja kaunokirjallisuudessa, koska GDI +: n hyväksikäyttö vuonna 2004 oli todellinen asia. Tämä esimerkki on varsin uskottava. Jotkut ovat vähemmän. Ehkä pahempaa oli tapaus * Bonesissa, jossa joku kaiversi fraktaalikuvan murhan uhrin luuhun, joka otti päähenkilöiden verkon hallintaan, kun he lataivat valokuvia. Se sai aivoni satuttamaan.
Tämä ei riitä oikeaan vastaukseen, mutta erilainen kuvamuoto, WMF, todella antoi sinun suorittaa mielivaltaisen koodin * suunnittelun mukaan *. Se on suunniteltu älykkäille vektorigrafiikoille 16-bittisillä Windows-päivillä, ja sitä pidettiin tuolloin hyvänä kompromissina. Nopeasti eteenpäin tänään, ja Internet tekee tästä julman turvallisuusaukon. Myös TTF-tiedostoja (fontteja) hyödynnettiin. On täysin mahdollista, että joillakin JPG: n jäsentäjillä saattaa olla hyödyntämisen haavoittuvuus samalla tavalla.
Jos jpeg ei salli mielivaltaista koodia suunnittelun avulla, miten sillä voi olla samanlainen haavoittuvuus?
ILMAISEKSI, että CD-levyn avaaja ei ollut JPEG - se oli VBS-komentosarja, jonka IE suoritti JPEG-tiedostotunnisteesta huolimatta.
Se oli yleinen tapa juurruttaa iPhonen ensimmäinen versio.
@arivero "se" viittaa ...? (Dekoodaava hyödyntäminen tai jotain edellisessä kommentissa)
@user158037 kiitos, en muista, onko kuvankatseluohjelmassa vai IE: ssä tämä virhe.
@JDługosz er ... "se" viittaa alkuperäiseen kysymykseesi, "JPEG-kuvan purkamiseen".
Pelkkä sivun katseleminen jpeg-tiedostolla "juurruttaisi" puhelimen? Kuinka kätevä. Onko sinulla linkkiviite siihen?
Olen iloisesti yllättynyt nähdessäni Daemonin täällä. Luin sen muutama vuosi sitten, ja on hämmästyttävää, kuinka läheisesti hän tarttui realistiseen, olemassa olevaan tekniikkaan. Itse asiassa juuri viime viikolla törmäsin Hyperonic-äänijärjestelmään (tyyppinen äänijärjestelmä, joka oli Sobolin talossa) Best Buy -palvelussa, ja oli melko mielenkiintoista kokea.
mahdollinen kopio [Voiko haittaohjelmia liittää kuvaan?] (http://security.stackexchange.com/questions/55061/can-malware-be-attached-to-an-image/)
Yksi PS3: lla käytetyistä hyödyntämisistä tallennettujen PS2-pelien pelaamiseksi (ei vitsailemista) oli avata erityinen TIFF-kuva laiteohjelmiston versiossa 1.75. Androidissa on myös [StageFright-haavoittuvuus] (http://security.stackexchange.com/questions/95165/how-exactly-does-the-stagefright-vulnerability-work-on-android), joka ei edes vaadi avaamalla viestin! Joten kyllä, täysin mahdollista.
Ilmoitetaan, että uusi on käynnissä atm. [Lähde] (http://steamcommunity.com/groups/reddit#announcements/detail/145594019967735932)
Bonuksena JPEG + ZIP on myös steganografiatekniikka - toinen jättää huomiotta ylimääräisen sisällön tiedoston lopussa, toinen tiedoston alussa.[Esimerkki.] (Https://github.com/MiroslavVitkov/scripts/tree/master/crypto)
Viisi vastused:
gowenfawr
2015-08-27 00:10:55 UTC
view on stackexchange narkive permalink

Onko olemassa sellaista?

Ehdottomasti. Haitallisen syötteen syöttäminen jäsentäjälle on yksi yleisimmistä tavoista luoda hyödyntäminen (ja JPEG-muodossa "purku" on "jäsentäminen").

Onko tämä kuvaus todellista hyödyntää?

Se voi perustua Microsoft Windows GDI + -puskurin ylivuoto-haavoittuvuuteen:

Puskurin ylivuoto-haavoittuvuus on tapa, jolla GDI +: n (Gdiplus.dll) JPEG-jäsentävä komponentti käsittelee epämuodostuneita JPEG-kuvia . Lisäämällä haavoittuvaan komponenttiin erityisesti muotoillun JPEG-tiedoston etähyökkääjä voi laukaista puskurin ylivuototilan.

...

Etä, todentamaton hyökkääjä voi mahdollisesti suorittaa mielivaltaisen koodin haavoittuvassa järjestelmässä tuomalla käyttöön erityisen JPEG-tiedoston. Tämä haitallinen JPEG-kuva voidaan tuoda järjestelmään haitallisen verkkosivun, HTML-sähköpostin tai sähköpostin liitteen kautta.

.

Tämä julkaistiin joulukuussa 2006.

GDI + JPEG -jäsittelyhaavoittuvuus julkaistiin syyskuussa 2004.

On on järkevää sanoa, että "käyttöjärjestelmä" purkaa kuvan purkamista sen renderöimiseksi?

Toki; tässä tapauksessa järjestelmäkirjasto tarvitsi käyttöjärjestelmän toimittajan korjaustiedoston sen korjaamiseksi. Usein tällaisia ​​kirjastoja käyttävät useat ohjelmistopaketit, joten ne ovat osa käyttöjärjestelmää sovelluskohtaisten sijasta.

Tosiasiassa "sähköpostisovellus vetoaa järjestelmäkirjastoon JPEG: n jäsentämiseksi", mutta " käyttöjärjestelmä "on riittävän lähellä romaania.

Jos muistan oikein, joissakin Sonyn Playstation Portable (PSP) -sovelluksen alkuperäisissä "vankilaa rikkovissa" menetelmissä käytettiin "erityisesti muotoiltua" kuvatiedostoa, joka rikkoi PSP: n dekooderin ja antoi JPG: hen upotetun koodin suorittaa.
"hyökkääjä voi mahdollisesti suorittaa mielivaltaisen koodin", onko kattilalevy * mille tahansa * puskurin ylivuotovirheelle? Oikeuksien korottaminen käyttäjätilaketjusta olisi toinen ongelma.
@JDługosz, kyllä, se on standardoitu kuvaus. Useimmat CVE: t ja suojausreikien kuvaukset käyttävät joukkoa vakiolausekkeita, kuten "[paikallinen | etä] hyökkääjä voi mahdollisesti suorittaa [mielivaltaiset] [komennot | koodi] [[käyttäjän | korotetut] oikeudet]". Tiivistettyjen avainsanojen ja ilmausten ("kattolevy") uudelleenkäyttö antaa puolustajille mahdollisuuden arvioida riski nopeasti - esimerkiksi [paikallinen | etä] avainsana on tärkeä riskin arvioinnissa. GDI + -ilmoituksessa käytetty muotoilu kertoo minulle, että koodi suoritetaan JPEG-avaavan käyttäjän oikeuksilla - vuosina 2004-2006 Windows, usein järjestelmänvalvoja!
Tämä hyödyntäminen olisi mahdollista vain, jos kyseessä olevassa purkamisalgoritmissa olisi vika, joka mahdollisti mielivaltaisen koodin suorittamisen, eikö?
@TripeHound jep, sateenkaaren värit, haamu kuoren kansikuvassa ja tiff-muoto chickHENin käyttämiseksi. Minulla on edelleen niitä jossain täällä. Muokkaa: jep, chickHEN mutta ei tiff: /
@JDługosz He käyttävät termiä "hyökkääjä voi mahdollisesti suorittaa mielivaltaisen koodin" eikä "puskurin ylivuotoa", koska vaikutus on tärkeämpi päätöksenteossa kuin varsinainen menetelmä, jolla sitä käytetään. Esimerkiksi, en välitä, puskuroitko ylivuotoa koodin lisäämiseksi, vai karkaatko avaamalla uuden prosessin, joka vastaanottaa ja antaa komennon. Tärkeä vaikutus on, että hyökkääjä voi nyt antaa tavukoodeja koneelleni.
@MaxNanasy Joo - mutta näin on aina *; joskus se on vika koodissa, joskus se on vika käyttöjärjestelmässä, joskus se on vika suunnittelussa. Ja kuten monet esimerkit ovat osoittaneet, monilla jäsentäjillä * on * itse asiassa nämä virheet - puskurin ylivuoto, joka johtaa koodin suorittamiseen, on mielestäni useimmin nähty. Se on yksi syy, miksi MS ajaa .NETiä - niin kauan kuin pysyt turvallisesti hallitussa ympäristössä, olet juuri poistanut yhden valtavan haavoittuvuuden. Tietenkin monet jäsentäjät käyttävät vaarallista koodia suorituskyvyn vuoksi, joten se ei ole niin hyvä kuin voisi olla, mutta se silti auttaa.
Nic Barker
2015-08-27 08:18:34 UTC
view on stackexchange narkive permalink

Sopiminen muiden kanssa kyllä ​​vastaamiseksi on täysin mahdollista, mutta myös lisätä mielenkiintoinen anekdootti:

Joshua Drake (@jduck) löysi virheen, joka perustuu hyvin samankaltaiseen käsitteeseen (kuvat tulkitaan käyttöjärjestelmä), jonka nimi nimettiin "Stagefright" ja joka vaikutti naurettavaan määrään Android-laitteita.

Hän löysi myös samanlaisen kuvavirheen kohdasta libpng joka aiheuttaa tiettyjen laitteiden kaatumisen. Hän twiittasi esimerkin hyödyntämisestä, joka sanoi: "Hei, tarkista tämä tekemäni vihamielinen PNG, se kaatuu todennäköisesti laitteellesi", tajuamatta, että twitter olisi lisännyt sisäisten kuvien automaattisen renderoinnin. Tarpeetonta sanoa, että monien hänen seuraajiensa koneet kaatuivat heti, kun selain yritti ladata kuvan pikkukuvan syötteeseensä.

Itse asiassa mediaympäristö on nimeltään "Stagefright", mutta nimi on jo tarpeeksi tarttuvaa nimeämään sen "Stagefright bugiksi". / offtopic
user158037
2015-08-27 20:48:15 UTC
view on stackexchange narkive permalink

Epärealistinen? Kirjasimen määrittelyn jäsentämisessä tapahtui äskettäin kriittinen virhe: https://technet.microsoft.com/en-us/library/security/ms15-078.aspx ja libjpeg-muuttujat ovat täynnä tietoturvaohjeita. Tiedostojen [1] jäsentäminen on vaikeaa: ylivuotoja, alivuotoja, rajojen ulkopuolista käyttöä. Viime aikoina on kehitetty monia fuzzointityökaluja, joiden avulla syötteen puoliautomaattinen havaitseminen voi aiheuttaa kaatumisen.

[1] tai verkkopaketit, XML tai jopa SQL-kyselyt.

Kyllä ... niin kovaa hallitsemattomalla koodilla -. - Jos vain koodataan hallitussa koodissa, puskurin ylitys / alivirtaus vähenee alle 1 prosenttiin niiden nykyisestä vaikutuksesta turvallisuuteen ...
Jos C-kääntäjien kirjoittajat olisivat kiinnostuneita vankkuuden edistämisestä, C voisi ylittää Java-toiminnon monissa tehtävissä, joissa semantiikka on "Annetaan kelvollinen syöte, tuotetaan oikea tulos; annetaan virheellinen syöte, tuotetaan löyhästi rajoitettua tulosta". Valitettavasti kääntäjien kirjoittajilla ei näytä olevan mitään kiinnostusta siihen, ja he haluavat optimoida logiikan, joka estäisi UB: n turvallisuuden kannalta kriittiset muodot, jos se ei estä UB: n muuten kuin turvallisuuskriittisiä muotoja esiintymästä samoissa tilanteissa.
@Falco: Hallittu koodi ei ole ilmainen; toisaalta, koska hypermoderni C eliminoi monet C: n aikaisemmista suorituskykyeduista tapauksissa, joissa ohjelmoijat eivät välittäneet tarkasta käyttäytymisestä esimerkiksi ylivuotojen tapauksessa, ainoa tapa, jolla näen C: n pysyvän kilpailukykyisenä, on virallisesti luettelokäyttäytyminen, jota standardi ei takaa, mutta joka on laajalti toteutettu, ja antaa ohjelmoijille mahdollisuuden määritellä ne.
@Falco Valitettavasti myös hallituilla ajonaikoilla on osuus puskurin ylivuotoista. Ihmiset, jotka kirjoittivat Java, tekivät kamalaa työtä käyttämällä puolustavaa ohjelmointia vartioidakseen ajonaikaisia ​​heikkoja kohtia. Itse asiassa törmäsin juuri yhteen viimeisimmässä Javassa (ja ilmoitin siitä Oraclelle, joka vahvisti sen). Kaikki johtuu ennenaikaisen optimoinnin harkitsemattomasta tavoittelusta. Ihmettelen, jos meillä on yhtäkkiä läpimurto ja pystymme rakentamaan 20 GHz: n siruja, ottavatko ohjelmoijat lopulta huomioon rajatarkastukset ja vastaavat. Vai ovatko he liian itsepäinen.
MS15-078 on vieläkin huolestuttavampi, koska Adoben kirjasinohjain * toimii ydintilassa *.
@AleksandrDubinsky En pidättäisi hengitystäni - meillä on ollut muutama nousu käsittelynopeuksien suuruusluokassa, ja niin monet pitävät silti kiinni välttääkseen rajatarkastukset. Tähän mennessä syyt ovat edelleen samat, jos suorittimet saavat 1000x nopeammin. On kuitenkin toivoa - esimerkiksi Microsoft Research oli työskennellyt täysin puhalletun hallitun käyttöjärjestelmän parissa alusta asti - sitä ei ollut suunniteltu suorituskykyyn vaan pikemminkin turvallisuuteen, mutta tutkimushankkeelle se toimi silti riittävän hyvin. Kun koko käyttöjärjestelmää hallitaan, vältät hallitun ja hallitsemattoman välisen viestinnän kustannukset.
Emilio M Bumachar
2015-08-31 00:42:25 UTC
view on stackexchange narkive permalink

Kuten muut ovat huomauttaneet, tällaiset hyökkäykset käyttävät yleensä puskurin ylivuotoja.

Mitä tulee muttereihin ja pultteihin, sitä kutsutaan pino-iskeväksi hyökkäykseksi. Se sisältää puhelupinon vioittumisen ja osoitteen korvaamisen oikeutetuksi koodiksi, joka suoritetaan hyökkääjän toimittamalle koodille, joka suoritetaan sen sijaan.

Löydät tiedot osoitteesta insecure.org/stf/smashstack.html.

TheJulyPlot
2015-08-27 00:08:04 UTC
view on stackexchange narkive permalink

Kyllä, tämä on mahdollista:

Uuden variantin säälimättömästä Zeus-pankkitroijalaisesta - nimeltään ZeusVM - on piilotettu JPG-kuvatiedostoihin, vanhemman turvallisuustutkijan Jerome Seguran yhteistyön perusteella. Malwarebytesin ja ranskalaisen tietoturvatutkijan Xylitolin kanssa.

Tekoa kutsutaan steganografiaksi - viestien tai kuvien piilottaminen muissa viesteissä tai kuvissa.

ZeusVM: n tapauksessa haittaohjelman koodi on piilotettu vaatimattomiin JPG-kuviin, paljastui Seguran maanantain blogikirjoitus. Nämä valokuvat toimivat vääränä ohjauksena ZeusVM: lle hakemaan määritystiedosto.

"JPG sisältää haittaohjelmien määritystiedoston, joka on lähinnä luettelo skripteistä ja rahoituslaitoksista - mutta sitä ei tarvitse avata. uhri itse ”, Segura kertoi SCMagazine.com -sivustolle tiistaina sähköpostikirjeessä. "Itse asiassa JPG: llä itsessään ei ole juurikaan näkyvyyttä käyttäjälle, ja se on suurimmaksi osaksi peitetekniikkaa varmistaakseen, että sitä ei havaita tietoturvaohjelmistojen näkökulmasta."

Lähde.

Vaikka tekniikka * on * mahdollista viallista JPEG-dekooderia vastaan, se ei näytä olevan esimerkki sellaisesta. Tämä yksinkertaisesti koodaa kokoonpanotiedosto JPEG-muodossa piilottaakseen päivitykset * olemassa olevaan * infektioon. OP näyttää kysyvän JPEG-kuvista vektorina uusien infektioiden siirtämisessä.
No, jos haluat olla pedantti siitä, jäsentäminen ja purku ovat kaksi erillistä asiaa jopa JPEG-tiedostoissa ja laajemmassa tietojenkäsittelytieteessä. Yksi kuvaa dataa * tavalla, jolla puhutaan, toinen, hyvin, se purkaa jotain. Joko niin, haittaohjelmana oleva piste voidaan toimittaa jpeg-tiedostojen avulla useilla huomaamattomilla tavoilla.
Mielestäni tämä esimerkki on vieläkin mielenkiintoisempi kuin yksinkertainen tartunnan saanut kuva, jonka käyttäjän on todennäköisesti oltava vuorovaikutuksessa sen kanssa. Tämä esimerkki näyttää pikemminkin hienostuneen haittaohjelman, joka ei kiinnitä käyttäjän huomiota ja voi johtaa selaimen sisäisiin hyökkäyksiin
JPEG-dekompressoria hyödyntävän tartunnan saaneen kuvan tarkoitus on, että * ei tarvita * vuorovaikutusta. Jos sinulla on buginen JPEG-toteutus, kuten @gowenfawr,: n toimittamassa GDI + -esimerkissä, voit vaarantua katsomalla verkkosivua tai sähköpostia. Tällaisia ​​kuvia voidaan näyttää mainoskoodilla jopa luotettavilla sivustoilla. Se on * paljon * mielenkiintoisempi ja huolestuttavampi kuin JPEG: tä, jota käytetään vaarattomana näennäisenä viestintämekanismina * olemassa olevalle * infektiolle.
Saan mielipiteesi, mutta ei merkitystä kommentilleni. Voit saada tartunnan myös lataamalla kuvan selaimeen. gowenfawrs-esimerkki oli hyvä esimerkki kyllä, olen samaa mieltä. Lähempänä alkuperäisen kysymyksen teoreettista esimerkkiä. Joka tapauksessa, kuten sanoin, on olemassa monia erilaisia ​​tapoja toimittaa haittaohjelmia jpeg: n kautta, mukaan lukien tämä, jonka esitin vain esimerkkinä jpegien haitallisuudesta. https://blog.malwarebytes.org/security-threat/2014/02/hiding-in-plain-sight-a-story-about-a-sneaky-banking-trojan/
@TheJulyPlot Luulen, että ymmärrät väärin, miten se toimii. Tässä esimerkissä Zeus-troijalainen käyttää JPG-tiedostoa piilottaakseen kuinka se lataa määritystiedostonsa. Troijalaisen tartunnan saanut tietokone lataa kuvan ja purkaa sen. Kuva sisältää vain (piilotetun) määritystiedoston, ei troijalaista, eikä siinä ole mekanismia järjestelmien itsensä tartuttamiseksi. Et voi saada tartunnan lataamalla kuvan yksinkertaisesti selaimeen.
En ole lainkaan väärinkäsitys .. itse asiassa se kuvattiin lähettämässäni linkissä.
En ole varma, että "hienostunut" kuvaa todella jotain tällaista. JPEG-dekooderit kulkevat yleensä vain EOF-tavulle (jos sellainen on), mikä tekee siitä yhtä helppoa kuin minkä tahansa muun tiedoston liittäminen kuvatiedoston loppuun. `kissa img.jpg paha.zip> paha.jpg` on kaikki mitä tarvitaan.


Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...