1 / 19

סיווג התקפות מסוג SQL INJECTION

סיווג התקפות מסוג SQL INJECTION. מספר קורס: 236349 מגישים : מיכאלביץ לירון lironmich@gmail.com רויטמן יוסף yosiroitman@gmail.com מנחים : עמיחי שולמן תאריך הגשה: 09/2013. הקדמה. מטרת הפרויקט : סיווג התקפות מסוג SQL Injection ולמידה של טכניקות סיווג.

sibyl
Télécharger la présentation

סיווג התקפות מסוג SQL INJECTION

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. סיווג התקפות מסוג SQL INJECTION מספר קורס: 236349 מגישים: מיכאלביץ לירון lironmich@gmail.com רויטמן יוסף yosiroitman@gmail.com מנחים: עמיחי שולמן תאריך הגשה: 09/2013

  2. הקדמה מטרת הפרויקט: סיווג התקפות מסוג SQL Injection ולמידה של טכניקות סיווג. קודם כל ביצענו איסוף קלטים של התקפות וקלטים חוקיים לצורך בניית המסווג, ולאחר מכן בנינו את המסווג סביבת פיתוח: Eclipse Windows 7/XP שפת תכנות: Python

  3. איסוף הקלטים את הקלטים מצאנו באמצעות שלושה מקורות: 1. בעזרתו של עמיחי שולמן ו-Imperva. קיבלנו מהם גישה למסדי נתונים המכילים בין היתר התקפות מסוג SQLI. 2. מצאנו קלטים באינטרנט. את החוקיים לקחנו מן האתר - http://www.textfiles.com/stories/. 3. הקמנו אתר רגיש ל-SQLI שתקפנו אותו באמצעות תוכנה חופשית הנקראת sqlmap.

  4. המסווג המסווג מקבל שאילתה ומחזיר מספר בין 0 ל-1. 0 מציין קלט חוקי ו-1 התקפה מסוג SQLI. • שלב א – הגדרת קבוצות: הגדרנו קבוצות לפי סוגים, ישנם קבוצות המכילות מילים מן השפה שהן נפוצות, חלקן נדירות, קבוצות המכילות מילים המהוות המרה, סימנים מיוחדים \ מתמטיים וכדומה. • שלב ב – כתיבת פונקציות המקבלות קלט ומחשבות את גודל הקבוצה. אנחנו בחרנו לעשות שגודל הקבוצה יהיה כמות המילים\הסימנים. • שלב ג – הגדרת פו' הסיווג: בהינתן n קבוצות G1,G2,…,Gn בחרנו את פו' הסיווג F להיות: F)W1,W2,…,Wn) =

  5. כמו כן לשיפור המסווג ביצענו: • התעלמות מהערות בניתוח השאילתה כשניתן. • הרצה של פו' הסיווג פעמיים: על query ועל 'query'ולקיחה של הערך הגבוהה יותר מביניהן תוך צמצום הטקסט שבין כל זוג ' עוקבים.

  6. מציאת המשקולות אנו החלטנו למצוא את המשקולות W1,W2,…,Wn שעבורם פו' השגיאה הריבועית היא מינימלית. ישנו אלגוריתם יעיל המוצא את המשקולות כאשר השגיאה היא במינימום ריבועים (Least Squares). ולכן המטרה הייתה למצוא את הקבוצות שנותנות את התוצאה הטובה ביותר לפו' השגיאה. מציאת הקבוצות בוצעה ע"י ניסיון וטעיה.

  7. כמו כן הוחלט לתת יחס שונה לשגיאות על הקלטים הטובים לעומת הרעים ולכן חושבה: כמו כן בגלל שכמות הקלטים הטובים (חוקיים) אינה זהה לרעים (התקפות SQLI) אז בוצע סוג של נרמול.

  8. תוצאות להדגמת התוצאות אנו נשתמש בכמה קלטים. • קלט תקין א - זהו קלט בעל 2800 שורות, שמתארות סיפור. • קלט תקין ב - קלט בעל 17000 שורות של קלטים שונים, הודעות פורומים, סיפורים קצרים, ועוד סוגי טקסט. • קלט תקין ג - קלט בעל 40 שורות של טקסטים מוזרים, המכילים תאריכים, אותיות לא אנגליות, וכולה. • קלט התקפי א - קלט בעל 1200 שורות של אוסף נרחב של התקפות. מצאנו חלק באינטרנט וחלק קיבלנו ממערכת Imperva. • קלט התקפי ב - קלט בעל 12000 שורות של התקפות שנוצרו ע"י Sqlmap. הרבה מהשורות דומים מעוד. • קלט התקפי ג - קלט בעל 130 שורות של התקפות לא סטנדרטיות.

  9. למידה: קלט תקין ב, קלט התקפי ב ניסוי: קלט תקין ב, קלט התקפי ב אם נשתמש בסף 1.0, נקבל False positive / False negative = 0.1%, 3%

  10. העלת חשיבות false positives אין חשיבות מיוחדת חשיבות פי 5 הגדלנו את החשיבות של הקטנת false positive בתוך המערכת, ולכן אנו מקבלים שכמעט כל הקלטים הטובים קיבלו קבוע סיכון קטן מ 0.2. זה כמובן בא בחשבון ה false negatives.

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

  12. למידה: קלט תקין א, קלט התקפי א ניסוי: קלט תקין א, קלט התקפי א אם נשתמש בסף 1.0, נקבל False positive / False negative = 0.1%, 8%

  13. למידה: קלט תקין ב, קלט התקפי א ניסוי: קלט תקין ב, קלט התקפי א אם נשתמש בסף 1.0, נקבל False positive / False negative = 0.1%, 10%

  14. למידה: קלט תקין ב, קלט התקפי א, שורות זוגיות ניסוי: קלט תקין ב, קלט התקפי א, שורות אי-זוגיות אם נשתמש בסף 1.0, נקבל False positive / False negative = 0.1%, 9%

  15. למידה: קלט תקין א, קלט התקפי א ניסוי: קלט תקין ב, קלט התקפי ב אם נשתמש בסף 1.0, נקבל False positive / False negative = 0.1%, 1%

  16. למידה: קלט תקין ב, קלט התקפי א ניסוי: קלט תקין א, קלט התקפי ב אם נשתמש בסף 1.0, נקבל False positive / False negative = 0.1%, 2%

  17. למידה: קלט תקין ג, קלט התקפי ג ניסוי: קלט תקין ג, קלט התקפי ג התוצאות גרועות מפני שזה אוסף קטן של קלטים לא סטנדרטים, וההתקפות מכילים שורות כמו “5.0, id=4.2”. כרגע המערכת לא בודק עבור קלטים כאלו

  18. למידה: קלט תקין א, קלט התקפי א ניסוי: קלט תקין ג, קלט התקפי ג

  19. סיכום • המסווג פועל עבור רוב הקלטים בצורה טובה, אולם ישנם מקרים בעיתיים שעבורם התוצאה פחות טובה. אלו הם ההתקפות הקצרות והטקסטים המאוד ארוכים המכילים תווים מיוחדים, בעיקר '. • בעתיד אפשר לשפר את המערכת ע"י משחק עם הקבוצות, הוספת פו' חדשות, או שינוי שיטת פו' הסיווג

More Related