Locked History Actions

Skirtumas „NaujasŽodisTemplate“

Pakeitimai tarp versijų 105 ir 107 (patvirtinamos 2 versijos)
Versija 105 nuo 2017-11-24 17:07:13
Dydis: 8398
Redaktorius: JustinasVaikėnas
Komentaras:
Versija 107 nuo 2020-12-06 14:35:46
Dydis: 15286
Redaktorius: EdgarZubel
Komentaras:
Pašalinimai yra pažymėti taip. Pridėjimai yra pažymėti taip.
Eilutė 1: Eilutė 1:
= Socialinė inžinerija =
IT saugumo kontekste, socialinė inžinerija apibrėžia psichologinį manipuliavimą žmonėmis, siekiant atlikti tam tikrus veiksmus ar atskleisti konfidencialią informaciją, nenaudojant techninių ar fizinių įsilaužimo būdų. Dažniausiai tarnauja nelegaliems tikslams, tačiau pasitaiko atvejų, kai socialinė inžinerija naudojama skolų išieškotojų, privačių detektyvų, premijų medžiotojų ar sensacijų ieškančių žurnalistų.
= TLS 1.0 pažeidžiamumai =
= Turinys =
1. Įvadas
Eilutė 4: Eilutė 5:
== IT saugumo kultūra ==
Darbuotojų elgesys gali stipriai paveikti informacijos saugumą organizacijose. Buvo nustatyta, kad dažnai darbuotojai savęs nelaiko organizacijos informacinio saugumo užtikrinimo grandimi ir dažnai imasi veiksmų, kurie ignoruoja organizacijos informacinio saugumo kultūrą. Tyrimai rodo, kad būtina nuolat tobulinti informacijos saugumo kultūrą ir ją valdyti.
2. TLS protokolas
Eilutė 7: Eilutė 7:
IT sistemos veikia pagal griežtai nustatytus algoritmus ir retai kada klysta ar persigalvoja. Tačiau žmogus turi įgimtą pasitikėjimą kitais ir tai dažnai priverčia suabejoti savo pasirinkimu. Per pastaruosius kelis metus socialinė inžinerija tapo masine saugos mechanizmų pažeidžiamumo problema. Blogiausia yra tai, kad visiškai apsisaugoti nuo šios atakos yra labai sunku arba beveik neįmanoma. Sekantis pavyzdys tai puikiai iliustruoja. 2.1. TLS rankos paspaudimas
Eilutė 9: Eilutė 9:
Vienos Kolorado valstijos IT saugumo konsultavimo įmonės įkūrėjas Krisas Nikersonas atlikdavo vadinamus „red-team“ testus, kurių metu buvo simuliuojamas įsilaužimas į kompaniją, naudojant socialinę inžineriją, kad būtų išryškinti kompanijos pažeidžiamumai. Vieno šių testų metu buvo pasinaudota vykstančių renginių informacija, informacija socialiniuose tinkluose ir $4 vertės „Cisco“ marškinėliais, pirktais dėvėtų prekių parduotuvėje. Marškinėliai jam padėjo įtikinti kitus darbuotojus, jog jis yra „Cisco“ darbuotojas, atvykęs techniniais klausimais. Vos patekęs į vidų, Nikersonas jau galėjo įsileisti kitus „red-team“ narius į pastatą. Vėliau užteko atitinkamose vietose padėti užkrėstas USB atmintines, ko pasėkoje buvo įsilaužta į kompanijos tinklą, nepaisant to, kad jis visą laiką buvo stebimas kitų kompanijos darbuotojų. 3. TLS 1.0 pažeidžiamumai
Eilutė 11: Eilutė 11:
== Atakų tipai ==
=== Pretekstas (angl. pretexting) ===
Tai socialinės inžinerijos sritis, kai atakos organizatorius meluoja, kad išgautų reikalingą informaciją. Naudojamas išgalvotas scenarijus, kuomet atakuojantysis apsimeta, kad jam reikalinga informacija, jog patvirtintų asmens tapatybę, taip aukai sukuriant teisėtumo iliuziją. Gavus pasitikėjimą pereinama prie asmeninių klausimų, tokių kaip socialinio draudimo numeris, mamos mergautinė pavardė, gimimo vieta ir pan.
3.1. POODLE
Eilutė 15: Eilutė 13:
Ši technika gali būti naudojama prieš įmones, norint gauti konfidencialius klientų duomenis, kaip sąskaitų išrašai ar telefonų išklotinės tiesiogiai iš organizacijos atstovų. Gauta informacija gali būti naudojama vėlesnėms atakoms prieš aukštesnio rango darbuotojus, nes pasitikėjimo ir teisėtumo iliuzija dar labiau sustiprinama. 3.2. BEAST
Eilutė 17: Eilutė 15:
2005 m. privačių tyrėjų sėkmingai panaudota prieš HP, siekiant išgauti konfidencialius įmonės ateities planus, kurie buvo paskelbti žiniasklaidoje. 3.3. CRIME
Eilutė 19: Eilutė 17:
=== Fišingas (angl. phishing) ===
Turbūt populiariausia socialinės inžinerijos ataka. Sukčiavimo būdu yra išgaunama reikalinga informacija. Naudojami falsifikuoti elektroniniai laiškai, kuriuose nukreipiama į falsifikuotas interneto svetainės. Dažniausiai nukenčia bankai ir jų klientai bei kitos finansines paslaugas siūlančios bendrovės. Sukuriama iliuzija, jog laiškas yra oficialus. Jame yra nuoroda į tariamai oficialų puslapį, kuriame reikia suvesti savo prisijungimo duomenis. Vienas išskirtinių [[Phishing]]'o bruožų – grasinimas, kad skubiai neatlikus prašomų veiksmų bus numatyti griežti padariniai. Puslapių ir elektroninio pašto adresai yra identiški originaliems arba paslėpti, taip bandant sukelti pasitikėjimą. Kitas svarbus bruožas yra tai, jog laiškai siunčiami masiškai ir niekada nekonkretizuojama kliento informacija.
3.4. BREACH
Eilutė 22: Eilutė 19:
{{attachment:phishing-example.jpg}} 3.5. Heartbleed
Eilutė 24: Eilutė 21:
==== Telefoninis fišingas (angl. vishing) ====
Kažkuo panašu į Lietuvoje paplitusius telefoninius sukčius. Yra naudojama išgauti konfidencialią informaciją. Dažnai naudojamasi [[Voice over internet protocol]] paslaugomis, tai padeda automatizuoti procesą bei suteikia galimybę suklastoti skambintojo ID (pvz. policijos, banko ar kt.). Atsiliepusi auka nukreipiama į „banką“ ar kitą instituciją, kur paprašoma suvesti PIN kodus ar kitą konfidencialią informaciją. Įdomu, jog sistema specialiai atmetinėja aukos suvedamus slaptažodžius, tokiu būdu atskleidžiant daugiau nei viena slaptažodį.
4. Išvados
Eilutė 27: Eilutė 23:
=== Tikslinis fišingas (angl. spear phishing) ===
Labai panašus į paprastą fišingą, tačiau turi esminį skirtumą: fišingo atveju yra masiškai siunčiami nekonkretizuoti laiškai su intencija, kad užkibs mažas procentas žmonių; tikslinio fišingo atveju – laiškai yra kur kas labiau konkretizuoti ir nukreipti prieš konkrečią organizaciją ar asmenį. Yra renkama informacija apie potencialią auką, todėl ši fišingo atmaina yra žymiai pavojingesnė. Tikimybė, kad atidarytame laiške bus paspausta nuoroda ar failas, fišingo atveju siekia 5%, kai tikslinio fišingo atveju – 50%. {{attachment:spear-phishing.png}}
5. Literatūra
Eilutė 30: Eilutė 25:
=== Masalas (angl. baiting) ===
Šis socialinės inžinerijos modelis remiasi žmogaus godumu ir smalsumu. Dar yra vadinama realiu Trojos arkliu, nes yra naudojami fiziniai daiktai. Pvz. sukuriamas apkrėstas CD ar USB su kompanijos logotipu ir viliojančiu užrašu ant jo, kuris specialiai pametamas organizacijos lifte, paliekamas priimamajame arba kitur. Darbuotojų smalsumas, radus paliktą laikmeną, nugalės ir galiausiai darbuotojas atsidarys užkrėstą laikmeną. Yra atlikta keli eksperimentai, „pametant“ USB laikmenas tam tikrose teritorijose ir stebint, kiek žmonių jas paims ir atsidarys. Vieno tyrimo duomenimis buvo paimti 98% „pamestų“ laikmenų, iš kurių buvo atidaryta 45%.
= Įvadas =
Transporto lygmens saugumo protokolas (''angl. TLS(Transport Layer Security))'' yra sukurtas komunikacijos saugumui naudojant kompiuterinį tinklą užtikrinti. Šis protokolas yra naudojamas informacijos kodavimui tarp aplikacijos ir serverio. TLS taipogi yra naudojamas elektroninių laiškų, žinučių, IP telefonijos ''(angl. VoIP(Voice over IP))'' informacijos šifravime.
Eilutė 33: Eilutė 28:
=== „Watering hole“ ataka ===
Šioje atakos strategijoje auka turi priklausyti kokiai nors grupei (organizacijai, regionui). Atakuojantysis išanalizuoja ar atspėja, kokiuose tinklalapiuose grupė dažniausiai lankosi ir apkrečia vieną ar daugiau šių tinklalapių kenkėjiška programine įranga. Galų gale kažkas iš šios grupės bus apkrėstas. Programinė įranga dažniausiai renka informaciją apie apkrėstą vartotoją ir yra nukreipiama būtent prieš konkrečius IP adresus, kas apsunkina tokių atakų aptikimą. Apkrėsti puslapiams dažniausiai naudojami 0-day pažeidžiamumai. {{attachment:water-hole-attack.png}}
TLS kilo iš saugiųjų sujungimų lygmens ''(angl. SSL(Secure Socket Layers))'' protokolo, kuris buvo sukurtas Netscape įmonės 1994 metais. SSL protokolo pagrindinė paskirtis buvo užtikrinti saugius interneto seansus. SSL 1.0 versija nebuvo oficialiai išleista dėl neatitinkamų saugumo reikalavimų. SSL 2.0 buvo išleistas 2011 metais, tačiau netrukus buvo pakeistas SSL 3.0 versija, kurios veikimo principu ir remiasi TLS protokolas.
Eilutė 36: Eilutė 30:
=== Quid pro quo ===
Šios atakos esmė yra „kažkas už kažką“. Pavyzdžiui atakuojantysis skambina visiems iš eilės organizacijos darbuotojams, teikdamas, jog perskambina atgal dėl kažkokios techninės problemos sprendimo. Galų gale atakuojantysis pataikys į kažką, kas susiduria su tokia problema. Tuomet sukčius „padės“ išspręsti kilusią problemą, kurios sprendimo metu darbuotojas turės suteikti priėjimą prie reikiamų duomenų arba įdiegs kenkėjišką programinę įrangą.
TLS protokolas buvo pasiūlytas „Internet Engineering Task Force“ (IETF) organizacijos. Pirmoji jo versija buvo paskelbta 1999 metais. Kaip ir SSL protokolas, šis turi tris versijas. Pirmoji TLS 1.0 versija buvo SSL 3.0 patobulinimu. Skirtumai tarp TLS 1.0 ir SSL 3.0 nėra drastiški, tačiau pakankamai svarūs, kad šitie du protokolai veiktų nepriklausomai vienas nuo kito.
Eilutė 39: Eilutė 32:
=== Pasitikėjimas (angl. tailgating) ===
Ši ataka įgyvendinama sunkiausiai ir atrodo mažai kuo susijusi su kibernetiniais nusikaltimais, tačiau atakos tikslas išlieka tas pats – konfidenciali informacija. Dažniausiai naudojama patekti į pastatus, kuriuose yra įėjimo kontrolė. Žmogus, apsimetęs darbuotoju seka iš paskos tikram darbuotojui ir prašo palaikyti duris, kol jis pateks vidun. Arba apsimeta, kad pamiršo įėjimo kortelę, ar ją kažkas pavogė. O jau patekus į vidų „kolegos“ galima prašyti pasiskolinti kompiuterį ir jame įdiegti kenkėjišką programinę įrangą.
= TLS protokolas =
TLS protokolas atsako už šiuos veiksnius:
Eilutė 42: Eilutė 35:
=== Literatūros sąrašas ===
1. https://us.norton.com/internetsecurity-emerging-threats-what-is-social-engineering.html
 * '''Šifravimas''': užšifruoja siunčiamą informaciją;
 * '''Autentifikacija''': užtikrina, kad informaciją perduodantys asmenys nėra apsimetėliai;
 * '''Sąžiningumas''': užtikrina, kad perduodami duomenys nėra suklastoti.
