‫ไม่เป็นไร.
‫ถัดไป การสแกนโค้ด repo
‫นี่ไม่ได้เจาะจงแม้แต่ Docker แต่มีเครื่องมืออยู่ที่นั่นและแอบเป็นหนึ่งในนั้น
‫แอบจะสแกนการพึ่งพาโค้ดของคุณภายใน
‫repos
‫หากคุณมีโอเพ่นซอร์ส หากคุณกำลังพัฒนาโอเพ่นซอร์ส
‫พวกเขาจะทำสิ่งนี้มากมายฟรี
‫พวกเขาจะสแกน GitHub repo ของคุณ repo Bitbucket
‫ของคุณและดูที่การพึ่งพา
‫ฉันได้รับรายงานจากพวกเขาทุกสัปดาห์ใน repos โอเพ่นซอร์สของฉันและช่องโหว่ใดๆ
‫ที่พวกเขาพบ
‫ทุกวันนี้ GitHub ทำสิ่งนี้ด้วยตัวเองฟรีเช่นกัน
‫Sneak
‫มีมานานแล้วและทำนานกว่านี้ ดังนั้นฉันจึงมีทั้งสองอย่าง
‫ฉันมี
‫GitHub ส่งอีเมลและแอบดู คุณสามารถจ่ายแอบเพื่อสแกนสิ่งของ
‫พวกเขายังมีคุณสมบัติเพิ่มเติมในขณะนี้ซึ่งพวกเขากำลังสร้างรูปภาพและสิ่งอื่น
‫ๆ ไม่ใช่แค่ที่เก็บโค้ด
‫แต่นั่นเป็นบรรทัดเดียวที่จะสแกน repos ของคุณในช่วงต้นของกระบวนการ
‫อย่ารอให้คุณสร้างภาพแล้วมีสิ่งต่าง
‫ๆ ใน CI ในการทดสอบที่คุณกำลังสแกน
‫สแกนให้เร็วที่สุด
‫นี่เป็นหนึ่งในหลักการสำคัญของสิ่งที่เรียกว่าการรักษาความปลอดภัย
‫ShiftLeft
‫หากคุณจินตนาการถึง Kanban Board ที่งานทั้งหมดของคุณอยู่ทางซ้ายและผลลัพธ์ของคุณอยู่ทางขวา
‫การเคลื่อนไหวของระบบความปลอดภัย ShiftLeft
‫หากคุณเพียงแค่ค้นหาการรักษาความปลอดภัย ShiftLeft แบบทั่วๆ ไป ทั้งหมดนั้นเกี่ยวกับการเปลี่ยนความรับผิดชอบด้านความปลอดภัยก่อนหน้านี้และก่อนหน้านั้น เวิร์กโฟลว์การพัฒนาของคุณ
‫ดังนั้น วิธีหนึ่งในการทำเช่นนั้นคือให้เครื่องสแกนอัตโนมัติเหล่านี้สแกนการขึ้นต่อกันของโค้ดของคุณภายใน
‫git repos ของคุณ ก่อนที่คุณจะไปถึงขั้นตอนของการทำงานบนเซิร์ฟเวอร์เสียด้วยซ้ำ
‫ฉันจะทำอย่างนั้น
‫ไม่ใช่เฉพาะเรื่อง Docker แต่ฉันจะทำอย่างนั้น
‫ขั้นตอนต่อไปคือการสแกนภาพเอง ซึ่งคล้ายกันมาก
‫แต่เราได้รับคุณสมบัติเพิ่มเติมที่นี่
‫เราไม่เพียงแค่สแกนการขึ้นต่อกันของโค้ดของคุณเท่านั้น
‫เราสามารถสแกนภาชนะได้เอง
‫ภาพขวา. เราสามารถสแกนการพึ่งพาทั้งหมดที่นั่นซึ่งไม่เหมือนกับแพ็คเกจ
‫npm หรือแพ็คเกจ Python ของคุณ
‫ขณะนี้คุณกำลังสแกนแพ็คเกจ
‫YUM และ APK หรือ apt หรือตัวจัดการแพ็คเกจประเภทนี้สำหรับระบบปฏิบัติการ
‫นั่นคือสิ่งที่ฉันหมายถึงโดยเครื่องสแกนภาพ เพราะมันสามารถสแกนสิ่งเหล่านั้นได้เช่นเดียวกับการขึ้นต่อกันของรหัสของคุณ
‫มีเครื่องมือมากมายที่นี่
‫ชุดยอดนิยมของพวกเขามีมาระยะหนึ่งแล้ว แต่มีชุดใหม่สองสามรายการที่ฉันอยากคุยกับคุณ
‫อันแรกคือ Trivy และฉันเพิ่งรู้เรื่องนี้ในเดือนนี้
‫จริงๆ แล้วในเดือนตุลาคม
‫Trivy สร้างขึ้นโดย Aqua Security ซึ่งเป็นบริษัทเดียวกับที่สร้าง
‫MicroScanner
‫MicroScanner เป็นหนึ่งในเครื่องมือพร้อมกับเครื่องมืออื่นๆ
‫อีกมาก เช่น Anchor เช่นกัน ซึ่งเป็นอีกเครื่องมือหนึ่งที่ได้รับความนิยม
‫สิ่งเหล่านี้เป็นเครื่องมือโอเพนซอร์สทั้งหมดที่สแกนรูปภาพของคุณเพื่อหาช่องโหว่
‫CVE
‫CVE คือฐานข้อมูลของช่องโหว่ของผู้บริจาคโอเพ่นซอร์สทั้งหมดที่เราทุกคนได้ยินในข่าว
‫มาจากบริษัท Mitre ซึ่งเป็นบริษัทที่จัดการฐานข้อมูลนั้น
‫นี่เป็นเรื่องของชุมชนใช่ไหม
‫เมื่อใดก็ตามที่มีคนพบช่องโหว่ในซอฟต์แวร์ พวกเขาจะใส่เข้าไปและได้รับหมายเลข
‫CVE
‫เป็นช่องโหว่และช่องโหว่ทั่วไป บางอย่างเช่นนั้น
‫ฉันจำไม่ได้ว่า CVE ย่อมาจากอะไร
‫ฉันแน่ใจว่าหนึ่งในคุณจะบอกฉันในแชท
‫แต่ CVE ได้ตัวเลขใช่ไหม
‫เราเห็นหมายเลขที่กำหนดให้กับจุดบกพร่องที่รู้จักในชุมชน
‫เครื่องสแกน
‫CVE จะสแกนภาพของคุณเพื่อหาช่องโหว่นั้น
‫เมื่อคุณเริ่มใช้งานสิ่งเหล่านี้แล้ว มีจุดเล็กๆ
‫มากมาย เช่น สแกนเนอร์ที่คุณต้องเรียกใช้ในอิมเมจ
‫Docker ระหว่างเวลาสร้างหรือไม่
‫หรือมันสแกนภาพที่ถูกสร้างขึ้นแล้ว?
‫เครื่องสแกนนั้นรองรับการกระจายฐานของคุณหรือไม่?
‫รองรับ Red Hat หรือไม่?
‫รองรับอัลไพน์หรือไม่?
‫รูปภาพการแจกจ่ายอื่นๆ ที่คุณเลือกใช้ จะสนับสนุนรูปภาพเหล่านั้นหรือไม่
‫นอกจากนี้ยังรองรับตัวจัดการแพ็คเกจของคุณสำหรับแอพของคุณเช่น
‫npm หรือ pip หรือตัวจัดการแพ็คเกจอื่น
‫ๆ อีกโหลใช่ไหม มันสนับสนุนสิ่งเหล่านั้นด้วยหรือไม่?
‫MicroScanner ไม่ได้ทำทั้งหมดนั้น
‫มันทำได้บางส่วน
‫แต่ก็เหมือนกับเครื่องมืออื่นๆ มากมายในระบบนิเวศ พวกเขาไม่ได้ทำทั้งหมด
‫ตอนนี้จาก Aqua Security ชื่อ
‫Trivy มาถึงจุดสูงสุดของสิ่งนี้
‫Trivy อ้างว่าเป็นสแกนเนอร์ฟรีโอเพ่นซอร์สที่สมบูรณ์แบบที่สุด
‫ด้านล่าง คุณจะเห็นสิ่งที่พวกเขาสนับสนุน
‫คุณจะสังเกตเห็นว่าพวกเขาสนับสนุนรูปภาพตามเหล่านี้ทั้งหมด
‫หากคุณลงไปจริงๆ ก็มีการเปรียบเทียบที่แสดงให้เห็นโดยเปรียบเทียบกับเครื่องมืออื่นๆ
‫ทั้งหมด หรืออย่างน้อยก็คือเวอร์ชันโอเพนซอร์สยอดนิยมของเครื่องมือเหล่านี้
‫มีเครื่องมือมากกว่านี้แน่นอน
‫มีตัวเลือกมากมายที่คุณต้องทำที่นี่
‫ทางเลือกหนึ่งคือฉันต้องการสแกนที่ไหน?
‫ฉันต้องการให้ที่เก็บรูปภาพของฉันสแกนเองเหมือนที่ Docker
‫Enterprise DTR ทำหรือไม่
‫ที่ที่คุณมีรีจิสตรีที่มีรูปภาพของคุณ และรีจิสตรีนั้นจะทำการสแกนรูปภาพในรีจิสตรี้เองทั้งหมดในคราวเดียว
‫Quay ก็ทำแบบนี้เหมือนกัน Quay เป็นที่เก็บรูปภาพสำหรับโฮสต์บนคลาวด์
‫และจะสแกนด้วยใช่หรือไม่
‫เครื่องสแกนแต่ละเครื่องเหล่านี้ไม่ได้สแกนภาพทุกประเภทและการพึ่งพาแอพทั้งหมดเสมอไป
‫ดังนั้นมันค่อนข้างดีที่นี่ที่พวกเขาแสดง ... โดยพื้นฐานแล้ว X หมายความว่าพวกเขาไม่ทำ
‫0 หรือ O ตรงนั้น วงกลม หมายถึงพวกเขาทำ
‫จากนั้น
‫ฉันคิดว่า OO สองครั้งที่นี่หมายถึงดีที่สุด
‫และสามเหลี่ยมหมายความว่ามีปัญหา มีความห่วงใยอยู่ที่นั่น
‫ดังนั้นพวกเขาจึงอ้างว่า Trivy ซึ่งพวกเขาซื้อในปีนี้ฉันเชื่อ
‫Trivy
‫ทำทุกอย่าง มันทำแพ็คเกจ OS การพึ่งพาแอปพลิเคชัน
‫พวกเขาอ้างว่าใช้งานง่าย
‫พวกเขาอ้างว่าแม่นยำกว่า หากคุณเริ่มอ่านบทความนี้
‫คุณจะรู้ว่าปัญหาใหญ่ปัญหาหนึ่งที่ฉันพูดถึงอยู่เสมอคือภาพฐานของ
‫Alpine ใช้ไม่ได้กับสแกนเนอร์เหล่านี้เกือบทั้งหมด
‫มันไม่มีฐานข้อมูลช่องโหว่ที่เชื่อมต่ออย่างถูกต้อง
‫ดังนั้นเมื่อคุณเรียกใช้เครื่องสแกนเหล่านี้จะตรวจพบช่องโหว่ใน
‫Alpine
‫Trivy อ้างว่าพวกเขาแก้ไขด้วยวิธีการใหม่ที่พวกเขากำลังนำไปใช้
‫และเราจะดูว่าคนอื่นใช้มันด้วยหรือไม่
‫พวกเขาอ้างว่าสมบูรณ์ที่สุด
‫เพื่อน Docker Captain ของฉันหลายคนต่างบอกว่าพวกเขากำลังใช้และใช้งานได้ดีเยี่ยม
‫การตัดสินใจอีกอย่างหนึ่ง นอกจากเครื่องสแกนใด คุณจะสแกนที่ไหน
‫ฉันชอบที่จะสแกนระหว่างการสร้างภาพ
‫ฉันควรสแกนระหว่างการสร้างรูปภาพอัตโนมัติ
‫CI มากกว่าสแกนภายหลังหลังจากสร้างรูปภาพแล้ว
‫นั่นเป็นเพียงฉัน
‫คุณอาจมีระบบต่างๆ ที่สแกนในเวลาที่ต่างกัน
‫เพื่อความปลอดภัย ใช่ เพื่อความแน่ใจ
‫คุณอาจมีระบบที่สแกนบนเซิร์ฟเวอร์ที่กำลังใช้งานจริง
‫ขึ้นอยู่กับสภาพแวดล้อมของคุณ
‫ที่ไม่ธรรมดามาก
‫แต่ถ้าคุณอยู่ในสภาพแวดล้อมที่ปลอดภัยที่สุดและต้องการสแกนสิ่งที่กำลังทำงานอยู่
‫คุณก็สามารถทำได้ด้วยเครื่องมือเหล่านี้
‫การสาธิตที่ฉันมักจะให้คือเกี่ยวกับ
‫MicroScanner โดยพื้นฐานแล้ว สิ่งที่คุณต้องทำใน
‫MicroScanner เช่นเดียวกับเครื่องมืออื่นๆ ก็คือใน MicroScanner
‫คุณสามารถเพิ่มลงใน Dockerfile ได้
‫ฉันเชื่อว่าแอป Tivey คุณสแกนหลังจากสร้างภาพแล้ว
‫หากคุณเป็นคนหวาดระแวง คุณอาจใช้ MicroScanner
‫ในอิมเมจ Docker ก็ได้
‫จากนั้นคุณอาจเรียกใช้งานบางอย่างเช่น Tivey หลังจากข้อเท็จจริงเกี่ยวกับรูปภาพก่อนที่จะถูกส่งไปยังรีจิสทรี
‫คุณสามารถดาวน์โหลดได้ในภายหลัง
‫แต่ฉันต้องการทราบว่ารูปภาพของฉันไม่มีช่องโหว่ก่อนที่จะส่ง
‫นั่นคือสิ่งที่คุณอาจทำที่นั่น ตอนนี้.
‫ฉันอยากจะบอกคุณแค่คำเตือน
‫คุณคงไม่มี... คุณอาจจะไม่มีภาพใดๆ
‫หรืออาจเป็นเพียงภาพสองสามภาพ ที่ไม่มีช่องโหว่ใดๆ
‫เลยทั่วทั้งกระดาน
‫นั่นเป็นเพียงเพราะธรรมชาติของโอเพ่นซอร์ส
‫โดยทั่วไปแล้ว หากคุณสแกนรูปภาพใดๆ
‫โดยทั่วไป หากคุณสแกนรูปภาพใดๆ ที่นั่น รูปภาพนั้นจะมีช่องโหว่
‫เป็นงานของคุณที่จะทำงานร่วมกับทีมรักษาความปลอดภัยของคุณในสิ่งที่ยอมรับได้
‫ไม่ใช่ว่าเราไม่สามารถมีช่องโหว่ได้
‫เพราะช่องโหว่บางอย่างอาจใช้ไม่ได้กับคุณด้วยซ้ำ
‫เพียงเพราะมันอยู่ในภาพของคุณไม่ได้หมายความว่ามันจะเกิดปัญหาโดยอัตโนมัติใช่ไหม
‫คุณจะต้องทำงานบางอย่าง
‫ฉันคิดว่าสิ่งที่ฉันจะแนะนำคือการใช้สิ่งเหล่านี้ในตอนนี้
‫แต่ปิดประเภทของความล้มเหลวและพูดว่าทำต่อไปในความล้มเหลว ซึ่งหมายความว่าทั้งหมดที่ฉันจะทำคือเตือนคุณว่ามีช่องโหว่
‫ฉันจะไม่หยุดการสร้างเพียงเพราะมีช่องโหว่
‫นี่เป็นกุญแจสำคัญ เพราะถ้าคุณเริ่มใช้เครื่องมือเหล่านี้โดยอัตโนมัติ
‫จะทำให้กระบวนการล้มเหลว
‫พวกเขาจะล้มเหลว CI ของคุณ หรือพวกเขาจะล้มเหลวในการสร้างของคุณ
‫หากคุณเพียงแค่เปิดใช้งาน คุณต้องการให้แน่ใจว่าคุณมีพวกเขาในโหมดการตรวจสอบเท่านั้น
‫ซึ่งพวกเขาจะไม่ล้มเหลวในการค้นหาช่องโหว่
‫อย่างน้อย ด้วยวิธีนี้ คุณจะได้เรียนรู้ว่าช่องโหว่คืออะไรก่อนที่คุณจะเริ่ม
‫ก่อนที่คุณจะไม่ยอมใครง่ายๆ ใช่ไหม?
‫ก่อนที่คุณจะฮาร์ดคอร์