Skip to content
Menu
CDhistory
CDhistory

Podatności bezpieczeństwa w Javie i przegląd języków

Posted on 1 września, 2021 by admin

Podatności bezpieczeństwa w języku Java

  • Co to jest Java?
  • Dlaczego Java została stworzona?
  • Główne frameworki Java i ich zagrożenia bezpieczeństwa:
  • Struts
  • Spring MVC
  • Google Web Toolkit (GWT)
  • Hibernate
  • OWASP ESAPI
  • Java Server Faces (JSF)
  • JSP
  • Podatności bezpieczeństwa w Javie
  • Błędy bezpieczeństwa wysokiego ryzyka w Javie:
  • Zabezpiecz swoją Javę

Co to jest Java?

Pierwotnie wydana w maju 1995 roku, Java jest najpopularniejszym językiem programowania na świecie z ponad 95% wszystkich komputerów stacjonarnych w przedsiębiorstwach działających na Javie. Jave została zaprojektowana, aby umożliwić programistom „napisać raz, uruchomić gdziekolwiek” (WORA), co oznacza, że kod napisany w Javie jest w stanie uruchomić się na wszystkich platformach z obsługą Javy bez potrzeby dalszej rekompilacji.

Java jest współbieżnym, opartym na klasach, zorientowanym obiektowo językiem programowania ogólnego przeznaczenia, który jest znany z tego, że jest szybki, bezpieczny i niezawodny i można go znaleźć wszędzie, od najpopularniejszych stron internetowych do urządzeń mobilnych i od konsol do gier do centrów danych przedsiębiorstw i nie tylko. Java jest dostępna do pobrania za darmo na licencji GNU General Public License.

Maskotka Javy
Maskotka Javy – Duke, która została stworzona przez Joe Palranga, który był zaangażowany w animację Shreka

Jawa pozostaje pod wpływem wielu języków programowania, w tym C++, C#, Eiffel, Mesa, Modula-3, Objective-C i innych, a także odegrała ważną rolę w rozwoju wielu popularnych języków programowania, takich jak Groovy, Hack, Haxe, Kotlin, PHP, Python, Scala i innych. Na całym świecie jest ponad 9 milionów programistów Javy, którzy, gdyby wszyscy zebrali się razem i utworzyli państwo, byliby 95. największym państwem pod względem liczby ludności na świecie, lub, gdyby utworzyli miasto, byłoby ono na 20. miejscu na świecie.

Dlaczego Java została stworzona?

Na początku lat 90. rozszerzenie mocy obliczeń sieciowych na życie codzienne było uważane za radykalną wizję, a grupa inżynierów firmy Sun Microsystem, znana jako „Green Team”, kierowana przez Jamesa Goslinga, starała się zrealizować tę wizję, wprowadzając następną falę w informatyce poprzez połączenie urządzeń konsumenckich i komputerów za pomocą stworzenia języka Java. Ten zespół inżynierów firmy Sun wyprzedził nieco swoje czasy, ponieważ początkowo ich wysiłki skupiały się na interaktywnej telewizji, a język tego projektu został pierwotnie nazwany Oak, po drzewie rosnącym na zewnątrz biura Goslinga, przed zmianą jego nazwy na Java po kawie Java.

James Gosling, twórca Javy
James Gosling, twórca Javy

Jako że Java wyprzedzała rozwój telewizji interaktywnej, pojawiła się w tym samym czasie, gdy Internet zaczynał nabierać rozpędu, i doskonale pasowała do tej wschodzącej technologii. W 1995 roku ogłoszono, że przeglądarka internetowa Netscape Navigator będzie zawierała technologię Java i od tego czasu główne przeglądarki internetowe mają możliwość uruchamiania apletów Java.

Jak w przypadku większości języków kodowania, rozwój Javy był kierowany przez kilka zasad, które wpłynęły na jej powstanie i dalszy rozwój:

  • Musi być „prosta, zorientowana obiektowo i znana”.
  • Musi być „solidna i bezpieczna”.
  • Musi być „neutralna architektonicznie i przenośna”.
  • Musi być wykonywany z „wysoką wydajnością”.
  • Musi być „interpretowany, wątkowy i dynamiczny”.

