OWASP metodikos Slovakijos technikos universitete
·
Turėjome garbės skaityti paskaitą Slovakijos technikos universiteto Bratislavoje (STU) Elektrotechnikos ir informacinių technologijų fakulteto (FEI) studentams. Užsiėmimą surengė profesorė Katarína Žáková, o tema svarbi kiekvienam programuotojui ir saugumo specialistui: PHP web aplikacijų pažeidžiamumai ir OWASP metodikos.
Praktinis požiūris į web aplikacijų saugumą
Saugumo geriausiai išmokstama praktikoje. Užuot kalbėjus apie teoriją, iškart imtasi realių atakų ir gynybos. Užsiėmime aptarti trys dalykai.
1. Dažniausi web aplikacijų pažeidžiamumai ir OWASP metodikos
Pradėjome nuo saugumo rizikų, kurios PHP aplikacijose pasitaiko dažniausiai. Nuo SQL injekcijos iki „Cross-Site Scripting“ (XSS) – kaip šie pažeidžiamumai atsiranda, kodėl išsilaiko metų metus ir kaip juos išnaudoja užpuolikai. OWASP Top 10 čia pravertė kaip bendras žodynas: kiekvienas radinys gauna kategoriją, o kategorija – patikrinimą, kurį galima pakartoti ir kitąmet.
2. Saugus ir pažeidžiamas PHP kodas
Vien teorijos neužtenka, todėl rodėme kodo pavyzdžius. Išnagrinėjome pažeidžiamą PHP kodą, aptarėme, dėl ko būtent jis pavojingas, ir tada peržiūrėjome saugią versiją, kurioje tos rizikos nebelieka.
3. Tiesioginė atakos demonstracija
Ryškiausia užsiėmimo dalis – tiesioginė SQL injekcijos atakos demonstracija. Kai ataka vyksta prieš akis, tampa aišku, kaip nedidelė kodo klaida virsta rimtu saugumo pažeidimu.
Svarbiausios išvados
Saugumas prasideda kodo lygmeniu
Saugios aplikacijos kūrimas – tai ne vien gerosios praktikos laikymasis. Reikia suprasti, kaip mąsto užpuolikas. Kai rizika pastebima ir pašalinama dar kūrimo metu, pažeidžiamumas naudotojo taip ir nepasiekia.
Gynyba tokia pat svarbi kaip ir ataka
Atakos metodai padeda suprasti klaidų esmę, tačiau tikslas – atsparios aplikacijos. Saugumas priklauso kūrimo ciklui, o ne paskutinei pastabai prieš perdavimą.
Metodikas, kurias rodėme studentams, naudojame ir kasdieniame darbe: apžvalga pateikta puslapyje įsilaužimų testavimas pagal OWASP metodiką, o apie tai, kur baigiasi automatika ir prasideda rankinis darbas, rašėme straipsnyje pažeidžiamumų skenavimas ar įsilaužimų testavimas.
Kibernetinis saugumas nuolat keičiasi, o švietimas – būdas išlikti per žingsnį priekyje. Kurkime ateitį, kurioje saugumas kiekvienam programuotojui – savaime suprantama darbo dalis.