Nessus הוא סורק אבטחה שמשמש לזיהוי נקודות חולשה באבטחה בחומרה ובתוכנה.
במאמר הזה מפורטים השלבים לביצוע הפעולות הבאות:
התקנה של Nessus
ביצוע סריקות Nessus
ייצוא תוצאות סריקה של Nessus
1. רקע
Tenable Nessus הוא כלי של צד שלישי שנדרש לו רישיון. מידע נוסף על Nessus זמין במקורות המידע הבאים:
2. לפני שמתחילים
תחנת עבודה
- כדי לארח את Nessus, צריך להשתמש ב-bootstrapper (te-bf) או בתחנת עבודה מקבילה שאפשר לגשת אליה.
נדרשת הרשאת גישה
כלים נדרשים
- kubectl
- ssh-keygen
תוכנה
- נדרש קובץ התקנה של Nessus שתואם למערכת ההפעלה של תחנת העבודה. לפני שממשיכים, צריך להוריד את קובץ ההתקנה מהכתובת https://www.tenable.com/downloads/nessus ולהעביר אותו לתחנת העבודה של Nessus.
רישוי
- נדרש קוד הפעלה של רישיון Tenable Nessus יחיד (Pro, Export או Manager). אם אין לכם קוד הפעלה של רישיון, פנו לאיש הקשר בצוות שלכם בנושא רישוי של צד שלישי או רשימת חומרים (BOM) של תוכנה.
3. התקנה של Nessus
בקטע הזה מוסבר איך להתקין את Nessus בתחנת העבודה של Nessus.
אם Nessus כבר מותקן ומופעל, אפשר לדלג על הקטע הזה.
אם Nessus לא זמין יותר (לדוגמה, אם הוא הותקן במחשב שכבר לא קיים), צריך לאפס את הרישיון ששימש להפעלת המופע הקודם של Nessus לפני שממשיכים.
מייצאים את הנתיב לקובץ ההתקנה של Nessus:
NESSUS_INSTALLER=מתקינים את Nessus באמצעות dpkg:
dpkg -i ${NESSUS_INSTALLER:?}מפעילים מחדש את Nessus ומוודאים שהוא פועל:
sudo systemctl restart nessusd sudo systemctl status nessusdכדי לרשום את Nessus במצב אופליין, צריך לקבל קוד אתגר:
/opt/nessus/sbin/nessuscli fetch --challengeבמחשב שמחובר לאינטרנט, נכנסים לדף ההפעלה במצב אופליין של Nessus בכתובת https://plugins.nessus.org/v2/offline.php.
מעתיקים את קוד ההפעלה אופליין של Nessus ואת קוד ההפעלה של רישיון Nessus לדף ההפעלה אופליין של Nessus ולוחצים על Submit (שליחה).
בדף ההפעלה במצב אופליין של Nessus אמורות להופיע עכשיו כתובת URL של פלאגין Nessus ורישיון מוצר. תצטרכו את שני הערכים האלה בשלבים הבאים.
שומרים את כתובת ה-URL של הפלאגין של Nessus במיקום בטוח לעיון בהמשך, כי היא תידרש בהמשך המדריך הזה.
שומרים את הרישיון מהדף Nessus offline activation (הפעלה אופליין של Nessus) בתחנת העבודה של Nessus בקובץ בשם
/opt/nessus/etc/nessus/nessus.license.החלת הרישיון על Nessus:
/opt/nessus/sbin/nessuscli fetch --register-offline /opt/nessus/etc/nessus/nessus.licenseיצירת משתמש עם הרשאת אדמין:
פועלים לפי ההנחיות של
nessuscli adduserכדי ליצור משתמשadmin. פרטי הכניסה האלה ישמשו בהמשך לביצוע סריקות ולהורדת תוצאות, לכן חשוב לשמור אותם במקום בטוח./opt/nessus/sbin/nessuscli adduserבזמן ש-Nessus פועל, אפשר לגשת לממשק המשתמש שלו דרך יציאה 8834. בדפדפן שבחרתם, עוברים אל
https://<nessus-workstation-ip>:8834ומתחברים כמשתמשadmin.
4. עדכון של פלאגינים של Nessus
כדי להבטיח שתוצאות הסריקה יהיו רלוונטיות ועדכניות, צריך להוריד את הפלאגינים העדכניים של Nessus ולהחיל אותם על Nessus לפני שמריצים סריקות. צריך לקבל את הפלאגינים של Nessus ישירות מ-Tenable באמצעות כתובת ה-URL של הפלאגין של Nessus שמתקבלת מדף ההפעלה במצב אופליין של Nessus.
מורידים את חבילת הפלאגינים.
אפשרות 1: עוברים לכתובת ה-URL של הפלאגין Nessus באמצעות הדפדפן הרצוי, והחבילה תורד באופן אוטומטי.
אפשרות 2: הורדת החבילה באמצעות wget
wget "${PLUGIN_URL:?}" -O plugin-updates.tar.gzמעבירים את חבילת הפלאגין לתחנת העבודה של Nessus ומייצאים את מיקום הקובץ:
NESSUS_PLUGIN_BUNDLE=מחילים את עדכוני הפלאגין על Nessus:
/opt/nessus/sbin/nessuscli update ${NESSUS_PLUGIN_BUNDLE:?}העדכונים של התוספים נמשכים כ-30 דקות. אפשר לפעול לפי השלבים הבאים ליצירת סריקות בזמן שזה קורה, אבל כדאי להמתין עם הפעלת הסריקות עד שהקומפילציה של התוספים תסתיים.
5. הגדרת סריקות Nessus
צריך ליצור סריקות לכל שילוב ייחודי של כרטיס מועדון ופרטי כניסה. בקטע הזה נסביר איך ליצור את הסריקה הנדרשת באמצעות ממשק המשתמש של Nessus.
לפני שממשיכים, צריך לוודא שיש גישה לממשק המשתמש של Nessus בכתובת https://<nessus-workstation-ip>:8834 ולהתחבר כמשתמש admin.
5.1. איסוף של CIDR ברשת
סריקות Nessus נוצרות כדי לסרוק את ה-CIDR של הרשת החיצונית והפנימית של הסביבה.
אוספים את ה-CIDR של הרשתות החיצוניות והפנימיות של רשת מכשיר היעד (מומלץ שהרשת הזו לא תחפוף לסביבה שכנה אחרת).
טווח כתובות ה-IP כנראה יכלול את כתובת ה-IP של ה-bootstrapper או כתובות IP אחרות שאסור לסרוק. מזינים את הפקודות הבאות לכל כתובת IP שלא אמורה להיסרק (למשל כתובת IP של bootstrapper):
IGNORE_IP= IGNORE_IP_REASON= echo "# ${IGNORE_IP_REASON:?}" >> /opt/nessus/etc/nessus/nessusd.rules echo "reject ${IGNORE_IP:?}" >> /opt/nessus/etc/nessus/nessusd.rules
5.2. סריקות לגילוי מארחים
סריקות של גילוי רשתות לא מאומתות, והן נועדו לסרוק רשת כדי למצוא מטרות וחשיפות לא מאובטחות ברשת.
הסריקה הזו תוגדר לסריקת ה-CIDR של הרשתות החיצוניות והפנימיות שצוינו בקטע הקודם.
בממשק המשתמש של Nessus:
- יצירת סריקת גילוי מארחים בשם
host-discovery - מציינים מארחים: גם CIDR חיצוניים וגם פנימיים
- שמירה והפעלה
5.3. סריקות של מערכת הפעלה Node
סריקות הצמתים מאומתות ומיועדות לבדיקת מערכות הפעלה קריטיות כדי לזהות נקודות חולשה ידועות, הגדרות לא מאובטחות ותאימות.
פועלים לפי ההוראות שבקטע הזה כדי להגדיר את אשכול התשתית של הארגון:
מייצאים את kubeconfig של האשכול:
KUBECONFIG=מציגים את כל הצמתים באשכול:
kubectl --kubeconfig=${KUBECONFIG:?} get nodes -o wideשימו לב לעמודה שבה מוצג ה-IP של הנתונים לכל צומת. לפני שממשיכים, מוודאים שאפשר לגשת לכתובת ה-IP של הנתונים ממחשב העבודה של Nessus באמצעות פינג.
ping <node_data_ip>בממשק המשתמש של Nessus, מתחילים ליצור סריקה מתקדמת עם השם
nodeos-compliance-<cluster_name>בסריקה המתקדמת, ממלאים את השדה 'מארחים' ברשימה של כל כתובות ה-IP של נתוני הצמתים משלב 1, כשהן מופרדות בפסיקים.
פועלים לפי ההוראות שבמאמר נספח: הוספת פרטי כניסה ל-SSH של צומת באשכול כדי להוסיף פרטי כניסה לסריקה.
עוברים לכרטיסייה 'תאימות' ובוחרים את הגרסה האחרונה שזמינה של 'DISA STIG Ubuntu 20.04 v1'. שומרים את הגדרת התאימות כמו שהיא, בלי לשנות את ערכי ברירת המחדל.
שומרים את הגדרת הסריקה ומפעילים את הסריקה.
5.4. קדימה, פסק זמן!
הסריקות אמורות להימשך יותר מ-30 דקות. עכשיו כדאי לקחת הפסקה או לעשות משהו אחר עד שהן יסתיימו.
6. ייצוא תוצאות הסריקה
בקטע הזה מוסבר איך לייצא את תוצאות הסריקה.
לכל סריקה שהושלמה, מורידים את התוצאות:
בוחרים את הסריקה שהושלמה כדי לבדוק את התוצאות שלה.
לוחצים על הלחצן 'דוח' בפינה השמאלית העליונה.
בוחרים באפשרות 'פורמט הדוח' CSV ומסמנים את כל העמודות.
לוחצים על 'יצירת דוח'. אחרי השהיה קצרה, הדוח אמור להוריד את עצמו.
(אופציונלי) אם נדרש גם דוח HTML, בוחרים באפשרות 'פורמט דוח HTML' ואת תבנית הדוח שנראית לכם מתאימה. תבנית הדוח המומלצת היא Detailed Vulnerabilities By Plugin with Compliance/Remediation (פגיעויות מפורטות לפי תוסף עם תאימות/תיקון).
7. השלבים הבאים
צריך לעבד את דוחות ה-CSV או ה-HTML שמתקבלים בהתאם לתהליכי האבטחה של הסביבה שלכם. אם יש ספק, פנו לאיש קשר בנושא אבטחת מידע או תאימות לקבלת הוראות נוספות.
8. נספח
8.1. הוספת פרטי כניסה של SSH לצומת באשכול
בקטע הזה מוסבר איך מקבלים קבוצה של פרטי כניסה ל-SSH כדי ש-Nessus יוכל לסרוק את הצמתים של אשכול יעד.
מייצאים את kubeconfig של האשכול:
KUBECONFIG=הצגת רשימת מפתחות ה-SSH של האשכול
kubectl --kubeconfig=${KUBECONFIG} get -A secret | grep ssh-keyמזהים את מרחב השמות של הסוד 'ssh-key' שמתאים לאשכול היעד ומייצאים את מרחב השמות:
CLUSTER_NS=יוצרים ספריית SSH של Nessus:
NESSUS_FOLDER=nessus mkdir -p ${NESSUS_FOLDER}/.sshמייצאים את זוג מפתחות ה-SSH לספריית ה-SSH של Nessus:
kubectl --kubeconfig=${KUBECONFIG:?} get -n ${CLUSTER_NS:?} secret/ssh-key -o jsonpath='{ .data.id_rsa }' | base64 -d > ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa kubectl --kubeconfig=${KUBECONFIG:?} get -n ${CLUSTER_NS:?} secret/ssh-key -o jsonpath='{ .data.id_rsa-cert\.pub }' | base64 -d > ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa-cert.pubמתקנים את ההרשאות של זוג המפתחות:
# fix permissions chmod 600 ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa chmod 600 ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsa-cert.pubממירים את המפתח הפרטי לפורמט pem עם ביטוי סיסמה ריק:
ssh-keygen -p -m PEM -f ${NESSUS_FOLDER}/.ssh/nessus-${CLUSTER_NS}-id_rsaפלט תקין אמור להיראות כך:
Key has comment 'root@te-bd-bootstrapper' Enter new passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved with the new passphrase.מעבירים את
nessus-<cluster>-id_rsaואתnessus-<cluster>-id_rsa-cert.pubלתחנת העבודה שמשמשת לגישה לממשק המשתמש של Nessus.בממשק המשתמש של Nessus, עוברים לכרטיסייה Credentials (פרטי כניסה) בהגדרות הסריקה.
יוצרים פרטי כניסה חדשים ל-SSH ובוחרים באפשרות 'אישור' לשיטת האימות.
מזינים את ההגדרות הבאות לשיטת האימות של אישור SSH:
שם משתמש: root
אישור משתמש: הוספת קובץ
nessus-<cluster>-id_rsa-cert.pubמפתח פרטי: לוחצים על סמל הוספת הקובץ
nessus-<cluster>-id_rsa.
שומרים את הגדרות ה-SSH.
חזרה למקום שבו נעשה שימוש בהפניה לקטע הזה.