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

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

Indholdsfortegnelse:

Video: Python For Ethical Hacking - #1 - Introduction & Python Modules 2025

Video: Python For Ethical Hacking - #1 - Introduction & Python Modules 2025
Anonim

Som en C ++-programmerer skal du lære de ting, du skal gøre i din C ++-kode for at undgå at skrive programmer, der er sårbare over for hackere. Der beskrives også funktioner, som du kan aktivere, hvis dit operativsystem understøtter dem, f.eks. Address Space Layout Randomization (ASLR) og Data Execution Prevention (DEP).

Forsæt ikke antagelser om brugerindgang

Programmerens tunnelsyn er okay i den tidlige udviklingsfase. På et tidspunkt må programmereren (eller endnu bedre en anden programmør, der ikke havde noget at gøre med udviklingen af ​​koden) nødt til at læne sig tilbage og glemme det umiddelbare problem. Hun skal spørge sig selv: "Hvordan reagerer dette program på ulovlig input? ”

Her er nogle af reglerne for kontrol af input:

  • Gør ingen antagelser om længden af ​​input.

  • Accepter ikke mere input, end du har plads til i dine faste længdebuffere (eller brugte buffere med variabel størrelse).

  • Kontroller rækkevidden af ​​hver numerisk værdi for at sikre, at det giver mening.

  • Kontroller og filtrer ud specialtegn, der kan bruges af en hacker til at indsprøjte kode.

  • Overfør ikke rå input til en anden tjeneste, f.eks. En databaseserver.

Og udfør alle de samme checks på de værdier, der returneres fra fjerntjenester. Hackeren er muligvis ikke på input side, han kan være på responssiden.

Håndtere fejl Gracefully

Dit program skal svare rimeligt på fejl, der opstår i programmet. For eksempel, hvis dit opkald til en biblioteksfunktion returnerer en nullptr, , skal programmet opdage dette og gøre noget rimeligt.

Rimeligt her skal forstås ret liberalt. Programmet behøver ikke at snuse rundt for at finde ud af, præcis hvorfor funktionen ikke returnerede en rimelig adresse. Det kunne være, at anmodningen var for meget for hukommelse på grund af urimelig indgang. Eller det kunne være, at konstruktøren opdagede en form for ulovlig indgang.

Det er ligegyldigt. Punktet er, at programmet skal genoprette sin tilstand, så godt det kan og oprette for den næste bit af input uden at krasje eller ødelægge eksisterende datastrukturer som f.eks. Bunken.

Vedligehold en programlog

Opret og vedligehold runtime-logfiler, der gør det muligt for nogen at rekonstruere, hvad der skete i tilfælde af en sikkerhedsfejl. (Faktisk er det lige så sandt i tilfælde af enhver form for fiasko.) For eksempel vil du sandsynligvis logge hver gang nogen logger ind eller ud af dit system.

Du vil helt sikkert gerne vide, hvem der var logget ind i dit system, da der opstod en sikkerhedshændelse - dette er den gruppe, der har størst risiko for tab af sikkerhed, og som er mest mistænkelige, når de søger synder.Derudover vil du logge på eventuelle systemfejl, der vil omfatte de fleste undtagelser.

Et ægte produktionsprogram indeholder et stort antal opkald, der ser noget ud som følgende:

log (DEBUG, "Bruger% s indtastet juridisk adgangskode", sUser);

Dette er blot et eksempel. Hvert program skal bruge en slags logfunktion. Hvorvidt det faktisk hedder log () er uvæsentligt.

Følg en god udviklingsproces

Hvert program skal følge en gennemtænkt, formel udviklingsproces. Denne proces skal mindst omfatte følgende trin:

  • Indsamle og dokumentere krav, herunder sikkerhedskrav.

  • Gennemgå design.

  • Overholde en kodningsstandard.

  • Undergå enhedstest.

  • Udfør formelle acceptprøvninger, der er baseret på de oprindelige krav.

Derudover bør peer reviews udføres på nøglepunkter for at kontrollere, at kravene, design, kode og testprocedurer er af høj kvalitet og opfylder virksomhedens standarder.

Implementér god versionskontrol

Versionskontrol er en mærkelig ting. Det er naturligt, at du ikke bekymrer dig om version 1. 1 Når du er under pistolen for at få version 1. 0 ud af døren og ind i de ventende brugeres udstrakte hænder. Versionskontrol er imidlertid et vigtigt emne, der skal behandles tidligt, fordi det skal indbygges i programmets oprindelige design og ikke boltes på senere.

