Megjelent az ASP-forráskód SQL-utasítások beszúrását lehetővé tevő biztonsági réseinek keresésére szolgáló Microsoft Source Code Analyzer for SQL Injection eszköz

A cikk fordítása A cikk fordítása
Cikk azonosítója: 954476 - A cikkben érintett termékek listájának megtekintése.
Az összes kibontása | Az összes összecsukása

A lap tartalma

BEVEZETÉS

Ez a cikk a Microsoft Source Code Analyzer for SQL Injection eszközt ismerteti. Ezzel a statikus forráskód elemzésére szolgáló eszközzel megkereshetők az ASP-forráskód SQL-utasítások beszúrását lehetővé tevő biztonsági rései.

További információ

A Microsoft Source Code Analyzer for SQL Injection egy statikus forráskód elemzésére szolgáló eszköz, amely az ASP- (Active Server Pages) forráskód SQL-utasítások beszúrását lehetővé tevő biztonsági réseinek kereséséhez nyújt segítséget. A jelen cikk az eszköz használatát, figyelmeztető üzeneteit és korlátait ismerteti. További részletekért tekintse meg az eszköz információs fájlját.

Előfeltételek

Ez a parancssori eszköz a következő szoftvert igényli:
  • .NET-keretrendszer 3.0

ASP-forráskódba beszúrt SQL-utasításokkal kapcsolatos problémák

Ha az ASP-forráskód a Request.Form vagy a Request.Querystring gyűjtemények felhasználó által megadott adatait használja dinamikus SQL-utasítások összeállítására az adatok érvényességének ellenőrzése nélkül, a támadók visszaélhetnek ezzel oly módon, hogy az SQL-utasításokba SQL-parancsokat ágyaznak be. Ez a biztonsági rés az SQL-utasítások elsőrendű beszúrásaként ismert.

A támadók akkor is szúrhatnak be ártó szándékkal SQL-parancsokat, ha a felhasználók által egy ASP-lapról bevitt adatokat egy adatbázis tárolja, és egy másik ASP-lap olvassa ki azokat a dinamikus SQL-utasítások összeállításához. Ez az SQL-utasítások másodrendű beszúrásaként ismert.

A sebezhetőség csökkentése érdekében célszerű paraméterezett SQL-lekérdezéseket használni. Az ASP technológia SQL-utasítások beszúrását lehetővé tevő biztonsági réseiről és a sebezhetőség csökkentésének módszereiről a Microsoft következő webhelyén tájékozódhat bővebben:
http://msdn.microsoft.com/hu-hu/library/cc676512(en-us).aspx
A Microsoft Source Code Analyzer for SQL Injection eszköz ezen problémák némelyikét automatikusan képes észlelni.

Használat

Ez a szakasz az eszköz használatát ismerteti.

Szintaxis

Az eszköz szintaxisa a következő:
msscasi_asp.exe [/nologo] [/quiet] [/suppress=szám;..;szám] [/GlobalAsaPath=elérési_út] [/IncludePaths=elérési_út;..;elérési_út] /Input=fájl.asp

Leírás

Az eszköz az SQL-utasítások beszúrását lehetővé tevő biztonsági rések felderítése érdekében elemzi az ASP-forráskódot.

Paraméterlista

A táblázat összecsukásaA táblázat kibontása
Paraméter Kapcsoló Leírás
/GlobalAsaPathelérési_útA Global.asa fájl elérési útjának megadása.
/IncludePathselérési_utakA belefoglalt fájlok virtuális elérési útjainak megadása pontosvesszővel elválasztva.
/inputasp-fájlAz elemzendő ASP-fájl abszolút elérési útjának megadása.
/suppress warnings A figyelmeztetések megjelenítésének letiltása.
/nologo Az eszköz emblémájának letiltása.
/quietAz elemzési hibák megjelenítésének letiltása. A /nologo és a /quiet kapcsolók megadása esetén csak a figyelmeztető üzenetek jelennek meg.

Példák

MSSCASI_ASP /input="c:\forrás\logon.asp"
MSSCASI_ASP /GlobalAsaPath="C:\forrás" /input="c:\forrás\webitems\display.asp"
MSSCASI_ASP /GlobalAsaPath="C:\forrás" /input="c:\forrás\webitems\display.asp" /IncludePaths="C:\virtuális_könyvtár_1;C:\virtuális_könyvtár_2"
MSSCASI_ASP /input="c:\forrás\webitems\display.asp" /suppress="80406;80407"

A kimenet áttekintése

