Selain Botnet-muodossa tai tulossa oleva sota verkkoselaimellasi

Yhden kevään iltapäivänä vietin lounaan Nick Brizin kanssa pienessä naapuruston ruokasalissa lähellä studiomme Chicagossa. Vedimme ideoita tulevasta konferenssista Brooklynissa, johon olemme osallistuneet viime vuosina nimeltään Radical Networks. Tapahtuma kokoaa yhteen taiteilijat, kouluttajat, toimittajat ja aktivistit ympäri maailmaa edistääkseen keskustelua ja sitoutumista viestintäverkkojen ja Internet-infrastruktuurin aiheisiin työpajojen, esitysten, kutsuttujen puhujien ja taidenäyttelyn kautta.

Entä jos verkkosivustot, jotka ovat lainanneet laskentaresursseja vierailijoidensa laitteista, kun ne selaavat jaetun laskennan keinona?

Me olimme molemmat osallistuneet taidenäyttelyyn festivaalin alusta lähtien, mutta tunsin tänä vuonna olevan pakko murtautua puhujaraitaan. Erityisesti viihdytin ajatusta esitellä ideani, joka minulla oli muutama päivä aiemmin, "entä jos verkkosivustot lainaisivat laskentaresursseja vierailijoidensa laitteista selatessaan jaetun laskennan keinona?"

Verkon suunnittelutavan vuoksi verkkosivustolla käyminen edellyttää, että selaimesi lataa ja suorittaa kyseiseltä verkkosivustolta palveleman koodin laitteellasi. Kun selaat Facebookia, heidän JavaScript-koodi suoritetaan koneesi selaimessa. Selaimessa suoritetun koodin oletetaan tietysti liittyvän selaamasi sivuston toimintoihin. Netflix palvelee koodia, jonka avulla selaimesi voi käyttää heidän elokuvatietokantaansa ja suoratoistaa videosisältöä, Twitter palvelee koodeja, joiden avulla voit lähettää, katsella ja kommentoida tweettejä jne.…

Teknisesti mikään ei kuitenkaan estä verkkosivustoa tarjoamasta mielivaltaista koodia, jolla ei ole mitään tekemistä selauskokemuksesi kanssa. Selaimesi suorittaa sokeasti kaiken JavaScript-koodin, jonka se saa selaamastasi verkkosivustosta. Mikä estää suuren liikenteen sivustoja, kuten Facebook ja Google, väärinkäyttämästä tätä web-ominaisuutta ja keräämästä massiivisia laskentaresursseja ilmaiseksi sadoilta tuhansilta samanaikaisesti yhteydessä olevilta käyttäjiltä? Oliko tämä ajatus todella toteutettavissa käytännössä? Jos on, käytettiinkö sitä luonnossa?

Tämä viesti on raportti matkani tästä kanin reikä ideasta, ja yhteenveto puheesta, jonka päädyin antamaan Radical Networksille tutkimuksen tuloksena.

Askel taaksepäin, vähän jakelujärjestelmistä

Ennen kuin siirrymme liian syvälle lainaavien käyttäjien laskentaresurssien vaikutuksiin samalla kun he epäilemättä selaavat verkkoa, haluan koskettaa, miksi ensin olisi hyödyllistä tehdä niin. Esittämäni esimerkkitapahtuma kuuluu tietotekniikan kenttään nimeltä Hajautettu laskenta. Hajautettu laskenta on käytäntö jakaa ongelma pieniksi palasiksi ja ajaa sitä useilla eri tietokoneilla samanaikaisesti, mikä vähentää merkittävästi ongelman laskemiseen kuluvaa aikaa. Hajautettu laskenta tarjoaa yleensä runsaasti laskentaresursseja, kuten monet prosessorit, suuren verkon kaistanleveyden ja monipuolisen joukon IP-osoitteita. Joillekin tehtäville hajautettu laskenta antaa mahdollisuuden 1000 tietokoneelle työskennellä yhdessä 1000x nopeamman tehtävän ratkaisemiseksi kuin yhden tietokoneen ratkaiseminen saman tehtävän ratkaisemiseksi yksin.

Sarjalaskenta (ylhäällä) vs. hajautettu laskenta (alhaalta)

Hajautetulla tietojenkäsittelyllä on rikas historia, joka juontaa ARPANETia 1960-luvulla, ja joukko yhteisö- ja vapaaehtoistyöntekijöiden tiedeprojekteja avasi 1990-luvun lopulla ja 2000-luvun alkupuolella (osittain Berkeley Network Computing -infrastruktuurin tai BOINC: n ansiosta. ohjelmisto). Projektit, kuten SETI @ Home, Folding @ Home, GIMPS ja monet muut, sallivat tietokoneen käyttäjien lahjoittaa tyhjäkäynnin tietokoneillaan tautien parantamiseksi, tutkia ilmaston lämpenemistä, löytää suuria alkulukuja, etsiä vieraita ihmisiä ja tehdä monia muita tieteellinen tutkimus.

Bottiverkko on hajautettu laskentaverkko, jossa osallistuvien tietokoneiden omistajat eivät tiedä heidän tietokoneensa osallistuvan verkkoon.

