 תודה רבה אבי. שובים אותי בטוח? חשבתי חיים קלים יותר אבל לא נורא. טוב, כן אז היום בעצם אנחנו מדבר על שימוש בעצם את טכנולוגיה של IS, של אינטראקטיב, Runtime Technology, תוך כדי שימוש בעצם בביצוע בעצם של מניו על פלנטרשן טסט, או קודרביו. קצת בעצם עליי כמו שאבי אמר, כרגע מוביל את הפיתוח בסיקר, מוצר של סינופסיס, קצת יותר משמונה עשרה שנים בעצם בתחום של הפיתוח וסקיורטי, בעבר גם כן ניסיון באן זון פנטרשן טסטינג, מודיעין וחו, לא על זה באנו בעצם לדבר היום. אג'נדה. אוקיי, בגדול, אנחנו בעצם נדבר קצת קודם כל על למה בכלל אנחנו צריכים להשתמש ברנטיים, או מרע בעצם במה שאנחנו עושים היום, בהקשר של חלק מהדזיין רביו, או פנטרשן טסטינג. נדבר אחרי זה קצת גם כן לגבי הרעיון, זאת אומרת מה הרעיון שעומד מאחורי רנטיים, שימוש ברנטיים בקוד ריוויו או פייטי, קצת לגבי אימפלמנטיישן, איך אנחנו בעצם בפועל עושים את זה, וגם כן איזשהו דמו קצר. אז קודם כל מה רע בעצם במה שאנחנו עושים היום בהקשר של קוד ריוויו או פנטרשן טסטינג. קצת להכיר אותכם, קאומים פה בעצם פנטרשן טסטרס או אקס פנטרשן טסטרס לא רע, וכמה בעצם השתמשים בשירותים של פנטרשטינג. לא רע. זה מאוד רלוונטי בעצם עבורכם. למה בעצם? מה בעצם רע במה שאנחנו עושים היום? אז בעצם יש יותר מדי טוז, מה הכוונה? יש בעצם יותר מדי שורות קוד, פחות מדי זמן, יש בעצם פרויקטים שהם מקבלים מאות אלפי מיליוני, באופליקציות, פרויקטים שיכולים להיות בין שבוע לחודש, וזה עדיין לא מספיק, כי זה בעצם בן אדם, הוא צריך לעבור עכשיו על השורות שם. אם אנחנו בעצם מדברים על פנטרשן טסטינג, אז אנחנו בעצם מדברים על תומניאטריפוינס, פייג'ז, פרמטרס. יש לנו בעצם עכשיו דפים שמשתמשים בעמון-עמון פרמטרים, עמון-עמון בעצם דברים שנשתכים לסבר סייד. יש בעצם עמון פרמטרס, קחו בעצם מדוגמה דף מסוים שמכיל עכשיו בין חמישים למה פרמטרים. בטור פנטרשן טסטר, או בטור מישהו שעושה קודריוו, מה אתם בעצם עושים קודם? אתם תוקפים, מנסים בעצם עכשיו להזין גרש בכל אחד מהפרמטרים, יש כל כך הרבה סוגי עתק וקטורס, יש לנו בעצם סיכול אינג'אקשן, אלדאפ אינג'אקשן, איקס פס אינג'אקשן, איקס מל אינג'אקשן, דייקטורי טרוורסה, אפשר להמשיך ככה המון דייס אינג'אקשן. אז ביקרון, מה שאנחנו בעצם באים לעשות כאן זה לחשוב איך אנחנו תוקפים את הבעיה הזו, בעצם איך אנחנו לוקחים את הסקופ הגדול הזה שיש לנו בפיטיאו, בקודריוו, ובעצם מנסים לחשוב איך אנחנו עושים את זה בצורה הרבה יותר יעילה, תוך כדי שימוש בעצם בטכנולוגיות של רנד טיימנליסיס. עוד דברים בעצם שאני רוצה להזכיר שכאן זה בעצם שיש המון המון פרמוקים חדשים יש המון טרט פרדי קומפוננס היום כל שניב החמישי יוצא בעצם איזשהו פרמוק שבעצם מסתפק יכולת כזו אחרת יש המון המון אופנסורס קומפוננס באפליקציות שאנחנו בעצם משתמשים בהם ביום-יום זה לא משהו חדש, בתור קודריוו, מישהו שבעצם בא לבצע את הקודריוו, אני עכשיו צריך להכיר את הטכנולוג, צריך להכיר את הפרמוק להבין בעצם מה הקונפיגורציה שם איך בעצם כל דבר מתמפה אחד לשני יש המון פעמים שיש קוד דינמי שמדבצע מחורי הכליים זה משהו שמאוד מאוד מקשה על טכניקות של קודריוו ופינט רשנט טסטינג כמובן שבעצם מהכמות הגדולה של הדפים והפרמטרים ועוד לפעמידה בעצם זה הופך את הכל להרבה יותר מורכה והרבה יותר קשה בעצם לעקוב אחר פלור הזה של האפליקציה אז מה בעצם המוטיבציה כאן כמו שאמרנו בעצם המוטיבציה כאן זה בואו לא נלחם בתכנות רוח בואו לרדף אחר רוחות בואו נתקוף ובעצם נתפקש על דברים שקיימים באפליקציה ונבטר מראש על וקטורים שלא רלוונטים בכלל לאפליקציה אוקיי? מה שאנחנו בעצם נזכיר כאן היום אנחנו בעצם נראה איך אפשר לגיד של פנט רשנטס או קוד רביו זה בעצם שילוב שבו יש מין אדם שאושב מאחורה מבצע את הפנט רשנטסטר את הפנט רשנטסטינג או את הקוד רביו והוא משתמש בעצם בראנט טיינט טקנולגי כדי בעצם להצימת היכולות שלו אוקיי? כלומר לא לבצע דברים בראש שלא קיימים באפליקציה אם אין עסקיול באפליקציה לא יש המסקיול אינג'קשן נכון? אז זה בתור דבר ראשון זה נוסף אז כמו שאמרנו, יש המון המון פרי מורכים אנחנו בעצם אינו רוצים להפוך אותם לשקופים בינינו אנחנו בעצם רוצים להפוך את הדבר הזה למשהו שיש עקוף מבחינתנו זאת אומרת אנחנו נגיע לעשות את הפנט רשנט טייסטינג את הקוד רביו לא בעצם נתקל בכל המכשלות האלה שבעצם מציבים לנו כל ההפרי מורכים החדשים האלו כמובן להתמקד רק על רלוונד קוד סקשנס ודבר דבר מאוד חשוב בעצם התפוקה בעצם evaluu שאתם מקבלים עבור הכаяв שאתםving בתור כאלה שאזמינו בינט רשנט טייסטר הוא הרבה יותר גדול אתם בעצם צריכים לבוא לגיד למי שאתם מזמינים בתור פנט רשן טייסטר תשתמש ברנט тайים בינטראקטיב פנט רשנט טייסטינג למה כי אתם בעצם תבחו הרבה יותר כ noss מיזו למה כי בעצם וארבי אותר other יעיל הוא לא בעצם אז במה זמן על דברים שלאקיים עם אפליקציה לטרשנטסטר אתה כמובן תפיק הרבה הרבה יותר, בזמן שיש לך, שלך זמן מאוד מאוד קצוב, אפליקציה ענקית, אין אותם בעצם לבדוק דברים שלוקי עמים שם. אז בעצם מה הרעיון מאחורי הפתרון הזה? עכשיו, זה בעיקרון פתרון מאוד מאוד פשוט, זה לא משהו שהוא מסובך, זה משהו שזה כלים שבעצם כולנו מכירים היום-יום, וזה פשוט להשתמש בהם בשביל להציעים את היכולות של אותה בדיקה, אותה פנטרשנטסטר, אותו קוד ריו. מה בעצם הקלים האלו? אז הקלים האלו בעצם זה דיבאגינג טכניקס ואינסטרומנטאישן, אוקיי? פה אני בעצם עסקיר לב דיבאגינג טכניקס את פרוויידר לבל, תכף בעצם ניגה בזה ונסביר למה בעצם פרוויידר לבל, למה זה בעצם חשוב. כמה פה בעצם עבדו עם דיבאגר בעברם? צוין? הרוב, אתם מכירים בעצם איך דיבאגר עובד? זה מאוד פשוט, קונספט די הדוע. כמעט כל מי שעשה כי פעם בפיתוח, השתמש בדיבאגר. אינסטרומנטאישן, יש פה אנשים שמכירים אינסטרומנטאישן, יודעים מה זה אומר? פחות, אבל זה בסדר. אז אני רוצה קצת לדבר איתכם, לא ליבה אל מהשקף, זה לא מה שאנחנו בעצם נצלול לעומק ונתחיל לעבור פה על כל בית קוד אינסטרקשן. אני רוצה לדבר איתכם קצת מבחינת ג'אבה, אוקיי? כי ג'אבה זה בעצם משהו שהוא מאוד מאוד מוכר עלי כולם, מאוד קומון כולם, בעצם מכירים ג'אבה, ומאוד קל בעצם להסביר את הקונספט הזה כשמדובר בג'אבה. כמובן שהקונספט הזה רלוונטי גם לספות אחרות, לדוטנט, נוג'אס וכולי. מבחינת ג'אבה, אז כמו שאנחנו בעצם יודעים, ג'אבה בעצם יש מה שנקרא אינטרמידיאת לינגויץ', אוקיי? יש בעצם את הג'אבה בית קוד. כלומר, כל הספות האלה שהם מוססות על ג'אבה, סקאלה, ג'ארו, בי-ג'י פאיטון וכולי, כולם בעצם התורגמות למה שנקרא בית קוד, אוקיי? ואת הבית קוד יש בעצם את ה'GVM של לוקח, מתארגם את הדבר הזה למשין קוד. מה שאנחנו רואים בשקף כאן, זה בסך הכל כמה שורות בעצם בג'אבה. אנחנו רואים בעצם איך נראה הבית קוד, אתם לא צריכים להכיר את זה, וקצת איך זה נרשם בדיסק, שזה גם כן פחות מעניין, זה רק כדי להראות לכם מה הקוונה בבית קוד. אוקיי, אז מה שאנחנו בעצם רואים פה, זה משהו מאוד מאוד חשוב, אנחנו בעצם מתמקד קצת בשקף הזה יותר משקפים אחרים. אנחנו בעצם רואים מצד שמאל, איזשהו תסתד אפליקאיישן, איזושהי אפליקציה. אני דרך אף יעשה זומין כדי שתראו את הקוד, יש פה בעצם איזשהו קוד, שבעצם מבצע קריאת אקזקיוט, אסקיואל האקזקיוט. עכשיו שוב, אנחנו בעצם מדברים פה על SQL Injection, זה נכון לגבי כל פרצה של Injection, דירת רוורסל וכולי. זה משהו שיכול מאוד מאוד שימושי עבור פנטסט או קוד רביו. אני רוצה רגע לעשות זומין כדי לראות לכם את הקוד. לא נורא. מה שבעצם אנחנו רואים פה, זה סך הכל, למה לתם רואים איזשהו שרשור של sql, יש פה בעצם String Concatenation, שבעצם משרשר כל מיני חלקים בטקסט לאסקיואל אחד, ולאחר מכן יש בעצם את הjsaexecute, כל הקוד הזה בעצם custom code. זה בעצם אומר שuser רשם את הקוד הזה, זה קוד של האפליקציה. מה שבעצם אנחנו אומרים, זה שלא משנה אם יש בעצם קוד באפליקציה שפונה לדת הבאיס, פונה לאלדה, פונה בעצם לכל נכס שאותו אנחנו בעצם רותים מתקוף, מוליינים מתקוף, כמו File System וכולי. אנחנו בעצם אומרים שכולם בעצם חייבים לעבור דרך מה שנקרא Providers. מה הכוונה בפרוידרים, הכוונה בעצם אם אני עכשיו בדוגמה הזו עובד עם MySQL Database, אני בעצם חייב לעבוד עם Provider של MySQL. כדי לעבוד בעצם עם Provider של MySQL, עם בעצם מוסיף על עב-reference, בסופו של דבר, הכריאה הזו בעצם הקוד execution יגיע ל MySQL Statement Execute Query. מה בעצם אנחנו מרוויחים מזה? אז בתור penetration testers, אם בעצם הייתנו בעצם את האכולת לשים פה איזשהו breakpoint, ולעבין מה כל הטרפיק שעובר דרך הקריאות האלו לאגזקיט קויירי, ומה כל המידע שעובר שם, היינו בעצם יכולים להבין אם כשאנחנו עושים לוגין פשוט באפליקציה, יש למשל שימוש באס-קיול, בצורה מאוד מאוד פשוטה. כל מה שאנחנו עושים, זה מתחברים לאפליקציה, תכף גם כנראה איך, מתחברים לאפליקציה, שמים בעצם breakpointים שאותם, הברקפונטים האלה הם בעצם מוגדרים מראש. ההתרון בזה שזה בעצם פרוביידרים, הוא בעצם שהקוד הזה, הוא לא משתנה יותר מדי. זה הפרוביידרים, זה לא הקוד של האפליקציה. כלומר, אם עכשיו אני מכיל סט של 브�רקפונטים, עבור MySQL, עבור Oracle, עבור MSSQL, וכולי, LDAP, file system, אני מכיל בעצם איזשהו פקיג' של כל הברקפונטים האלה, ואני בעצם משתמש בהם, שם אותם שם מאוד מאוד באפליקציה, אני בעצם מתפוס כל אקטיביטי שמגיע בעצם האפליקציה לכיוון הזה. אוקיי, זה ברור? שאלות עד כאן? אוקיי, זו שאלה טובה. מה שבעצם הוא שאל כאן, זה אם אנחנו מניחים שאנחנו יודעים להגיע לכל מקודות באפליקציה. עכשיו, בתור Penetration Tester, אתה בעצם מקבל בדרך כלל איזשהו לינק לאפליקציה, נכון? ואיזשהו סקופ לבדיקה. כלומר, אתה גם ככה צריך לעבור על הסקופ של הבדיקה, ואת צריך בעצם להגיע בכל חלק וחלק באפליקציה. כאן עלי גבי Cod review. זאת אומרת, אם יש לך איזשהו Cod review, אתה בעצם מקבל איזשהו Cod section, ואת אמור לדעת בעצם מהסקופ שלך, אוקיי? כלומר, יש פה איזושהי ענחה שאתה כן יודע לתפל את האתר וכן בעצם יודע לגוע בכל הנקודות, וזה נכון, אוקיי? עוד שאלות לפני שם פשיחים הלאה? אוקיי. אז רק אני רוצה שוב פעם לסכם מה בעצם עד כאן. כל מה שאנחנו בעצם אומרים זה שאנחנו בעצם מגיעים לבצע את הפיטי או את Cod review. לפני שאנחנו בעצם ממש מבצעים את הפינת רשנטסטר, אנחנו בעצם מתחברים לאפליקציה מנטרים אותה, שמים בעצם סט של ברק פוינטים כדי לתפוס בעצם את כל התעבורה שבעצם תהיה עבור פרווידרים של נחסים יסוימים, כמו שובדת הבאיסים, פיילסיסטם, אלדאפ וכולי, וברגע שאנחנו בעצם מפעילים את האפליקציה, אנחנו מקבלים אינדיקציה, האם ייש פעילות כזאת באופליקציה או לא. עכשיו, כמו שאנחנו בעצם רואים בדוגמה הזו, לא רק שאנחנו גם יודעים להגיד שיש בעצם פעילות ולהבין מה המשמעות של כל החיבורים פה של הפלוסים והשרשורים של הסטרינגים. אנחנו בעצם כבר רואים משאירות את הסטרינג שנשלח לדת הבס עצמו. כמובן, כחלק בעצם היתרונות של הרנטיים, אנחנו גם כן יודעים לעשות טרייס הביליות, זאת אומרת, טרייס בק. אם אנחנו עכשיו יש לנו היט על אקזקיוט כוארי, אנחנו גם כן יודעים להסתכל בסטקט טרייס ולהלות למעלה עד לשלב של ה-user-code. כלומר, לא רק ארווחנו את זה, בעצם שאנחנו יודעים שיש טרפיק שמעניין אותנו. יש בעצם, בזמן הלוגין, יש בעצם SQL. אני יודע ששווה לי כן לבדוק שם SQL Injection. אנחנו יודעים בוודאות, יש פה SQL. אין לי מה לבטר על הפרמטרים האלה. לא רק זה, אני גם יודע להגיד איך ה-SQL הזה נראה. זאת אומרת, אם אני בעצם יכניס שם איזשהו וליו וראה שהו וליו שלי מופיע פה, למשל יוזרנם, אני רואה שעכשיו אני מזין תמיר בלוגין, ותמיר מופיע כאן בשאלתה. אני יודע שעבליו שלי הגיע מה-pages אל-ה-שאלתה עצמה, אוקיי? זה מעולה. אני לא צריך לנחש עכשיו איך אני בעצם מוקיף מלגנונים מסוימים, אם אני מזריק גרש, אני צריך לעבור איזשהו את נאי-אור מסובך וכולי. בנוסף לזה, מה שאנחנו בעצם מרוויחים פה, זה שוב, אנחנו מסתכלים אחורה ורואים בדיוק מה-code באפליקציה, בקוד של ה-user שמשתמש בעצם בשאלתה הזו. יודעים בעצם מסתכל מסביב, במובן של code review, ולבדוק אם חסירה פה בעצם סניטציה או איזושהי בדיקה אחרת שיכולה למנוע את הדבר הזה, אוקיי? ושוב, מבחינת effort, כבר באתי עם הברקפונטים האלה מברוד מועד, כן, זה מוכן. לא אכנתי שום דבר מיוחד עבור האפליקציה הזו. אני פשוט התחברתי לאפליקציה, תכף נראה איך. עשיתי בעצם set לברקפונט, בין לברקפונט האלה, ונותן לאפליקציה לרוץ, אוקיי? זה כל מה שאני צריך לעשות. ברגע שאני עושה את זה, כבר אני מפיק את הvalue הזה. זו הסיבה שבעצם, מתוך 50 פרמטרים שיש לי בדף, אני יכול בעצם להתמקד בכאלו שהם רלוונטיים, אוקיי? זה חשוב גם בתור Penetration Tester וגם בתור כאלה שהם מזמינים את השירות, זה value שאתם תקבלו מה Penetration Tester או מה code review, וזה בעצם מאוד מאוד מעצים אותו, מאפשר לבר בעצם מתפקס על דברים שקיימים באפליקציה. אני רוצה לדבר, אני לא את Geampoint Instrumentation, אני רוצה אבל כן להזכיר לכם את זה, כי בסוף אנחנו בעצם נדבר על היתרונות וחסרונות שימוש בדיבאגינג, לעומת Instrumentation, אוקיי? יש המון המון כלים היום בשוק, שבעצם משתמשים את אוכלוגיה של automatic debugging, automatic instrumentation, בשביל לבצע בעצם את כל הדבר הזה בצורה אוטומטית. והאיתרון הוא בעצם שלא צריך source code בשביל להשתמש בדבר הזה. זה נכון שזה עוזרי לבצע code review, אני לא צריך את הסורס code של האפליקציה בשביל לבצע את זה, אוקיי? כל מה שאני צריך זה בעצם גישה לאתר שהוא live, שהוא בעצם חי. Instrumentation בעצם אומר שאני עכשיו משנה את הקוד on the fly, כלומר יש לנו בעצם איזשהו קוד מסוים שרץ, בזמן התרגום הזה מהבית קוד להסמבלי, יש לנו בעצם אפשרות לשנות את הקוד ולהזין בעצם כל מיני פעולות שעזרו לנו לנותר את האקטיביטי של המערכת בשלב יותר מאוחר. למשל, במקום לשים Breakpoint by SQL, אני בעצם מבצע פה איזושהי שתילה של פקודה, שבעצם תדווח לכל פעם שיש איזשהו SQL במערכת. אז מה אנחנו בעצם רוצים להפיק מכל התהליך הזה? אנחנו בעצם רוצים לשלוח את tp request, לראות בעצם טרנט עם דאטה, להבין איפה אנחנו בעצם צריכים להתמקד, ואחרי זה גם כן להגיע לline of code, אוקיי? מה בעצם השלבים לביצוע של הדבר הזה? כלומר, איך אנחנו עכשיו מגיעים עם הצעה ושיש לנו איזשהו pt לעשות, איזשהו design review, ואנחנו רוצים להשתמש את הטכנולוגיה הזו, מה בעצם הצעדים שאנחנו צריכים לבצע? אוקיי? אני אדבר כרגע על צעדים שצריך בשביל לבצע שימוש בעצם בדי-באגר. שוב, מאוד מאוד פשוט, יכול מאוד מאוד להקל את החיים בפני טרשן טסטינג. יש בעצם שורה אחת שאנחנו בעצם צריכים להוסיף לג'avm argument במקרה של Java, אוקיי? שורה הזו בעצם הופיעה כאן. זה שורה שבעצם אנחנו צריכים לכלול בסטארט-אפס קריפט של האפליקציה. אם אנחנו בעצם מדברים על y-application, על Tomcat, זה בעצם שורה שמורה להיות בת Tomcat. הפורט שאתם רואים שם, זה פשוט הפורט שאנחנו בעצם נתחבר אליו, נתחבר בעצם באמצעותו, לאפליקציה, ונדבר אותו, remote-ly, אוקיי? מה שזה אומר, זה אומר דבר כזה. אנחנו לא חייבים לבצע את הפרולה הזאת של ה-hybrid penetration testing, או hybrid code review, מתוך המכונה שמריצת את האתר. אנחנו בעצם יכולים לבצע את זה ב-remote-ly, אוקיי? כלומר, אני עם ה-laptop שלי יכול להתחבר remote-ly, כמובן, ולבצע remote debugging לאיזושהי אפליקציה שרצה סרוב ומרוחק. אני כן צריך שהסרובר בעצם יאפשר את התקשורת לפורט שמונה תלפים. אחרי שאני עושה את בעצם את הדבר הזה, יש בעצם המון IDE, זה המון בעצם כלים שיכולים לעזור לי. זה נתר את הטרפיק ואת כל מה שקורה בעצם מתוך האפליקציה. בין היתר כמובן יש לנו פה את Eclipse, Eclipse ובעצם IDE, open source, מאוד מוכר, מאוד אהוב, אפשר בעצם להשתמש בו בשביל להתחבר פשוט לאפליקציה ב-remote ולבדוק בעצם את כל הנתונים שעוברים שם ברנטאים. אוקיי? אז שוב, הפעולה עצמה, שולחים את הרי קוויסט, בודקים בעצם את הרנטאים דאטה ועושים בעצם איזשהו תהידוף, איזשהו פריוטיזיישן לעתק וקטורס שלנו, אוקיי? יש אקטיביטי שמעניין אותנו, אנחנו מתמקד שם, נתקוף שם. אין אקטיביטי, לא נתקוף, אוקיי? אנחנו יכולים בעצם מתוך עשרות, אם לא מאות, של בעצם עתק וקטורס, פשוט לפסול קרוב לחצי מהעתק וקטורס שלנו, ובעצם להיות הרבה הרבה יותר עיילים בזמן, שאנחנו בעצם השקיעים באותו תהליך של הסיכיורדי. Live demo, מה שאני בעצם יראה כאן, זה איזשהו דוגמה, דוגמה בעצם די פשוטה, שמראה בעצם איך אפשר לבצע את הדבר הזה. איך אני בעצם בתור פנט רשנטסטר? יש לי איזשהו עתר, תשוא למעלה, הוא רץ. אני עכשיו רוצה להתחבר אליו רימועות לי, ואני רוצה להשתמש בטכנולוגיה הזו של אינטראקטיב, רנטאים, בעצם אוניטורינג, על מנת בעצם לייעל את התהליך שלי, בתור פנט רשנטסטר. שאלות לפני שאנחנו מתחילים לדמו. דמו קצר, פשוט. אמרנו בעצם כמה צעדים יש לנו כאן. יש לנו בעצם, בתור התחלה, עכשיו שומעים. אמרנו בעצם שיש כמה צעדים בעצם שאנחנו צריכים לבצע. אנחנו מתחיל בעצם לראות את האתר שאותו אנחנו בודקים, אוקיי? מה האתר שאותו אנחנו בודקים, מישהו מכיר את האתר הזה? שמעתי שם רב ספף איפשהו, נכון. מי שלא מכיר, אתה מרולה בן-שמרקינג, לגמרי. מה שאנחנו בעצם רוצים לבצע עכשיו, זה את הקונפיגורת השני באהנו עליה. כלומר, אם עכשיו אני משתמש באוסף ויהם בשביל להריץ את הדבר הזה, אני עכשיו צריך לפתוח את הדיבאג פורט, אוקיי? איך אני עושה את זה? כמו שאמרנו, מגיע לסטארט הפסקית של התומכת, ובסך הכל משרשר לג'יו האופשיינס את האופתלית חבר ברימו דיבאגינג. ברגע שאני בעצם עושה את זה, צריך לבצע ריסטארט לתומכת, אוקיי? כי בעצם שהפורט יהיה למעלה ויהיה עזין. אחרי שאני בעצם מבצע את הפעולה הזו, הפעולה הזו בעצם מאפשרת להסתכל לתוך התומכת, מה שקורה בתוך התומכת. כלומר, אם עכשיו אני אראה לכם את היקליפס, אוקיי? זה היקליפס, אוקיי? אין לי כאן תקוד בחוונה. רציתי להראות לכם שהדבר הזה עובד בלי קוד, לא של הפורוידר, אין לי פה בעצם את הקוד של MYSQL, אין לי פה את הקוד של האתר. כל מה שאני עושה כרגע, זה בעצם מגדיר פרופיל של התחברות מרחוק בדיבאגינג. סך הכל, מגדיר פה remote Java application. לא צריך שורס של שום דבר, אוקיי? מגדיר את ה remote Java application, יש לי פה בעצם את ה-IP של ה-host, שלא טוב יהיהם שהוא ה-host ידלה, מחשב שלי במקרה הזה. יש לי פה בעצם את הפורט שבחרתי, זה בעצם הפורט שמונה תלפים שעזרנו שם. וכל מה שאני בעצם צריך לעשות עכשיו, זה דיבאג פשוט, אוקיי? טכנולוגיה מאוד מאוד פשוטה. אחרי שעשיתי את דבר הזה, בעצם מה שאני שרי לעשות, זה אימפורט לכל הברק פוינט. זה בעצם כל הרשת של הברק פוינטים, שבעצם תתפוס את הפעילות של הפרווידר שלנו, אוקיי? במקרה הזה עשיתי אימפורט. בסוף ההרצאה, מי שרצה לקבל פקג' של ברק פוינטים, מוזמנה שלא אחלה email, זה הופיע בעצם בסוף, אני בעצם משלח לו פשוט פקג' של ברק פוינטים, שיכולים בעצם לעזור למרות להתחיל את התהליך הזה, אוקיי? זה ברק פוינטים בעצם לפרווידרים ידויים כבר. במקרה הזה, יש לנו פה בעצם ברק פוינט על אקזקית קווירי של סיגוול. מה שנשאר לעשות, זה הכל, כי אנחנו עכשיו עברנו בעצם את סטייפים אחד ושתיים, אנחנו מוכנים את זה לדרך. אנחנו עכשיו ניגב שוב פעם לאתר עצמו, ונלחץ פה קליק על הלינק, כמו כל פינט רשנטסטר, יש פה בעצם איזשהו קליינצייט פרוקסי, אנחנו רואים שיש פה בעצם יוזרניה ופאסוורד. נשנה פה בעצם את הפאסוורד, סתם כדי להבין שזה אנחנו עשינו את זה, ונראה מה קרה לנו כאן. מה שקרה כאן, זה בעצם שאנו פה ברק פוינט פיט. כמו שאמרנו, הרשת שלנו בעצם תפסה כאן איזשהו SQL אקטיביטי. מה אנחנו בעצם מפיקים מזה? אנחנו בעצם מפיקים מזה המון, למה המון? בתור התחלה, אנחנו רואים פה בדיוק את השיעילתה. זאת אומרת, זו בדיוק השיעילתה שאנחנו בעצם רוצים לראות. מקודם בעצם בלי היכולת להסתכל את אוכל האפליקציה, הייתי עושה את זה בשיטה של Blackbox. הייתי עכשיו מזין איזשהו ערך, מנחשו אולי הוא מגיע לאס-קואל, ואז מנסה אולי להזין גרשם, ולראות אם אני מקבל אקספשן. אין לנו פה את הניחוש הזה, אין פה מקום בעצם לפולס פוזטיבס לטעויות, אוקיי? מה שאנחנו בעצם רואים פה, זה באמת את האס-קואל שהגיעה לאפליקציה. אני גם כנראה את הטקסט ואליו 2, 1, 1, 1, זה שהזנתי קודם, כדי להבין שזה ערך בעצם שאני שיניתי. בנוסף לדבר הזה, כמו שאמרנו בעצם קודם, יש לנו גם כנפשרות להגיע ל-user-code, כמו שאמר, עכשיו אנחנו נמצאים בפרוביידר-לבל, זה משהו שמשותף לכל האפליקציות, אוקיי? אנחנו עכשיו בעצם רוצים להגיע לפרוביידר-לבל, להסליחה ל-user-level. אנחנו רואים שסך הכל זה מידע שנגיש לי בצורה מאוד מאוד נוכח כאן, אוקיי? ובסטקטריס, זה בדיוק ה-JSP-PAGE, שבעצם משמש אותי בעת הבקשה הזו. יש לי פה בעצם את ה-JSP-PAGE ויש לי בעצם את ה-LINE OF CODE. כמו שאמר, אם אני עכשיו רוצה להגיע לתהליך של Codreview, אני גם יכול להשתמש בזה ויאלכת ולסתפקס בדיוק בשורות הרלוונטיות, בדיוק בג'ס-PAGE, הרלוונטים, הרלוונטי בעצם שמכיל את הקריאה לאקזקיוט סטייטמנט. יותר מזה, זאת אומרת, ברגע שאני רוצה להמשיך את התהליך הזה ונעשות ממש לפרוץ לאפליקציה, ככה אני אעשה משהו סופר פשוט, הגיע חזרה לאפליקציה, login failed, כמובן עזרנו בעצם user-password, דוק שורים, לוחצים פה בעצם click, ברב כמובן תפס את הבקשה הזו, אפשר להגיע לברב ולהגיד טוב, ראיתי עכשיו שאני באמת נמצא בפאסורד, אין אחרי כלום, אני עושה משהו סופר טריוויאלי, סופר טריוויאלי ברמה כזו, שהדבר הזה בעצם אמור לעבור, אתה לוגין, נכון? מאוד מאוד פשוט. עשיתי forward, קיבלתי פה בעצם heat, בה heat עצמו אני יכול לפשוט לבדה, שזה בדיוק מה שעזנתי, בצורה סופר פשוטה, אוקיי? אתם ממש רואים פה את הסלקט, אין פה צורך לנחש, אנחנו רואים שבעצם זה הערך שעזנתי, אני רואה שעזנתי פה את הגרש, את האור, שלושה ושלוש, אני ממשיך בעצם, את זה לאפליקציה לרוץ, יכול בעצם לחזור חזרה, לאו אף ספ, אנחנו רואים אלאו user-1, אוקיי? הצעדים שעשינו הם מאוד מאוד פשוטים, אבל אם שאנחנו מקבלים הוא עצום, אוקיי? אנחנו לא צריכים לנחש יותר אם יש לנו, אלדאפ, דרקטורי, טרווורסל, פייל סיסטם, אקסס, אין מה לנחש, אוקיי? אין מה לקחת עכשיו רשימה של vulnerability, להצליב את זה עם פרמטרים ולעבור פרמטר-פרמטר, אוקיי? זה עבודה מאוד מאוד סיזיפית, שבעצם רק מעט penetration testers, באמת מבצעים אותה, אוקיי? כולם בדרך כלל הולכים לפי תחושת ביתן, כולם בעצם נוקחים פרמטר מסיים, אומרים, אוקיי, אני רוצה אתמקט בזה, כי זה נראה לי משהו שמגיע לדת הביס, אני רוצה אתמקט בזה, כי זה נראה לי משהו שמגיע לאיזשהו פייל סיסטם, אוקיי? והם מתמקדים בעצם שם, וזה בעצם אחד מחסונות הכי גדולים בפרמטר-פרמטר-פרמטר, אוקיי? אם אנחנו בעצם נוקחים את זה, זה הופכת הפרמטר-פרמטר-פרמטר למשהו שהוא מעין hybrid, הוא גם כן מבצע משתמש בעצם מדבונה שלו, אבל הוא גם משתמש בעצם ממה שיש לנו מאחורה בהקשר של הרנטיים אקטיביטי. שאלות לגבי הדמו, שאלה מצוינת, אוקיי? אז אופר שאל פה בעצם, מה הברק פוינטים, מה אם יכולים מתפוז חוץ מה שרסקואל? למעשה, אם נחשוב על איך בעצם שהפליקטות בנויות, אוקיי? נחשוב על הפליקטה שמבצעת סתם לדוגמה, פייל סיסטם אקסס, פרונה להקטיב דרקטורי, עושה ורפיקטיה של יוזר, ואחרי זה מבצעת איזשהו x-pass מול איזשהו xml, אוקיי? כל אחד בעצם הפרולות האלה משתמשת באיזשהו פרווידר מסוים. לאקטיב דרקטורי יש איזשהו פרווידר. האפליקציה עצמה לא פותחת סוק את TCP בעצם מול האקטיב דרקטורי ועושה שם עושה מדברים לסטרים, משתמשים תמיד בפרווידרים, גם לגבי פייל אקסס, אוקיי? בפייל אקסס, אפליקציה שמשתמשת בפייל אקסס, יש בעצם את java.io, אוקיי? שאפשר בעצם להשתמש ב java.io בשביל להגש לפייל אקסס. כלומר, גם ברמה של ה-java, זאת אומרת, אם אתה רוצה להגיע להגישה של פייל סיסטם, אתה יכול בעצם לשים ברקפונטים של פייל סיסטם. LDAP, ברקפונטים של LDAP, xpass אותו כאן על. זאת אומרת, אין בעצם איזה שהיא פעולה. אם נחשוב על זה, כל הנחסים החשובים באמת שאנחנו רוצים להגיע עליהם בתורתוקפים, הם בסופו של דבר צריכים לעבור דרך איזשהו פרוווידר. בינים הפרוווידר הזה זה java framework, כמו למשל פייל סיסטם, לבנים זה דתבס, אורקל, MySQL, NoSQL, אוקיי? כל דת הבס שיעור בעצם. שאפשר, זה לא רק ב-java, זה דוגמה של java, זה עובד אותו דבר גם לגבי php.net, Node.js, חולי וחולי, אוקיי? תשובה, הבנת? אוקיי. אין ממוריסטיית, כן, זה בעצם, שוב, אין ממוריסטיית, זה בעצם משהו שאפשר לדבר הזה, זה לא בעצם פתרון כסם לכל הבעיות, זה בעצם איזה שהוקלי שמוד מאוד מעצים את היכולות של אותו פינט רשנטסטר. נכון, אוקיי? אם יש לך בעצם את האפליקציה, אתה גם כן יכול לשים 브�ייק פונץ כמובן בקוד של האפליקאיישן קוד, אוקיי? השיטה הזו היא בעצם שיטה שבעצם אומרת, בואו נתמקד בפרווידר לבל, כי בכל מקרה, האפליקציה תעבור דרך שם, ומשם בעצם נעשה Traceback ל-user-code, לאפליקאיישן-code. כן. שאלה מצוין, אתה יכול להיגב בהמשך, יש שקף בדיוק על זה. כן. אוקיי, זה בעצם בעיות לוגיות באפליקציה. בעיות לוגיות באפליקציה, אלה בעיות שאנחנו כן יכולים לנסות ולעזר במדע הזה בשביל לנתח, אוקיי? אבל זה לא בא ו... תודה אבי. לא בא בעצם ומזהה בעיות לוגיות באפליקציה, זה בעצם בא ואומר מה כל הדברים החשובים מבחינת הפרינטרשנטסטר שקורים באפליקציה. בעיות לוגיות יכולות להיות כמו למשל, עברתי פה איזשהו דף בלי לבצע בדיקה מקדימה, עברתי איזשהו סטאב בוויזרד, אוקיי? אתה יכול לחשב על זה בתור גישה לסשן. יש שמון פעמים שבעצם אתה יכול להתייחס לסשן בעצם בתור איזשהו נכס שאתה רוצה לבדוק את כל הדפים שנגשים לסשן, בין אם זה שומרים מידעה בסשן, ובין אם זה בעצם לוקחים קורים מידעה מהסשן. אם אתה בעצם מסכה על זה בצורה הזו, אתה גם יכול להבין מה בעצם כל הפלוז שבעצם קורים או כותבים לסשן, וכל באמצעות זה, לנסות לאתר זה שם בגיות-לוגיות. אבל שוב, הפוקוס כאן זה בעצם על כל המסה קריטית של כל מה שפניטרשון טרסטר בא ומנסה לתקוף. עוד שאלות לפני שהמשיכים עלה? דיסטריביות אלינבארמד. בתפרץ? נכון. אוקיי, שאלה טובה. בעצם מה שאני שואל כאן? מה קורה אם יש לנו בעצם מערכות של מולטיטיר? יש לנו בעצם פרונטן, יש לנו בקן, יש לנו דת הבייס. לא מדובר בעצם בשרת אחד, כמו שאנחנו רואים כאן. זה לא VM אחד שבעצם יש לו Tomcat ובעצם מריץ את האפליקציה, יש לנו פה בעצם כמה טירים. התשובה היא די פשוטה. אם יש לך בעצם גישה לטירים האלה, אתה יכול להתחבר מ-ID1 מהקליפס אחד, בעצם לכמה טירים, לבצע בדיוק את אותו דבר, לעשות אימפורטותם ברקפונטים. אם יש לך טיר שאתה בעצם חושט ביותר, כאת אומר, תקשיב, זה הפרונטד, איך שהוא פחות מעניין אותי, זה מה שעל הכוח ביקש. אני רוצה להתמקד בבקן, תתחבר לבקן ותבצע בעצם את הדבר הזה, עבור בבקן. כבר רונה על זה. אוקיי, מבחינת קורלציה בינטוניים, יש בעצם כמה דרכים לבצע את זה. מבחינת פינטרשנדסר, שעושה את זה בעצם מצורי הדנית, אתה יכול לבצע קורלציה, סתם דוגמה אחת, זה למשל באמצעות ואלויוז שאתה בעצם מכניס. אם אתה עכשיו מבצע הלוגין, והלוגין הזה בעצם, מבצע איזשהו קוד בפרונטנד, לוקחים את הדבר הזה וכן זה שולחים אותו לבקן, ושולחים אותו לעוד בקן, יש ככל אני רואה איזשהם ואליוז שבעצם יעברו בין הטירים האלה, כמו למשל, היו זנם שלך. אתה יכול להזין איזשהו משהו מאוד יוניקי ובעצם לראות איך אתה בעצם מוקב אחרי הדבר הזה. אוקיי? כמובן שוב, אנחנו די מוגבלים כאן, כי אנחנו עדיין אנשים, אנחנו מנם היבריד משתמשיים ב-Random Technology, יש כלים שעושים את זה בצורה אוטומטית, ואז בעצם יש להם יכולת יותר לעקוב אחרי הדברים האלה, מג'נרטים, Random Value, זו קפים אחרי זה, שולחים המון בקשות וכולי. אוקיי. אז, לבדם או ראינו. קצת חסרונות ואיתרונות. וכן, חסרונות ואיתרונות. אוקיי, בבחינת להשתמש ברנטאים בפיטי או בקוד ריוויום. אז אמרנו שהתרונות כמובן מקבלים פה באמת המון Value בשביל הכסף. אוקיי, שוב, אם אתם אנשים שמזמינים פנת רשנטסטרס, חבל על הכסף שלכם, חבל על הזמן שלהם, תבקשו מהם, תשתמשו ברנטאים אינטראקטיב, מה אני אומר על פנת רשנטסטר? או שוב, קוד ריוויום, אוקיי? זה שווה את זה, זה מאוד פשוט, זה חינמי. אין פה איזשהו משהו שעולה כסף ומה שראיתי. שחקו לפתוח דיבאג פורט ותחבר מן קליפס. זה משהו מאוד מאוד פשוט. הידע שזה מצריך, זה ידע מאוד מאוד בסיסי. אני אעשה בזמן שהם רוצים את הפיטי, או את הקוד ריוויום. כמובן שבמשך לזה גם כנושא את הפיטי, או את הקוד ריוויום, הרבה יותר אפקטיבי, אוקיי? אנחנו לא רותפים אחרי רונות שייסינגוסט, נכון? לא נחיימים בעצם את החנת רוח. כל הדברים שאנחנו בעצם מחפשים אחריהם, זה דברים שקיימים באפליקציהם, אמיתיים, הם שם. סימפלטו יוז, כמו שאמרנו, לא משהו מורכף פה, משהו יחסית די סטריט פורט פשוט. חסרונות, זה כן דורש גישה לסביבה שנבדקת. כלומר, אם יש לי עכשיו סיבת פרודקשן, אף אחד לא סביר שמישהו יפתח בעצם דיבאקפורט, בסיבת פרודקשן, אוקיי? זה נמשל אחד מהחסרונות. יש המון חברות שבעצם אומרות, כן, יש לי סירה כסיבת פרודקשן, 10% מהפרודקשן, זה תמיד QA, ואנחנו בעצם עושים את החשיפה בצורה דרגתית, בסדר. אפשר לתייחס את בעצם את הוסיבת QA, אפשר אולי כן לפתוח שם את הדיבאקפורט. זה בעצם איזה שהיא גישה, אוקיי? זה חסרון. צריך בעצם את האפליקציה למעלה ועובדת. אתם לא יכולים לקחת איזשהו קטע קוד, ובעצם לעשות אותו קוד-review מאוד מאוד ספציפי תוך כדי שימוש וטכנוגיה הזו. כן, צריך שהפליקציה למעלה. פרודקשן כבר דיברנו. זה בהמשך לשאלה שאני שאלה קודם, אוקיי? אז דיבאקר בעצם הוא מאוד מאוד פשוט לשימוש. ראינו בעצם דמו, באמת דמו קצר, שמתגיעים כמה צעדים מאוד מאוד פשוטיים, איך מתחברים, משתמשים בזה. מעולה בעצם לעשות אינדטיפיקאיישן של אנטריפוינט לאפליקציה. אפשר בעצם לשים ברקפוינטים שיראו לנו, איך אנחנו בעצם מתחילים את היבוד של ה-user input, מקל על החיים בהקשר של קוד-review. הוא כן יכול להיות מוגבל כשיש בעצם הווי טרפיק. למשל, 2 סלקטים בפייג' 1, אוקיי? ושם, זה בדיוק הנקודה שבו אנחנו בעצם לפני לפרופיילר. פרופיילר זה בעצם כלי שבערגש אנחנו עושים לו הוק, הוא לא עוצר כל פעם שהוא פוגש את הסיכו אל הזה. הוא בעצם עוסף את אנטונים, ממשיך הלאה, אוקיי? ממש חצי אוטומטי כבר למה שדיברנו. בגלל שיש לו את היכולת הזו, אז הוא בעצם יכול לעשות פמון המון SQL-ים, ואתה פשוט יכול לעשות Ctrl-F על ה-value שאתה הזנתה. יש לך דף לוגין שמוצאה 200 משילתות, שום בעיה, תזין את ה-value יוניקה שלך. תפעיל את הפרופיילר, Ctrl-F תחפש את ה-value שלך. ושם יש לך בעצם SQL. קנה לגבי כל עקטיביטי אחר, אוקיי? זה הכל, סיימנו. המהל שלי כאן, אם אתם בעצם רוצים לקבל את הברק-פוינט-פק, פשוט יש לכולה עם אל סימו בעצם בקותרת OAS-BP-PEC, שאולי הוא יגיע לג'אנג בטעות, ואני בעצם ינן לכם ויבצע בעצם את תשמנט לברק-פוינט-פק. שאלות לגבי מה שדיברנו היום? זה שאלה מצוינת, ונכון, כשאתה בדרך כלל עושה פנט-רשנט-טסטינג בצורם סודרת או קודר-ביו, יש לך בעצם איזשהי פגישה עם עוצב את פיתוח, אתה בעצם מדבר, ואתה מנסה להבין מהם, מה באמת קורה באפליקציה. א' הם לא תמיד אמינים, אוקיי? גם מפתחים. זאת אומרת, זה לא מתוך כוונת זדון, פשוט שכחו. שכחו, הם לא מכירים את החלק הזה בקוד, בדיוק, כתבו היווכרים על מודול אחר וכולי, אוקיי? דבר שני, מאוד מאוד קשה להגיע לרמה הזו, של איזה דף ואיזה פרמטר משתמש במה. זאת אומרת, אתה עכשיו יכול לקחת אפליקציה, למפות את כל הדפים ולהגיל תקשיב. זה משתמש באסקואל, זה משתמש באל דאפ, זה משתמש ביקספאצ, זה משתמש דבר, זה מאוד מאוד קשה, אוקיי? זה גם המון המון שאלות, לשאול המון יופתחים, שלא זוכרים את הדברים האלה, הם כתבו את הדברים האלה במשך שנים, אוקיי? הם לא יודעים בעצם מה קורה בכל דבר. זה סופר פשוט, אתה פשוט עושה הטאט, שעושה אינפורמציה, זה הכל. עוד שאלות, כן. אז בדוטנט יש גם כן דיבאגינג, זאת אומרת, כמעט בכל שפה שאנחנו בעצם מדברים, אני בעצם בכוונה הסכרתי שפות שיש להם איזה שהיא שפת בניים, אוקיי? דוטנט זה אחת מהם, כי בעצם מאוד מאוד קל משפה כזו, להגיע אחרי זה חזרה לקוד, אוקיי? מאוד קל, כי בעצם יש לך סטקטרס מלא של הקוד, אתה בעצם יכול לעשות גם כנרווירס אנג'ניר לבית קוד עצמו, או להם יסייל, ולהראות בעצם את הקוד עצמו. לכן זה בדיוק אותה צורת, אתה יכול בעצם מבצע את הדבר הזה, גם כן בדוטנט, גם בג'אבה, שוב, נוד ג'ייס, php וכולי. גם יש קלים של דיבאגינג, יש גם קלים של פרופיילינג, מאוד עפוץ בשוק. כן, C וC++ זה פחות ריביאלי. פחות ריביאלי אתה בעצם צריך להגיע למצב שאתה שם אתה שם native breakpoints, זה הופך להיות הרבה יותר מסורבל ורבה יותר פשוט. לכן אמרתי שבעצם הדרך הזו הרבה יותר אפקטיבית, הרבה יותר פשוטה, שהם דברים בעצם בספות כאלו. שאלה האחרונה לפני שאנחנו נמסיימים?