Zabezpečení proti SQL injection

Podobné dokumenty
Zabezpečení proti SQL injection

Vazba ESO9 na MS Outlook a MS Exchange

Popis logování v aplikačním serveru

Synchronizace CRM ESO9 a MS Exchange

Mechanismus obarvení řádků browse

Práva a povinnosti správce informačního systému

Obsah OLAP A ESO9... 3

Databázové systémy Cvičení 5.2

DUM 12 téma: Příkazy pro tvorbu databáze

1. DATOVÉ SCHRÁNKY OBECNÝ PŘÍSTUP K DATOVÉ SCHRÁNCE DATOVÉ ZPRÁVY... 3

Překlady a jiné jazykové prostředí v ESO9

Zaměstnanecký portál nastavení a práce v ESO9 PAM

Synchronizace číselníků

ZMĚNY V DATABÁZI A SOUVISEJÍCÍ POLOŽKY S APLIKACÍ ESHOP...

ZAMĚSTNANECKÝ PORTÁL nastavení a práce v ESO9 PAM

Dokument stručně popisuje způsob propojení aplikací ESO9 s karetními terminály ČSOB.

1. KONSTRUKČNÍ KUSOVNÍK... 3

Uživatelská dokumentace

Měřící systém se vzdáleným přístupem. Databáze

Nový design ESO9. E S O 9 i n t e r n a t i o n a l a. s. U M l ý n a , P r a h a. Strana 1 z 9

ESO9 Reporting Server

Informační systém pro e-learning manuál

Novinky verze systému Spisové služby (SpS) e-spis LITE

Synchronizace kontaktů z ESO9 do MS Outlook

Importy a exporty KLIENTSKÝ DOPLNĚK PRO PODPORU IMPORTŮ VERZE 3.2.0

Dokumentace. k modulu. podnikový informační systém (ERP) Datové schránky

1. ESO9 MAJETEK ZÁKLADNÍ VLASTNOSTI DOPORUČENÝ HW... 3

Nastavení zabezpečení

KOMPONENTY APLIKACE TreeINFO. Petr Štos ECM Business Consultant

Už ivatelska dokumentace

APS Administrator.OP

Modul IRZ návod k použití

Portál Značení tabáku Uživatelská příručka pro registrované uživatele

Dokumentace k nevizuálnímu rozhraní aplikace DopisOnline

Nápověda pro systém ehelpdesk.eu

DATABÁZE MS ACCESS 2010

ZAMĚSTNANECKÝ PORTÁL uživatelská příručka

OUTLOOK ADDIN PRO SYNCHRONIZACI S AKTIVITAMI RAYNET CRM - POUŽITÍ

TMEGadget. by TMESolutions

Uživatelská dokumentace

Databáze I. Přednáška 4

Aplikace pro srovna ní cen povinne ho ruc ení

.NET v SQL Serveru. Jan Drozen NDBI039.

Způsoby získání autentizačních údajů

Návod - katalog. ANTEE s.r.o. - tel.: , fax: , helpdesk: ,

ROZHRANÍ PRO ZPŘÍSTUPNĚNÍ A PREZENTACI ZNALOSTNÍ DATABÁZE INTERPI UŽIVATELSKÁ PŘÍRUČKA

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

SPRÁVA STÁTNÍCH HMOTNÝCH REZERV

Reliance 3 design OBSAH

WORKWATCH ON-LINE EVIDENCE PRÁCE A ZAKÁZEK

Popis souboru pro generování reportů *.report

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

Databáze MS-Access. Obsah. Co je to databáze? Doc. Ing. Radim Farana, CSc. Ing. Jolana Škutová

Web. Získání informace z internetu Grafické zobrazení dat a jejich struktura Rozšíření funkcí pomocí serveru Rozšíření funkcí pomocí prohlížeče

Jazz Server osobní nastavení uživatele

Úvod do databázových systémů

Nápověda pro systém eintranet.net

Evidence požadavků uživatelů bytů a nebytových prostor

Registr práv a povinností

Zápis klasifikace pro učitele teoretické výuky

Aplikace a služba Money Dnes Publisher v deseti krocích

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Výrobní plán ZADÁVÁNÍ VÝROBY

50 Zápisník skupiny. Popis modulu

SME Terminál + SmeDesktopClient. Instalace. AutoCont CZ a.s.

FIREBIRD relační databázový systém. Tomáš Svoboda

