Skip to content
Menu
CDhistory
CDhistory

Java biztonsági sebezhetőségek és nyelvi áttekintés

Posted on szeptember 1, 2021 by admin

Java nyelvi sebezhetőségek

  • Mi a Java?
  • Miért hozták létre eredetileg a Javát?
  • Főbb Java keretrendszerek és biztonsági fenyegetéseik:
  • Struts
  • Spring MVC
  • Google Web Toolkit (GWT)
  • Hibernate
  • OWASP ESAPI
  • Java Server Faces (JSF)
  • JSP
  • Java biztonsági sebezhetőségek
  • Nagy kockázatú Java biztonsági sebezhetőségek:
  • Securing your Java

Mi a Java?

A eredetileg 1995 májusában megjelent Java a világ legnépszerűbb programozási nyelve, a vállalati asztali számítógépek több mint 95%-a Java nyelven fut. A Javát úgy tervezték, hogy a fejlesztők “egyszer írjanak, bárhol fussanak” (WORA), ami azt jelenti, hogy a Java nyelven írt kód minden Java-támogatással rendelkező platformon futtatható, további újbóli fordítás nélkül.

A Java egy konkurens, osztályalapú, objektumorientált, általános célú programozási nyelv, amelyet gyors, biztonságos és megbízható voltáért ünnepelnek, és amely a legnépszerűbb weboldalaktól a mobileszközökig, a játékkonzoloktól a vállalati adatközpontokig és azon túl mindenhol megtalálható. A Java a GNU General Public License licenc alatt áll, és ingyenesen letölthető.

Java kabala
A Java kabala Duke, akit a Shrek animációjában részt vevő Joe Palrang készített

A Java számos programozási nyelv, köztük a C++, C#, Eiffel, Mesa, Modula-3, Objective-C és mások hatása alatt áll, és fontos szerepet játszott számos népszerű programozási nyelv, például a Groovy, Hack, Haxe, Kotlin, PHP, Python, Scala és mások fejlesztésében. Világszerte több mint 9 millió Java-fejlesztő van, ami, ha mindannyian összefognának és egy országot alkotnának, a világ 95. legnagyobb népességű országa lenne, vagy ha egy várost hoznának létre, holtversenyben a világ 20. legnagyobb városa lenne.

Miért hozták létre eredetileg a Javát?

A kilencvenes évek elején a hálózati számítástechnika erejének kiterjesztése a mindennapi életre radikális víziónak számított, és a Sun Microsystem mérnökeinek egy csoportja, a “Zöld csapat” néven ismert James Gosling vezetésével ezt a víziót igyekezett megvalósítani azzal, hogy a Java létrehozásával a fogyasztói eszközök és számítógépek egyesítésével a számítástechnika következő hullámát indította el. Ez a Sun-mérnökökből álló csapat kissé megelőzte korát, mivel erőfeszítéseik középpontjában kezdetben az interaktív televíziózás állt, és a projekt nyelvét eredetileg Oaknak nevezték el, a Gosling irodája előtt álló fa után, mielőtt a Java kávé után átnevezték volna Java-ra.

James Gosling, a Java megalkotója
James Gosling, a Java megalkotója

Míg a Java az interaktív televíziózás terén megelőzte a korszakot, az internet fellendülésével egy időben jelent meg, és tökéletesen illeszkedett ehhez a feltörekvő technológiához. 1995-ben bejelentették, hogy a Netscape Navigator internetböngészőbe beépítik a Java technológiát, és azóta a nagyobb webböngészők beépítették a Java appletek futtatásának képességét.

A legtöbb kódolási nyelvhez hasonlóan a Java fejlesztését is számos alapelv vezérelte, amelyek befolyásolták a Java létrehozását és folyamatos fejlesztését:

  • “Egyszerűnek, objektumorientáltnak és ismerősnek” kell lennie.
  • “Robusztusnak és biztonságosnak” kell lennie.
  • “Architektúrasemlegesnek és hordozhatónak” kell lennie.
  • “nagy teljesítményűnek” kell lennie.
  • “értelmezettnek, szálkezeltnek és dinamikusnak” kell lennie.

