ASP koduna SQL ekleme güvenlik açıklarını bulmayı sağlayan Microsoft Source Code Analyzer for SQL Injection aracı kullanıma sunuldu

Makale çevirileri Makale çevirileri
Makale numarası: 954476 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

GİRİŞ

Bu makalede, Microsoft Source Code Analyzer for SQL Injection aracı açıklanır. ASP koduna SQL ekleme güvenlik açıklarını bulmak için bu statik kod çözümleme aracını kullanabilirsiniz.

Daha fazla bilgi

Microsoft Source Code Analyzer for SQL Injection aracı, Active Server Pages (ASP) koduna SQL ekleme güvenlik açıklarını bulmanıza yardımcı olan bir statik kod çözümleme aracıdır. Bu makalede, aracı kullanma, araç tarafından oluşturulan uyarılar ve aracın kısıtlamaları açıklanır. Daha fazla bilgi için aracın Benioku belgesine bakın.

Önkoşullar

Bu komut satırı aracı aşağıdaki yazılımı gerektirir:
  • .NET Framework 3.0

ASP koduna SQL ekleme sorunları

ASP kodunda Request.Form veya Request.Querystring koleksiyonlarından alınan, kullanıcı tarafından sağlanan veriler dinamik SQL deyimleri oluşturmak üzere veri doğrulaması yapılmadan kullanılıyorsa, bir saldırgan SQL deyimine SQL komutları ekleyebilir ve bunu kötü amaçlı olarak kullanabilir. Bu, genelde Birinci Düzey SQL ekleme güvenlik açığı olarak bilinir.

Kullanıcı girişi bir ASP sayfası kullanılarak veritabanında depolanıyorsa ve sonra bu kullanıcı girişi veritabanından alınarak farklı bir ASP sayfasında dinamik SQL deyimleri oluşturmak için kullanılıyorsa, bir saldırgan SQL deyimine SQL komutları ekleyebilir ve bunu kötü amaçlı olarak kullanabilir. Bu, genelde İkinci Düzey SQL ekleme güvenlik açığı olarak bilinir.

Bu güvenlik açıklarını azaltmak için en iyi yöntem parametre tabanlı SQL sorguları kullanmaktır. ASP'ye SQL ekleme güvenlik açıkları ve bu güvenlik açıklarını azaltma yöntemleri hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
Microsoft Source Code Analyzer for SQL Injection aracı bu sorunlardan bazılarını otomatik olarak bulmanıza yardımı olur.

Kullanım

Bu bölüm aracı kullanmayı açıklar.

Sözdizimi

Araç aşağıdaki sözdizimini kullanır:
msscasi_asp.exe [/nologo] [/quiet] [/suppress=num;..;num] [/GlobalAsaPath=path] [/IncludePaths=path;..;path] /Input=file.asp

Açıklama

Araç, ASP kodunu SQL ekleme güvenlik açıkları açısından çözümler.

Parametre listesi

Bu tabloyu kapaBu tabloyu aç
Parametre Seçenek Açıklama
/GlobalAsaPathyolGlobal.asa dosyasının yolunu görüntüler.
/IncludePathsyollarSanal yollar kullanılarak eklenen dosyaları çözümlemek için noktalı virgülle ayrılmış yollar görüntüler.
/inputasp dosyasıÇözümlenmesi gereken ASP dosyasının mutlak yolunu görüntüler.
/suppress warnings Uyarılar raporlanmaz.
/nologo Aracın logosu görüntülenmez.
/quietAyrıştırma hataları görüntülenmez. /nologo ve /quiet anahtarlarını kullandığınızda, yalnızca uyarı iletileri görüntülenir.

Örnekler

MSSCASI_ASP /input="c:\kaynak\oturum.asp"
MSSCASI_ASP /GlobalAsaPath="C:\kaynak" /input="c:\kaynak\webogeleri\goruntu.asp"
MSSCASI_ASP /GlobalAsaPath="C:\kaynak" /input="c:\kaynak\webogeleri\goruntu.asp" /IncludePaths="C:\sanaldizin1;C:\sanaldizin2"
MSSCASI_ASP /input="c:\kaynak\webogeleri\goruntu.asp" /suppress="80406;80407"

Çıktıyı gözden geçirme

