Damrongsak Reetanon
Posted on June 2, 2021
หลังจากที่เขียนเรื่อง docker scan เสร็จแล้ว ก็ยังนั่งเล่นเพิ่มเติมอีกนิดหน่อย เพราะว่ายังมีข้อสงสัยที่ยังหาเหตุผลและคำตอบไม่ได้
ประเด็นแรก docker scan จะตรวจสอบ application ให้ด้วยไหม
ถ้าลองนั่งเล่นดู จะสังเกตุได้ว่าวิธีที่ docker scan ทำก็คือจะเข้าไปกวาดดูใน container image ดูว่ามีไฟล์อะไรอยู่บ้าง แล้วนำไปเปรียบเทียบกับฐานข้อมูลที่ตัวเองมีอยู่ สิ่งที่สงสัยคือ Snyk ที่ docker scan ใช้เป็นเครื่องมือในการหาช่องโหว่จะรู้จักหรือตรวจสอบ application อื่น ๆ ที่เพิ่มเติมจาก base image ที่เป็น OS ด้วยไหม
Damn Vulnerable Web Application (DVWA) น่าจะเป็นตัวทดสอบที่ดี เป็นที่รู้จักในวงกว้าง DVWA เป็น web application ที่ถูกสร้างให้มีช่องโหว่อยู่มากมาย ใช้เพื่อการเรียนรู้ด้าน Web Application Security ถ้า docker scan ทราบช่องโหว่ของ DVWA ได้ จะได้ทดสอบในมุมอื่น ๆ ต่อไป จึงทดสอบด้วย container image ที่ vulnerables/web-dvwa ใน Docker Hub
> docker scan vulnerables/web-dvwa --json --group-issues
คำตอบที่ได้ก็คือ ผลการ scan ไม่รู้ข้อมูลของ DVWA เลย พบแต่ช่องโหว่ของไฟล์ที่ base image ที่เป็น OS สามารถดูผลทดสอบได้ที่นี่ครับ
ประเด็นที่ 2 เจอ option --file
พบว่า เมื่อเปรียบเทียบการใช้ --file และ ไม่ใช้ --file ผลของการรายงานช่องโหว่ไม่ต่างกัน เพราะว่าเป็นรายงานที่ได้จากข้อมูลใน Container Image แต่สิ่งที่ต่างกันจะอยู่ในช่วงท้ายของรายงาน พบว่าการใส่ --file มีคำแนะนำเพิ่มเติมถ้าในกรณีที่ base image ที่ใช้อยู่มีช่องโหว่ จากตัวอย่างในช่วงท้ายรายงานจะแนะนำให้ใช้ base image alpine:3 ซึ่งไม่มีรายงานช่องโหว่ แทนตัวเดิมที่ใช้ alpine:3.11.0
> docker scan -f .\Dockerfile ws-fac
Testing ws-fac...
✗ Low severity vulnerability found in openssl/libcrypto1.1
Description: Inadequate Encryption Strength
Info: https://snyk.io/vuln/SNYK-ALPINE311-OPENSSL-1075739
Introduced through: openssl/libcrypto1.1@1.1.1d-r2, openssl/libssl1.1@1.1.1d-r2, apk-tools/apk-tools@2.10.4-r3, libtls-standalone/libtls-standalone@2.9.1-r0
From: openssl/libcrypto1.1@1.1.1d-r2
From: openssl/libssl1.1@1.1.1d-r2 > openssl/libcrypto1.1@1.1.1d-r2
From: apk-tools/apk-tools@2.10.4-r3 > openssl/libcrypto1.1@1.1.1d-r2
and 4 more...
Image layer: Introduced by your base image (alpine:3.11.0)
Fixed in: 1.1.1j-r0
[...]
✗ High severity vulnerability found in apk-tools/apk-tools
Description: Out-of-bounds Read
Info: https://snyk.io/vuln/SNYK-ALPINE311-APKTOOLS-1246343
Introduced through: apk-tools/apk-tools@2.10.4-r3
Image layer: Introduced by your base image (alpine:3.11.0)
Fixed in: 2.10.6-r0
Organization: damrongsak
Package manager: apk
Target file: .\Dockerfile
Project name: docker-image|ws-fac
Docker image: ws-fac
Platform: linux/amd64
Base image: alpine:3.11.0
Licenses: enabled
Tested 14 dependencies for known issues, found 11 issues.
Base Image Vulnerabilities Severity
alpine:3.11.0 11 5 high, 5 medium, 1 low
Recommendations for base image upgrade:
Minor upgrades
Base Image Vulnerabilities Severity
alpine:3 0 0 high, 0 medium, 0 low
ผลรายงานในกรณีที่ไม่ใส่ --file เพื่อเปรียบเทียบกัน
> docker scan ws-fac
Testing ws-fac...
✗ Low severity vulnerability found in openssl/libcrypto1.1
Description: Inadequate Encryption Strength
Info: https://snyk.io/vuln/SNYK-ALPINE311-OPENSSL-1075739
Introduced through: openssl/libcrypto1.1@1.1.1d-r2, openssl/libssl1.1@1.1.1d-r2, apk-tools/apk-tools@2.10.4-r3, libtls-standalone/libtls-standalone@2.9.1-r0
From: openssl/libcrypto1.1@1.1.1d-r2
From: openssl/libssl1.1@1.1.1d-r2 > openssl/libcrypto1.1@1.1.1d-r2
From: apk-tools/apk-tools@2.10.4-r3 > openssl/libcrypto1.1@1.1.1d-r2
and 4 more...
Fixed in: 1.1.1j-r0
[...]
✗ High severity vulnerability found in apk-tools/apk-tools
Description: Out-of-bounds Read
Info: https://snyk.io/vuln/SNYK-ALPINE311-APKTOOLS-1246343
Introduced through: apk-tools/apk-tools@2.10.4-r3
From: apk-tools/apk-tools@2.10.4-r3
Fixed in: 2.10.6-r0
Organization: damrongsak
Package manager: apk
Project name: docker-image|ws-fac
Docker image: ws-fac
Platform: linux/amd64
Licenses: enabled
Tested 14 dependencies for known issues, found 11 issues.
มูลค่าความสุข
Posted on June 2, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
February 2, 2024