הכלי Microsoft Source Code Analyzer for SQL Injection זמין לצורך איתור פגיעויות של הזרקת SQL בקוד ASP

תרגומי מאמרים תרגומי מאמרים
Article ID: 954476 - View products that this article applies to.
הרחב הכל | כווץ הכל

On This Page

מבוא

מאמר זה מתאר את הכלי Microsoft Source Code Analyzer for SQL Injection. באפשרותך להשתמש בכלי ניתוח קוד סטטי זה כדי לאתר פגיעויות של הזרקת SQL בקוד ASP.

מידע נוסף

הכלי Microsoft Source Code Analyzer for SQL Injection הוא כלי ניתוח קוד סטטי שמסייע לאתר פגיעויות של הזרקת SQL בקוד Active Server Pages (ASP)?. מאמר זה מתאר כיצד להשתמש בכלי, מהן האזהרות שנוצרות על-ידי הכלי ומהן מגבלות הכלי. לקבלת מידע נוסף, עיין במסמך ה- Readme של הכלי.

תנאים מוקדמים

כלי שורת פקודה זה מחייב את התוכנות הבאות:
  • The .NET Framework 3.0

בעיות הזרקת SQL בקוד ASP

אם נתונים שסופקו על-ידי המשתמש מהאוספים Request.Form או Request.Querystring בקוד ASP משמשים לבניית משפטי SQL דינאמיים ללא אימות נתונים, תוקף יכול להזריק פקודות SQL למשפטי SQL ולאחר מכן לעשות בהן שימוש לרעה. בעיה זו מוכרת באופן כללי כ פגיעת הזרקת SQL מסדר ראשון.

אם קלט המשתמש מאוחסן במסד נתונים באמצעות דף ASP, ולאחר מכן קלט המשתמש מאוחזר ממסד כנתונים ומשמש לבניית משפטי SQL דינאמיים בדף ASP אחר, תוקף יכול להזריק פקודות SQL לתוך משפט SQL ולאחר מכן לעשות בו שימוש לרעה. בעיה זו מוכרת באופן כללי כ פגיעת הזרקת SQL מסדר שני.

כדי לצמצם פגיעויות אלה, מומלץ להשתמש בשאילתות SQL עם פרמטרים. לקבלת מידע נוסף אודות פגיעויות של הזרקת SQL ב- ASPF ואודות שיטות לצמצום פגיעויות אלה, בקר באתר האינטרנט הבא של Microsoft:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
הכלי Microsoft Source Code Analyzer for SQL Injection מסייע לאתר חלק מבעיות אלה באופן אוטומטי.

שימוש

סעיף זה מתאר כיצד להשתמש בכלי.

תחביר

הכלי משתמש בתחביר הבא:
msscasi_asp.exe [/nologo] [/quiet] [/suppress=num;..;num] [/GlobalAsaPath=path] [/IncludePaths=path;..;path] /Input=file.asp

תיאור

הכלי מנתח קוד ASP עבור פגיעויות של הזרקת SQL.

רשימת פרמטרים

כווץ את הטבלההרחב את הטבלה
פרמטר אפשרות תיאור
?/GlobalAsaPathנתיבהצגת הנתיב של הקובץ Global.asa.
?/IncludePathsנתיביםהצגת נתיבים מופרדים באמצעות נקודה-פסיק לזיהוי קבצים הנכללים באמצעות נתיבים וירטואליים.
?/inputקובץ aspהצגת הנתיב המוחלטת של קובץ ה- ASP שאותו יש לנתח.
?/suppress warnings אזהרות אינן מדווחות.
?/nologo סמל הכלי לא מוצג.
?/quietשגיאות הניתוח אינן מוצגות. בעת שימוש בבוררים ?/nologo וכן ?/quiet , רק הודעות אזהרה מוצגות.

דוגמאות

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"

סקירת הפלט

