Biztonságos szoftverek fejlesztése, a by design elv a gyakorlatban. Hétpecsét LXXXIV. Szakmai Fórum január 16. Hornák Zoltán

Hasonló dokumentumok
FP7/ICT részvétel KKV-s szempontból

Assembly programozás: 2. gyakorlat

Programtervezés. Dr. Iványi Péter

A Wireshark program használata Capture Analyze Capture Analyze Capture Options Interface

extreme Programming programozástechnika

Csatlakozás az IBM i rendszerhez IBM i Access for Windows: Telepítés és beállítás

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

OEP Betegéletút lekérdezés háziorvosok és vénytörténet lekérdezés patikák számára. API dokumentáció. verzió: 2.01

Informatikai Tesztek Katalógus

Sokan nehezen tudják elképzelni, hogy hogyan és hol tudják az jeiket megkapni.

JavaScript Web AppBuilder használata

Miért jó nekünk kutatóknak a felhő? Kacsuk Péter MTA SZTAKI

Tudásszint mérés feladatlap

A JAVA FUTTATÁSAKOR ELŐFORDULÓ HIBA-

1. hét. Neptun kód. Összesen. Név

EGYEDI NYILVÁNTARTÓ LAP (immateriális javak, beruházások, tárgyi eszközök)

Jelszavak helyes megválasztása, szótáras törés. Pánczél Zoltán

TANÚSÍTVÁNY. tanúsítja, hogy a Utimaco Safeware AG által kifejlesztett és forgalmazott

MVC. Model View Controller

Fejlesztés, működtetés, felügyelet Hatékony infrastruktúra IBM szoftverekkel

1. Bevezető. 2. Sérülékenységek

Végpont védelem könnyen és praktikusan

Cisco NetSpace - hatékony elektronikus tanulási környezet az informatikus képzésben

Raiffeisen Electra Terminál. Felhasználói kézikönyv

Trendek a nyílt forráskódú térinformatikai fejlesztésekben

KELER KID Internetwork System (KIS)

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

A DevOps-kultúra eszközei

AIX 6.1. IBM Systems Director Console for AIX

8. osztály. Felhasznált tankönyv: Pedellus Tankönyvkiadó, Debrecen, 2009; 2009

BaBér bérügyviteli rendszer telepítési segédlete év

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Hálózati architektúrák és Protokollok GI Kocsis Gergely

IBM Tivoli Endpoint Manager

Matematikai alapok. Dr. Iványi Péter

IT TERMÉKEK TANÚSÍTÁSA

Pánczél Zoltán / Lyukvadászok szabálykönyve

Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

Java és web programozás

Az IT biztonság üzleti vetülete, avagy kiberbiztonság Mádi-Nátor Anett, vezérigazgató h., stratégiai üzletfejlesztés Cyber Services Zrt.

TANÚSÍTVÁNY. tanúsítja, hogy az Axelero Rt. által kifejlesztett és forgalmazott. Marketline integrált aláíró alkalmazás 1.

Hiba bejelentés azonnal a helyszínről elvégezhető. Egységes bejelentési forma jön létre Követhető, dokumentált folyamat. Regisztráció.

Számítógép kártevők. Számítógép vírusok (szűkebb értelemben) Nem rezidens vírusok. Informatika alapjai-13 Számítógép kártevők 1/6

alkalmazásfejlesztő környezete

BaBér. Bérügyviteli rendszer. Telepítési segédlet 2014.

Biztonság java web alkalmazásokban

4. Fejezet : Az egész számok (integer) ábrázolása

MSP4 A lega tfogo bb ipari mobil eszko zmenedzsment megolda s

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22

IP Thermo. IP Thermo 25,2 C 27,01 C 51,5 % Netről vezérelhető intelligens klíma-felügyeleti rendszer

Bevezető. Servlet alapgondolatok

Bevezetés. Dr. Iványi Péter

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Hálózatbiztonság Androidon. Tamas Balogh Tech AutSoft

SAP Business One. Áttekintés, gyakorlati ismertetı. Mosaic Business System Kft.; Support:

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Fejlesztési tapasztalatok multifunkciós tananyagok előállításával kapcsolatban Nagy Sándor

Elektronikusan hitelesített PDF dokumentumok ellenőrzése

JSF alkalmazások teljesítményhangolása JMeter és dynatrace segítségével

S, mint secure. Nagy Attila Gábor Wildom Kft.

Bevezetés Működési elv AJAX keretrendszerek AJAX

