Olet tällä hetkellä offline-tilassa. Internet-yhteyden muodostamista uudelleen odotetaan

Microsoft Source Code Analyzer for SQL Injection -työkalu on saatavana SQL-koodin lisäämisen heikkouksien ASP-koodista löytämistä varten

JOHDANTO
Tässä artikkelissa on Microsoft Source Code Analyzer for SQL Injection -työkalun kuvaus. Tämän staattisen koodin analysointityökalun avulla voit löytää ASP-koodista SQL-koodin lisäämisen heikkouksia.
Enemmän tietoa
Microsoft Source Code Analyzer for SQL Injection -työkalu on staattisen koodin analysointityökalu, jonka avulla ASP (Active Server Pages) -koodista voidaan löytää SQL-koodin lisäämisen heikkouksia. Tässä artikkelissa kuvataan työkalun käyttäminen, työkalun luomat varoitukset sekä työkalun rajoitukset. Lisätietoja on työkalun Readme-tiedostossa.

Edellytykset

Tämä komentorivityökalu edellyttää seuraavan ohjelmiston:
  • .NET Framework 3.0

ASP-koodin SQL-koodin lisäämisen ongelmat

Jos ASP-koodin Request.Form- tai Request.Querystring-kokoelmien käyttäjän antamia tietoja käytetään dynaamisten SQL-lausekkeiden muodostamiseen ilman tietojen tarkistusta, hyökkääjä voi lisätä SQL-lausekkeeseen SQL-komentoja ja käyttää sitten sitä väärin. Tätä kutsutaan yleisesti ensimmäisen kertaluvun SQL-koodin lisäämisen heikkoudeksi (englanniksi First Order SQL injection vulnerability).

Jos käyttäjän syöte tallennetaan tietokantaan yhden ASP-sivun avulla ja noudetaan sitten tietokannasta dynaamisten SQL-lausekkeiden muodostamiseen eri ASP-sivulle, hyökkääjä voi lisätä SQL-komentoja SQL-lausekkeeseen ja käyttää sitten sitä väärin. Tätä kutsutaan yleisesti toisen kertaluvun SQL-koodin lisäämisen heikkoudeksi (englanniksi Second Order SQL injection vulnerability).

On parasta käyttää parametreihin perustuvia SQL-kyselyitä, jotta näitä heikkouksia on vähemmän. Lisätietoja ASP-koodin SQL-koodin lisäämisen heikkouksista ja tavoista vähentää kyseisiä heikkouksia on seuraavassa Microsoftin WWW-sivustossa: Microsoft Source Code Analyzer for SQL Injection -työkalu auttaa löytämään osan näistä ongelmista automaattisesti.

Käyttö

Tässä osassa on kuvaus työkalun käyttämisestä.

Syntaksi

Työkalu käyttää seuraavaa syntaksia:
msscasi_asp.exe [/nologo] [/quiet] [/suppress=luku;..;luku] [/GlobalAsaPath=polku] [/IncludePaths=polku;..;polku] /Input=tiedosto.asp

Kuvaus

Työkalu analysoi ASP-koodin ja etsii SQL-koodin lisäämisen heikkouksia.

Parametriluettelo

Parametri Asetus Kuvaus
/GlobalAsaPathpolkuNäyttää Global.asa-tiedoston polun.
/IncludePathspolutNäyttää puolipistein erotellut polut näennäispolkujen avulla sisällytettyjen tiedostojen ratkaisemista varten.
/input.asp-tiedostoNäyttää analysoitavan ASP-tiedoston absoluuttisen polun.
/suppress warnings Varoituksia ei raportoida.
/nologo Työkalun logoa ei näytetä.
/quietJäsennysvirheitä ei näytetä. Kun käytetään valitsimia /nologo ja /quiet, näytetään vain varoitussanomat.

Esimerkkejä

MSSCASI_ASP /input="c:\source\logon.asp"MSSCASI_ASP /GlobalAsaPath="C:\source" /input="c:\source\webitems\display.asp"MSSCASI_ASP /GlobalAsaPath="C:\source" /input="c:\source\webitems\display.asp" /IncludePaths="C:\virtualdirectory1;C:\virtualdirectory2"MSSCASI_ASP /input="c:\source\webitems\display.asp" /suppress="80406;80407"

Tulosteen tarkasteleminen

