security testing
Hvordan teste applikasjonssikkerhet - Test- og teknikker for applikasjonssikkerhet på nett og skrivebord
Behovet for sikkerhetstesting?
Programvareindustrien har oppnådd en solid anerkjennelse i denne tidsalderen. I det siste tiåret ser imidlertid cyberverdenen ut til å være enda mer dominerende og drivende kraft som former de nye former for nesten alle virksomheter. Nettbaserte ERP-systemer som brukes i dag er det beste beviset på at IT har revolusjonert vår elskede globale landsby.
I disse dager er nettsteder ikke bare ment for reklame eller markedsføring, men disse har blitt utviklet til de sterkere verktøyene for å imøtekomme komplette forretningsbehov.
Nettbaserte lønnssystemer, kjøpesentre, bank, applikasjon for aksjebehandling blir ikke bare brukt av organisasjoner, men selges også som produkter i dag.
Dette betyr at elektroniske applikasjoner har fått tillit fra kunder og brukere angående deres viktige funksjon som heter SIKKERHET.
Ingen tvil om at sikkerhetsfaktoren også er av største verdi for stasjonære applikasjoner.
Men når vi snakker om nettet, øker viktigheten av sikkerhet eksponentielt. Hvis et elektronisk system ikke kan beskytte transaksjonsdataene, vil ingen noen gang tenke på å bruke det. Sikkerhet er verken et ord på jakt etter definisjonen ennå, og det er heller ikke et subtilt konsept. Imidlertid vil jeg liste opp noen komplimenter for sikkerhet.
gratis menighetsadministrasjonsprogramvare fullversjon
Eksempler på sikkerhetsfeil i en applikasjon
- Et studentledelsessystem er usikkert om 'Opptak' -grenen kan redigere dataene til 'Eksamen' -grenen
- Et ERP-system er ikke sikkert hvis DEO (dataregistreringsoperatør) kan generere 'Rapporter'
- Et kjøpesenter på nettet har ingen sikkerhet hvis kundens kredittkortdetaljer ikke er kryptert
- En tilpasset programvare har utilstrekkelig sikkerhet hvis en SQL-spørring henter faktiske passord til brukerne
Sikkerhet
Nå presenterer jeg deg den enkleste definisjonen av sikkerhet med mine egne ord.
“Sikkerhet betyr at autorisert tilgang gis til beskyttede data og uautorisert tilgang er begrenset” .
Så det har to hovedaspekter; den første er beskyttelsen av data, og den andre er tilgangen til disse dataene. Dessuten, enten applikasjonen er stasjonær eller nettbasert, dreier sikkerheten seg om de to nevnte aspektene.
La oss ha en oversikt over sikkerhetsaspekter for både stasjonære og nettbaserte programvareapplikasjoner.
Hva du vil lære:
Testing av skrivebords- og websikkerhet
Et skrivebordsprogram bør være trygt ikke bare med hensyn til tilgang, men også med hensyn til organisering og lagring av dataene.
Tilsvarende krever webapplikasjon, enda mer, sikkerhet med hensyn til tilgang, sammen med databeskyttelse. En nettutvikler bør gjøre applikasjonen immun mot SQL Injections, Brute Force Attacks og XSS (cross-site scripting). Tilsvarende, hvis webapplikasjonen muliggjør eksterne tilgangspunkter, må disse også være sikre.
Videre, husk at Brute Force Attack ikke bare er relatert til webapplikasjoner, desktop-programvare er også sårbar for dette.
Jeg håper dette forordet er nok, og la meg nå komme til poenget. Godta min unnskyldning hvis du hittil trodde at du leste om emnet i denne artikkelen. Selv om jeg kort har forklart programvaresikkerhet og dens største bekymringer, er emnet mitt 'Security Testing'.
Anbefalt lesing => Sikkerhetstesting av webapplikasjoner
Jeg vil nå forklare hvordan funksjonene til sikkerhet implementeres i programvaren og hvordan skal disse testes. Mitt fokus vil være på hva og hvordan sikkerhetstesting, ikke sikkerhet.
Anbefalte verktøy for sikkerhetstesting
# 1) Nettparker
Netsparker er en sikkerhetstestløsning for webapplikasjoner med muligheter for automatisk gjennomgang og skanning for alle typer eldre og moderne webapplikasjoner som HTML5, Web 2.0 og Single Page Applications. Den bruker bevisbasert skanningsteknologi og skalerbare skannemidler.
Det gir deg full synlighet selv om du har et stort antall eiendeler å administrere. Den har mange flere funksjoner som teamledelse og sårbarhetsadministrasjon. Den kan integreres i CI / CD-plattformene som Jenkins, TeamCity eller Bamboo.
=> Prøv det beste Netsparker Security Test Tool#to) Kiuwan
Finn og fikse sårbarheter i koden din på hvert trinn av SDLC.
Kiuwan er i samsvar med de strengeste sikkerhetsstandardene, inkludert OWASP, CWE, SANS 25, HIPPA og mer. Integrer Kiuwan i IDE-en din for øyeblikkelig tilbakemelding under utviklingen. Kiuwan støtter alle de viktigste programmeringsspråkene og integreres med ledende DevOps-verktøy.
=> Skann koden din gratis# 3) Indusface VAR Gratis sjekk av skadelig programvare på nettstedet
Indusface VAR tilbyr både manuell penetrasjonstest med sin egen automatiserte sårbarhetsskanner for nettapplikasjoner som oppdager og rapporterer sårbarheter basert på OWASP topp 10, og inkluderer også en omdømmekontroll av nettsteder for lenker, skadelig programvare og ødeleggelseskontroller av nettstedet i hver skanning
=> Kjør en rask nettstedsskanning gratis
=> Kontakt oss å foreslå en oppføring her.
Liste over topp 8 sikkerhetstestteknikker
# 1) Tilgang til applikasjon
Enten det er en stasjonær applikasjon eller et nettsted, er tilgangssikkerhet implementert av ‘Roller og rettighetsforvaltning’. Det gjøres ofte implisitt mens du dekker funksjonalitet,
For eksempel, i et sykehusledelsessystem er en resepsjonist minst bekymret for laboratorietester, siden jobben hans er å bare registrere pasientene og planlegge avtaler med legene.
Så alle menyer, skjemaer og skjermer relatert til laboratorietester vil ikke være tilgjengelige for 'Resepsjonist'. Derfor vil riktig implementering av roller og rettigheter garantere sikkerheten for tilgang.
Hvordan teste: For å teste dette, bør det utføres grundig testing av alle roller og rettigheter.
Testeren skal opprette flere brukerkontoer med forskjellige og flere roller. Deretter bør han bruke applikasjonen ved hjelp av disse kontoene og kontrollere at hver rolle bare har tilgang til sine egne moduler, skjermer, skjemaer og menyer. Hvis testeren finner noen konflikt, bør han logge et sikkerhetsproblem med full tillit.
Dette kan også forstås som autentisering og autorisasjonstesting som er veldig vakkert avbildet i bildet nedenfor:
Så i utgangspunktet må du teste om 'hvem du er' og 'hva du kan gjøre' for forskjellige brukere.
Noen av autentiseringstestene inkluderer en test for passordkvalitetsregler, test for standard pålogginger, test for passordgjenoppretting, test captcha, test for utloggingsfunksjonalitet, test for passordendring, test for sikkerhetsspørsmål / svar osv.
På samme måte inkluderer noen av autorisasjonstestene en test for stiovergang, test for manglende autorisasjon, test for horisontale tilgangskontrollproblemer, etc.
# 2) Databeskyttelse
Det er tre aspekter av datasikkerhet. Den første er at en bruker kan bare se eller bruke dataene han skal bruke . Dette sikres også av roller og rettigheter
For eksempel, TSR (telesalgsrepresentant) for et selskap kan se data om tilgjengelig lager, men kan ikke se hvor mye råvare som ble kjøpt for produksjon.
Så dette aspektet av sikkerhetstesting er allerede forklart ovenfor. Det andre aspektet ved databeskyttelse er relatert til hvordan dataene lagres i DB .
Videre lesing = >> Hva er databasesikkerhetstesting
Alle sensitive data må være kryptert for å gjøre dem sikre. Kryptering bør være sterk, spesielt for sensitive data som passord for brukerkontoer, kredittkortnumre eller annen virksomhetskritisk informasjon.
Tredje og siste aspekt er en utvidelse av dette andre aspektet. Riktig sikkerhetstiltak må vedtas når strømmen av sensitive eller forretningskritiske data oppstår. Enten disse dataene flyter mellom forskjellige moduler i samme applikasjon eller overføres til forskjellige applikasjoner, må de krypteres for å holde dem trygge.
Hvordan teste databeskyttelse: Testeren bør spørre databasen etter ‘passord’ til brukerkontoen, faktureringsinformasjon til klienter, andre forretningskritiske og sensitive data, og bør verifisere at alle slike data lagres i kryptert form i DB.
På samme måte må han verifisere at data overføres mellom forskjellige former eller skjermer etter riktig kryptering. Videre bør testeren sørge for at de krypterte dataene dekrypteres riktig på destinasjonen. Spesiell oppmerksomhet bør rettes mot forskjellige 'sende' handlinger.
java lage rekke objekter med konstruktør
Testeren må verifisere at når informasjonen overføres mellom klienten og serveren, vises den ikke i adressefeltet til en nettleser i et forståelig format. Hvis noen av disse bekreftelsene mislykkes, har applikasjonen definitivt en sikkerhetsfeil.
Testeren bør også sjekke for riktig bruk av salting (legge til en ekstra hemmelig verdi til sluttinngangen som passord og dermed gjøre den sterkere og vanskeligere å bli sprukket).
Usikker tilfeldighet bør også testes da det er en slags sårbarhet. En annen måte å teste databeskyttelse på er å sjekke for svak algoritmebruk.
For eksempel, Siden HTTP er en klar tekstprotokoll, hvis sensitive data som brukerlegitimasjon overføres via HTTP, er det en trussel mot applikasjonssikkerhet. I stedet for HTTP, bør sensitive data overføres via HTTPS (sikret gjennom SSL, TLS-tunnel).
HTTPS øker imidlertid angrepsoverflaten, og det bør derfor testes at serverkonfigurasjoner er riktige og sertifikatgyldigheten er sikret.
# 3) Brute-Force Attack
Brute Force Attack gjøres for det meste av noen programvareverktøy. Konseptet er at ved å bruke en gyldig bruker-ID, s ofte prøver å gjette det tilknyttede passordet ved å prøve å logge på igjen og igjen.
Et enkelt eksempel på sikkerhet mot et slikt angrep er kontosuspensjon i en kort periode slik alle e-postapplikasjoner som 'Yahoo', 'Gmail' og 'Hotmail' gjør. Hvis et bestemt antall påfølgende forsøk (for det meste 3) ikke klarer å logge inn, blir den kontoen sperret i noen tid (30 minutter til 24 timer).
Hvordan teste Brute-Force Attack: Testeren må bekrefte at en eller annen mekanisme for kontosuspensjon er tilgjengelig og fungerer nøyaktig. (S) Han må prøve å logge på med ugyldige bruker-ID og passord alternativt for å sikre at programvaren blokkerer kontoene hvis det kontinuerlig blir gjort forsøk på å logge inn med ugyldig legitimasjon.
Hvis applikasjonen gjør det, er det sikkert mot brute-force angrep. Ellers må dette sikkerhetsproblemet rapporteres av testeren.
Testing for brute force kan også deles inn i to deler - black box testing og gray-box testing.
Ved Black Box-testing oppdages og testes autentiseringsmetoden som brukes av applikasjonen. Videre er testing av grå bokser basert på delvis kunnskap om passord- og kontodetaljer og minnevekslingsangrep.
Klikk her å utforske svart boks og grå boks brute force testing sammen med eksempler.
Ovennevnte tre sikkerhetsaspekter bør tas i betraktning for både web- og skrivebordsprogrammer mens følgende punkter bare er relatert til nettbaserte applikasjoner.
# 4) SQL Injection And XSS (Cross-Site Scripting)
Konseptuelt sett er temaet for begge disse hackingsforsøkene likt, så disse blir diskutert sammen. I denne tilnærmingen er den ondsinnet skript brukes av hackere for å manipulere et nettsted .
Det er flere måter å immunisere mot slike forsøk. For alle inndatafelt på nettstedet bør feltlengder defineres som små nok til å begrense inndata av ethvert skript
hvordan finne nettverkssikkerhetsnøkkel for wifi
For eksempel, Etternavnet skal ha feltlengde 30 i stedet for 255. Det kan være noen inndatafelt der store datainndata er nødvendige, for slike felt bør riktig validering av inndata utføres før dataene lagres i applikasjonen.
Videre, i slike felt, må alle HTML-koder eller input av skriptkoder være forbudt. For å provosere XSS-angrep, bør applikasjonen forkaste skriptomdirigeringer fra ukjente eller upålitelige applikasjoner.
hvordan test SQL Injection og XSS: Testeren må sørge for at maksimale lengder på alle inndatafelt defineres og implementeres. (S) Han bør også sørge for at den definerte lengden på inntastingsfeltene ikke har plass til skriptinngang samt merking. Begge disse kan enkelt testes
For eksempel, Hvis 20 er den maksimale lengden som er angitt for 'Navn' -feltet, og inputstrengen '
thequickbrownfoxjumpsoverthelazydog ”kan bekrefte begge disse begrensningene.
Det bør også bekreftes av testeren at applikasjonen ikke støtter anonyme tilgangsmetoder. Hvis noen av disse sårbarhetene eksisterer, er applikasjonen i fare.
I utgangspunktet kan SQL-injeksjonstesting gjøres på følgende fem måter:
- Deteksjonsteknikker
- Standard SQL-injeksjonsteknikker
- Fingeravtrykk databasen
- Teknisk utnyttelse
- SQL Injection Signature Invasion Techniques
Klikk her å lese detaljert om de ovennevnte måtene å teste SQL-injeksjon på.
XSS er også en type injeksjon som injiserer skadelig skript på et nettsted. Klikk her for å utforske grundig om testing for XSS.
# 5) Servicetilgangspunkter (forseglet og sikkert åpent)
I dag er virksomheter avhengige og samarbeider med hverandre, det samme gjelder applikasjoner, spesielt nettsteder. I et slikt tilfelle bør begge samarbeidspartnerne definere og publisere noen tilgangspunkter for hverandre.
Så langt virker scenariet ganske enkelt og greit, men for noen nettbaserte produkter som aksjehandel er ting ikke så enkelt og enkelt.
Når det er et stort antall målgrupper, bør tilgangspunktene være åpne nok til å tilrettelegge for alle brukere, imøtekommende nok til å oppfylle alle brukernes forespørsler og sikre nok til å takle sikkerhetsforsøk.
Hvordan teste tilgangspunkter: La meg forklare det med eksempel av aksjehandelsnettprogrammet; en investor (som ønsker å kjøpe aksjene) skal ha tilgang til aktuelle og historiske data om aksjekursene. Brukeren bør få muligheten til å laste ned disse historiske dataene. Dette krever at søknaden skal være åpen nok.
Med imøtekommende og sikker mener jeg at applikasjonen skal gjøre det mulig for investorer å handle fritt (under lovbestemmelsene). De kan kjøpe eller selge 24/7, og dataene fra transaksjonene må være immun mot ethvert hackingangrep.
Videre vil et stort antall brukere samhandle med applikasjonen samtidig, så applikasjonen bør gi nok tilgangspunkter til å underholde alle brukerne.
I noen tilfeller er disse tilgangspunkter kan forsegles for uønskede applikasjoner eller personer . Dette avhenger av forretningsområdet til applikasjonen og brukerne,
For eksempel, Et tilpasset nettbasert Office Management System kan gjenkjenne brukerne sine på grunnlag av IP-adresser og nekter å opprette en forbindelse med alle andre systemer (applikasjoner) som ikke faller innenfor området gyldige IP-er for det programmet.
Testeren må sørge for at alle inter-nettverk og intern nettverkstilgang til applikasjonen er av pålitelige applikasjoner, maskiner (IP-er) og brukere.
For å verifisere at et åpent tilgangspunkt er sikkert nok, må testeren prøve å få tilgang til det fra forskjellige maskiner som har både klarerte og upålitelige IP-adresser. Ulike typer sanntidstransaksjoner bør forsøkes samlet for å ha god tillit til applikasjonens ytelse. Ved å gjøre dette vil kapasiteten til tilgangspunkter for applikasjonen også bli observert tydelig.
Testeren må sørge for at applikasjonen bare underholder alle kommunikasjonsforespørsler fra pålitelige IP-er og applikasjoner mens alle andre forespørsler avvises.
Tilsvarende, hvis applikasjonen har et åpent tilgangspunkt, bør testeren sørge for at det tillater (om nødvendig) dataopplasting av brukere på en sikker måte. På denne sikre måten mener jeg om filstørrelsesbegrensning, filtypebegrensning og skanning av den opplastede filen for virus eller andre sikkerhetstrusler.
Dette er hvordan en tester kan verifisere sikkerheten til en applikasjon med hensyn til tilgangspunktene.
# 6) Øktledelse
En websession er en sekvens av HTTP-forespørsel og svarstransaksjoner knyttet til samme bruker. Øktledelsestestene sjekker hvordan økthåndtering håndteres i webappen.
Du kan teste for øktutløp etter bestemt inaktiv tid, øktavslutning etter maksimal levetid, øktavslutning etter utlogging, se etter omfang og varighet for øktcookie, teste om en enkelt bruker kan ha flere samtidige økter, etc.
# 7) Feilhåndtering
Testing for feilhåndtering inkluderer:
Se etter feilkoder : For eksempel, test 408 timeout for forespørsel, 400 dårlige forespørsler, 404 ikke funnet, etc. For å teste disse, må du gjøre visse forespørsler til siden slik at disse feilkodene blir returnert.
Feilkodene returneres med en detaljert melding. Disse meldingene skal ikke inneholde kritisk informasjon som kan brukes til hackingsformål
Se etter stabelspor : Det inkluderer i utgangspunktet å gi noen eksepsjonelle innspill til applikasjonen slik at den returnerte feilmeldingen inneholder stakkspor som har interessant informasjon for hackere.
# 8) Spesifikke risikofylte funksjoner
Hovedsakelig er de to risikable funksjonene betalinger og filopplastinger . Disse funksjonene bør testes veldig bra. For filopplasting må du først og fremst teste at uønsket eller skadelig filopplasting er begrenset.
For betalinger må du først og fremst teste for sårbarheter ved injeksjon, usikker kryptografisk lagring, bufferoverløp, gjetning av passord osv.
=> Kontakt oss å foreslå en oppføring her.Videre lesning:
- Sikkerhetstesting av webapplikasjoner
- Topp 30 spørsmål om sikkerhetstestintervju
- Forskjell mellom SAST / DAST / IAST / RASP
- SANS Topp 20 sikkerhetsproblemer
Anbefalt lesing
- Veiledning for testing av webapplikasjoner
- Alpha Testing og Beta Testing (En komplett guide)
- ETL Testing Data Warehouse Testing Tutorial (En komplett guide)
- Testing av nettverkssikkerhet og beste verktøy for nettverkssikkerhet
- Nybegynnerveiledning for testing av webapplikasjon
- Build Verification Testing (BVT Testing) Komplett guide
- Funksjonstesting mot ikke-funksjonell testing
- En komplett gjennomføringstestveiledning med eksempler på testtilfeller