Adatbázis kezelő szoftverek biztonsága. Vasi Sándor G-3S

TANÚSÍTVÁNY. tanúsítja, hogy a E-Group Magyarország Rt. által kifejlesztett és forgalmazott. Signed Document expert (SDX) Professional 1.

Gyors Kezelési Útmutató

Eduroam változások - fejlesztések, fejlődések. Mohácsi János NIIF Intézet HBONE Workshop 2015

II. ADATLAP - Programmodul részletes bemutatása

HTML é s wéblapféjlészté s

A B rész az Informatikai szakmai angol nyelv modul témaköreit tartalmazza.

Internetes böngésző fejlesztése a mobil OO világban

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

GUSE BEMUTATÓ. Az MTA CLOUD felhasználói számára készült guse bemutató v2.0. MTA Cloud csapat

Verzió: PROCONTROL ELECTRONICS LTD

INFORMATIKAI ALAPISMERETEK

Szúnyogháló bepattintása A szúnyogháló felengedése (A) (R) Tanács Portalanítás Tisztítás

TestLine - GINOP teszt Minta feladatsor

Bevezetés A harmadik szoftverkrízis korát éljük! Szoftverkrízisek: 1. nincs elég olcsó: hardver, szoftver, programozó 2. nincs elég olcsó: szoftver, p

Exact Synergy Enterprise Időtervezés & Számlázás

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Nyilvántartási Rendszer

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

ÉRETTSÉGI TÉTELCÍMEK 2018 Informatika

Az IBM WebSphere Multichannel Bank Transformation Toolkit V7.1 felgyorsítja a többcsatornás alkalmazásfejlesztést

Tarantella Secure Global Desktop Enterprise Edition

Szoftver alapfogalmak

Java Challenge második forduló játékszabályai v1.2

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

Webapp (in)security. Gyakori hibákról és azok kivédéséről fejlesztőknek és üzemeltetőknek egyaránt. Veres-Szentkirályi András

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Pénzügyi algoritmusok

A könyv tartalomjegyzéke

Az Egálnet Honlapvarázsló használati útmutatója

APP!MOBILE 2014 TÉVUTAK ÉS TÉVHITEK, AVAGY A MOBILITÁS NAGYVÁLLALATI KÖRNYEZETBEN

5.4.2 Laborgyakorlat: A Windows XP telepítése

OZW V7.0 firmware frissítés, Remote Tool Access részletes ismertető

TANÚSÍTVÁNY (E-MS03T_TAN.SW) MELLÉKLETE

Angolul: Extreme Programming, röviden: XP Agilis módszertan. Más módszertanok bevált technikáinak extrém módú (nagyon jó) használata

FOKA elérés beállításának leírása

Átírás:

Biztonságos szoftverek fejlesztése, a by design elv a gyakorlatban Hétpecsét LXXXIV. Szakmai Fórum 2019. január 16. Hornák Zoltán

20+ MILLIÓ PROGRAMOZÓ EBBEN A PILLANATBAN IS KEMÉNYEN DOLGOZIK: SÉRÜLÉKENY PROGRAMOT FEJLESZT EZ AKKORA MENNYISÉG AMIRE NINCS ELEGENDŐ SZAKEMBER, HOGY KEZELJE

A TREND VILÁGOS ÉS EGYÉRTELMŰ A KIBERBIZTONSÁG ROMLIK NAPRÓL NAPRA TÖBB PROBLÉMA SZÜLETIK, MINT MEGOLDÓDIK FOLYAMATOSAN SÚLYOSBODIK A HELYZET

Biztonságos programok fejlesztése Ez lenne a megoldás?

Microsoft Security Development Lifecycle (SDL)

SZAKEMBERHIÁNY

APRÓ PROGRAMHIBÁK OKOZZÁK A LEGTÖBB KIHASZNÁLHATÓ SÉRÜLÉKENYSÉGET OLYAN IMPLEMENTÁCIÓS HIBÁK AMELYEKET EL LEHETETT VOLNA KERÜLNI BIZTONSÁGOS PROGRAMOZÁSI GYAKORLATTAL

Mennyire apró programhibák? És mekkora problémát okoznak?

Ki tudja mi ez a szám? 3.14159265358979323846

Ki tudja mi ez a szám? e 2.71828182845904523536

Ki tudja mi ez a szám? 2.2250738585072012e-308 2-1022 A legveszélyesebb lebegőpontos szám

