Akció!

Biztonságos programozás Java környezetben

565150 Ft571500 Ft

Tisztelt Érdeklődő!
Jelenleg a tanfolyamnak nincs konkrét időpontja. Amennyiben érdeklődőként regisztrálja magát, elősegíti
a tanfolyam mielőbbi megszervezését.
Várjuk jelentkezését!

Törlés
Cikkszám: IT-01-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 Kategória:

Leírás

Óraszám:  nap;  tanóra

Minimum létszám:  fő

A képzés nyelve: magyar

Tandíj:  Ft /fő + ÁFA

A képzés rövid leírása:

A Java megalkotásakor a biztonsági megfontolásokat eleve tudatosan szem előtt tartották. A nyelvi konstrukciók, de maga a futtató környezet is számos előnnyel rendelkezik a natív kódhoz viszonyítva. Ráadásul ha Java-ban szeretnénk biztonságos rendszert fejleszteni, a környezet részeként előre kidolgozott standard biztonsági és kriptográfiai funkciók állnak rendelkezésünkre.

Jelentkezz a Java biztonságos programozás tanfolyamunkra, és ismerd meg hogyan kell a Java technológiáit megfelelően használni, és melyek azok a biztonsági szempontból releváns hibák, amelyek a Java használata során felléphetnek, hogyan kell védekezni ellenük, illetve hogyan lehet őket elkerülni.

A Java egy programnyelv és egyben egy fejlesztői és futtatási környezet is. A szoftvertervezőknek és programozóknak tehát nem csak azzal kell tisztában lenniük, hogy hogyan kell az egyes biztonsági szolgáltatásokat használni, hanem azt is tudniuk kell, hogy melyek a Java környezetre jellemző biztonsági problémák.

Ennek megfelelően a tanfolyam egyrészt gyakorlatokkal alátámasztva lépésenként bemutatja a Java biztonsági felépítményét, megmutatja az egyes szolgáltatások helyes használatát és kitér a megoldások kriptográfiai hátterére is. Másrészt bemutatjuk és elmagyarázzuk a Java nyelv és környezet leggyakoribb és legveszélyesebb sérülékenységeit. A programozók által elkövetett tipikus hibákon túl ismertetjük a nyelv-specifikus problémákat, valamint azokat a biztonsági réseket, amelyek a futtató környezet és az egyes Java szolgáltatások hibás implementációjából fakadnak. Az egyes hibákat a támadási módok bemutatásával demonstráljuk, amit minden esetben a helyes gyakorlati és a védelmi módok ismertetése követ.

A képzés programozóknak, fejlesztőknek, szoftvertervezőknek, tesztelőknek, biztonsági szakembereknek ajánljuk, akik szeretnék megismerni a minél biztonságosabb programok, alkalmazások készítésének technikáit Java környezetben.

Képzési tematika:

  • Az IT biztonságtól a biztonságos programozásig: általános vs. IT biztonság, biztonsági fogalmak, a kockázat fogalma, biztonsági követelmények, biztonságos programozás, a sérülékenységektől a szervezett bűnözésig, a biztonsági rések jellege, kategóriái.
  • A Java biztonság alapjai: a Java programozási nyelv és biztonsági környezet, alacsony szintű biztonsági funkciók (adattag hozzáférés, típus-biztonság, automatikus memóriakezelés, Bytecode Verifier, Class Loader), Java kód védelme (titkosítás, obfuszkáció). Magas szintű biztonsági funkciók: protection domain-ek, Security Manager és az Access Controller, erőforrás hozzáférés szabályozása Permission segítségével, doPrivileged használata, policy definiálása Application és Applet esetén, erőforrás hozzáférés aláírt kód alapján.
  • Java biztonsági szolgáltatások: a Java Authentication and Authorization Service (JAAS) használata, Principal és Credential használata, Subject, JAAS architektúra, Java Generic Security Services (JGSS), Simple Authentication and Security Layer (SASL). Kriptográfiai szolgáltatások: Java Cryptography Architecture (JCA) és Java Cryptographic Extensions (JCE), a Bouncy Castle (BC) szolgáltatásai. Biztonságos kommunikáció: SSL/TLS működése, Java Secure Socket Extension (JSSE) használata. Publikus kulcsú infrastruktúra használata, Java Keystore (JKS), Java Certification Path (CertPath).
  • Webalkalmazások sérülékenységei: SQL injection a gyakorlatban, védekezés; általános command injection; persistent és reflected Cross-Site Scripting (XSS), védekezés; Cross Site Request Forgery (CSRF), védekezés; rosszindulatú állomány-feltöltés, veszélyes közvetlen hivatkozások, egyéb tipikus biztonsági hibák webalkalmazásokban.
  • Bemenet-ellenőrzési hibák: JNI használatából fakadó veszélyek, integer túlcsordulás Java-ban – egy valós életből vett példa a java.util.zip.CRC32-ből, deserialization – súlyos hiba a java.util.Calendar-ban, reflection használatának veszélyei.
  • Biztonsági módszerek helytelen használata: biztonságos véletlenszám generálás Java-ban, a jelszó menedzsment tipikus problémái, authentikáció, személyes adatok védelme (privacy), private adattagok hozzáférése reflection-nel.
  • Hiba- és kivételkezeléssel kapcsolatos biztonsági problémák: hibás kivételjelzés és elkapás, null ellenőrzése – NullPointerException használata, erőforrások újrafelhasználása, equals() és compare() implementáció, információszerzés hibajelentésekből.
  • Időzítéses és állapotkezelési hibák: konkurens hozzáférés, thread-ek futtatása, servlet-ek kezelése, adatstruktúrák szinkronizáltsága – ArrayList vs Vector.
  • Általános kódminőségi problémák: erőforrások felszabadítása, final használata, objektum eltérítés, finalize() használata, equals() és hashCode() implementációja, immutable string, szenzitív adat szerializációja, Java kód lefagyasztása mágikus double konstanssal.
  • Mobil kód (applet-ek): private tömbök kezelése, kritikus publikus adattag, probléma a belső osztályokkal.
  • Tanácsok és elvek: fejlesztőknek és üzemeltetőknek, Saltzer és Schröder 8 elve, Matt Bishop robusztus programozási elvei, referenciák, további források, sérülékenység adatbázisok, összefoglaló.

Belépési feltételek:

Programozási ismeretek és legalább kétéves gyakorlat Java nyelven és környezetben és alapszintű webes alkalmazásfejlesztési gyakorlat. Alapvető kriptográfiai fogalmak és módszerek alapfokú gyakorlati ismerete ajánlott. Mivel a tananyag angol nyelvű, ezért alapfokú, dokumentumolvasás szintű angol nyelvtudás szükséges. Az előadás magyar nyelven zajlik.

Igazolás: Tanúsítvány

További információk

Indulás

2019.11.07., 2020.01.08., 2020.04.16.