Skip to content

CyberChef

Í verkefnum þessa kafla ætlum við að notast við tól sem kallast CyberChef. CyberChef er mjög gagnlegt tól þegar kemur að meðhöndlun, umbreytingu (e. transformation) og vinnslu gagna. Tólið virkar þannig að það tekur við inntaki (e. input), beitir þeim aðgerðum á inntakið sem við skilgreinum og sýnir okkur úttakið (e. output). Þær aðgerðir (e. operations) sem beitt er á gögnin kallar CyberChef uppskrift (e. recipe).

CyberChef býður upp á mikinn fjölda ólíkra aðgerða sem hægt er að beita á gögn, svo sem kóðun (e. encoding), dulkóðun (e. encryption), dulráðningu (e. decryption) og þáttun (e. parsing), svo dæmi séu nefnd. Við fyrstu sýn kann þetta að hljóma yfirþyrmandi, en við tæklum þetta bara hægt og rólega.

Vissir þú?

CyberChef er þróað sem opinn hugbúnaður af bresku leyniþjónustunni GCHQ (Government Communications Headquarters), sömu stofnun og stærðfræðingurinn Alan Turing starfaði fyrir í seinni heimsstyrjöldinni þegar hann aðstoðaði við að brjóta dulkóðun Enigma-véla Þjóðverja.

Verkefni

Ímyndum okkur að við séum með eftirfarandi texta og viljum sækja öll netföng sem koma fyrir í honum. Við viljum að hvert netfang komi aðeins fyrir einu sinni í úttakinu og að þau séu í stafrófsröð.

1. Almennar fyrirspurnir: aron@example.is, Birna.Jonsdottir@fyrirtaeki.local, hradhjalp@demo-ctf.is
2. Sala og nýskráningar: dagur@demo-ctf.is; ARON@example.is; elin@test.lab
3. Kerfisstjórn og rekstur: frida.kerfisstjori@fyrirtaeki.local | gunnar@demo-ctf.is | birna.jonsdottir@fyrirtaeki.local
4. Þjónustuborð og úrræði: halla@test.lab, thjonustubord@fyrirtaeki.local, sala@example.is
5. Svæðisteymi og tengiliðir: hradhjalp@demo-ctf.is, Ingrid@Example.is, jonas@demo-ctf.is
6. Eldri skráningarfærslur: katrin@test.lab / magni@fyrirtaeki.local / aron@example.is
7. Ytri samstarfsaðilar: olafur@demo-ctf.is, perla@test.lab, Hradhjalp@Demo-CTF.is
8. Vaktlisti rekstrar: ragnar@fyrirtaeki.local, sigga@example.is, tumi@test.lab, BIRNA.JONSDOTTIR@FYRIRTAEKI.LOCAL
9. Kynningarmál og samskipti: unnur@demo-ctf.is; vildis@example.is; ingrid@example.is
10. Ýmsar eldri færslur: magni@fyrirtaeki.local, SALA@example.is, admin@demo-ctf.is

Í CyberChef höfum við aðgerð sem kallast Extract email addresses sem er einmitt til þess ætluð að finna öll netföng í texta. Úttakið úr aðgerðinni er listinn af netföngunum sem fundust, eitt í hverri línu.

Skref 1

Til að beita aðgerðinni, leitið undir Operationsextract email addresses. Þegar leitin hefur skilað ykkur aðgerðinni þá notið þið músina til að draga hana yfir í Recipe dálkinn. Setjið svo textann inn í Input og þá ættuð þið að sjá aðgerðinni beitt á textann í Output.

Skoða í CyberChef

Núna höfum við náð að sækja öll netföng úr textanum, en þau eru ekki í stafrófsröð og sum koma oftar fyrir en einu sinni. Í aðgerðinni Extract email addresses er hægt að haka við Sort, sem sér til þess að úttakið sé í stafrófsröð og Unique sem sér til þess að hvert netfang birtist bara einu sinni.

Skref 2: Stillingar

Sort og Unique eru dæmi um stillingar á aðgerð sem breyta hegðun hennar á einhvern hátt. Flestar aðgerðir í CyberChef bjóða upp á einhvers konar stillingar.

Skoða í CyberChef

Þegar betur er að gáð, þá sjáum við að þrátt fyrir þessar stillingar þá birtast sum netföng oftar en einu sinni. Við sjáum, til dæmis, að aron@example.is og ARON@example.is eru bæði í úttakinu. Til að losna við það, þá getum við notað aðgerð sem kallast To Lower case. Sú aðgerð tekur texta og breytir öllum hástöfum í lágstafi. Við bætum þessari aðgerð í uppskriftina, á eftir Extract email addresses og sjáum þá að úttakið breytist.

Skref 3: Aðgerðum skeytt saman

Mikilvægt er að hafa í huga að í uppskriftum sem innihalda fleiri en eina aðgerð, þá er aðgerðunum beitt í þeirri röð sem við ákvörðum. Fyrst er inntakið sent inn í fyrstu aðgerð. Úttakið úr þeirri aðgerð verður svo inntakið í næstu aðgerð, og svo koll af kolli. Úttakið sem við sjáum í lokin er úttakið úr síðustu aðgerðinni.

Skoða í CyberChef

Núna sjáum við að öll netföngin innihalda eingöngu lágstafi, en enn eru tvítekningar í listanum. Við getum þá bætt við aðgerðinni Unique sem tekur við texta og fjarlægir endurteknar línur (miðað við að Delimiter sé stillt á Line feed). Við höfum þá náð settu markmiði að finna öll netföng í textanum í stafrófsröð án endurtekninga.

Skoða lokalausn

Röð aðgerða

Mikilvægt er að hafa í huga að röð aðgerðanna skiptir öllu máli. Tökum sem dæmi að við færum Unique aðgerðina fremst í aðgerðalistann. Inntakið í aðgerðina verður þá upprunalegi textinn sem inniheldur 10 línur, en þær eru allar ólíkar. Aðgerðin mun þannig ekki hafa nein áhrif á upprunalega inntakið og skila því þannig óbreytt í næstu aðgerð.

Frekari aðgerðir: Pásur í flæði

Hægt er að merkja aðgerðir þannig að þeim sé sleppt með því að smella á „bannmerkið“ (Disable operation), og þá er hoppað yfir þá aðgerð og þeirri næstu í listanum beitt í staðinn. Einnig er hægt að stoppa flæðið og skoða hvernig úttakið lítur út á ákveðnum tímapunkti í aðgerðaflæðinu með því að smella á pásu (Set breakpoint). Flæðið stoppar þá áður en að þeirri aðgerð kemur. Til að sjá hvort Unique aðgerðin hafi nokkur áhrif ef hún er fremst getum við sett pásu á Extract email addresses.

Pása í aðgerðaflæði

Í sumum tilfellum vill þannig til að röðin skiptir ekki máli. Ef við tökum upprunalegu lausnina okkar, þá skiptir það ekki máli upp á lokaútkomuna þótt við færum To Lower case fremst í aðgerðaröðina. Ekki nóg með það, heldur getum við nýtt okkur þá endurröðun til að finna nýja lausn. Munum að Extract email addresses aðgerðin var með Unique og Sort stillingar, en af því sum netföng innihéldu hástafi, þá hafði það ekki æskileg áhrif. En með því að beita To Lower case aðgerðinni fyrst, þá göngum við úr skugga um að öll netföng innihaldi eingöngu lágstafi, og þá getum við nýtt okkur þessar stillingar. Unique aðgerðin verður þá óþörf og við getum fjarlægt hana úr aðgerðaröðinni.

Sjá aðra lausn