Główne frameworki Java i ich zagrożenia bezpieczeństwa:

Struts

Struts jest darmowym, opartym na działaniu frameworkiem open-source, Model-view-controller (MVC) używanym do tworzenia aplikacji internetowych Java EE. Wydany w maju 2000, Struts został napisany przez Craiga McClanahan i przekazany do Apache Foundation, głównym celem Struts jest oddzielenie modelu (logika aplikacji, która współdziała z bazą danych) od widoku (strony HTML prezentowane klientowi) i kontrolera (instancja, która przekazuje informacje pomiędzy widokiem i modelem).

Poważnym problemem związanym z bezpieczeństwem aplikacji zbudowanych przy użyciu Struts jest zdalne wykonanie kodu. W 2010 roku, Struts2, popularny framework Struts został pobrany ponad 1 milion razy w 2010 roku przez ponad 18 000 organizacji i zawierał unikalną klasę słabości, która pozwalała

złośliwym stronom na wykonanie dowolnego kodu na dowolnej aplikacji webowej Struts2.

Spring MVC

Spring MVC jest frameworkiem aplikacji Spring napisanym przez programistów Spring jako odpowiedź na to, co widzieli jako wady projektowe w innych popularnych frameworkach, takie jak niewystarczająca separacja między warstwą prezentacji a warstwą obsługi żądań, oraz między warstwą obsługi żądań a modelem. Podobnie jak Struts, Spring MVC jest również frameworkiem opartym na akcjach. W 2011, Spring MVC, wraz ze Struts, został uznany za jedną z najczęściej pobieranych podatnych bibliotek z powodu CVE-2012-3451, ta wersja została pobrana ponad 18 milionów razy w latach 2011-2012 przez ponad 43 000 organizacji

Google Web Toolkit (GWT)

Jako zestaw narzędzi open source, które pozwalają programistom tworzyć i utrzymywać złożone aplikacje front-end JavaScript w Javie, Google Web Toolkit (GWT) jest darmowy i używany zarówno przez Google jak i tysiące programistów na całym świecie. GWT został zaprojektowany, aby umożliwić produktywne tworzenie wysokowydajnych aplikacji internetowych bez konieczności posiadania przez programistę zaawansowanej wiedzy na temat dziwactw przeglądarki, XMLHttpRequest i JavaScript. Ze względu na fakt, że GWT produkuje kod JavaScript, aplikacje GWT muszą być zabezpieczone przed wszystkimi zagrożeniami, na jakie narażone są aplikacje JavaScript.

Hibernate

Hibernate ORM, znany jako po prostu Hibernate, jest frameworkiem mapowania obiektowo-relacyjnego dla języka Java. Zaprojektowany do mapowania klas Javy na tabele bazy danych i mapowania typów danych Javy na typy danych SQL. Aplikacje zawierające Hibernate mogą być zagrożone iniekcjami SQL, jeśli zapytania SQL, lub HQL, są generowane przez konkatenację ciągów znaków. Jednym ze sposobów ochrony przed nimi jest używanie nazwanych parametrów w każdym SQL lub HQL.

OWASP ESAPI

OWASP ESAPI, the OWASP Enterprise Security API, jest darmową, otwartoźródłową biblioteką kontroli bezpieczeństwa aplikacji internetowych, która upraszcza programistom pisanie aplikacji o niższym ryzyku, podczas gdy biblioteki ESAPI są zaprojektowane tak, aby ułatwić programistom wsteczne dodawanie zabezpieczeń do istniejących aplikacji.

Java Server Faces (JSF)

Formalizowana jako standard poprzez Java Community Process, Java Server Faces (JSF) jest specyfikacją Java do budowania opartych na komponentach interfejsów użytkownika dla aplikacji internetowych. Według OWASP „JSF nie implementuje swojego własnego modelu bezpieczeństwa, ale zamiast tego opiera się na standardowym bezpieczeństwie JEE. Oznacza to, że zarówno model bezpieczeństwa serwera aplikacji, JAAS lub inne implementacje ACL mogą być używane z frameworkiem JSF bez żadnego wysiłku integracyjnego.” Problemem bezpieczeństwa dla aplikacji, które implementują JSF jest kontrola dostępu i kwestie autoryzacji.

