IT bezpečnosť: Ktorý programovací jazyk je najbezpečnejší?

  • 18.11.2017
  • 8 min. čítanie

V otázkach IT bezpečnosti môžeme uplatniť princíp najslabšieho článku. Práve ten rozhoduje o tom, aká je celková úroveň zabezpečenia vašej webstránky či aplikácie. Aj na prvý pohľad banálne problémy môžu v konečnom dôsledku spôsobiť fatálne následky. Preto začíname so seriálom o IT bezpečnosti, v ktorom budeme rozoberať slabiny každej podstatnej časti vašich online projektov.

Najpoužívanejšie programovacie jazyky

A začneme pekne od piky – programovacím jazykom. Ten je totižto esenciálnou súčasťou vzniku každého počítačového programu či webstránky. Pre začiatok vám prinášame rebríček najčastejšie používaných programovacích jazykov vo svete. Ten zostavil GitHub vo svojom každoročnom reporte s názvom Octoverse:

 


Rebríček najčastejšie používaných programovacích jazykov v roku 2017 podľa počtu požiadaviek v príspevkoch na GitHube.

 

Poradie používania jednotlivých jazykov sa pri rôznych zdrojoch líši, no práve rebríček z GitHubu považujeme v tomto prípade za smerodajný. Reálne totiž odzrkadľuje to, ktoré programovacie jazyky ľudia najčastejšie používajú a nie to, ktoré sú pre nich obľúbené. GitHub aktuálne používa viac ako 24 miliónov programátorov z viac ako 200 krajín sveta.

Zoznam najpoužívanejších programovacích jazykov ponúka aj spoločnosť UpGuard. Tá vyhodnotila prvé tri najčastejšie používané jazyky:

  • .NET (28,1 %)
  • Java (24,9 %)
  • ASP (15,9 %)

Na ďalších pozíciách sa bez bližšej špecifikácie vyskytujú jazyky ColdFusion, Perl a PHP.

Bezpečnosť a programovacie jazyky – všetko je trochu inak

Ak sa na programovacie jazyky pozrieme z hľadiska bezpečnosti, zistíme, že situácia je trochu iná. Vôbec neplatí, že najviac používaný programovací jazyk je aj najbezpečnejší. Má to logické opodstatnenie. Práve programovacie jazyky, ktoré sa najčastejšie používajú, sú pre zlých „black-hat“ hackerov potenciálne najatraktívnejšie. Bezpečnosť daných programovacích jazykov tiež závisí od ich tvorcov, ktorí sa o rozvoj daných jazykov a ich neustále vylepšovanie môžu, no nemusia zaujímať.

Náhľad na bezpečnosť samotných programovacích jazykov prináša detailný report spoločnosti Veracode, ktorá analyzovala 300 000 rôznych použití kódov v programoch a webstránkach vytvorených od polovice roku 2015 po koniec roku 2016.

Analýza bezpečnosti programovacích jazykov (zdroj Veracode).

 

Pri porovnaní prvých 5 najobľúbenejších programovacích jazykov a ich bezpečnosti zistíme zaujímavé skutočnosti. Za najbezpečnejší z TOP 5 programovacích jazykov môžeme považovať Ruby (ak neberieme do úvahy Python, ktorý v štatistikách Veracode chýba). Naopak, za najviac zraniteľný môžeme považovať jazyk PHP, ktorý obsahuje v priemere až 60,6 bugov v 1 MB kódu.

Na bezpečnosť programovacích jazykov má iný názor UpGuard – jeho rebríček ponúka trochu iné poradie. Pre objektívnosť informácií vám ho prinášame nižšie, aby ste si mohli porovnať rozdielne dáta vychádzajúce zo štatistík dvoch odlišných spoločností.

  • NET (31 %)
  • Java (28 %)
  • ASP (15 %)
  • PHP (2 %)

Java ako samostatná kategória z pohľadu bezpečnosti

Tretí najviac používaný programovací jazyk z reportu Veracode – Java si zaslúži osobitú pozornosť. Podľa štatistík Veracode z roku 2017 totižto patria Java aplikácie medzi tie, ktoré obsahujú najčastejšie nejakú chybu alebo bezpečnostný nedostatok. Až 87,6 % Java aplikácií obsahuje minimálne 1 bezpečnostnú zraniteľnosť spôsobenú chybou komponentu.

