Duomenų mainų analizė „WhatsApp“ žiniatinklio inicijavimo metu

Duomenų mainų analizė „WhatsApp“ žiniatinklio inicijavimo metu
Duomenų mainų analizė „WhatsApp“ žiniatinklio inicijavimo metu

„WhatsApp“ žiniatinklio inicijavimo supratimas

Skaitmeniniame amžiuje labai svarbu suprasti ryšį tarp įrenginių, ypač tokioms programoms kaip „WhatsApp Web“. Inicijuojant WhatsApp Web nuskaitant QR kodą, Android įrenginys ir naršyklė keičiasi įvairiais parametrais. Šis procesas apima užšifruotą srautą, kurį gali būti sudėtinga analizuoti.

Nepaisant to, kad naudojami tokie įrankiai kaip tpacketcapture ir Burp Suite su sertifikatu, įdiegtu įrenginyje, srautas išlieka užšifruotas, todėl kyla klausimų apie WhatsApp naudojamus protokolus. Šiame straipsnyje gilinamasi į šio proceso mechanizmus ir nagrinėjami galimi keičiamų parametrų analizės metodai per WhatsApp Web seansus.

komandą apibūdinimas
mitmproxy.http.HTTPFlow Nurodo vieną HTTP srautą mitmproxy, fiksuojant užklausą ir atsakymą.
ctx.log.info() Derinimo tikslais registruoja informaciją „mitmproxy“ konsolėje.
tshark -i wlan0 -w Pradeda tinklo srauto fiksavimą sąsajoje wlan0 ir įrašo jį į failą.
tshark -r -Y -T json Nuskaito fiksavimo failą, taiko rodymo filtrą ir išveda rezultatą JSON formatu.
jq '.[] | select(.layers.http2)' Apdoroja JSON išvestį, kad filtruotų įrašus, kuriuose yra HTTP/2 srauto.
cat whatsapp_filtered.json Rodo filtruoto JSON failo, kuriame yra „WhatsApp“ žiniatinklio srauto, turinį.

Išsamus srauto analizės scenarijų paaiškinimas

Pirmasis scenarijus svertų mitmproxy, galingas HTTP ir HTTPS srauto perėmimo įrankis. Šiame scenarijuje mes apibrėžiame klasę WhatsAppWebAnalyzer kuri fiksuoja pateiktus prašymus web.whatsapp.com. The request metodas iškviečiamas kiekvienai HTTP užklausai, perduodamai per tarpinį serverį. Patikrinus, ar prašymas pateiktas web.whatsapp.com, padidiname skaitiklį ir užregistruojame užklausos URL naudodami ctx.log.info. Tai leidžia mums stebėti ir registruoti visą ryšį tarp „Android“ įrenginio ir „WhatsApp Web“, suteikiant įžvalgą apie duomenis, kuriais keičiamasi QR kodo nuskaitymo proceso metu. The addons list registruoja mūsų pasirinktinį priedą su mitmproxy, leidžiančiu scenarijui sklandžiai paleisti, kai paleidžiama mitmproxy.

Antrasis scenarijus naudoja tshark, „Wireshark“ komandų eilutės versija, skirta tinklo srautui fiksuoti ir analizuoti. Komanda tshark -i wlan0 -w inicijuoja fiksavimą belaidėje sąsajoje ir įrašo išvestį į failą. Tada šis failas nuskaitomas ir filtruojamas, kad būtų rodomas tik srautas, susijęs su „Android“ įrenginio IP adresu, naudojant tshark -r -Y -T json. JSON išvestis toliau apdorojama naudojant jq, komandinės eilutės JSON procesorius, skirtas filtruoti HTTP/2 srautą naudojant jq '.[] | select(.layers.http2)'. Filtruotas srautas išsaugomas ir rodomas naudojant cat whatsapp_filtered.json, kuriame pateikiamas išsamus „WhatsApp“ žiniatinklio komunikacijos vaizdas. Šie scenarijai kartu siūlo patikimą metodą šifruoto srauto analizei, padedančius atskleisti parametrus, kuriais buvo keičiamasi „WhatsApp Web“ inicijavimo metu.

„WhatsApp“ žiniatinklio srauto perėmimas ir analizė

Python ir mitmproxy naudojimas srauto analizei

import mitmproxy.http
from mitmproxy import ctx

class WhatsAppWebAnalyzer:
    def __init__(self):
        self.num_requests = 0

    def request(self, flow: mitmproxy.http.HTTPFlow) -> None:
        if "web.whatsapp.com" in flow.request.pretty_host:
            self.num_requests += 1
            ctx.log.info(f"Request {self.num_requests}: {flow.request.pretty_url}")

addons = [WhatsAppWebAnalyzer()]

„WhatsApp“ žiniatinklio srauto iššifravimas analizei

„Wireshark“ ir „Tshark“ naudojimas tinklo srautui iššifruoti

#!/bin/bash

# Start tshark to capture traffic from the Android device
tshark -i wlan0 -w whatsapp_traffic.pcapng

# Decrypt the captured traffic
tshark -r whatsapp_traffic.pcapng -Y 'ip.addr == <ANDROID_DEVICE_IP>' -T json > whatsapp_traffic.json

# Filter for WhatsApp Web traffic
cat whatsapp_traffic.json | jq '.[] | select(.layers.http2)' > whatsapp_filtered.json

