วิธีการใช้งาน Amazon Inspector สำหรับ EC2
สวัสดีครับ POP จากบริษัท Classmethod (Thailand) ครับ
ครั้งนี้ผมจะมาแนะนำวิธีการใช้งาน Amazon Inspector สำหรับ EC2
Amazon Inspector คืออะไร
Amazon Inspector เป็นบริการจัดการช่องโหว่ที่สแกนหาช่องโหว่ของซอฟต์แวร์และการเปิดเผยเครือข่ายโดยไม่ได้ตั้งใจอย่างต่อเนื่อง ซึ่ง Container Image ที่มีอยู่ใน Amazon EC2 และ Amazon ECR จะถูกสแกน
คุณสมบัติของ Amazon Inspector V2
- รองรับ EC2 (Linux และ Windows)
- รองรับการสแกน Amazon EC2 และ Amazon ECR
- ใช้ Amazon Systems Manager (SSM) Agent สแกนช่องโหว่ EC2 (ไม่ต้องติดตั้ง Agent)
- ข้อมูลช่องโหว่ถูกจัดลำดับความสำคัญโดย Common Vulnerabilities and Exposures (CVE)
- ผลการสแกนสามารถเชื่อมโยงกับ Amazon Security Hub และ Amazon EventBridge ได้
อ่านรายละเอียดเพิ่มเติมได้ที่ลิงก์บทความด้านล่างนี้
เกี่ยวกับการดำเนินการสแกนของ AWS Inspector
เมื่อเปิดใช้งานการสแกน Amazon EC2 ด้วย Amazon Inspector (Inspector) ระบบจะสแกน EC2 Instance ทั้งหมดที่ถูกตั้งค่า Amazon SSM Agent ใน Account
Inspector จะดำเนินการสแกนโดยอัตโนมัติตามเงื่อนไขต่อไปนี้
- สำหรับ EC2
- เมื่อมีการติดตั้งหรือถอนการติดตั้ง Software packages ใหม่ใน Instance
- เมื่อมีการเผยแพร่ CVE ใหม่ (เมื่อตรวจพบช่องโหว่)
- เมื่อมีการอัปเดต Packages ที่มีช่องโหว่
- สำหรับ ECR
- เมื่อมีการเผยแพร่ CVE ใหม่ (เมื่อตรวจพบช่องโหว่)
- การสแกน Container Image ซ้ำเป็นเวลา 30 วันแรกหลังจาก Push Image
ดูรายละเอียดได้ที่ลิงก์ด้านล่างนี้
Amazon Inspector FAQs
การเปิดใช้งาน Inspector
ก่อนอื่นให้ Login เข้ามาที่หน้า AWS Management Console แล้วค้นหา ?︎ Inspector
แล้วเลือกInspector
เมื่อเปิดใช้งาน Inspector เสร็จแล้วจะแสดงหน้าจอแบบนี้
ต่อไปให้เตรียม Windows Server เพื่อใช้ในการทดสอบสแกนหาช่องโหว่
การเตรียม Windows Server
- สร้าง IAM Role โดยอนุญาตให้ Amazon Inspector สามารถเข้าถึง EC2 ได้
- สร้าง Windows Server ใน EC2 (โดยไม่ต้อง Login)
การสร้าง IAM Role
เข้ามาที่ Service IAM แล้วค้นหา ?︎ IAM
แล้วเลือก IAM
Step 1 - Select trusted entity:
Trusted entity type
» เลือก AWS service
Use case
» เลือก ◉ EC2
» คลิก Next
Step 2 - Add permissions:
» ค้นหา Permissions policies: AmazonSSMManagedInstanceCore
» ติ๊ก ✅
AmazonSSMManagedInstanceCore
» คลิก Next
Step 3 - Name, review, and create:
» Name: ec2-tinnakorn-inspector
(ชื่ออะไรก็ได้)
เลื่อนลงมาด้านล่างสุด คลิก Create role
การสร้าง Windows Server ใน EC2
ดูวิธีการสร้าง Windows Server ใน EC2 ได้ที่ลิงก์ด้านล่างนี้ (ให้อ่าน ตัวอย่างตั้งค่าการสร้าง Microsoft Windows Server ใน EC2 ประกอบด้วย เนื่องจากมีขั้นตอนการเพิ่ม Role ที่ไม่ได้เขียนในลิงก์บทความด้านล่างนี้)
ตัวอย่างตั้งค่าการสร้าง Microsoft Windows Server ใน EC2
※Create Key pairs
Key pairs:tinnakorn-inspector
(ตั้งชื่อที่ต้องการ)
Key pair type:RSA
Private key file format: ◉pem
※Launch instances
Name and tags
Name:tinnakorn-inspector
(ตั้งชื่อที่ต้องการ)Application and OS Images (Amazon Machine Image)
Amazon Machine Image (AMI):Microsoft Windows Server 2022 Base
Instance type
Instance type:t3a.medium
Key pair (login)
Key pair name - required:tinnakorn-inspector
(key pair ที่สร้างขึ้นเมื่อสักครู่นี้)Network settings
Firewall (security groups)
Security group name - required:tinnakorn-inspector
(ตั้งชื่อที่ต้องการ)
Description - required:tinnakorn-inspector
(ป้อนตามต้องการ)
Inbound security groups rules
Security group rule 1 (TCP, 3389, xxx.xxx.xxx.xxx/32)
Type:rdp
| Source type:My IP
| Source: xxx.xxx.xxx.xxx/32Configure storage
1x:30
GiBgp2
Root volume (Default)
** จากนี้ไปคือการเพิ่ม Role เพื่ออนุญาตให้ Inspector สามารถสแกน EC2 ได้ **คลิก Advanced details เพื่อขยายหน้าจอ แล้วเลือก Role ที่เราสร้างไว้ก่อนหน้านี้
เมื่อสร้างเสร็จแล้วไม่ต้อง Login ก็ได้ เพราะการสาธิตนี้คือการใช้ Inspector สแกน EC2
ตรวจสอบสถานะ Findings: By instance
หลังจากรอ Windows Server เริ่มต้นระบบเสร็จแล้ว กลับมาที่ Service [Inspector > Dashboard] จะเห็นว่าขึ้น 100% เนื่องจาก Inspector ตรวจพบ Instance ที่ได้รับอนุญาตจาก Role ที่เพิ่มเข้าไปยัง Windows Server ที่สร้างเมื่อสักครู่นี้ จึงสามารถเข้าถึงและสแกนหาช่องโหว่ได้ จากนั้นคลิกที่ Instance: 100%
(โปรดทราบว่าอาจต้องใช้เวลาในการสแกนจนกว่าจะเสร็จสมบูรณ์)
แล้วคลิกเข้าไปที่ EC2 Instance
ของเราได้เลย
เมื่อเข้ามาแล้ว จะแสดงเป็น [■ Medium | Port 3389 is reachable from an Internet Gateway] ซึ่งส่วนนี้เราสามารถดูข้อมูลเพิ่มเติมได้โดยคลิก Port 3389 is reachable from an Internet Gateway
แล้วจะมีข้อมูลแสดงโดยเลื่อนออกมาจากด้านขวา
ต่อไปเราจะไปดูช่องโหว่ที่ตรวจพบกัน ให้เลือก By vulnerability
จากเมนูด้านซ้าย และเลือกแท็บ By vulnerability
ก็จะเห็น Vulnerability: 3389 (RDS) และ 22 (SSH) แสดงอยู่ที่นี่ โดยสถานะที่แสดงที่ All ตอนนี้คือ Medium
การตั้งค่า Suppression rules
เราสามารถ Filter ผลลัพธ์ที่แสดงได้
ครั้งนี้มาตั้งค่า Severity เพื่อไม่ให้แสดงรายการภายใต้ Medium กัน
เลือก Suppression rules
จากเมนูด้านซ้าย และคลิก Create rule ด้านขวา
ตั้งชื่อที่ต้องการในช่อง Name เช่น except-under-middle
และพิมพ์ Severity
ลงในช่อง Suppression rule filters และคลิก Severity
แล้วติ๊ก [✅Medium, ✅Low, ✅Informational, ✅Untriaged] และคลิก Apply
แล้ว filter จะเพิ่มเป็น [Severity: Medium, Low, Informational, Untriaged] แบบนี้ จากนั้นคลิก Save
เมื่อเสร็จแล้วจะแสดงแบบนี้ เพียงเท่านี้การตั้งค่า Suppression rules ก็เสร็จแล้ว
ต่อไปเราจะมาตรวจสอบสถานะดูว่า Medium จะแสดงอยู่ใน Findings หรือไม่
ให้เลือก Account management จากเมนูด้านซ้าย แล้วคลิกเข้าไปที่ EC2 Instance
ของเราอีกครั้ง
จะเห็นว่าแสดงเป็น No findings ก็คือไม่มีสถานะ Medium แสดงที่นี่แล้ว
การปิดใช้งาน Inspector
คลิก General
จากเมนูด้านซ้าย แล้วคลิก Disable Inspector
ด้านขวา
แล้วจะมีหน้าจอยืนยันการปิดใช้งาน Inspector แสดงแบบนี้ แล้วพิมพ์ disable
ลงในช่อง แล้วคลิก Disable Inspector
ก็จะแสดงหน้าจอแบบนี้เหมือนกับตอนแรกที่เราจะทำการเปิดใช้งาน Inspector
สรุป
การทดลองใช้ Amazon Inspector ในครั้งนี้ ผมได้ใช้สแกนหาช่องโหว่ของ Windows Server ใน EC2 Instance ซึ่งการตั้งค่าและการใช้งานง่ายมากๆ เพราะผมสามารถเปิดใช้งาน Amazon Inspector เพื่อสแกน Windows Server ได้ด้วยการคลิกเพียงครั้งเดียว นอกจากนั้นก็ตั้งค่าตามต้องการ เช่น ไม่ให้แสดงสถานะที่ไม่จำเป็นอย่าง Medium เป็นต้น
ผมหวังว่าบทความนี้จะเป็นประโยชน์ให้กับผู้อ่านได้นะครับ
POP จากบริษัท Classmethod (Thailand) ครับ !