Bezpečnosť Java jazyka z pohľadu zraniteľností.

 

Report poukázal, že hlavným dôvodom prítomnosti toľkých bezpečnostných nedostatkov v Java aplikáciách je nezáujem firiem o aktualizáciu jednotlivých komponentov. Len 28 % spoločností sa zaujíma o to, z akých komponentov sa skladajú ich Java aplikácie. Len určité percento z týchto firiem následne dané komponenty aj aktualizuje.

OWASP testovanie IT bezpečnosti

Jedným z typov testovania bezpečnosti online aplikácií a webstránok je testovanie podľa metód OWASP organizácie. Tá zastrešuje rôzne metodológie testovania IT bezpečnosti, pričom jedným z nich je aj tzv. pass rate test. Ten určuje, či by aplikácia alebo online systém prešli bez dodatočnej nutnosti úprav tvrdými bezpečnostnými podmienkami OWASP organizácie.

V priemere týmto testom prejde len 34,1 % testovaných aplikácií, pričom jedným z hlavných kritérií ich neúspechu je práve zlá kvalita kódu. Pozrite si výsledky pass rate testov OWASP podľa jednotlivých odvetví:

Výsledky pass rate testov OWASP podľa jednotlivých odvetví.

 

Nedostatočnou kvalitou kódu tak v priereze všetkými priemyselnými odvetviami trpí v priemere až 34 % všetkých testovaných aplikácií.

Situácia s bezpečnosťou kódu u nás je možno iná

Na situáciu ohľadom bezpečnosti programovacích jazykov na Slovensku a v Čechách sme sa opýtali bezpečnostných testerov zo spoločnosti Nethemba. Tí potvrdili, že najviac bezpečnostných nedostatkov objavujú v PHP aplikáciách.

Čo sa týka bezpečnosti celých priemyselných odvetví, na Slovensku a v Českej republike považujú za najbezpečnejšie aplikácie v bankovom a finančnom sektore. Všetky ostatné odvetvia za nimi zaostávajú. (Na tému bezpečnosti kódovania a programovacích jazykov v Česku a na Slovensku sa plánujeme pozrieť bližšie v samostatnom článku.)

Myslite na bezpečnosť už pri výbere programovacieho jazyka

Jedným zo zásadných problémov týkajúcich sa bezpečnosti vašej aplikácie, online služby či webstránky je práve zle napísaný kód, ktorý v drvivej väčšine prípadov obsahuje nejakú bezpečnostnú chybu. Dôvodov je viacero, no jedným z najzásadnejších problémov je to, že programátori píšu kód tak, aby v prvom rade fungoval, bezpečnosti kódu sa venujú len minoritne.

Často tiež v programátorskom tíme chýba IT security špecialista. Výsledkom je, že pri výbere vhodného jazyka na programovanie sa developerské tímy nezamýšľajú až tak nad úrovňou jeho bezpečnosti ani nad známymi bezpečnostnými zraniteľnosťami, ktoré sú pre daný jazyk typické.

Edukujte preto svojich zamestnancov, menovite najmä programátorov, aby sa zaujímali o bezpečnosť jednotlivých komponentov, ktoré používajú a aby sa zamerali na vždy aktuálne verzie programov a komponentov, ktoré používajú. Nechajte svoj web alebo aplikáciu otestovať ešte predtým, než ju zverejníte a zamerajte sa na odstránenie jej bezpečnostných nedostatkov.

Odhalenie chýb v zabezpečení, ktoré dokážete odstrániť ešte pred zverejnením vašej služby alebo produktu, vás vyjde finančne omnoho menej ako náprava škôd po tom, čo vás napadnú zlí „black-hat“ hackeri. V priemere náprava škôd po kybernetickom útoku vyjde spoločnosť v Európe na 86 000 EUR, zatiaľ čo pomocou bug bounty programov dokážete svoj systém otestovať za zlomok tejto sumy. Nehovoriac o tom, koľko vás môže stáť únik citlivých dát po máji 2018, kedy vstúpi do platnosti nová legislatíva na ochranu osobných údajov známa pod skratkou GDPR.

Newsletter

Novinky o IT bezpečnosti pre firmy

Chcete vašu firmu udržať bezpečnou? Prihláste sa k odberu nášho newslettera a dostávajte tipy a novinky zo sveta online bezpečnosti.

Chcem novinky