Vastapäätä ajatusta vapaaehtoisesta hajautetusta laskennasta on Botnet-konsepti. Bottiverkko, ”robotti” ja “verkko”, on hajautettu laskentaverkko, jossa osallistuvien tietokoneiden omistajat eivät tiedä heidän tietokoneensa osallistuvan verkkoon. Ne liittyvät hakkerointiin ja rikolliseen toimintaan, ja tunnetaan tunnetuimmin käytöstä huonoissa toiminnoissa, kuten hajautetussa palvelun epäämisessä (DDoS), sähköpostin roskapostissa, vakoiluohjelmissa, napsautuspetoksissa ja viime aikoina salaustekniikan louhinnassa. Botnet-ohjelmisto asennetaan yleensä käyttäjän koneeseen troijalaisena tai matoina, ja se voi kestää kuukausia tai vuosia omistajan tietämättä, tarjoamalla samalla laskentajaksoja ja kaistanleveyttä nimettömälle kolmannelle osapuolelle. Toisinaan näiden bottiverkkojen koko kasvaa, kunnes ne hallitsevat kymmenien miljoonien arvaamattomien käyttäjien tietokoneita, ja tietoverkkoturvallisuusyhteisön jäsenet tunnistavat ne epävirallisesti.

Nimetyt bottiverkot

Selainpohjaiset bottiverkot

Kuvittele tilanne, jossa tietokoneesi osallistuu bottiverkon solmuna, vain tällä kertaa haittaohjelmia ei asenneta tietokoneellesi ohjelmina. Pikemminkin se tapahtuu aivan selain-välilehden taustalla, jonka olet avannut lukemaan tätä blogin postitusta. Tämä menetelmä antaisi haitalliselle JavaScripti -koodille täyden pääsyn hiekkalaatikkoverkkoselaimen sovellusliittymään, joka on yhä tehokkaampi verkkoteknologiajoukko. Olisi myös ohimenevää ja vaikeaa havaita, kun käyttäjä on siirtynyt pois verkkosivustolta tarjoamalla bottiverkkoon laskentaresursseja, jotka vastaavat samanaikaisten verkkosivustojen kävijöiden lukumäärää milloin tahansa. Kuinka estää korkean liikenteen verkkosivustoja käyttämästä resursseja vierailijoilta ilmaiseksi siihen aikaan, kun he käyvät verkkosivuilla?

Hieman kaivaminen paljasti, että tämä ei ollut erityisen uusi idea ja että ihmiset olivat puhuneet tästä tekniikasta avoimesti ainakin vuodesta 2012 lähtien. MWR Labs teki tutkimusta aiheesta, jota sovellettiin hajautettuun hash-hakkerointiin verkossa (idea, että minä jota kehitettiin esittelyssäni keskustelun aikana, koodi täällä) ja Jeremiah Grossman ja Matt Johansen keskustelivat hienosti aiheesta Black Hat USA: ssa vuonna 2013. Molemmat tutkimusryhmät jakoivat kokeilunsa epäluuloisille käyttäjille erityisen petollisella ja nerokkaalla tavalla: mainosverkostoissa.

Perinteisissä hajautettujen tietojenkäsittelymenetelmissä on mukana vapaaehtoisia tai viruksia, mutta selainpohjaisten bottiverkkojen maisema on aivan erilainen. Lähestymistapamme kanssa meidän on levitettävä koodimme mahdollisimman monelle selaimelle kerralla. Meillä on muutama vaihtoehto:

  • Suorita suosittua verkkosivustoa
  • Kirjoita Wordpress / Tumblr-teema ja upota haittakoodimme lähteeseen
  • Suorita ilmainen välityspalvelin (tai TOR-poistosolmu) ja lisää koodimme ei-HTTPS-liikenteeseen
  • Ole Internet-palveluntarjoaja ja tee sama ^
  • Upota haittakoodimme suosituille verkkosivustoille jatkuvalla sivustojenvälisellä komentosarjoilla (XSS) (laiton)
  • Osta bannerimainos

Kuten ennen minua, uskalin kulkea Internet-mainonnan pimeälle tielle. Tiesitkö, että ne häiritsevät bannerimainokset, jotka seuraavat sinua Webissä, ovat usein iframe-kehyksiä, erityinen HTML-elementti, jonka avulla voit upottaa verkkosivuja muille verkkosivuille? Tämä tyylikäs napsauttamalla syötti -valokuva suosikki torrent-sivustosi yläosassa ei ehkä ole viaton .JPG, jonka luulet olevan, vaan pikemminkin itsenäinen verkkosivu, jolla on mahdollisuus toimittaa mukautettu JavaScript-koodi, joka suoritetaan selaimessa .

Tässä on idea: mainontaverkot yhdistävät verkkosisällön kustantajat (ts. Blogit, uutissivustot, pornosivustot, foorumit) mainostajiin. Mainostajat maksavat mainosverkostosta napsautusta (CPC) tai näyttökertaa / näkymää (CPM) kohti. Verkko raaputtaa rahat ylhäältä ennen lähettämistä rahan mukana julkaisijoille, jotka isännöivät mainoksia alustoillaan. Kun mainostaja luo dynaamisen kolmannen osapuolen mainoksen (hieno nimi upotettavalle