Šodien es parādīšu lielisku rīku Wireshark. Tā ir programma, kas var pieslēgties pie Tavas tīkla kartes un tiešajā laikā apskatīt Tavu interneta savienojumu. Ar tās palīdzību Tu redzēsi, kādas tieši datu pakas tiek saņemtas vai aizsūtītas, no kurām IP adresēm tiek sūtītas šīs pakas un kas šājās datu pakās ir iekšā?
Tātad, lai arī kāda programma būtu Tavā datorā, ja tā izmanto interneta savienojumu, Wireshark redzēs visas datu pakas, kas tieši tiek sūtīts un saņemts. Šo programmu lieto pat drošības speciālisti, lai pārķertu informāciju, kas notiek starp konkrētu datoru un serveri. Viņi ērtā un pārskatāmā veidā šo informāciju var skatīties un analizēt tiešajā laikā. Tāpat arī šo programmu pielieto, lai atrastu vīrusus vai spiegu programmas. Ja spiegu programma sazinās ar serveri, arī šīs datu pakas šeit būs redzamas.
Lai ielādētu Wireshark mēs atvērsim Google un ierakstīsim meklētājā Wireshark. Un dosimies uz adresi wireshark.org. Tālāk atradīsim Download pogu un ielādēsim Windows Installer 64 biti. Tas ir pieejams gan uz macOS, gan uz Linux ierīcēm. Kad lejupielāde ir pabeigta, mēs atveram uzinstalēšanas failu un vienkārši spiežam vairākas reizes Next, jo pārējie uzstādījumi paliek nemainīgi. Kad Wireshark programma ir atvērta, man ir jānorāda, kuru tīkla karti es vēlos tagad novērot. Programma pati jau redz, kādas tīkla kartes tai ir pieejamas un piedāvā man tīkla karšu sarakstu. Es izvēlos Wi-Fi, jo mans internets iet caur šo Wi-Fi tīkla karti. Un Wireshark parāda informāciju tabulas formātā, kur mēs redzam pilnīgi visas datu pakas, kas iet caur manu interneta savienojumu. Te ir redzamas gan ienākošās, gan arī izejošās datu pakas. Un tas ir fantastisks rīks, jo te mēs kā caur lupu varam skatīties, kas tagad notiek un kādi tieši dati tiek sūtīti. Tātad šeit būs redzamas pilnīgi visas programmas, kas sūta datus, izmantojot internetu. Kā redzam manā video piemērā, šeit ir TCP un UDP pakas. Te mēs varam redzēt dažādu informāciju, piemēram, kura paka pēc kārtas tā ir? Cik sekundes pagājušas, kopš mēs sākām šo visu skenēt? No kuras IP adreses un kurai IP adresei tās tiek sūtītas? Kāds ir protokols? Kāds ir šīs pakas garums? Lai ko Jūs darītu internetā, skatītos YouTube video, rakstītu komentārus, spēlētu datorspēles vai lejupielādētu failus, visa šī datu plūsma tiek sadalīta tādās mazās pakās. To var salīdzināt kā ar preču vilcienu, kuram ir dažādi vagoni, un katrs vagons ir kā paka. Un šai pakai vienmēr ir struktūra.
Paskatīsimies piemēru un izvēlēsimies vienu paku. Uzspiežam uz kādas no rindiņām un apakšā, kreisajā stūrī HEX formātā mēs varam redzēt visus datus, kas šajā pakā tiek nosūtīti. Te ir kaut kādi dati saprotamā veidā, teiksim, Server: Apac he/2.4.41 (Ubunt u) vai Keep-Aliv e: timeo ut=5 un tādā garā. Redzam, ka šī ir http paka, kurā mēs tā kā nolasām informāciju no kaut kādas mājaslapas, kuru es esmu šajā brīdī atvēris. Un, lai būtu skaidrāk un vieglāk salasāms, kas šeit tieši notiek, es atvēršu savu mājaslapu, kas ir ambex.lv/projects/logintest/. Kā redzat manā video piemērā, te es esmu uztaisījis vienkāršu login formu, un pārlūka adreses lauka labajā pusē Jūs redzat, ka rakstīts Not secure. Tas ir tāpēc, ka es šeit neizmantoju https protokolu, bet izmantoju http. Tātad šī mājaslapa pilnvērtīgi var strādāt, bet savienojums ar šo mājaslapu un manu pārlūku nav šifrēts. Tāpēc dati, ko es šeit norādīšu, tie būs nolasāmi Wireshark platformā. Sākumā parādīšu lapas kodu, lai saprastu, kā tā ir uztaisīta, un kā tā strādā. Tātad te ir forma, te ir divi ievades lauki un te ir poga. Un te ir PHP kods, kurš norāda, ka, ja tiek nosūtīta parole, un parole ir abc123, tad parādās uzraksts: Autorizācija veiksmīga.
Tagad pievērsīsimies pārlūkā atvērtajai mājaslapai ambex.lv/projects/logintest/. Tātad šeit ir jānorāda savs Lietotāja vārds un Parole. Lietotājs šeit var būt jebkāds, es rakstīšu: andris. Paroli rakstu: abc123 → Pieslēgties. Un, protams, nākamajā logā man parāda paziņojumu, ka Autorizācija veiksmīga, jo ir izpildīts nosacījums – ir ierakstīta pareiza parole.
Un apskatīsimies, kā šī informācija tiek attēlota Wireshark. Tātad informācija, kas tika nosūtīta, kad ielogojos mājaslapā, ir atrodama kādā no šīm datu pakām. Jo savienojums ar serveri nevar notikt tādā veidā, ka tas nav redzams šeit. Tāpēc, lai noskaidrotu, kura no šīm pakām atbilst šim serverim, man ir jāatfiltrē tas, kas atbilst šim Ambex.lv. Bet šajā Wireshark Jūs redzat, ka te nekur nav rakstīti domēni, te ir tikai IP adreses. Līdz ar to vispirms ir jānoskaidro, kāda IP adrese ir šim domēnam Ambex.lv. Lai to izdarītu, es Google ierakstīšu domain to ip. Un pirmajā rezultātā parādās domaintoipconverter.com. Atveru to un ievades laukā ierakstīšu šo https://ambex.lv/ domēnu un nospiežu Convert. Šajā brīdī man parāda rezultātu, ka Ambex.lv domēns ir saistīts ar IP adresi 91.228.7.150, un to es nokopēju. Atgriežamies uz Wireshark datu paku sarakstu un filtrā iekopēšu ip.addr==91.228.7.150 un nospiežu Filtrēt. Šādā veidā viņš rādīs tikai pakas, kas ir nākušas vai nu no šī servera, vai kas ir aizsūtīts uz šo serveri. Es nospiežu OK. Un tagad man tiek parādīts, ka ir dažādas http un TCP pakas un paskatīsimies pirmo. Mēs redzam, ka ir nosūtīts POST pieprasījums uz projects/logintest/HTTP/1.1. Un apakšējā kreisajā laukā mēs varam redzēt, kas tieši tur tika nosūtīts. Nospiežam uz bultiņas simbola rindas sākumā un mums atveras papildinformācija. Mēs redzam, ka lietotājs ir andris un parole tika norādīta abc123. Un šī ir ļoti svarīga informācija, jo te es redzu, kas reāli notiek šajā savienojumā. Un patiesībā, ja būtu kāds hakeris, kurš novērotu manu interneta savienojumu, viņš tieši tādā pašā veidā varētu redzēt manas paroles. Turklāt viņš pat varētu izmainīt datus, kas man atnāk. Piemēram es varētu atvērt kādu mājaslapu, kas man liektos laba, bet tur viņš būtu ielicis iekšā savu ļauno kodu, kas apdraudētu mani. Šādos gadījumos, kad https un SSL sertifikāti nav iespējoti, pārlūki ir sākuši rādīt pie adreses lauka sākuma brīdinājumu Not secure, lai mēs kā tietotāji zinām, ka šeit jābūt īpaši piesardzīgiem un jāizvērtē lapas apmeklējuma nepieciešamība.
Tagad es Jums parādīšu, kas notiek tad, ja mēs izmantojam drošo savienojumu. Es nodzēsīšu Wireshark programmā liekos datus, lai būtu vieglāk pārskatīt un salīdzināt. Es nospiedīšu uz kvadrāta ikonas augšējā rīkjoslā, kas nozīmē Apstādināt. Un nospiedīšu Continue without Saving, jeb latviski būtu Turpināt bez saglabāšanas. Tagad mēs redzam, kā šīs jaunās pakas nāk iekšā, bet nekas netiek attēlots, jo man joprojām ir uzlikts filtrs uz Ambex.lv serveri. Tāpēc tagad filtrā es norādīšu, ka es kā serveri vēlos izmantot https. Kamēr es nodefinēju nosacījumus jaunajam filtram, man turpināja rādīt iepriekšējā filtra datus, kurus es nodzēsīšu, lai uzskatāmāk varam salīdzināt jauno informāciju. Un tagad es palaidīšu to pašu skriptu, tikai ar https, kas attiecīgi ir https://ambex.lv/projects/logintest/. Un Jūs adreses lauka sākumā redzat atslēdziņas simbolu, uz kuras uzspiežot Jums parāda atšifrējumu, ka Connection is secure. Tad varam nospiest uz Connection is secure -> Certificate is valid un mums atveras jauns Security logs, kur redzam, ka šai lapai ir derīgs https sertifikāts. Ja interesē, Jūs varat papētīt datus vēl sīkāk, bet tagad tur daudz neiedziļināsimies.
Tātad dati, kas tiek izmantoti, ielogojoties Ambex.lv caur https, tiks šifrēti, izmantojot privāto publisko atslēgu. Es atkal autorizēšos https://ambex.lv/projects/logintest/ un norādīšu lietotāju Andris un paroli abc123. Un redzam, ka autorizācija ir veiksmīga. Tātad mēs tikko nosūtījām tos pašus datus, bet jau caur SSL. Un tagad paskatāmies Wireshark. Mēs redzam, ka tie dati, kas tika nosūtīti, patiesībā ir sūtīti, izmantojot QUIC protokolu. Un tāpat mēs varam redzēt, kas tur tieši notiek. Vispirms ir jāsaprot tas, kā šie dati tagad iet uz portu 443 nevis 80. portu, kā parasti ar http savienojumu. Un informācija, kas tur ir iekšā, nav salasāma. Attiecīgi, ja tagad spiežam uz bultiņas zīmes rindiņas sākumā, tad varam redzēt, ka te ir tāda lieta kā Payload, kas ir šī SSL šifrētā informācija. Tātad dati joprojām ir iekšā pakās, bet tie ir aizkodēti. Serveris tos varēs saprast, jo serverim ir pareizā atslēga, un viņš varēs atšifrēt un saprast, kur ir mans lietotājs un kur ir mana parole. Bet es atšifrējumu neredzu, jo man šī atslēga nav pieejama.
Šis ir piemērs, kā notiek šī šifrēšana, un kā tā izskatās no otras puses.
Un šis ir lielisks rīks, kas parāda, kādā veidā sazinās dažādas programmas, piemēram, ko sūta Skype uz serveri un atpakaļ. Tāpat ar šīs programmas palīdzību Jūs varēsiet atpazīt, vai Jums datorā ir kāda spiegu programma. Jūs varat izslēgt laukā pilnīgi visas savas programmas, kas sūta kaut kādus datus, un skatīties, kas paliek. Interesanta lieta vēl tāda, ka pat, ja šie dati tiek šifrēti (kā pēdējā apskatītajā piemērā caur https), bet mums ir piekļuve interneta plūsmai, mēs varam redzēt, no kuras un uz kādu IP adresi pakas tiek sūtītas. Mēs, kā starpnieki, varam redzēt, cik daudz datu tika nosūtīti uz kādām mājaslapām. Protams, mēs nevaram redzēt, kādi tieši dati un kas tur bija iekšā, bet mēs varam redzēt datu apjomu, un kurā brīdī cilvēks kādai mājaslapai pieslēdzas. Un tas ir pietiekami, lai analizētu datu plūsmu. Ņemiet arī vērā, ka, ja es šeit izmantotu VPN savienojumu, tad cilvēks pa vidu nevarētu to redzēt. Jo VPN sevī tā kā iekapsulē visu informāciju par visiem savienojumiem, uz kurām lapām tas notiek. Bet tā kā mēs izmantojam tikai https, tad šeit ir redzama pilna informācija, no kurienes, uz kurieni un kas tiek sūtīts.