Computerbeveiliging - Hoe je bad guys buiten de deur houdt

Tor-browser update

07-05-2019, 11:37 door Anoniem, 12 reacties
Na het certificaten-debacle is naast Firefox nu ook een nieuwe Tor-browserversie verschenen vandaag (7 mei)

Wie de workaround voor de Tor-browser heeft ingesteld, moet deze weer na de update terugdraaien.
Het gaat om de volgende workaround:

1) Open the address about:config in the Tor Browser address bar
2) At the top of the page, search for xpinstall.signatures.required
3) Set the xpinstall.signatures.requiredentry to TRUE by double clicking it[/b]

De Changelog (nieuwe versie) is als volgt:

Tor Browser 8.0.9 -- May 7 2019
* All platforms
* Update Torbutton to 2.0.13
* Bug 30388: Make sure the updated intermediate certificate keeps working
* Backport fixes for bug 1549010 and bug 1549061
* Bug 30388: Make sure the updated intermediate certificate keeps working
* Update NoScript to 10.6.1
* Bug 29872: XSS popup with DuckDuckGo search on about:tor
Reacties (12)
07-05-2019, 15:33 door Anoniem
Door Anoniem: Wie de workaround voor de Tor-browser heeft ingesteld, moet deze weer na de update terugdraaien. Het gaat om de volgende workaround:

1) Open the address about:config in the Tor Browser address bar
2) At the top of the page, search for xpinstall.signatures.required
3) Set the xpinstall.signatures.required entry to TRUE by double clicking it

Correct, op een enkele spatie na :-) Zie voor de bevestiging de volgende documentatie op het Tor Blog:

https://blog.torproject.org/new-release-tor-browser-809
07-05-2019, 17:44 door Anoniem
Er is iets vreemds aan de hand met libxul.so

Verschillende soorten crashes meegemaakt met Tor Browser, inclusief het schrijven van data naar /tmp in een dat file.

De nieuwste andere afwijking waar ik tegen aan liep was gerelateerd aan een fontkit/fontconfig issue. Ik vermoed dat er ergens een buffer overflow zit ook daar. Door een domme diskcrash ben ik de gepownde versie kwijt.

Wat libxul.so betreft:

libxul.so 96246824 bytes (92MB) md5sum 5482fcbc2b6f0951d5be17960bb72aaa (dit is de goede versie)

Maar 92MB, what could possibly go wrong?

libxul.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=13bf2f20001311e216da6b95d7cf9de9dfb65713, stripped

En nu de dependencies:


linux-vdso.so.1 (0x00007ffda7f1b000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdb56970000)
libmozsandbox.so => not found
libnspr4.so => /lib/x86_64-linux-gnu/libnspr4.so (0x00007fdb56928000)
libplc4.so => /lib/x86_64-linux-gnu/libplc4.so (0x00007fdb56920000)
libplds4.so => /lib/x86_64-linux-gnu/libplds4.so (0x00007fdb56918000)
liblgpllibs.so => not found
libnss3.so => /lib/x86_64-linux-gnu/libnss3.so (0x00007fdb567c8000)
libnssutil3.so => /lib/x86_64-linux-gnu/libnssutil3.so (0x00007fdb56790000)
libsmime3.so => /lib/x86_64-linux-gnu/libsmime3.so (0x00007fdb56760000)
libmozsqlite3.so => not found
libssl3.so => /lib/x86_64-linux-gnu/libssl3.so (0x00007fdb56708000)
libmozgtk.so => not found
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdb56700000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fdb566f0000)
libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fdb56438000)
libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fdb563f0000)
libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fdb561e0000)
libdbus-glib-1.so.2 => /lib/x86_64-linux-gnu/libdbus-glib-1.so.2 (0x00007fdb561b0000)
libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007fdb56158000)
libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007fdb56100000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fdb55fe0000)
libatk-1.0.so.0 => /lib/x86_64-linux-gnu/libatk-1.0.so.0 (0x00007fdb55fb8000)
libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007fdb55e10000)
libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007fdb55e00000)
libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007fdb55dd8000)
libcairo-gobject.so.2 => /lib/x86_64-linux-gnu/libcairo-gobject.so.2 (0x00007fdb55dc8000)
libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007fdb55d78000)
libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007fdb55c58000)
libX11-xcb.so.1 => /lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007fdb55c50000)
libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007fdb55c48000)
libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fdb55c18000)
libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007fdb55ad0000)
libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007fdb558b8000)
libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007fdb55898000)
libXt.so.6 => /lib/x86_64-linux-gnu/libXt.so.6 (0x00007fdb55628000)
libgthread-2.0.so.0 => /lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007fdb55620000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fdb55498000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdb55300000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdb55140000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdb5cd68000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fdb55120000)
libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fdb550e8000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fdb54ec8000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fdb54e88000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fdb54e78000)
libsystemd.so.0 => /lib/x86_64-linux-gnu/libsystemd.so.0 (0x00007fdb54de8000)
libffi.so.6 => /lib/x86_64-linux-gnu/libffi.so.6 (0x00007fdb54bd8000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fdb54b60000)
libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007fdb54b58000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fdb54930000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fdb54910000)
libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007fdb548b0000)
libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0 (0x00007fdb548a0000)
libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007fdb54880000)
libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007fdb545d8000)
libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007fdb545c8000)
libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007fdb543c0000)
libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fdb541b8000)
libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007fdb540f8000)
libSM.so.6 => /lib/x86_64-linux-gnu/libSM.so.6 (0x00007fdb53ef0000)
libICE.so.6 => /lib/x86_64-linux-gnu/libICE.so.6 (0x00007fdb53cd0000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fdb53aa8000)
liblz4.so.1 => /lib/x86_64-linux-gnu/liblz4.so.1 (0x00007fdb53888000)
libgcrypt.so.20 => /lib/x86_64-linux-gnu/libgcrypt.so.20 (0x00007fdb53568000)
libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007fdb53510000)
libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007fdb53308000)
libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fdb530f0000)
libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fdb530c0000)
libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007fdb53098000)