Et næsten trivielt aspekt af versionskontrol ved at vide, hvilken version af programmet et bruger bruger. Når en bruger ringer op og siger, "Det gør det, når jeg klikker på det," hjælper deskre virkelig, hvilken version af programmet brugeren bruger. Han kunne beskrive et problem i sin version, der allerede er rettet i den aktuelle version.

Godkend brugerne sikkert

Brugerautentificering skal være retfærdig: Brugeren giver et kontonavn og et kodeord, og dit program ser kontonavnet op i en tabel og sammenligner adgangskoderne. Hvis adgangskoderne matcher, er brugeren autentificeret. Men når det kommer til antihacking, er ingenting så simpelt.

Først skal du aldrig gemme adgangskoderne selv i databasen. Dette kaldes gemme dem i det klare og betragtes som meget dårlig form. Det er alt for let for en hacker at få hænderne på adgangskoden filen. I stedet skal du gemme en sikker transformation af adgangskoden.

Administrer eksterne sessioner

Du kan foretage visse antagelser, når hele din applikation kører på en enkelt computer. For en ting, når brugeren har autentificeret sig selv, behøver du ikke at bekymre dig om, at han bliver forvandlet til en anden person. Applikationer, der kommunikerer med en fjernserver, kan ikke tage denne antagelse - en hacker, der lytter på linjen, kan vente, indtil brugeren autentificerer sig selv og derefter kaprer sessionen.

Hvad kan den sikkerhedsorienterede programmør gøre for at undgå denne situation? Du vil ikke gentagne gange bede brugeren om sit kodeord for at sikre, at forbindelsen ikke er blevet kapret. Den alternative løsning er at etablere og administrere en session. Du gør dette ved at have serveren sende fjernprogrammet en session cookie, når brugeren har godkendt sig selv.

Forfalsk din kode

Code obfuscation er en handling, der gør den eksekverbare så vanskelig for en hacker at forstå som muligt.

Logikken er enkel. Jo lettere det er for en hacker at forstå, hvordan din kode fungerer, jo lettere vil det være for hacker at finde ud af sårbarheder.

Det enkleste trin, du kan tage, er at sikre, at du kun nogensinde distribuerer en version af dit program, der ikke indeholder fejlsymboloplysninger. Når du først opretter projektfilen, skal du sørge for at vælge, at både Debug og Release version skal oprettes.

Aldrig nogensinde distribuere versioner af din ansøgning med symboloplysninger inkluderet.

Skriv din kode med et digitalt certifikat

Kodesigneringsværktøjer ved at generere en sikker hash af den eksekverbare kode og kombinere den med et certifikat udstedt af en gyldig certificeringsmyndighed. Processen fungerer som sådan: Virksomheden, der opretter programmet, skal først registrere sig hos en af ​​certificeringsmyndighederne.

Når certifikatmyndigheden er overbevist om, at Mit firma er en gyldig softwareenhed, udsteder den et certifikat. Dette er et langt nummer, som alle kan bruge til at verificere, at indehaveren af ​​dette certifikat er den berømte My Company of San Antonio.

Brug sikker kryptering, hvor det er nødvendigt

Som enhver god advarsel har denne formaning flere dele. Først, "Brug kryptering, hvor det er nødvendigt. "Dette har tendens til at tænke på tanker om at kommunikere bankkontooplysninger via internettet, men du bør tænke mere generelt end det.

Data, der formidles, uanset om det er over internettet eller over et mindre område, er generelt kendt som Data in Motion. Data in Motion skal krypteres, medmindre det ikke er til nytte for en hacker.

Data lagret på disken er kendt som Data ved hvile. Disse data skal også krypteres, hvis der er en chance for, at disken bliver tabt, stjålet eller kopieret. Virksomheder rutinemæssigt krypterer harddiske på deres bærbare pc'er, hvis en bærbar computer bliver stjålet ved sikkerhedsscanneren i lufthavnen eller efterladt i en taxa et eller andet sted.

Små bærbare lagringsenheder som tommelfingerdrev er særligt modtagelige for at gå tabt - data på disse enheder skal krypteres.

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

Valg af editor

10 Transaktioner og funktioner, som de fleste oplysninger konverterer til i QuickBooks Online - dummies

10 Transaktioner og funktioner, som de fleste oplysninger konverterer til i QuickBooks Online - dummies

Følgende listen indeholder detaljer om transaktioner og funktioner, som de fleste data konverterer og sammenlignelige transaktioner og funktioner findes i QuickBooks Online (QBO). I nogle tilfælde findes undtagelser; Du finder specifikke noter i web-ekstraartikel & ldquo; Hvordan QuickBooks Desktop Lister Konverter til QuickBooks Online. & Rdquo; Og for flere oplysninger, besøg QuickBooks ofte stillede spørgsmål, og ldquo; Hvorfor ...

