Részvételi forma

Képzés hossza

3 nap (3×8 tanóra)
naponta 9:00 - 17:00

Időpontok

Képzés ára

656 000 Ft
+ ÁFA/fő
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ő

Napjainkban a .NET és ASP.NET környezetet tekinthetjük az egyik legáltalánosabb programfejlesztési eszköznek, hiszen számos programozási nyelv áll a rendelkezésünkre, amellyel e platformra fejleszthetünk. A fejlesztési környezet teljeskörűen támogatja a biztonságos programfejlesztést, de a szoftvertervezőknek és fejlesztőknek ennek ellenére is tisztában kell lenniük az egyes architekturális és kódolási szintű problémákkal, hogy elkerüljék az esetleges sérülékenységeket.

A képzés célja egyrészt megmutatni, hogy hogyan kell a különböző .NET komponenseket helyesen konfigurálni és használni annak érdekében, hogy meggátoljuk bármely kód privilegizált üzemmódban való futását, hogyan kell az erőforrásokat védeni megfelelő authentikáció és authorizáció révén, hogyan kell biztonságos távoli eljáráshívást implementálni, sessiont kezelni, és így tovább.

Másrészt a különböző .NET alapú sérülékenységekkel foglalkozunk. Ezek bemutatása az általános webalkalmazások problémáin felül kitér a .NET-specifikus bemenet ellenőrzési hibákra, a helyes biztonsági módszerek használatára, hiba- és kivételkezelésre, illetve az időzítéses és állapotkezelési hibákra.

A képzés programozóknak, fejlesztőknek, szoftvertervezőknek, biztonsági szakembereknek ajánljuk, akik szeretnék megismerni a minél biztonságosabb programok, alkalmazások készítésének professzionális technikáit .NET/ASP.NET környezetben. A képzés egyedi formában is elérhető más fejlesztői környezettel, technológiával összevonva.

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.
  • Gyakori kódolási hibák és sebezhetőségek: Input-érvényesítés (fogalmak), Egészszámos probléma: a negatív egész számok ábrázolása, egész számok túlcsordulása, IntOverflow gyakorlat, mekkora a Math.Abs(int.MinValue) értéke?, legjobb gyaykorlatok. Path traversal sebezhetőség: 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 helytelen használata és tipikus problémák, jelszókezelés (Jelszókezelés és -tárolás, különleges célú hash-algoritmusok jelszavak tárolására, Argon2 és PBKDF2 implementációk .NET-ben, bcrypt és scrypt implementációk .NET-ben, tipikus hibák a jelszókezelésben.
  • NET biztonsági architektúra és szolgáltatások: Code Access Security: teljes és részleges bizalom, evidence classes, engedélyek, kódhozzáférési engedélyosztályok, jogosultságok származtatása bizonyítékokból, egyéni engedélyek definiálása, .NET runtime engedélyek ellenőrzése, Stack Walk, az Assert() hatásai, osztály- és metódusszintű deklaratív engedélyezés, imperatív (programozási) jogosultság-ellenőrzés. Átláthatósági attribútumok használata, részben megbízható hívók engedélyezése.
  • Gyakorlati kriptográfia: a kriptográfia megvalósításának első szabálya, kriptoszisztémák: kiptorendszer elemei, .NET kriptográfiai architektúra. Szimmetrikus kulcsú kriptográfia: bizalmasság biztosítása, szimmetrikus titkosítási algoritmusok, működési módok, Encrypting and decrypting (symmetric). Egyéb kriptográfiai algoritmusok: Hash vagy message digest, Hash algoritmusok, SHAttered, Hashing, Message Authentication Code (MAC), integritás és hitelesség biztosítása szimmetrikus kulccsal, véletlenszám-generálás. 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, asszimmetrikus algoritmusok a .NET-ben, 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. Accessibility modifiers: Privát mezők elérése tükrözéssel a .NET-ben, Reflection.
  • Webalmazások biztonsága: Injection: alapelvek, SQL injection (tipikus SQL injection támadási módszerek, Blind és time-based SQL injection, SQL injection védelmi módszerek, az adattárolási keretrendszerek hatása az SQL injection-ra). Broken authentication: Munkamenet kezelési veszélyek és munkamenet rögzítés, a munkamenetkezelés legjobb gyakorlatai, Cookie-attribútumok beállítása, Oldalközi kérés meghamisítása - CSRF (CSRF megelőzés). XML külső entitás (XXE): XML entitás bevezetése, XML külső entitással kapcsolatos támadás (XXE) (erőforrás bevonása, URL meghívás, paraméter entitás, megelőzés). Broken access control: Tipikus hozzáférés-szabályozási gyengeségek, bizonytalan közvetlen objektumhivatkozás (IDOR), védelem az IDOR ellen. Cross-Site Scripting (XSS): állandó, visszavert, DOM-alapú. XSS megelőzés, kimeneti kódolási API C# nyelven, XSS-védelem ASP.NET-ben – validateRequest. Insecure deserialization: a Serialization és a deserialization alapjai, biztonsági kihívások, Deserialization a .NET-ben, a deserialization-tól a kódvégrehajtásig, POP payload targeting MulticastDelegate (C#), valós .NET deserialization sebezhetőségek, a deserialization-al kapcsolatos problémák – JSON, legjobb gyakrolatok a deserialization sebezhetőségek ellen.
  • Ügyféloldali biztonság: JavaScript biztonság, azonos eredetpolitika, egyszerű kérések, Preflight kérések, Clickjacking (Clickjacking elleni védelem, keretfeltörés elleni védelem - védelmi szkriptek elutasítása, védelem a frame-busting ellen). AJAX biztonság: XSS az AJAX-ban, szkript injection támadás AJAX-ban, XSS elleni védelem AJAX-ban, CSRF védelem AJAX-ban - JavaScript eltérítés). HTML5 biztonság: Új XSS lehetőségek a HTML5-ben, HTML5 clickjacking támadás - szöveges mező injection, HTML5 clickjacking – tartalomkivonás, formanyomtatványok manipulálása, Cross-origin kérések, HTML proxy cross-origin kérésekkel.
  • 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 catch, Multi-catch használata, Catching NullPointerException.
  • Időzítéses és állapotkezelési hibák: párhuzamosság és threading, párhuzamosság a .NET-ben. Holtpontok, a holtpontok elkerülése, zárolási utasítá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, serialization, Privát tömbök - nyilvános metódusból visszaadott tipizált mező, Class not sealed – object hijacking, Immutable karakterlánc, SecureString használata.

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

C# programozási ismeretek és legalább kétéves gyakorlat .NET / ASP.NET programozásban. 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.