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

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

מבוא למדעי המחשב לתעשייה וניהול
1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
היכרות עם אקסל 1. 2 נושאי המפגש היכרות עם אקסל – אלכסוני הקסם שימושים בהוראה: מחשבון סודי ופעילות לחנוכה שימושים נוספים: ממוצע.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
Bar Ilan Library System מערך הספריות והמידע של אוניברסיטת בר אילן הספרייה המרכזית ע”ש וורצוויילר. מדור ההדרכה חיפוש מתקדם.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
ממשק המשתמש שימושיות או בעצם תכליפאניות?. ISO9241 Web usability is the extent to which a web site enables users, in a given context of use, to achieve.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
חלון הפקודות מיועד לבצע פעולה אחת בכל פעם. כיצד אפשר לבצע רשימת פקודות או אפליקציות מורכבות ?
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
1 חישוב ואופטימיזציה של שאילתות חלק 2 Query Evaluation and Optimization Part 2.
ספריה וירטואלית בטכנולוגית J2EE הטכניון – מכון טכנולוגי לישראל הפקולטה להנדסת חשמל המעבדה למערכות תוכנה עזרן אייל טרבלסי אורדן סמסטר חורף תשס " ד מנחה.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Created by Dalia Censor, December Web2.0יישומים במאגרי מידע Web2 מכלול הגישות העדכניות לשימוש בטכנולוגיות רשת ובעצוב הרשת, המכוונות להגברת היצירתיות,
תהליכים  מהו תהליך ?  מבני הנתונים לניהול תהליכים.  החלפת הקשר.  ניהול תהליכים ע " י מערכת ההפעלה.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
Remember Remember The 5 th of November. תרגול 2 קובץ סדרתי.
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
Created by Dalia Censor, December העברת רשימת ציטוטים ממאגר ל- RefWorks שתי דרכים להעברת רשומות ממאגר ל- RefWorks : יצוא ישיר ל- RefWorks המאגרים:
עקרון ההכלה וההדחה.
תכנות תרגול 4 שבוע : לולאות for לולאות for for (counter=1 ;counter
מבוא למדעי המחשב, סמסטר א ', תשע " א תרגול מס ' 1 נושאים  הכרת הקורס  פסאודו - קוד / אלגוריתם 1.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
מתמטיקה בדידה תרגול 2.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #3 Internet Control Message Protocol (ICMP)
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
אביב תשס " ה JCT תיכון תוכנה ד " ר ר ' גלנט / י ' לויאןכל הזכויות שמורות 1 פרק 7 ISP דוגמא נוספת.
Text to speech In Mobile Phones איתי לוי. הקדמה שימוש בהודעות טקסט על המכשירים הסלולארים היא דרך תקשורת מאוד פופולארית בימינו אשר משתמשים בה למטרות רבות,
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
מאגר הספרים האלקטרוניים של האוניברסיטה הפתוחה מצגת הדרכה הספריות הטכנולוגיות, ביה"ס הגבוה לטכנולוגיה.
Interpolation Functions in Matlab By Dmitriy Katsif.
- אמיר רובינשטיין מיונים - Sorting משפט : חסם תחתון על מיון ( המבוסס על השוואות בלבד ) של n מפתחות הינו Ω(nlogn) במקרה הגרוע ובממוצע. ניתן לפעמים.
Presentation by Gil Perry Supervised by Amos Fiat 1.
Practice session 3 תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי ) שיטות חישוב : Applicative & Normal Evaluation Partial Evaluation.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 Control (Part II)
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
Practice session 3.  תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי )  שיטות חישוב : Applicative & Normal Evaluation.
Population genetics גנים באוכלוסיות a population is a localized group of individuals belonging to the same species.
תכנות מכוון עצמים ושפת ++C וויסאם חלילי. TODAY TOPICS: 1. Function Overloading & Default Parameters 2. Arguments By Reference 3. Multiple #include’s 4.
מבנים קרן כליף. ביחידה זו נלמד :  מהו מבנה (struct)  איתחול מבנה  השמת מבנים  השוואת מבנים  העברת מבנה לפונקציה  מבנה בתוך מבנה  מערך של מבנים.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
קשר לוגי : סיבה ותוצאה. במשפט – דוגמות קלות בגלל הגשם החלטנו לא לנסוע לטיול לחיפה. הרצון שלי להצליח הניע אותי להשקיע בלימודים. ציפורים נודדות בין יבשות.
פס על כל העיר נורית זרחי.
Programming Arrays.
Formal Specifications for Complex Systems (236368) Tutorial #1
מבוא למדעי המחשב סיבוכיות.
עבודה עם נתונים באמצעות ADO.NET
מבוא ל Maven אליהו חלסצ'י תכנות מתקדם תרגול מספר 3
Marina Kogan Sadetsky –
חדוה מילוא, ספריה מכון ויצמן למדע
בחירת חומר גלם כתב: עמרי שרון.
תזכורת על מה דיברנו שיעור שעבר? בנינו אתר אינטרנט עם כותרות
עבודה מול שרת המצגות – Win XP
Shell Scripts בסביבת UNIX
Computer Programming תרגול 3 Summer 2016
Engineering Programming A
Presentation transcript:

