autentificare nesigură
vă Peped îndrumări practice privind auditarea securității aplicațiilor web cu suport pentru SAML SSO. Single Sign-On - această Tehnologiya, care permite să se conecteze la un site terță parte aplicație web chepez (ISP). Un SAML - un popular XML-protocol pentru punerea în aplicare a SSO. Noi podrobno spune ce SAML sso, cum funcționează. Descrieți modul în care obrazom personaliza aplicația pentru a lucra cu SAML IDP. În cele din urmă, rasskazhem cel mai important - ce instrumente trebuie să ispolzovat Pentest, prezența vulnerabilități care trebuie să verifice aplicarea. Pentru XXE, transformarea chepez atac, eroare XPath injecție la verificarea semnăturii, XSW atac, aserțiuni atac zashifrovannye, și multe altele. Bine ai venit!
Ce este SAML sso și avea nevoie de zachem?
Single Sign-On (SSO) - o tehnologie care vă permite să vă conectați la aplicația web prin intermediul unui terț furnizor de site-ul web. Avantajele icpolzovaniya sso includ următoarele:
Dezavantajele includ următoarele:
- Un atacator trebuie să învețe doar o singură parolă pentru a avea acces la numele îngrădire multiplu al utilizatorului.
- Trebuie să ai încredere CSO-provayderu, care este o „cutie neagră“. Ca o regulă, vladelets aplicație nu știe nimic despre siguranța SSO-provaydera: modul în care informațiile de autentificare stocate, care are acces la Ney, ce măsuri face obespecheniya de securitate SSO-furnizor.
- SSO-furnizor - un punct de eșec. Dacă pentru unii ppichinam nu este disponibilă, aceasta va duce la aplicarea nerabotosposobnosti.
- Codul de pe partea laterală a cererii, este responsabil pentru SSO, - aceasta dopolnitelny sursa de vulnerabilități.
La momentul acestei versiuni poslednyaya scriere a standardului - SAML 2.0.
Potrivit clientului SAML standard (aplicație web) și aserțiunile provayder autentificare de schimb de autentificare (afirmații) prin XML. Un Asta înseamnă că SAML se bazează pe următoarele standarde W3C, legate de XML:
- Limba de marcare extensivă - standard pentru limbajul XML;
- XML Schema - Standart privind schema XML;
- XML Signature - standard referitoare la manipularea semnăturilor digitale în XML;
- XML Encryption - Standard, otnosyaschiysya la criptarea datelor în XML.
În SAML există mai multe scenarii de aplicare:
- Web SSO;
- Caracteristica de autorizare pe bază;
- Federația de identitate;
- WS-Security.
Web SSO (sau SAML SSO în terminologia noastră) - este cel mai yuzkeys rasproctranenny pentru SAML, prin urmare, cel mai interesant din punct de vedere al siguranței. Nem ne vom ocupa astăzi.
Autentificarea prin SAML sso implică trei părți:
- Furnizor de autentifikatsii (furnizor de identitate SAML sau SAML IDP);
- Aplicație Web (furnizor de servicii sau SAML SAML SP);
- browser-ul utilizatorului (User Agent).
Agent utilizator autentifică la sto.pone SAML IDP, și apoi a avea acces la aplicația web. prilozhenie Web de încredere furnizor și primește autentifikatsionnuyu informații de la el. Părțile SAML SSO și relațiile lor sunt prezentate în Fig. 1.
Fig. 1. Părțile SAML OSN și relațiile lorCa un provaydera IDP poate acționa unul dintre serviciile online, cum ar fi OneLogin, Ping identitate, Okta și altele. Sau puteți razvernut IDP, folosind un software - Șibolet sau OpenAM. Luați în considerare etapele de modul în care cererea este autentificată de către furnizor și apoi devine Dostup aplicația.
Există două alternative pentru fluxul de SAML sso: flux inițiat-SP și fluxul de IDP-a inițiat. Diferența este, căruia i obraschaetsya User Agent la începutul procesului - aplicarea sau către furnizor. Noi rassmotrim flux SP-inițiat, care este reprezentată în Fig. 2.
În prima etapă, User Agent se referă la incintă. Deoarece utilizatorul nu a fost autentificat, browser-ul aplicație perenapravlyaet Furnizorului pagina de autentificare - IDP URL de autentificare. Această adresă URL ia îngrădire de configurare SAML. Atunci când o aplicație de redirecționare dobavlyaet parametrul SAMLRequest într-un șir de interogare (șir de interogare).
Browser-ul face o cerere de taxe IDP URL de autentificare c parametru SAMLRequest. IDP autentifică utilizatorul, și face redirecționa brauzera înapoi la aplicația (în URL-ul aserțiune de consum sau URL-ul ACS) la parametrul SAML de răspuns în șirul de interogare, care conține un mesaj de răspuns codat. Declarațiile de răspuns Raportul soderzhatsya (afirmații), care au semnat ISP (și vozmozhno criptate). Furnizorul utilizează valoarea URL-ACS a configurației SAML pentru acest prilozheniya.
Browserul cere ACS URL-ul și transmite răspuns SAML ca zaprosa parametru. Aplicația scanează mesajul de răspuns semnătură și podpis fiecare afirmație (și, eventual, decriptează afirmație). Pentru acest certificat furnizor de aplicație icpolzuet, care este stocată în configurația SAML.
Următoarea afirmație se aplică pe baza datelor creează o sesiune pentru utilizator, redirecționa delaet browser-ul într-o pagină / app / profil și setează cookie-ul cu polzovatelya sesiune ID-ul.
Fig. flux 2. SAML SP-inițiatConfigurarea SAML SSO în anexa
Odată ce înțelegem teoria, prictupim configurarea SAML SSO pentru aplicarea testat. Am implementat APLICAT, acum avem nevoie de un SAML IDP (ISP). Prefer OneLogin. el populyaren, și suport multe aplicații. utilități utile Un alt granturi OneLogin, care va fi de folos pentru testarea de siguranță. Utilități sunt aici.
Fig. 3. Crearea unui test de konnektopaSpecificați un nume pentru conector și apăsați butonul Save.
Pe partea cererii noastre, du-te la setările SAML IDP (fig. 4). Trebuie să copiați valori de câmp Emitent, URL ACS, Deconectare URL. Aceste trei noi parametra pentru a genera o cerere și sunt folosite pentru a nastroyki conectorul de pe partea laterală a IDP.
Fig. 4. Setări SAML IDP carcasăParametrii care sunt generate de îngrădire, ar trebui să fie mutat la configurația conectorului ca pokazano în Fig. 5. Asta e, configurarea conector este completă!
Fig. 5. Configurarea unui conectorDu-te la fila SSO. Copie certificat znacheniya X.509, Emitent URL, SAML Endpoint și configurația SLO Endpoint a conectorului în configurația aplicației noastre (Fig. 6).
Fig. 6. Setări SSOÎn continuare, trebuie să creați un utilizator în IDP. Pentru a face acest lucru in idem Utilizatori → Toți utilizatorii, așa cum se arată în Fig. 7. Faceți clic pe butonul utilizator nou.
Fig. 7. Crearea unui utilizator de pe partea laterală a IDPCreați un nou polzovatelya, specificați adresa de e-mail și parola. Du-te la fila Aplicații și selectați conectorul de contact skonfiguripovanny (fig. 8).
Fig. 8. Fixați polzovatelya conectorÎn aplicația noastră, vom crea polzovatelya același e-mail, pentru că o grămadă de oameni sunt între IDP și Enclosure noastre efectuate prin e-mail. În această setare SAML SSO a realizat.
Când încercăm să zaloginitsya în cererea noastră, ne redirecționează la IDP pe pagina de conectare - (. Vezi konnektora de configurare în OneLogin) SAML 2.0 punctul final. După o autentificare de utilizator de succes pe partea proichodit IDP redirecționează la cererea noastră la adresa URL ACS. Parametrul a trecut la SAML Response zakodirovannoe în base64 Mesaj de răspuns (Fig. 9).
Fig. 9. SAML de răspuns Transmission AnexaPutem decoda răspuns. Pentru acest icpolzuem acest instrument (Figura 10.):
Fig. decodare 10. URLApoi, folosind acest utilitar. vom primi Răspunsul XML, care a fost semnat IDP (fig. 11).
Fig. decodare 11. Base64Dacă răspunsul SAML a fost comprimat pe IDP sto.pone, atunci trebuie să utilizați o decodare Base64 Decode + Umflați în loc de Base64 decodat.
Totul pe acest Tuning protsecs și depanare SAML SSO a realizat. Ne întoarcem la cele mai interesante - bagam!
Arsenal pentru a testa SAML SSO
Dannom pe scenă aveți o aplicație testată cu funcțional SAML SSO. Razberemsya, ce instrumente folosim pentru testirovaniya de securitate.