CL-JWA

Új Java és webes alkalmazások biztonsága

Részvételi forma
Képzési Forma
Képzés hossza
  • 3 nap (3×8 tanóra)
  • naponta 9:00 - 17:00
Elérhető képzési nyelvek
  • Magyar
Időpontok
Szeretne a témában testre szabott megoldást, csoportos képzést?
Egyedi képzési szolgáltatásainkról részletesen itt olvashat.

Ismertető

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.

Jelentkezzen a Java biztonságos programozás tanfolyamunkra, és ismerje 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.

Tematika

  • Az IT biztonságtól a biztonságos programozásig: A biztonság természete, Mi a kockázat? IT-biztonság vs. biztonságos kódolás, a sebezhetőségektől a botnetekig és a kiberbűnözésig, a biztonsági hibák természete, a fertőzött számítógéptől a célzott támadásokig, The Seven Pernicious Kingdoms OWASP Top Ten.
  • Webalkalmazások biztonsága: injection, SQL injection a gyakorlatban, tipikus SQL injection támadási módszerek, blind és időalapú SQL injection, SQL injection védelmi módszerek, az adattárolási keretrendszerek hatása az SQL injection-ra, egyéb injection hibák: parancs injection.
  • Hibás autentikáció: munkamenetkezelési kockázatok, munkamenetkezelés Java-ban, munkamenetkezelési gyakorlatok, Cookie-attribútumok beállítása, Cross site request forgery (CSRF): CSRF megelőzés és megelőzés Java keretrendszerekben.
  • XML külső entitás (XXE): bevezetés, XML külső entitás támadás: (XEE) – erőforrás bevonása, URL meghívás, paraméter entitások, gyakorlat – XXE támadás, Az entitásokkal kapcsolatos támadások megelőzés.
  • Hibás hozzáférés-szabályozás: tipikus gyengeségek, Insecure direct object reference (IDOR), gyakorlat, IDOR elleni védelem. Cross-Site Scripting (XSS): állandó XSS, reflektált XSS, DOM-alapú XSS, XSS megelőzés, XSS-megelőző eszközök Java-ban és JSP-ben, gyakorlat.
  • Nem biztonságos deserializáció: a szerializálás és a deszerializálás alapjai, a deserializáció biztonsági kihívásai, deserializáció Java-ban, szolgáltatásmegtagadás a Java deserializálással, deserializálástól a kódvégrehajtásig, az InvokerTransformer (Java) ellen irányuló POP hasznos terhelés, valós Java deserializációs sebezhetőségek, a deserializálással kapcsolatos problémák – JSON, legjobb gyakorlatok a deserializációs sebezhetőség ellen.
  • Ügyféloldali biztonság: JavaScript biztonság, Same Origin Policy, egyszerű kérések, preflight kérések, ügyféloldali hitelesítés és jelszókezelés – gyakorlat, JavaScript kód védelme. Clickjacking: gyakorlat, Clickjacking elleni védelem, keretfeltörés elleni védelem - védelmi szkriptek elutasítása, védelem a frame-busting elleni busting ellen. AJAX biztonság: XSS az AJAX-ban, Script injection támadás AJAX-ban, XSS elleni védelem AJAX-ban, CSRF-védelem AJAX-ban, gyakorlat - JavaScript eltérítés és XSS az AJAX-ban. HTML5 biztonság: új XSS lehetőségek a HTML5-ben, HTML5 clickjacking támadás - szöveges mező injektálása és tartalomkivonás, formanyomtatványok manipulálása, Cross-origin kérelmek, HTML proxy cross-origin kéréssel, gyakorlat - űrlapok manipulálása és ügyféloldali bekapcsolás.
  • Gyakorlati kriptográfia: kriptoszisztémák: kiptorendszer elemei, Java kriptográfiai architektúra / kiterjesztés (JCA/JCE), kriptográfiai szolgáltatók használata. Szimmetrikus kulcsú kriptográfia: bizalmasság biztosítása, szimmetrikus titkosítási algoritmusok, működési módok, privát (szimmetrikus) kulcsú kriptográfia Java-ban. Egyéb kriptográfiai algoritmusok: Hash vagy message digest, Hash algoritmusok, SHAttered, Hashing Java-ban: MessageDigest osztály, MAC és jelszó alapú titkosítás Java-ban: Mac osztály, Message Authentication Code (MAC), integritás és hitelesség biztosítása szimmetrikus kulccsal, véletlenszám-generálás: véletlenszámok és kriptográfia, kriptográfiailag erős PRNG-k, gyenge és erős PRNG-k Java-ban, hardveralapú TRNG-k, RandomTest gyakorlat, Véletlenszámok használata Java-ban - fedezd fel a hibát! Aszimmetrikus (nyilvános kulcsú) kriptográfia: titoktartás biztosítása nyilvános kulcsú titkosítással, Ökölszabály - a magánkulcs birtoklása, az RSA algoritmus: bevezetés, titkosítás RSA-val, szimmetrikus és aszimmetrikus algoritmusok kombinálása, digitális aláírás RSA-val, gyakorlat Sign. Nyilvános kulcsú infrastruktúra (PKI): Man-in-the-Middle (MitM) támadás, digitális tanúsítványok MitM-támadás ellen, tanúsítványhivatalok a nyilvános kulcsú infrastruktúrában, X.509 digitális tanúsítvány, Java kulcstár (JKS), Java tanúsítási útvonal (CertPath).
  • Biztonságos kommunikáció Java-ban: SSL és TLS, használati lehetőségek, a TLS biztonsági szolgáltatásai, SSL/TLS kézfogás.
  • Java biztonsági szolgáltatások: architektúra.
  • Gyakori kódolási hibák és sebezhetőségek: Input-érvényesítés: fogalmak, egész számokkal kapcsolatos problémák: negatív egész számok ábrázolása, egész számok túlcsordulása, IntOverflow gyakorlat, Mi a Math.abs(Integer.MIN_VALUE) értéke?, Egészszámos probléma. Path traversal sebezhetőség: Útvonaltúllépés - gyenge védelem és legjobb gyakorlatok. Érvénytelenített átirányítások és továbbítások, Naplóhamisítás.
  • A biztonsági funkciók nem megfelelő használata: tipikus problémák, jelszókezelés: hashed jelszavak gyengeségei, jelszókezelés és -tárolás, különleges célú hash-algoritmusok jelszavak tárolásához, Argon2 és PBKDF2 implementációk Java nyelven, bcrypt és scrypt implementációk Java-ban, a jelszókezelés tipikus hibái. Hozzáférhetőségi módosítók: privát mezők elérése tükrözéssel Java-ban, Privát mezők elérése reflexióval. Integritásvédelmi gyengeség.
  • Helytelen hiba- és kivételkezelés: Tipikus problémák a hiba- és kivételkezeléssel kapcsolatban, üres catch blokk, túlságosan széles körű eldobás, túlságosan széles catch, Multi-catch használata, visszatérés a finally blokkból, Catching NullPointerException, kivételkezelés, hibakezelés.
  • Kódminőségi problémák: a rossz kódminőségből eredő veszélyek, fel nem szabadított erőforrások, privát tömbök - nyilvános metódusból visszaadott tipizált mező, nyilvános metódus final nélkül - objektum eltérítés, serializáció, Immutable String, változatlanság és biztonság.
  • A biztonság és a biztonságos kódolás alapelvei: Matt Bishop robusztus programozásának alapelvei, Saltzer és Schroeder biztonsági elvei.

Szükséges előképzettség

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.