Po prvním spuštění Chrome Vás prohlížeč vyzve, aby jste zadali své přihlašovací údaje do účtu Google. Proč to udělat? Máte několik výhod:

Elektronická evidence tržeb v KelSQL / KelEXPRESS / KelMINI

1. Webový server, instalace PHP a MySQL 13

EPLAN Electric P8 2.7 s databázemi na SQL serveru

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Virtuální privátní databáze

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

KRONOS GUARD NET Obslužný software pro obchůzkový systém v reálném čase Active Guard. Instalace na pobočky

Návod pro podání nabídky v elektronické podobě

ProjectWise V8 XM Edition

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

27 Evidence kasiček. Popis modulu. Záložka Organizované sbírky

Uživatelská příručka IS KP14+ pro Integrované nástroje: Žádost o podporu Strategie CLLD

1 Webový server, instalace PHP a MySQL 13

MBI - technologická realizace modelu

Desktop systémy Microsoft Windows

- PC musí být připojené v lokální síti - je bezpodmínečně nutné, aby aplikace Outlook nebyla aktivní)

Středoškolská technika Encryption Protection System

Databáze prodejců. Tlačítka. Vytvoří kartu nového prodejce (Alt+N); Změní vybraného prodejce Uloží nového prodejce nebo změnu (Alt+U);

plussystem Příručka k instalaci systému

Nastavení složek systému Atollon Server Platform

Registr práv a povinností

Helios RED a Elektronická evidence tržeb (Helios RED verze 10)

Popis vnitřních doplňků klienta ESO9 editor RTF a rychlý číselník

EIS JASU CS. Název souboru: Dokumentace EIS - Dokumentace EIS - Kontrola odběratelů v ISIR 1_7

V tomto manuálu získáte informace o postupu:

Demoprojekt Damocles 2404

POUŽITÍ DATABÁZÍ. Po ukončení tohoto kurzu budete schopni

5. POČÍTAČOVÉ CVIČENÍ

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

Max Homebanking PS uživatelský manuál rozhraní pro automatické stahování dat

Popis instalace programu OCEP (DEMOVERZE i ostrá verze)

STUDIJNÍ MATERIÁL PRO TECHNICKOU CERTIFIKACI ESET Business Edition, ESET Remote Administrator

Transkript:

Zabezpečení proti SQL injection ESO9 intranet a.s. Zpracoval: Tomáš Urych U Mlýna 2305/22, 141 Praha 4 Záběhlice Dne: 19.9.2012 tel.: +420 585 203 370-2 e-mail: info@eso9.cz Revize: Urych Tomáš www.eso9.cz Dne: 8.10.2012

Obsah 1. ZABEZPEČENÍ ODKAZŮ V APLIKACÍCH ESO9... 2 1.1 ZNEUŽITÍ PARAMETRŮ NA ODKAZU... 2 1.2 ZABEZPEČENÍ ODKAZŮ... 2 1.3 NASTAVENÍ ZABEZPEČENÍ ODKAZŮ... 2 1.4 CO PODLÉHÁ ŠIFROVÁNÍ... 2 1.5 KDE SE ŠIFROVÁNÍ PROVÁDÍ... 3 1.6 CO K ZABEZPEČENÍ ODKAZŮ POTŘEBUJI... 3 1.6.1 Šifrování odkazů v MS SQL Serveru... 3 1.7 ZABEZPEČENÍ EXTERNÍCH ODKAZŮ... 3 1.7.1 Tabulka EXTERNIURL... 3 1.7.2 Zakládání externích odkazů... 4 1.7.3 Použití externích odkazů... 4 1.7.4 Kontrola externích odkazů... 4 Strana 1 z 4

