Amazon GuardDuty คืออะไร? การแนะนำฟังก์ชันล่าสุดของ AWS

นี่เป็นบทความแปล ที่มีเนื้อหามาจากบทความภาษาญี่ปุ่นของ Classmethod, Inc. ในหัวข้อ「AWS再入門ブログリレー2022 Amazon GuardDuty 編」 หากผู้อ่านสนใจอ่านเนื้อหาต้นฉบับสามารถอ่านได้ที่ลิ้งค์ "บทความต้นฉบับ" ด้านล่าง เนื้อหาในบทความนี้การอธิบายบางอย่างจะถูกปรับให้เข้าใจง่ายขึ้นทำให้แตกต่างจากต้นฉบับในบางจุด
2022.07.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

สวัสดีครับทุกคน อาชิซาวะ ครับ

รายการนี้จะเขียนเกี่ยวกับ AWS ปี 2022 ฉบับเบื้องต้น โดยฝ่าย Consulting ของบริษัทเราเอง นี่เป็นบทความที่จะมาเล่าเกี่ยวกับเนื้อหา AWS Service มาเล่าใหม่อีกครั้งว่ามีอะไรถูกอัพเดทอะไรบ้างแล้ว
แบบละเอียด/เจาะลึกตั้งแต่เบสิกพร้อมคำอธิบาย โดยเหล่าสมาชิกที่เคยเขียนบทความเหล่านี้มาแล้ว

เหมาะสำหรับผู้ที่ต้องการเริ่มเรียนเกี่ยวกับ AWS หรือผู้ที่ใช้งาน AWS อยู่แล้ว แต่ต้องการหาความรู้ใหม่ว่าปี 2022 มีการอัพเดทอะไรบ้าง หากคุณใช่บุคคลเหล่านี้
ทางผู้เขียนก็หวังว่าบทความนี้จะเป็นประโยชน์สำหรับคุณครับ

งั้นก็ไปเริ่มกันเลยครับ Theme ในวันนี้คือ "Amazon GuardDuty" ครับ

Amazon GuardDuty คืออะไร

GuardDuty คือ Security Service ครับ โดยในบรรดา Security Service ทั้งหลายตามภาพด้านล่าง ก็ได้รับหน้าที่ในการ Detect ครับ เป้าหมายของการ Detect คือ "การตรวจจับเหตุการณ์หรือสถานการณ์และพฤติกรรมที่มีความเสี่ยงด้านความปลอดภัยตั้งแต่แรกๆและเชื่อมโยงเข้ากับการกระทำ" ครับ


ที่มา: AWS 環境における脅威検知と対応 #AWS-39 | AWS Summit Online

ภาพด้านบนเป็นการควบคุมความปลอดภัยของ NIST ที่แบ่งเป็น 5 ประเภท(Identify, Protect, Detect, Respond, Recover) และมีการแบ่ง AWS Service ไปในหมวดต่างๆ ตามที่เห็น

โดยข้างในนี้มีที่เป็น Detect Service ได้แก่

  • Amazon GuardDuty:
    • บริการตรวจจับภัยคุกคาม
    • ตรวจจับกิจกรรมที่น่าสงสัยจากร่องรอยและ Network Logs
  • Amazon Inspector:
    • Apps Scan Service
    • ทำการสแกนช่องโหว่บน EC2 Instance และ ECR Image อย่างต่อเนื่อง
  • AWS Security Hub:
    • การจัดการเหตุการณ์การรักษาความปลอดภัยแบบรวมศูนย์และบริการการจัดการเมื่อตั้งค่าการรักษาความปลอดภัยบนคลาวด์
    • [การจัดการเหตุการณ์การรักษาความปลอดภัยแบบรวมศูนย์] หมายถึง การรวบรวมอีเวนท์ของแต่ละ Security Service มารวมที่เดียวกันเพื่อดูแลจัดการ
    • [การจัดการเมื่อตั้งค่าการรักษาความปลอดภัยบนคลาวด์] หมายถึง การประเมินการโครงสร้าง AWS ที่สร้างขึ้นเพื่อค้นหาความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้น
  • Amazon Macie:
    • บริการตรวจจับข้อมูลที่ละเอียดอ่อน
    • สแกน S3 Bucket เพื่อค้นหาข้อมูลที่ละเอียดอ่อน

