Hjem Personlig finansiering C ++ Programmering: 10 Anti-Hacker Tips - dummies

C ++ Programmering: 10 Anti-Hacker Tips - dummies

Innholdsfortegnelse:

Video: simple Keylogger Virus with Hidden Window and Log C++ Tutorial Visual Studio 2025

Video: simple Keylogger Virus with Hidden Window and Log C++ Tutorial Visual Studio 2025
Anonim

Som en C ++-programmerer må du lære de tingene du bør gjøre i C ++-koden din for å unngå å skrive programmer som er utsatt for hackere. Det beskrives også funksjoner som du kan aktivere hvis operativsystemet støtter dem, for eksempel adresseplasslayout-randomisering (ASLR) og databehandlingsforebygging (DEP).

Ikke ta forutsetninger om brukerinngang

Programmerens tunnelvisjon er ok i den tidlige utviklingsfasen. På et tidspunkt må programmereren (eller enda bedre en annen programmerer som ikke har noe med å utvikle koden) imidlertid lene seg tilbake og glemme det umiddelbare problemet. Hun må spørre seg selv: "Hvordan reagerer dette programmet på ulovlig innsats? “

Her er noen av reglene for kontroll av inngang:

  • Gjør ingen antagelser om lengden på inngangen.

  • Ikke godtar mer innspilling enn du har plass til i buffelene med fast lengde (eller brukt buffere med variabel størrelse).

  • Kontroller rekkevidden av hver tallverdi for å sikre at det er fornuftig.

  • Se etter og filtrer ut spesialtegn som kan brukes av en hacker for å injisere kode.

  • Ikke overfør råinngang til en annen tjeneste, for eksempel en databaseserver.

Og utfør alle de samme kontrollene på verdiene som returneres fra eksterne tjenester. Hackeren kan ikke være på inngangssiden, han kan være på responssiden.

Håndter misbruk Grasiøst

Ditt program skal svare rimelig til feil som oppstår i programmet. For eksempel, hvis samtalen til en biblioteksfunksjon returnerer en nullptr, , bør programmet oppdage dette og gjøre noe rimelig.

Rimelig her skal forstås ganske liberalt. Programmet trenger ikke å snuse rundt for å finne ut nøyaktig hvorfor funksjonen ikke returnerte en rimelig adresse. Det kan være at forespørselen var for mye for mye minne på grunn av urimelig inngang. Eller det kan være at konstruktøren oppdaget noen form for ulovlig inngang.

Det spiller ingen rolle. Poenget er at programmet skal gjenopprette sin tilstand så godt det kan og sette opp for neste bit av inngang uten å krasje eller ødelegge eksisterende datastrukturer som heien.

Opprettholde en programlogg

Opprett og vedlikehold loggbok som gjør at noen kan rekonstruere hva som skjedde i tilfelle en sikkerhetsfeil. (Egentlig, dette er like sant i tilfelle noen type feil.) For eksempel vil du sannsynligvis logge hver gang noen logger inn eller ut av systemet.

Du vil definitivt vite hvem som var logget inn i systemet ditt da det oppstod en sikkerhetshendelse - dette er gruppen som har størst risiko for tap av sikkerhet og som er mest mistenkelige når man søker etter skyldige.I tillegg vil du logge på eventuelle systemfeil som vil inkludere de fleste unntak.

Et produksjonsprogram i virkeligheten inneholder et stort antall samtaler som ser ut som følgende:

logg (DEBUG, "Bruker% s inntatt juridisk passord", sUser);

Dette er bare et eksempel. Hvert program trenger litt loggfunksjon. Hvorvidt det faktisk kalles logg () er uansett.

Følg en god utviklingsprosess

Hvert program bør følge en godt gjennomtenkt, formell utviklingsprosess. Denne prosessen skal inneholde minst følgende trinn:

  • Samle og dokument krav, inkludert sikkerhetskrav.

  • Gjennomgå design.

  • Overholde en kodingsstandard.

  • Undergå enhetstest.

  • Utfør formelle aksepttester som er basert på de opprinnelige kravene.

