Hoppa till innehåll
Meny
CDhistory
CDhistory

Säkerhetsbrister i Java och översikt över språket

Publicerat den september 1, 2021 av admin

Säkerhetsbrister i Java

  • Vad är Java?
  • Varför skapades Java ursprungligen?
  • Större Java-ramverk och deras säkerhetshot:
  • Struts
  • Spring MVC
  • Google Web Toolkit (GWT)
  • Hibernate
  • OWASP ESAPI
  • Java Server Faces (JSF)
  • JSP
  • Sårbarheter i Javas säkerhet
  • Högrisk Java-säkerhetssårbarheter:
  • Säkra din Java

Vad är Java?

Java släpptes ursprungligen i maj 1995 och är det populäraste programmeringsspråket i världen, och mer än 95 % av alla företagsdatorer körs med Java. Jave är utformat för att låta utvecklare ”skriva en gång, köra var som helst” (WORA), vilket innebär att kod som skrivs i Java kan köras på alla plattformar med Java-stöd utan att det behövs någon ytterligare omkompilering.

Java är ett samtidigt, klassbaserat, objektorienterat, allmänt användbart programmeringsspråk som hyllas för att vara snabbt, säkert och tillförlitligt och som finns överallt, från de populäraste webbplatserna till mobila enheter och från spelkonsoler till datacenter i företag och vidare. Java är licensierat under GNU General Public License och kan laddas ner gratis.

Java-maskot
Java-maskoten Duke som skapades av Joe Palrang som var inblandad i animeringen av Shrek

Java har påverkats av ett stort antal programmeringsspråk, bland annat C++, C#, Eiffel, Mesa, Modula-3, Objective-C och andra, och har spelat en viktig roll i utvecklingen av många populära programmeringsspråk som Groovy, Hack, Haxe, Kotlin, PHP, Python, Scala och andra. Det finns över 9 miljoner Javautvecklare världen över, vilket, om de alla gick samman och bildade ett land, skulle vara det 95:e största landet i världen sett till folkmängd, eller, om de bildade en stad, skulle den ligga på samma plats som den 20:e största staden i världen.

Varför skapades Java ursprungligen?

I början av 1990-talet ansågs det vara en radikal vision att utvidga kraften hos nätverksdatorer till vardagen, och en grupp ingenjörer från Sun Microsystem, kända som ”Green Team” och ledda av James Gosling, försökte förverkliga denna vision genom att inleda nästa våg av databehandling genom att förena konsumentenheter och datorer med skapandet av Java. Detta team av Sun-ingenjörer låg något före sin tid, eftersom de inledningsvis inriktade sig på interaktiv television och projektspråket kallades ursprungligen Oak, efter trädet utanför Goslings kontor, innan det döptes om till Java efter Java-kaffet.

James Gosling, skapare av Java
James Gosling, skapare av Java

Men Java låg före när det gällde interaktiv tv, men det uppstod samtidigt som internet började ta fart och passade perfekt till denna nya teknik. År 1995 tillkännagavs det att webbläsaren Netscape Navigator skulle innehålla Java-teknik och sedan dess har större webbläsare införlivat möjligheten att köra Java-applets.

Som med de flesta kodningsspråk styrdes utvecklingen av Java av ett antal principer som påverkade Javas tillkomst och fortsatta utveckling:

  • Det måste vara ”enkelt, objektorienterat och välbekant”.
  • Det måste vara ”robust och säkert”.
  • Det måste vara ”arkitekturnära och portabelt”.
  • Den måste köras med ”hög prestanda”.
  • Den måste vara ”tolkad, trådad och dynamisk”.

Större Java-ramverk och deras säkerhetshot:

Struts

Struts är ett kostnadsfritt, åtgärdsbaserat ramverk med öppen källkod, modell-vy-kontroller (MVC) som används för att utveckla Java EE-webbprogram. Struts släpptes i maj 2000, skrevs av Craig McClanahan och donerades till Apache Foundation. Huvudmålet bakom Struts är att separera modellen (programlogik som interagerar med en databas) från vyn (HTML-sidor som presenteras för klienten) och controllern (instans som skickar information mellan vyn och modellen).

Ett stort säkerhetsproblem för tillämpningar som byggs med Struts är exekvering av fjärrkod. Under 2010 hämtades Struts2, ett populärt Struts-ramverk, över 1 miljon gånger under 2010 av över 18 000 organisationer och innehöll en unik svaghetsklass som gjorde det möjligt för skadliga parter att utföra godtycklig kod i en Struts2-webbapplikation.

Spring MVC

Spring MVC är ett ramverk för Spring-applikationer som skrevs av Spring-utvecklare som ett svar på vad de såg som konstruktionsfel i andra populära ramverk, t.ex. otillräcklig åtskillnad mellan presentations- och begärshanteringsskiktet och mellan begärshanteringsskiktet och modellen. I likhet med Struts är Spring MVC också ett åtgärdsbaserat ramverk. År 2011 ansågs Spring MVC, tillsammans med Struts, vara ett av de mest nedladdade sårbara biblioteken på grund av CVE-2012-3451. Denna version hade laddats ner över 18 miljoner gånger mellan 2011-2012 av över 43 000 organisationer

Google Web Toolkit (GWT)

