Programiści bezradni w obliczu wyzwań kryptograficznych

Brak specjalistycznych szkoleń i wysoki stopień złożoności bibliotek kryptograficznych sprawiają, że twórcy oprogramowania popełniają wiele błędów w szyfrowaniu.

Mimo coraz bardziej widocznej w ostatnich latach, rosnącej presji na wykorzystywanie technik szyfrowania w walce z naruszeniami bezpieczeństwa, niedostateczna wiedza i znaczna złożoność bibliotek kryptograficznych doprowadziły do upowszechnienia się błędów w zabezpieczeniach kryptograficznych aplikacji biznesowych.

Problem ten urósł do znacznych rozmiarów. To drugi z najczęstszych błędów w aplikacjach tworzonych na potrzeby różnych branż – wynika z ostatniego raportu firmy Veracode, w którym pod kątem wrażliwości przeanalizowano ponad 200 tysięcy aplikacji funkcjonujących w środowisku biznesowym.

Zobacz również:

Luki w zabezpieczeniach kryptograficznych występowały częściej niż najbardziej dotychczas rozpowszechnione nieprawidłowości, takie jak wywoływanie skryptów z innych serwerów (ang. cross-site scripting), wstrzykiwanie SQL i techniki typu directory traversal. Obejmowały one takie błędy, jak nieprawidłowe uwierzytelnienie certyfikatu TSL (ang. Transport Layer Security), przechowywanie wrażliwych danych w formie niezaszyfrowanego tekstu jawnego, nieszyfrowanie danych wrażliwych, stałe kodowanie kluczy kryptograficznych, szyfrowanie o niedostatecznej sile, zbyt niska średnia ilość informacji niesionej przez pojedynczą wiadomość (tzw. entropia), stosowanie nielosowych wektorów inicjujących czy niewłaściwa weryfikacja podpisów kryptograficznych.

Jak się okazuje, ofiarą naruszeń najczęściej padają aplikacje sieciowe, chociaż pokaźny odsetek stanowią także aplikacje mobilne.

- Mimo tego, że twórcy oprogramowania uwzględniają zabezpieczenia kryptograficzne w projektowanych przez siebie aplikacjach – szczególnie w takich sektorach, jak ochrona zdrowia i usługi finansowe, jakość tych rozwiązań ani sposób wdrożenia nie są wystarczające – wyjaśnia Chris Wysopal, dyrektor ds. technologii w Veracode.

Wiele firm jest zobowiązanych do szyfrowania danych na mocy regulacji o ochronie danych osobowych. Z raportu firmy Veracode wynika jednak, że osoby zajmujące się tworzeniem oprogramowania w tych organizacjach, nie zostały odpowiednio przeszkolone z zakresu technik kryptograficznych. Mimo to, wielu programistów błędnie twierdzi, że doskonale zna się na kryptografii, co powoduje, że ich przeświadczenie o bezpieczeństwa jest tylko pozorne.

Badanie przeprowadzone przez firmę Veracode obejmowało tylko te aplikacje, w których wykorzystano standardowe API (interfejsy programowania aplikacji) kryptograficzne bazujące na takich językach programowania, jak Java i .NET, lub popularnych bibliotekach typu OpenSSL. Wymienione, nowe język programowania w dużo większym stopniu chronią programistów przed popełnianiem błędów.

- Zewsząd słychać jednak argumenty, że bazowanie na nowych językach programowania zwiększa prawdopodobieństwo tego, że programiści ulegną pozornemu poczuciu bezpieczeństwa i nie dołożą odpowiednich starań do zabezpieczenia aplikacji podczas kodowania – właśnie ze względu na ich prostsze stosowanie i większą ochronę. To z kolei może wywołać inne błędy, np. logiczne – wyjaśnia Carsten Eiram, dyrektor ds. badań w amerykańskiej firmie Risk Based Security.

Brak zrozumienia niuansów kryptografii – odzwierciedlające się przykładowo w myśleniu, że do stuprocentowego zabezpieczenia wystarczy samo podłączenie się do biblioteki kryptograficznej – uniemożliwia skuteczne wdrożenie jej rozwiązań. Do tych subtelnych, trudnych do wychwycenia aspektów należą chociażby takie techniki, jak odpowiednia weryfikacja certyfikatów, ochrona kluczy kryptograficznych, stosowanie kluczy o odpowiednich rozmiarach i generatorów liczb pseudo-losowych o dużej sile szyfrowania.

Ostatecznie, wszystko sprowadza się do właściwego przeszkolenia twórców oprogramowania, by rozumieli on wszelkie pułapki czyhające na nich podczas wdrażania rozwiązań kryptograficznych.

Profesor Matthew Green z amerykańskiego Uniwersytetu Johnsa Hopkinsa, specjalista w zakresie kryptologii, uważa, że wiele bibliotek kryptograficznych nie spełnia wymogów użyteczności, bo zostały stworzone przez i dla kryptografów. Jego zdaniem, zmuszanie twórców oprogramowania do korzystania z takich bibliotek to jak oczekiwanie od posiadaczy prawa jazdy, że będą potrafili obsługiwać samolot.

- Zamiast próbować robić kryptografów z programistów, lepiej uprościć wykorzystywane przez nich programy kryptograficzne, najlepiej tak, by ich działanie było całkowicie niezauważalne – twierdzi prof. Matthew Green. – Obecnie stosowane API kryptograficzne ma niską jakość, bo kryptografia, i ogólnie rozwiązania bezpieczeństwa, są mniej dojrzałe w porównaniu z innymi technologiami – dodaje.


TOP 200