Az eszköz az alábbi figyelmeztető hibakódokat jeleníti meg:
A táblázat összecsukásaA táblázat kibontása
FigyelmeztetésLeírás
80400SQL-parancsoknak a Request objektumból bemeneti ellenőrzés nélkül beolvasott adatokba történő beszúrásával kihasználható lehetséges biztonsági rés. Az ilyen figyelmeztetések nagy valószínűséggel olyan hibákra utalnak, amelyeket javítani kell.
80406SQL-parancsoknak a Request objektumból beolvasott adatokba történő beszúrásával kihasználható lehetséges biztonsági rés ismeretlen (esetlegesen ellenőrzést végző) függvényeknek átadott bemeneti adatok esetén. Ha a függvényhívás során nem történik adatellenőrzés, nagyon valószínű, hogy hibáról van szó, egyéb esetekben a figyelmeztetés téves.
80403Háttérkiszolgálókról származó adatokba beszúrt SQL-parancsokkal kihasználható esetleges biztonsági rés. Ha a szóban forgó adatokat végfelhasználók adják meg egy másik webhelyen keresztül, valószínűleg biztonsági résről van szó. Megbízható forrásból eredő adatok esetén nem biztos, hogy ez a helyzet, ettől függetlenül azonban érdemes a kidolgozott védelmi stratégia részeként paraméterezni a lekérdezéseket.
80407Háttérkiszolgálókról származó adatokba beszúrt SQL-parancsokkal kihasználható esetleges biztonsági rés ismeretlen függvényhívások használata esetén. Ha a szóban forgó adatokat végfelhasználók adják meg egy másik webhelyen keresztül, és a függvényhívás során nem történik adatellenőrzés, valószínűleg biztonsági résről van szó.
80420Függvényparaméterekbe beszúrt SQL-parancsokkal kihasználható esetleges biztonsági rés. Az ilyen figyelmeztetések a függvény hatóköre alapján jelennek meg. Ennek következtében előfordulhatnak téves figyelmeztetések, ha a függvényparaméter-értékek megbízható forrásokból származnak, végfelhasználók által megadott paraméterértékek esetén viszont valószínűleg biztonsági résről van szó. Azt, hogy a végfelhasználók hozzáférhetnek-e a szóban forgó kódhoz, a függvényparamétereket az __sql_pre_validated jelöléssel ellátva állapíthatja meg.
80421Ismeretlen (esetlegesen ellenőrzést végző) függvényeknek átadott függvényparaméterekbe beszúrt SQL-parancsokkal kihasználható esetleges biztonsági rés. Annak megállapításához, hogy a végfelhasználók hozzáférhetnek-e a szóban forgó kódhoz, a függvényparamétereket lássa el az __sql_pre_validated jelöléssel, az ellenőrző függvényben pedig használja az __sql_validate jelölést.
A fenti figyelmeztetések közül a 80400-as hibakód jelez a legnagyobb valószínűséggel tényleges biztonsági réseket. Ezeket az ASP technológiát alkalmazó webfejlesztők paraméterezett lekérdezések használatával védhetik ki. A Microsoft alábbi webhelyén további információt talál arról, hogy miként használhat paraméterezett lekérdezéseket az ASP-kódban:
http://msdn.microsoft.com/hu-hu/library/cc676512(en-us).aspx

Korlátok

Az eszköz az alábbi ismert korlátokkal rendelkezik:
  • Az eszköz jelenleg csak VBScript nyelvű ASP-forráskódot képes értelmezni, más programnyelveken (például Jscript) íródott kiszolgálóoldali kódot nem.
  • Az eszköz fejlesztésének részeként új ASP-elemző is készült, amely azonban nem minden ASP-szerkezet ellenőrzésére alkalmas, így elemzési hibákkal találkozhat.

Hivatkozások

A Microsoft Source Code Analyzer for SQL Injection eszközt a Microsoft alábbi webhelyéről töltheti le:
http://www.microsoft.com/downloads/details.aspx?FamilyId=58A7C46E-A599-4FCB-9AB4-A4334146B6BA
A gyakorlati tanácsokat tartalmazó dokumentumokról a Microsoft alábbi webhelyén tájékozódhat:
http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx
Az SQL-utasítások ASP-forráskódba való beszúrásának megakadályozásáról a Microsoft következő webhelyén talál további információt:
http://msdn.microsoft.com/hu-hu/library/cc676512(en-us).aspx
A beszúrt SQL-utasításokkal történő támadásokról a Microsoft következő webhelyén talál további információt:
http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx
Az eszközről az alábbi Microsoft-webhelyen talál további információt:
http://blogs.msdn.com/sqlsecurity
Az MSDN SQL-biztonsággal foglalkozó fóruma a Microsoft következő webhelyén érhető el:
http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=92&SiteID=1

Tulajdonságok

Cikk azonosítója: 954476 - Utolsó ellenőrzés: 2008. június 27. - Verziószám: 1.0
A cikkben található információ a következő(k)re vonatkozik:
  • Microsoft ASP.NET 2.0
Kulcsszavak: 
kbinfo kbsecvulnerability kbsecurity kbcode atdownload kbexpertiseadvanced kbexpertiseinter kbsecadvisory KB954476
A Microsoft tudásbázisban szolgáltatott információkat "az adott állapotban", bárminemű szavatosság vagy garancia nélkül biztosítjuk. A Microsoft kizár mindennemű, akár kifejezett, akár vélelmezett szavatosságot vagy garanciát, ideértve a forgalomképességre és az adott célra való alkalmasságra vonatkozó szavatosságot is. A Microsoft Corporation és annak beszállítói semmilyen körülmények között nem felelősek semminemű kárért, így a közvetlen, a közvetett, az üzleti haszon elmaradásából származó vagy speciális károkért, illetve a kár következményeként felmerülő költségek megtérítéséért, még abban az esetben sem, ha a Microsoft Corporationt vagy beszállítóit az ilyen károk bekövetkeztének lehetőségére figyelmeztették. Egyes államok joga nem teszi lehetővé bizonyos károkért a felelősség kizárását vagy korlátozását, ezért a fenti korlátozások az ön esetében esetleg nem alkalmazhatók.

Visszajelzés küldése

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com