70 libraries, ga maar zoeken!
08-05-2019, 12:45 door Anoniem
Beste anoniem van 17:44 gisteren,

Dit is de bug-status voor deze bug in firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1192222

Schijnt Arch afhankelijk te zijn, zie ook: https://trac.torproject.org/projects/tor/ticket/20100
via een POWNED versie verschenen ergens vanuit Debian's Iceweasel (met een onduidelijk patchlevel)

In de stille strijd tegen tor, (speculatie mijnerzijds want natuurlijk niet te bewijzen, maar toch)
geef ik de volgende overweging ter overdenking:
"how many users would unpack the TBB bundle and notice a 1 byte change from a CALLQ to a JMPQ
which basically has the same functionality and doesn't crash until further exploitation.
It's still a wild guess why this happens, but integrity checking the binaries seems".
Quote source credits gaan naar: ronvandaal_

Conclusie: integriteit checking schijnt de aangewezen route tot het oplossen van het probleem.

#sockpuppet
08-05-2019, 13:50 door Anoniem
Door Anoniem: Er is iets vreemds aan de hand met libxul.so

Verschillende soorten crashes meegemaakt met Tor Browser, inclusief het schrijven van data naar /tmp in een dat file.

De nieuwste andere afwijking waar ik tegen aan liep was gerelateerd aan een fontkit/fontconfig issue. Ik vermoed dat er ergens een buffer overflow zit ook daar. Door een domme diskcrash ben ik de gepownde versie kwijt.

Ervaar met TB v8.0.9 vooralsnog geen problemen. Vrees ook dat 98% van de lezers hier niet snapt waar je op doelt, want niet iedereen kan C/C++ dromen.

Tracht het probleem eerst te reproduceren, documenteer het en overweeg daarna op Trac een bug report in te dienen, eventueel.met de cypherpunks account. Bekijk wel eerst of er niet al een ticket voor bestaat :-)

https://trac.torproject.org/projects/tor
08-05-2019, 15:44 door johanw
Door Anoniem:Wie de workaround voor de Tor-browser heeft ingesteld, moet deze weer na de update terugdraaien.
Waarom? Ik zit er helemaal niet op te wachten dat een of ander bedrijf mijn plugins om zeep kan helpen. Laat lekker zo staan zou ik zeggen.
08-05-2019, 16:59 door Anoniem
@ anoniem van 13:50

Hier is toch ook steeds ook op trac aandacht voor:
https://trac.torproject.org/projects/tor/ticket/16672

Niet meer online te vinden als software, doch nog wel de source code
git clone https://repo.eecs.berkeley.edu/git-anon/users/fifield/fontfp.git
cd fontfp/webapp
go build
./webapp --http :8000
Tor Bug Tracker, daar is het allemaal te vinden,
een kwestie van "zoekt onder de juiste codering en gij zult de ware oplossing vinden" verhaal.

Inzichten komen ons namelijk niet aanwaaien, ze zullen verworven moeten worden
en men leert derhalve nog elke dag. Ik ook op m'n ouwe dag met meer dan 7 kruisjes achter de naam
en niet 1 ervoor,

#sockpuppet

#sockpuppet
08-05-2019, 17:09 door Anoniem
Ik heb geen problemen gehad met Tor Browser crashes en ik gebruik het al jaren. De updates gaan gewoon vanzelf dus die je hoef je in feite ook niet steeds opnieuw te downloaden en te installeren als volledig pakket.

