Wyzwania informatyki bankowej 2016

wyzwania_informatyki_bankowej_0 wyzwania_informatyki_bankowej_0

02.01.2017 Views

(z ang. Virtual Environments). Popularnym w tej chwili sposobem wykorzystania kontenerów jest Docker, który pierwotnie bazował właśnie na mechanizmie lxc w systemie Linux. Docker – podobnie, jak jego inny popularny konkurent Vagrant – to tak naprawdę kolejna warstwa abstrakcji, działająca ponad warstwą wirtualizacyjną. Rozwiązania te przyjęły się z kilku prostych powodów: • Kontenery w implementacji takiej jak lxc są lżejsze od całych maszyn wirtualnych, jednak nie oferują tak doskonałej izolacji jak typowe maszyny wirtualne – ma to swoje konsekwencje z perspektywy bezpieczeństwa. • Docker i Vagrant zapewnieją łatwiejsze zarządzanie i przygotowanie maszyn wirtualnych (lub kontenerów) do wielokrotnego użycia oraz dystrybucji. • Kontenery są często tworzone do chwilowych zadań, np. testów, demonstracji czy określonej sesji. Są też popularnie wykorzystywane w procesach Continous Integration (CI). Ta chwilowość także ma swoje konsekwencje z perspektywy bezpieczeństwa. Ze względu na ograniczone miejsce, omówię tylko dwie wskazane powyżej kwestie bezpieczeństwa: • Niedoskonała izolacja – nie jest w tym nic złego pod warunkiem, że ma się świadomość takiego ograniczenia. Niektóre zastosowania nie wymagają pełnej izolacji. Kolejnym problemem może być kontrola dostępu. Vagrant np. domyślnie wykorzystuje SSH do dostępu do maszyny wirtualnej, jednak z poziomu użytkownika, który utworzył maszynę lub kontener każdy ma dostęp do klucza SSH. • Tymczasowość kontenerów – zwłaszcza w przypadku użycia rozwiązania typu Vagrant – może być bardzo złudna. To że maszyna wirtualna jest zatrzymywana (np. poleceniem vagrant halt) lub niszczona (vagrant destroy 1 ) wcale nie oznacza, że dane przetwarzane w niej faktycznie uległy nieodwracalnemu zniszczeniu. W praktyce są to po prostu pliki kasowane z poziomu hypervisora – nie jest to więc operacja gwarantująca bezpieczne usunięcie danych. Innym problemem tymczasowości są aktualizacje. Kontenery zazwyczaj nie są uwzględnione w procesie patch management. 1 W przypadku Vagrant także usunięcie potem boksa poleceniem vagrant box remove nie ma znaczenia Cybersecurity – moda, mit czy rzeczywistość? 173

Podatności w SSL/TLS oraz algorytmach kryptograficznych Ostatnie lata obfitowały w podatności w implementacjach protokołów SSL i TLS. Co więcej starsze wersje tych protokołów, choć od dawna uznawane za niebezpieczne nadal są stosowane w wielu rozwiązaniach. Podobnie sytuacja wygląda z funkcją skrótu SHA-1, która od 2005 r. nie jest uznawana za bezpieczną na skutek ataków z użyciem kryptoanalizy. SHA-1 nie jest wyjątkiem, jeśli chodzi o używanie niebezpiecznych funkcji skrót. Nadal popularne jest wykorzystywanie funkcji MD5, o której od wielu lat wiadomo, że nie jest bezpieczna. Kardynalnym przykładem wykorzystania jej słabości jest robak Flame. Wracając do podatności w implementacji protokołów SSL/TLS należy pamiętać, że ponad połowa używanych dzisiaj rozwiązań współdzieli kod z biblioteką OpenSSL (albo wręcz wykorzystuje samą bibliotekę). Rosnąca liczba podatności w OpenSSL spowodowała powstanie projektu LibreSSL, który w założeniu miał być bezpieczną reimplementacją funkcjonalności OpenSSL. W praktyce jednak, twórcy LibreSSL także nie ustrzegli się od błędów prowadzących do podatności. Omawiając podatności związane z protokołami SSL/TLS oraz ich implementacjami nie wolno zapomnieć o dwóch istotnych atakach: • DROWN – pozwala atakującym na odczytanie zaszyfrowanej komunikacji. Według jego autorów 33% serwerów HTTPS jest podatnych na ten atak [1]. W uproszczeniu jest on możliwy, gdy włączona jest obsługa SSLv2. • HeartBleed [2] – pozwala na odczytanie zaszyfrowanej komunikacji. Atak jest możliwy na skutek błędu w obsłudze rozszerzenia heartbeat w starszych wersjach OpenSSL. Analizując powyższe problemy z bezpieczeństwem warto się zapoznać z podatnościami: CVE-2016-0703, CVE-2016-0704, CVE-2015-0293 i CVE- 2014-0160. Innym istotnym protokołem używanym powszechnie – zwłaszcza w wielu usługach IaaS i PaaS w chmurze – jest SSH. Tutaj sytuacja wygląda lepiej, ponieważ rynek serwerów SSH jest praktycznie zdominowany przez implementację OpenSSH, która domyślnie od dawna ma wyłączoną obsługę protokołu v1 uznawanego za niebezpieczny. Jednakże nawet wyłączenie określonej funkcjonalności domyślnie przez twórcę nie gwarantuje, że użytkownicy lub producenci nie włączą jej ponownie. Idealnie obrazuje to podatność xauth 174 Aleksander P. Czarnowski, AVET