ตามที่เขียนไว้ด้านบน GuardDuty เป็น "Detect" Service ที่มีหน้าที่ "ตรวจจับภัยคุกคาม"
งั้นเราจะมาเจาะลึกกันอีกหน่อยกับสิ่งที่ GuardDuty ทำกันนะครับ

การวิเคราะห์ Logs อย่างต่อเนื่อง

GuardDuty การวิเคราะห์ Logs แต่ละชนิดให้อย่างต่อเนื่อง Logs ในที่นี้หมายถึง Logs ของ การดำเนินการ API, S3 Access Logs หรือ Network Logs
โดยไม่จำเป็นที่จะต้องให้ User เป็นคนเตรียม Logs หรือ เริ่มกดปุ่มวิเคราะห์เอง เพราะ GuardDuty (AWS) จะจัดการให้เอง

การตรวจจับภัยคุกคาม


และ ตรวจจับ Activity ที่ประสงค์ร้าย ออกมาให้ ยกตัวอย่างเช่น "ข้อมูลการตรวจสอบสิทธิ์ภายนอกเอาไปใช้", "EC2 Instance ถูกเอาไปขุด CrytoCurrency" โดยเราสามารถตรวจสอบผลลัพท์(Findings)ได้ที่ Management Console หรือใช้ AmazonEventBridge(Event cooperation service) เพื่อส่ง Alarm notification ได้ โดยเราสามารถเริ่มการดำเนินการ Security Action ได้ที่ GuardDuty นี่เอง

เราสามารถเปิดการใช้งาน GuardDuty ได้ที่นี่

การเปิดใช้งาน GuardDuty นั้นทำได้ง่ายมากๆ ทำหรับท่านผู้อ่านที่ยังไม่ได้เปิดใช้งาน เราแนะนำให้ลองกดตามดูได้เลย
(ใช้ฟรี 30 วัน)

ให้ไปที่หน้า Service ของ GuardDuty แล้วกดปุ่ม Get Started

อ่าน "Service permissions" จนเข้าใจแล้วเลือก Enable GuardDuty ครับ

แค่ 2 คลิกก็สามารถเปิดใช้งานได้แล้วครับ

ซึ่งการใช้งานง่ายๆนี้ก็เป็นข้อดีอย่างนึงของ GuardDuty ครับ

ความหมายของ GuardDuty finding

จากที่เล่าไปในบทที่ผ่านมา การเริ่มใช้งาน GuardDuty ที่เป็นผลลัพท์ข้อมูลว่าตรวจเจออะไรบ้างนั้นง่ายมากครับ แน่นอนว่าฝั่ง User เองก็สามารถปรับแต่งให้เข้ากับการใช้งานของตัวเองได้ แต่จะปล่อยไว้ในแบบ Default แบบเดิมก็ไม่มีปัญหาอะไรครับ

แต่สิ่งที่ User ควรให้ความสำคัญคือ "การเข้าใจความหมายของผลลัพท์ GuardDuty finding และการปฎิบัตตามครับ"
เพราะฉนั้นในหัวข้อนี้ เราจะมาอธิบายเกี่ยวกับเนื้อหาใน GuardDuty finding กันครับ

GuardDuty finding format

ผลลัพพท์จะแสดงในรูปแบบที่เรียกว่า GuardDuty finding format ซึ่งจะเป็น JSON ครับ

แต่ว่าเราไม่ต้องมาพยายามนั่งแกะว่าเขียนอะไรจากใน JSON นี้ก็ได้ครับ
เราสามารถตรวจสอบผลลัพท์ข้อมูลได้จากหน้าต่าง Managedment Console ใน "findings(ผลการตรวจจับ)" ครับ
(นอกจากนี้คุณยังสามารถทำแบบตรวจสอบข้อมูลคร่าวๆ ได้โดยใช้ "Amazon Detective" ซึ่งคำอธิบายอยู๋ในหัวข้อด้านล่าง)

