{"id":29957,"date":"2019-10-31T21:32:53","date_gmt":"2019-10-31T18:32:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/skanirovanie-na-uyazvimosti-i-bezopasnaya-razrabotka-chast-1\/"},"modified":"2019-10-31T21:32:53","modified_gmt":"2019-10-31T18:32:53","slug":"skanirovanie-na-uyazvimosti-i-bezopasnaya-razrabotka-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/da\/blog\/skanirovanie-na-uyazvimosti-i-bezopasnaya-razrabotka-chast-1","title":{"rendered":"Scanning for s\u00e5rbarheder og sikker udvikling. Del 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Scanning for s\u00e5rbarheder og sikker udvikling. Del 1\" src=\"\/wp-content\/uploads\/2019\/03\/d085cf1b23386d01188726e1590ad1a9.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom en del af deres professionelle arbejde skal udviklere, pentestere og sikkerhedsspecialister besk\u00e6ftige sig med processer som Vulnerability Management (VM) og (Secure) SDLC.<br \/>\nUnder disse udtryk gemmer sig forskellige s\u00e6t af praktikker og anvendte v\u00e6rkt\u00f8jer, der er sammenflettet, selvom deres brugere varierer.<\/p>\n<p>Den tekniske udvikling er endnu ikke n\u00e5et dertil, hvor et enkelt v\u00e6rkt\u00f8j kan erstatte mennesket i analysen af sikkerheden i infrastruktur og software.<br \/>\nDet er interessant at forst\u00e5, hvorfor det er s\u00e5dan, og hvilke problemer man st\u00e5r overfor.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Processer<\/h2>\n<p>\nProcessen Vulnerability Management (\u201eh\u00e5ndtering af s\u00e5rbarheder\u201c) er designet til l\u00f8bende at overv\u00e5ge sikkerheden i infrastruktur og patch management.<br \/>\nProcessen Secure SDLC (\u201esikker udviklingscyklus\u201c) har til form\u00e5l at st\u00f8tte applikationens sikkerhed under udvikling og drift.<\/p>\n<p>En besl\u00e6gtet del af disse processer er Vulnerability Assessment-processen \u2013 evaluering af s\u00e5rbarheder, scanning af s\u00e5rbarheder.<br \/>\nDen prim\u00e6re forskel i scanningen inden for VM og SDLC er, at m\u00e5let i f\u00f8rste omgang er at opdage kendte s\u00e5rbarheder i tredjeparts software eller i konfigurationen. For eksempel, en for\u00e6ldet version af Windows eller en standardcommunity-streng for SNMP.<br \/>\nI det andet tilf\u00e6lde er m\u00e5let at opdage s\u00e5rbarheder ikke kun i tredjeparts komponenter (afh\u00e6ngigheder) men f\u00f8rst og fremmest i koden til det nye produkt.<\/p>\n<p>Dette medf\u00f8rer forskelle i v\u00e6rkt\u00f8jer og tilgange. Efter min mening er opgaven med at finde nye s\u00e5rbarheder i applikationen v\u00e6sentligt mere interessant, da den ikke blot handler om at identificere versioner, indsamle banners, brute-force adgangskoder osv.<br \/>\nFor kvalitetsautomatiserede scanninger af applikationers s\u00e5rbarheder er der behov for algoritmer, der tager h\u00f8jde for applikationens semantik, form\u00e5l og specifikke trusler.<\/p>\n<p>En infrastrukturscanner kan ofte erstattes af et tidtagersystem, som udtrykt af <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/avleonov\/\" class=\"user_link\">avleonov.<\/a><\/noindex>Pointen er, at statistisk set kan du betragte din infrastruktur som s\u00e5rbar, hvis du ikke har opdateret den, lad os sige, i en m\u00e5ned.<\/p>\n<h2>V\u00e6rkt\u00f8jer<\/h2>\n<p>\nScanning, ligesom sikkerhedsanalyse, kan udf\u00f8res som en black box eller white box.<\/p>\n<h4>Black Box<\/h4>\n<p>\nVed blackbox-scanning skal v\u00e6rkt\u00f8jet kunne interagere med tjenesten gennem de samme gr\u00e6nseflader, som brugerne arbejder med.<\/p>\n<p>Infrastruktur scanner (Tenable Nessus, Qualys, MaxPatrol, Rapid7 Nexpose osv.) leder efter \u00e5bne netv\u00e6rksporte, indsamler 'bannere', identificerer versioner af installeret software og s\u00f8ger i deres vidensbase efter information om s\u00e5rbarheder i disse versioner. De fors\u00f8ger ogs\u00e5 at opdage konfigurationsfejl, s\u00e5som standardadgangskoder eller \u00e5ben adgang til data, svage SSL-krypteringer osv.<\/p>\n<p>Webapplikationsscannere (Acunetix WVS, Netsparker, Burp Suite, OWASP ZAP osv.) kan ogs\u00e5 identificere kendte komponenter og deres versioner (for eksempel CMS, frameworks, JS-biblioteker). De grundl\u00e6ggende trin for scanneren er crawling og fuzzing.<br \/>\nUnder crawling indsamler scanneren information om eksisterende gr\u00e6nseflader for applikationen, HTTP-parametre. Under fuzzing indtastes muterede eller genererede data i alle opdagede parametre med det form\u00e5l at fremprovokere en fejl og opdage s\u00e5rbarheden.<\/p>\n<p>Disse applikationsscannere tilh\u00f8rer klasserne DAST og IAST \u2014 henholdsvis Dynamic og Interactive Application Security Testing.<\/p>\n<h4>White Box<\/h4>\n<p>\nVed whitebox-scanning er der flere forskelle.<br \/>\nI VM-processen f\u00e5r scannere (Vulners, Incsecurity Couch, Vuls, Tenable Nessus osv.) ofte adgang til systemerne, hvilket involverer en autentificeret scanning. P\u00e5 den m\u00e5de kan scanneren hente de installerede versioner af pakker og konfigurationsparametre direkte fra systemet uden at g\u00e6tte dem ud fra bannere fra netv\u00e6rkstjenester.<br \/>\nScanningen bliver mere pr\u00e6cis og omfattende.<\/p>\n<p>N\u00e5r vi taler om whitebox-scanning af applikationer (CheckMarx, HP Fortify, Coverity, RIPS, FindSecBugs osv.), handler det normalt om statisk kodeanalyse og brug af de relevante v\u00e6rkt\u00f8jer fra klassen SAST \u2014 Static Application Security Testing.<\/p>\n<h2>Problemer<\/h2>\n<p>\nDer opst\u00e5r mange problemer med scanning! Jeg st\u00e5r personligt over for de fleste af dem i l\u00f8bet af mit arbejde med at etablere scanning og sikker udviklingsprocesser samt ved udf\u00f8relse af opgaver relateret til sikkerhedsanalyse.<\/p>\n<p>Jeg vil fremh\u00e6ve 3 hovedgrupper af problemer, som bekr\u00e6ftes gennem samtaler med ingeni\u00f8rer og ledere i forskellige IT-sikkerhedstjenester i mange forskellige virksomheder.<\/p>\n<h4>Problemer med scanning af webapplikationer<\/h4>\n<p><\/p>\n<ol>\n<li><b>Sv\u00e6rhedsgrad i implementeringen.<\/b> Scannere skal implementeres, konfigureres og tilpasses til hver applikation, der skal tildeles et testmilj\u00f8 til scanningerne og integreres i CI\/CD-processen for at v\u00e6re effektive. Ellers vil det v\u00e6re en meningsl\u00f8s procedure, der kun giver falske positiver.<\/li>\n<li><b>Varighed af scanning.<\/b> Scannere har i 2019 stadigv\u00e6k problemer med deduplicering af gr\u00e6nseflader og kan bruge dage p\u00e5 at scanne tusind sider med 10 parametre p\u00e5 hver, idet de betragter dem som forskellige, selvom den samme kode st\u00e5r bag. Desuden skal beslutningen om deployment til produktion tr\u00e6ffes hurtigt i udviklingscyklussen.<\/li>\n<li><b>Skarpe anbefalinger.<\/b> Scannere giver ofte ret generelle anbefalinger, og udvikleren kan ikke altid hurtigt forst\u00e5, hvordan han skal reducere risikoniveauet, og vigtigst, om det er n\u00f8dvendigt at g\u00f8re det lige nu, eller om det kan vente.<\/li>\n<li><b>Destruktiv indvirkning p\u00e5 applikationen.<\/b> Scannere kan meget vel udf\u00f8re et DoS-angreb p\u00e5 applikationen, s\u00e5vel som at kunne producere et stort antal entiteter eller \u00e6ndre eksisterende (f.eks. oprette titusinder af kommentarer i en blog), s\u00e5 man skal ikke uden omtanke k\u00f8re en scanning i produktion.<\/li>\n<li><b>Lav kvalitet i opdagelsen af s\u00e5rbarheder.<\/b> Scannere bruger normalt et fast array af nyttelaster (\u2018payloads\u2019) og kan nemt overse en s\u00e5rbarhed, som ikke falder ind under de kendte adf\u00e6rdsscenarier, de kender.<\/li>\n<li><b>Manglende forst\u00e5else fra scannerens side af applikationens funktioner.<\/b> Scannere ved i sig selv ikke, hvad 'internetbank', 'betaling', 'kommentar' betyder. For dem findes kun links og parametre, s\u00e5 en stor del af de mulige forretningslogiske s\u00e5rbarheder forbliver helt d\u00e6kkede; de vil ikke kunne g\u00e6tte, hvordan man laver en dobbelt betaling, ser andres data via ID eller tilf\u00f8jer balancen gennem afrunding.<\/li>\n<li><b>Manglende forst\u00e5else fra scannerens side af sidernes semantik.<\/b> Scannere kan ikke l\u00e6se FAQ'er, de kan ikke genkende captchas, de vil i sig selv ikke kunne g\u00e6tte, hvordan man skal registrere sig, og at man derefter skal logge ind igen, at man ikke m\u00e5 klikke p\u00e5 'logout', og hvordan man skal signere anmodninger ved \u00e6ndring af parameteres v\u00e6rdier. Som resultat vil en stor del af applikationen forblive helt uunders\u00f8gt.<\/li>\n<\/ol>\n<h4>Problemer med scanning af kildekoden.<\/h4>\n<p><\/p>\n<ol>\n<li><b>Falske positiver.<\/b> Statisk analyse er en kompleks opgave, der ofte kr\u00e6ver mange kompromiser. Man ender ofte med at ofre n\u00f8jagtighed, og selv dyre enterprise-scannere giver et enormt antal falske positiver.<\/li>\n<li><b>Sv\u00e6rhedsgrad i implementeringen.<\/b> For at \u00f8ge n\u00f8jagtigheden og fuldst\u00e6ndigheden af statisk analyse er det n\u00f8dvendigt at forbedre scanningsreglerne, og udarbejdelsen af disse regler kan vise sig at v\u00e6re alt for tidskr\u00e6vende. Nogle gange er det lettere at finde alle steder i koden med en fejl og rette dem, end at skrive en regel til at detektere s\u00e5danne tilf\u00e6lde.<\/li>\n<li><b>Manglende underst\u00f8ttelse af afh\u00e6ngigheder.<\/b> Store projekter er afh\u00e6ngige af et stort antal biblioteker og rammer, der udvider mulighederne i programmeringssproget. Hvis scannerens vidensbase ikke indeholder information om farlige steder (\"sinks\") i disse rammer, bliver det et blindt punkt, og scanneren vil slet ikke forst\u00e5 koden.<\/li>\n<li><b>Varighed af scanning.<\/b> At finde s\u00e5rbarheder i koden er en kompleks opgave i algoritmerne. Derfor kan processen sagtens tage lang tid og kr\u00e6ve betydelige beregningsressourcer.<\/li>\n<li><b>Lav d\u00e6kning.<\/b> P\u00e5 trods af ressourceforbruget og l\u00e6ngden af scanningerne m\u00e5 udviklerne af SAST-v\u00e6rkt\u00f8jer stadig g\u00f8re kompromiser og analysere ikke alle tilstande, som programmet kan befinde sig i.<\/li>\n<li><b>Reproducerbarhed af fund.<\/b> At angive en bestemt linje og stakken af opkald, der f\u00f8rer til s\u00e5rbarheden, er fremragende, men i virkeligheden giver scanneren ofte ikke tilstr\u00e6kkelig information til at kontrollere, om der er en s\u00e5rbarhed udefra. Mangel kan ogs\u00e5 v\u00e6re i d\u00f8d kode, som er uopn\u00e5elig for angreb.<\/li>\n<\/ol>\n<h4>Problemer med scanning af infrastruktur.<\/h4>\n<p><\/p>\n<ol>\n<li><b>Utilstr\u00e6kkelig opg\u00f8relse.<\/b> I store infrastrukturer, is\u00e6r n\u00e5r de er geografisk adskilt, er det ofte sv\u00e6rest at forst\u00e5, hvilke v\u00e6rter der skal scannes. Med andre ord er scanningsopgaven t\u00e6t knyttet til opgaven med asset management.<\/li>\n<li><b>D\u00e5rlig prioritering.<\/b> Netv\u00e6rksscannere giver ofte mange resultater med mangler, som i praksis ikke kan udnyttes, men formelt er risikoen h\u00f8j. Forbrugeren modtager en rapport, der er sv\u00e6r at fortolke, og det er uklart, hvad der skal rettes f\u00f8rst.<\/li>\n<li><b>Skarpe anbefalinger.<\/b> I vidensbasen for scannere findes der ofte kun meget generel information om s\u00e5rbarheder og m\u00e5der at rette dem p\u00e5, s\u00e5 administratorer m\u00e5 tage Google til hj\u00e6lp. Situationen er lidt bedre med whitebox-scannere, som kan give en specifik kommando til at rette fejlen.<\/li>\n<li><b>Manuel arbejde.<\/b> Der kan v\u00e6re mange noder i infrastrukturen, og dermed potentielt mange fejl, hvis rapporter, som man skal analysere og gennemg\u00e5 manuelt ved hver iteration.<\/li>\n<li><b>D\u00e5rlig d\u00e6kning.<\/b> Kvaliteten af scanningen af infrastrukturen afh\u00e6nger direkte af omfanget af vidensbasen om s\u00e5rbarheder og versioner af software. Under alle omst\u00e6ndigheder, <noindex><a rel=\"nofollow\" href=\"https:\/\/avleonov.com\/2016\/11\/27\/fast-comparison-of-nessus-and-openvas-knowledge-bases\/\">det er<\/a><\/noindex>, selv blandt markedslederne er vidensbasen ikke udt\u00f8mmende, og der findes mange oplysninger i gratis l\u00f8sninger, som ikke er tilg\u00e6ngelige hos lederne.<\/li>\n<li><b>Problemer med patching.<\/b> Ofte indeb\u00e6rer patching af s\u00e5rbarheder i infrastrukturen en opdatering af pakker eller en \u00e6ndring af konfigurationsfiler. Et stort problem her er, at systemet, is\u00e6r legacy-systemer, kan opf\u00f8re sig uforudsigeligt som f\u00f8lge af opdateringen. I praksis m\u00e5 der udf\u00f8res integrationstests p\u00e5 en live infrastruktur i produktionen.<\/li>\n<\/ol>\n<h2>Tilgange<\/h2>\n<p>\nHvad skal man s\u00e5 g\u00f8re?<br \/>\nJeg vil i de n\u00e6ste dele uddybe eksempler og hvordan man kan tackle mange af de n\u00e6vnte problemer, men indtil da vil jeg p\u00e5pege de vigtigste omr\u00e5der, hvor der kan arbejdes:<\/p>\n<ol>\n<li><b>Agergation af forskellige scanningv\u00e6rkt\u00f8jer.<\/b> Ved korrekt brug af flere scannere kan man opn\u00e5 en betydelig for\u00f8gelse af vidensbasen og kvaliteten af detektion. Man kan finde flere s\u00e5rbarheder samlet end hvad alle scannere kan finde hver for sig, samtidig med at man kan vurdere risikoniveauet mere pr\u00e6cist og give flere anbefalinger.<\/li>\n<li><b>Integration af SAST og DAST.<\/b> D\u00e6kningen af DAST og pr\u00e6cisionen af SAST kan forbedres ved at dele information mellem dem. Fra kildekoden kan oplysninger om eksisterende ruter indsamles, mens DAST kan bruges til at kontrollere, om en s\u00e5rbarhed er synlig udefra.<\/li>\n<li><b>Machine Learning\u2122.<\/b> I 2015 skrev jeg <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=a8l6zf8mFkc\">har jeg tidligere talt om<\/a><\/noindex> (og <noindex><a rel=\"nofollow\" href=\"https:\/\/www.slideshare.net\/beched\/data-mining-for-nmap-acceleration\">endnu<\/a><\/noindex>) om anvendelsen af statistik til at give scannere hackerens intuition og fremskynde dem. Dette er bestemt en mulighed for at udvikle automatisk sikkerhedsanalyse i fremtiden.<\/li>\n<li><b>Integration af IAST med autotests og OpenAPI.<\/b> I CI\/CD-pipelines er det muligt at oprette en scanning baseret p\u00e5 v\u00e6rkt\u00f8jer, der fungerer som HTTP-proxy, samt funktionelle tests, der arbejder over HTTP. Tests og OpenAPI\/Swagger-kontrakter vil give scanneren den manglende information om datastreams og muligg\u00f8re scanning af applikationen i forskellige tilstande.<\/li>\n<li><b>Korrekt konfiguration.<\/b> Der skal oprettes en passende scanningprofil for hver applikation og infrastruktur, der tager h\u00f8jde for antallet og arten af interfaces samt de anvendte teknologier.<\/li>\n<li><b>Tilpasning af scannere.<\/b> Ofte er det ikke muligt at scanne applikationen uden at tilpasse scanneren. For eksempel i en betalingsgateway, hvor hver anmodning skal v\u00e6re underskrevet. Uden at skrive en connector til gateway-protokollen vil scannere ukritisk sende anmodninger med forkert underskrift. Derudover er det n\u00f8dvendigt at skrive specialiserede scannere til specifikke typer af s\u00e5rbarheder, s\u00e5som <noindex><a rel=\"nofollow\" href=\"https:\/\/www.owasp.org\/index.php\/Testing_for_Insecure_Direct_Object_References_(OTG-AUTHZ-004)\">Insecure Direct Object Reference<\/a><\/noindex><\/li>\n<li><b>Risikostyring.<\/b> Brugen af forskellige scannere og integration med eksterne systemer som Asset Management og Threat Management vil g\u00f8re det muligt at anvende mange parametre til at vurdere risiko niveauet, s\u00e5 ledelsen kan f\u00e5 et pr\u00e6cist billede af den aktuelle sikkerhedssituation for udvikling eller infrastruktur.<\/li>\n<\/ol>\n<p>Bliv h\u00e6ngende og lad os forstyrre s\u00e5rbarhedsscanningerne!<br \/>\n<br \/>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/444534\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c, \u043f\u0435\u043d\u0442\u0435\u0441\u0442\u0435\u0440\u0430\u043c, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0438\u043a\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u043c\u0438, \u043a\u0430\u043a Vulnerability Management (VM), (Secure) SDLC. \u041f\u043e\u0434 \u044d\u0442\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u043e\u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f\u043c\u0438 \u0441\u043a\u0440\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043d\u0430\u0431\u043e\u0440\u044b \u043f\u0440\u0430\u043a\u0442\u0438\u043a \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0435\u0440\u0435\u043f\u043b\u0435\u0442\u0435\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439, \u0445\u043e\u0442\u044f \u0438\u0445 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f. \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441 \u043f\u043e\u043a\u0430 \u043d\u0435 \u0434\u043e\u0448\u0451\u043b \u0434\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u0434\u043d\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0438 \u041f\u041e. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-29957","post","type-post","status-publish","format-standard","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/da\/blog\/skanirovanie-na-uyazvimosti-i-bezopasnaya-razrabotka-chast-1\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/da\/blog\/skanirovanie-na-uyazvimosti-i-bezopasnaya-razrabotka-chast-1\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:32:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:32:53+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47S\u00e5rbarhedsscanning og sikker udvikling. Del 1 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/da\/blog\/skanirovanie-na-uyazvimosti-i-bezopasnaya-razrabotka-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster","og:url":"https:\/\/prohoster.info\/da\/blog\/skanirovanie-na-uyazvimosti-i-bezopasnaya-razrabotka-chast-1","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:32:53+00:00","article:modified_time":"2019-10-31T18:32:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"29957","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-20 23:11:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:45:24","updated":"2026-01-20 23:11:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/29957","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=29957"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/29957\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=29957"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=29957"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=29957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}