ANALÝZA SOFTWARE / ZDROJOVÝ KÓD

Code review a statická analýza

Najděte bezpečnostní chyby přímo v kódu, s přesným místem a návrhem opravy. Ruční review kritických částí doplníme statickou analýzou a výsledky ověříme, aby se váš tým nezabýval falešnými nálezy.

Bezpečnostní analýza softwareCode review a statická analýza
Pro koho
Vývojové týmy a CTO před důležitým vydáním, prověrkou dodavatele nebo předáním kódu zákazníkovi.
Co řeší
Chyby v autorizaci, zpracování vstupů, kryptografii a obchodní logice přímo v implementaci.
Jak pomůžeme
Ruční review a SAST na konkrétní revizi, ověřené nálezy s odkazem na kód a doporučenou opravou.
PŘEHLED

Na co se code review zaměřuje

Orientační pohled, nikoli měření: 3 hlavní oblast, 2 běžná součást, 1 kontext nebo podle rozsahu, 0 mimo běžný rozsah.

Na co se code review zaměřuje
OblastÚroveň
Návrh a hranice důvěry součást testu
Autentizace a autorizace hlavní zaměření
Vstupy a zpracování dat hlavní zaměření
Obchodní logika hlavní zaměření
Tajemství a kryptografie hlavní zaměření
Závislosti a sestavení okrajově

Code review ukazuje, jak aplikace skutečně rozhoduje

V kódu je vidět, jak aplikace pracuje s přístupem, daty a chybami. Review najde slabiny, které se z běžící aplikace hledají obtížně, například chybějící kontrolu oprávnění v méně používané funkci, nebezpečnou deserializaci nebo chybné použití kryptografie.

Review provádíme na konkrétní revizi kódu, kterou si předem potvrdíme. Výsledky tak lze přesně vztáhnout k verzi, kterou vydáváte nebo předáváte.

  • Autentizace, správa relací a autorizace na serveru.
  • Zpracování vstupů, databázové dotazy, šablony a systémová volání.
  • Práce s tajemstvími, kryptografií a citlivými daty.
  • Obchodní logika a ošetření chybových stavů.
  • Bezpečnostní nastavení frameworku a sestavení.

Ruční review a SAST se doplňují

Statická analýza rychle projde celý kód a upozorní na podezřelé vzory. Sama ale neposoudí obchodní logiku, kontext ani to, zda je nález skutečně zneužitelný. Proto ji používáme jako podporu ručního review, jak doporučuje i OWASP Secure Code Review Cheat Sheet.

Nálezy klasifikujeme podle katalogu slabin CWE, aby je váš tým mohl snadno vyhledat a sledovat. Kontrolní požadavky lze dohodnout podle OWASP ASVS. Jde o metodický rámec, nikoli o certifikaci kódu.

Kontext

Architektura, kritické toky, role a místa, kde kód rozhoduje o bezpečnosti.

SAST

Automatická analýza celé dohodnuté revize jako vodítko pro ruční práci.

Ruční review

Kritické části kódu, ověření výstupů nástroje a vyřazení falešných nálezů.

Potvrzení

Kde je to možné a dohodnuté, ověříme nález i na běžící aplikaci.

Typické kategorie nálezů

Chybějící autorizace

Operace bez kontroly oprávnění nebo vlastnictví záznamu, často mimo hlavní uživatelský tok.

Injekce

Skládání dotazů, příkazů nebo šablon z nedůvěryhodných vstupů.

Tajemství v kódu

Hesla, klíče nebo tokeny uložené v repozitáři či konfiguraci.

Kryptografie

Zastaralé algoritmy, předvídatelné hodnoty nebo vlastní implementace místo ověřené knihovny.

Chybové stavy

Únik interních informací v chybových hlášeních nebo nebezpečné chování při neočekávaném vstupu.

Výstupy pro vývojáře i vedení

Formu předání, například export do vašeho issue trackeru, a retest oprav dohodneme podle nabídky.

  • Shrnutí rizik a priorit pro vedení.
  • Každý nález s odkazem na soubor, řádek a revizi, s popisem scénáře a dopadem.
  • Klasifikaci podle CWE a zdůvodněnou závažnost v kontextu.
  • Doporučenou opravu, případně ukázku bezpečnějšího řešení.
  • Přehled, které části kódu byly procházeny ručně a které jen automaticky.

Co od vás potřebujeme a kde review končí

Potřebujeme přístup ke konkrétní revizi kódu, popis architektury a postup sestavení. Pomůže kontakt na vývojáře, kteří zodpoví dotazy k návrhu a obchodní logice.

U rozsáhlého kódu se ruční review soustředí na předem dohodnuté kritické části. Co ručně procházeno nebylo, v reportu jasně uvedeme. Review nemůže prokázat, že kód neobsahuje žádné další chyby.

Metodické a produktové zdroje

Časté otázky

Než se pustíme do práce.

Nahradí SAST ruční review?

Ne. Nástroje pomáhají najít podezřelá místa a opakované vzory. Obchodní logiku, kontext a skutečnou zneužitelnost ale spolehlivě neposoudí.

Které jazyky a frameworky pokrýváte?

Upřesníme v zadání podle vašeho technologického prostředí. Pokud by některá část byla mimo naše možnosti, řekneme to předem.

Musí kód opustit naše prostředí?

Ne nutně. Variantu, například práci ve vašem prostředí nebo dočasný přístup jen pro čtení, dohodneme podle vašich požadavků ještě před začátkem.

Jak se code review liší od penetračního testu?

Penetrační test zkoumá běžící aplikaci zvenku. Code review vidí implementaci přímo, takže najde i chyby v kódu, který se při testu těžko spustí. Obě metody se doplňují.

NEZÁVAZNÝ PRVNÍ ROZHOVOR

Nevíte, kde začít? Popište nám situaci.

Nemusíte vědět, jestli potřebujete test, technologii nebo konzultaci. Podle popisu situace navrhneme vhodný další krok.