Araç aşağıdaki uyarıları oluşturur:
Bu tabloyu kapaBu tabloyu aç
UyarıAçıklama
80400Request nesnesinden giriş doğrulaması yapılmadan okunan veriler aracılığıyla oluşan olası SQL ekleme güvenlik açığı. Bu uyarılar düzeltilmesi gereken olası hatalardır.
80406Girişin, veri doğrulaması gerçekleştirebilecek bazı bilinmeyen işlev çağrıları üzerinden geçirildiği Request nesnesinden okunan veriler aracılığıyla oluşan olası SQL ekleme güvenlik açığı. İşlev çağrısı içinde veri doğrulaması gerçekleştirilmiyorsa, bunlar olası hatalardır. Tersi durumda, bunlar yanlış uyarı durumları olur.
80403Veri aracılığıyla oluşan olası SQL ekleme güvenlik açığı arka uç sunucusundan gelir. Veriler son kullanıcı tarafından başka bazı Web siteleri aracılığıyla denetleniyorsa, bunlar olası hatalardır. Ancak verilere güveniliyorsa, hata olmayabilirler. Daha kapsamlı bir koruma stratejisinin parçası olarak, bu sorguları yine de parametre tabanlı yapmak iyi bir uygulama yöntemidir.
80407Arka uç sunucusundan gelen ve bazı bilinmeyen işlev çağrıları üzerinden geçen veriler aracılığıyla oluşan olası SQL ekleme güvenlik açığı. Veriler son kullanıcı tarafından başka bazı Web siteleri aracılığıyla denetleniyorsa ve bu veriler üzerinde veri doğrulaması gerçekleştirilmiyorsa, bunlar olası hatalardır.
80420İşlev parametreleri yoluyla oluşan olası SQL ekleme güvenlik açığı. Bu uyarılar işlev kapsamında oluşturulur. Bu nedenle, işlev parametresi değerleri güvenilen kaynaklardan geliyorsa, bunlar yanlış uyarı durumlarıdır. Parametre değerleri son kullanıcı tarafından denetleniyorsa, bunlar olası hatalardır. Son kullanıcıların bu koda ulaşıp ulaşamadığını belirlemek için işlev parametrelerinde __sql_pre_validated açıklamasını kullanabilirsiniz.
80421İşlev parametreleri aracılığıyla oluşan olası SQL ekleme güvenlik açığı ve veri doğrulaması gerçekleştirebilecek bazı bilinmeyen işlev çağrıları aracılığıyla geçirilen işlev parametreleri. Son kullanıcıların bu koda ulaşıp ulaşamadığını belirlemek için işlev parametrelerinde __sql_pre_validated açıklamasını ve doğrulama işlevinde __sql_validate açıklamasını kullanabilirsiniz.
Aracın oluşturduğu tüm uyarılar arasında 80400 uyarısı, çok büyük olasılıkla gerçek hataları gösterir. ASP Web geliştiricileri parametre tabanlı sorgular kullanarak bu hataları düzeltmelidir. ASP kodunda parametre tabanlı SQL sorguları kullanma hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://msdn.microsoft.com/en-us/library/cc676512.aspx

Kısıtlamalar

Araçta aşağıdaki bilinen kısıtlamalar vardır:
  • Araç yalnızca VBScript ile yazılan ASP kodunu çözümler. Jscript gibi başka dillerde yazılan sunucu tarafı kodunu şu anda çözümleyememektedir.
  • Bu aracın geliştirme sürecinin parçası olarak yeni bir ASP ayrıştırıcı geliştirilmiştir. Ancak bu ayrıştırıcı tüm ASP yapılarını kapsamayabilir. Bu nedenle, bazı ayrıştırma hataları görebilirsiniz.

Referanslar

Microsoft Source Code Analyzer for SQL Injection aracını karşıdan yüklemek için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://www.microsoft.com/downloads/details.aspx?FamilyId=58A7C46E-A599-4FCB-9AB4-A4334146B6BA
En iyi yöntemleri açıklayan çeşitli belgeler hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx
ASP'de SQL eklemelerini engelleme hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
SQL ekleme saldırıları hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx
Araç hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://blogs.msdn.com/sqlsecurity
MSDN SQL Güvenliği forumunda araç üzerinde tartışma yapmak için aşağıdaki Microsoft Web sitesini ziyaret edin:
http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=92&SiteID=1

Özellikler

Makale numarası: 954476 - Last Review: 27 Haziran 2008 Cuma - Gözden geçirme: 1.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ASP.NET 2.0
Anahtar Kelimeler: 
atdownload kbexpertiseadvanced kbcode kbexpertiseinter kbinfo kbsecadvisory kbsecurity kbsecvulnerability KB954476

Geri Bildirim Ver

 

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