Domanda:
Come spiegare Heartbleed senza termini tecnici?
user36976
2014-04-10 10:21:49 UTC
view on stackexchange narkive permalink

La maggior parte dei miei amici che non hanno esperienza con i computer vogliono sapere cos'è Heartbleed e come funziona. Come si spiegherebbe Heartbleed a qualcuno senza un background tecnico?

Heartbleed consente a un utente malintenzionato di scaricare in modo anonimo un blocco casuale di memoria del server. Ciò significa che possono ottenere password non crittografate e chiavi di crittografia di basso livello che proteggono il tuo account ... per non parlare del fatto che un utente malintenzionato potrebbe essere in grado di accedere a qualsiasi parte del sito Web (o dati che pubblichi in quel sito)
Potresti lasciarli guardare https://www.youtube.com/watch?v=rE5dW3BTpn4
Il modo più semplice per spiegare: http://xkcd.com/1354/
Mi è piaciuta la spiegazione di Maciej Cegłowski sul blog Pinboard: https://blog.pinboard.in/2014/04/heartbleed_and_pinboard/
Come gli ultimi 50000 attacchi di lunghezza del buffer non controllati di Windows, solo questo dimostra che non è solo Windows.
Ho mostrato a un collega studente di ingegneria informatica il fumetto xkcd, ma dal momento che non conosceva chiavi di crittografia, https, ssl e server, il fumetto non ha fatto nulla per lui. Mi piace il primo commento, solo che direi che è del tipo "Heartbleed consente a un utente di prendere dati da qualsiasi cosa il server stia facendo in quel momento, comprese password, chiavi di crittografia e informazioni personali, mettendo a rischio tutte le informazioni private".
@JFA: Che ne dici di "OpenSSL include un comando che dice, essenzialmente," Pensa a questi 23 byte di dati; indica gli ultimi 23 byte di dati a cui stavi pensando ", ma consentendo ad altri numeri di sostituire 23. Un tipico messaggio di attacco HeartBleed sarebbe" Ecco 2 byte a cui pensare; ora dimmi gli ultimi 65.000 byte a cui hai pensato. "
@supercat che ne dici di "È un exploit che consente a un utente malintenzionato di richiedere informazioni private fuori dalla memoria?"
http://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/Heartbleed_bug_explained.svg/1000px-Heartbleed_bug_explained.svg.png
Non una sola risposta con "Marco - Polo"? Vota per chiudere ...
Il server web è come uno stagno ghiacciato. I tuoi dati sono il pesce, è protetto dal solido strato di ghiaccio. Ma qualcuno ha appena scoperto la trivella sul ghiaccio ed è ora in grado di lanciare una linea ed estrarre cose a caso. Come forse la tua password.
Undici risposte:
Uwe Keim
2014-04-11 11:48:39 UTC
view on stackexchange narkive permalink

Che ne dici di questo da XKCD?

XKCD comics #1354 by Randall Munroe. Licenced CC BY-NC 2.5

La spiegazione più "non tecnica" che ho trovato.

Sono una persona tecnica e anche una persona visiva. Posso dire che questa è la migliore spiegazione di Heartbleed finora: concisa ma contiene tutto ciò che chiunque deve sapere per capire il punto.
SPRBRN
2014-04-10 17:17:36 UTC
view on stackexchange narkive permalink

L'analogia tra banca e impiegato di banca

Chiami la banca per richiedere un nuovo conto bancario, per fissare un appuntamento - qualunque cosa. In qualche modo tu e la banca vi assicurate di essere chi siete, e la banca è effettivamente la banca. Questo è il processo TLS che protegge la connessione tra te e la banca e presumiamo che sia gestito correttamente.

I ruoli in questa commedia

  • La banca: un server web
  • L'impiegato di banca: il servizio OpenSSL per questo server
  • Tu (il rapinatore di banche): un bot che recupera tutto ciò che può ottenere da quel server

Rimanere connesso: il battito cardiaco