Of dit veiliger is dat valt te bezien. Soms is het wissen van je Tor directory en een frisse install veiliger dan automatisch laten updaten. Ik let nooit op wat er in mijn Tor directories van files wonen en of wat hier aan verandert. Mijn entry-nodes descriptors zijn al jaren dezelfde. Snelle verbinding gegarandeerd. Ik gebruik Tor tegen Google Data mining.
08-05-2019, 17:22 door Anoniem
Lees ook hier: https://www.bamsoftware.com/talks/fc15-fontfp/fontfp.html

De neerslag van dit hele onderzoek is hier te vinden:
https://www.bamsoftware.com/papers/fontfp.pdf.

Ook is dit verhaal zeer interessant in het licht van de recent voorgestelde maatregelen van Google
met betrekking tot fingerprint blokkering in hun browser. Zie topic elders op deze site

Oplossingen moeten gezocht worden in de richting van:
Normalize rendering settings (hinting, antialiasing, etc.) as much as possible,
Quote van David Fifield, University of California, Berkeley
& International Computer Science Institute's Serge Egelman, de auteurs van dit pdf.

De fingerprinters moeten dus steeds meer moeite doen om steeds minder wordende resultaten te verkrijgen.
Dat is in het geval van tor dan weer goed zo.

#sockpuppet
08-05-2019, 18:31 door Anoniem
Door Anoniem: Beste anoniem van 17:44 gisteren,

Dit is de bug-status voor deze bug in firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1192222

Conclusie: integriteit checking schijnt de aangewezen route tot het oplossen van het probleem.

#sockpuppet

Dat schijnt te zijn opgelost, of niet? Bugs in libxul komen vaker voor juist vanwege de vele dependencies kan een bug in een andere opensource library op github leiden tot een compromise van Tor en de Tor Browser Bundle.

Dat is geen "stille strijd tegen Tor" maar een hint dat Tor mogelijk onveiliger is dan je denkt. Een bug in 92MB aan code moet ook reproduceerbaar zijn om te oorzaak te kunnen vinden. Een uiterst lastige en tijdrovende taak waarbij je zonder developer team of een arsenaal aan resources weinig kunt behalve constateren dat er een bug zit.


Ps Ik weet dit omdat ik zelf ook tegen iets aan liep en heb dit niet verder kunnen onderzoeken. Ik bewaar gelukkig mijn syslog logbestanden meer dan 1 jaar:

[172944.648615] Chrome_~dThread[8332]: segfault at 0 ip 00007f3bb5eecff6 sp 00007f3bb4b2eaf0 error 6 in libxul.so[7f3bb5a71000+56d0000]
[172944.648640] Code: 0f 0b 66 90 48 83 7b 38 00 74 a0 48 83 c4 08 48 89 df 5b 5d e9 ab c3 ff ff 48 8b 05 e4 82 61 05 48 8d 35 55 4a 32 03 48 89 30 <c7> 04 25 00 00 00 00 00 00 00 00 0f 0b 66 66 66 66 2e 0f 1f 84 00

Ik speculeer dat er iets was met het laden van een site toen TorBrowser/Fontconfig moeilijk begon te doen. Ik weet niet meer welke site maar zal de volgende keer een mirror maken van de site. De CSS, JavaScript en geladen fonts doorspitten is makkelijker dan een walvis van een bestand zoals het libxul shared object te debuggen.
08-05-2019, 18:47 door Anoniem
Beste Anoniem van 12:45

Integriteitschecking van statische binaries wordt door de Tor Browser Bundle niet standaard uitgevoerd en zouden ze heel eenvoudig in de startup scripts ("./start-tor-browser.desktop") kunnen incorperen. Als een file opens 'statisch' wordt dan foutmelding geven.

Deze voorstellen heb ik vaker gelezen. Blijkbaar vinden de projectleiders van TBB dit niet nodig. Het is wel een shell script waarin de environment variabelen worden ingesteld. Even een MD5 of SHA256 sum checken over de belangrijkste files (dus niet de cache files) zijn 1 of 2 regels aan shellcode.


Name=Tor Browser
GenericName=Web Browser
Comment=Tor Browser is +1 for privacy and -1 for mass surveillance

Liever een regel met `diff` of `cmp` in ./start-tor-browser.desktop dan zo'n propaganda Comment. Dat is pas echt +1.

Dat of CRC protection in de binary zelf.
08-05-2019, 19:47 door Anoniem
Door Anoniem: @ anoniem van 13:50

Hier is toch ook steeds ook op trac aandacht voor:
https://trac.torproject.org/projects/tor/ticket/16672