Podatności w SSL/TLS oraz algorytmach kryptograficznych<br />

Ostatnie lata obfitowały w podatności w implementacjach protokołów SSL<br />

i TLS. Co więcej starsze wersje tych protokołów, choć od dawna uznawane<br />

za niebezpieczne nadal są stosowane w wielu rozwiązaniach. Podobnie sytuacja<br />

wygląda z funkcją skrótu SHA-1, która od 2005 r. nie jest uznawana za<br />

bezpieczną na skutek ataków z użyciem kryptoanalizy. SHA-1 nie jest wyjątkiem,<br />

jeśli chodzi o używanie niebezpiecznych funkcji skrót. Nadal popularne<br />

jest wykorzystywanie funkcji MD5, o której od wielu lat wiadomo, że nie jest<br />

bezpieczna. Kardynalnym przykładem wykorzystania jej słabości jest robak<br />

Flame.<br />

Wracając do podatności w implementacji protokołów SSL/TLS należy pamiętać,<br />

że ponad połowa używanych dzisiaj rozwiązań współdzieli kod z biblioteką<br />

OpenSSL (albo wręcz wykorzystuje samą bibliotekę). Rosnąca liczba<br />

podatności w OpenSSL spowodowała powstanie projektu LibreSSL, który<br />

w założeniu miał być bezpieczną reimplementacją funkcjonalności OpenSSL.<br />

W praktyce jednak, twórcy LibreSSL także nie ustrzegli się od błędów prowadzących<br />

do podatności.<br />

Omawiając podatności związane z protokołami SSL/TLS oraz ich implementacjami<br />

nie wolno zapomnieć o dwóch istotnych atakach:<br />

• DROWN – pozwala atakującym na odczytanie zaszyfrowanej komunikacji.<br />

Według jego autorów 33% serwerów HTTPS jest podatnych na ten atak<br />

[1]. W uproszczeniu jest on możliwy, gdy włączona jest obsługa SSLv2.<br />

• HeartBleed [2] – pozwala na odczytanie zaszyfrowanej komunikacji. Atak<br />

jest możliwy na skutek błędu w obsłudze rozszerzenia heartbeat w starszych<br />

wersjach OpenSSL.<br />

Analizując powyższe problemy z bezpieczeństwem warto się zapoznać<br />

z podatnościami: CVE-<strong>2016</strong>-0703, CVE-<strong>2016</strong>-0704, CVE-2015-0293 i CVE-<br />

2014-0160.<br />

Innym istotnym protokołem używanym powszechnie – zwłaszcza w wielu<br />

usługach IaaS i PaaS w chmurze – jest SSH. Tutaj sytuacja wygląda lepiej,<br />

ponieważ rynek serwerów SSH jest praktycznie zdominowany przez implementację<br />

OpenSSH, która domyślnie od dawna ma wyłączoną obsługę protokołu<br />

v1 uznawanego za niebezpieczny. Jednakże nawet wyłączenie określonej<br />

funkcjonalności domyślnie przez twórcę nie gwarantuje, że użytkownicy lub<br />

producenci nie włączą jej ponownie. Idealnie obrazuje to podatność xauth<br />

174 Aleksander P. Czarnowski, AVET

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!