הכלי יוצר את האזהרות הבאות:
כווץ את הטבלההרחב את הטבלה
אזהרהתיאור
80400פגיעות אפשרית של הזרקת SQL באמצעות נתונים הנקראים מאובייקט Request ללא אימות הקלט. סביר להניח שאזהרות אלה הן באג שדורש תיקון.
80406פגיעות אפשרית של הזרקת SQL באמצעות נתונים הנקראים מאובייקט Request שבו הקלט נתקל בקריאות פונקציה לא מוכרות שעשויות לבצע אימות נתונים. אם לא מתבצע אימות נתונים בתוך קריאת הפונקציה, סביר להניח שאלה באגים. אחרת, אלה הן תוצאות false חיוביות.
80403פגיעות אפשרית של הזרקת SQL בנתונים שמגיעים משרת עורפי. אם הנתונים נשלטים על-ידי משתמש קצה באמצעות אתר אינטרנט אחר כלשהו, סביר להניח שאלה באגים. עם זאת, אם הנתונים אמינים, ייתכן שאלה אינם באגים. מומלץ להפוך שאילתות אלה לשאילתות עם פרמטרים כחלק מאסטרטגיית הגנה לעומק.
80407פגיעות אפשרית של הזרקת SQL באמצעות נתונים המגיעים משרת עורפי שמתבצעות בו קריאות פונקציה לא מוכרות. אם הנתונים נשלטים על-ידי משתמש קצה באמצעות אתרי אינטרנט אחרים כלשהם, ואם לא מתבצע אימות נתונים על נתונים אלה, סביר להניח שאלה באגים.
80420פגיעות אפשרית של הזרקת SQL באמצעות פרמטרים של פונקציה. אזהרות אלה נוצרות בטווח הפונקציה. לכן, אם ערכי הפרמטרים של הפונקציה מגיעים ממקורות אמינים, אלה הן תוצאות false חיוביות. אם ערכי הפרמטר נשלטים על-ידי משתמשי קצה, סביר להניח שאלה באגים. באפשרותך להשתמש בביאור ?__sql_pre_validated עבור פרמטרי הפונקציה כדי לזהות אם משתמשי קצה יכולים להגיע לקוד זה.
80421פגיעות אפשרית של הזרקת SQL באמצעות פרמטרי פונקציה, ופרמטרי הפונקציה נתקלים בקריאות פונקציה לא מוכרות שעשויות לבצע אימות נתונים. באפשרותך להשתמש בביאור ?__sql_pre_validated עבור פרמטרי הפונקציה ובביאור ?__sql_validate בפונקציית האימות כדי לזהות אם משתמשי קצה יכולים להגיע לקוד זה.
מתוך כל האזהרות שהכלי יוצר, האזהרה 80400 מציינת באגים אמיתיים בסבירות הגבוהה ביותר. מפתחי אינטרנט של ASP חייבים לתקן באגים אלה באמצעות שאילתות עם פרמטרים. לקבלת מידע נוסף על אופן השימוש בשאילתות SQL עם פרמטרים בקוד ASP, בקר באתר האינטרנט הבא של Microsoft:
http://msdn.microsoft.com/en-us/library/cc676512.aspx

מגבלות

הכלי כולל את המגבלות המוכרות הבאות:
  • הכלי מבין רק קוד ASP שנכתב ב- VBScript. הכלי אינו מנתח כעת קוד בצד השרת שנכתב בשפות אחרות, כגון Jscript.
  • מנתח חדש של ASP פותח כחלק מתהליך הפיתוח של כלי זה. עם זאת, מנתח זה אינו מכסה את כל המבנים של ASP. לכן, ייתכן שתיתקל בשגיאות ניתוח כלשהן.

מידע נוסף

כדי להוריד את הכלי Microsoft Source Code Analyzer for SQL Injection, בקר באתר האינטרנט הבא של Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyId=58A7C46E-A599-4FCB-9AB4-A4334146B6BA
לקבלת פרטים נוספים על תיעוד של שיטות עבודה מומלצות שונות, בקר באתר האינטרנט הבא של Microsoft:
http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx
לקבלת מידע נוסף על מניעת הזרקות SQL ב-ASP, בקר באתר האינטרנט הבא של Microsoft:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
לקבלת מידע נוסף על תקיפות הזרקת SQL, בקר באתר האינטרנט הבא של Microsoft:
http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx
לקבלת פרטים נוספים על הכלי, בקר באתר האינטרנט הבא של Microsoft:
http://blogs.msdn.com/sqlsecurity
בקר באתר האינטרנט הבא של Microsoft כדי לדון בכלי בפורום אבטחת SQL של MSDN:
http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=92&SiteID=1

מאפיינים

Article ID: 954476 - Last Review: יום חמישי 26 יוני 2008 - Revision: 1.0
המידע במאמר זה חל על:
  • Microsoft ASP.NET 2.0
מילות מפתח 
atdownload kbexpertiseadvanced kbcode kbexpertiseinter kbinfo kbsecadvisory kbsecurity kbsecvulnerability KB954476

ספק משוב

 

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