מערכת לוידוא חוקיות הקלט של שדות טקסט חופשיים רן מור, הגר עופר מנחים : ד " ר גרא וייס, מר רפי ליפקין, מר נדב אטיאס

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

מטרת הפרויקט היא מניעת התקפות כאלו באפליקציות מבוססות רשת (web), ע " י אימות הטקסט המוזן לשדה הטקסט החופשי, בטרם הוא נכנס למערכת. אם הטקסט המוזן מאושר כחוקי לאחר הבדיקה, הוא מועבר הלאה, אחרת הוא נדחה ואינו מגיע כלל למערכת.

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

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

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

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

בשיטה זו, מנוע הלימוד ילמד מטקסט המכיל קלטים חוקיים בלבד. בתהליך למידת הטקסט, יווצר וקטור של מילות הטקסט הנלמד. לדוגמא, אם הטקסט מכיל את המילה cat 3 פעמים, את המילה dog פעם אחת, ואת המילה mouse 4 פעמים, ייווצר הוקטור (3,1,4) V text =. כעת יחושב ה " גודל " של הוקטור באמצעות הנוסחא √ ||V text || = ונקבל את התוצאה

כעת יש לחשב, עד כמה " מתאים " טקסט המוזן לשדה טקסט חופשי, אל הטקסט שנלמד. החישוב יתבצע באופן הבא : נניח, למשל, כי הוזן הטקסט mouse. ייווצר הוקטור V input = (0,0,1). באותו אופן יחושב כעת ה " גודל " של הוקטור, ותתקבל התוצאה 1. כעת תחושב ההתאמה ביניהם ע " י (V text * V input ) ÷ (||V text || * ||V input ||), (0*3) + (0*1) + (1*4) 1 * , ונקבל מדד התאמה ככל שמדד ההתאמה קרוב יותר ל - 1, כך ההתאמה גדולה יותר.

בשיטה זו, מנוע הלימוד ילמד מטקסט המכיל קלטים חוקיים, ומטקסט המכיל קלטים שאינם חוקיים. בתהליך למידת הטקסט, עבוד כל מילה בכל אחד מן הטקסטים, יספרו מספר הופעות המילה בטקסט. זאת על מנת לחשב את סיכוי הופעת המילה בטקסט חוקי / טקסט לא חוקי. למשל, אם המילה cat מופיע בטקסט המכיל קלטים חוקיים 3 פעמים, ובטקסט זה יש סה " כ 5 מילים, הסיכוי שהמילה cat תופיע בקלט חוקי הוא 3/5.

כעת יתבצע החישוב : i p(w i |valid)∏p(valid) * i p(w i |not valid)∏p(not valid) * כאשר p(valid) – ההסתברות לקבלת טקסט חוקי p(not valid) – ההסתברות לקבלת טקסט לא חוקי p(wi|valid) – ההסתברות שהמילה wi תופיע בטקסט חוקי p(wi|not valid) – ההסתברות שהמילה wi תופיע בטקסט לא חוקי על התוצאה המתקבלת נבצע פעולת ln, ואם תוצאת החישוב גדולה מ - 0 הטקסט המוזן הוא חוקי, אחרת הוא אינו חוקי.

כעת ניתן להשתמש בנתונים שבמאגר המידע לשם בדיקת חוקיות הקלט שהוזן. ניתן לעשות זאת בשתי דרכים : לחיצה על כפתור Validate Categories Online, תציג בפני המשתמש מסך בו עליו לבחור את הקטגוריה הרצויה ולהזין את הטקסט שעליו הוא מבקש לבצע אימות, והמערכת תודיע האם הטקסט הוא חוקי או לא. ראשית על המשתמש לייבא את הפרויקט שלנו אל תוך הפרויקט עליו הוא עובד. לאחר מכן, לחיצה על כפתור Export DB To Other Project, תייצא את מאגר המידע שלנו אל הפרויקט החיצוני. כעת כל שנותר למשתמש לבצע הוא קריאה לפונקציה מובנית validate, המקבלת כקלט את הקטגוריה והטקסט הנבדק, ומחזירה האם הקלט הוא חוקי או לא.

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