Gå til innhold

Martin måtte jobbe på en maskin uten internett – bygget modem med HTML5


Anbefalte innlegg

Det var mye ignoranse i kommentarfeltet her.

 

Det er ingen bevis på at kunden er fakturert for dette, og at dette ikke er gjort som et hobbyprosjekt.

 

"Åh han har utsatt kunden for en sikkerhetsbrist blah blah". Han har utviklet en egen tolker av modulerte lydfrekvenser for å kunne copy-paste mellom maskiner i 20b/s. Det er ingen sikkerhetsrisiko. Det finnes ingen trojanere som infiltrerer selvskrevet kode (aka ikke allment utbredt) og stjeler konfidensiell informasjon gjennom copy-paste.

 

Når dere sier at han brutt sikkerheten avslører dere bare at dere ikke vet hva dere snakker om.

 

Hvis det er en maskin som inneholder sensitiv informasjon som IKKE skal ut på nett , kan man ved et uhell paste dette i denne appen, og vips så er sensitive data lekket.

  • Liker 4
Lenke til kommentar
Videoannonse
Annonse

Hvordan arbeidstiden utnyttes er ikke du istand til å bedømme. Dersom utvikleren mener at det vil være tidsbesparende å lage en mer effektiv kommunikasjonsmetode mellom de to datamaskinene, så ja - da vil kunden spare penger fordi de må betale for mindre arbeidstimer totalt. Utviklere er som oftest opptatt av én ting - og det er å gjøre minst mulig unødvendig arbeid - gjerne som alle andre håndverkere.

I den virkelige verden, så er ikke dette raskere på noen som helst måte, hverken å overføre data, eller å utvikle det.

Det finnes alltid tilkoblingsalternativer til en maskin, selv om den ikke er på internett, i dette tilfellet skriver jo Martin at minnepenn selvfølgelig ville være langt raskere.

 

Utviklere har en tendens til å la seg distrahere av morsomme, og ofte oppkonstruerte problemer, som vi bruker alt for mye tid på.

 

Enkelte ganger gjør vi det bevisst, rett og slett fordi det er morsomt, andre ganger gjør vi det ubevisst, og noen ganger roter vi oss helt bort, å ender opp med et X/Y problem i stedet.

 

Det han gjorde var det samme som å lage seg en robot som ville trykke enda raskere på tastaturet på datamaskinen, enn han selv var i stand til, men uten mulighet til å kjøre arbitrær kode utenfor tekst-feltet hvor teksten ble skrevet. Det er det hele. Gjennom lyd ble teksten gjenkjent og skrevet inn i et tekstfelt, men ikke på en slik måte at man kan hevde at 3-partskode på noe som helst sannsynlig måte kunne kompromittere systemet. Det er da mer sannsynlig at utvikleren selv var en spion med skumle hensikter.

 

Nei, her åpnes en trådløs tilgang til en maskin som lar deg kjøre kode på maskinen. Analogien med en robot er ikke en gang i nærheten?

 

Den "trådløse tilgangen" er riktignok en lydinngang, men den kunne like gjerne vært koblet til med en ledning, uten at det har noe betydning for sikkerheten.

 

Den binære koden som overføres mellom maskinene kjøres vel sannsynligvis i sandkassa på en nettleser, samt at overføringen er enormt treg, men det er like fullt en åpen port, som potensielt kan la deg kjøre kode på maskinen.

 

Jeg ser minst et par muligheter for XSS i koden til Martin, men på en maskin som ikke er koblet til noe nett så er det selvfølgelig ikke noe problem, og har man uansett fysisk tilgang til maskinen, så er alt tapt.

Endret av adeneo
  • Liker 3
Lenke til kommentar

 

 

Så denne PC var uten USB-kontakter eller RS-232?

 

Når man jobber på sikra nett får man vanligvis ikke lov til å plugge inn ukjente enheter.

 

Det står jo i artikkelen at overføring via USB gikk raskere, så han koblet nok til USB uansett.

 

