Najteži program

Od prevodioca: Našao sam pitanje na Quori: Koji program ili kod se može nazvati najkompleksnijim ikad napisanim? Odgovor jednog od učesnika bio je toliko dobar da je sasvim vrijedan članka.

Vežite pojaseve.

Najsloženiji program u istoriji napisao je tim ljudi čija imena ne znamo.

Ovaj program je kompjuterski crv. Crv je očigledno napisan između 2005. i 2010. godine. Pošto je ovaj crv tako složen, mogu dati samo opšti opis onoga što radi.

Crv se prvo pojavljuje na USB disku. Neko bi mogao pronaći disk koji leži na zemlji, primiti ga poštom i zainteresovati se za njegov sadržaj. Čim je disk ubačen u Windows PC, bez znanja korisnika, crv se automatski sam pokrenuo i kopirao na taj računar. Postojala su najmanje tri načina na koja se mogao pokrenuti. Ako jedno nije upalilo, pokušao je drugi. Najmanje dvije od ovih metoda pokretanja bile su potpuno nove, a obje su koristile dvije nezavisne, tajne greške u Windows-u za koje niko nije znao dok se ovaj crv nije pojavio.

Čim se crv pokrene na računaru, pokušava da dobije administratorska prava. Ne smeta mu posebno instalirani antivirusni softver – većinu takvih programa može zanemariti. Zatim, u zavisnosti od toga na kojoj verziji Windows-a radi, crv će pokušati jedan od dva ranije nepoznata načina za sticanje administratorskih prava na računaru. Kao i ranije, niko nije znao za ove skrivene ranjivosti pre nego što se ovaj crv pojavio.

Nakon toga, crv je u stanju da sakrije tragove svog prisustva u dubinama OS-a, tako da ga nijedan antivirusni program ne može otkriti. Toliko se dobro skriva da čak i ako pogledate disk na mjestu gdje bi ovaj crv trebao biti, nećete vidjeti ništa. Ovaj crv se tako dobro sakrio da je uspio lutati internetom godinu dana bez ikakve sigurnosne kompanije nije ni prepoznao činjenicu svog postojanja.

Crv zatim provjerava da li može pristupiti Internetu. Ako može, pokušava posjetiti stranice www.mypremierfutbol.com ili www.todaysfutbol.com. U to vrijeme ti serveri su bili Malezija i Danska. Otvara šifrovani komunikacioni kanal i govori ovim serverima da je novi računar uspešno preuzet. Zašto se crv automatski ažurira na najnoviju verziju?

Crv se zatim kopira na bilo koji drugi USB uređaj koji slučajno ubacite. To radi instalacijom uredno dizajniranog lažnog drajvera diska. Ovaj drajver je sadržavao Realtek digitalni potpis. To znači da su autori crva nekako uspjeli provaliti na najsigurniju lokaciju velike tajvanske kompanije i ukrasti najtajniji ključ kompanije, a da kompanija nije znala za to.

Kasnije su autori ovog drajvera počeli da ga potpisuju privatnim ključem JMicron-a, druge velike tajvanske kompanije. I opet, autori su uspjeli provaliti na najzaštićenije mjesto ovo kompaniju i ukrasti najtajniji ključ koji posjeduje ovo kompanija, a da oni ništa o tome ne znaju.

Crv o kome govorimo veoma komplikovano. I čak smo mirni nije počelo.

Nakon toga, crv počinje da iskorištava dvije nedavno otkrivene greške u Windowsu. Jedna greška se odnosi na mrežne štampače, a druga na mrežne datoteke. Crv koristi ove greške da se instalira preko lokalne mreže na svim drugim računarima u kancelariji.

Crv tada počinje da traži poseban softver koji je razvio Siemens za automatizaciju velikih industrijskih mašina. Jednom kada ga pronađe, on (pogodili ste) koristi još jednu ranije nepoznatu grešku da sam kopira programabilnu logiku industrijskog kontrolera. Jednom kada se crv nastani na tom računaru, ostaje tamo zauvek. Nikakva zamjena ili "dezinfekcija" vašeg računara neće ga se riješiti.

