Näin toimivat Kide.appin kohutut lipunmyyntibotit – botin koodannut Aleksi toivoo, että niitä torjuttaisiin tehokkaammin
Kide.appin lipunmyyntiboteista liikkuu paljon huhuja. Visiiri testasi kahta bottia ja tavoitti bottikoodarin pohtimaan ilmiön moraalista puolta.
Teksti: Stefan Leppänen
Kuvitus: Pauliina Lindell
Maanantai 18. syyskuuta valkenee aurinkoisena. Nousen varhain valmistautuakseni Lexica ry:n järjestämien Kielareiden lipunmyyntiin. Parin opiskeluvuoteni aikana olen ostanut lippuja moniin tapahtumiin, mutta nyt aion ensimmäistä kertaa kokeilla lippubottia.
Botit ovat tietokoneohjelmia, jotka kykenevät toimimaan jossain määrin itsenäisesti. Niitä käytetään muun muassa hakukoneiden tietokantojen muodostamiseen, virtuaaliseen asiakaspalveluun ja roskapostittamiseen – sekä Kide.app-lippujen varaamiseen.
Boteista keskustellaan tasaisin väliajoin. Yleinen käsitys tuntuu olevan, että Hervannan teekkarit vievät boteillaan suosittujen tapahtumien liput muiden nenän edestä.
”Meni taas putkeen namiappro osto ku botit vie”, eräs Jodel-käyttäjä vaikeroi taannoin.
Heti alkuun on syytä tehdä selväksi, ettei tässä jutussa kuvatun kaltaisten lippubottien käyttäminen ole lähtökohtaisesti laitonta. Trokaaminen, eli lippujen jälleenmyynti alkuperäistä kalliimmalla, ei sekään riko lakia, joskin verottaja voisi teoriassa kiinnostua myyntivoitoista.
Loppuunmyytyjen tapahtumien lippuja kaupitellaan muun muassa Jodelin @lippukauppa-kanavalla, Facebookissa ja erilaisilla osto- ja myyntisivustoilla.
Viime vuonna lippu Hämeenkadun Approon maksoi 24 euroa, mutta Jodelissa lipuista pyydettiin jopa 40–50 euroa.
On tietenkin mahdotonta tietää, missä määrin lipputrokaajat käyttävät botteja apunaan.
Valitsen testiini kaksi avoimen lähdekoodin bottia, jotka löydän helposti googlaamalla.
KideAppBot toimii selaimessa ja vaatii hieman vaivannäköä. Minun täytyy kirjautua Kide.appiin, etsiä sivuston lähdekoodista kirjaimia ja numeroita sisältävä koodi ja syöttää se palveluun. Sen jälkeen kopioin ja liitän Kielareiden Kide.app-osoitteen, mutta jokin menee vikaan: ”Couldn’t parse productPageId from given URL”, botti valittaa. Yritän uudelleen, mutta virheilmoitus toistuu.
Kiderat puolestaan on työpöytäsovellus, jonka lataan ja asennan tietokoneelleni. Asennuttuaan sovellus pyytää kirjautumaan KideApp-tunnuksella ja salasanalla. Syötän tapahtuman osoitteen enkä koske muihin asetuksiin. Eteeni avautuu laskuri, joka laskee minuutteja ja sekunteja lipunmyynnin alkuun. Alakulmassa seisoo painike, jossa lukee ALOITA BOTTAUS.
Jännittävää! Leikittelen ajatuksella, että olen hakkeroitumassa Pentagoniin enkä vain jahtaamassa viiden euron lippuja Back to the Teens -teemaisiin bileisiin.
Lipunmyynnin alkuun on 40 minuuttia. Sitä odotellessa on aikaa tutustua Kide.appiin, jota olen käyttänyt monta kertaa, mutta josta tiedän loppujen lopuksi melko vähän.
Halvoilla hinnoilla markkinajohtajaksi
Vuonna 2014 Kassu La Habana Reyes sai kaverinsa kanssa loistoidean. Hän opiskeli hotelli- ja palvelualan liikejohtamista ammattikorkeakoulu Haaga-Heliassa Helsingissä ja vaikutti opiskelijajärjestöaktiivina.
”Siellä jo mietittiin, että vitsi kun olisi mobiilisovellus, jossa järjestöt voisivat myydä ja mainostaa omia tapahtumiaan.”
Kaverukset ryhtyivät tuumasta toimeen, vaikkei kumpikaan osannut koodata. Opiskelijajärjestöt innostuivat ajatuksesta heti, ja palvelua saatiin myytyä jo ennen kuin riviäkään koodia oli kirjoitettu. Koodarikin löytyi La Habana Reyesin veljen tuttavapiiristä.
Palvelu lanseerattiin vuonna 2015 nimellä Bailataan.fi. La Habana Reyesin mukaan sen aikaiset kilpailijat olivat melko kalliita opiskelijajärjestöille, niiden palvelimet kompastelivat ruuhkissa eivätkä ne toimineet kovin hyvin älypuhelimissa.
”Helppous oli meillä keskiössä. Ihan sama olitko harjoittelussa vai koulussa tunnilla, kun lipunmyynnit alkoivat, pystyit avaamaan sovelluksen ja hankkimaan liput.”
Juuri ennen koronapandemiaa palvelu vaihtoi nimensä Kide.appiksi. Tätä nykyä sillä on yhteensä yli 400 000 käyttäjää. Aktiivisista käyttäjistä noin 80–90 prosenttia on opiskelijoita, mikä tarkoittaa kuukausitasolla noin 200 000 ihmistä.
Tampereella käytännössä kaikkien isojen opiskelijatapahtumien lippuja myydään Kide.appissa. Palvelu toimii 26 opiskelijakaupungissa Suomessa ja lisäksi Tallinnan alueella Virossa.
Kide.appia ylläpitää Treanglo Oy, jonka toimitusjohtaja La Habana Reyes on. Yritys työllistää tällä hetkellä 15 henkilöä.
Viime vuonna Treanglo yli kaksinkertaisti liikevaihtonsa 692 tuhanteen euroon, ja toiminta on La Habana Reyesin mukaan kasvanut samaa vauhtia myös tänä vuonna.
Juuri ennen koronapandemiaa palvelu vaihtoi nimensä Kide.appiksi. Tätä nykyä sillä on yhteensä yli 400 000 käyttäjää.
Perinteisten lippupalveluyritysten rinnalla Treanglo kuitenkin kalpenee. Esimerkiksi Lippu.fi-sivustoa pyörittävän Lippupiste Oy:n liikevaihto ylsi viime vuonna 19,3 miljoonaan euroon.
Treanglon liiketoiminta on jäänyt viime vuosina jonkin verran tappiolle, mikä selittyy osin pandemialla.
La Habana Reyesin yritys ylipäätään haluaa tarjota palveluitaan vähävaraisille opiskelijajärjestöille kilpailijoitaan halvemmalla.
”Välillä tuntuu kuin olisimme jokin non-profit-organisaatio, kun voittomarginaali on niin pieni.”
Verkkoyhteys voi ratkaista
Suosituimpien tapahtumien liput myydään loppuun kymmenissä sekunneissa. Usein vain joka kymmenes halukas ostaja ehtii saada lipun.
La Habana Reyes antaa pari vinkkiä ostajille.
”Se voittaa, jolla on paras netti. Yleensä wifi-yhteydet eivät ole niin luotettavia kuin vaikka puhelimen suora yhteys.”
Jos myynnissä on useampia lipputyyppejä, ensimmäisenä näytettävät liput varataan yleensä ensimmäisenä. Onni voi potkaista, jos malttaa vierittää ruutua hieman alemmas.
Jos lippu jää saamatta, kannattaa yrittää uudelleen 25 minuuttia myöhemmin. Silloin lippuja usein vapautuu myyntiin.
Kaiken kaikkiaan nopeus siis ratkaisee. Silti näppäräsormisinkaan ihminen ei voita bottia, joka nappaa liput sekunnin murto-osissa.
Tuijotan Kielari-lipunmyynnin laskuria ja pidän hiiren osoitinta ALOITA BOTTAUS -napilla. 5, 4, 3, 2, 1, 0, klik.
”Lippuvaihtoehtojen lataus epäonnistui. — Yritetään uudelleen…”, sovellus toistaa. Uudelleen ja uudelleen. Epätoivo hiipii.
19. kerta toden sanoo. Botti varaa minulle kaksi lippua. Oikeasti on kulunut vain joitakin sekunteja. Kun avaan Kide.appin, liput odottavat ostoskorissa maksamista vaille valmiina.
Testin vakuuttavuutta syö hieman se, että Kielari-liput loppuvat ”vasta” reilut 10 minuuttia myöhemmin.
Minulle jää paljon kysymyksiä. Ehkä niihin osaa vastata yksi niistä salaperäisistä Hervannan teekkareista, joka on koodannut botin.
Parin päivän koodaustyö
Pitkä ja urheilullisen oloinen hahmo astelee keskustakampuksen Päätalon aulaan, puristaa kättäni ja esittäytyy reippaasti.
Aleksi Virkkala opiskelee tuotantotaloutta Hervannan kampuksella ja työskentelee koodarina teknologiayhtiö Vincitillä. Tapaan hänet, koska hän on koodannut KideAppBotin, jota hän pitää ensimmäisenä suurempaa suosiota saaneena lippubottina.
Vuonna 2020 Virkkala opiskeli toista vuotta yliopistossa ja kävi ahkerasti opiskelijatapahtumissa – niin ahkerasti, että hänet valittiin yhdeksi TTY:n kolmesta superfuksista. Tunnustuksen saavat erilaisista tapahtumista ja muista tempauksista eniten fuksipisteitä keränneet teekkarit.
”Ärsytti, kun en saanut lippuja johonkin opiskelijatapahtumaan, niin parissa päivässä koodasin prototyyppibotin Kide.appiin”, Virkkala muistelee.
Jo ennen opintojen aloittamista hänellä oli monta käytännön tarpeista noussutta koodausideaa. Nuorena hän kruisaili kaveriporukalla Vaasan seudun hiekkateillä ja alkoi suunnitella ralliharrastajille sovellusta, joka laskisi optimaalisen nopeuden erilaisia tieosuuksia varten. Se tosin jäi ajatuksen tasolle.
Periaatteessa kuka tahansa voi oppia koodaamaan lippubotin.
”Ei siihen mitään tutkintoa tarvitse. Jos käy yhden 5 opintopisteen kurssin web-devaamisesta, saa jonkinlaisen botin tehtyä.”
KideAppBotilla on tätä nykyä satakunta aktiivista käyttäjää viikossa, Virkkala sanoo.
Hänen omassa käytössään botti on toiminut ”sataprosenttisesti”. Haastatteluhetkellä jää epäselväksi, miksi minun kokeiluni tyssäsi virheilmoitukseen.
Virkkala kertoo, ettei ole koskaan saanut botistaan rahaa eikä boteilla tienaaminen istu hänen moraaliinsa. Rahan sijaan häntä motivoivat uuden oppiminen ja se, että hän saa luotua jotain, jolla on arvoa myös muille ihmisille.
”Haluan mahdollistaa matalan kynnyksen kaikille. On paljon yksityisiä botteja, joita jaetaan suljetuissa piireissä, mikä ei ole tasaarvoista.”
Viekö botti salasanasi?
Sekä Virkkalan KideAppBot että Kiderat toimivat samalla periaatteella. Käyttäjälle ero näkyy lähinnä käyttöliittymässä. Vaikka Kiderat asennetaan koneelle, molemmat toimivat selainympäristössä, mikä rajaa niiden pääsyä käyttäjän järjestelmään.
Kun käyttäjä kirjautuu Kide.appiin, sivusto luo kirjautumistiedoista yksilöllisen koodin. Tämä niin sanottu bearer token toimii Kide.app-tilin avaimena. Kun avaimen syöttää botille, se voi tehdä Kide.appissa samat asiat kuin tilin haltija.
Eikö tällaiseen liity myös tietoturvariskejä?
”Totta kai”, Virkkala vastaa ykskantaan.
”On hyvin henkilökohtainen asia, luottaako bottiin vai ei. Sitä voi verrata siihen, minne uskallat antaa luottokorttitietosi.”
Vaikka avoin lähdekoodi ja selainympäristössä toimivat sovellukset pienentävät väärinkäytön riskiä, ei se katoa kokonaan, muistuttaa Tampereen yliopiston ohjelmistotekniikan yliopistonlehtori Antti Sand.
”Eiväthän kaikki käyttäjät käy tavaamassa ohjelman koodia ja ymmärrä mitä siellä tapahtuu. Avoin lähdekoodi voi herättää perusteetontakin turvallisuudentunnetta”, Sand sanoo.
Sand ei halua lähteä arvioimaan tässä jutussa esiteltyjen bottien turvallisuutta.
”En halua antaa näille palveluille sellaista hyväksyntää. Jollei siellä tänään ole haitallista koodia, huomenna siellä saattaa olla.”
Botti voisi periaatteessa lähettää käyttäjänsä tunnuksen ja salasanan eteenpäin. Erityisen suuren riskin ottaa ihminen, joka käyttää samaa tunnusta ja salasanaa eri palveluissa.
Myös Kide.appin La Habana Reyes varoittaa bottien käyttäjiä.
”Ikinä ei pitäisi luovuttaa kolmannelle osapuolelle mitään käyttäjätunnuksia tai niihin rinnastettavia tietoja.”
Botti voisi periaatteessa lähettää käyttäjänsä tunnuksen ja salasanan eteenpäin.
Boteilla loppu bottaamiselle?
Botin käyttäjät ottavat myös toisenlaisia riskejä.
Sandin mukaan lippukauppa voi teknisesti tunnistaa käyttäjät, jotka toimivat epäinhimillisen nopeasti. Vaikka botit ovat laillisia, lippukauppa voi käyttöehtojensa puitteissa vaikeuttaa bottaajien elämää.
Bottaaminen ja erityisesti lippujen trokaaminen voivat myös herättää pahaa verta opiskelijapiireissä.
Kun Virkkala istui tuotantotalouden opiskelijoiden ainejärjestön Indecsin hallituksessa, hän kuuli joidenkin ihmetelleen, kuinka paikka sopii bottikoodarille. Järjestäähän Indecs muun muassa Kolmioita, joiden liput myydään Kide.appissa.
Virkkala puhuu mielellään bottien oikeudenmukaisuudesta ja sanoo vastustavansa trokaamista. Eikö voisi ajatella, että botit nimenomaan auttavat trokaajia?
”Kyllähän se heitä auttaa”, Virkkala myöntää.
Hän kuitenkin kokee, että pystyy botillaan luomaan painetta Kide.appin suuntaan. Jos Kide.app torjuisi botteja paremmin, kaikki käyttäjät joutuisivat samalle viivalle.
Erityisen ongelmallisena Virkkala pitää tilannetta, jossa botit ovat vain harvojen ulottuvilla.
”Trokaajat jaksavat nähdä vaivaa ja löytävät bottinsa joka tapauksessa. Yritän omalla botillani nostaa normikäyttäjän samalle tasolle.”
Virkkalan mukaan hän lähetti bottinsa julkaistuaan Kide.appille sähköpostin, jotta yritys osaisi parantaa turvatoimiaan. Vastausta ei kuulunut, ja botitkin ovat saaneet toimia melko rauhassa.
”Semmoisia muutoksia ne ovat tehneet pari kertaa, että on pitänyt yksi sana vaihtaa koodista. Hyvää botinestojärjestelmää ei ole helppoa tehdä, mutta niillä ei ole edes huonoa”, Virkkala sanoo.
”Vähän on tullut fiilis, ettei Kide. appia hirveästi kiinnosta, vaan he menevät siitä, missä aita on matalin.”
Bottaaja voi saada bannit
La Habana Reyes myöntää, että Kide.appilla on ollut rajallisesti resursseja puuttua bottaamiseen. Tilanne on kuitenkin muuttumassa.
”Me yritämme jatkuvasti kehittää meidän järjestelmäämme tasapuolisemmaksi ja miettiä erilaisia ratkaisuja. En pysty tässä vielä avaamaan niitä tarkemmin.”
Kide.app on kyllä puuttunut käyttöehtoja rikkovien bottaajien touhuihin.
”Pahimmassa tapauksessa käyttäjä voi menettää oikeuden käyttää Kide. appia ja samalla rahat ostettuihin lippuihin.”
Lopulta puhutaan kuitenkin marginaalisesta ongelmasta, muutamasta prosentista käyttäjiä.
”Tästä on tullut ehkä vähän isompi juttu opiskelijoiden keskuudessa, kuin mikä se tilanne oikeasti on.”
Trokaaminenkin on kielletty Kide.appin käyttöehdoissa, mutta siihen puuttuminen on hankalaa. Esimerkiksi lippukiintiöillä tapahtumajärjestäjät voivat vaikeuttaa trokaamista, mutta ostajat tuskin innostuisivat, jos jälleenmyyntiä vaikeutettaisiin liikaa.
Moni iso lippukauppa pitää yllä omaa jälleenmyyntikanavaa, jossa lippuja ei voi myydä alkuperäistä kalliimmalla. Kide.app on harkinnut asiaa, mutta La Habana Reyes ei usko sen ratkaisevan ongelmaa. Trokaajia riittää niin kauan kuin joku on valmis ostamaan lippuja kalliilla. Lihavat trokausvoitot lipsuvat käsistäni. Päädyn myymään bottaamani liput alkuperäiseen hintaan ainejärjestöni Telegram-kanavalla.
”Pahimmassa tapauksessa käyttäjä voi menettää oikeuden käyttää Kide. appia ja samalla rahat ostettuihin lippuihin.”
Kassu La Habana Reyes
Kilpajuoksu botteja vastaan
Pari viikkoa haastattelun jälkeen selviää vihdoin, miksen saanut Virkkalan bottia toimimaan. Tapahtuman osoiterivillä oli fi-kielitunnus, jota botti ei osannut lukea.
”Ei olisi iso vaiva korjata toimimaan myös tuolla lisällä, mutten ole toistaiseksi ehtinyt”, Virkkala viestittää.
Hän aikoo jatkaa KideAppBotin ylläpitämistä ja suunnittelee viilaavansa käyttöliittymää helpommaksi. Entä jos Kide.app alkaa toden teolla parantaa turvajärjestelmiään?
”Riippuu varmaan, mitä he tekisivät. Jos he tekisivät jotain puolivillaista, että tarvitsisi muuttaa vain yksi rivi koodia, kyllä minä sen korjaisin.”
Mikään lippukauppa ei saa järjestelmäänsä täysin ”luodinkestäväksi”, Virkkala kuvailee.
”Jos on aikaa ja rahaa, kyllä isompiinkin palveluihin saa botit tehtyä. Kyse on enemmänkin siitä, ettei ehkä ole sen arvoista lähteä tekemään sellaista muuten vaan.”
Kyse on siis eräänlaisesta kilpajuoksusta. Virkkala ei ole kokenut tarpeelliseksi lähteä testaamaan isojen lippukauppojen turvajärjestelmiä, vaikka ajatus on käynyt mielessä.
”Äitini taisi joskus kysyä, voisinko tehdä hänelle botin, kun hän halusi johonkin tapahtumaan”, hän sanoo ja naurahtaa.
Virkkala kaipailee Kide.appille kilpailijaa, joka satsaisi enemmän turvallisuuteen ja käytettävyyteen. Hän uskoo, että kilpailu koituisi opiskelijoiden voitoksi.
”Minulle on sanottu, että jos ongelma on Kide.appissa, miksen sitten tekisi parempaa. Kyllä sitä tosissani mietin jonkin aikaa. Miksikäs ei. On se idea minulla vieläkin ylhäällä.”
SATTUMA VEISI BOTEILTA POHJAN
Botteja voisi torjua melko vähäisellä vaivalla. Yksi helppo ja edullinen ratkaisu on niin sanottu CAPTCHA-testi. Siinä käyttäjä saa eteensä esimerkiksi vääristynyttä tekstiä sisältävän kuvan, jota hänen täytyy pystyä lukemaan. Ainakin toistaiseksi ne toimivat botteja vastaan kohtalaisen hyvin.
”Tämä on kuitenkin melko turhauttava harjoitus ihmiskäyttäjälle”, Sand sanoo.
Jos botit kehittyvät eteviksi ratkomaan CAPTCHA-testejä, voisi ostotapahtumaan lisätä esimerkiksi tekstiviestivarmistuksen.
”Tätä kilpajuoksua voidaan jatkaa vaikka kuinka pitkälle käyttäjäkokemusta nakertaen.”
Yksi vaihtoehto olisi muuttaa lippukaupan koodia esimerkiksi hieman ennen suositun tapahtuman lipunmyynnin alkua. Se on kuitenkin riskialtista. Botit lakkaisivat toimimasta kriittisellä hetkellä, mutta samoin voi käydä koko lippukaupalle.
Sand alkaa pohdiskella radikaalimpia vaihtoehtoja.
”Voisimmeko tasapäistää tilannetta ihmiskäyttäjien ja bottien välillä lisäämällä sattumaa niin, että onnekkaampi pärjää paremmin?”
Sand mainitsee esimerkkinä lippukaupan, joka asettaisi jokaiselle ostajalle satunnaisia aikaviiveitä. Äärimmäinen vaihtoehto olisi arpoa kaikki lipunsaajat.
Tällaiset ratkaisut tekisivät nopeuteen perustavat botit tarpeettomiksi ja asettaisivat ostajat samalle viivalle.
Lippukaupoilla on kuitenkin isompiakin huolenaiheita kuin bottien käyttö, erityisesti palvelinten kuormitus ja tietoturva.
”On hyvä miettiä sitä, kannattaako tällaisia verkkokauppoja ylipäätään koodata itse. Voi olla järkevämpää käyttää kaupallista alustaa, jonka tekijällä on ollut paljon enemmän resursseja varautua näihin asioihin”, Sand sanoo.