Ellers tror jeg ikke det er akseptert å lage ett program som kobler enhetene sammen hvis du ikke får flytte data mellom dem med minnepenn uansett.

 

 

Hva med CD/DVD-plate, dersom maskinen er utrustet med det i utgangspunktet da vel og merke. Da kan man jo få skannet den for filer og foldere, uten å være så redd for at det sklir inn et infisert USB "firmware" virus (eller hva det nå kalles). Kabelen internt kan jo frakobles etterpå, slik at en ikke er så redd for at noen kjappt og enkelt bare nytter drevet. Men, ja det tar jo ikke lang tid å koble til igjen dersom maskinen lar seg enkelt åpne igjen (uten en form for låsbar kasse den sitter i.

 

Jeg kan forstå at noen svært få kan ha behov for en slik "paranoid" framgangsmåte for enkeltmaskiner.

 

 

Nå er hele denne artikkelen kun om et fiffig prosjekt, som det jo er, men det er helt usannsynlig at dette er brukenes til noe annet å demonstrere at det er mulig. Faktisk måtte jo Martin hatt tilgang til maskinen for å legge inn javascript koden, å kjøre det i enten en nettleser eller frittstående motor som støtter Audi API'en, slik at tilgang hadde han jo helt klart uansett.

 

Det er mye rart man ikke vet her som leser.

 

Dersom han ble beordret å kode noe i den PC-en, så måtte jo IT-konsulenten ha forholdt seg til det sett kodeverktøy som var preinstallert før jobben på den PC-en (dersom det i det hele tatt fantes noen). Han kunne jo umulig ha lagt til sine egne favorittverktøy en gang.

 

 

Men årsaken til at man bevisst kobler en pc fra internett(og holder den fra internett) kan jo og være for å unngå at data flyttes til og fra den. Noe som og forklarer dette med USB-minnepinner ikke var lov. Dermed har en omgått en sikkerhetsbarriere.

 

Men det blir naturligvis spekulasjoner. :)

Det hadde jo vært enklere å bare bedt om at så og så tekst skulle legges på den av administrator, dersom det fantes noen administrator på huset? Mangel av IT-kyndig på huset, eller en som kan tilkalles ville ha vært snodig, dersom de har gått for en så hard policy med ingen inn/ut data i utgangspunktet.

 

Men det hadde sikkert vært en tålmodighetsprøve, dersom det måtte gjøres noen ytterligere revisjoner, dersom dette ikke raskt lot seg taste inn med pølsefingrene.

Endret av G
Lenke til kommentar

Det er kanskje en grunn til at klienten hadde valgt å ha utviklermaskinen isolert fra nettverket? På meg virker handlingen til konsulenten som rent avtalebrudd som har potensiale til å føre til erstatningsansvar for selskapet konsulenten jobber for.

 

Så blir det jo også et spørsmål om alt dette skjedde på klientens regning? Det å bryte en avtale, og samtidig fakturere timeforbruket for avtalebruddet er rimelig drøyt. 

 

Her burde kanskje Visma kommet med en uttalelse og det samme burde klienten gjøre. Om ikke så blir det brått for enkelt å velge bort Visma neste gang. 

Endret av bojangles
  • Liker 2
Lenke til kommentar

Ofte jeg googler etter et problem og kopierer kodesnutter fra nett eller tidligere prosjekter jeg har hatt hvis det ikke eksisterer pakker. Er ikke umulig å skrive det av på nytt men det ville kanskje tatt lengre tid enn å lage en slik audio-copy-tool.

 

Vi utviklere lager jo ofte hjelpemidler (f.eks. biblioteker) for å gjøre utviklingen raskere neste gang, selv om det ikke hadde vært nødvendige i dette ene tilfellet. Akkurat slik denne utvikleren har gjort.

 

Han må riktignok være påpasselig hva slags informasjon han sender ut, da firmaet antageligvis har en policy på dette da de har nektet internett (er nok pga flere ting også, f.eks. virus)

  • Liker 1
Lenke til kommentar

