יום חמישי, 23 באוגוסט 2012

Arduino Potentiometer Guide



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

דרישות:

  • Arduino Uno
  • Arduino Prototype Shield
  • Potentiometer 10K
  • LED
  • 330 Ohm Resistor
  • Wires



Potentiometer

אז כמו שכבר הבנו פוטנציומטרים דורשים פעולה מהמשתמש, הוא מסובב או מזיז אותם וכך משנה את ההתנגדות לזרם שעובר בהם, בעזרת אחת הכניסות של ה Analog Input ב Arduino  נוכל לקרוא את רמת ההתנגדות שבטווח 0 עד 1023.






מבנה סופי:


קוד:

//led pin
int pinA =5;
//potentiometer analog input pin
int potPin = 1;
//potentiometer  value
int val = 0;

void setup()
{
  Serial.begin(9600);
  //set led pin
   pinMode(pinA,OUTPUT);
}

void loop()
{
 //read value from potPin (0 - 1023)
  val = analogRead(potPin);
  digitalWrite(pinA,HIGH);
  delay(100);
  digitalWrite(pinA,LOW);

  //set the delay between flash of the led
  //by the value from the potentiometer 
   subdelay();
}

void subdelay()
{
 //calculate the potentiometer value and transfer to millisecond
  float cal =   (float) val * 100;
  float per =  cal / 1023;
  float o = (per * 2500) / 100;
  delay(o);
}

חסכתי במילים...

יום שישי, 3 באוגוסט 2012

Denial Of Service Attacks




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

Syn Flood Attack
הטכניקה הפשוטה והמהירה ל Denial Of Service , הרעיון שעומד מאחורי ההתקפה הזו הוא מאוד פשוט, ראינו בעבר כיצד ניתן להזריק "חבילות"  לרשת (למי שכבר שכח...) , התוקף שולח חבילה מכתובת מזוייפת שמכילה דגל מסוג SYN (בקשה לסינכרון) , הקורבן מנסה ליצור קשר עם הכתובת המזוייפת וממתין לתשובה עד להגדרת ה Time Out שמוגדרת במערכת.


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


#:iptables -N syn-flood
//limit to 100 connection with 100 more in reserve for burst before start to drop
#:iptables -A syn-flood -m limit --limit 100/second --limit-burst 100 -j RETURN
#:iptables -A syn-flood -j LOG --log-prefix "SYN-flood attempt: "
#:iptables -A syn-flood -j DROP


