Skip to content
Menu
CDhistory
CDhistory

Java-tietoturva-aukkojen ja kielen yleiskatsaus

Posted on 1 syyskuun, 2021 by admin

Java-kielen haavoittuvuudet

  • Mikä on Java?
  • Miksi Java alun perin luotiin?
  • Major Java Frameworks and their Security Threats:
  • Struts
  • Spring MVC
  • Hibernate
  • OWASP ESAPI
  • Java Server Faces (JSF)
  • JSP
  • Javan tietoturva-aukot
  • Suuren riskin Java-tietoturva-aukot:
  • Securing your Java

Mikä on Java?

Java julkaistiin toukokuussa 1995, ja se on maailman suosituin ohjelmointikieli, ja yli 95 % kaikista yritysten pöytäkoneista käyttää Javaa. Jave on suunniteltu niin, että kehittäjät voivat ”kirjoittaa kerran, suorittaa missä tahansa” (WORA), mikä tarkoittaa, että Javalla kirjoitettu koodi voi toimia kaikilla alustoilla, joilla on Java-tuki, ilman että sitä tarvitsee kääntää uudelleen.

Java on rinnakkainen, luokkapohjainen, oliokeskeinen yleiskäyttöinen ohjelmointikieli, jota juhlitaan nopeana, turvallisena ja luotettavana ja jota voi löytää kaikkialta suosituimmista verkkosivustoista mobiililaitteisiin ja pelikonsoleista yritysten datakeskuksiin ja muualle. Java on lisensoitu GNU General Public License -lisenssillä, ja se on vapaasti ladattavissa.

Javan maskotti
Javan maskotti Duke, jonka on luonut Joe Palrang, joka oli mukana Shrekin animaatiossa

Javaan ovat vaikuttaneet lukuisat ohjelmointikielet, kuten C++, C#, Eiffel, Mesa, Modula-3, Objective-C ja muut, ja se on ollut tärkeässä roolissa monien suosittujen ohjelmointikielien kehityksessä, kuten esimerkiksi Groovyn, Hackin, Haxe:n, Kotlinin, PHP:n, Pythonin ja Scalan. Maailmanlaajuisesti Java-kehittäjiä on yli 9 miljoonaa, ja jos he kaikki liittyisivät yhteen ja muodostaisivat maan, se olisi väkiluvultaan maailman 95. suurin maa, tai jos he muodostaisivat kaupungin, se olisi maailman 20. suurin kaupunki.

Miksi Java alun perin luotiin?

1990-luvun alussa verkkolaskennan tehon ulottamista jokapäiväiseen elämään pidettiin radikaalina visiona, ja ryhmä Sun Microsystemin insinöörejä, jotka tunnettiin nimellä ”Vihreä tiimi” ja joita johti James Gosling, pyrki toteuttamaan tämän vision aloittamalla tietotekniikan seuraavan aallon kuluttajalaitteiden ja tietokoneiden yhdistämisellä Javan luomisen myötä. Tämä Sunin insinööriryhmä oli hieman aikaansa edellä, sillä aluksi he keskittyivät vuorovaikutteiseen televisioon, ja projektin kieli oli alun perin nimeltään Oak, Goslingin toimiston ulkopuolella olevan puun mukaan, ennen kuin se nimettiin uudelleen Javaksi Java-kahvin jälkeen.

James Gosling, Javan luoja
James Gosling, Javan luoja

Jaava oli vuorovaikutteisen television kehityksessä edelläkävijä, mutta se syntyi samaan aikaan, kun internet oli alkanut saada jalansijaa, ja se sopi mainiosti tähän kehittyvään teknologiaan. Vuonna 1995 ilmoitettiin, että Netscape Navigator -internetselain sisältäisi Java-teknologian, ja sen jälkeen suurimmat verkkoselaimet ovat sisällyttäneet Java-sovelmia.