1. Zabezpečení odkazů v aplikacích ESO9 1.1 Zneužití parametrů na odkazu Vzhledem k charakteru aplikací postavených na technologii ESO9 je každá z činností takové aplikace definována jednoznačným odkazem (hyperlinkem). Odkaz přitom může obsahovat celou řadu parametrů, které definují vlastnosti nebo chování cílového formuláře nebo sestavy. Pokud je uživatel přihlášen v aplikaci (tj. je ověřen), má možnost explicitním zápisem odkazu do adresního řádku internetového prohlížeče spustit potenciálně nežádoucí nebo nebezpečnou akci nebo se dostat k datům, k nimž nemá běžným způsobem práce v ESO9 přístup. Řešením tohoto problému je zabezpečení odkazů v aplikacích ESO9. 1.2 Zabezpečení odkazů Všechny odkazy v aplikacích ESO9 jsou konstruovány následovně: http://server/aplikace/esoform.asp?parametr=hodnota&parametr2=hodnota2&... Je-li použito nastavení zabezpečení odkazů, je veškerý text za klíčovým slovem esoform.asp zašifrovaný. Odkaz z předchozího příkladu tedy bude vypadat následovně: http://server/aplikace/esoform.asp?3gafplien4ywfyh5g78plcwed5i8/dneunvv9i44ncqw@ Potenciální útočník tak nemá jak zapsat do adresního řádku prohlížeče explicitní odkaz do aplikace ESO9. V zašifrovaném tvaru jsou předávány všechny odkazy v rámci celé aplikace a jejich zašifrování kontroluje aplikační server. Pokud přijde na aplikační server odkaz v otevřeném textu, je uživateli nahlášena chyba a příslušný odkaz se spolu s uživatelem, který jej spustil, zapíše do logovací databáze. Zašifrované odkazy obsahují časovou značku, která omezuje jejich platnost na dobu timeout na uživatelské sezení (ve Správci ESO9 parametr Uzavřít neaktivní spojení ). 1.3 Nastavení zabezpečení odkazů Šifrování lze nastavit na úrovni aplikace ESO9 v programu Správce ESO9 volbou Zabezpečení odkazů. Ve výchozím nastavení je zabezpečení vypnuté. Pro účely např. implementace je vhodné založit nad ostrou aplikací, v níž se odkazy šifrují, aplikaci virtuální, v níž se šifrovat nebudou a která bude přístupná pouze správcům systému. 1.4 Co podléhá šifrování Jak již bylo řečeno výše, je-li nastaveno zabezpečení odkazů na aplikaci ESO9, šifrují se všechny typy odkazů, které si mezi sebou předávají všechny tři vrstvy technologie ESO9, konkrétně: statické odkazy ve formulářích na další formuláře nebo sestavy (s vazbou i bez vazby) odkazy na číselníky akce v browse dostupné z kontextového menu odkazy na spuštění GS odkazy na nápovědu a vzájemné odkazy v rámci nápovědy odkazy do aplikací ESO9 ve stránkách volaných parametrem TPage (tj. odkazy ve statických stránkách ESO9 bez forem/bez dat) odkazy pro práci s dokumentovou databází (uložení souboru do DB a jeho stažení na klienta) odkazy z klienta pro akce volané s parametrem RepeatForQuery odkaz na vyhledávání fulltextem odkazy v Silverlight sestavách "strom činností" a "vyhodnocení událostí" odkazy v dočasných serverových sestavách (TempPrint) při načítání uložených sestav se kontroluje čas jejich posledního generování, pokud je sestava starší, než timeout na uživatelské sezení, sestava se Strana 2 z 4

