Det vanskeligste programmet

Fra oversetteren: Jeg fant et spørsmål på Quora: Hvilket program eller kode kan kalles det mest komplekse som noen gang er skrevet? Svaret fra en av deltakerne var så godt at det er ganske verdig en artikkel.

Fest setebeltene.

Det mest komplekse programmet i historien ble skrevet av et team av mennesker hvis navn vi ikke vet.

Dette programmet er en dataorm. Ormen ble tilsynelatende skrevet mellom 2005 og 2010. Fordi denne ormen er så kompleks, kan jeg bare gi en generell beskrivelse av hva den gjør.

Ormen dukker først opp på en USB-stasjon. Noen kan finne en disk liggende på bakken, motta den i posten og bli interessert i innholdet. Så snart disken ble satt inn i en Windows-PC, uten brukerens viten, startet ormen seg selv og kopierte seg selv til den datamaskinen. Det var minst tre måter han kunne starte seg selv på. Hvis en ikke fungerte, prøvde han en annen. Minst to av disse lanseringsmetodene var helt nye, og begge utnyttet to uavhengige, hemmelige feil i Windows som ingen visste om før denne ormen dukket opp.

Så snart ormen kjører på en datamaskin, prøver den å få administratorrettigheter. Han er ikke spesielt plaget av installert antivirusprogramvare – han kan ignorere de fleste slike programmer. Deretter, avhengig av hvilken versjon av Windows den kjører på, vil ormen prøve en av to tidligere ukjente metoder for å få administratorrettigheter på datamaskinen. Som før var det ingen som visste om disse skjulte sårbarhetene før denne ormen dukket opp.

Etter dette er ormen i stand til å skjule spor av sin tilstedeværelse i dypet av operativsystemet, slik at ingen antivirusprogram kan oppdage den. Den gjemmer seg så godt at selv om du ser på disken på stedet der denne ormen skal være, vil du ikke se noe. Denne ormen gjemte seg så godt at den klarte å streife rundt på Internett i ett år uten noe sikkerhetsselskap anerkjente ikke engang faktumet om dens eksistens.

Ormen sjekker deretter om den kan få tilgang til Internett. Hvis han kan, prøver han å besøke nettsteder www.mypremierfutbol.com eller www.todaysfutbol.com. På den tiden var disse serverne Malaysia og Danmark. Den åpner en kryptert kommunikasjonskanal og forteller disse serverne at den nye datamaskinen har blitt overtatt. Hvorfor oppdaterer ormen seg automatisk til den nyeste versjonen?

Ormen kopierer seg selv til en hvilken som helst annen USB-enhet du tilfeldigvis setter inn. Den gjør dette ved å installere en pent utformet useriøs diskdriver. Denne driveren inneholdt en Realtek digital signatur. Dette betyr at forfatterne av ormen på en eller annen måte var i stand til å bryte seg inn på det sikreste stedet til et stort taiwansk selskap og stjele selskapets mest hemmelige nøkkel uten at selskapet visste om det.

Senere begynte forfatterne av denne driveren å signere den med en privat nøkkel fra JMicron, et annet stort taiwansk selskap. Og igjen, forfatterne var i stand til å bryte seg inn på det mest beskyttede stedet i dette selskapet og stjele den mest hemmelige nøkkelen han eier dette selskapet uten at de vet noe om det.

Ormen vi snakker om veldig komplisert. Og vi er til og med stille startet ikke.

Etter dette begynner ormen å utnytte to nylig oppdagede feil i Windows. En feil er relatert til nettverksskrivere, og den andre er relatert til nettverksfiler. Ormen bruker disse feilene til å installere seg selv over det lokale nettverket på alle andre datamaskiner på kontoret.

Ormen begynner så å lete etter spesifikk programvare utviklet av Siemens for å automatisere store industrielle maskiner. Når han finner den, bruker han (du gjettet det) en annen tidligere ukjent feil for å kopiere den programmerbare logikken til en industriell kontroller selv. Når en orm har satt seg på datamaskinen, blir den der for alltid. Ingen mengde erstatning eller "desinfisering" av datamaskinen vil bli kvitt den.

