כיצד להתקין ולהשתמש בסורק אבטחת תמונות Anchore Container Image?

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


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

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

  • משתמש ב AnchoreCLI אפשרות שורת פקודה
  • מבוסס ממשק משתמש סורק תמונות מיכל ג’נקינס אנקור חיבור.

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

בסוף המאמר תלמדו את שלושת הדברים הבאים.

  • התקנה וקביעת תצורה של ה- מנוע עוגן
  • התקנה, קביעת תצורה ושימוש AnchoreCLI
  • קביעת תצורה ושימוש תוסף סורק מכולות Anchore בתוך ג’נקינס

תנאים מוקדמים

להלן הדרישות להדרכה זו;

  • מחשב מקומי או וירטואלי עם אובונטו 18.04 והדברים הבאים;
  • דוקר
  • דוקר-הלחנה
  • ג’נקינס התקין והפעל
  • משתמש sudo

שלב 1: – הגדר את ספריות העבודה והורד את קבצי התצורה.

צור ספריית עבודה עבור קבצי ה- Anchore שלך. בתוך מדריך זה תיצור שתי ספריות משנה, אחת לתצורה ואחת למסד נתונים.

צור ספרייה ביתית עבור קבצי ה- Anchore

mkdir עוגן

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

עוגן תקליטורים

mkdir config

mkdir db

הורד את קבצי התצורה

לאחר שהספריות מוכנות, אנו מורידים שני קבצי תצורה (docker-compose.yaml ו- config.yaml) מפרויקט Github.

להורדת ה- docker-compose.yaml

עבור לספריית הבית העוגן והשתמש בפקודה

סלסול https://raw.githubusercontent.com/anchore/anchore-engine/master/scripts/docker-compose/docker-compose.yaml > docker-compose.yaml

לאחר מכן הורד את config.yaml לספריית ~ / anchore / config

סלסול https://raw.githubusercontent.com/anchore/anchore-engine/master/scripts/docker-compose/config.yaml -o ~ / anchore / config / config.yaml

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

זה שיטת אבטחה טובה לשנות את הסיסמה, ואתה יכול לעשות זאת על ידי עריכת קובץ config.yaml. עם זאת, במדריך זה נשתמש בהגדרות ברירת המחדל.

כדי להמשיך עם אישורי ברירת המחדל, (שם משתמש – מנהל וסיסמא – foobar), המשך אל שלב 2.

שינוי אישורי Anchore Engine (לא חובה)

מתוך ספריית העיגון השתמש בפקודה

ננו ~ / עוגן / config / config.yaml

אתר את שם המשתמש (מנהל) והסיסמה (foobar) ושנה לערכים המועדפים עליך.

ללחוץ CTRL + איקס, לאחר מכן י לשמור ולצאת.

כאשר ספריות עובדות וקבצי תצורה נמצאים במקום, המערכת מוכנה להתקנת מנוע ה- Anchore.

שלב 2: – התקן והפעל את מנוע ה- Anchore

תשתמש ב- Docker compose כדי להתקין ולהפעיל את מנוע Anchore ומסד הנתונים.

מהספרייה העוגנית, הפעל.

הדוקר – חבר עד -ד

פעולה זו תמשוך אוטומטית את תמונת ה- Anchore ותיצור את מנוע Anchore ומסד הנתונים בבית וב- ~ / anchore / database / ספריות בהתאמה. בסיום הפקודה תפעיל את מנוע ה- Anchore.

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

התקנה, הגדרת תצורה של AnchoreCLI

בשלב זה תלמד כיצד להתקין ולהגדיר את התצורה AnchoreCLI כלי שורת פקודה.

שלב 3: – התקן את AnchoreCLI

במדריך זה נתקין תחילה את תוכנית השירות python-pip, שתשמש לאחר מכן להתקנת ה- AnchoreCLI מהמקור.

להתקנת Python pip. עבור לספרייה הביתית של Anchore והפעל

עדכון sudo מתאים לקבל
sudo apt – לקבל התקנת פיתון-פיפ
התקנת התקני sudo – שדרוגי התקנה לשדרוג

התקן את ה- AnchoreCLI באמצעות פיתון פיפ

pip להתקין עוגן