Niet meer online te vinden als software, doch nog wel de source code
git clone https://repo.eecs.berkeley.edu/git-anon/users/fifield/fontfp.git
cd fontfp/webapp
go build
./webapp --http :8000
Tor Bug Tracker, daar is het allemaal te vinden,
een kwestie van "zoekt onder de juiste codering en gij zult de ware oplossing vinden" verhaal.

Inzichten komen ons namelijk niet aanwaaien, ze zullen verworven moeten worden
en men leert derhalve nog elke dag. Ik ook op m'n ouwe dag met meer dan 7 kruisjes achter de naam
en niet 1 ervoor,

#sockpuppet

#sockpuppet


Goede tip en zal deze eens nader overwegen als ik nog vrije tijd over heb door alle afleidingen...

Het is ook goed dat bugs in Tor aan de kaak gesteld worden zeker nu met de toename van het debat om privacy en de noodzaak van een veiliger internet. Niet alle bugs worden snel opgelost of zijn simpelweg te willekeurig maar hoe meer mensen er naar kijken hoe beter.
08-05-2019, 23:43 door Anoniem
Bedankt iedereen, die van deze draad samen weer een "pareltje" hebben gemaakt.
Ik denk dat script analyse op tor veel aan het licht kan brengen. Het kan veelbelovend zijn.

Alles wat niet functioneel is voor het minimaal renderen van de pagina moet overboord gezet.

Dit is mijn ding, cold reconnaissance website security JavaScript analyse, kwetsbare libraries en errors,
dus via Ctrl+Shift+I naar de developer console bij tor
Welke scripts initieert Tor-browser hier voor het uri bezoek van de pagina van deze posting?
Ctrl+Shift+I en er opent zich een hele wereld onder de Tor-developer-kap...
a: jquery.security.nl/js/jquery/jquery/security.nl.js?137XXXX2339
b. core.js? 137XXXX2339
c. ga.js (indien niet geblokkeerd zit Google toch nog overal tussen *) met hun ssl.google-analytics.com/ga.js)

ATTRIBUTE_NODE: 2
CDATA_SECTION_NODE: 4
COMMENT_NODE: 8
DOCUMENT_FRAGMENT_NODE: 11
DOCUMENT_NODE: 9
DOCUMENT_POSITION_CONTAINED_BY: 16
DOCUMENT_POSITION_CONTAINS: 8
DOCUMENT_POSITION_DISCONNECTED: 1
DOCUMENT_POSITION_FOLLOWING: 4
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32
DOCUMENT_POSITION_PRECEDING: 2
DOCUMENT_TYPE_NODE: 10
ELEMENT_NODE: 1
ENTITY_NODE: 6
ENTITY_REFERENCE_NODE: 5
NOTATION_NODE: 12
PROCESSING_INSTRUCTION_NODE: 7
TEXT_NODE: 3
appendChild: ƒ appendChild()
baseURI: (...)
childNodes: (...)
cloneNode: ƒ cloneNode()
compareDocumentPosition: ƒ compareDocumentPosition()
contains: ƒ contains()
firstChild: (...)
getRootNode: ƒ getRootNode()
hasChildNodes: ƒ hasChildNodes()
insertBefore: ƒ insertBefore()
isConnected: (...)
isDefaultNamespace: ƒ isDefaultNamespace()
isEqualNode: ƒ isEqualNode()
isSameNode: ƒ isSameNode()
lastChild: (...)
lookupNamespaceURI: ƒ lookupNamespaceURI()
lookupPrefix: ƒ lookupPrefix()
nextSibling: (...)
nodeName: (...)
nodeType: (...)
nodeValue: (...)
normalize: ƒ normalize()
ownerDocument: (...)
parentElement: (...)
parentNode: (...)
previousSibling: (...)
removeChild: ƒ removeChild()
replaceChild: ƒ replaceChild()
textContent: (...)
constructor: ƒ Node()
Symbol(Symbol.toStringTag): "Node"
get baseURI: ƒ baseURI()
get childNodes: ƒ childNodes()
get firstChild: ƒ firstChild()
get isConnected: ƒ isConnected()
get lastChild: ƒ lastChild()
get nextSibling: ƒ nextSibling()
get nodeName: ƒ nodeName()
get nodeType: ƒ nodeType()
get nodeValue: ƒ nodeValue()
set nodeValue: ƒ nodeValue()
get ownerDocument: ƒ ownerDocument()
get parentElement: ƒ parentElement()
get parentNode: ƒ parentNode()
get previousSibling: ƒ previousSibling()
get textContent: ƒ textContent()
set textContent: ƒ textContent()
__proto__: EventTarget
Geen waarschuwingen in verbose zetten, wel onafhankelijk analyseren

Graag commentaar op deze tor-button bijdrage?

#sockpuppet
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.