Vlákno názorů k článku Heartbleed bug: vážná zranitelnost v OpenSSL od Dashiel - K jaké paměti má vlastně OpenSSL přístup? Z...

  • Článek je starý, nové názory již nelze přidávat.
  • 11. 4. 2014 15:49

    Dashiel (neregistrovaný)

    K jaké paměti má vlastně OpenSSL přístup? Z logiky věci by měly být paměťové prostory jednotlivých procesů oddělené. Nebo je paměť společná pro celý HTTP server, včetně všech modulů, interpretů a podobně?

    Pokud ano, tak mi to připadá jako dost velký návrhový nedostatek - v porovnání například s IIS, kde jsou třeba FastCGI moduly zcela odděleny (i co se přístupových práv týče).

  • 11. 4. 2014 16:35

    Někdo (neregistrovaný)

    OpenSSL má přístup k celé paměti aktuálního procesu který tu knihovnu používá. To platí na Windows stejně jako na Unixech. Pokud jde o Apache httpd, tak tam jde o modul mod_ssl, který realizuje SSL/TLS, a běží ve stejném procesu který obsluhuje spojení s klienty. Pokud v tom samém procesu běží například PHP, je k dispozici spousta dat, ale i pokud je aplikační zpracování v jiném procesu (např. PHP přes FastCGI, nebo třeba aplikační server připojený přes mod_proxy_ajp) tak je v paměti procesu celkem dost dat - například tělo i parametry HTTP požadavků, což mohou být i přístupová jména, hesla nebo autorizační cookie - takže je to úplně stejné jako u IIS.

  • 11. 4. 2014 17:37

    Ondřej Caletka
    Zlatý podporovatel

    Přesně tak, jen bych ještě podotknul, že knihovna OpenSSL používá svůj vlastní alokátor paměti, takže je velmi nepravděpodobné, že by se někomu pomocí heartbeatu podařilo získat data z jiné části paměti stejného procesu, než té, která patří knihovně OpenSSL. Jenže TLS knihovnou musí z logiky věci procházet veškerá data a to jak v šifrované, tak i v nešifrované podobě, takže i tak jde o poměrně hodně zajímavých dat.

  • 11. 4. 2014 18:44

    Dashiel (neregistrovaný)

    Je jasné že přes OpenSSL teče samotná komunikace s hesly a vůbec tím vším, ale jedná se mi spíš o to, jestli by se v dotčené čísti paměti mohly vyskytnout i interní data serveru (například PHP sessions, hodnoty proměnných a tak podobně). To by byl IMO mnohem větší průser.