For en fjott. Jeg jobber med samme begrensning, og jeg kaster ikke bort arbeidsgivers ressurser på å konstruere en slik løsning. Jeg løser det helt enkelt med mobil kamera og OCR skanning, så et kjapt søk. Kopierer ikke kode direkte fra nett siden det bryter med arbeidsgivers policy, men går gjennom den linje for linje og ser hvordan jeg kan tilpasse det til mitt behov. Har lagt meg merke i navnet på duden, samt Visma konsulting, så dukker de opp i nærheten av meg så blir det rett ut igjen.

  • Liker 2
Lenke til kommentar

Utviklere har en tendens til å la seg distrahere av morsomme, og ofte oppkonstruerte problemer, som vi bruker alt for mye tid på.

 

Digi-kommentarfeltet har en tendens til å la seg distrahere av morsomme, og ofte oppkonstruerte problemer, som vi bruker alt for mye tid på. :-)

  • Liker 5
Lenke til kommentar

Dataflyten ser ut til å gå en vei her. Fra internett maskin til ikke internett maskin og man har kontroll på datastrømmen.

 

Hva syter dere for? Først trekker dere en konklusjon basert på noe dere tror oppi hodet deres. Så blir det ett fakta i komentarfeltet. Så dømmer dere som om alt dere tror dere trodde dere visste var sant.

 

La folk ha det morro på jobb. Da kommer de kreative løsningene.

  • Liker 3
Lenke til kommentar

Dataflyten går begge veier.

Først fra maskin uten internett til maskin med internett for å kunne google feilkoden.

Så omvendt for å kopiere kodesnutt.

 

Nå er det vel ingen av oss som vet grunnen til at maskinen ikke er på internett, så å spekulere i det blir jo uansett... spekulasjoner.

Og det er begrenset hvor mye data man kan stjele eller plante (f.eks. et virus) med en slik løsning. Vi snakker ikke akkurat høyhastighet.

Når i tillegg utvikleren skryter av dette til digi.no vet man jo hvem som får skylden hvis det skulle være stjålet/plantet data.

  • Liker 1
Lenke til kommentar

Mange tullinger i kommentarfeltet her. Tror dere virkelig han satt på jobb ute hos kunde og fakturerte for dette? At dette brukes for å omgå sikkerheten til kunden? Tenk litt, da. Dette er en kul hack, gjort på fritiden som kompetansebygging. Dette er hva han selv har skrevet når jeg postet lenken til Hacker News:
 

After stumbling over a really cool Web Audio API synthesizer I wanted to play around with the API myself. I used my work situation for inspiration, but I just wanted a fun pet project and didn't really bother to deep dive into the theory of modems. Hence the naive implementation and lack of error correction.
So, do I actually use this at work? Truth be told, I've only ever used it to show of to my collegues. USB-drives are way more practical in every situation where I might want to use this. But the modem is able to provide the tool I set out to make: to copy ascii text between two computers!

Fra https://news.ycombinator.com/item?id=15471723
 
 

 

 


Hvis det er en maskin som inneholder sensitiv informasjon som IKKE skal ut på nett , kan man ved et uhell paste dette i denne appen, og vips så er sensitive data lekket.

 

Hvilken data har han da lekket? Lyden? Altså på samme måte som man lekker data ved å vise det på skjermen? Kanskje vi IT-konsulenter må jobbe uten skjerm fremover, for ikke å lekke data i lokalene vi sitter. :lol:

  • Liker 7
Lenke til kommentar

Hei!

 

Etter innspill fra engasjerte lesere her i kommentarfeltet sendte vi Martin en e-post og spurte om det var noe han ønsket å presisere om prosjektet utover beskrivelsen han sendte oss.

 

Martin svarte at det var morsomt at saken hadde fått så mye oppmerksomhet, og la til følgende:

 

"Det kan sikkert presiseres at dette kun er snakk om et hobbyprosjekt som er utviklet utelukkende på min egen fritid. Inspirasjonen til prosjektet er hentet fra arbeidshverdagen, og sluttproduktet har alltid vært ment som en morsom gimmick som selvfølgelig ikke er i bruk hos kunden!"

 