Főbb Java keretrendszerek és biztonsági fenyegetéseik:

Struts

A Struts egy ingyenes,akcióalapú, nyílt forráskódú, modell-nézet-vezérlő (MVC) keretrendszer, amelyet Java EE webes alkalmazások fejlesztésére használnak. A 2000 májusában megjelent Struts-ot Craig McClanahan írta és az Apache Foundation-nek adományozta.A Struts fő célja a modell (az alkalmazás logikája, amely kölcsönhatásba lép az adatbázissal), a nézet (az ügyfélnek bemutatott HTML oldalak) és a vezérlő (a nézet és a modell között információt továbbító példány) szétválasztása.

A Struts segítségével épített alkalmazások egyik fő biztonsági problémája a távoli kódfuttatás. A Struts2, a népszerű Struts keretrendszert 2010-ben több mint 18 000 szervezet több mint 1 millió alkalommal töltötte le, és tartalmazott egy egyedi gyengeségosztályt, amely lehetővé tette

A rosszindulatú felek számára, hogy tetszőleges kódot hajtsanak végre bármely Struts2 webes alkalmazáson.

Spring MVC

A Spring MVC egy Spring alkalmazás keretrendszer, amelyet a Spring fejlesztői írtak válaszul más népszerű keretrendszerek általuk vélt tervezési hibáira, például a prezentációs és a kéréskezelő réteg, illetve a kéréskezelő réteg és a modell közötti elégtelen elválasztásra. A Strutshoz hasonlóan a Spring MVC is egy akcióalapú keretrendszer. 2011-ben a Spring MVC-t a Struts-szal együtt a CVE-2012-3451 miatt az egyik legtöbbet letöltött sebezhető könyvtárnak tartották, ezt a verziót 2011-2012 között több mint 18 milliószor töltötték le több mint 43 000 szervezetnél

Google Web Toolkit (GWT)

A Google Web Toolkit (GWT) egy nyílt forráskódú eszközkészlet, amely lehetővé teszi a fejlesztők számára, hogy komplex JavaScript front-end alkalmazásokat hozzanak létre és tartsanak fenn Java nyelven, és amelyet a Google és fejlesztők ezrei használnak világszerte. A GWT-t úgy tervezték, hogy lehetővé tegye a nagy teljesítményű webes alkalmazások produktív fejlesztését anélkül, hogy a programozónak fejlett ismeretekkel kellene rendelkeznie a böngésző furcsaságairól, az XMLHttpRequestről és a JavaScriptről. Mivel a GWT JavaScript kódot állít elő, a GWT alkalmazásokat védeni kell a JavaScript alkalmazásokat fenyegető összes fenyegetés ellen.

Hibernate

A Hibernate ORM, vagy egyszerűen csak Hibernate néven ismert, egy objektum-relációs leképező keretrendszer a Java nyelvhez. Java osztályok adatbázis táblákra való leképezésére és Java adattípusok SQL adattípusokra való leképezésére tervezték. A Hibernate-et tartalmazó alkalmazásokat SQL-injekciók veszélyeztethetik, ha SQL, vagy HQL lekérdezéseket generálnak karakterláncok összekapcsolásával. Ezek ellen úgy lehet védekezni, hogy minden SQL-ben vagy HQL-ben megnevezett paramétereket használunk.

OWASP ESAPI

Az OWASP ESAPI, azaz az OWASP Enterprise Security API egy ingyenes, nyílt forráskódú, webes alkalmazások biztonságát ellenőrző könyvtár, amely egyszerűbbé teszi a fejlesztők számára az alacsonyabb kockázatú alkalmazások írását, míg az ESAPI könyvtárak célja, hogy a programozók számára megkönnyítse a biztonság utólagos hozzáadását a meglévő alkalmazásokhoz.

Java Server Faces (JSF)