2.2250738585072012e-308 avagy The Double Bug Ez a hiba több mint egy évtizedig lappangott! A parsedouble() metódus egy szöveg alakú számot konvertál double méretű lebegőpontos számmá A probléma forrása, hogy a konverziós algoritmus közelítő lépésekkel keresi meg a decimális értékhez legközelebb álló bináris számot Kettes számrendszerben a 2.2250738585072012e-308 kisebb mint de nagyobb mint 0x1.0000000000000p-1022 0x0.fffffffffffffp-1022 Ennek eredményeként a közelítő algoritmus oszcillálni kezd és végtelen ciklusba kerül

2.2250738585072012e-308 konverziós lépései 10110 22 11011110 222 100010110001 2225 101011011101010 22250 110110010100101011 222507 1000011111001110110001 2225073 1010100111000010011110010 22250738 1101010000110011000101111001 222507385 10000100100111111110111011000010 2225073858 10100101110001111110101001110011001 22250738585 11001111001110011110010100001111111010 222507385850 100000011000010000101111001010011111001011 2225073858507 101000011110010100111010111101000110111110000 22250738585072 110010100101111010001001101100011000101101100000 222507385850720 111111001111011000101100000111011110111000111000001 2225073858507201 0 10000110001 1111100111101100010110000011101111011100011100000100 2.225073858507201 E 15 0 10000101000 0000001100001000010111100101001111100101100110011100 2.225073858507201 E 12 0 01101010011 0101010011111101110101111111011100111011111100111011 2.225073858507201 E-52 0 00000000000 1111111111111111111111111111111111111111111111111111 2.225073858507201 E-308 0 00000000001 0000000000000000000000000000000000000000000000000000 2.2250738585072014 E-308 0 00000000000 1111111111111111111111111111111111111111111111111111 2.225073858507201 E-308 0 00000000001 0000000000000000000000000000000000000000000000000000 2.2250738585072014 E-308

A Double Bug kihasználása Egyetlen HTML lekérdéssel a Double Bug hatására elszállt minden web szerver, ami Tomcat alatt futott A HTML fejlécben van egy Accept-language mező Amelynek megadható egy q paraméter, amit lebegőpontos számként értelmez a szerver Ennek eredményeként az alábbi kérés elküldésének hatására minden Tomcat szerver leállt: GET / HTTP/1.1 Host: myhost Connection: keep-alive Accept-Language: en-us;q=2.2250738585072012e-308

2.2250738585072012e-308

WannaCry és a hiba, amit mögötte volt Mindenki hallott a WannaCry-ról Világszintű hatásról, a károkozás mértékéről De a háttérben lévő konkrét Windows biztonsági hibáról kevesebben Egyetlen betű hiba volt végső soron a felelős Ki tudja melyik betű volt az?

int stdcall SrvOs2FeaListSizeToNt(_DWORD *a1) { _WORD *v1; v1 = a1; unsigned int v3; //... *v1 = (_WORD)(v3 - v1); //... }

Leghatékonyabb módja a biztonság fokozásának az OKTATÁS Minden fejlesztőt úgy kellene képeznünk hogy Motivált Biztonságos Programozó legyen

Biztonságos Programozás Oktatása Kötelező oktatás nem mindig éri el a célját Az eredményes képzés kulcsa a motiváció Szervezeti szintű oktatási program Figyelemfelkeltő kampány programozóknak Helyszíni tantermi oktatás Gyakorlati példákkal Real-Life Hacking Fun Vizsgák CTF: Capture-the-Flag csapatépítő játékok INSECAR: sérülékeny web és mobil alkalmazás TTT: Train-the-Trainer programok

Gyakorlati lebonyolítás Ideálisan minden programozónak célszerű lenne részt venni 3-5 nap gyakorlati képzésen A biztonságos programozás nem jelent többletmunkát, jelentős kód növekedést A kulcs a programozási szokások megváltoztatása A gyakorlati bevezetés legtöbbször lépésről lépésre valósul meg: Cybersecurity szakemberek képzése Security champions Összes programozó

Security by design A határvédelem, a falak, a várak építése jó ötlet volt a középkorban Bárhol lehet kihasználható biztonsági lyuk ahova külső input eljut vagyis a gyakorlatban bárhol Biztonsági funkcionalitás követelmény listák Kódminőség a biztonságos programozás kulcsa

Ellenőrzés, értékelés és tanúsítás

Motivated Secure Coders Thank you! Zoltán Hornák Zoltan.Hornak@scademy.com www.scademy.com Join the Secure Coding Academy group on LinkedIn and stay informed about our courses! Essential security for all software engineers.