26Aug

איך האקרים להשתלט על אתרי אינטרנט עם הזרקת SQL ו - DDoS

click fraud protection

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

ישנם מספר כלים וטכניקות המשמשים את הקבוצות הללו, ובעוד אנחנו לא מנסים לתת לך מדריך לעשות זאת בעצמך, כדאי להבין מה קורה.שני ההתקפות שאתה שומע בעקביות על השימוש בהם הן "(Distributed) הכחשת שירות"( DDoS) ו- "SQL Injections"( SQLI).הנה איך הם עובדים.

תמונה xkcd

מניעת שירות התקפה

מה זה?

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

איך זה עובד?

הלוגיסטיקה של התקפת DDoS עשויה להיות מוסברת בצורה הטובה ביותר על ידי דוגמה.

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

instagram viewer

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

ביצוע ההתקפה

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

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

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

הזרקת SQL תקיפה

מה זה?

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

ביצוע ההתקפה

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

SELECT UserID מ משתמשים כאשר UserName = 'myuser' ו - Password= 'mypass';

הערה: ערכי מחרוזת בשאילתת SQL חייבים להיות סגורים במרכאות בודדות ולכן הם מופיעים סביב ערכי המשתמש שהוזנו.

לכן השילוב של שם המשתמש שהוזן( myuser) והסיסמה( mypass) חייב להתאים לערך בטבלת המשתמשים כדי להחזיר UserID.אם אין התאמה, לא יוחזר UserID כך שאישורי הכניסה אינם חוקיים.בעוד יישום מסוים עשוי להיות שונה, המכניקה הם די סטנדרטיים.

אז עכשיו בואו נסתכל על שאילתת אימות תבנית שבה אנו יכולים להחליף את הערכים שהמשתמש מזין בטופס האינטרנט:

SELECT UserID מ משתמשים כאשר UserName = '[user]' ו- Password = '[pass]'

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

לדוגמה, נניח "myuser'-" מוזן בשדה שם המשתמש ו "wrongpass" הוא הזין את הסיסמה.באמצעות החלפה פשוטה בשאילתת התבנית שלנו, היינו מקבלים את זה:

בחר UserID משתמשים שם משתמש = 'myuser' - 'ו סיסמה =' wrongpass '

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

SELECT UserID מ משתמשים איפה UserName = 'Myuser'

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

מה הנזק ניתן לעשות?

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

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

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

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

SELECT UserID מ משתמשים כאשר UserName = 'Robert';DROP TABLE משתמשים; - 'ו סיסמה =' wrongpass '

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

מה מבוצע על ידי מסד הנתונים כמו:

SELECT UserID מ משתמשים איפה UserName = 'רוברט'

DROP משתמשים לוח

אז פשוט ככה, השתמשנו התקפת SQLI למחוק את השולחן כולו משתמשים.

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

מניעת התקף הזרקת SQL

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

ההתקפה SQLI הוא סיכל בקלות על ידי מה שנקרא sanitizing( או לברוח) תשומות שלך.תהליך מחטא הוא למעשה טריוויאלי למדי כמו כל מה שהוא בעצם עושה הוא להתמודד עם כל ציטוט יחיד מוטבע( ') תווים כראוי כך שהם לא יכולים לשמש בטרם עת לסיים מחרוזת בתוך משפט SQL.

לדוגמה, אם אתה רוצה לחפש "O'neil" במסד נתונים, אתה לא יכול להשתמש תחליף פשוט כי ציטוט בודד לאחר O יגרום מחרוזת בטרם עת.במקום זה אתה מחטא אותו באמצעות אופי הבריחה של מסד הנתונים המתאים.נניח כי תו הבריחה של ציטוט בודד מוטבע הוא הקדמת כל ציטוט עם \ סמל.אז "O'neal" יהיה מחוטא כמו "O \" ניל ".

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

:

בחר UserID ממשתמשים איפה UserName = 'myuser' '-' ו- Password = 'wrongpass'

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

רוברט ';DROP משתמשים לוח; - / wrongpass :

בחר UserID ממשתמשים איפה UserName = 'רוברט \';DROP TABLE משתמשים; - 'ו סיסמה =' wrongpass '

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

לסיכום

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

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