Kuten useimpien koodauskielten kohdalla, myös Javan kehitystä ohjasi joukko periaatteita, jotka vaikuttivat Javan luomiseen ja jatkokehitykseen:

  • Sen on oltava ”yksinkertainen, oliokeskeinen ja tuttu”.
  • Sen on oltava ”vankka ja turvallinen”.
  • Sen on oltava ”arkkitehtuurineutraali ja siirrettävä”.
  • Sen on suoritettava ”suurella suorituskyvyllä”.
  • Sen on oltava ”tulkittu, säikeistetty ja dynaaminen”.

Major Java Frameworks and their Security Threats:

Struts

Struts on ilmainen,toimintapohjainen avoimeen lähdekoodiin pohjautuva malli-näkymä-ohjain (Model-View-Controller, MVC) -puitekehys, jota käytetään Java EE:n web-sovellusten kehittämiseen. Toukokuussa 2000 julkaistun Strutsin kirjoitti Craig McClanahan ja se lahjoitettiin Apache Foundationille.Strutsin päätavoitteena on mallin (sovelluslogiikka, joka on vuorovaikutuksessa tietokannan kanssa) erottaminen näkymästä (HTML-sivut, jotka esitetään asiakkaalle) ja ohjaimesta (instanssi, joka välittää tietoa näkymän ja mallin välillä).

Suurimpana turvallisuusongelmana Strutsin avulla rakennetuissa sovelluksissa on etäkoodin suoritus. Vuonna 2010 suosittu Struts-kehys Struts2 ladattiin yli miljoona kertaa vuonna 2010 yli 18 000 organisaation toimesta, ja se sisälsi ainutlaatuisen heikkousluokan, joka mahdollisti

pahantahtoisten osapuolten suorittaa mielivaltaista koodia missä tahansa Struts2-verkkosovelluksessa.

Spring MVC

Spring MVC on Spring-sovelluskehys, jonka Spring-kehittäjät kirjoittivat vastauksena muiden suosittujen kehysten suunnitteluvirheisiin, kuten riittämättömään erotteluun esitys- ja pyyntöjenkäsittelykerrosten välillä sekä pyyntöjenkäsittelykerroksen ja mallin välillä. Strutsin tavoin myös Spring MVC on toimintapohjainen kehys. GWT suunniteltiin mahdollistamaan suorituskykyisten web-sovellusten tuottava kehittäminen ilman, että koodaajalla on oltava edistynyttä tietämystä selaimen omituisuuksista, XMLHttpRequestistä ja JavaScriptistä. Koska GWT tuottaa JavaScript-koodia, GWT-sovellukset on suojattava kaikkia JavaScript-sovelluksiin kohdistuvia uhkia vastaan.

Hibernate

Hibernate ORM, joka tunnetaan yksinkertaisesti nimellä Hibernate, on olio-relationaalinen kartoituskehys Java-kielelle. Suunniteltu Java-luokkien kartoittamiseen tietokantatauluihin ja Java-tietotyyppien kartoittamiseen SQL-tietotyyppeihin. Hibernatea sisältävät sovellukset voivat olla SQL-injektioiden uhkaamia, jos SQL- eli HQL-kyselyitä luodaan ketjuttamalla merkkijonoja. Yksi tapa suojautua näitä vastaan on käyttää nimettyjä parametreja missä tahansa SQL- tai HQL:ssä.

OWASP ESAPI

OWASP ESAPI eli OWASP Enterprise Security API on ilmainen, avoimen lähdekoodin web-sovellusten tietoturvan ohjauskirjasto, jonka avulla kehittäjien on yksinkertaisempaa kirjoittaa matalariskisempiä sovelluksia, kun taas ESAPI-kirjastot on suunniteltu helpottamaan ohjelmoijien jälkikäteistä tietoturvan lisäämistä olemassa oleviin sovelluksiin.

Java Server Faces (JSF)

Java Server Faces (JSF) on Java-yhteisöprosessin kautta standardiksi vakiinnutettu Java-spesifikaatio komponenttipohjaisten web-sovellusten käyttöliittymien rakentamiseen. OWASP:n mukaan ”JSF ei toteuta omaa tietoturvamallia, vaan se tukeutuu JEE:n standarditurvaan. Tämä tarkoittaa, että sekä sovelluspalvelimen turvallisuusmallia, JAAS:ia tai muita ACL-toteutuksia voidaan käyttää JSF-kehyksen kanssa ilman integrointityötä.” JSF:ää toteuttavien sovellusten tietoturvaongelma on pääsynvalvonta- ja valtuutuskysymykset.