A Java Server Faces (JSF) a Java Community Process által szabványként formalizált Java specifikáció a webes alkalmazások komponensalapú felhasználói felületeinek kialakítására. Az OWASP szerint “A JSF nem valósít meg saját biztonsági modellt, hanem a szabványos JEE biztonságra támaszkodik. Ez azt jelenti, hogy a JSF keretrendszerrel integrációs erőfeszítés nélkül használható mind az alkalmazásszerver biztonsági modellje, mind a JAAS vagy más ACL implementációk”. A JSF-et implementáló alkalmazások biztonsági problémája a hozzáférés-szabályozási és engedélyezési kérdések.

JSP

A JavaServer Pages (JSP) a Servlet API-ra épül, és lehetővé teszi a Java kód beágyazását, amelyet lefordítanak, majd a kérés fogadásakor végrehajtanak. A JSP kódot gyakran fenyegető veszély a cross-site scripting (XSS).

Java biztonsági sebezhetőségek

Míg a Java platform számos olyan funkciót tartalmaz, amelyek célja a Java-alkalmazások biztonságának javítása, a fejlesztők számára létfontosságú, hogy már a szoftverfejlesztési életciklus legkorábbi szakaszaiban biztosítsák, hogy Java-kódjuk sebezhetőségmentes legyen. Az olyan Java-biztonsági hibák elkerülése, mint az osztályokhoz és változókhoz való hozzáférés nem korlátozása, az osztályok nem véglegesítése, a csomagok szkópjára való hagyatkozás és mások, a legjobb kiindulópont a Java-kód védelmében, emellett fontos, hogy a fejlesztők megismerkedjenek a Java-kódot, valamint a Java-keretrendszereket fenyegető gyakori biztonsági fenyegetésekkel. A Java kód fejlesztés közbeni védelméről bővebben itt olvashat a 9 biztonsági hiba, amelyet minden Java-fejlesztőnek el kell kerülnie.

Nagy kockázatú Java biztonsági sebezhetőségek:

Mivel a világ összes vállalati asztali számítógépének több mint 95%-án Java fut, komoly következményekkel jár, ha a Java kódban található sebezhetőségek eljutnak a termelésbe, és rosszindulatú felek kihasználják őket. Az alábbiakban felsorolunk néhányat a Java nyelven írt alkalmazásokat fenyegető magas kockázatú veszélyek közül:

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

Securing your Java

Checkmarx’s CxSAST, statikus kódelemző megoldás, kiemelkedik a Java tesztelési megoldások közül, mivel nem csak az a megoldás, amely megóvja a Java kódot a biztonsági és megfelelőségi problémáktól, hanem az az eszköz is, amely hozzájárul a szervezet fejlődéséhez az alkalmazások biztonsági érettségét illetően.

A CxSAST együttműködik a fejlesztői által már használt eszközökkel, mivel zökkenőmentesen integrálódik az SDLC minden szakaszában elérhető legtöbb elterjedt fejlesztési programmal. A CxSAST olyan funkciói, mint az inkrementális kódszkennelés és a legjobb javítási hely, ideálissá tették bármilyen folyamatos integrációs folyamatos fejlesztési (CICD) környezethez.

Amikor a Java kódban sebezhetőségeket észlelnek, a CxSAST nemcsak a legjobb javítási helyet azonosítja, hanem forrásokat is kínál a fejlesztőnek, hogy megértse a támadási vektor működését, valamint javítási tanácsokat is, amelyek segítenek abban, hogy a jövőben elkerüljék a hasonló hibákat.

Vélemény, hozzászólás? Kilépés a válaszból

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Legutóbbi bejegyzések

  • Az Acela visszatért: New York vagy Boston 99 dollárért
  • OMIM bejegyzés – # 608363 – CHROMOSOME 22q11.2 DUPLICATION SYNDROME
  • Kate Albrecht szülei – Tudj meg többet apjáról Chris Albrechtről és anyjáról Annie Albrechtről
  • Temple Fork Outfitters
  • Burr (regény)

Archívum

  • 2022 február
  • 2022 január
  • 2021 december
  • 2021 november
  • 2021 október
  • 2021 szeptember
  • 2021 augusztus
  • 2021 július
  • 2021 június
  • 2021 május
  • 2021 április
  • 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
Menu
CDhistory