Artikkelen er nå oppdatert med hans presiseringer.

 

Vennlig hilsen fra Andrea Bruer

Journalist i digi.no

  • Liker 3
Lenke til kommentar

Dette var kjempe kult.. Men det er jo mange måter å utveksle data mellom to maskiner. For dem som har holdt på en stund vet jo sikkert hva mod filer er og dagens første lydkort ved hjelp av ad konvertere på seriel eller paralell porten.. Satt sammen av motstands nettverk... For å konvertere digitale signaler til tilnærmet lik sinus kurver..

det er mye å lære seg og sette seg inn i.. Ikke bare koding..

 

Keep on your good work ?

  • Liker 1
Lenke til kommentar

Jeg mistenker at noen har kommentert uten å ha lest artikkelen....

 

Jeg mistenker at noen ikke fikk med seg at presiseringen i artikkelen kom etter at det du siterte var postet.

 

At han var "inspirert av jobbsituasjonen" får vi vel godta selv om det virker mistenkelig med tanke på første uttalelse, vi som er visma kunder vet at eneste mulighet for at visma ikke har fakturert kunden for dette er om det ikke skjedde når han var hos kunden. Det mest stabile visma leverer til sine kunder er fakturaer :p

  • Liker 1
Lenke til kommentar

Jeg mistenker at noen ikke fikk med seg at presiseringen i artikkelen kom etter at det du siterte var postet.

 

At han var "inspirert av jobbsituasjonen" får vi vel godta selv om det virker mistenkelig med tanke på første uttalelse

 

Enig i den, det sto da vitterlig ganske klart i den første utgaven at dette var gjort på jobb, hos en kunde, hvor utvikleren hadde eget kontor, i arbeidstiden til Visma.

 

Det sto også at dette var i bruk hos kunde, å ble gjort for å kommunisere med en maskin hos kunden som ikke hadde nettilgang.

 

Det er jo greit å få en presisering, så slipper vi å spekulere, så da legger i det minste jeg ballen død, å gjentar det første jeg skrev; Fiifig prosjekt, å hatten av for kreativ bruk at Audio API'n, selv om det altså finnes en rekke slike løsninger allerede.

 

Mange tullinger i kommentarfeltet her. Tror dere virkelig han satt på jobb ute hos kunde

Vi trang ikke tro noe som helst, det var nettopp det som sto i artikkelen, for de som har lest den før den ble endret, og det var derfor det ble reagert på.

Endret av adeneo
Lenke til kommentar

Originalteksten:
 
 

 

 

Det er nesten så man ikke tror at det kan være sant, men det finnes faktisk datamaskiner som rent fysisk rett og slett ikke kan koples til internettet i det Herrens år 2017.

Dette er historen om en av disse kaldsvette-fremkallende maskinene.

Og det er historien om en mann som klarte å kave seg ut av marerittet – og det på et vis som uten tvil er en MacGyver-episode verdig.

Men all den tid vi i digi.no ikke sitter på rettigheter til MacGyver-franchisen (ennå!), er det minste vi kan gjøre å skjenke dette over gjennomsnittet kreative prosjektet en egen artikkel.

Har du eller noen du kjenner et prosjekt vi kan dele med leserne? Send det på e-post til [email protected] – gjerne med bilder eller skjermdumper. 

Web Audio-API til unnsetning

Vår helt heter Martin Kirkholt Melhus. Han jobber som utvikler for Visma Consulting i Oslo. 

– I forbindelse med et oppdrag hos en kunde, kunne ikke utviklermaskinen jeg fikk utdelt kobles til internett, forteller Martin.

– Jeg begynte jeg å se på muligheter til å omgå dette. Målet var å kunne kopiere tekst mellom denne maskinen og min laptop – som hadde internett.

Og slik fikk Martin ideen om å bygge intet mindre enn et godt gammeldags modem med HTML5 – nærmere bestemt HTML5 sitt Web Audio-API.