JSP

JavaServer Pages (JSP) on rakennettu Servlet API:n päälle ja se mahdollistaa Java-koodin upottamisen, joka käännetään ja suoritetaan, kun pyyntö vastaanotetaan. JSP-koodin yleinen uhka on cross-site scripting (XSS).

Javan tietoturva-aukot

Vaikka Java-alusta sisältää lukuisia ominaisuuksia, jotka on suunniteltu parantamaan Java-sovellusten tietoturvaa, kehittäjien on kriittisen tärkeää varmistaa, että heidän Java-koodinsa on haavoittuvuudetonta ohjelmistokehityksen elinkaaren varhaisimmissa vaiheissa. Javan tietoturvavirheiden, kuten luokkien ja muuttujien pääsyn rajoittamatta jättämisen, luokkien finalisoimatta jättämisen, pakettikauhaan luottamisen ja muiden vastaavien virheiden välttäminen on paras paikka aloittaa Java-koodin suojaaminen, mutta kehittäjien on myös tärkeää tutustua Java-koodiin kohdistuviin yleisiin tietoturvauhkiin sekä Java-kehyksiin. Jos haluat lisätietoja Java-koodin suojaamisesta kehityksen aikana, lue täältä 9 tietoturvavirhettä, joita jokaisen Java-kehittäjän on vältettävä.

Suuren riskin Java-tietoturva-aukot:

Maailman yritystyöasemista yli 95 %:ssa käytetään Java-tietokonetta, on vakavia seurauksia, kun Java-koodin haavoittuvuudet pääsevät tuotantoon ja pahantahtoiset tahot hyödyntävät niitä. Seuraavassa on luettelo joistakin suuririskisistä uhkista, jotka kohdistuvat Javalla kirjoitettuihin sovelluksiin:

  • 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

Checkmarxin CxSAST, staattinen koodianalyysiratkaisu, erottuu Java-testausratkaisujen joukosta paitsi ratkaisuna, joka pitää Java-koodisi vapaana tietoturva- ja vaatimustenmukaisuusongelmista, myös työkaluna, joka edistää organisaatiosi edistymistä sovellusten tietoturvakypsyyden osalta.

CxSAST toimii kehittäjiesi jo käyttämien työkalujen kanssa, sillä se integroituu saumattomasti useimpiin yleisimpiin kehitysohjelmiin, jotka ovat käytettävissä SDLC:n kaikissa vaiheissa. CxSASTin ominaisuudet, kuten inkrementaalinen koodin skannaus ja paras korjauspaikka, tekivät siitä ihanteellisen mihin tahansa jatkuvan integroinnin jatkuvan kehityksen (CICD) ympäristöön.

Kun Java-koodissa havaitaan haavoittuvuuksia, CxSAST ei ainoastaan tunnista parasta korjauspaikkaa, vaan tarjoaa myös resursseja, joiden avulla kehittäjä voi ymmärtää, miten hyökkäysvektori toimii, sekä korjausneuvontaa, jonka avulla voidaan varmistaa, että samankaltaisilta virheiltä vältytään jatkossa.

Vastaa Peruuta vastaus

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Viimeisimmät artikkelit

  • Acela on palannut: NYC tai Boston 99 dollarilla
  • Temple Fork Outfitters
  • Burr (romaani)
  • Trek Madone SLR 9 Disc
  • Jokainen valmistunut 2016 NBA:n vapaa agenttisopimus yhdessä paikassa

Arkistot

  • helmikuu 2022
  • tammikuu 2022
  • joulukuu 2021
  • marraskuu 2021
  • lokakuu 2021
  • syyskuu 2021
  • elokuu 2021
  • heinäkuu 2021
  • kesäkuu 2021
  • toukokuu 2021
  • huhtikuu 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
Menu
CDhistory