A Morris-féreg átfurakodik az interneten

kami911 képe

1988. november 2-án Robert Morris, a Cornell Egyetem hallgatója elindított egy önreprodukáló számítógépes férget egy kutatási projekt részeként, amely az internet korai méretének felmérésére irányult. A cél az volt, hogy megszámolja azokat a számítógépeket, amelyek kapcsolatot létesítettek a féreg betöltésekor. Azonban egy programozási hiba miatt a „Morris-féreg” elkezdett ismételten megfertőzni gépeket, ami hálózati forgalmi dugókat okozott és a rendszerek összeomlásához vezetett. Végül a féreg mintegy 6000 gépre terjedt át, ami akkoriban az internet körülbelül 10 százalékát jelentette, és jelentős leállásokat okozott két napra az állami és egyetemi rendszerekben. Morris-t kizárták a Cornell Egyetemről, három év próbaidőre ítélték, valamint 10 000 dolláros pénzbírságot szabtak ki rá.

A Morris-féreg több sebezhetőséget is kihasznált a célzott rendszerekben, többek között az alábbiakat:

  • Egy hibát az Unix sendmail programjának hibakereső (debug) módjában,
  • Egy puffertúlcsordulási (buffer overflow) hibát a finger hálózati szolgáltatásban,
  • Azt a bizalmat, amely lehetővé tette, hogy a felhasználók jelszó nélküli távoli bejelentkezéseket állítsanak be a Remote Shell (rsh) segítségével, az rexec/rsh által.

A féreg emellett a gyenge jelszavakat is kihasználta. Morris sérülékenységei idővel nagyrészt elavulttá váltak, mivel az rsh-t leállították (általában letiltották megbízhatatlan hálózatokon), a sendmail és finger hibáit kijavították, a hálózati szűrés széles körben elterjedt, és a gyenge jelszavak kockázatának tudatossága javult.

Bár Morris kijelentette, hogy nem akarta, hogy a féreg aktív pusztítást végezzen, csupán a hálózatok sebezhetőségeire akart rávilágítani, a kód hibája miatt a féreg eredetileg tervezettel szemben nagyobb károkat okozott, és gyorsabban terjedt. A programot úgy tervezték, hogy minden számítógépet ellenőrizzen, hogy a fertőzés már jelen van-e, de Morris attól tartott, hogy egyes rendszergazdák ellenintézkedésként hamis pozitív jelzést állíthatnak be. Ennek elkerülése érdekében úgy programozta a férget, hogy az a számítógépen fennálló fertőzés állapotától függetlenül 14%-os eséllyel lemásolja önmagát. Ezáltal egy számítógép többször is megfertőződhetett, és minden egyes új fertőzés lelassította a gépet, míg az használhatatlanná nem vált. Ez hasonló hatást gyakorolt, mint egy fork bomb, és többször összeomlasztotta a számítógépet.

A féreg fő része csak DEC VAX gépeket tudott megfertőzni, amelyek 4BSD-t futtattak, valamint Sun-3 rendszereket. A féreg egy hordozható C nyelvű „grappling hook” (kampós kötél) nevű összetevőt használt, amellyel letöltötte a fő programot, és a grappling hook más rendszereken is működött, ezeket is leterhelve, így perifériás áldozatokká téve őket.

Végül számos számítógép az Egyesült Államok különböző pontjain összeomlott, vagy teljesen válaszképtelenné vált. Amikor Morris felismerte, mi történik, felvette a kapcsolatot egy barátjával a Harvardon, hogy megvitassák a megoldást. Végül egy névtelen üzenetet küldtek Harvardról a hálózaton keresztül, amelyben útmutatást adtak a programozóknak a féreg eltávolításához és az újrafertőződés megelőzéséhez. Azonban, mivel a hálózati útvonal túlterhelt volt, ez az üzenet csak késve jutott el a címzettekhez. Számos helyszínen érintettek lettek a számítógépek, köztük egyetemek, katonai létesítmények és orvosi kutatóintézetek.

Clifford Stoll, aki segített a féreg elleni küzdelemben, 1989-ben így írt:

„Felmérem a hálózatot, és azt tapasztalom, hogy tizenöt órán belül kétezer számítógép fertőződött meg. Ezek a gépek teljesen használhatatlanná váltak, amíg meg nem tisztították őket. A féreg eltávolítása gyakran két napot is igénybe vett.”

Összességében körülbelül 6000 számítógép fertőződött meg, ami akkoriban az internet körülbelül 10%-át jelentette. Az akkori becslések szerint a féreg által okozott „potenciális termeléskiesés” és az eltávolítási erőfeszítések költsége egy rendszerenként 200 és 53 000 dollár között mozgott. Az Amerikai Számvevőszék becslései szerint a hozzáférés kiesése miatt a kár 100 000 és 10 millió dollár között volt. Mindezt egy kis kódrészlet, mindössze 99 sor (az objektumfájlokat nem számítva) okozta.

A Kaliforniai Egyetemen, Berkeley-ben és az MIT-n programozókból álló csapatok kezdték el a program példányainak visszafejtését, vagyis ember által is olvasható forráskóddá alakítását, hogy megértsék a működését. Fáradhatatlanul dolgoztak azon, hogy legalább egy ideiglenes megoldást találjanak, amely megakadályozhatná a féreg további terjedését. Körülbelül tizenkét óra elteltével a Berkeley csapata olyan lépéseket dolgozott ki, amelyek segíthettek lassítani a vírus terjedését. Az információ azonban nem terjedt el olyan gyorsan, ahogyan lehetett volna, mivel sok helyszín teljesen megszakította a kapcsolatot a hálózattal. Néhány nap elteltével a helyzet lassan normalizálódott, és mindenki azt akarta tudni, ki áll a támadás mögött. Később a The New York Times megnevezte Morrist mint a támadás szerzőjét. Bár ezt még hivatalosan nem bizonyították, jelentős mennyiségű bizonyíték mutatott Morrisra. Így Morris viszonylag enyhe büntetést kapott: 10 050 dolláros bírságot, 400 óra közmunkát és három év próbaidőt.