Linux וכלי פיתוח
יסודות Bash לעבודת אבטחה
pipes, הפניות, משתנים, לולאות, קודי יציאה ו-set -euo pipefail, ואז שימוש בהם כדי לספור התחברויות כושלות ולחשב hash לתיקייה.
יוצרים חשבון GitHub ו-repository ראשון בדפדפן, מוסיפים README ו-commit שני, ודואגים שסודות לא ייכנסו אליו.
repository ב-GitHub הוא תיקייה ש-Git עוקב אחריה. כל שינוי בקבצים שלה נשמר כ-commit, כך שאפשר לקרוא את ההיסטוריה מאוחר יותר ולראות מה השתנה. השיעור הזה מראה איך ליצור חשבון, לפתוח repository ולבצע שני commits, הכול בדפדפן. לא צריך רקע בתכנות ולא צריך כלי אבטחה.
נכנסים ל-github.com ועוברים את תהליך ההרשמה באתר. כדאי להשתמש בסיסמה ייחודית, ועדיף לשמור אותה במנהל סיסמאות. אחר כך מפעילים אימות דו־שלבי בהגדרות האבטחה של החשבון. המדריך הרשמי ל-2FA מפרט את אמצעי הגורם השני הזמינים. SMS זמין רק בחלק מהמדינות.
הממשק של GitHub משתנה עם הזמן. אם תווית בהמשך לא תואמת למה שמופיע על המסך, אפשר להיעזר ב-מדריך Hello World.
פותחים את תפריט היצירה בפינה הימנית העליונה ובוחרים New repository. המדריך הרשמי מתאר את השדות האלה:
., - וגם _..gitignore ורישיון.נותנים את השם security-learning-notes, מוסיפים תיאור קצר, ובזמן הלמידה בוחרים Private. מסמנים את האפשרות להוסיף README ויוצרים את ה-repository.
נראות פרטית מגבילה את מי שיכול לראות את ה-repository. היא לא הופכת אותו למקום בטוח לסיסמאות או למפתחות, כפי שסעיף 6 מסביר.
פותחים את README.md ולוחצים על סמל העיפרון כדי לערוך אותו בדפדפן. מחליפים את התוכן במשהו ספציפי:
# My Security Learning Notes
This repository contains exercises I created while learning cybersecurity.
## Topics
- How DNS works
- Encoding versus encryption
## Scope
All exercises use local labs or systems I own.כותבים הודעה קצרה שמתארת את השינוי, למשל Document learning goals, ומבצעים commit. commit הוא שינוי שמור עם הודעה וחותמת זמן. GitHub שומר אותו כחלק מהיסטוריית ה-repository.
בוחרים Add file ואז Create new file. בשדה השם מקלידים notes/first-lesson.md. הקלדת לוכסן יוצרת תיקייה. בגוף הקובץ כותבים פסקה אחת שמסבירה את ההבדל בין hash של סיסמה להצפנה. hash הוא טביעת אצבע חד־כיוונית של נתונים, שמשמשת לבדיקת ערך בלי לשמור את הערך עצמו. הצפנה הפיכה לכל מי שמחזיק במפתח. מבצעים commit לקובץ עם הודעה משלו, למשל Add first lesson notes.
commits נפרדים מקלים על קריאת ההיסטוריה. כל commit צריך לתאר רעיון אחד.
פותחים את היסטוריית ה-commits של ה-repository. אמורים להופיע לפחות שני commits עם הודעות מובנות. היכולת להסביר מה השתנה ולמה חשובה יותר ממספר ה-commits.
אם Git מותקן במחשב, אותה היסטוריה זמינה משורת הפקודה. הרצתי את זה על repository לניסיון עם commit אחד ועם אותה הודעה:
git log --onelineהפלט של ההרצה:
03c208a Document learning goalsה-hash אצלך יהיה שונה. ב-Windows, Git עשוי להדפיס גם אזהרה על סיומות שורה ב-commit הראשון. האזהרה לא משנה את ה-commit.
לפני העלאת קובץ כלשהו צריך לבדוק שאין בו קובצי .env, טוקני גישה, נתוני לקוחות, פרטי התחברות לענן ולוגים פרטיים. קובץ .gitignore אומר ל-Git לדלג על קבצים תואמים, וזה עוזר למנוע תקלות. הוא לא מסיר סוד שכבר נכנס ל-commit, כי ה-commit הישן נשאר בהיסטוריה.
דוגמה לקובץ .gitignore בפרויקט לימודי:
.env
*.pem
*.logאם סוד נכנס ל-commit בטעות, קודם כול מבטלים אותו או מחליפים אותו. אחרי שהסוד בוטל או הוחלף, הערך הישן כבר לא נותן גישה, ולכן ייתכן שלא שווה לשכתב את ההיסטוריה. המדריך של GitHub על הסרת מידע רגיש מכסה את שני השלבים, כולל תופעות הלוואי של שכתוב.
repository בדפדפן עוזר להבין מבנה והיסטוריה. השלב הבא הוא ללמוד מה Git עושה על המחשב שלך, ואחר כך איך git clone יוצר עותק מקומי של repository כדי לעבוד עליו בבטחה.
ב-repository הזה כדאי לשמור רק הערות ותרגילים שנוח לך להראות לכל אחד.
Linux וכלי פיתוח
pipes, הפניות, משתנים, לולאות, קודי יציאה ו-set -euo pipefail, ואז שימוש בהם כדי לספור התחברויות כושלות ולחשב hash לתיקייה.
Linux וכלי פיתוח
בעלים וקבוצות ב-Linux, ביטי rwx, chmod, umask ו-setuid, עם מעבדה שבודקת גישה כמשתמש שני ומוצאת הרשאות קבצים מסוכנות.
Linux וכלי פיתוח
איך מפתחות מארח ומשתמש של SSH עובדים, למה Ed25519 עם passphrase הוא ברירת המחדל, ואיך מגדירים ומקשיחים התחברות במפתח על VM של מעבדה בבעלותך.