# Print the filtered traffic
cat whatsapp_filtered.json

Pažangių „WhatsApp“ žiniatinklio srauto analizės metodų tyrinėjimas

Vienas iš svarbiausių „WhatsApp“ žiniatinklio srauto analizės aspektų yra suprasti naudojamus šifravimo protokolus. „WhatsApp“ naudoja visišką šifravimą, o tai reiškia, kad pranešimai užšifruojami siuntėjo įrenginyje ir iššifruojami tik gavėjo įrenginyje. Dėl to srauto perėmimas ir iššifravimas yra sudėtinga užduotis. Tačiau supratimas apie keitimosi raktais mechanizmą ir viešųjų bei privačiųjų raktų vaidmenį gali padėti suprasti galimus pažeidžiamumus ir teisėto perėmimo būdus. Be to, išanalizavus pradinį įrenginio ir serverio rankos paspaudimą, galima atskleisti vertingos informacijos apie šifravimo procesą ir bet kokius metaduomenis, kuriais galima keistis.

Kitas būdas yra naudoti specializuotą aparatinę ar programinę įrangą, kuri gali atlikti gilų paketų patikrinimą (DPI). DPI įrankiai gali analizuoti duomenų paketų turinį, kai jie eina per tinklą, o tai naudinga nustatant konkrečias programas ar protokolus, net jei srautas yra užšifruotas. Pavyzdžiui, naudojant tokius įrankius kaip „Wireshark“ kartu su „WhatsApp“ srautui skirtais įskiepiais, galima išsklaidyti komunikacijos modelius ir nustatyti pranešimų, kuriais keičiamasi, tipus. Be to, supratimas apie pagrindinį „WhatsApp Web“ naudojamą „WebSocket“ protokolą gali pasiūlyti papildomų įžvalgų, nes šis protokolas atlieka svarbų vaidmenį bendraujant realiuoju laiku tarp naršyklės ir „WhatsApp“ serverių.

Dažni klausimai apie „WhatsApp“ žiniatinklio srauto analizę

  1. Kokie įrankiai yra geriausi norint užfiksuoti „WhatsApp“ žiniatinklio srautą?
  2. Įrankiai kaip mitmproxy ir tshark dažniausiai naudojami tinklo srautui fiksuoti ir analizuoti.
  3. Kaip „WhatsApp“ užtikrina savo žiniatinklio srauto saugumą?
  4. „WhatsApp“ naudoja visišką šifravimą, užtikrindama, kad pranešimai būtų užšifruoti siuntėjo įrenginyje ir iššifruojami tik gavėjo įrenginyje.
  5. Ar galima iššifruoti srautą, jei jis užšifruotas?
  6. Iššifravimas yra labai sudėtingas, nes naudojamas galutinis šifravimas, tačiau supratimas apie keitimosi raktais mechanizmus gali suteikti įžvalgų.
  7. Kas yra gilus paketų patikrinimas?
  8. Gilus paketų tikrinimas (DPI) yra duomenų apdorojimo forma, kuri detaliai tikrina tinklu siunčiamus duomenis, kad būtų galima nustatyti protokolus ar programas.
  9. Kaip „WebSockets“ prisideda prie „WhatsApp“ žiniatinklio komunikacijos?
  10. „WebSockets“ palengvina ryšį tarp naršyklės ir „WhatsApp“ serverių realiuoju laiku, o tai atlieka lemiamą vaidmenį perduodant pranešimus.
  11. Ar yra teisinių sumetimų perimant „WhatsApp“ srautą?
  12. Taip, eismo perėmimas gali turėti teisinių pasekmių ir turi būti atliekamas laikantis vietinių įstatymų ir taisyklių.
  13. Ar viešuosius ir privačius raktus galima kaip nors išnaudoti?
  14. Viešųjų ir privačiųjų raktų naudojimas yra labai sudėtingas ir paprastai nepraktiškas be didelių skaičiavimo išteklių ar pažeidžiamumų.
  15. Kokie yra „mitmproxy“ naudojimo šiuo tikslu apribojimai?
  16. „mitmproxy“ gali užfiksuoti srautą, bet negali jo iššifruoti dėl „WhatsApp“ patikimų šifravimo metodų.
  17. Kuo metaduomenys gali būti naudingi srauto analizei?
  18. Metaduomenys gali suteikti įžvalgų apie komunikacijos modelius, pvz., pranešimų laiko žymes ir vartotojo sąveiką, neatskleidžiant pranešimo turinio.

Paskutinės mintys apie „WhatsApp“ žiniatinklio srauto analizę

Norint suprasti keitimąsi parametrais „WhatsApp Web“ inicijavimo metu, reikia pažangių įrankių ir metodų, nes naudojamas stiprus šifravimas. Nors tradiciniai metodai, pvz., „tpacketcapture“ ir „Burp Suite“, gali nepasisekti, gilus paketų tikrinimas ir specializuota programinė įranga gali suteikti geresnės įžvalgos. Nors šie metodai yra sudėtingi, jie gali padėti iššifruoti užšifruotą srautą, suteikiant aiškesnį vaizdą apie duomenis, kuriais keičiasi „Android“ įrenginys ir naršyklė QR kodo nuskaitymo proceso metu.