JSP

JavaServer Pages (JSP) jest zbudowany na szczycie Servlet API i pozwala na osadzanie kodu Java, który jest kompilowany, a następnie wykonywany po otrzymaniu żądania. Powszechnym zagrożeniem dla kodu JSP jest cross-site scripting (XSS).

Podatności bezpieczeństwa w Javie

Pomimo że platforma Java zawiera wiele funkcji zaprojektowanych w celu poprawy bezpieczeństwa aplikacji Java, krytycznym zadaniem dla programistów jest zapewnienie, że ich kod Java jest wolny od podatności na najwcześniejszych etapach cyklu życia oprogramowania. Unikanie błędów bezpieczeństwa w Javie, takich jak nie ograniczanie dostępu do klas i zmiennych, nie finalizowanie klas, poleganie na pakietach i innych, jest najlepszym miejscem do rozpoczęcia zabezpieczania kodu Java, ważne jest również, aby programiści zapoznali się z typowymi zagrożeniami bezpieczeństwa dla kodu Java, jak również dla frameworków Java. Aby uzyskać więcej informacji na temat zabezpieczania kodu Java podczas jego tworzenia, przeczytaj 9 błędów bezpieczeństwa, których każdy programista Java musi unikać tutaj.

Błędy bezpieczeństwa wysokiego ryzyka w Javie:

Ponieważ ponad 95% wszystkich komputerów korporacyjnych na świecie korzysta z Javy, istnieją poważne konsekwencje, gdy luki w kodzie Java trafiają do produkcji i są wykorzystywane przez złośliwe strony. Poniżej znajduje się lista niektórych zagrożeń wysokiego ryzyka, na które narażone są aplikacje napisane w Javie:

  • Code Injections
  • Command Injections
  • Connection String Injection
  • LDAP Injection
  • Reflected XSS
  • Resource Injection
  • Second Order SQL Injection
  • SQL Injection
  • Stored XSS
  • XPath Injection

Zabezpiecz swoją Javę

Checkmarx’s CxSAST, rozwiązanie do statycznej analizy kodu, wyróżnia się wśród rozwiązań do testowania środowiska Java nie tylko jako rozwiązanie, które uchroni Twój kod Java przed problemami związanymi z bezpieczeństwem i zgodnością, ale również jako narzędzie, które przyczyni się do rozwoju Twojej organizacji w zakresie dojrzałości bezpieczeństwa aplikacji.

CxSAST współpracuje z narzędziami, których programiści już używają, ponieważ płynnie integruje się z większością popularnych programów deweloperskich dostępnych na każdym etapie SDLC. Cechy CxSAST, takie jak przyrostowe skanowanie kodu i najlepsza lokalizacja poprawki, czynią go idealnym rozwiązaniem dla każdego środowiska ciągłej integracji i ciągłego rozwoju (CICD).

Gdy w kodzie Java zostaną wykryte luki, CxSAST nie tylko zidentyfikuje najlepszą lokalizację poprawki, ale również zaoferuje deweloperowi zasoby, które pozwolą mu zrozumieć, jak działa wektor ataku, jak również porady dotyczące naprawy, które pomogą mu uniknąć podobnych błędów w przyszłości.

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ostatnie wpisy

  • Acela powraca: NYC lub Boston za 99 dolarów
  • OMIM Entry – # 608363 – CHROMOSOME 22q11.2 DUPLICATION SYNDROME
  • Rodzice Kate Albrecht – Dowiedz się więcej o jej ojcu Chrisie Albrechcie i matce Annie Albrecht
  • Temple Fork Outfitters
  • Burr (powieść)

Archiwa

  • luty 2022
  • styczeń 2022
  • grudzień 2021
  • listopad 2021
  • październik 2021
  • wrzesień 2021
  • sierpień 2021
  • lipiec 2021
  • czerwiec 2021
  • maj 2021
  • kwiecień 2021
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語
©2022 CDhistory | Powered by WordPress & Superb Themes