פקודה זו תוריד ותתקין את הקבצים עבור AnchoreCLI. לאחר ההתקנה, כעת עלינו למקד את קובץ ה- .profile שלנו באמצעות הפקודה

מקור ~ /. פרופיל

כדי לאמת אם ההתקנה הצליחה וגרסת ה- Anchorecli, השתמש בפקודה

עוגן-קלי – היפוך

כדי לבדוק את מצב מערכת ה- עוגן-CLI, השתמש בפקודה

anchore-cli –url http: // localhost: 8228 / v1 – u admin –p מצב מערכת foobar

שימו לב שעליכם לעבור את כתובת האתר של מנוע ה- Anchore, שם המשתמש והסיסמה.

הגדר פרמטרים של Anchore Engine

כברירת מחדל, ה- AnchoreCLI ינסה לגשת למנוע Anchore ללא אימות. עם זאת, הדבר לא יעבוד, ועליך לספק את תעודות Anchore Engine עם כל פקודה.

זה כרוך בהעברת הפרמטרים של שם המשתמש, הסיסמה וכתובת האתר בכל פקודה Anchore CLI. במקום לספק אותם בכל פעם, האלטרנטיבה היא להגדיר אותם כמשתנים סביבתיים בפורמט הבא.

כדי לעבור את כתובת האתר, הפעל

ANCHORE_CLI_URL = http: // localhost: 8228 / v1

זה מגדיר את כתובת האתר של Anchore Engine יחד עם היציאה 8228 בה היא משתמשת.

הגדר את שם המשתמש והסיסמה באמצעות ערכי ברירת המחדל; אחרת, החלף אותם בערכים החדשים שהגדרת בהם שלב 1.

ANCHORE_CLI_USER = מנהל מערכת

ANCHORE_CLI_PASS = foobar

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

ייצא ANCHORE_CLI_URL

ייצא ANCHORE_CLI_USER

ייצא ANCHORE_CLI_PASS

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

שלב 4: – הוספת וניתוח תמונות

כעת, לאחר שקיימת הגדרת מנוע Anchore ו- CLI, תלמד כיצד להוסיף ולנתח את התמונות לבעיות אבטחה. במדריך זה ננתח שתי תמונות. -openjdk: 8-jre-alpine עם פגיעויות ו debian: אחרון ללא .

ניתוח תמונות

כדי להמשיך, עלינו להוסיף קודם את התמונות למנוע. להוסיף את התמונות

תמונת עוגן-קלי להוסיף openjdk: 8-jre-alpine

הוסף דביאן תמונה יציבה: האחרונה

תמונה עוגן-קלי הוסף docker.io/library/debian:latest

הוסף תמונות נוספות

תמונת עוגן-קל להוסיף openjdk: 10-jdk

תמונת עוגן-קל להוסיף openjdk: 11-jdk

לאחר הוספת תמונה למנוע ה- Anchore, הניתוח מתחיל מייד. אם יש כמה תמונות טעונות, הם מכניסים לתור ומנותחים תמונה אחת בכל פעם. אתה יכול לבדוק את ההתקדמות ולראות את רשימת התמונות הטעונות יחד עם מצב הניתוח שלהם.

כדי לראות את הרשימה, הפעל את הפקודה

רשימת תמונות עוגן-קלי

תפוקה

[מוגן בדוא”ל]: ~ / עוגן $ anchore-cli רשימת תמונות
סטטוס ניתוח ניתוח עיכול מלא
docker.io/openjdk:10-jdk sha256: 923d074ef1f4f0dceef68d9bad8be19c918d9ca8180a26b037e00576f24c2cb4analyzed
docker.io/openjdk:11-jdk sha256: 9923c0853475007397ed5c91438c12262476d99372d4cd4d7d44d05e9af5c077analyzed
docker.io/openjdk:8-jre-alpine sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52analyzed

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

שלב 5: – אחזר וצפה בתוצאות הניתוח

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

כדי לבדוק תוצאות עבור סריקת הפגיעות ב- openjdk: תמונה פגיעת 8-jre-alpine

רוץ

תמונת עוגן-קלי vuln openjdk: 8-jre-alpine all

תפוקה