Type


นี่คือองค์ประกอบที่สำคัญที่สุดครับ
ซึ่งจะเป็นการระบุว่า "เกิด Activity แบบไหนขึ้น" ตอนที่ดูผลลัพท์ของ GuardDuty finding ให้ดูที่หัวข้อก่อนเลย

ด้านล่างนี้จะเป็นประเภทของ Type ที่จะเจอใน GuardDuty

โดยตัวระบุจะแบ่งออกตามประเภทของ Resource โดย ณ ที่เขียนบทความอยู่ตอนนี้มีจำนวน 4 ประเภทครับ

  • EC2 finding types ... Type ที่เกี่ยวข้องกับ EC2 Instance
  • IAM finding types ... Type ที่เกี่ยวข้องกับ IAM Resource หรือ Access Key
  • S3 finding types ... Type ที่เกี่ยวข้องกับ S3 Resource(Object)(จะมีเล่าอีกทีในหัวข้อ Update)
  • Kubernetes finding types ... Type ที่เกี่ยวข้องกับ Amazon EKS cluster(จะมีเล่าอีกทีในหัวข้อ Update)

ยกตัวอย่างเช่น จะเห็นว่าภาพด้านบนเป็น UnauthorizedAccess:EC2/SSHBruteForce ซึ่งเป็นผลลัพท์ของ EC2 finding types
โดยมีคำอธิบายตาม Document นี้ GuardDuty EC2 finding types - UnauthorizedAccess:EC2/SSHBruteForce

เราไม่จำเป็นต้องรู้เกี่ยวกับชื่อความหมายของผลลัพท์ทั้งหมดก็ได้ ขอแค่รับรู้อันที่มีความเสี่ยงสูง แล้วอ่าน Document เพื่อทำความเข้าใจไว้ก็พอ
เพื่อให้ตอนที่ GuardDuty ตรววจเจอจริงๆ จะได้ทำงานได้อย่างสมูท

attributes อื่นๆของผลการตรวจจับ

เมื่อเราทราบผลการตรวจจับว่า "มี Activity อะไรเกิดขึ้นบ้างแล้ว" ต่อไปเราจะมาดูเกี่ยวกับ attributes บ้างครับ

โดยพื้นฐานแล้วให้ดูใน หน้าที่แสดงรายละเอียด ของ Management Console จากบนลงล่างได้เลยครับ
ผมขอไม่เล่าเกี่ยวกับทุกๆ attributes แต่แนะนำให้ดูในส่วนของ Resource role ครับ

Resource role


โดยสิ่งนี้จะแสดงให้เห็นว่า เราเป็นผ่ายโจมตี หรือถูกโจมตี
กรณีที่เป็น Resource role=TARGET หมายความว่าเรากำลังเป็นเป้าหมายจาก Activity ที่น่าสงสัยอยู่ครับ
กรณีที่เป็น Resource role=ACTOR หมายความว่าเรากำลังเป็นตัวละครที่กำลังทำ Activity ที่น่าสงสัยอยู่ครับ

ให้เราสังเกต "Types" หรือ "Resources (resource IDs กับ resource roles)" แล้วดูว่า

  • มี Activity แบบไหนเกิดขึ้น
  • มีความเกี่ยวข้องกับ Resource อะไร
  • Resource นั้นเป็น ผ่ายโจมตี(ACTOR) หรือผ่ายถูกโจมตี(TARGET)

Customization, service cooperation

IP List

เราสามารถ Customize Trusted IP lists กับ Threat lists ได้ที่ Settings > Lists ครับ

Trusted IP lists

เราสามารถลงทะเบียน "IP Address ที่เราทราบว่าสามารถเชื่อมต่อได้อย่างปลอดภัย" ได้
โดยเราจะไม่เจอผลตรวจสอบ(ในหน้า Findings) Activity ของ IP Address ที่ลงทะเบียน

Trusted IP lists

เราสามารถลงทะเบียน "IP Address ที่เราทราบว่าอันตรายต่อการเชื่อมต่อ" ได้
โดยเราจะเจอผลตรวจสอบ(ในหน้า Findings) Activity ของ IP Address ที่ลงทะเบียน

