Så du vil være hacker?

I den seneste tid har jeg læst et væld af spørgsmål, indlæg og generelle diskussioner om at komme ind i “informationssikkerhedsspillet”, og efter min mening er det i hvert fald typisk fulgt op af en rimelig mængde misvisende oplysninger. Det er måske lidt hårdt i betragtning af, at jeg er sikker på, at det er godt ment, det er også endda muligt, at rådene har virket for dem (der er ingen one size fits all råd), men jeg tænkte, at jeg ville lægge mine tanker ud her i håb om at hjælpe en ny spirende hacker fremad.

Jeg vil gerne dyrke sport, hvor skal jeg starte?
Dette vage, åbne og meget tvetydige spørgsmål minder meget om nogen, der spørger, hvordan de skal gå til at komme ind i informationssikkerhed. Det første, man skal indse, er, at der er et enormt udvalg af informationssikkerhedsområder, og inden for hvert af disse enorme områder er der et livslangt indhold af læringsindhold. Ligesom når man vælger en sport, er der ikke noget “bedst”, det er blot nogle gange et område, som man kan lide mere end andre. Her er nogle eksempler på områder, der på ingen måde er udtømmende.

  • Webapplikationssikkerhed
  • Reverse Engineering
  • Malware Reverse Engineering
  • Netværkssikkerhed
  • Incident Response
  • Normernes overholdelse
  • Normernes overholdelse
  • Programmering/fremstilling af værktøjer til andre
  • Udviklingsudvikling
  • Forensics
  • Nogle af disse er mere af teknisk karakter, mens andre har et mere teoretisk fokus. Jeg garanterer, at uanset hvad du kan lide, er der andre derude, der vil finde det kedeligt, ligesom du vil med det, som andre er interesseret i nogle gange. Lige nu er det forventet, at hvis du læser dette, ved du måske meget lidt om nogen af disse områder, men det vigtige er din vilje til at lære og hvilken type motivation du har.

    The Hacking Type
    Et kendetegn, der er næsten universelt for folk på alle disse områder, er deres fokus på uafhængig, selvstyret læring. Desværre betragtes sikkerhed på nogle måder stadig som en “mørk kunst”, jeg mener, hvorfor skulle nogen ønske at vide, hvordan man bryder ind i et computersystem, medmindre de havde til hensigt at gøre det? Som følge heraf vil mange mennesker udvise foragt til direkte fjendtlighed, når de spørger om sikkerhedsrelaterede spørgsmål under den falske (måske nogle gange sande) antagelse, at det blot er en “script kiddie”, der ønsker at lære at hacke systemer i stedet for at ville lære og bruge denne viden til et godt formål. Det er også en kendsgerning, at “læringsressourcerne” inden for informationssikkerhed er ret usammenhængende og ikke har noget egentligt centralt lager af læringsmateriale.

    Pointen med at fremhæve dette er, at hvis du ønsker at trives og komme ind på informationssikkerhedsområdet med succes, bør du være parat til at springe ud i det og finde din vej uden at vente på, at nogen holder dig i hånden og fører dig ind på den rigtige vej. Google nogle af de ovennævnte termer og se, hvad der lyder sjovt. På trods af det, der nogle gange virker som en konstant kamp for at finde det “bedste” område at lære, eller den “bedste” ressource eller den “bedste” måde at lære på, bruges der ofte mere tid på at udskyde disse spørgsmål end på at bruge tid på faktisk at lære. Se videoer på youtube for at få eksempler på hacking – det er ok, hvis du ikke ved, hvad meget af det betyder, men skriv en liste ned og google derefter disse udtryk. Brug interessepunkter til at spawne ud med et stadigt voksende net af viden omkring emner, du er interesseret i.

    Har jeg brug for at lære X først?
    Selvfølgelig skal du have et fuldt kendskab til OSI-laget, før du går i gang. Ja, du skal læse den 1000 sider lange bog om TCP-protokollen. Ja, du skal beherske 5 programmeringssprog (mindst!), før du overvejer at hacke. Kan du kompilere din egen Linux-kernel fra kildekoden? Nej? Så skal du ikke gøre dig den ulejlighed at lære at hacke. Faktisk…. alt dette er noget vrøvl, men det er alligevel et af de mest almindelige svar, der gives til folk, der ønsker at lære informationssikkerhed. Der er ét krav for at blive en god hacker – interesse. Forskellen mellem en fremtidig hacker og en script kiddie er ikke viden, det er viljen til at lære.

    Så længe du har en vag idé om, hvordan man bruger en computer, er du på et udgangspunkt, som du kan arbejde med. Ja hvis du ikke har en solid forståelse af hvordan TCP virker bør du have det på din to-do liste til at slå op når nogen snakker om det i en hacking tutorial – men det er latterligt at tro at du skal have et ton af forudsætningsviden før du har lov til at begynde at lære om emner du er interesseret i. Når du slår op, hvordan det login-puslespil fungerer på et hacking-site, og det bruger JavaScript, skal du lære, hvordan JavaScript fungerer. Når du læser igennem, hvordan et bufferoverløb fungerer, og det har en Python-skabelon, lærer du nogle grundlæggende ting om Python. Nej, du vil ikke få et job som udvikler i disse sprog ved afslutningen af det, men du vil lære de almindelige måder at bryde sproget på.

    Informel læring
    “Ok, jeg har forstået hintet – jeg skal lære tingene selv, men kan du i det mindste give mig et udgangspunkt?”

    Sikkert, der er et væld af gode gratis eller billige ressourcer derude til at komme i gang, afhængigt af hvilket emne der appellerer til dig. Her er nogle eksempler.

    Web Application Security

  • HackThisSite – Godt til nogle grundlæggende webbaserede udfordringer (link)
  • Enigma Group – Svarer til Hack this site (link)
  • OWASP Top 10 – Idé om, hvad der er de mest almindelige sårbarheder (link)
  • OWASP Broken Wep Apps – En virtuel computer du kan indlæse for at øve dig i hackerfærdigheder på dit netværk (link)
  • Pentesting Lab – En anden virtuel maskine med fokus på web (link)
  • Faktisk er alt fra vulnhub, der interesserer dig, godt (link)
  • The Web Application Hackers Handbook – Bogen om web hacking og sårbarheder (link)
  • Reverse Engineering / Malware Reversing

  • Lena’s Tutorials – Kendt som stort set en af de bedste introduktioner til reverse engineering (link)
  • The Legends of Random – Igen et andet solidt sæt tutorials til reverse engineering (link)
  • Reversing: Secrets of Reverse Engineering – En god bog om grundlaget for reverse engineering (link)
  • Practical Malware Analysis – En god bog med fokus på reverse engineering af malware (link)
  • Malware Analysts Cookbook – Endnu en bog med fokus på reverse engineering af malware (link)
  • Network Security

  • Virtual Machines dominerer denne kategori, da de giver dig mulighed for at øve dig mod rigtige maskiner. Gå til vulnhub og download enhver VM, der ser interessant ud (link)
  • Metasploit Unleashed – En solid gennemgang af metasploit-testrammen, der skal bruges i forbindelse med VM’er. (link)
  • The Basics of Hacking and Penetration Testing – En meget grundlæggende gennemgang af penetration testing, der er nyttig for dem, der er helt nye på området. (link)
  • Metasploit – The Penetration Testers Guide – Endnu en bog der fokuserer omkring brugen af metasploit i penetration testing (link)
  • Da dette er et så stort område er det ofte at bryde det ned i et aspekt, og derefter undersøge dette aspekt specifikt. Blogs er din bedste ven her. (link)
  • Exploit Development

  • Corelan – Dette er langt den bedste ressource derude til at lære om udvikling af exploits. (link)
  • FuzzySecurity – En anden god læringsressource med en del tutorials til rådighed (link)
  • Exploit-DB – En af de bedste ting du kan gøre er at finde eksempler på exploits (ofte med apps tilknyttet) og forsøge at replikere exploit’en uafhængigt (link)
  • Hacking – The Art of Exploitation – En fantastisk bog, der dækker tonsvis af forskellige exploitation-teknikker (link)
  • The Shellcoders Handbook – Endnu en fantastisk bog om udvikling af exploits og shellcoding (link)
  • Andre ting end det, Google, Google, og lidt mere Google. Jeg har udeladt nogle områder som forensics og compliance, fordi jeg personligt ikke er interesseret i dem, så jeg har ikke gået på udkig efter ressourcer, jeg er sikker på, at der er nogle fantastiske derude.

    Formel læring
    Ude for de gratis ressourcer kan du også begynde at få certifikater for at gøre dig selv mere attraktiv for arbejdsgivere, hvis du ønsker at gå over til området som mere af en karrierevej. Nogle certificeringer, som jeg varmt vil anbefale, ville være “Penetration Testing with Kali Linux” kurset fra Offensive Security (link), hvis du er interesseret i netværkssikkerhed. Det er nemt en af de bedste læringsoplevelser, jeg nogensinde har haft inden for området, og det lærte mig mere på 60 dage, end jeg havde lært på et år på egen hånd. Deres “Cracking the Perimeter” er også et godt kursus, der fokuserer lidt mere på udvikling af exploits (link).

    Hvis du ønsker at udvikle dine programmeringsfærdigheder, er ting som SecurityTube’s “Python for Pentesters and Hackers” (link) et godt grundlag, der vil lære dig at gøre masser af smarte ting som at bygge dine egne portscannere, password crackers osv. Jeg lægger ikke en stor værdi i deres certificering, som de tilbyder fra et ansættelsesperspektiv, men jeg ville se det mere som en konsolideret klump af viden og eksempler til salg, som stadig kan være værdifuld.

    Det “Certified Ethical Hacker” kursus er et andet ofte nævnt. Ærligt talt er det typisk set ned på, så jeg synes ikke nødvendigvis det er pengene værd – men hvis du har brug for et formelt kursus for at lære ting, så er det måske pengene værd for dig. En masse af disse certificeringer og deres værdi diskuteres ovre på TheEthicalHacker.net’s fora, som ligger her.

    “Just seeing if you can”
    Hacking handler om at få adgang til ting, som det ikke er meningen, at vi skal have adgang til. Oprettelse af en exploit, finde en SQL-injektion, Password Cracking det er alt sammen designet til at sætte os mod målet om at tage kontrol over den boks, vi angriber. Jeg garanterer, at næsten alle nye hackere er begyndt at drømme om at “bare se om de kan” få adgang til den skolewebside. “Bare se om de kan” få adgang til naboens WiFi-netværk. At sende deres ven en trojansk virus “bare for at se om de kan” tage kontrollen. Endnu værre er det, at du måske ender med at besøge steder som HackForums.net og se en masse mennesker, der forsøger at inficere andre med RAT’er, opbygge botnet osv. under indtryk af, at dette er hacking, eller desværre, at dette er den eneste måde, du kan lære det på.

    Jeg er nødt til at understrege, at dette ikke er tilfældet. Enhver form for øvelser af typen “bare se om du kan” kan replikeres ved hjælp af virtuelle maskiner, dine egne routere eller endda capture the flag / wargame-konkurrencer derude. For at være realistisk, selv hvis du kan få adgang til en anden persons maskine, hvad vil du så gøre med den? Har du virkelig tænkt dig at forsøge at stjæle kreditkortoplysninger og foretage svigagtige transaktioner? Vil du virkelig stjæle adgangskoder og være paranoid over, at din aktivitet vil blive sporet tilbage til dig, blot for at kunne kigge på nogens e-mails? Der har været masser af eksempler på, at nybegyndere er blevet sigtet, fordi de ikke er klar over alvoren af de forbrydelser, de begår. Hvis du søgte et job hos FBI, og de havde et kig på din post-historik, ville du så gerne have, at de læste det indlæg, hvor du spurgte, hvordan man hoster et botnet? Det er et klassisk eksempel på, at det, der er på internettet, er for evigt, og hvis du virkelig ønsker en karriere inden for informationssikkerhed, har du brug for en ren straffeattest for at opnå de sikkerhedsgodkendelser, du skal bruge for at udføre dit arbejde. At blive taget for dumme ting er bare ikke det værd.

    Summarum
    Så efter en lang ramble, hvad er de vigtigste punkter?

  • En hacker vil aktivt søge efter information, ikke vente på at andre giver den til ham
  • Forskellen mellem en script kiddie og en ny hacker er ønsket om at lære
  • Du skal eksperimentere med en bred vifte af informationssikkerhedsområder for at finde det, der interesserer dig
  • Lad ikke nogen fortælle dig, at der er forudsætninger for at lære informationssikkerhed, det er der ikke.
  • Det er ikke værd at “bare se om du kan” gøre noget, der ikke er lovligt, risikoen i forhold til belønningen giver ingen mening for at gøre det
  • Med kurser, wargames, capture the flags og endnu vigtigere virtuelle maskiner er der intet hacker-scenarie, der ikke kan replikeres lovligt
  • Have fun, undskyld hvis det blev prædikende mod slutningen og nyd pwning kasser! Informationssikkerhed er et fantastisk område, og du vil lære noget nyt hver dag, du er involveret i det. Der er ikke noget rigtigt svar for at komme ind på området, bortset fra at springe ud i det med begge ben. Bliv våd, lær at træde i vandet og hold dig flydende, en dag vil du måske endda kunne svømme lidt!

    Skriv et svar

    Din e-mailadresse vil ikke blive publiceret.