Jak jsme hacknuli SAP

Jeden z našich klientů začal nasazovat SAP na řízení procesů ve firmě a tak chtěl také vytvořit e-shop, který by na něj byl napojen.
Se SAPem jsem žádné zkušenosti neměl a tak jsme udělali „jen“ kompletní návrh e-shopu (včetně dnes módních zkratek UX/UI) a taky jsem nakódoval šablony.
Samotnou tvorbu měla na starosti firma, která SAP implementovala – měla s ním zkušenosti a vlastní řešení pro provoz e-shopu. Jenže…

Pokračování textu Jak jsme hacknuli SAP

Pár tipů pro bezpečnější databázi

No, jsou to spíš takové nápady, co mě kdysi napadly a nikam jsem je nezapsal. Neberte to jako fungující všehospásu vaší aplikace, spíše jako takový doplňek k větší bezpečnosti.

Práva databáze

Myslím si, že pro chod běžné aplikace postačí MySQL příkazy SELECT, INSERT, UPDATE, DELETE. Proč by tedy uživatel (aplikace) měl mít povoleny všechny ostatní? Pokud vás bude útočník chtít napadnout, určitě vyzkouší příkazy SHOW TABLES, TRUNCATE, DELETE *, apod. Když ale nebude mít aplikace k těmto příkazům práva, nebude je mít ani útočník. Vytvořte si proto nového uživatele s omezenými právy a plná používejte pouze pro správu databáze.

Různé názvy tabulek

Dřív jsem si říkal, že je zbytečné dávat názvy tabulek do proměnné – stejně budou mít všechny instalace aplikace stejné tabulky a budu se v tom lépe orientovat. Chyba. Útočník bude zřejmě zkoušet klasické názvy tabulek jako je users, user, zakaznik, atp. Když navíc zjistí, že stejných aplikací je více, může útok rozšířit.

Napadlo mě tedy pojmenovávat tabulky úplně šíleně a pro každou instalaci jinak. Třeba tabulka users by se jmenovala ufhj88jki; při správě by se v tom ale ani prase nevyznalo. Řešením je ale alespoň nesmyslný prefix – název tabulky bude při správě jasně identifikovatelný, ale pro útočníka nelehký k uhádnutí. V jedné aplikaci se tabulka users bude jmenovat 87479_users, v další 74ughjl8_users. Také bych doporučil v rámci jedné databáze nepoužívat stejný prefix. Ve stejné databázi tak budou třeba tabulky: 87ufhjk_zakaznici, 6ghbdsk_objednavky (Aby jste měli stejné abecední pořadí tabulek, můžete prefix udělat s posloupností).