אינך במצב לא מקוון כעת, ממתין לחיבור לאינטרנט

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

מבוא
מאמר זה מתאר את הכלי 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: הכלי 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:

מגבלות

הכלי כולל את המגבלות המוכרות הבאות:
  • הכלי מבין רק קוד ASP שנכתב ב- VBScript. הכלי אינו מנתח כעת קוד בצד השרת שנכתב בשפות אחרות, כגון Jscript.
  • מנתח חדש של ASP פותח כחלק מתהליך הפיתוח של כלי זה. עם זאת, מנתח זה אינו מכסה את כל המבנים של ASP. לכן, ייתכן שתיתקל בשגיאות ניתוח כלשהן.
מידע נוסף
כדי להוריד את הכלי Microsoft Source Code Analyzer for SQL Injection, בקר באתר האינטרנט הבא של Microsoft: לקבלת פרטים נוספים על תיעוד של שיטות עבודה מומלצות שונות, בקר באתר האינטרנט הבא של Microsoft: לקבלת מידע נוסף על מניעת הזרקות SQL ב-ASP, בקר באתר האינטרנט הבא של Microsoft: לקבלת מידע נוסף על תקיפות הזרקת SQL, בקר באתר האינטרנט הבא של Microsoft: לקבלת פרטים נוספים על הכלי, בקר באתר האינטרנט הבא של Microsoft: בקר באתר האינטרנט הבא של Microsoft כדי לדון בכלי בפורום אבטחת SQL של MSDN:
מאפיינים:

מזהה פריט: 954476 - סקירה אחרונה: 06/26/2008 18:58:44 - תיקון: 1.0

Microsoft ASP.NET 2.0

  • atdownload kbexpertiseadvanced kbcode kbexpertiseinter kbinfo kbsecadvisory kbsecurity kbsecvulnerability KB954476
משוב