Filter Rule

ในหน้าต่าง Findings เราสามารถสร้าง Filter Rule ได้ โดย Filter Rule จะต้องลงทะเบียนในรูปแบบ "Filter ที่เลือก"

ผลลัพท์ที่ตรงกับ "Filter ที่เลือก" จะถูกบันทึกลง Archive โดยอัตโนมัติ

โดยเราจะใช้สิ่งนี้ต่อเมื่อเราเจอผลลัพท์ที่ลวง หรือเป็น Noise
ในกรณีนั้น โปรดทราบว่าคุณสามารถ "ยกเว้นเฉพาะผลลัพท์ที่ลวง(Exclude only false positives)" ได้โดยใช้ Filter เข้าด้วยกัน
และได้โปรดระวังอย่าให้ผลการตรวจจับที่คุณต้องการให้ตรวจพบถูก Archive

การแจ้งเตือน

เราจำเป็นต้องมี Security ที่ตอบสนองไวไว้ใช้สำหรับบางเนื้อหาของผลการตรวจจับ
ทำให้เราจำเป็นต้องมีระบบการแจ้งเตือน โดยผู้เขียนแนะนำให้สร้างเอาไว้

โดยจะใช้ EventBridge เพื่อสร้างระบบที่จะส่งการแจ้งเตือนไปยัง อีเมล์ Slack หรือระบบเฝ้าระวังต่างๆ

service cooperation

AWS Security Hub cooperation

Security Hub ก็เป็น Service ตรวจจับชนิดหนึ่ง โดยมี Feature ใหญ่ๆอยู่ 2 อย่างคือ

  • [Centralized security event management] รวบรวมอีเวนท์ต่างๆที่เกิดจาก Security Services ต่างๆเพื่อควบคุม AWS เพื่อค้นหาความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้น
  • [Cloud security posture management] ประเมินโครงสร้างบน AWS เพื่อค้นหาความเสี่ยงด้านความปลอดภัยที่อาจเกิดขึ้น

โดย Feature [Centralized security event management] มีความเกี่ยวข้องกับ GuardDuty
ผลลัพท์ของ GuardDuty สามารถให้ฝั่ง Security Hub จัดการดูแลควบคุมได้เหมือนกัน
โดยการตั้งค่านี้เป็น Default อยู่แล้วไม่จำเป็นต้องปรับแต่งอะไรเพิ่มเติม

นอกจากนี้ การอัพเดทที่เกิดในช่วงนี้ทำให้สามารถ "cross-Region aggregation(การรวมภูมิภาค)" ของ Security Hub ได้แล้ว
ทำให้ Event ของ GuardDuty ที่กระจายอยู่ในแต่ละ Region ถ้าใช้งาน Security Hub ก็ จะสามารถรวมอีเวนท์ไว้ดูที่เดียวได้

Amazon Detective integration

Amazon Detective คือ Service ที่มีหน้าที่ตรวจสอบความปลอดภัยครับ โดยจะทำการวิเคราะห์, สำรวจ, ระบุ สาเหตุของ Activity ที่น่าสงสัยอย่างง่าย และยังทำการ Visualization Logs ต่างที่มีความเกี่ยวข้องให้อีกด้วย

โดยตัว Detective นี้ก็ได้ถูกใส่ไว้ใน GuardDuty ให้แต่เริ่มต้นแล้ว โดยเราสามารถไปยังหน้าต่าง Detecttive ได้ทันทีผ่านหน้าต่าง Management Console ของ GuardDuty

โดยผู้เขียนแนะนำให้เปิดการใช้งาน Detective ไว้เพื่อความรวดเร็วในการตรวจสอบเมื่อต้องสำรวจเหตุการณ์เกิดขึ้น

Multi-account use(AWS Organizations integration)

GuardDuty สามารถใช้เชื่อมกับหลายๆ Account ได้ครับ

จากภาพด้านบนจะสังเกตได้ว่ามี "Account ที่ควมคุม(1ตัว)" กับ "Member Account(หลายตัว)"
โดย Account ที่ควมคุม สามารถรวมผลลัพท์การตรวจจับจาก GuardDuty มาไว้ที่เดียวเพื่อควบคุมได้

