סיווג התקפות מסוג SQL INJECTION
description
Transcript of סיווג התקפות מסוג SQL INJECTION
236349מספר קורס:
מגישים:
[email protected] מיכאלביץ לירון[email protected]רויטמן יוסף
מנחים:
עמיחי שולמן
09/2013תאריך הגשה:
: מטרת הפרויקט
ולמידה SQL Injectionסיווג התקפות מסוג של טכניקות סיווג.
Eclipse Windows 7/XPסביבת פיתוח: Pythonשפת תכנות:
קודם כל ביצענו איסוף קלטים של התקפות וקלטים חוקיים לצורך בניית המסווג,ולאחר מכן בנינו את המסווג
את הקלטים מצאנו באמצעות שלושה מקורות:
.Imperva. בעזרתו של עמיחי שולמן ו-1.SQLIקיבלנו מהם גישה למסדי נתונים המכילים בין היתר התקפות מסוג
. מצאנו קלטים באינטרנט. 2
. /http://www.textfiles.com/storiesאת החוקיים לקחנו מן האתר - . sqlmap שתקפנו אותו באמצעות תוכנה חופשית הנקראת SQLI. הקמנו אתר רגיש ל-3
.1 ל-0המסווג מקבל שאילתה ומחזיר מספר בין .SQLI התקפה מסוג 1 מציין קלט חוקי ו-0
הגדרת קבוצות: הגדרנו קבוצות לפי סוגים, ישנם קבוצות המכילות שלב א – מילים מן השפה שהן נפוצות, חלקן נדירות, קבוצות המכילות מילים המהוות
המרה, סימנים מיוחדים \ מתמטיים וכדומה.
כתיבת פונקציות המקבלות קלט ומחשבות את גודל הקבוצה. אנחנו שלב ב – בחרנו לעשות שגודל הקבוצה יהיה כמות המילים\הסימנים.
הגדרת פו' הסיווג: שלב ג – להיות:F בחרנו את פו' הסיווג G1,G2,…,Gn קבוצות nבהינתן
F)W1,W2,…,Wn) = 1 1| || |
n n
i jWij Gi Gj
כמו כן לשיפור המסווג ביצענו:
התעלמות מהערות בניתוח השאילתה כשניתן.1.
הרצה של פו' הסיווג פעמיים:2.ולקיחה של הערך הגבוהה יותר מביניהן תוך 'query ועל 'queryעל
צמצום הטקסט שבין כל זוג ' עוקבים.
שעבורם W1,W2,…,Wnאנו החלטנו למצוא את המשקולות פו' השגיאה הריבועית היא מינימלית.
ישנו אלגוריתם יעיל המוצא את המשקולות כאשר השגיאה היא .(Least Squares(במינימום ריבועים
ולכן המטרה הייתה למצוא את הקבוצות שנותנות את התוצאה הטובה ביותר לפו' השגיאה. מציאת הקבוצות בוצעה ע"י
ניסיון וטעיה.
2 2( ( ) 0) ( ( ) 1)query good query bad
E f query f query
כמו כן הוחלט לתת יחס שונה לשגיאות על הקלטים הטובים לעומת הרעים ולכן חושבה:
כמו כן בגלל שכמות הקלטים הטובים (חוקיים( אינה זהה ( אז בוצע סוג של נרמול. SQLIלרעים (התקפות
2 2( ( ) 0) (1 ) ( ( ) 1)query good query bad
E w f query w f query
להדגמת התוצאות אנו נשתמש בכמה קלטים. שורות, שמתארות סיפור.2800קלט תקין א - זהו קלט בעל שורות של קלטים שונים, 17000קלט תקין ב - קלט בעל
הודעות פורומים, סיפורים קצרים, ועוד סוגי טקסט. שורות של טקסטים מוזרים, המכילים 40קלט תקין ג - קלט בעל
תאריכים, אותיות לא אנגליות, וכולה. שורות של אוסף נרחב של 1200קלט התקפי א - קלט בעל
התקפות. מצאנו חלק באינטרנט וחלק קיבלנו ממערכת Imperva.
שורות של התקפות שנוצרו 12000קלט התקפי ב - קלט בעל . הרבה מהשורות דומים מעוד.Sqlmapע"י
שורות של התקפות לא 130קלט התקפי ג - קלט בעל סטנדרטיות.
קלט תקין ב, קלט התקפי בלמידה:קלט תקין ב, קלט התקפי בניסוי:
, נקבל1.0אם נשתמש בסף False positive / False negative = 0.1%, 3%
אין חשיבות מיוחדת 5חשיבות פי
בתוך המערכת, ולכן אנו מקבלים false positiveהגדלנו את החשיבות של הקטנת . זה כמובן בא בחשבון ה 0.2שכמעט כל הקלטים הטובים קיבלו קבוע סיכון קטן מ
false negatives.
2גודל מקסימלי 3גודל מקסימלי
הפעם המערכת השתמשה גם בצירופים של שלישיות של פונקציות מזהים בנוסף לזוגות. אפשר לראות שאין כל כך שיפור, אך יתכן שעבור אוספים של קלטים יותר
גדולים, זה אכן ישפר את התוצאות.
קלט תקין א, קלט התקפי אלמידה:קלט תקין א, קלט התקפי אניסוי:
, נקבל1.0אם נשתמש בסף False positive / False negative = 0.1%, 8%
קלט תקין ב, קלט התקפי אלמידה:קלט תקין ב, קלט התקפי אניסוי:
, נקבל1.0אם נשתמש בסף False positive / False negative = 0.1%, 10%
קלט תקין ב, קלט התקפי א, שורות זוגיותלמידה:קלט תקין ב, קלט התקפי א, שורות אי-זוגיותניסוי:
, נקבל1.0אם נשתמש בסף False positive / False negative = 0.1%, 9%
קלט תקין א, קלט התקפי אלמידה:קלט תקין ב, קלט התקפי בניסוי:
, נקבל1.0אם נשתמש בסף False positive / False negative = 0.1%, 1%
קלט תקין ב, קלט התקפי אלמידה:קלט תקין א, קלט התקפי בניסוי:
, נקבל1.0אם נשתמש בסף False positive / False negative = 0.1%, 2%
קלט תקין ג, קלט התקפי גלמידה:קלט תקין ג, קלט התקפי גניסוי:
התוצאות גרועות מפני שזה אוסף קטן של קלטים לא סטנדרטים, וההתקפות מכילים שורות כמו “5.0 ,id=4.2”כרגע המערכת לא בודק עבור קלטים כאלו .
קלט תקין א, קלט התקפי אלמידה:קלט תקין ג, קלט התקפי גניסוי:
,המסווג פועל עבור רוב הקלטים בצורה טובהאולם ישנם מקרים בעיתיים שעבורם התוצאה
פחות טובה. אלו הם ההתקפות הקצרות והטקסטים המאוד ארוכים המכילים תווים
מיוחדים, בעיקר '. בעתיד אפשר לשפר את המערכת ע"י משחק
עם הקבוצות, הוספת פו' חדשות, או שינוי שיטת פו' הסיווג