Eilutė 45: Eilutė 39:
2. https://en.wikipedia.org/wiki/Social_engineering_(security) Tam, kad internetinė svetainė arba aplikacija turėtų galimybę naudoti TLS protokolą, turi būti iš anksto sudiegtas TLS sertifikatas pagrindiniame serveryje. Šio protokolo sertifikatas yra išduodamas asmeniui arba organizacijai, kuriai priklauso domenas. Sugeneruotas sertifikatas turi savyje informaciją apie domeno savininką bei serverio viešąjį raktą.
Eilutė 47: Eilutė 41:
3. http://psichika.eu/blog/kas-yra-socialine-inzinerija/ == TLS rankos paspaudimas ==
TLS sujungimas yra inicijuojamas naudojant TLS rankos paspaudimą. Iniciacija prasideda tuomet, kai vartotojas nori pasiekti internetinę svetainę naudodamas [[http://www.ims.mii.lt/EKŽ/h/hipertekstas.html|hipertekstų]] persiuntimo [[http://www.ims.mii.lt/EKŽ/p/protokolas.html|protokol]]ą ''(angl. HTTPS(Hypertext Transfer Protocol Secure))''. Tokiu atveju naršyklė išsiunčia užklausą internetinės svetainės serveriui. TLS rankos paspaudimas taipogi įvyksta tada, kuomet kiti komunikavimo įrankiai naudoja HTTPS, pavyzdžiui IP telefonija arba DNS per HTTPS užklausos.
Eilutė 49: Eilutė 44:
4. https://www.csoonline.com/article/2123704/fraud-prevention/social-engineering--anatomy-of-a-hack.html?nsdr=true TLS rankos paspaudimas įvyksta po to, kai yra užmezgamas TCP ryšys su TCP rankos paspaudimo pagalba.
Eilutė 51: Eilutė 46:
5. http://searchcio.techtarget.com/definition/pretexting Vykstant TLS rankos paspaudimui, vartotojas ir serveris kartu atlieka nurodytus veiksmus:

 * Nustatoma TLS protokolo versija;
 * Nustatomi šifravimo algoritmai;
 * Serverio autentifikacija naudojant serverio viešąjį raktą ir SSL sertifikato parašą;
 * Generuojamas seanso raktas, kad būtų panaudota simetrinio rakto kriptografija po rankos paspaudimo pabaigos.

TLS rankos paspaudimą sudaro duomenų paketai arba pranešimai, kurie buvo sukeisti tarp vartotojo ir serverio.

TLS rankos paspaudimo žingsnių skaičius priklauso nuo dvejų šalių naudojamo rakto sukeitimo algoritmo ir šifravimo algoritmo. Dažniausiai yra naudojamas RSA viešojo rakto sukeitimo algoritmas, jo pavyzdys:

1. '''Vartotojo pasisveikinimo pranešimas''': vartotojas inicijuoja rankos paspaudimą išsiųsdamas pasisveikinimo pranešimą serveriui. Pranešimą sudaro duomenys apie tai, kokią TLS protokolo versiją bei šifravimo algoritmus palaiko vartotojas ir atsitiktinai parinktų baitų eilutė;

2. '''Serverio pasisveikinimo pranešimas''': kaip atsaką vartotojui, serveris siunčia pranešimą su SSL sertifikatu, pasirinktu šifravimo algoritmu ir atitinkamai atsitiktinai parinktų baitų eilutę, kurią sugeneravo serveris;

3. '''Autentifikacija''': vartotojas patikrina gautą serverio SSL sertifikatą pasinaudodamas sertifikavimo institucija, kuri jį išdavė. Tai patvirtina, jog serveris yra autentiškas;

4. '''„Premaster secret“ pranešimas''': vartotojas siunčia dar vieną atsitiktinai sugeneruotų baitų eilutę vadinamą „premaster secret“. Ši baitų eilutė yra šifruota su viešuoju raktu ir gali būti iššifruota serverio su privačiu raktu;

5. '''Privataus rakto panaudojimas''': serveris iššifruoja „premaster secret“ pranešimą;

6. '''Seanso raktų generavimas''': vartotojas ir serveris generuoja seanso raktus pasinaudodami savo prieš tai išsiųstomis baitų eilutėmis. Generavimo rezultatai turi sutapti;

7. '''Vartotojas pasiruošęs''': vartotojas siunčia „pasiruošęs“ pranešimą, kuris yra šifruotas su seanso raktu;

8. '''Serveris pasiruošęs''': serveris siunčia „pasiruošęs“ pranešimą, kuris yra šifruotas su seanso raktu;

9. '''Simetrinio rakto kriptografija atlikta''': rankos paspaudimas atliktas, informacijos dalinimasis vyksta naudojant seanso raktus.

{{attachment:1pav.png}}

 . 1 pav. TLS rankos paspaudimas

Kuomet duomenys yra užšifruoti ir autentifikuoti, jiems yra suteikiamas pranešimo autentifikacijos kodas (MAC). Gavėjas gali patikrinti MAC ir įsitikinti, jog gauti duomenys nėra suklastoti.

== TLS 1.0 pažeidžiamumai ==
Mokėjimo kortelių pramonės apsaugos standartų tarybą (''angl. PCI Council'') 2018 metų birželio mėnesį pateikė organizacijoms pasiūlymą migruoti iš TLS 1.0 versijos į TLS 1.1 arba naujesnę. Tų pačių metų spalio mėnesį „Apple“, „Google“, „Microsoft“ ir „Mozilla“ paskelbė, jog pašalins TLS 1.0 ir 1.1 versijas 2020 metų kovo mėnesį.

== POODLE ==
„POODLE“ ''(Padding Oracle On Downgraded Legacy Encryption)'' yra vienas iš atakos tipų, paskelbtas 2014 metų spalį. Nors POODLE taikosi į SSL 3.0 protokolo versiją, tam tikri TLS 1.0/1.1 diegimai taipogi gali būti pažeisti dėl neatitinkamo užpildymo. Ši ataka vadovaujasi dviem įrankiais:

 * Iki šiol kai kurie serveriai ir vartotojai vis dar naudoja senas SSL/TLS versijas;
 * SSL 3.0 arba kitos protokolo versijos pažeidžiamumas, kuris yra susijęs su užpildymo blokavimu.

Vartotojas inicijuodamas rankos paspaudimą siunčia palaikomų SSL/TLS protokolų sąrašą. Tuo tarpu kibernetinis užpuolikas perima siunčiamų duomenų srautą atlikdamas „žmogaus viduryje“ (''angl. MITM(man-in-the-middle)'') ataką. Šios atakos dėka užpuolikas slapta perduoda ir keičia dviejų šalių, manančių, kad jos tiesiogiai bendrauja tarpusavyje, perduodamą informaciją. Tokių būdu piktavalis apsimeta esąs serveris, kol vartotojas nesutinka naudoti SSL 3.0 arba kitą pažeidžiamą protokolą.

{{attachment:2pav.png}}

 . 2 pav. POODLE ataka

Šio protokolo pažeidžiamumas yra kriptografijos bloko šifro algoritme (''angl. CBC(Cipher Block Chaining)''). Bloko šifrai priima tik tuos blokus, kurie yra tam tikro ilgio. Jeigu paskutiniame bloke esančių duomenų skaičius nėra bloko kartotinis skaičius, likusi vieta yra užpildoma. Serveris ignoruoja užpildymo turinį ir tikrina užpildymo ilgį. Jeigu užpildymo ilgis yra tinkamas, serveris suteikia pranešimo autentifikacijos kodą (MAC). Tokiu būdu serveris negali patikrinti ar užpildymo turinis buvo pakeistas.

Užpuolikas gali iššifruoti užšifruotą bloką keisdamas užpildymo baitus ir stebėti serverio atsaką. Maksimalus užklausų skaičius SSL 3.0 protokolui, kad iššifruoti vieną baitą, yra 256. Naudojant automatizuotus įrankius, piktavalis gali gauti siunčiamų duomenų turinį.

== BEAST ==
Naršyklės išnaudojimas prieš SSL/TLS (''angl. BEAST(Browser Exploit Against SSL/TLS)'') ataka buvo atskleista 2011 metų rugsėjį. Ši ataka gali būti panaudota naršyklėse, kurios naudoja SSL 3.0, TLS 1.0 arba senesnius protokolus. Užpuolikas gali iššifruoti tarp dviejų šalių siunčiamus duomenis pasinaudodamas kriptografijos bloko šifro algoritmo (''angl. CBC(Cipher Block Chaining)'') pažeidžiamumą.

Ši ataka vyksta iš vartotojo pusės, kuomet piktavalis naudoja MITM su tikslu įterpti paketą į TLS srautą. Tai suteikia galimybę atspėti inicializacijos vektorių (''angl. IV(Initialization Vector'')), kuris yra atsitiktinai sugeneruotas šifruotų duomenų pradžioje. Užpuolikas atsitiktinai parenka inicializacijos vektorių, kuris yra įskiepytas į pranešimą, ir lygina gautą rezultatą su blokų, kurį nori iššifruoti.

Tam, kad sėkmingai atlikti BEAST ataką, piktavalis privalo turėti prieigą prie aukos naršyklės, kadangi matydamas naršyklės HTML kodą gali atrasti sau reikalingą informaciją atakai atlikti.

== CRIME ==
Glaudinimo santykio informacijos nutekėjimo ataka ''(angl. CRIME(Compression Ratio Info-leak Made Easy)) ''yra atliekama pasinaudojant vartotojo siunčiamo pasisveikinimo pranešimą serveriui. Glaudinimas naudojamas SSL/TLS protokole tam, kad apriboti siunčiamų duomenų kiekį per tam tikrą laiką. Užmegzti ryšį galima ir nenaudojant glaudinimo. Sumažinimas ''(angl. DEFLATE) ''yra dažnai naudojamas duomenų suspaudimo algoritmas šioje srityje.

Serveris atsakydamas į vartotojo atsiųstą pasisveikinimo pranešimą išsiunčia savo sugeneruotą pasisveikinimo pranešimą, kuriame yra nurodomas glaudinimo metodas.

{{attachment:3pav.png}}
  3 pav. Serverio pasisveikinimo pranešime siunčiama informacija gauta „Wireshark“ įrankio dėka

Nagrinėjant 3 pav. esančią informaciją galima pastebėti, kad glaudinimo metodo reikšmė yra nulis. Tai reiškia, kad glaudinimo metodas nebus naudojamas.

Pagrindinis glaudinimo algoritmų veikimo principas yra tai, kad pasikartojančių baitų seka yra pakeičiama rodykle ''(angl. pointer)'' į pirmąjį objektą toje sekoje.

{{attachment:4pav.png}}
  4 pav. Rodyklės priskyrimas naudojant glaudinimo algoritmą

Pavyzdžiui, užpuolikas nori gauti savo aukos slapuką ''(angl. cookie)''. Piktavalis žino, kad svetainė, kurią bando pasiekti vartotojas, sukuria seanso slapuką pavadinimu „x“. Užpuolikas žinodamas, kad „DEFLATE“ glaudinimo algoritmas pakeičia pasikartojančius baitus tuo pasinaudoja. Jis įskiepija į vartotojo slapuką tokius duomenis „Cookie:x=0“. Serveris savo ruožtu pridės tik „0“ reikšmę, kadangi „Cookie:x=“ jau buvo siunčiamas vartotojo slapuke ir yra pasikartojantis.

{{attachment:5pav.png}}
  5 pav. CRIME ataka

Tokiu būdu užpuolikas po vieną prideda atsitiktines reikšmes stebėdamas atsako ilgį. Jeigu pridėjus reikšmę atsako ilgis sumažėjo, pridėta reikšmė buvo panaudota vartotojo slapuke. Kuomet pridėjus reikšmę atsako ilgis padidėja, ji nebuvo panaudota vartotojo slapuke.

{{attachment:6pav.png}}
  6 pav. Slapuko reikšmių parinkimas ir atsako stebėjimas

== BREACH ==
„BREACH“ ''(Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext) ''atakos veikimo principas yra panašus į CRIME, tačiau ši ataka taikosi į [[http://www.ims.mii.lt/EKŽ/h/hipertekstas.html|hipertekstų]] persiuntimo protokolo ''(angl. HTTP(Hypertext Transfer Protocol)) ''glaudinimo algoritmus. Užpuolikas priverstinai užmezgą ryšį tarp vartotojo naršyklės ir svetainės, kurioje yra naudojamas TLS protokolas. Po to, kai ryšys buvo sėkmingai užmegztas, piktavalis stebi duomenų srautą tarp vartotojo ir serverio naudodamas MITM ''(man-in-the-middle) ''ataką.

Pažeidžiama internetinė programa turi atitikti šiuos reikalavimus:
 * Aptarnaujama serverio, kuris naudoja HTTP glaudinimą;
 * Atspindi vartotojo įvestį HTTP pranešimų dėka;
 * Atspindi prieigos raktą HTTP pranešime.

== Heartbleed ==
„Heartbleed“ yra „OpenSSL“ kriptografijos bibliotekos saugos klaida, kuri yra plačiai naudojama TLS protokole. Šis plėtinys yra naudojamas tam, kad išlaikyti užmegztą ryšį tarp dviejų funkcionuojančių šalių.

Vartotojas siunčia serveriui „Heartbeat“ signalą su duomenimis ir duomenų ilgių. Serveris savo ruožtu atsako į „Heartbeat“ signalą siųsdamas duomenis ir duomenų ilgį, kurį gavo iš vartotojo.

{{attachment:7pav.png}}
  7 pav. „Heartbeat“ signalas

„Heartbleed“ veikimo principas buvo pagrįstas tuo, kad vartotojas išsiunčia klaidingą nurodytų duomenų ilgį, o serveris atsako su nurodytu duomenų ilgių ir jį atitinkančią atsitiktine informaciją iš savo duomenų bazės.

{{attachment:8pav.png}}
  8 pav. „Heartbleed“ ataka

Atliekant tokius veiksmus, iš serverio galima gauti neskelbtinus duomenis su kurių pagalba užpuolikas gali stebėti visą duomenų srautą keliaujantį į serverį.

== Išvados ==
SSL/TLS protokolai yra naudojami siunčiamiems duomenims apsaugoti. Duomenų apsauga priklauso ne tik nuo protokolo bei naudojamo serverio ar kitos įrangos konfigūravimo, bet ir nuo vartotojo atidumo ir kompetencijos.Efektyviausias būdas apsisaugoti nuo SSL/TLS atakų – atnaujinti naudojamo protokolo versiją. Egzistuoja numatyti saugumo standartai, kurie tiksliai apibrėžia kokius protokolus reikia naudoti, o kuriuos vengti.

== Literatūra ==
1. „What is TLS (Transport Layer Security)?“ https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 5 d.]

2. „What Happens in a TLS Handshake? | SSL Handshake“ https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 5 d.]

3. „TLS 1.0 and TLS 1.1 Are No Longer Secure“ https://www.packetlabs.net/tls-1-1-no-longer-secure/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 5 d.]

4. „Deprecation of TLS 1.0“ https://www.comodo.com/e-commerce/ssl-certificates/tls-1-deprecation.php [Interaktyvus] [žiūrėta 2020 m. Gruodžio 5 d.]

5. „TLS Security 6: Examples of TLS Vulnerabilities and Attacks“ https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 5 d.]

6. „What Is the POODLE Attack?“ https://www.acunetix.com/blog/web-security-zone/what-is-poodle-attack/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 6 d.]

7. „Man in the middle (MITM) attack“ https://www.imperva.com/learn/application-security/man-in-the-middle-attack-mitm/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 6 d.]

8. „What Is the BEAST Attack“ https://www.acunetix.com/blog/web-security-zone/what-is-beast-attack/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 6 d.]

9. „CRIME SSL/TLS attack“ https://www.acunetix.com/vulnerabilities/web/crime-ssl-tls-attack/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 6 d.]

10. „SSL, GONE IN 30 SECONDS“ http://breachattack.com/#howitworks [Interaktyvus] [žiūrėta 2020 m. Gruodžio 6 d.]

11. „The Heartbleed Bug“ https://heartbleed.com/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 6.]

TLS 1.0 pažeidžiamumai

Turinys

1. Įvadas

2. TLS protokolas

2.1. TLS rankos paspaudimas

3. TLS 1.0 pažeidžiamumai

3.1. POODLE

3.2. BEAST

3.3. CRIME

3.4. BREACH

3.5. Heartbleed

4. Išvados

5. Literatūra

Įvadas

Transporto lygmens saugumo protokolas (angl. TLS(Transport Layer Security)) yra sukurtas komunikacijos saugumui naudojant kompiuterinį tinklą užtikrinti. Šis protokolas yra naudojamas informacijos kodavimui tarp aplikacijos ir serverio. TLS taipogi yra naudojamas elektroninių laiškų, žinučių, IP telefonijos (angl. VoIP(Voice over IP)) informacijos šifravime.

TLS kilo iš saugiųjų sujungimų lygmens (angl. SSL(Secure Socket Layers)) protokolo, kuris buvo sukurtas Netscape įmonės 1994 metais. SSL protokolo pagrindinė paskirtis buvo užtikrinti saugius interneto seansus. SSL 1.0 versija nebuvo oficialiai išleista dėl neatitinkamų saugumo reikalavimų. SSL 2.0 buvo išleistas 2011 metais, tačiau netrukus buvo pakeistas SSL 3.0 versija, kurios veikimo principu ir remiasi TLS protokolas.

TLS protokolas buvo pasiūlytas „Internet Engineering Task Force“ (IETF) organizacijos. Pirmoji jo versija buvo paskelbta 1999 metais. Kaip ir SSL protokolas, šis turi tris versijas. Pirmoji TLS 1.0 versija buvo SSL 3.0 patobulinimu. Skirtumai tarp TLS 1.0 ir SSL 3.0 nėra drastiški, tačiau pakankamai svarūs, kad šitie du protokolai veiktų nepriklausomai vienas nuo kito.

TLS protokolas

TLS protokolas atsako už šiuos veiksnius:

  • Šifravimas: užšifruoja siunčiamą informaciją;

  • Autentifikacija: užtikrina, kad informaciją perduodantys asmenys nėra apsimetėliai;

  • Sąžiningumas: užtikrina, kad perduodami duomenys nėra suklastoti.

Tam, kad internetinė svetainė arba aplikacija turėtų galimybę naudoti TLS protokolą, turi būti iš anksto sudiegtas TLS sertifikatas pagrindiniame serveryje. Šio protokolo sertifikatas yra išduodamas asmeniui arba organizacijai, kuriai priklauso domenas. Sugeneruotas sertifikatas turi savyje informaciją apie domeno savininką bei serverio viešąjį raktą.

TLS rankos paspaudimas

TLS sujungimas yra inicijuojamas naudojant TLS rankos paspaudimą. Iniciacija prasideda tuomet, kai vartotojas nori pasiekti internetinę svetainę naudodamas hipertekstų persiuntimo protokolą (angl. HTTPS(Hypertext Transfer Protocol Secure)). Tokiu atveju naršyklė išsiunčia užklausą internetinės svetainės serveriui. TLS rankos paspaudimas taipogi įvyksta tada, kuomet kiti komunikavimo įrankiai naudoja HTTPS, pavyzdžiui IP telefonija arba DNS per HTTPS užklausos.

TLS rankos paspaudimas įvyksta po to, kai yra užmezgamas TCP ryšys su TCP rankos paspaudimo pagalba.

Vykstant TLS rankos paspaudimui, vartotojas ir serveris kartu atlieka nurodytus veiksmus:

  • Nustatoma TLS protokolo versija;
  • Nustatomi šifravimo algoritmai;
  • Serverio autentifikacija naudojant serverio viešąjį raktą ir SSL sertifikato parašą;
  • Generuojamas seanso raktas, kad būtų panaudota simetrinio rakto kriptografija po rankos paspaudimo pabaigos.

TLS rankos paspaudimą sudaro duomenų paketai arba pranešimai, kurie buvo sukeisti tarp vartotojo ir serverio.

TLS rankos paspaudimo žingsnių skaičius priklauso nuo dvejų šalių naudojamo rakto sukeitimo algoritmo ir šifravimo algoritmo. Dažniausiai yra naudojamas RSA viešojo rakto sukeitimo algoritmas, jo pavyzdys:

1. Vartotojo pasisveikinimo pranešimas: vartotojas inicijuoja rankos paspaudimą išsiųsdamas pasisveikinimo pranešimą serveriui. Pranešimą sudaro duomenys apie tai, kokią TLS protokolo versiją bei šifravimo algoritmus palaiko vartotojas ir atsitiktinai parinktų baitų eilutė;

2. Serverio pasisveikinimo pranešimas: kaip atsaką vartotojui, serveris siunčia pranešimą su SSL sertifikatu, pasirinktu šifravimo algoritmu ir atitinkamai atsitiktinai parinktų baitų eilutę, kurią sugeneravo serveris;

3. Autentifikacija: vartotojas patikrina gautą serverio SSL sertifikatą pasinaudodamas sertifikavimo institucija, kuri jį išdavė. Tai patvirtina, jog serveris yra autentiškas;

4. „Premaster secret“ pranešimas: vartotojas siunčia dar vieną atsitiktinai sugeneruotų baitų eilutę vadinamą „premaster secret“. Ši baitų eilutė yra šifruota su viešuoju raktu ir gali būti iššifruota serverio su privačiu raktu;

5. Privataus rakto panaudojimas: serveris iššifruoja „premaster secret“ pranešimą;

6. Seanso raktų generavimas: vartotojas ir serveris generuoja seanso raktus pasinaudodami savo prieš tai išsiųstomis baitų eilutėmis. Generavimo rezultatai turi sutapti;

7. Vartotojas pasiruošęs: vartotojas siunčia „pasiruošęs“ pranešimą, kuris yra šifruotas su seanso raktu;

8. Serveris pasiruošęs: serveris siunčia „pasiruošęs“ pranešimą, kuris yra šifruotas su seanso raktu;

9. Simetrinio rakto kriptografija atlikta: rankos paspaudimas atliktas, informacijos dalinimasis vyksta naudojant seanso raktus.

1pav.png

  • 1 pav. TLS rankos paspaudimas

Kuomet duomenys yra užšifruoti ir autentifikuoti, jiems yra suteikiamas pranešimo autentifikacijos kodas (MAC). Gavėjas gali patikrinti MAC ir įsitikinti, jog gauti duomenys nėra suklastoti.

TLS 1.0 pažeidžiamumai

Mokėjimo kortelių pramonės apsaugos standartų tarybą (angl. PCI Council) 2018 metų birželio mėnesį pateikė organizacijoms pasiūlymą migruoti iš TLS 1.0 versijos į TLS 1.1 arba naujesnę. Tų pačių metų spalio mėnesį „Apple“, „Google“, „Microsoft“ ir „Mozilla“ paskelbė, jog pašalins TLS 1.0 ir 1.1 versijas 2020 metų kovo mėnesį.

POODLE

„POODLE“ (Padding Oracle On Downgraded Legacy Encryption) yra vienas iš atakos tipų, paskelbtas 2014 metų spalį. Nors POODLE taikosi į SSL 3.0 protokolo versiją, tam tikri TLS 1.0/1.1 diegimai taipogi gali būti pažeisti dėl neatitinkamo užpildymo. Ši ataka vadovaujasi dviem įrankiais:

  • Iki šiol kai kurie serveriai ir vartotojai vis dar naudoja senas SSL/TLS versijas;
  • SSL 3.0 arba kitos protokolo versijos pažeidžiamumas, kuris yra susijęs su užpildymo blokavimu.

Vartotojas inicijuodamas rankos paspaudimą siunčia palaikomų SSL/TLS protokolų sąrašą. Tuo tarpu kibernetinis užpuolikas perima siunčiamų duomenų srautą atlikdamas „žmogaus viduryje“ (angl. MITM(man-in-the-middle)) ataką. Šios atakos dėka užpuolikas slapta perduoda ir keičia dviejų šalių, manančių, kad jos tiesiogiai bendrauja tarpusavyje, perduodamą informaciją. Tokių būdu piktavalis apsimeta esąs serveris, kol vartotojas nesutinka naudoti SSL 3.0 arba kitą pažeidžiamą protokolą.

2pav.png

  • 2 pav. POODLE ataka

Šio protokolo pažeidžiamumas yra kriptografijos bloko šifro algoritme (angl. CBC(Cipher Block Chaining)). Bloko šifrai priima tik tuos blokus, kurie yra tam tikro ilgio. Jeigu paskutiniame bloke esančių duomenų skaičius nėra bloko kartotinis skaičius, likusi vieta yra užpildoma. Serveris ignoruoja užpildymo turinį ir tikrina užpildymo ilgį. Jeigu užpildymo ilgis yra tinkamas, serveris suteikia pranešimo autentifikacijos kodą (MAC). Tokiu būdu serveris negali patikrinti ar užpildymo turinis buvo pakeistas.

Užpuolikas gali iššifruoti užšifruotą bloką keisdamas užpildymo baitus ir stebėti serverio atsaką. Maksimalus užklausų skaičius SSL 3.0 protokolui, kad iššifruoti vieną baitą, yra 256. Naudojant automatizuotus įrankius, piktavalis gali gauti siunčiamų duomenų turinį.

BEAST

Naršyklės išnaudojimas prieš SSL/TLS (angl. BEAST(Browser Exploit Against SSL/TLS)) ataka buvo atskleista 2011 metų rugsėjį. Ši ataka gali būti panaudota naršyklėse, kurios naudoja SSL 3.0, TLS 1.0 arba senesnius protokolus. Užpuolikas gali iššifruoti tarp dviejų šalių siunčiamus duomenis pasinaudodamas kriptografijos bloko šifro algoritmo (angl. CBC(Cipher Block Chaining)) pažeidžiamumą.

Ši ataka vyksta iš vartotojo pusės, kuomet piktavalis naudoja MITM su tikslu įterpti paketą į TLS srautą. Tai suteikia galimybę atspėti inicializacijos vektorių (angl. IV(Initialization Vector)), kuris yra atsitiktinai sugeneruotas šifruotų duomenų pradžioje. Užpuolikas atsitiktinai parenka inicializacijos vektorių, kuris yra įskiepytas į pranešimą, ir lygina gautą rezultatą su blokų, kurį nori iššifruoti.

Tam, kad sėkmingai atlikti BEAST ataką, piktavalis privalo turėti prieigą prie aukos naršyklės, kadangi matydamas naršyklės HTML kodą gali atrasti sau reikalingą informaciją atakai atlikti.

CRIME

Glaudinimo santykio informacijos nutekėjimo ataka (angl. CRIME(Compression Ratio Info-leak Made Easy)) yra atliekama pasinaudojant vartotojo siunčiamo pasisveikinimo pranešimą serveriui. Glaudinimas naudojamas SSL/TLS protokole tam, kad apriboti siunčiamų duomenų kiekį per tam tikrą laiką. Užmegzti ryšį galima ir nenaudojant glaudinimo. Sumažinimas (angl. DEFLATE) yra dažnai naudojamas duomenų suspaudimo algoritmas šioje srityje.

Serveris atsakydamas į vartotojo atsiųstą pasisveikinimo pranešimą išsiunčia savo sugeneruotą pasisveikinimo pranešimą, kuriame yra nurodomas glaudinimo metodas.

3pav.png

  • 3 pav. Serverio pasisveikinimo pranešime siunčiama informacija gauta „Wireshark“ įrankio dėka

Nagrinėjant 3 pav. esančią informaciją galima pastebėti, kad glaudinimo metodo reikšmė yra nulis. Tai reiškia, kad glaudinimo metodas nebus naudojamas.

Pagrindinis glaudinimo algoritmų veikimo principas yra tai, kad pasikartojančių baitų seka yra pakeičiama rodykle (angl. pointer) į pirmąjį objektą toje sekoje.

4pav.png

  • 4 pav. Rodyklės priskyrimas naudojant glaudinimo algoritmą

Pavyzdžiui, užpuolikas nori gauti savo aukos slapuką (angl. cookie). Piktavalis žino, kad svetainė, kurią bando pasiekti vartotojas, sukuria seanso slapuką pavadinimu „x“. Užpuolikas žinodamas, kad „DEFLATE“ glaudinimo algoritmas pakeičia pasikartojančius baitus tuo pasinaudoja. Jis įskiepija į vartotojo slapuką tokius duomenis „Cookie:x=0“. Serveris savo ruožtu pridės tik „0“ reikšmę, kadangi „Cookie:x=“ jau buvo siunčiamas vartotojo slapuke ir yra pasikartojantis.

5pav.png

  • 5 pav. CRIME ataka

Tokiu būdu užpuolikas po vieną prideda atsitiktines reikšmes stebėdamas atsako ilgį. Jeigu pridėjus reikšmę atsako ilgis sumažėjo, pridėta reikšmė buvo panaudota vartotojo slapuke. Kuomet pridėjus reikšmę atsako ilgis padidėja, ji nebuvo panaudota vartotojo slapuke.

6pav.png

  • 6 pav. Slapuko reikšmių parinkimas ir atsako stebėjimas

BREACH

„BREACH“ (Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext) atakos veikimo principas yra panašus į CRIME, tačiau ši ataka taikosi į hipertekstų persiuntimo protokolo (angl. HTTP(Hypertext Transfer Protocol)) glaudinimo algoritmus. Užpuolikas priverstinai užmezgą ryšį tarp vartotojo naršyklės ir svetainės, kurioje yra naudojamas TLS protokolas. Po to, kai ryšys buvo sėkmingai užmegztas, piktavalis stebi duomenų srautą tarp vartotojo ir serverio naudodamas MITM (man-in-the-middle) ataką.

Pažeidžiama internetinė programa turi atitikti šiuos reikalavimus:

  • Aptarnaujama serverio, kuris naudoja HTTP glaudinimą;
  • Atspindi vartotojo įvestį HTTP pranešimų dėka;
  • Atspindi prieigos raktą HTTP pranešime.

Heartbleed

„Heartbleed“ yra „OpenSSL“ kriptografijos bibliotekos saugos klaida, kuri yra plačiai naudojama TLS protokole. Šis plėtinys yra naudojamas tam, kad išlaikyti užmegztą ryšį tarp dviejų funkcionuojančių šalių.

Vartotojas siunčia serveriui „Heartbeat“ signalą su duomenimis ir duomenų ilgių. Serveris savo ruožtu atsako į „Heartbeat“ signalą siųsdamas duomenis ir duomenų ilgį, kurį gavo iš vartotojo.

7pav.png

  • 7 pav. „Heartbeat“ signalas

„Heartbleed“ veikimo principas buvo pagrįstas tuo, kad vartotojas išsiunčia klaidingą nurodytų duomenų ilgį, o serveris atsako su nurodytu duomenų ilgių ir jį atitinkančią atsitiktine informaciją iš savo duomenų bazės.

8pav.png

  • 8 pav. „Heartbleed“ ataka

Atliekant tokius veiksmus, iš serverio galima gauti neskelbtinus duomenis su kurių pagalba užpuolikas gali stebėti visą duomenų srautą keliaujantį į serverį.

Išvados

SSL/TLS protokolai yra naudojami siunčiamiems duomenims apsaugoti. Duomenų apsauga priklauso ne tik nuo protokolo bei naudojamo serverio ar kitos įrangos konfigūravimo, bet ir nuo vartotojo atidumo ir kompetencijos.Efektyviausias būdas apsisaugoti nuo SSL/TLS atakų – atnaujinti naudojamo protokolo versiją. Egzistuoja numatyti saugumo standartai, kurie tiksliai apibrėžia kokius protokolus reikia naudoti, o kuriuos vengti.

Literatūra

1. „What is TLS (Transport Layer Security)?“ https://www.cloudflare.com/learning/ssl/transport-layer-security-tls/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 5 d.]

2. „What Happens in a TLS Handshake? | SSL Handshake“ https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 5 d.]