[מוגן בדוא”ל]: ~ / עוגן $ anchore-cli תמונה vuln openjdk: 8-jre-alpine all
פגיעות ID Package Severity Fix CVE Refs URL URLs
CVE-2018-1000654 libtasn1-4.13-r0 גבוהה 4.14-r0 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000654
CVE-2019-12900 libbz2-1.0.6-r6 גבוהה 1.0.6-r7 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12900
CVE-2019-14697 musl-1.1.20-r4 גבוהה 1.1.20-r5 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-14697
CVE-2019-14697 musl-utils-1.1.20-r4 High 1.1.20-r5 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-14697
CVE-2019-8457 sqlite-libs-3.26.0-r3 High 3.28.0-r0 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-8457
CVE-2018-14498 libjpeg-turbo-1.5.3-r4 Medium 1.5.3-r5 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14498

הדוח מציג את מזהה ה- CVE, החבילה הפגיעה, חומרתו והאם יש תיקון או לא. לתמונה שלנו openjdk: 8-jre-alpine, הניתוח מראה שיש לו חמש פגיעויות גבוהות ומספר לא קטן של פגיעויות בינוניות וזניחות. (חלקם לא מוצגים לעיל).

לצפייה בתוצאות פגיעויות עבור debian תמונה יציבה: האחרונה

הפעל את הפקודה

תמונה עוגן-קלי vuln docker.io/library/debian: הכי טוב

תפוקה

[מוגן בדוא”ל]: ~ / עוגן $ anchore-cli תמונה vuln debian: האחרון הכל
פגיעות ID Package Severity Fix CVE Refs URL URLs
CVE-2005-2541 tar-1.30 + dfsg-6 אין זניח https://security-tracker.debian.org/tracker/CVE-2005-2541
CVE-2019-1010022libc-bin-2.28-10 אין זניח https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010022libc6-2.28-10 אין זניח https://security-tracker.debian.org/tracker/CVE-2019-1010022
CVE-2019-1010023libc-bin-2.28-10 אין זניח https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010023libc6-2.28-10 אין זניח https://security-tracker.debian.org/tracker/CVE-2019-1010023
CVE-2019-1010024libc-bin-2.28-10 אין זניח https://security-tracker.debian.org/tracker/CVE-2019-1010024

כפי שניתן לראות מהדוח, debian image: האחרונה כוללת נקודות תורפה זניחות וללא תיקונים.

כדי לראות את תוצאות הערכת המדיניות עבור התמונה הלא יציבה openjdk: 8-jre-alpine

לרוץ

anker-cli להעריך לבדוק openjdk: 8-jre-alpine

תפוקה – התוצאות מראות כישלון

[מוגן בדוא”ל]: ~ / עוגן $ anchore-cli הערכה לבדוק openjdk: 8-jre-alpine
עיכול תמונה: sha256: b2ad93b079b1495488cc01375de799c402d45086015a120c105ea00e1be0fd52
תג מלא: docker.io/openjdk:8-jre-alpine
סטטוס: נכשלים
הערכה אחרונה: 2019-09-20T12: 03: 32Z
מזהה מדיניות: 2c53a13c-1765-11e8-82ef-23527761d060

התמונה openjdk: 8-jre-alpine מפר את מזהה המדיניות שצוין (מזהה מדיניות: 2c53a13c-1765-11e8-82ef-23527761d060) ולכן מחזיר סטטוס כישלון.

כעת, לאחר שראינו כיצד מנוע ה- Anchore מגיב לאחר שגילתה הפרת מדיניות, הגיע הזמן לבדוק אם הוא מתנהג עם debian התמונה היציבה שלנו: האחרונה.

בדיקת מדיניות לגבי debian: תמונה יציבה אחרונה

anchore-cli להעריך לבדוק docker.io/library/debian:latest – פרטים