Työkalu luo seuraavat varoitukset:
VaroitusKuvaus
80400Mahdollinen SQL-koodin lisäämisen heikkous Request-objektista ilman syötteen tarkistusta luettujen tietojen vuoksi. Nämä varoitukset ovat todennäköisesti ohjelmavirheitä, jotka on korjattava.
80406Mahdollinen SQL-koodin lisäämisen heikkous Request-objektista luettujen sellaisten tietojen vuoksi, joissa syöte välitetään joidenkin tuntemattomien, mahdollisesti tietojen tarkistuksen tekevien, funktiokutsujen kautta. Jos funktiokutsussa ei tehdä tietojen tarkistusta, nämä ovat todennäköisesti ohjelmavirheitä. Muussa tapauksessa nämä ovat aiheettomia varoituksia.
80403Mahdollinen SQL-koodin lisäämisen heikkous taustapalvelimesta tulevien tietojen vuoksi. Jos käyttäjä hallitsee tietoja jonkin muun WWW-sivuston avulla, nämä ovat todennäköisesti ohjelmavirheitä. Jos tietoihin luotetaan, nämä eivät ehkä kuitenkaan ole ohjelmavirheitä. On kuitenkin parasta käyttää parametreihin perustuvia kyselyitä osana kattavaa puolustusstrategiaa.
80407Mahdollinen SQL-koodin lisäämisen heikkous taustapalvelimesta tulevien ja tuntemattomien funktiokutsujen läpi kulkevien tietojen vuoksi. Jos käyttäjä hallitsee tietoja joidenkin muiden WWW-sivustojen avulla, eikä kyseisiä tietoja tarkisteta, nämä ovat todennäköisesti ohjelmavirheitä.
80420Mahdollinen SQL-koodin lisäämisen heikkous funktioparametrien vuoksi. Nämä varoitukset luodaan funktion toiminta-alueella. Jos funktioparametrien arvot ovat peräisin luotettavista lähteistä, nämä ovat siis aiheettomia varoituksia. Jos käyttäjät hallitsevat parametrien arvoja, nämä ovat todennäköisesti ohjelmavirheitä. Voit käyttää merkintää __sql_pre_validated funktioparametreille ja tunnistaa, pystyvätkö käyttäjät käsittelemään tätä koodia.
80421Mahdollinen SQL-koodin lisäämisen heikkous funktioparametrien vuoksi, ja funktioparametrit välitetään joidenkin tiedot mahdollisesti tarkistavien funktiokutsujen kautta. Voit käyttää merkintää __sql_pre_validated funktioparametreille sekä merkintää __sql_validate tarkistusfunktiolle ja tunnistaa, pystyvätkö käyttäjät käsittelemään tätä koodia.
Kaikista työkalun luomista varoituksista varoitus 80400 ilmaisee todellisia ohjelmavirheitä kaikkein todennäköisimmin. ASP-WWW-kehittäjien on korjattava nämä ohjelmavirheet parametreihin perustuvien kyselyiden avulla. Lisätietoja parametreihin perustuvien kyselyiden käyttämisestä ASP-koodista on seuraavassa Microsoftin WWW-sivustossa:

Rajoitukset

Työkalulla on seuraavat tunnetut rajoitukset:
  • Työkalu pystyy käsittelemään vain VBScriptillä kirjoitettua ASP-koodia. Se ei tällä hetkellä analysoi palvelinpuolen koodia, joka on kirjoitettu muilla kielillä, kuten Jscriptillä.
  • Tämän työkalun kehitysprosessin osana kehitettiin uusi ASP-jäsennin. Tämä jäsennin ei kuitenkaan käsittele kaikkia ASP-rakenteita. Tämän vuoksi saattaa ilmetä joitakin jäsennysvirheitä.
Suositukset
Voit ladata Microsoft Source Code Analyzer for SQL Injection -työkalun käymällä seuraavassa Microsoftin WWW-sivustossa: Lisätietoja eri parhaiden käytäntöjen dokumentaatiosta on seuraavassa Microsoftin WWW-sivustossa: Lisätietoja SQL-koodin ASP-koodiin lisäämisen estämisestä on seuraavassa Microsoftin WWW-sivustossa: Lisätietoja SQL-koodin lisäämisen hyökkäyksistä on seuraavassa Microsoftin WWW-sivustossa: Lisätietoja tästä työkalusta on seuraavassa Microsoftin WWW-sivustossa: Jos haluat keskustella työkalusta MSDN SQL Security -keskusteluryhmässä, käy seuraavassa Microsoftin WWW-sivustossa:
Ominaisuudet

Artikkelin tunnus: 954476 – Viimeisin tarkistus: 06/27/2008 11:03:18 – Versio: 1.0

  • Microsoft ASP.NET 2.0
  • atdownload kbexpertiseadvanced kbcode kbexpertiseinter kbinfo kbsecadvisory kbsecurity kbsecvulnerability KB954476
Palaute