ถ้าเป็น Environment ของ AWS Organizations จะสามารถ Set-up โครงสร้าง Multi-account use ตามที่เห็นแบบภาพด้านบนได้อย่างง่าย
ถ้าเป็นกรณีทั่วไปจำเป็นต้องมีการ "การเชิญจาก Account ที่ควมคุมระบบ ไปยัง Member Account" และ "การตอบรับที่จะเป็น Member Account"
แต่ถ้าใช้ AWS Organizations integration จะสามารถลดขั้นตอนพวกนี้ได้

โดยสามารถอ่านข้อมูลเพิ่มเติมได้ที่

Update

ในหัวข้อนี้เราจะมาแนะนำการอัพเดทที่ค่อนข้างใหม่ของ GuardDuty มาเล่าให้ฟังกันครับ

S3 Protection

เดือน 7 ปี 2020 ได้มีการอัพเดทฟังก์ชัน S3 Protection เข้ามาครับ เมื่อเราทำการเปิดใช้งานฟังก์ชันนี้ GuardDuty จะทำการ Monitoring API ระดับ Object ของ S3 เลยจะทำให้สามารถตรวจจับพฤติกรรม Object ที่น่าสงสัยได้

หากต้องการ Monitoring S3 Bucket หรือ Object อย่างเต็มรูปแบบ ก็ให้เปิดใช้งานฟังก์ชันนี้ไว้กันนะครับ

การตรวจจับภัยคุกคามสำหรับ EKS Cluster

เดือน 1 ปี 2022 ได้มีการเพิ่มการซัพพอร์ท การตรวจจับภัยคุกคามสำหรับ Amazon Elastic Kubernetes Service (Amazon EKS) Cluster เข้ามาครับ
เมื่อเราเปิดการใช้งานฟังก์ชันนี้ GuardDuty จะทำการเพิ่ม Audit Logs ของ Amazon EKS เข้าไป แล้วส่งผลการตรวจจับออกมาครับ

การซัพพอร์ทอื่นๆที่เพิ่มเข้ามา

ในหัวข้อที่แล้วเราได้ทำการแนะนำเกี่ยวกับ การซัพพอร์ทการตรวจจับของ Resource ใหม่ๆแล้ว("S3 Protection" กับ "การตรวจจับภัยคุกคามสำหรับ EKS Cluster")

Resource อื่นๆเองที่ได้รับการซัพพอร์ทอยู่แล้ว ก็ได้รับการปรับปรุง หรือ การเพิ่มซัพพอร์ทรูปแบบใหม่เข้ามา ยกตัวอย่างเช่นด้านล่างต่อไปนี้

Change Description Date
Updated the finding types to help identify issues related to log4j Amazon GuardDuty has updated the following finding types to help identify and prioritize issues related to CVE-2021-44228 and CVE-2021-45046: Backdoor:EC2/C&CActivity.B; Backdoor:EC2/C&CActivity.B!DNS; Behavior:EC2/NetworkPortUnusual. 22-Dec-21

สรุป

ก็จบกันแเล้วนะครับ Amazon GuardDuty เราจะเห็นได้ว่าเจ้า Service ตัวนี้ได้รับการอัพเดทอย่างต่อเนื่อง เพราะเป็น Service ที่อยู่ในตำแหน่งที่สำคัญ(Security) อย่างน้อยเพื่อความปลอดภัยของธุรกิจของทุกท่าน ผมแนะนำให้อย่างน้อยก็ควรเปิดไว้สำหรับ Main Region ที่ใช้งานอยู่ และถ้าเป็นไปได้ก็ให้เปิดการใช้งานไว้ทุก Region ได้ก็จะดีครับ

สำหรับบทความนี้ก็จบเพียงแค่นี้ครับ แล้วเจอกันใหม่ในบทความต่อไปครับ สวัสดีครับ /ต้า

บทความต้นฉบับ

AWS再入門ブログリレー2022 Amazon GuardDuty 編 | DevelopersIO

บทความที่เกี่ยวข้อง