Martin har filmet løsningen i aksjon. Under videoen kan du lese hvordan Martin gikk frem for å få til dette:

 

 

Som utvikler hender det at koden man skriver ikke vil kompilere, og da kan det være greit å kopiere feilmeldingen inn i et Google-søkefelt.

Dette fører deg stort sett til et svar på Stack Overflow, hvor noen vennlige sjeler har lagt igjen en kodesnutt som løser problemet.

Denne kodesnutten kopieres deretter inn i kode-editoren, og man klapper seg selv på skulderen for å ha gjort en god jobb.

Internett er noe vi har lært oss å ta for gitt, men som utvikler i Visma Consulting har jeg opplevd at det slett ikke er noen selvfølge.

Hos en kunde fikk jeg utdelt en utviklermaskin uten internett.

Derfor måtte jeg gå alternative veier for å kunne kopierer tekst inn og ut av nettleseren.

Det viste seg at utviklermaskinen hadde en lett tilgjengelig inngang for hodetelefoner. Hos denne kunden hadde jeg også mitt eget kontor, slik at litt støy var uproblematisk.

Lyd avspilt fra utviklermaskinen kunne enkelt fanges opp av laptopen ved hjelp av kreativ posisjonering av hodetelefoner, så jeg valgte å bruke dette til min fordel og implementerte et modem i JavaScript.

Teorien var at ved å kopiere tekst inn i modemet på én maskin, kunne en annen maskin (med internett) lytte på lyden som ble generert, og oversette lydsignalet tilbake til tekst.

Dermed ville det gjøre meg i stand til å overføre tekst mellom datamaskinene ved hjelp av lyd, som igjen ville spare meg for manuell tasting.

 

 

 

 

Så uenig at disse tingene du lister opp stod "da vitterlig ganske klart". Man trenger ikke tolke alt i verste forstand :)

Lenke til kommentar

Okay, så han fikk utdelt en utviklermaskin uten tilgang til nett, i jobb hos Visma, ute hos en kunde, hvor han hadde eget kontor hvor han kunne teste dette.

 

Det han så gjorde, var å dra hjem, bruke sin egen tid på å finne på en løsning, for å så dra tilbake på jobb å teste denne løsningen på kontoret sitt.

 

Virker særdeles usannsynlig, men igjen, jeg forstår at dette fremsto litt uheldig for Martin, og at han ønsker å presisere at man ikke har tatt betalt for dette, og at han ikke har gjort det i jobbtiden.

 

Nå har ikke jeg tilgang til artikkelen slik den var før endringene, ikke gidder jeg bruke tid på å finne det heller, men i følge deg sto det altså :

 

Vår helt heter Martin Kirkholt Melhus. Han jobber som utvikler for Visma Consulting i Oslo. 

 
- I forbindelse med et oppdrag hos en kunde, kunne ikke utviklermaskinen jeg fikk utdelt kobles til internett, forteller Martin.
 
- Jeg begynte jeg å se på muligheter til å omgå dette. Målet var å kunne kopiere tekst mellom denne maskinen og min laptop – som hadde internett.
 
- Hos denne kunden hadde jeg også mitt eget kontor, slik at litt støy var uproblematisk.

 

 
Det kan vanskelig tolkes som noe annet enn at han gjorde dette på kontoret sitt, på jobb, hos kunde. 

 

Det er jo nettopp slik det er beskrevet, ellers ville det jo være mer naturlig å skrive det slik man nå har gjort i den redigerte utgaven, at det var et hobbyprosjekt han gjorde på fritiden, som ikke hadde noen praktiske jobbapplikasjoner, men kun var inspirert av en episode han hadde på jobb.

 

Når det spesifikt står at han jobber for Visma, påtraff problemet i jobb for Visma, ute hos kunde, løste problemet på sitt kontor hos kunden, i jobb hos Visma, så er det jo lite som tyder på at han har gjort dette som hobbyprosjekt på fritiden.

Endret av adeneo
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...