10 najważniejszych luk w zabezpieczeniach Javy i jak je naprawić
Java konsekwentnie ma złą reputację, jeśli chodzi o bezpieczeństwo, ale biorąc pod uwagę, że połowa aplikacji korporacyjnych w ciągu ostatnich 15 lat została napisana w tym języku, jej wszechobecność (i powszechnie znane wektory ataków) może być bardziej winna niż same nieodłączne słabości bezpieczeństwa Javy. To powiedziawszy, opracowywane są nowe podejścia (np. Rask, Waratek) w celu poprawy bezpieczeństwa aplikacji internetowych Java na poziomie Java Virtual Machine (JVM), ale dla większości organizacji wprowadzenie tradycyjnych zabezpieczeń dla aplikacji Java może pomóc w ochronie przed większością exploitów związanych z Javą.
Ze względu na wszechobecność języka Java kompleksowe zarządzanie lukami w zabezpieczeniach narzędzi i technologii związanych z językiem Java ma kluczowe znaczenie dla utrzymania silnych zabezpieczeń — niezależnie od tego, czy korzystasz z pełnego potoku CI/CD, czy kilku wewnętrznych aplikacji internetowych dla przedsiębiorstw. Poniżej znajduje się 10 najważniejszych luk w zabezpieczeniach technologii Java, w tym narzędzia i popularne aplikacje do obsługi tworzenia aplikacji opartych na języku Java.
10 najczęstszych luk w zabezpieczeniach Javy
1. Węzeł
Ta struktura testów jednostkowych jest standardowym elementem w zestawach narzędzi większości programistów Java, umożliwiającym szybkie i zautomatyzowane testowanie bazy kodu. Jednak pliki JUnit, które są dostarczane z innymi aplikacjami, mogą zawierać luki w zabezpieczeniach. Na przykład wersje Google Web Toolkit (GWT) starsze niż 2.5.1 RC zawierają wiele luk w zabezpieczeniach związanych ze skryptami między witrynami (XSS).
2. Jenkinsa
Jako najczęściej używany serwer ciągłej integracji (CI) na rynku, Jenkins cieszy się dużą popularnością wśród programistów Java. Niestety, popularność jako narzędzia do ciągłej integracji zwykle oznacza więcej luk w zabezpieczeniach i exploitów — a w przypadku Jenkinsa istnieje wiele luk w zabezpieczeniach XSS, cross-site request forgery (CSRF) i denial-of-service (Dos).
3. Hibernacja
Popularny framework ORM Hibernate jest powszechnie używany wśród programistów Java do mapowania obiektów relacyjnych baz danych, takich jak tabele, do klas Java. Wersje 4.1.0 przed 4.2.1, 4.3.x przed 4.3.2 i 5.x przed 5.1.2 narzędzia open source zawierają lukę, która może umożliwić atakującym ominięcie Java Security Manager (JSM).
4. Maven
Apache Maven to szeroko stosowany menedżer kompilacji dla projektów Java, umożliwiający centralne zarządzanie kompilacją, raportowaniem i dokumentacją projektu. Luka w zabezpieczeniach Apache Maven 3.0.4 pozwala zdalnym hakerom na podszywanie się pod serwery w ataku typu man-in-the-middle.
5. Kocur
Ten popularny serwer aplikacji internetowych Java jest odwiecznym faworytem programistów do tworzenia serwletów i aplikacji za pomocą stron JavaServer. Liczący sobie ponad dekadę Tomcat zgromadził stosunkowo imponujący zakres luk w zabezpieczeniach, od luk w zabezpieczeniach XSS po CSRF — z których wiele zostało wykorzystanych na wolności.
6. Jawa 7
Pomimo wejścia Javy 8 w zeszłym roku, Java 7 jest nadal w powszechnym użyciu - chociaż oczekuje się, że do 2016 roku wersja 8 będzie liderem stawki. Jest rzeczą oczywistą, że każda wersja Javy poniżej 7 powinna zostać natychmiast zaktualizowana — nawet wersja 7 wymaga znacznych środków zaradczych dla swojej floty luk w zabezpieczeniach.
7. Ramy sprężynowe
Spring to framework aplikacji z własną strukturą model-view-controller dla języka Java, co pozwala na oddzielenie logiki wejściowej, biznesowej i interfejsu użytkownika. Jako projekt open source, Spring nie jest pozbawiony sporego udziału w udokumentowanych lukach w zabezpieczeniach.
8. Twarze JavaServer
JavaServer Faces (JSF) to framework do prezentacji języka Java, który ułatwia tworzenie elementów interfejsu użytkownika wielokrotnego użytku. Luka w zabezpieczeniach Apache MyFaces Core 2.0.x przed 2.0.12 i 2.1.x przed 2.1.6 może umożliwić zdalnym atakującym odczytanie dowolnych plików.
9. Środowisko IDE zaćmienia
Eclipse to popularne narzędzie komputerowe do tworzenia aplikacji internetowych w Javie, które od lat służy jako preferowane zintegrowane środowisko programistyczne (IDE) programistów Java. Niestety, niektóre wersje jego plików pomocy - ze wszystkich rzeczy - są podatne na exploity związane z XSS.
10. Vaadin
Vaadin to popularna platforma Java do tworzenia współczesnych aplikacji internetowych Java — pomyśl o nowoczesnych, jednostronicowych aplikacjach internetowych opartych na Javie. Luka w zabezpieczeniach XSS w strukturze może umożliwić zdalnym atakującym wstrzykiwanie dowolnych skryptów do stron.
Korygowania
Aby naprawić powyższe luki w zabezpieczeniach, należy określić, które z tych technologii są używane w danym środowisku, i odwiedzić witrynę internetową odpowiedniego dostawcy/projektu w celu uzyskania informacji o aktualizacjach/poprawkach. UpGuard może znaleźć wszystkie te elementy automatycznie za pomocą kilku kliknięć myszką. Co więcej, nasza edytowalna polityka dotycząca luk w zabezpieczeniach Java może się rozrastać, aby uwzględnić wszelkie niestandardowe testy dodatkowych narzędzi Java. Już dziś skorzystaj z jazdy próbnej — to nic nie kosztuje.
Infografika dotycząca luk w zabezpieczeniach oprogramowania Java
