note: Integration, Prioritization, and Response with AWS Security Hub — AWS Virtual Workshop
disclaimer: เป็น note จากการดูวิดีโอ workshop (ไม่ได้ทำแลปเอง) และวิดีโอไม่ได้ครอบคลุมเนื้อหาในแลปทั้งหมด ดังนั้น เนื้อหาจะตกหล่นไปส่วนนึง
โอเค มาเริ่มกัน
ถ้าให้สรุปแบบสั้นๆ
นี่เป็น video training อันนึง ที่จะสอน 2 อย่าง คือ
- การใช้เมนูต่างๆใน dashboard security hub
- การ setup ระบบ detect, analyze และ mitigate ช่องโหว่/misconfiguration บน instance ใน aws แบบอัติโนมัติ (สอนไม่จบ แต่ดูเป็นไอเดียได้)
โอเค มาลอง note กัน
อย่างแรก aws security hub คืออะไร
เป็น service ตรงกลางที่เอาไว้จัดการ security ของ cloud บน aws
มาลองดูตัวอย่างกัน
aws security hub จะมีเมนู integration
ซึ่งนี่เป็นเมนูที่จะจัดการ detector ที่เราจะให้รวม finding มาที่ security hub นี้
เช่นในรูป เขาให้ aws config และ IAM access analyzer มารวม finding ที่นี่
ดังนั้นถ้ามีการแก้ config หรือแก้สิทธิการเข้าถึง instance ที่น่าสงสัย
ก็จะ integrate มาที่นี่
โดยเราสามารถ add service detector อื่นๆเพิ่มได้จากเมนูนี้เช่นกัน
โอเค ไปต่อกัน
เมนูต่อไป findings
เมนูนี้จะรวม finding มาแสดงที่นี่
เช่นในรูปคือ การเปิด port 22 ไว้จะทำให้ถูก hack ได้
โดยนอกจากการแสดงผลในรูป ui เว็บแบบนี้แล้ว
ผล finding ทุกอันจะอยู่ใน format json ที่ตามมาตรฐานเดียวกัน
นี่ทำให้ finding จาก detector ที่แตกต่างกันแสดงผลบนเว็บนี้ได้
และที่สำคัญ
ทำให้เราสามารถนำ finding format นี้ไปใช้กับ third party อื่นๆได้
เช่น เมื่อเจอ finding, third party จะเข้าใจ format นี้ และทำการอุดช่องโหว่นั่นต่อไป
เมนูต่อไป insights
ก็ตามชื่อเลย จะเป็นเมนูในการแสดงผลวิเคราะห์ insight ต่างๆจากการสรุป findings
เช่น ในรูป ถ้ากดเข้าไป จะสรุปจำนวนช่องโหว่แยกตามความรุนแรง
โดยนอกจาก default insight ที่เขาให้มาแล้ว
เราสามารถสร้าง custom insight โดยเลือก finding ที่จะให้ insight นั้นสรุปข้อมูลได้
โดยในคลิปเขาจะเริ่มจากการเปิดให้ทำการแจ้ง finding ใหม่เข้ามา
นั่นคือ finding ที่จะแจ้งเตือน ถ้าไม่ได้มีการ encrypt ค่าของ service อันนึงชื่อว่า traillog
จากนั้นทำการสร้าง insight แยกสำหรับ finding นี้ขึ้นมา
เมื่อสร้างเสร็จแล้ว insight นี้ก็จะ visualize finding นี้ออกมา
เช่นจากรูปจะแสดง bar graph เพื่อบอกจำนวนที่เจอ finding นี้ในแต่ละ resource
เมนูต่อไป security standard
อันนี้จะเป็นเมนูที่สรุปว่าตอนนี้ instance ของเรา เป็นไปตาม security standard มากน้อยแค่ไหน
โดยจะเป็น security standard default ที่ตั้งมาใน aws security hub
เช่น security standard ของ aws เอง ตามรูป
โดยในรูปจะเห็นว่า มีการตั้ง standard ไม่ให้มีการปล่อยให้ access port 22 โดยไม่ blacklist/whitelist ip
ดังนั้นถ้า instance อันไหนไม่ได้ทำตาม standard นี้ ก็จะมาขึ้นในเมนูนี้ละนะ
โดยเราสามารถกดแก้จากตรงนี้ได้เลย
จะเห็นได้ว่ามี 2 ปุ่ม
config rule คือจะกระโดดไปหน้าแก้ config เลย
ส่วน configuration timeline คือจะแสดงให้ดูประวัติการแก้ config ที่ผ่านมา
เมนูต่อไป setting
เมนูนี้ก็ไว้จัดการ setting ของ aws security เอง
เช่นไว้ดูว่าตอนนี้ค่าใช้จ่ายที่เกิดจากการใช้ aws security hub เป็นเท่าไหร่
โอเค ส่วนของการสอนการใช้ ui หลักๆของ aws security hub จะจบเท่านี้
ส่วนต่อมาคือการสอน การ setup ระบบที่จะทำการ analyze finding แล้วทำการสร้าง action (สร้างปุ่มไว้กด) เพื่ออุดรูรั่วนั้น
เข้าใจว่าจริงๆทำให้การอุดนั้นเป็น automate ได้ แต่เค้าไม่ได้สอนถึงตรงนั้นละนะ
โอเค มาเริ่มกัน
ก่อนอื่นมาดูภาพรวมกันก่อน
ก่อนอื่นเข้าใจว่า aws support การมี security hub แยกกันระหว่าง admin account, member account และให้ admin account สามารถ config rule เพื่อดูแล member account ได้ (อันนี้เดานะ ต้องลอง handon ถึงจะมั่นใจ ดังนั้นเราจะข้ามเรื่อง admin account/member account ไป)
โอเค จากภาพ finding จะถูกส่งมา ingest ที่ cloudwatch logs rule แล้วส่งไปให้ ก้อน playbooks + lambda แก้ไข finding นั้น
โดยใน lab agenda ที่จะทำคือ
- deploy ระบบ playbooks
- สร้าง action ปุ่มกด สำหรับการ isolate instance ที่มี finding (เพื่อจำกัด blast radius หรือก็คือ วงความเสียหาย)
- เดาว่าทำการให้ playbooks มาเรียก action ที่สร้าง ? ไม่แน่ใจแหะ เพราะวิดีโอเขาตัดจบด้วย
โอเค ก่อนอื่น playbooks คืออะไร ?
เข้าใจว่าเป็น service ที่เราสามารถเข้าไปตั้ง rule สำหรับการวิเคราะห์ finding ได้
คล้ายๆไปตั้ง when connection lost => ping if ping fails then telnet ไรงี้ละนะ
ต้องลองใช้จริงก่อนถึงจะรู้แหะ
โดยในคลิปเขาจะใช้ cloudFormation ในการ create/deploy service playbooks อันนี้
cloudFormation คืออะไร ?
คือ service ที่คล้ายๆ terraform คือเราสามารถเขียน config file ที่จะสร้าง instance service ต่างๆบน aws ได้ โดยที่เราไม่ต้องไปกด ui เอง
เช่น enable service playbook อันใหม่
ตรงนี้เราจะไม่ลง detail ลึกมาก เพราะคลิปเขาสร้างมาเสร็จแล้ว แต่ไม่ได้เอาไปใช้ เพราะคลิปตัดจบก่อน
agenda ข้อที่สอง การสร้างปุ่ม action สำหรับกดเพื่อ isolate instance ที่เจอ finding
ส่วนนี้จะแบ่งเป็น 2 step ใหญ่ๆ นั่นคือ
- สร้างปุ่ม step นี้จะเป็นการกำหนดชื่อ และ id ปุ่มเฉยๆ (เข้าใจว่าอย่างนั้นนะ)
โดยปุ่มนี้จะมี id เรียกว่า arn เลข id นี้เราจะใช้เพื่อกำหนดว่า ปุ่มนี้ทำอะไรได้ในภายหลัง
โอเค สร้างปุ่มกดใน aws security hub เสร็จแล้ว
step ที่สองคือ ทำให้เมื่อกดปุ่มนี้ จะทำการ isolate instance ที่เจอ finding
ส่วนนี้เราจะใช้ service ชื่อ aws EventBridge
โอเค เราจะแคปภาพมาเฉพาะ step หลักๆนะ
จากภาพ เราจะบอก EventBridge ว่าให้ฟัง event การกดปุ่ม custom action นะ
โดยเมื่อมี event นี้เข้ามา ให้ทำการ isolate instance
ส่วนนี้จะใช้ aws lamda เป็น service ที่ทำการเข้ามา execute
โอเค มา test ปุ่ม isolate นี้กัน
เริ่มจากมาเลือก finding
โดยเข้ามาที่ instance ที่เจอ finding นั้น
สังเกตุว่าตอนนี้ security group ของ finding นั้น เป็น default (คือยังไม่ถูก isolate)
จากนั้นเมื่อเรากลับมาที่ aws security hub เราสามารถเลือก finding ที่เราจะทำการ isolate instance ได้
จะเห็นได้ว่า instance ถูก isolate มาที่อีก security group นึงแล้ว
โอเค เป็น workshop ที่ดีนะ เสียดายที่ video ตัดจบแหะ
เข้าใจว่าจริงๆแล้วในวิดีโอ เป็น partner ของ aws ที่มาสอนมั้ง
ซึ่งถ้าเรียนทันตอนนั้น น่าจะเข้า session ที่เรียนได้โดยไม่เสียค่า service aws
เพราะ aws security hub ไม่ฟรีละนะ