Co je to chyba zabezpečení?
Chyba zabezpečení v počítačovém softwaru je vadou v jeho naprogramované operaci, která může uživateli umožnit nezamýšlený přístup k funkcím, zdrojům nebo datům, které by jinak byly programem chráněny. Příčinou chyby zabezpečení mohou být chyby v programování, nesprávné pochopení externích knihoven nebo přehlédnutí při přechodu z testovací verze programu na verzi vydání. Může být obtížné diagnostikovat a opravit chybu zabezpečení, protože má potenciál být kombinací několika aspektů programu, z nichž některé by mohly být předkompilovány bez původního zdrojového kódu, který by programátoři mohli prozkoumat.
Jednou z primárních příčin chyby zabezpečení může být interakce mezi dvěma různými částmi počítačového kódu, která by možná nebyla napsána stejnou osobou. Problémy mohou nastat, když funkce nebo třída provádí akce, které jsou neznámé nebo neočekávané, jako je například změna proměnné, která drží určitou část stavu programu, nebo změna interních vlastností bez oznámení přidružených prvků. To může vést další části programu k tomu, aby fungovaly na základě předpokladů nebo aby se úplně obešly a vytvořily tak bezpečnostní díru, která by mohla být využita. Externí knihovny vyvinuté komerčními softwarovými společnostmi mohou někdy způsobit bezpečnostní problém, zejména v případech, jako jsou grafická uživatelská rozhraní (GUI) a obaly síťových protokolů, které obsahují velké množství skrytého kódu pro zpracování.
Mezi další důvody, proč by mohla existovat chyba zabezpečení, patří jednoduché chyby programování a problémy s přidělením paměti, které mohou přepsat segmenty kódu nebo rozlit informace z paměti do oblastí, kde je lze využít. Nevyvinuté funkce v programu mohou také způsobit chybu zabezpečení povolením stavu v programu, který by mohl předat provedení nedokončené části kódu bez řádných bezpečnostních kontrol vstupu a výstupu. Čím větší a složitější je program, tím vyšší je pravděpodobnost, že v kódu existuje chyba zabezpečení.
Existuje několik způsobů, jak se pokusit zabránit tomu, aby se chyba zabezpečení dostala do finální verze softwaru. Jedním z nejdůležitějších je uživatelské testování, při kterém se mnoho lidí pokouší program použít, aby zjistilo, zda funguje správně. Použití softwarových profilerů - programů, které zkoumají a zaznamenávají využití paměti a další statistiky, když je software spuštěný - může pomoci zachytit některé interní chyby, které by mohly vést k bezpečnostnímu problému. Jak jsou chyby chyceny a opravovány, většina společností vydává aktualizace nebo opravy, které eliminují objevené chyby v softwaru již distribuovaném.