[מוגן בדוא”ל]: ~ / עוגן $ anchore-cli להעריך לבדוק docker.io/library/debian:latest – פרטים
עיכול תמונה: sha256: d3351d5bb795302c8207de4db9e0b6eb23bcbfd9cae5a90b89ca01f49d0f792d
תג מלא: docker.io/library/debian:latest
מזהה תמונה: c2c03a296d2329a4f3ab72a7bf38b78a8a80108204d326b0139d6af700e152d1
סטטוס: לעבור
הערכה אחרונה: 2019-09-20T12: 00: 06Z
מזהה מדיניות: 2c53a13c-1765-11e8-82ef-23527761d060
פעולה אחרונה: הזהירו
סיבה סופית לפעולה: הערכת מדיניות
סטטוס שער TriggerDetail
הנחיית המזח הוראות הנחיית המזון ‘HEALTHCHECK’ לא נמצאו, תואמות מצב ‘not_exists’ צ’ק

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

קביעת תצורה ושימוש Anchore Container Image Plugin ב- Jenkins

שלב 6: – הוסף וקבע את התצורה של התוסף Anchore Container Image Scanner בג’נקינס

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

ה תוסף עוגן זמין בג’נקינס אך לא מותקן כברירת מחדל.

התחבר לג’נקינס באמצעות דפדפן אינטרנט

http: // your_server_ip_or_domain: 8080

הזן את שם המשתמש והסיסמה.

לך ל תפריט ג’נקינס

אתר ובחר נהל את ג’נקינס

לך ל נהל תוספים

על כרטיסייה זמינה, גלול מטה אל בניית כלים ובחר את סורק תמונות מיכל אנקור

לחץ על התקן ללא הפעלה מחדש אפשרות.

לאחר ההתקנה המוצלחת של תוסף סורק תמונות מכולות Anchore, השלב הבא הוא לקבוע את תצורת האישורים.

עבור אל ג’נקינס בתפריט ובחר נהל את ג’נקינס כרטיסייה.

פתוח הגדר מערכת.

אתר את תצורת עיגון.

בחר מצב מנוע

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

URL – http: // your_server_IP: 8228 / v1

הזן את שם המשתמש = מנהל
הזן את הסיסמה = foobar או סיסמא חדשה אם שינית אותה שלב 3 (למעלה)

לחץ על להציל

הגדר תוסף Anchore

שלב 8: – הוספה וסריקה של תמונות

לחץ על פריט חדש במרכז השליטה של ​​ג’נקינס בתפריט השמאלי העליון

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

בפרויקט זה נשתמש בבניית הצינור.
בחר את צנרת ולחץ בסדר.

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

לשם כך תוסיף את סקריפט הצינור שיציין את התמונה לסריקה.

שלב 9: – הוסף סקריפט לצנרת

גלול מטה לקטע צינור והוסף את הסקריפט כדי לציין את התמונה לסריקה. נתחיל ב- openjdk: 8-jre-alpine המכיל פגיעויות מסוימות.

צומת {
def imageLine = ‘openjdk: 8-jre-alpine’
קובץ writeFile: ‘anchore_images’, טקסט: imageLine ‘
שם עוגן: ‘anchore_images’
}

לחץ על להציל

שלב 10: – הפעל את ה- build ובדוק את דוחות הסריקה

מתפריט ג’נקינס

לחץ על בנה עכשיו

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

שלב 11: – סקור את התוצאות

לחץ על בנה # לצפייה בפרטים נוספים
זה פותח א פלט קונסולה חלון המציין כישלון – דוח אנקור (FAIL)

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

סיכום הערכת מדיניות העוגן

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

רשימת פגיעויות וחשיפות נפוצות (CVE)

אם נסרוק כעת תמונה יציבה, debian: האחרונה, ללא פגיעויות, נקבל את התוצאות למטה.

סיכום הערכת מדיניות העוגן (מעבר)

רשימת פגיעויות וחשיפות נפוצות (CVE) 

סיכום

סורק תמונות Anchore Container הוא כלי רב עוצמה לניתוח תמונות המזהה מגוון רחב של פגיעויות ובעיות מדיניות בתמונות של Docker. יש לו אפשרויות התאמה אישית רבות וניתן להגדיר אותן כיצד לענות על גילוי בעיות במהלך הניתוח. אחד מאלה הוא לשבור את הבנייה כאשר המנוע נתקל בפגיעות קשה.

אם אתה מחפש לבנות את הקריירה שלך ב- DevSecOps, בדוק זאת קורס אודמי.

תגיות:

  • קוד פתוח

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map