Ormen ser etter tilkoblede industrielle elektriske motorer fra to spesifikke selskaper. Ett av disse selskapene er i Iran og det andre er i Finland. Motorene han ser etter kalles "variable frequency drives." De brukes til å kontrollere industrielle sentrifuger. Sentrifuger kan brukes til å rense mange kjemiske elementer.

For eksempel uran.

Nå som ormen har full kontroll over sentrifugene, kan den gjøre hva den vil med dem. Han kan slå dem av alle. Han kan ødelegge dem alle umiddelbart - bare snurr dem med maksimal hastighet til de flyr fra hverandre som bomber, og dreper alle som tilfeldigvis er i nærheten.

Men nei. Dette komplekse mark. Og ormen har andre planer.

Når den har fanget alle sentrifugene i anlegget ditt... går ormen rett og slett i dvale.

Dagene går. Eller uker. Eller sekunder.

Når ormen bestemmer seg for at tiden er inne, våkner den raskt. Han velger tilfeldig ut flere sentrifuger mens de renser uranet. Ormen blokkerer dem slik at hvis noen legger merke til at noe er rart, vil de ikke kunne skru av disse sentrifugene.

Og så, litt etter litt, begynner ormen å snurre disse sentrifugene... litt feil. Ikke mye i det hele tatt. Bare, du vet, litt for fort. Eller litt for sakte. Bare немного utenfor sikre parametere.

Samtidig øker det gasstrykket i disse sentrifugene. Denne gassen kalles UF6. En veldig skadelig ting. Ormen endrer trykket til denne gassen litt utenfor trygge grenser. Akkurat slik at hvis det kommer gass inn i sentrifugene under drift, er det en liten sjanse for at han skal bli til steiner.

Sentrifuger liker ikke å løpe for fort eller for sakte. Og de liker heller ikke steiner.

Men ormen har et siste triks igjen. Og han er genial.

I tillegg til alle sine handlinger, begynte ormen å spille av et opptak av dataene fra de siste 21 sekundene av operasjonen, som den registrerte når sentrifugene fungerte normalt.
Ormen spilte opptaket om og om igjen i en loop.

Som et resultat så dataene fra alle sentrifuger for mennesker ganske normale ut. Men dette var bare falske oppføringer skapt av ormen.

Tenk deg nå at du er ansvarlig for å raffinere uran ved å bruke dette store industrianlegget. Og alt ser ut til å fungere bra. Motorene høres kanskje litt merkelige ut, men tallene på datamaskinen viser at sentrifugemotorene fungerer som de skal.

Så begynner sentrifugene å bryte ned. I tilfeldig rekkefølge, den ene etter den andre. De dør vanligvis stille. Men i noen tilfeller arrangerer de nåtiden opptreden. Og uranproduksjonen begynner å falle kraftig. Uranus må være ren. Uranet ditt er ikke rent nok til å gjøre noe nyttig med.

Hva ville du gjort hvis du drev dette urananrikningsanlegget? Du ville sjekket alt igjen og igjen og igjen, uten å forstå hva problemet er. Du kunne bytte alle datamaskinene i anlegget hvis du ville.

Men sentrifugene ville fortsatt bryte ned. Og du det var ingen måte å finne ut hvorfor.

Over tid, under ditt tilsyn, bryter rundt 1000 sentrifuger sammen eller stenges. Du blir gal av å prøve å finne ut hvorfor ting ikke fungerer som planlagt.

Dette er nøyaktig hva som faktisk skjedde

Du ville aldri forvente at alle disse problemene ble skapt av en dataorm, den mest utspekulerte og intelligente dataormen i historien, skrevet av et utrolig hemmelig team med ubegrenset penger og tid. Ormen ble designet med bare ett formål: gå gjennom alle kjente digitale sikkerhetsmetoder og ødelegge landets atomprogram uten å bli tatt.
Å lage et program som kan gjøre EN av disse tingene er i seg selv et lite mirakel. Lag et program som kan gjøre ALT dette og mye mer...

… for dette Stuxnet-orm måtte bli det mest komplekse programmet som noen gang er skrevet.

Kilde: www.habr.com

Legg til en kommentar