3. „TLS 1.0 and TLS 1.1 Are No Longer Secure“ https://www.packetlabs.net/tls-1-1-no-longer-secure/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 5 d.]

4. „Deprecation of TLS 1.0“ https://www.comodo.com/e-commerce/ssl-certificates/tls-1-deprecation.php [Interaktyvus] [žiūrėta 2020 m. Gruodžio 5 d.]

5. „TLS Security 6: Examples of TLS Vulnerabilities and Attacks“ https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 5 d.]

6. „What Is the POODLE Attack?“ https://www.acunetix.com/blog/web-security-zone/what-is-poodle-attack/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 6 d.]

7. „Man in the middle (MITM) attack“ https://www.imperva.com/learn/application-security/man-in-the-middle-attack-mitm/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 6 d.]

8. „What Is the BEAST Attack“ https://www.acunetix.com/blog/web-security-zone/what-is-beast-attack/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 6 d.]

9. „CRIME SSL/TLS attack“ https://www.acunetix.com/vulnerabilities/web/crime-ssl-tls-attack/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 6 d.]

10. „SSL, GONE IN 30 SECONDS“ http://breachattack.com/#howitworks [Interaktyvus] [žiūrėta 2020 m. Gruodžio 6 d.]

11. „The Heartbleed Bug“ https://heartbleed.com/ [Interaktyvus] [žiūrėta 2020 m. Gruodžio 6.]