Un impiegato di banca risponde alla tua chiamata. Richiedi alcune informazioni. L'impiegato dice di aspettare un minuto e disattiva il suo microfono. Lui può sentirti, tu non puoi sentirlo. Allora è tranquillo. Per molto tempo. Inizi a chiederti se ha riattaccato. Quindi dici "ciao?" Il dipendente viene istruito a fare eco a qualsiasi cosa tu dica e risponde con "ciao". Questo è il battito cardiaco per verificare se c'è ancora una connessione.

Ora con questo strano impiegato di banca, devi prima dire quante parole utilizzerai prima di chiedere se il dipendente è ancora online. Quindi, invece di dire "ciao", devi dire "uno: ciao" o "due: ciao". Il dipendente ora sa che può rispondere ripetendo quelle (prime) due parole, e poi può continuare a lavorare sulla tua richiesta. Questo è il protocollo heartbeat.

Il problema - il cuore sanguinante - nessun controllo su ciò che viene restituito

OK, sei annoiato e fai una battuta. Dici "mille: ciao". Il dipendente non controlla che tu abbia detto solo una parola (ciao) e inizia a rispondere con "ciao" più le successive 999 parole che dice, o pensa, o ha in memoria, prima di spegnere il microfono. Questo è il bug che causa il problema.

Queste 999 parole non sono correlate. La maggior parte sarà inutile, osservazioni sul tempo, richiesta di caffè, appuntamenti per il pranzo, ecc. Alcune possono essere informazioni importanti sulla banca o altri clienti. Un trasporto d'oro, un cliente porterà 1 milione di dollari, il codice per entrare in banca o in cassaforte, ecc.

Non c'è controllo se ci sono effettivamente 1000 parole da rispondere. Inoltre puoi fare questa richiesta più e più volte: il dipendente non si lamenterà e nessun altro noterà cosa sta succedendo.

C'è un limite. Otterrai informazioni solo da questo impiegato di banca e solo le cose a cui parla o pensa. Gli altri dipendenti non sono interessati. Non puoi vedere cosa c'è sulla sua scrivania o nel suo rolodex. (Analogia: solo i dati in memoria (RAM) sono a rischio; i dati sul disco rigido che non vengono letti in memoria e i dati di altri programmi e processi sono al sicuro.)

In questo modo non lo sai quali informazioni otterrai, ma facendolo per molto tempo più e più volte, otterrai abbastanza informazioni per poter finalmente entrare senza che nessuno se ne accorga. Puoi entrare in banca fuori orario, aprire la cassaforte, ecc. Questo è il rischio.

La soluzione: controllare la richiesta e rinnovare i codici

Se il dipendente pensasse un momento risponderebbe solo con una parola e poi disabiliterebbe il microfono in modo non puoi più sentire di cosa sta discutendo. Effettuando questo controllo, rimarrai connesso e saprai che il dipendente non ha riattaccato, ma non sentirà più alcuna informazione casuale. In effetti, il dipendente ha bisogno di nuove istruzioni su cosa fare eco. Questo problema viene risolto con l'aggiornamento all'ultima versione di OpenSSL.

La banca dovrà rinnovare le chiavi di sicurezza per entrare in banca e in cassaforte, perché non è noto se qualcuno abbia i vecchi codici.

Direi che anche uno scolaretto può capire ... Dannazione, posso votare solo una volta ...
La frase importante è "Alcune possono essere informazioni sulla banca o altri clienti". Se quell'unico dipendente è multi-tasking e si occupa di richieste di più persone, potrebbe dirti i loro dati e allo stesso modo comunicargli i tuoi dati. Sfortunatamente non hai idea di cosa stia dicendo a chi ea chi potrebbe aver fornito i tuoi dati.
dr jimbob
2014-04-10 12:30:08 UTC
view on stackexchange narkive permalink

I'm going to have to use a few technical terms, but will try to keep them to a minimum and describe them.

Basic Intro to TLS & Encryption