Som en uppsättning verktyg med öppen källkod som gör det möjligt för utvecklare att skapa och underhålla komplexa JavaScript-frontend-applikationer i Java är Google Web Toolkit (GWT) gratis och används av både Google och tusentals utvecklare över hela världen. GWT utformades för att möjliggöra produktiv utveckling av högpresterande webbapplikationer utan att kodaren behöver ha avancerade kunskaper om webbläsarens egenheter, XMLHttpRequest och JavaScript. Eftersom GWT producerar JavaScript-kod måste GWT-applikationer säkras mot alla hot mot JavaScript-applikationer.

Hibernate

Hibernate ORM, känd som helt enkelt Hibernate, är ett ramverk för objektrelationell mappning för språket Java. Den är utformad för att mappa Java-klasser till databastabeller och mappa från Java-datatyper till SQL-datatyper. Program som innehåller Hibernate kan hotas av SQL-injektioner om SQL- eller HQL-förfrågningar genereras genom att sammanfoga strängar. Ett sätt att skydda sig mot dessa är att använda namngivna parametrar i all SQL eller HQL.

OWASP ESAPI

OWASP ESAPI, OWASP Enterprise Security API, är ett gratis, öppen källkod, kontrollbibliotek för säkerhetskontroll av webbapplikationer som gör det enklare för utvecklare att skriva tillämpningar med lägre risk, medan ESAPI-biblioteken är utformade för att underlätta för programmerare att i efterhand lägga till säkerhet i befintliga applikationer.

Java Server Faces (JSF)

Java Server Faces (JSF) är en Java-specifikation för att bygga komponentbaserade användargränssnitt för webbapplikationer som formaliserats som standard genom Java Community Process. Enligt OWASP ”implementerar JSF inte sin egen säkerhetsmodell utan förlitar sig i stället på standard JEE-säkerhet. Detta innebär att både applikationsserverns säkerhetsmodell, JAAS eller andra ACL-implementationer kan användas med JSF-ramverket utan någon integrationsinsats”. Ett säkerhetsproblem för tillämpningar som implementerar JSF är frågor om åtkomstkontroll och auktorisering.

JSP

JavaServer Pages (JSP) bygger på Servlet API och gör det möjligt att bädda in Java-kod som kompileras och sedan körs när en begäran tas emot. Ett vanligt hot mot JSP-kod är cross-site scripting (XSS).

Sårbarheter i Javas säkerhet

Samtidigt som Javaplattformen innehåller många funktioner som är utformade för att förbättra säkerheten för Java-applikationer är det viktigt för utvecklare att se till att deras Javakod är fri från sårbarheter i de tidigaste skedena av livscykeln för programvaruutveckling. Att undvika Java-säkerhetsmisstag som att inte begränsa åtkomsten till klasser och variabler, att inte slutföra klasser, att förlita sig på package scoop och annat är den bästa platsen att börja när man ska säkra Java-kod. Det är också viktigt för utvecklare att bekanta sig med de vanligaste säkerhetshoten som Java-kod, liksom Java-ramverk, står inför. För mer information om att säkra Javakod under utveckling, läs 9 säkerhetsfel som varje Javautvecklare måste undvika här.

Högrisk Java-säkerhetssårbarheter:

Med över 95 % av alla företagsdatorer i världen som körs med Java får det allvarliga konsekvenser när sårbarheter i Javakod tar sig till produktion och utnyttjas av illvilliga parter. Nedan följer en förteckning över några av de hot med hög risk för program som är skrivna i Java:

  • Kodinjektioner
  • Kommandoinjektioner
  • Injektion av anslutningssträngar
  • Injektion av LDAP
  • Reflekterad XSS
  • Ressource Injection
  • Second Order SQL Injection
  • SQL Injection
  • Stored XSS
  • XPath Injection

Säkra din Java

Checkmarx’s CxSAST, en lösning för statisk kodanalys, utmärker sig bland Java-testlösningar inte bara som den lösning som kommer att hålla din Java-kod fri från säkerhets- och efterlevnadsproblem, utan också som det verktyg som kommer att bidra till din organisations framsteg när det gäller mognad för applikationssäkerhet.

CxSAST arbetar med de verktyg som dina utvecklare redan använder eftersom det sömlöst integreras med de flesta vanliga utvecklingsprogram som finns tillgängliga i varje skede av SDLC. CxSAST:s funktioner som inkrementell kodskanning och bästa korrigeringsplats gör den idealisk för alla CICD-miljöer (Continuous Integration Continuous Development).

När sårbarheter upptäcks i Javakoden kommer CxSAST inte bara att identifiera den bästa korrigeringsplatsen, utan kommer också att erbjuda resurser till utvecklaren för att förstå hur angreppsvektorn fungerar samt råd om korrigering, vilket kommer att hjälpa dem att se till att liknande misstag undviks i framtiden.

Lämna ett svar Avbryt svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Senaste inläggen

  • Acela är tillbaka:
  • OMIM Entry – # 608363 – KROMOSOM 22q11.2 DUPLIKATIONSSYNDROM
  • Kate Albrechts föräldrar – Lär dig mer om hennes far Chris Albrecht och hennes mor Annie Albrecht
  • Temple Fork Outfitters
  • Burr (roman)

Arkiv

  • februari 2022
  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021
  • augusti 2021
  • juli 2021
  • juni 2021
  • maj 2021
  • april 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 | Drivs med WordPress och Superb Themes