Crv traži priključene industrijske elektromotore od dvije specifične kompanije. Jedna od ovih kompanija je u Iranu, a druga u Finskoj. Motori koje traži zovu se "pogoni s promjenjivom frekvencijom". Koriste se za kontrolu industrijskih centrifuga. Centrifuge se mogu koristiti za pročišćavanje mnogih hemijskih elemenata.

Na primjer, uranijum.

Sada kada crv ima potpunu kontrolu nad centrifugama, može s njima raditi šta god želi. Može ih sve isključiti. Može ih odmah sve uništiti - samo ih zavrti maksimalnom brzinom dok se ne razlete kao bombe, ubijajući sve koji se nađu u blizini.

Ali ne. Ovo komplikovano crv. I crv ima drugi planovi.

Jednom kada uhvati sve centrifuge u vašoj biljci... crv jednostavno zaspi.

Dani prolaze. Ili nedeljama. Ili sekunde.

Kada crv odluči da je došlo vrijeme, brzo se probudi. On nasumično bira nekoliko centrifuga dok pročišćavaju uranijum. Crv ih blokira tako da ako neko primijeti da je nešto čudno, neće moći isključiti ove centrifuge.

A onda, malo po malo, crv počinje da vrti ove centrifuge... malo pogrešno. Ne puno. samo, znaš, malo prebrzo. Or malo presporo. Samo немного van bezbednih parametara.

Istovremeno, povećava pritisak gasa u ovim centrifugama. Ovaj gas se zove UF6. Veoma štetna stvar. Crv menja pritisak ovog gasa malo izvan sigurnih granica. Upravo tako da ako gas dospe u centrifuge tokom rada, postoji mala šansa da pretvoriće se u kamenje.

Centrifuge ne vole da rade prebrzo ili presporo. A ni oni ne vole kamenje.

Ali crvu je ostao još jedan trik. I on je briljantan.

Pored svih svojih radnji, crv je počeo da pušta snimak podataka iz poslednje 21 sekunde rada, koje je snimio kada su centrifuge radile normalno.
Crv je puštao snimak iznova i iznova u petlji.

Kao rezultat toga, podaci iz svih centrifuga za ljude izgledali su sasvim normalno. Ali to su bili samo lažni unosi koje je stvorio crv.

Sada zamislite da ste odgovorni za rafinaciju uranijuma koristeći ovo veliko industrijsko postrojenje. I čini se da sve dobro funkcioniše. Motori mogu zvučati malo čudno, ali brojevi na kompjuteru pokazuju da motori centrifuge rade kako bi trebali.

Tada se centrifuge počinju kvariti. Slučajnim redoslijedom, jedan za drugim. Obično umiru tiho. Međutim, u nekim slučajevima oni uređuju sadašnjost zastupanje. I proizvodnja uranijuma počinje naglo opadati. Uran mora biti čist. Vaš uranijum nije dovoljno čist da bi sa njim uradio bilo šta korisno.

Šta biste uradili da vodite ovu fabriku za obogaćivanje uranijuma? Provjeravali biste sve iznova i iznova i iznova, ne shvatajući u čemu je problem. Mogli biste promijeniti sve kompjutere u fabrici ako želite.

Ali centrifuge bi se i dalje pokvarile. I ti nije bilo načina da se otkrije zašto.

Tokom vremena, pod vašim nadzorom, oko 1000 centrifuga se pokvari ili ugasi. Poludiš pokušavajući da shvatiš zašto stvari ne rade kako je planirano.

Upravo se to dogodilo

Nikad ne biste očekivali da je sve ove probleme stvorio kompjuterski crv, najlukaviji i najinteligentniji kompjuterski crv u istoriji, koji je napisao neki neverovatno tajni tim sa neograničenim novcem i vremenom. Crv je dizajniran sa samo jednom svrhom: prođite kroz sve poznate metode digitalne sigurnosti i uništite nuklearni program svoje zemlje, a da ne budete uhvaćeni.
Stvoriti program koji bi mogao učiniti JEDNU od ovih stvari je samo po sebi malo čudo. Kreirajte program koji može SVE ovo i mnogo više...

… za ovo Stuxnet crv morao postati najkompleksniji program ikada napisan.

izvor: www.habr.com

Dodajte komentar