Linux וכלי פיתוח
יסודות Bash לעבודת אבטחה
pipes, הפניות, משתנים, לולאות, קודי יציאה ו-set -euo pipefail, ואז שימוש בהם כדי לספור התחברויות כושלות ולחשב hash לתיקייה.
GitHub למתחילים: מה Git ו-GitHub עושים, המונחים הבסיסיים, תרגול Git מקומי ואיך בודקים פרויקט לפני שמריצים אותו.
GitHub הוא אתר שבו אנשים שומרים, משתפים וסוקרים פרויקטי תוכנה. רוב הפרויקטים האלה מנוהלים ב-Git, כלי לניהול גרסאות שרושם כל שינוי בקבוצת קבצים. GitHub מחזיק repositories של Git ברשת, מוסיף ממשק web ונותן לצוותים pull requests, issues ו-releases כדי לעבוד יחד על קוד.
בקצרה: Git הוא הכלי, ו-GitHub הוא אחד המקומות שבהם מארחים פרויקטי Git ודנים בהם.
Git רץ על המחשב שלך. אפשר להפוך כל תיקייה ל-repository ולתעד שינויים בלי חיבור לאינטרנט ובלי חשבון GitHub.
GitHub הוא שירות מקוון. הוא שומר עותקים של repositories של Git, מציג קבצים והיסטוריה בדפדפן ומוסיף יכולות כמו מעקב issues ו-pull requests. גם שירותים אחרים מארחים repositories של Git, כך ש-GitHub הוא מקום אחד שבו פרויקטי Git נמצאים.
הדרך המהירה ביותר להבין את המילים האלה היא ליצור repository בעצמך.
לא צריך GitHub כדי ללמוד את הבסיס. מתקינים Git מהאתר הרשמי git-scm.com, ואז בודקים את הגרסה המותקנת:
git --versionבמחשב Windows שעליו נבדק המאמר, הפקודה הדפיסה:
git version 2.49.0.windows.1אצלך תופיע גרסה אחרת. בשלב הבא מגדירים את השם והאימייל ש-Git מצרף לכל commit, עם הערכים שלך:
git config --global user.name "Your Name"
git config --global user.email "[email protected]"עכשיו יוצרים repository לתרגול עם שני branches ושני commits:
mkdir security-learning-notes
cd security-learning-notes
git init
printf '# security-learning-notes\n' > README.md
git add README.md
git commit -m "Add README"
git switch -c add-glossary
printf -- '- DNS\n- HTTPS\n- hash\n- encryption\n' > glossary.md
git add glossary.md
git commit -m "Add glossary terms"
git branchהרצת git branch על ה-repository הזה הדפיסה את זה:
* add-glossary
masterהכוכבית מסמנת את ה-branch הנוכחי. ה-branch שמוגדר כברירת מחדל יכול להיקרא master או main, לפי הגדרות ה-Git שלך. ב-Windows, Git עשוי להדפיס גם אזהרות על סיומות שורה. האזהרות האלה לא משנות את ה-commits.
מדריך Hello World של GitHub עובר על התהליך הזה בדפדפן. תפריטים ושמות כפתורים משתנים עם הזמן, אז אם המסך לא תואם לטקסט הזה, פועלים לפי המדריך הרשמי:
security-learning-notes. בוחרים ציבורי או פרטי.README.md עם משפט אחד שמתאר את הפרויקט.add-glossary.שלב ה-pull request חשוב גם ב-repository אישי. תצוגת ה-diff מראה בדיוק אילו שורות השתנו לפני שמשהו מגיע ל-branch הראשי.
כדי לשלוח repository מקומי ל-GitHub, יוצרים repository ריק באתר ומחברים אליו מהטרמינל. גם OWNER וגם REPOSITORY הם ערכים לדוגמה. אם git branch מציג master, מחליפים את main בשם ה-branch שלך:
git remote add origin https://github.com/OWNER/REPOSITORY.git
git push -u origin maingit clone מעתיק repository עם כל ההיסטוריה שלו:
git clone https://github.com/OWNER/REPOSITORY.gitמחליפים את OWNER ואת REPOSITORY בבעלים ובשם שמופיעים בשורת הכתובת של דף הפרויקט. שכפול מוריד קבצים. הוא לא מריץ שום דבר מהפרויקט והוא לא מוכיח שהפרויקט בטוח. הורדת ZIP מהאתר נותנת את הקבצים בלי ההיסטוריה, וזה מספיק לקריאה אבל מאבד את שרשרת ה-commits.
לפני הרצה של כלי שעוד לא השתמשת בו, כדאי לבדוק את ה-repository עצמו:
install.sh או סקריפט התקנה משנים חבילות מערכת, מתקינים שירותים או מבקשים הרשאות מנהל?קוראים סקריפטים של התקנה לפני שמריצים אותם. README שאומר להדביק פקודה בטרמינל מבקש ממך להריץ קוד על המחשב שלך.
כלי אבטחה מיועדים לעבודה בתוך הסקופ. מתאמנים על מחשבים בבעלותך, במעבדה שבנית או על יעדים שיש לך הרשאה בכתב לבדוק.
בלבול בין Git ל-GitHub הוא טעות שכיחה. Git עובד על המחשב שלך ולא צריך אתר. GitHub הוא שירות שנבנה סביב Git.
הטעות השנייה היא commit של סודות. טוקן או סיסמה שנדחפו ל-repository ציבורי, כל מי שמוצא אותם יכול להעתיק אותם. מחיקת השורה ב-commit מאוחר יותר לא מסירה אותה מההיסטוריה. קודם מבטלים את פרטי ההתחברות, ואז פועלים לפי המדריך של GitHub להסרת מידע רגיש מ-repository.
השלישית היא הרצת פקודות מ-README בלי לקרוא אותן. סקריפטים של התקנה יכולים לשנות את המחשב שלך, אז קוראים אותם לפני ההרצה.
המאמר הבא במסלול הזה עוסק ביצירת חשבון GitHub וב-repository הראשון שלך. כשהבסיס הזה נהיה עניין שבשגרה, אפשר להתחיל להסתכל על כלי אבטחה. כל כלי בודקים במעבדה משלך לפני שסומכים עליו בדבר אמיתי.
Linux וכלי פיתוח
pipes, הפניות, משתנים, לולאות, קודי יציאה ו-set -euo pipefail, ואז שימוש בהם כדי לספור התחברויות כושלות ולחשב hash לתיקייה.
Linux וכלי פיתוח
בעלים וקבוצות ב-Linux, ביטי rwx, chmod, umask ו-setuid, עם מעבדה שבודקת גישה כמשתמש שני ומוצאת הרשאות קבצים מסוכנות.
Linux וכלי פיתוח
איך מפתחות מארח ומשתמש של SSH עובדים, למה Ed25519 עם passphrase הוא ברירת המחדל, ואיך מגדירים ומקשיחים התחברות במפתח על VM של מעבדה בבעלותך.