You (a client) go to a website (known as a server) that uses encryption (the address starts with https://) to make it so no one but you and the website at the other end can know the content of the messages you are sending or receiving. So when your messages are transported across computers on the internet they are encrypted -- they call this transport layer security (TLS) and it is one type of encrypted protocol. One library that implements TLS is OpenSSL (TLS is the newer name for SSL, but both have the same intention -- encrypt network traffic on the internet).

What is Heartbeat - the compromised TLS feature?

To set up a TLS connection there's a negotiation that's relatively expensive (it takes time). Several messages have to be exchanged between the client and server before they can trust each other and safely send encrypted data back and forth. To have a quick and responsive experience (and minimize server load), you want to perform this negotiation rarely when possible, rather than do it before every single request (as you often will perform hundreds of requests in minutes with modern interactive websites). Complicating matters, packets on the internet often get lost or corrupted. The server may be overwhelmed with too many requests and need to drop its end of the TLS connection. Or the client may have closed its browser window, so the server has no need to continue storing its end of the encrypted connection.

So in 2012 a proposal was implemented in OpenSSL (called Heartbeats) to send "keep-alive" messages between client and server to reduce the number of negotiations, when both ends still are using the connection. The client asks the webserver periodically "Are you still there?" and the webserver (if it is still there), replies telling whether or not it is still there or whether future requests need a new TLS negotiation.

How the Heartbeat Extension works

The client sends a Heartbeat message consisting of a payload chosen by the client, as well as a brief header containing the size of the payload. E.g., you could send a Heartbeat request of size 18 and text This is my payload (though generally it will be randomly chosen data). The webserver gets that request, saves the content of the payload to the memory of the webserver, as well as the saving the size of the payload 18 that the client told it.

Then when the server sends a "keep-alive" response back to the client, the library reads those next 18 characters of memory starting from where it stored the payload and sends it back to the client (who checks that they received the right data back) and then the connection is kept alive.

The Heartbleed flaw in OpenSSL

The fatal flaw (that has been named Heartbleed) is that the OpenSSL library never checked that the Heartbeat payload size corresponds with the actual length of the payload being sent. A user is allowed to input any number up to 65535 (64 kilobytes) regardless of the true size of the payload. If an attacker sends a Heartbeat request saying the size is 65535, but a payload that's only 18 bytes long the vulnerable server will store only 18 bytes in memory. However, the response will start with those stored 18 bytes, but continue sending data from the next 64KB of memory back to the client. This data could be usernames and passwords, private keys, username, HTML pages, random junk, or even the private secret that the webserver uses to establish its identity. (The fix to OpenSSL implemented in 1.0.1g and later versions is essentially to perform sanity checks on the payload size as told by the client).

The attack can be repeated many times and in general will reveal different parts of the webserver's memory each time. The attack can be performed anonymously in an undetectable manner for typical webserver configurations. Typically, you only log IP addresses when you serve a web page, but this attack can happen early in the negotation process in vulnerable versions, before any webpage is served.

Attack on Clients

There is also a reverse version of this, where a user connecting to a malicious TLS server will trust the keep-alive request sent from a malicious server where the server lied about the size of its keep-alive payload. This would cause the web browser to leak up to 64KB of information to the webserver. (Granted this would be much harder to get usable information out of it and cannot be done anonymously and must be initiated by the client choosing to go to that webpage. However, it still makes sense to patch OpenSSL quickly if you browse the web with an affected version.)

Remedy

The remedy for clients and servers that use OpenSSL is to update it. System administrators running webservers that used the vulnerable OpenSSL library need to revoke their secret TLS keys and generate new ones (as well as invalidate long lived session tokens). Clients should change their passwords on affected websites, which may have been leaked. For clients, lastpass released a heartbleed checker tool that tests whether a site is (1) currently vulnerable, (2) previously tested to be vulnerable, or (3) likely vulnerable (using a unix/linux webserver and TLS, likely indicating use of OpenSSL which is primarly used on unix/linux systems) which may help determine whether you need to update your password at a given website.

SSH is not TLS so SSH keys are safe

SSH (which stands for Secure Shell) is a common tool on unix and linux machines, allowing users to remotely login to a machine and issue commands that are transported over the network encrypted. SSH is an entirely different protocol from TLS (the answer says SSL, but that's just the old name for TLS -- the terms are often used interchangeably). Even though OpenSSH (the most common implementation of SSH) and OpenSSL have similar names, your SSH keys are not vulnerable due to the Heartbleed attack.

Only memory from the process that is doing the TLS encryption can be leaked through the Heartbleed attack. (A process is the computing term for a running instance of an application.) Modern operating systems implement process isolation that prevent processes from reading or writing memory assigned to other processes on the same system. So contrary to xkcd.com/1353 you do not need to worry about all of your computer's memory being compromised, just the memory of the webserver process (or the webbrowser for the reverse form). Secrets like SSH keys used by other processes (ssh, sshd, ssh-agent) are not being leaked because you also used TLS in a webserver.

For completeness, I should mention that this vulnerability should affect anything that may use the OpenSSL library to perform TLS, which isn't limited to webservers; e.g., FTPS servers (but not SFTP), Email servers, Database servers all may be vulnerable depending on the configuration.

More info about the vulnerable commit

It's also worth noting that the same person who wrote the vulnerable code that doesn't verify the size of the payload was the same author of the Heartbeat extension to TLS (described in RFC 6520). Note the protocol did not specify a maximum size of Heartbeats response (while specifying a minimum size), but allowed it to be arbitrary length and let the payload size be described by a two byte header (allowing it to go up to 65535 instead of only 255 with a 1-byte header, which would have only exposed under 255 bytes of the webserver processes' RAM). I honestly can't think of any reasonable reason to require a heartbeats payload that's longer than 16 bytes (128-bit), and if you wanted to be super paranoid you could let it be 32 bytes (256-bit). With those limitations, it would be very unlikely to leak much usable information.

It's also curious that the vulnerable code is dated to the evening of New Years' Eve 2011, which seems like a likely time to pass something under the radar or with less scrutiny due to the holiday.

Grazie per l'eccellente spiegazione, oltre a chiarire che SSH non è interessato. Il colpo di scena della cospirazione alla fine: la ciliegina sulla torta!
"Ciò causerebbe la perdita di fino a 64 KB di informazioni dal browser web al server web." quali informazioni potrebbero essere? Ad esempio, sarebbero informazioni memorizzate nella cache sui siti Web? Potrebbero essere dati memorizzati da componenti aggiuntivi, ad esempio gestori di password come lastpass?
@Celeritas - Quelle del genere di cose che mi aspetto, (anche se un gestore di password sano carica le password in memoria solo se necessario e le libera rapidamente). Di nuovo, se hai patchato il tuo OpenSSL sul tuo sistema alla 1.0.1g o hai usato una versione precedente alla 1.0.1, sei al sicuro da questo attacco. Se usi Linux e hai familiarità con Python e hai accesso root, puoi esplorare il contenuto della memoria. Trova semplicemente il PID del tuo browser web (ad esempio, con top) e poi usa lo script python2 fornito [qui] (http://stackoverflow.com/a/23001686/457571), e ricorda che l'attacco del client avrà solo blocchi casuali .
Qual è lo scopo del carico utile?
È quasi un omero il modo in cui lo strumento di controllo del sanguinamento del cuore di Lastpass rileva lastpass come potenzialmente compromesso. Significa che chiunque abbia usato lastpass dovrebbe cambiare tutte le password?
-1: questa è una * orribile * risposta alla domanda come affermato. Non c'è alcuna possibilità che un utente non esperto di tecnologia ascolti, figuriamoci capirne anche il 10%.
@MichaelBorgwardt Probabilmente vero, ma per qualcuno che è tecnico ma non ha idea della tecnologia web è eccellente
@MichaelBorgwardt - Ho provato a dare una risposta esauriente senza ricorrere al solo gergo tecnico o dare stupide analogie. Credo che alcuni lo abbiano trovato utile. Ovviamente non è un "Spiegalo come se fossi un cinque" o spiegalo in meno di un minuto, ma prenditi il ​​tempo per spiegare e concetti correlati come se fossi un adulto intelligente, anche se non sei un esperto di computer / sicurezza .
Probabilmente termini tecnici in questa risposta, che non vengono spiegati prima di essere utilizzati: crittografia, libreria, SSL, traffico di rete, carico del server, dimensione del payload, .. e questo è circa un quarto della spiegazione prima che mi annoiassi. Penso che la gente qui dimentichi che gran parte della popolazione non sa cosa sia un "browser".
@drjimbob: la tua risposta ha funzionato per me e mi ha aiutato a scrivere la mia risposta.
Sì, questa è un'ottima spiegazione di Heartbleed, ma _non_ per un laico.
@MichaelBorgwardt Non lo direi. Dipende davvero dalle persone a cui lo spieghi. Sorprendentemente spesso ho incontrato persone senza background tecnico che seguivano tali spiegazioni con poca o nessuna difficoltà. Direi anche che verificare i tempi di commit e far sapere chi ha segnalato l'errore e chi lo ha codificato sono davvero belle informazioni.
Questa dovrebbe essere la risposta accettata, molto profonda e informativa ... Diavolo mia figlia di 11 anni l'ha letta e ha capito cosa stava dicendo ...
Mark
2014-04-10 13:39:05 UTC
view on stackexchange narkive permalink

In really plain English: the attacker says they're sending a packet of size "x" and asks the server to send it back, but actually sends a much smaller packet. The OpenSSL library trusts the attacker, sends back the small real packet as the start of the reply, and then grabs data from memory to fill out the reply to the expected size. This could be any data the server has handled recently, and often contains sensitive information.

In termini ancora più semplici, l'input non attendibile viene accettato come attendibile.
@Elipticalview [Oh sì, "Little Bobby Tables", lo chiamiamo.] (Http://xkcd.com/327/)
Rich Bradshaw
2014-04-12 18:39:02 UTC
view on stackexchange narkive permalink

This example dialog - perhaps you are both characters, or you get them to ask the questions of you:

Q1: What's your favourite colour (1 word)
A1: Blue

Q2: Where did you last go on holiday (2 words)
A2: To France

Q3: What car do you drive (1000 words)
A3: Vauxhall Astra. Cheeseburger. Tomorrow I'm driving to London. I like cake. Ohhh a squirrel. My PIN is 1234. I like chickens. SPAAAACEEEE. Last night I ate spaghetti. BUD WEIS EEEEERRRR. etc etc etc

That last chunk is mainly garbage, but there might be a few good things in there.

Quella era veramente la mia linea di pensiero ... Preoccuparsi o cosa!
La terza domanda dovrebbe essere Q3 piuttosto che Q2?
Bristol
2014-04-10 15:14:35 UTC
view on stackexchange narkive permalink

Questo è un tentativo di usare quasi nessun gergo.

Quando ti connetti a un sito web "sicuro" (uno con una barra verde e l'icona di un lucchetto), il tuo browser e il sito web eseguono un po 'di hocus-pocus matematici e vi ritroverete entrambi con una chiave segreta, come una password casuale molto lunga, con la quale potete inviarvi reciprocamente messaggi crittografati.

Mentre navighi nel sito e fai clic sui collegamenti, Sarebbe molto costoso rifare l'intero hocus-pocus ogni volta, quindi il sito Web e il browser continuano a utilizzare la stessa chiave per un po '. Dal momento che il sito web non vuole mantenere un elenco di ogni singola chiave che ogni singolo visitatore ha mai utilizzato, è stato inventato un protocollo chiamato heartbeat. Finché stai ancora navigando in giro, di tanto in tanto il tuo browser invierà al sito un messaggio che dice HEARTBEAT, che significa "Sono ancora qui, tieni la mia chiave". Il sito risponde qualcosa all'effetto di "roger that". Se il sito web non sente alcun HEARTBEAT da te per un po ', presume che tu sia andato su un altro sito e butti via la tua chiave per fare spazio a nuovi.

In realtà, i heartbeat ne fanno uno più cosa. Puoi inviare qualsiasi testo che ti piace insieme a loro e il sito web risponderà esattamente con lo stesso testo. Il motivo per cui è fatto in questo modo non mi è del tutto chiaro, suppongo che sia così che il tuo browser possa controllare se sta succedendo qualcosa di divertente (come il testo sbagliato che ritorna o i testi che tornano nell'ordine sbagliato) e farti sapere che qualcuno potrebbe sta facendo qualcosa di brutto.

Quindi il tuo browser ogni tanto invia un messaggio come "HEARTBEAT, testo con 5 lettere, CIAO" e il sito risponde "roger quello, 5 lettere, CIAO". Il testo può essere praticamente qualsiasi cosa, come la data e l'ora correnti. Puoi inviare una poesia se vuoi.

Il bug del cuore è che se invii un messaggio come "HEARTBEAT, 1000 letters, CHEESE", se il sito web utilizza un programma chiamato OpenSSL per eseguire la crittografia, va male. E OpenSSL è una specie di programma più comune utilizzato per eseguire la crittografia su Internet. Quello che dovrebbe fare è notare che CHEESE ha 6 lettere, non 1000, e lamentarsi. Invece, legge il tuo messaggio e lo scrive da qualche parte nella sua memoria. Quindi, risponde "Roger che, 1000 lettere, ..." e inizia a leggere le successive 1000 lettere dalla sua memoria a partire da dove ha memorizzato il tuo FORMAGGIO. Quindi puoi sentire qualunque siano le successive 994 lettere nella sua memoria, e questo potrebbe essere letteralmente qualsiasi cosa. Potrebbero essere le chiavi segrete del sito web. Potrebbe essere una poesia. Potrebbero essere le password di altri clienti e i dettagli della carta di credito. Potrebbe essere la foto di un gatto. È completamente casuale, ma ogni volta che invii un messaggio HEARTBEAT come questo, puoi vedere una porzione casuale diversa della memoria del sito Web, quindi se ripeti i tuoi HEARTBEAT abbastanza spesso, è molto probabile che prima o poi raggiungerai qualcosa di interessante.

La cosa peggiore che può accadere è che tu recuperi le chiavi principali del sito web, quelle utilizzate per avviare l'hocus-pocus ogni volta che un nuovo visitatore arriva sul sito. Se lo fai, in teoria puoi leggere tutto ciò che tutti stanno facendo sul sito, come se non ci fosse affatto la crittografia. Ogni volta che qualcuno accede, vedrai la sua password in chiaro. Non è una cosa carina che accada.

Se un utente malintenzionato ruba le "chiavi principali" dal server Web, deve comunque a) acquisire tutto il traffico da e verso il server Web oppure b) impostare un attacco man-in-the-middle che trasferisca tutto il traffico al proprio possedere invece un server "proxy", per poter leggere tutto quello che fanno tutti sul sito. Ci sarà ancora la crittografia dall'utente finale al server web (m-i-t-m o reale) e la comunicazione degli utenti sarà al sicuro da tutti tranne che per l'attaccante che ha rubato le "chiavi principali".
È vero (e anche se non l'ho menzionato nel testo, +1 motivo per usare anche la segretezza perfetta in avanti). Per il pubblico di destinazione menzionato nella domanda originale, avrei bisogno di pensare a come spiegare gli attacchi mitm in questo contesto.
Perché è fatto in questo modo è così hai una chiara indicazione che hanno riconosciuto il tuo battito cardiaco. Hai dato loro un carico utile unico che ti restituiscono ma che non avrebbero saputo da nessun'altra fonte e puoi dire con certezza che la connessione è ancora viva.
@MattBianco A meno che non abbiano effettivamente rubato il nome utente e la password di root in chiaro, nel qual caso devono solo eseguire ssh e il server è loro.
@corsiKa, come ruberebbero la password di root? E perché root dovrebbe essere in grado di accedere con ssh e con l'autenticazione della password? È semplicemente stupido!
@MattBianco Se qualcuno ha mai effettuato l'accesso alla macchina, c'è una possibilità che la sua password sia ancora in memoria (anche se è stata `free`d.) Quindi se un amministratore si è inserito come` secretaccount@mydomain.com` e poi ha elevato i propri privilegi (per esempio, `su elevated`) le password per secretaccount ed elevated saranno probabilmente in memoria. (Sì, dovremmo sempre cancellare manualmente le password prima di liberare i dati, ma poiché deve esistere in memoria a un certo punto, a un certo punto deve essere accessibile).
@corsiKa, Non compro la possibilità che le password in chiaro dei processi `sshd` o` login` siano alla portata del processo del server web. Credo che ciò richiederebbe anche un sistema operativo danneggiato dal cervello.
pyramids
2014-04-10 21:19:42 UTC
view on stackexchange narkive permalink

I'll use one two three technical terms, "heartbeat," "bug," and "webserver." I hope that won't scare off your non-technical friends.

When computers exchange data over the internet, sometimes it is useful to know if the other one is still listening. In many places, there are provisions to do the equivalent of asking "Hey, are you listening? Can you tell me what I just said?" In different contexts, there are many different names for such techniques that sometimes even turn up in mainstream media---"echo" is one, "ping" another, and the one that has a serious bug in a very widely used piece of software is "heartbeat." This particular "heartbeat" scheme is not actually used in many applications, but because the general idea can be so useful, many computers allow it.

The problem is that one piece of software most webservers use has a bug: Depending on just how the "What did I just tell you?" is asked, it can be tricked into trying to repeat more than what the other side had actually sent, filling in the rest with random things the webserver happens to know. By asking in such a tricky way, one can get webservers with this bug to tell almost anything they know about, including user passwords and (from webservers that handle such information) sensitive data like credit card numbers, email contents, etc. And it doesn't stop there, even the secrets with which other computers could impersonate these webservers are at risk.

This is not limited to webservers, but that's where anyone using the internet comes into contact with it. But computer security people have their hands full now with lots of computers and lots of different software that may be affected.

Questo è abbastanza buono, ma direi "Quando rispondo alla domanda" Quali sono le ultime mille cose che ti ho appena detto? " dopo avergli detto solo una cosa, risponde con noncuranza con quell'unica cosa più 999 altre cose casuali a cui stava pensando. "
Sicuro. Il problema è che, se provo a includere tutti questi dettagli, prima di rendermene conto cercherò di spiegare bit e byte e il conteggio esadecimale (perché 999? Perché non 0xFFFF?) ...
Giusto, ma senza descrivere una richiesta di lunghezza non valida, sembra che ogni battito cardiaco innocente trapeli dati invece di quelli dannosi. Sembra una grande distinzione, ma non troppo tecnica. (lascia fuori i numeri specifici se vuoi).
@AShelly Ho modificato la risposta per mostrare che non tutti i battiti cardiaci perdono dati, anche se non si parla ancora di numeri. Certo, ora mi chiedo se dopo tutto la tua proposta originale fosse migliore!
user44002
2014-04-10 11:45:46 UTC
view on stackexchange narkive permalink

When you visit a webpage which uses "https", the connection between you and the webserver is encrypted. This protective layer is called SSL or TLS. An underlying component of this implementation has a security-problem with it - causing the server which serves a webpage to "leak data" (i.e. disclose memory contents to an attacker). There are some constraints on how this data is leaked, but it is very serious and could expose all kinds of data on the vulnerable server.

Here is a technical video which shows an example of data-leakage from a vulnerable server and also shows how to prevent data from being leaked:https://www.youtube.com/watch?v=UjkK22VBzjA

Nzall
2014-04-10 14:26:36 UTC
view on stackexchange narkive permalink

Nuova analogia:

Immagina di chiamare la banca per chiedere se uno dei suoi uffici è aperto. Hai una macchinetta sulla linea (la famigerata "per l'inglese, premi 1" signora) e ti chiede per quante banche vuoi conoscere gli orari e per quali banche. Quindi dici che vuoi le ore per 65.000 banche, ma dai solo il codice per una singola banca. La macchina pensa di dover dare le ore per 65.000 banche, ma dato che dai solo 1 codice banca, riempie il resto con tutto ciò che riesce a trovare: estratti conto da conti casuali, numeri e codici di carte di credito, un'immagine della chiave per la cassaforte, la discussione che il gestore ha in quel momento con il suo medico, ... Non si rende conto che gli altri dati sono irrilevanti e che dovresti avere solo gli orari di apertura di 1 banca.


Vecchia risposta:

Immagina che la tua banca abbia un sistema in cui puoi inviare una richiesta sicura per il codice PIN corrente della tua carta di debito e che il sistema restituisca un codice PIN e un numero di carta bancaria. Questo sistema riceve un aggiornamento in cui puoi inviare un elenco di carte da reimpostare.

Invii una richiesta per un elenco di 65.535 carte di debito da reimpostare, ma passi solo 1 numero di carta. Invece di restituire solo quella singola carta o restituire un errore, la tua banca restituisce i codici esistenti per altre 65.534 carte da altri utenti casuali.

Se stai facendo il downvoting, spiega almeno perché così posso modificarlo se necessario. Personalmente penso che questo sia un concetto simile: invii una richiesta non valida al server e il server restituisce i dati che non dovrebbe restituire.
Non il mio voto negativo, ma la tua risposta non si avvicina a spiegare cosa sta succedendo. Forse questa risposta funzionerà per tua nonna, ma questo è un pubblico diverso, anche se è richiesta una risposta non tecnica.
La domanda è: "Voglio spiegare ai miei amici non esperti di tecnologia cos'è Heartbleed". L'OP vuole una spiegazione non tecnica per le persone che non sono brave con i computer. In questo caso, non si arriva così lontano semplicemente spiegando il concetto. Hai bisogno di un'analogia. E una delle migliori analogie che ho potuto creare con la stessa scala e lo stesso rischio per gli utenti interessati è l'utilizzo dei dati del conto bancario. Mi rendo conto che è tristemente inadeguato per il pubblico regolare, ma credo che sia molto più appropriato per qualcuno che non sa cosa sia SSL, un battito cardiaco o un ricordo.
OK, leggi la risposta di Jimbob. Quindi aggiusta il tuo. Supponiamo che la richiesta sia gestita da una persona, non da un computer. L'impiegato della banca che gestisce questo non invia i codici di quelle 64k carte, ma invia tutto ciò che sta gestendo, come una nota del manager, una conversazione telefonica, uno scherzo, ecc (ma solo per quei 64k). Tutto ciò che viene gestito da quella persona. Facendo questo più e più volte, puoi avere un'idea di cosa sta succedendo, e come funzionano le procedure, quali procedure di sicurezza in particolare, e da lì in poi puoi entrare e fingere di essere tu stesso quell'impiegato di banca.
Un altro problema con il tuo esempio è che si tratta di una richiesta effettiva, mentre l'heartbeat è solo una telefonata alla banca per vedere se è aperta.
@rxt Ho fatto un altro confronto che potrebbe essere più accurato in questo caso.
Kiwy
2014-04-10 15:19:19 UTC
view on stackexchange narkive permalink

Imagine a book you never read and then you don't know the content because the book is closed, the heartbleed bug, is just a way to open a page randomly and being able to read the text, from the book. after extracting enought information you're able to replicate the book and replace it on a shelter without anybody being able to notice.The book being either your computer or your server.

That would be the most simple explanation I would give to non technical persons.


If you want a more precise version, let say you have a book closed with an electronic lock that book is your personal diary. You're the only one that have the key, so you're the only one to be able to both read and write it.
Too bad you electronic lock is defective and allow someone who know the trick to unlock it for 2 seconds.
By doing that more and more you will be able to read the whole content and eventually to modify it afterward.
Lightness Races in Orbit
2014-04-14 00:21:35 UTC
view on stackexchange narkive permalink

È così.

Stai camminando per strada e, oltrepassando l'ingresso di una banca, incontri un sapiente autistico che sta uscendo. Sembra un bravo ragazzo, ma non lo sei, e sai che puoi usarlo per scopi nefasti, perché hai visto abbastanza film per aver imparato che i savant possono conservare e ripetere quantità incredibili di dati e sono generalmente piuttosto attenti, anche.

Quindi gli chiedi l'ora. Ti dice l'ora, ma non può fare a meno di continuare a parlare. Ti dice ogni numero di conto bancario e password che gli sono passati davanti agli occhi e alle orecchie mentre era lì.

Quelle informazioni ora sono tue. Tutto quello che dovevi fare era chiedere il tempo perché, in virtù delle sue condizioni, il sapiente non poteva trattenersi dal dirti più di quanto avrebbe dovuto . Quello di cui non si rende conto è che, chiedendo tempo con i tuoi propositi nefasti, dato che sapevi cosa sarebbe potuto succedere, hai chiesto anche più di quanto avresti dovuto .

Povero ragazzo.

-1 Non spiega come ottiene le informazioni
@Nick: È un'analogia. Senza dettagli tecnici. Come richiesto. Se desideri i dettagli tecnici, sono disponibili su Internet.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...