קפוץ לתוכן


מדריך/מאמר| איך להתחיל ללמוד להיות האקר.


אין תגובות לנושא זה

#1 LightTwo

    משתמש רשום

  • רשומים
  • דרגות
  • 66 הודעות

תאריך פרסום 12 ינואר 2010 - 03:20 PM

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

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

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

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

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

זה ממש הבסיס שחייב להיות לכל האקר. תכנות זו אולי המיומנות הבסיסית ביותר שצריך, יש חשיבות גדולה מאוד לאיך את/ה מתכנת. הדרך הטובה ביותר לתכנת מניסיוני היא ללמוד את הבסיס (פונקציות סוגי נתונים של אותה שפה והתחביר) בעזרת מדריכים באינטרנט או בעזרת ספר. לאחר מכן להתחיל לקרוא קוד של אנשים אחרים אפשרי למצוא עשרות אם לא מאות ואפילו אלפי תוכנות חופשיות מחכות ללמוד מהם. אולי להשתתף ביצירה של תוכנה חדשה (לאחר שלמדתם את השפה) או לעזור לשפר גרסאות ביטא. תלמדו איך לתכנת בצורה שתהיה נקיה ואלגנטית. השפות שאני ממליץ עליהם לאחר קריאה של כמה מאמרים הם (לפי הסדר):
python - השפה העיקרית שבה אני מתכנת מאוד אוהב אותה. נקיה מאוד אם טיפוסים מסוג מערך חזקים מאוד. היא שפה מאוד יפה ואלגנטית ומאוד מומלצת. במיוחד כשפה ראשונה.
c/c++ - השפות שהכי חשוב לדעת לפי דעתי. שפות מאוד חזקות אם חשיבות גדולה מאוד. כאשר הם מאוד דומות. אני לא ממליץ להתחיל איתם במיוחד אם c++ בגלל שהם יחסית מסובכות להתחלה.
java - אני לא מכיר אותה באופן אישי אבל אני יודע שהיא שפה שנחשבת על ידי רבים כשפה טובה להתחלה. כמו גם היותה שפה מאוד חזקה.
perl - יש לה שימוש גדול מאוד לכן הייתי מציע לך ללמוד אותה.
javascript - בשנים האחרונות javascript הפכה להיות שפה מאוד אינטנסיבית ואפליקציות שנכתבות איתה הם מהחזקות שראיתי. שפה מאוד מומלצת וחשובה.
XHTML - אם אתם מתכוונים לקרוא לעצמכם האקרים אתפ פשוט חייבים ללמוד את השפה הזו. שפה מאוד קלה והרעיון שמאחוריה הוא רעיון מדהים. היא טובה בשביל להבין את נושא התגיות וגם בגלל שכל האקר חייב ללמוד אותה מתישהוא.

שאר השפות חשובות גם הם וגם אותם צריך ללמוד אבל אילו השפות שאני ממליץ עליהם.
אני לא ממליץ להשתמש ב-vb בגלל יותר מדי סיבות שאני לא יכול לכתוב במאמר אחד או בספר אחד או אפילו בספריה אחת. היא אולי נראית קורצת בגלל שהיא יחסית פשוטה. אבל זה יגרום לכם לבעיות רציניות לאחר מכן. אני גם לא ממליץ על delphi כיוון שעדיף לכתוב אפליקציה שיכולה לעבוד על יותר מפלאטפורמה אחת. וחוץ מזה במקום delphi אפשר ללמוד c/c++ שהם הרבה יותר טובות לסוג המשימות שבדרך כלל בוחרים ב-delphi בשבילם. אני גם לא ממליץ לכתוב ב-asp למרות שמאוד מומלץ ללמוד אותה. אם יש אפשרות לבחור בין asp ל-php אפשרות טובה יותר תהיה ב-php.