I tillegg bør peer-vurderinger gjennomføres på sentrale punkter for å verifisere at kravene, design, kode og testprosedyrer er høye kvalitet og oppfyller bedriftsstandarder.

Implementér god versjonskontroll

Versjonskontroll er en merkelig ting. Det er naturlig å ikke bekymre deg for versjon 1. 1 når du er under pistolen for å få versjon 1. 0 ut døren og inn i de venterne brukerens utstrakte hender. Versjonskontroll er imidlertid et viktig tema som må tas opp tidlig fordi det må bygges inn i programmets innledende design og ikke boltes på senere.

Et nesten trivielt aspekt av versjonskontroll er å vite hvilken versjon av programmet en bruker bruker. Når en bruker ringer opp og sier, "Det gjør dette når jeg klikker på det," trenger help desk virkelig å vite hvilken versjon av programmet brukeren bruker. Han kunne beskrive et problem i sin versjon som allerede er løst i den nåværende versjonen.

Godkjenne brukere sikkert

Brukerautentisering bør være enkel: Brukeren oppgir et kontonavn og et passord, og programmet ser kontonavnet opp i et bord og sammenligner passordene. Hvis passordene samsvarer, er brukeren autentisert. Men når det gjelder antihacking, er ingenting så enkelt.

Først må du aldri lagre passordene selv i databasen. Dette kalles lagring av dem i klare og regnes som veldig dårlig form. Det er altfor lett for en hacker å få hendene på passordfilen. I stedet lagre en sikker omforming av passordet.

Administrer eksterne økter

Du kan gjøre visse forutsetninger når hele søknaden din kjører på en enkelt datamaskin. For en ting, når brukeren har autentisert seg, trenger du ikke å bekymre deg for at han blir forvandlet til en annen person. Programmer som kommuniserer med en ekstern server kan ikke gjøre denne antagelsen - en hacker som lytter på linjen kan vente til brukeren autentiserer seg selv og deretter kaprer økten.

Hva kan den sikkerhetsinnstilte programmøren gjøre for å unngå denne situasjonen? Du vil ikke gjenta brukeren om gjentatte ganger for å forsikre deg om at forbindelsen ikke har blitt kapret. Den alternative løsningen er å etablere og administrere en økt. Du gjør dette ved å ha serveren sende fjernprogrammet en øktkake når brukeren har godkjent seg selv.

Forfalsk koden din

Code obfuscation er en handling som gjør at kjørbarheten er like vanskelig for en hacker å forstå som mulig.

Logikken er enkel. Jo lettere det er for en hacker å forstå hvordan koden din fungerer, desto lettere blir det for hackeren å finne ut av sårbarheter.

Enkelt enkleste trinnet du kan ta, er å sørge for at du bare distribuerer en versjon av programmet som ikke inneholder feilsøkingsinformasjon. Når du først oppretter prosjektfilen, må du sørge for at både Debug og Release versjon skal opprettes.

Aldri, noensinne, distribuere versjoner av søknaden din med symbolinformasjon inkludert.

Skriv koden din med et digitalt sertifikat

Kodesigneringsarbeid ved å generere en sikker hash for den kjørbare koden og kombinere den med et sertifikat utstedt av en gyldig sertifikatmyndighet. Prosessen virker slik: Selskapet som oppretter programmet må først registrere seg hos en av sertifikatmyndighetene.

Når sertifikatmyndigheten er overbevist om at Mitt firma er en gyldig programvare-enhet, utsteder det et sertifikat. Dette er et langt nummer som alle kan bruke til å verifisere at innehaveren av dette sertifikatet er det berømte Mitt firma i San Antonio.

Bruk sikker kryptering når det er nødvendig

Som enhver god advarsel, har denne formaningen flere deler. Først, "Bruk kryptering når det er nødvendig. "Dette har en tendens til å huske tanker om å kommunisere bankkontoinformasjon over Internett, men du bør tenke mer generelt enn det.

Data som blir kommunisert, enten over Internett eller over noe mindre område, er kjent generelt som Data in Motion. Data i bevegelse bør krypteres, med mindre det ikke er til nytte for en hacker.