Smurf Attack
לא יודע למה בחרו דווקא בשם הזה, אבל שיהיה, התוקף שולח הודעת BoardCast של (ICMP (ping שמכילה את הכתובת של הקורבן ואת הכתובת של ה BroadCast, ה BroadCast שולח את ההודעה לכל המחשבים שבתחום שלו , והם מחזירים לקורבן תשובה ובכך מעלים את התעבורה אצל הקורבן עד ל  Denial Of Service.



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

Xmas Attack
זו התקפה שמנצלת חולשה בפרוטוקול TCP בדומה ל Syn Flood גם פה מדובר במשחק עם דגלים, התוקף שולח חבילה שמכילה את הדגלים URG , PUSH ו FIN שהקומבינציה בניהם לא אפשרית מבחינת פרוטוקול TCP מה שעלול לבזבז זמן יקר לפענוח המידע.

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

Ip Fragmentation Attacks
קבוצה של התקפות שמנצלות חולשות במבנה החבילות שעוברות בפרוטוקול TCP/IP ועלולות לגרום לתופעות מוזרות על הקורבנות, קשה מאוד לדעת מה בדיוק היו התופעות מה שבטוח יהיה מעניין, כבר עברתי בעבר על מבנה ה IP Header, הפעם אנחנו נתייחס לפרמטרים מאוד ספציפיים.



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



MTU - Maximum Transmission Unit
גודל המקסימלי של חבילה לפני שהיא יוצאת לרשת, כמו שאמרתי כל כרטיס וההגדרה שלו, ניתן לשנות אותו דרך מערכת ההפעלה בכל מקרה אל תתעסקו איתו רק תדעו שהוא שם, אפשר למצוא אותו ע"י הקלדה של הפקודה הזו ב CMD:

C:\>netsh interface ipv4 show subinterfaces

Total Length
בדרך כלל מכיל את גודל החבילה אבל ברגע שיש Fragmentation הוא מכיל את גודל ה Fragment.

MF - More Flag
דגל שאומר אם החבילה הזו היא חלק ממערך חבילות שצריכות להגיע או שהיא חבילה בודדת, אם הערך של הדגל 1 זה מצביע על כך שיש עוד חבילות בדרך שצריכות להתחבר אחת עם השנייה  על מנת לקבל את החבילה המקורית במלואה, במקרה שהערך 0 זו חבילה בודדת או סוף של מערך חבילות.

Fragment Offset
המקום של Fragment ביחס לשאר ה datagram, לדוגמה: אם החבילה שלנו מתחלקת ל 2 חתיכות, החתיכה הראשונה תתחיל במיקום 0 ותהיה בגודל 2500 בתים, בחבילות הבאות מחושב מיקום ה Offset בצורה הבאה:

NextOffset= (Total Length - IP header) / 8 + PreviousOffset
NextOffset= 310

אחרי שהכרנו את הפרמטרים נהפוך אותם לרשעים שישחקו לטובתנו, מה היה קורה אם שולחים חבילה שה Offset גדול \ קטן מהמידע שנשלח? מה היה קורה אם נעביר את ה More Flag ל 0 למרות שלא השלמנו את כל ה Datagram , או שנשלח את אותו Offset פעמים? האמת שאין לזה תשובה כלכך ברורה וכל חומרה מתנהגת אחרת, למידע נוסף.

Ping Of Death
אחת ההתקפות הוותיקות מתקופת windows 95 , שליחת חבילות Ping גדולות שמכניסות את הקורבן ל Denial Of Service, ההתקפה הזו כבר לא רלוונטית לימינו אבל ההיתי חייב להזכיר אותה ,יש לי זכרונות טובים ממנה.

DDOS - Distributed Denial Of Service
ברוכים הבאים לממלכת הזומבים, הממלכה ההרסנית ביותר, DDOS נחשבת לאחת ההתקופות החזקות ביותר, אין כלכך מה לעשות מול התקפה כזו חוץ מלחכות שתיגמר, ההתקפה הזו משלבת בתוכה בין עשרות למליונים של מחשבים שנקראים זומבים שמחכים לפקודה של התוקף, הממלכה הזו נקראת BotNet שהיא מרכז בקרה עבור התוקף על הזומבים שלו, כל אחד יכול להיות זומבי, מספיק שהרצתם את הקובץ הלא נכון ונדבקתם באיזה Trojan שפתח שער לתוקף, מדובר על התקפות בדומה ל Syn Flood רק שהיא יוצאות מהמון מחשבים באותו זמן, DDOS נחשבת לאחת הסכנות לבטחון האינטרנט.

Denial Of Service - Exploits
אני לא ארחיב במאמר זה, אבל מדובר על חולשות אבטחה בשירותים שמריץ הקורבן שמאפשר להכניס אותו ל Denial Of Service בצורה הבטוחה והמהירה ביותר, בשונה משאר ההתקפות שעברתי עליהם, ההתקפה הזו מסובכת יותר ויש לחפש את החולשה המתאימה לשירותים שמריץ הקורבן, לדוגמה: פגיעה בשירותי ה Apache / IIS ע"י חולשות אבטחה יעודיות עבור אותם שירותים, נעבור על זה במאמר הבא בנושא.

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

כלים למחקר ניתן להוריד מפרויקט HackToolsBox.

בהצלחה...