vygeneruje znovu odkazy v navigaci 1.5 Kde se šifrování provádí Vzhledem k počtu vrstev technologie ESO9 je třeba zpřístupnit šifrování na všech třech vrstvách, kde dochází ke generování odkazů zpět do aplikace. Na straně aplikačního serveru a klienta provádí šifrování automaticky obě tyto komponenty, na straně aplikační databáze je k tomuto účelu k dispozici assembly (DLL knihovna). Assembly není standardní součástí verzového skriptu, do zákaznické databáze ji lze nahrát na základě požadavku zákazníka. 1.6 Co k zabezpečení odkazů potřebuji Možnost zabezpečení odkazů je v technologii ESO9 a v aplikacích ESO9Start od v4.5 doplněk č.1 ze září 2012. 1.6.1 Šifrování odkazů v MS SQL Serveru Jak již bylo řečeno v kapitole 1.5, provádí se šifrování odkazů na všech třech vrstvách technologie ESO9; na databázové vrstvě je šifrování realizování DLL knihovnou (assembly). Tato knihovna není standardní součástí verzového databázového skriptu, na vyžádání si ji lze nechat zaslat ze společnosti ESO9 intranet. Postup registrace šifrovací knihovny do databáze SQL serveru: Povolit CLR integration (použití CLR knihoven): EXEC dbo.sp_configure 'clr enabled',1 RECONFIGURE; Povolit tvorbu nezabezpečených assembly: ALTER DATABASE database_name set trustworthy on Nahrát knihovnu ze souboru na disku: CREATE ASSEMBLY HashURL AUTHORIZATION dbo from 'c:\hashurl.dll' WITH PERMISSION_SET = UNSAFE Vytvořit nad assembly databázovou funkci, která bude dále využívána v aplikacích ESO9: CREATE FUNCTION dbo.hashurl (@text [nvarchar](4000), @UserName [nvarchar](255), @AppName [nvarchar](255)) RETURNS [nvarchar](4000) WITH EXECUTE AS CALLER AS EXTERNAL NAME HashURL.CHashURL.EncryptStr 1.7 Zabezpečení externích odkazů Jak již bylo řečeno v kapitole 1.2, neakceptuje aplikace ESO9 s nastaveným zabezpečením odkazů žádné odkazy v otevřeném formátu, tj. do aplikace ESO9 nelze vstoupit statickým odkazem např. na vybraný formulář nebo sestavu. Vzhledem k tomu, že se právě tento způsob vstupu do aplikace často využívá v zákaznických Profi řešeních, existuje i pro externí odkazy řešení založené na tabulce EXTERNIURL. V ESO9Start takové řešení nikde použité není, v případě požadavku zákazníka je tedy třeba jej implementovat vždy jako Profi úpravu. V ESO9Start však existuje pro externí odkazy následující podpora. 1.7.1 Tabulka EXTERNIURL Libovolné externí odkazy na stránky nebo sestavy v ESO9, které mají být v zabezpečené aplikaci povoleny, musí být předem zapsány v tabulce EXTERNIURL. Kromě URL vlastního obsahu zde lze ještě specifikovat způsob zabezpečení každého odkazu položkou VLZPUSOBZABEZPECENI: Strana 3 z 4

Hodnota 1 znamená, že odkaz má časově omezenou platnost (v intervalu DTPLATNOSTOD DTPLATNOSTDO). Hodnota 2 znamená, že odkaz má platnost omezenu počtem spuštění (vlastní počet je uložen v položce POCETSPUSTENI). Při každém spuštění odkazu je počet spuštění snížen o jeden. Hodnota 3 je kombinací obou předchozích podmínek. Každý odkaz může být povolen buď: všem uživatelům (položky IDUZIVATEL a IDSKUPUZIV prázdné) nebo pouze zadanému uživateli (vyplněna pouze položka IDUZIVATEL) nebo pouze zadané skupině uživatelů (vyplněna pouze položka IDSKUPUZIV, je-li vyplněna zároveň položka IDUZIVATEL, má vybraný uživatel přednost). Vlastní odkaz (URL) musí začínat klíčovým slovem ESOForm.asp (tj. spuštění je povoleno ze všech aplikačních serverů, na nichž je daná aplikace nakonfigurovaná). 1.7.2 Zakládání externích odkazů Externí odkazy se do tabulky EXTERNIURL zapisují procedurou spzadejexterniurl: ALTER PROCEDURE dbo.spzadejexterniurl @URL VARCHAR(4000), @VLZPUSOBZABEZPECENI SMALLINT, @DTPLATNOSTOD DATETIME = NULL, @DTPLATNOSTDO DATETIME = NULL, @POCETSPUSTENI INT = NULL, @IDSKUPUZIV INT = NULL, @IDUZIVATEL INT = NULL Pro daného uživatele, skupinu uživatelů a platnost je zapsané URL unikátní. 1.7.3 Použití externích odkazů Po vložení externího odkazu do tabulky povolených odkazů je samozřejmě třeba jej před použitím ještě zašifrovat. K tomu slouží funkce HashURLExternal: CREATE FUNCTION dbo. HashURLExternal ( @text [nvarchar](4000), @UserName [nvarchar](255), @AppName [nvarchar](255)) RETURNS [nvarchar](4000) Výstupem uvedené funkce je zašifrovaný odkaz, který může být použit externě. 1.7.4 Kontrola externích odkazů Každý externí odkaz je na vstupu aplikačního serveru ověřen proti tabulce EXTERNIURL. Kontrola se provádí procedurou spoverexterniurl: ALTER PROCEDURE dbo.spoverexterniurl @URL VARCHAR(4000), @IDUZIVATEL INT Pokud je v tabulce externích odkazů nalezen alespoň jeden s platným pověřením (tj. datem platnosti nebo počtem použití), bude proveden, jinak bude zakázán a informace o něm se zapíše do logovací databáze. Strana 4 z 4