Data lagret på disken er kjent som Data i hvilemodus. Disse dataene skal også krypteres hvis det er en sjanse for at disken blir tapt, stjålet eller kopiert. Bedrifter rutinemessig krypter harddiskene på deres bærbare datamaskiner hvis en bærbar PC blir stjålet på sikkerhetsskanneren på flyplassen eller forlatt i en taxi et sted.

Små bærbare lagringsenheter som tommelstasjoner er spesielt utsatt for å gå tapt - data på disse enhetene skal krypteres.

C ++ Programmering: 10 Anti-Hacker Tips - dummies

Redaktørens valg

Hvordan lage Baseball Practice Fun - Dummies

Hvordan lage Baseball Practice Fun - Dummies

Som baseball trener må du ikke bare lære laget ditt grunnleggende i spillet, må du lære disse grunnleggende morsomme, slik at spillerne blir interessert og engasjert. Bruk tipsene i følgende liste for å gjøre baseballøvelsen morsom: Sørg for mange repetisjoner for hvert barn. Stopp treningen kort ...

Basisspillers ansvar i Baseball - dummies

Basisspillers ansvar i Baseball - dummies

Baseball trener er ikke bare ansvarlige for lagspillet som en hel, men for coaching spillere når de når første og tredje base i løpet av et baseballspill. Ansvaret for å coaching hver base er forskjellig. Hva en første basissjåfør gjør: Oppfordrer smeten til å kaste ned første baseline på infield hits. ...

Hvordan fantasy baseball ligaene blir scoret - dummies

Hvordan fantasy baseball ligaene blir scoret - dummies

Fantasy baseball har tre hovedspillformater som bestemmer hvordan ligaen din score punkter. Spillformatene for fantasybaseball er Rotisserie, Head-to-Head One Win og Point System. Hvert format blir scoret avhengig av ligaoppsettet. For eksempel vil 5 × 5 liga score poeng eller gevinster / tap på fem forhåndsvalgte treffstatistikk, samt fem ...

Redaktørens valg

Praktiserer dag til dag, uformell oppmerksomhet - dummies

Praktiserer dag til dag, uformell oppmerksomhet - dummies

Kan trene det når som helst. Uformell oppmerksomhet meditasjon er når du trener oppmerksomhet uten å skille ut en spesiell tid for det. Her er ti eksempler på uformell oppmerksomhet: Mindful kommunikasjon - Når du snakker eller hører på noen andre, blir du klar over lyden av ...

Forbli lekfull og lyshjerte når du praktiserer Mindfulness - dummies

Forbli lekfull og lyshjerte når du praktiserer Mindfulness - dummies

En nydelig holdning til å ha oppmerksomhet og Livet generelt er lekenhet og lethed. Hvis en meditasjon ikke virker for deg første gang eller ikke føles riktig for deg, ikke vær panikk, men tenk på opplevelsen som et eksperiment som du kan prøve igjen senere. Tilnærming oppmerksomhet som du ville et nytt spill eller ...

Redaktørens valg

Valg av resolusjonsstørrelse på et Canon EOS Rebel T3-serie kamera - dummies

Valg av resolusjonsstørrelse på et Canon EOS Rebel T3-serie kamera - dummies

For å bestemme seg for en Kvalitetsinnstilling (eller bildeoppløsningstørrelse) for Canon Rebel T3 eller T3i, den første avgjørelsen du må gjøre er hvor mange piksler du vil at bildet skal inneholde. Piksler er de små firkantede fliser hvorfra alle digitale bilder er laget; piksel er kort for bildeelement. Hvis din ...

Hvordan du lager videobilder på Rebel T7i / 800D - dummies

Hvordan du lager videobilder på Rebel T7i / 800D - dummies

Videoopplastingsfunksjonen på Canon EOS Rebel T7i / 800D fanger korte videoklipp som er sydd i et enkelt opptak, kalt et videoalbum. Du kan stille klippelengden til 8, 4 eller 2 sekunder lang (men alle klippene i et album må ha samme lengde). Med tanke på individets korthet ...