Der producerer betalingsopgørelser i MYOB-dummies

Der producerer betalingsopgørelser i MYOB-dummies

I slutningen af ​​hvert lønningsår (som slutter den 30. juni) kan bruge MYOB til at levere hver medarbejder med et betalingsoversigt. Et betalingsopsamling er et kort dokument, der opsummerer de bruttolønninger, skat og godtgørelser, som medarbejderen har modtaget i løbet af de sidste 12 måneder af ansættelsen. Opsætning af betalingsoversigter Til ...

15 Funktioner, der ikke konverteres og findes ikke i QuickBooks Online

15 Funktioner, der ikke konverteres og findes ikke i QuickBooks Online

Følgende oplysninger viser transaktioner og funktioner, som ikke konverteres fra desktop QuickBooks til QuickBooks Online (QBO) og heller ikke har nogen sammenlignelig funktion i QBO. Selv om en eller flere af disse transaktioner eller funktioner kan være afbrudte afbrydere, skal du huske at for mange af disse funktioner kan du bruge løsninger. Typen af ​​data eller funktional noter ...

Valg af editor

Sådan bruger du FREQUENCY-funktionen i Excel - dummier

Sådan bruger du FREQUENCY-funktionen i Excel - dummier

FREQUENCY-funktionen i Excel tæller værdierne i en array der falder inden for en rækkevidde eller bin. Funktionen bruger følgende syntaks: = FREQUENCY (data_array, bins_array) hvor data_array er det regnearkområde, der indeholder de værdier, du vil tælle, og bins_array er et regnearkområde, der identificerer værdierne eller bakkerne, der ...

Hvordan man bruger målsøgningsfunktionen i Excel 2013 - dummies

Hvordan man bruger målsøgningsfunktionen i Excel 2013 - dummies

, Når du skal analysere , bruger du Excel 2013s målsøgningsfunktion til at finde de indgangsværdier, der er nødvendige for at opnå det ønskede mål. Nogle gange, når du gør hvad-hvis analyse, har du et bestemt udgangspunkt i tankerne, såsom et mål salgsmængde eller vækstprocent. Hvis du vil bruge funktionen Målsøgning placeret på What-If ...

Hvordan man vælger Excel CHOOSE-funktionen i datamodeller - dummier

Hvordan man vælger Excel CHOOSE-funktionen i datamodeller - dummier

Selvom valgmuligheden måske ikke Se nyttige på overfladen, denne funktion kan dramatisk forbedre dine Excel-datamodeller. VÆLG-funktionen returnerer en værdi fra en bestemt liste over værdier baseret på et angivet positionsnummer. Hvis du f.eks. Indtaster formlerne VÆLG (3, "Rød", "Gul", "Grøn", "Blå") i en celle, returnerer Excel ...

Valg af editor

Indlæs en Workflow i SharePoint 2010 - dummies

Indlæs en Workflow i SharePoint 2010 - dummies

Konfigurere dit bibliotek til at bruge en workflow i SharePoint 2010 løser kun en del af problemet. Hvis du ikke har dit bibliotek konfigureret til at kick-off automatisk, skal en person manuelt starte workflowen. Start manuelt en arbejdsgang ved at følge disse trin: Gennemse det element, du vil godkende, klik på rullelisten og vælg Workflows. ...

Bibliotek / Liste Generelle indstillinger Område i SharePoint 2010 - dummies

Bibliotek / Liste Generelle indstillinger Område i SharePoint 2010 - dummies

Bibliotekets generelle indstillinger / listen er blevet udvidet i SharePoint 2010 til at omfatte flere nye indstillinger, herunder validering, kolonne standardværdi (for biblioteker), vurdering, metadata navigation, visningsvisning og formular (for lister). Her er et overblik for at se, hvad du kan gøre med hver af disse muligheder. Generelle indstillinger Konfigurationsindstillinger Indstillingsnavn ...

Importer et regneark som en liste i SharePoint 2010 - dummies

Importer et regneark som en liste i SharePoint 2010 - dummies

Har allerede data i et regneark, som du Vil du være en SharePoint 2010 liste? Du er halvvejs derhen! Før du starter, skal du sørge for at gøre følgende: Rens listen. Sørg for, at din liste ligner et bord uden tomme kolonner eller rækker. Sørg for, at din liste har overskrifter. Alle kolonner skal have en ...