Új hozzászólás Aktív témák
-
ddekany
veterán
Hirtelen nem találtam meg, mi a támadási mechanizmus, de gondolom ismét valami tömb túlcímzés vagy egyéb pointer elcseszős trükk. Mikor jutunk el oda, hogy egyszerűen nem használunk olyan programozási nyelvet (kivéve talán néhány nagyon alacsony szintű feladathoz), amiben ilyesmi lehetséges? Dedó, komolyan...
-
ddekany
veterán
"Ki ne használjon "olyan programozási nyelveket"?"
A szoftverfejlesztők akik a biztonsági réseket tartalmazó cuccokat (Acrobat Reader, Flash player, stb) készítik. De talán majd talán pár évtized múlva végleg kinövünk a C/C++-ből és hasonló ős idők körülményeire optimalizált nyelvekből (kivéve néhány speciális területen persze). És amúgy nem kell "virtuális gépes" nyelv ahhoz, hogy az ilyesmi pointer manipulálós balesetek esélye a töredékrészére csökkenjen, ha még nem is 0-ra.
-
ddekany
veterán
Jó akkor innentől off, mert mint mondtam, nem tudom ez miféle hiba most... annyit mondtam, nehogy az legyen már megint, mert.
"De ha a szoftverfejlesztők le is szoknak róla, attól még a rosszindulatú kódokat író fickók még használhatják másik szivatására."
Már feltéve, hogy "bináris" (azaz gépikódot tartalmazó) formában adhatnak meg dolgokat gonoszék... de hát ilyet azért nem tehet hivatalosan (ill. minimum hogy alá kell lennie írva a "bináris" cuccnak, plusz rákérdez a böngésző, hogy bízol-e a készítőben). Pl. swf sem tartalmazhat ilyet, meg a WMF-sem, stb., aztán minddel lehetett vicceseket csinálni. És ahogy elnéztem, a komolyabb hatású exploitok (teljes hatalomátvétel, stb) jelentős része úgy működik, hogy olyan adatokkal etetnek meg egy jóindulatú programot, amitől az nagyon specifikus, a támadó által hasznos módon hibásan kezd el működni... pl. tömb indexeket a helyes tartományon kívül visz (és egyéb pointer elcseszések), ezzel átírva a memóriában dolgokat (funkció visszatérési címet, vagy akár csak helyi váltózókat, sőt, heap-ben is lehet így jókat gázolni), ami a program logikája szerint lehetetlen, de így alacsony szinten belepiszkálva a memóriába lehetséges. Puff. Teljesen "felesleges" hiba. Ha a C++ tömbökhöz letárolódna a méret, és kötelező lenne az index helyességének ez ellenőrzése, akkor hiába rontotta volna el a készítő a programot, az vmi IndexOutOfBounds hibával elszállna és kész, nem lehetne disznóságra rávenni. De hát a C++, mint "rendszer programozási nyelv" nem efféle, teli van pointer aritmetikával (tehát ott is ahol formálisan nincs is tömb).
Ja, az meg már mindennek a teteje, mikor adatterületre rá lehet ugrani mint gépikódra... és ezt csak mostanság próbálják orvosolni az NX bittel. Ez is már milyen, ezt már a 286 idején lehetett tudni, hogy gáz, csak hát akkor még nem érdekelt ez senkit, mert ugyanmá'. Eh, a túl gyors fejlődést káoszt okoz. Majd kinőjük...
"Egyébként érdekelne, hogy mit javasolnál helyette (programozási területen), amiben nem lehetséges hasonlóan ocsmány hiba."
Nem tudok róla, hogy lenne ilyen nyelv ami nem "script nyelv", és nem is "virtuális gépes", és általános célú is... Hogy miért? Talán mert ezen a területen C/C++-vel szemben senki nem próbálkozni. (OK, de, Digital Mars a D-vel... és az ugyan csodás, de az sem "biztonságos", bár valamivel talán biztonságosabb.) Meg aztán, a virtuális gépes irányba nagy nyomulás van, ezért talán felesleges is lenne máshol próbálkozni, viszont annak még fejlődni kell sokat. De talán majd megélem, hogy driverek magjától meg efféléktől eltekintve minden C#-ban vagy hasonlóban lesz írva.
[ Szerkesztve ]
-
ddekany
veterán
"A C# mitől jobb a c/c++-nál?"
C# kb olyan mint a Java, csak valamivel fejlettebb.
"Értem a mondanivalódat, de nem értem, hogy hogy gondolod a gyakorlatban."
Szerintem nem érted. Arról van szó, hogy mikor flash-t "futtatsz" (ideértve a ActionScript interpretert), vagy amikor egy GIF-et jelenít meg valami (pl. a böngésző), vagy amikor PDF-et jelenít meg az Acrobat Reader, stb, stb. akkor ezt manapság a háttérben általában egy C/C++-ben vagy valami hasonlóban írt program végzi a Te gépeden. Ha ennek a programnak szándékosan hibás vagy épp csak furcsa ActionScript-et, GIF-t, PDF-et, stb-t kap, és a program nincs túl jól megírva, akkor "megzavarodik", és ezt a te gépedre való betörésre lehet kihasználni. Tehát az "összezavarható" program a te gépeden volt, és nem rosszindulatú emberek rakták oda, csak az őt összezavaró tartalmat készítették azok (holott elvileg sem Flash-al sem GIF-vel sem PDF-el nem lehet ilyet csinálni). Mármost, bármiféle nyelven írt tökéletlen programot ismeretlen utakra lehet terelni hibás adatokkal, szóval egyik sem támadhatatlan, de pl. a Java-ban, C#-ben, meg effélékben írt programok esetén ezzel ritkán tudsz elfoglalni egy gépet, mert nem férsz hozzá alacsony szinten a memória tartalmához. (Persze, a gond ott van, hogy pl. Java esetén vannak C/C++-ben megírt részek a platform megvalósításában, de kevés, és remélhetőleg egyre kevesebb lesz. De akkor is, itt emberi ész nélkül, teljesen automatikusan ki lehet zárni egy rakás biztonsági rést.)
[ Szerkesztve ]
-
ddekany
veterán
"Én arra reagáltam, hogy azt írtad, hogy aláírással kellene ellátni a bináris cuccokat.
Ezt nem tudom, hogy mi módon gondoltad a gyakorlatban."Ott azt akartam mondani, hogy ez jelenleg is így van, tehát "gonoszék" nem tudnak szabályosan "veszélyes nyelven" írt cuccokat használni weboldalon keresztül. Ha egy weboldal részét natív (gépikódú) cucc is képezi (pl. DLL), akkor ott rákérdez a böngésző, hogy ezt XY cég írta alá (digitális aláírás), megbízol-e benne. Általában... de minden esetre nem fogja automatikusan letölteni és futtatni.
"Amúgy a virtuális gépen futó progik nem lassabbak, mint egy alacsonyabb szinten írt progi?"
Fejlett virtuális gépet feltételezve nem feltétlenül számottevően lassabb (pl. manapság már "titokban" natív gépikóddá fordulnak ezek), de valahol több erőforrást kell ennie, pl. több RAM-ot. Viszont ahogy a hardver fejlődik, ez a "vízfej" az elviselhetetlentől az észrevehetetlen felé mozdul el. Persze még igencsak ráfér a fejlődés a virtuális gépes világra. Pl. bizonyosan jó lenne, ha OS szinten lenne támogatva a dolog, hiszen ez egy alapszolgáltatás kéne hogy legyen. Így pl. a virtuális gép és a hozzátartozó sztenderd könyvtárak már az OS indulásakor betöltésre kerülnének, szemétgyűjtés szociálisabb lehetne (hiszen OS kontrollálja), lehetne ilyen-olyan cache-ek csinálni osztályok betöltésének gyorsítására OS szinten, stb. Aztán ha már ennyire alap dolog lett ez, akkor talán megjelenne a hardver támogatás is... mint ahogy multimédiára rágyúrtak a CPU-k talán erre is rá lehet.
[ Szerkesztve ]
-
Új hozzászólás Aktív témák
- Mibe tegyem a megtakarításaimat?
- Samsung Galaxy S23 Ultra - non plus ultra
- Anime filmek és sorozatok
- Háztartási gépek
- Elkészült Oroszország első litográfiai berendezése
- BestBuy ruhás topik
- Házimozi belépő szinten
- Ukrajnai háború
- Mobvoi TicWatch Pro 5 Enduro - kitartás kartárs?
- CADA, Polymobil, és más építőkockák
- További aktív témák...
- Eladó Palit RTX 4070 Dual 12GB GDDR6X videokártya
- Fujitsu Lifebook E546 , 14" Kijelző, I3-6100U, 8GB DDR4, 128GB SSD, WIN 10, Számla, garancia
- Fujitsu Lifebook E544 , 14" Kijelző, I7-4712QM, 16GB DDR3, 128GB SSD, WIN 10, Számla, garancia
- Dell Latitude E6430, 14" HD+ Kijelző, I7-3720QM, 8GB DDR3, 320GB HDD, Nvidia 1GB, WIN 10, Számla,
- Dell Latitude E5540, 15,6" Kijelző, I7-4600U, 16GB DDR3, 500GB HDD, Nvidia 2GB, WIN 10, Számla, gar
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Ozeki Kft.
Város: Debrecen