מערכת הפעלה היא תוכנה שבעצם מדברת עם החומרה של המחשב בשביל תוכנות כדי שהתוכנות יוכלו להשתמש במערכת ההפעלה ללא צורך בתיאום אם כל רכיב חומרה. דבר שהיה הופך את מלאכת התכנות לקשה ולא יעילה. מערכת ההפלה נותנת את האפשרות ליצור תוכנות שצריכות יכולת רק לתקשר אם מערכת ההפעלה כאשר כל העבודה המלוכלכת נעשית על ידה. בדרך כלל מחלקים את מערכת ההפעלה לשני חלקים לקארנל ולמערכת הפעלה שלמה. כאשר הקארנל זה בעצם מערכת ההפעלה עצמה. זה בעצם החלק שמדבר אם החומרה. הוא החלק שמגשר בין החומרה לבין תוכנות אחרות. בדרך כלל כאשר אומרים מערכת הפעלה מתכוונים לקארנל יחד עם תוכנות נוספות כמו ממשק GUI ותוכנות כמו shell.
אתם צריכים ללמוד איך מערכת ההפעלה עובדת אם I/O. אתם צריכים להבין איך לתקשר איתה בעזרת ה-shell ללמוד איך לתכנת ב-shell בצורה גבוהה ללמוד פקודות. וללמוד shell scripting. איך בנויות הספריות (תיקיות) ואיך הדבר מיוצג בזיכרון. כאשר את הלמידה של מערכת ההפעלה מומלץ לעשות יחד אם לימודי החומרה כיוון שהם הולכים ביחד (קארנל).

החומרה זה החלק האחרון בשביל ללמוד את הבסיס של התכנות. יש חשיבות גדולה להבנה של איך עובדת החומרה מה זה זיכרון. סוגי זיכרונות כיצד הוא "מדבר" אם מערכת ההפעלה כיצד הוא שולף מידע איך המעבד מדבר איתו. איך זיכרונות מחליפים ביניהם מידע. מה זה מעבד כיצד הוא פועל מה זה אפיק (bus) איך חלקים אחרים מתחברים איתו. כיצד מיוצגים נתונים בהארד דיסק. מה זה i-node. מה זה I/O ומה סדר העדיפויות של המעבד בטיפול באירועים. זה נושא שמומלץ ללמוד אותו כמו שכתבתי יחד אם מערכת ההפעלה בגלל ההקשר ההדוק שבין השניים.

לאחר הצעה של poker face אני מוסיף גם המלצה על לימוד של רשתות ופרוטוקולי תקשורת. כאשר ההמלצה העיקרית שלי היא ללמוד את הפרוטוקולים והרשתות:
HTTP
TELNET
OSI
Packets
סוגי כבילה.
סוגי רשתות.
חומרת רשת
תיכנות ברשת.

אם כך סדר הלימוד לפי דעתי צריך להיות כזה:
תכנות בסביבת הדפדפן
XHTML
Javascript
PHP
ASP
תכנות לשולחן העבודה
python
javascript
c/c++
perl
java
lisp
תכנות כללי
xml
asm
ועוד המלצה חמה שלי היא ללמוד היסטוריה של ההאקינג. הנושא מאוד מעניין כשלעצמו וגם מספק המון ידע מוסף שלפעמים קשה להשיג בדרך אחרת.

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

הנה מקוורות מידע טובים להתחיל איתם.
www.python.org - האתר הרשמי של השפה מספק מדריכים הורדות וכלים שיעזרו לפתח איתה בצורה יותר קלה.
http://www.physics.drexel.edu/course...eral/C_basics/ - מדריך לשפת c.
http://www.cplusplus.com/doc/tutorial/ - מדריך טוב ל-c++.
http://www.comp.leed...Perl/start.html - מדריך טוב ל-perl.
http://www.apl.jhu.edu/~hall/lisp.html - מאגר אם המון מקומות שאפשר ללמוד את lisp מאוד מומלץ.
http://java.sun.com/...books/tutorial/ - מאגר של מדריכים טובים ל-java.

המדריכים הבאים יותר כללים מהמדריכים האלה והם בנושאים שונים החל מתכנות ועד מערכות הפעלה.
how to be a programmer
how to realse open source software

The Linux Documentation Project

בלינק הבא ישנה רשימה גדולה של המון נושאים מעולם המחשבים לפי דעתי אחרי שלומדים ממנו אפשר להגיד שאתם נחשבים כבר האקרים.
LDP HOWTO-INDEX

בהצלחה!

*קרדיט לפורום אחר.



^^ קרדיט לי
לכול בעיה או פניה או תמיכה שאתם צריכים תפנו אלי בפרטי
לשליחת הודעה פרטית לחצו כאן!