ไม่มีทรัพยากรเพียงพอที่จะตั้งแผนกความปลอดภัยแต่ต้องการติดตามเหตุการณ์ AWS CloudTrail ของคุณอยู่หรือไม่? ค้นหาว่าโมดูล CloudTrail-to-Slack Terraform โดย FivexL แก้ปัญหานี้สำหรับสตาร์ทอัพและทีมขนาดเล็กได้อย่างไร

โมดูล Terraform สำหรับ AWS CloudTrail — เครื่องมือความปลอดภัยที่มีประสิทธิภาพ ลิงก์ไปยังหัวข้อ

ในขณะที่บริษัทขนาดใหญ่มีศูนย์ปฏิบัติการความปลอดภัย (SOCs) ของตนเองที่รับผิดชอบด้านความปลอดภัยของข้อมูลและสามารถจ่ายค่าโซลูชันราคาแพงได้ สตาร์ทอัพมักไม่มีทรัพยากรและเวลามากพอที่จะตั้งระบบหรูหราเช่นนั้น ดังนั้นพวกเขาจึงต้องมองหาโซลูชันความปลอดภัยที่เรียบง่ายเพื่อปกป้องข้อมูลของตน โดยเข้าใจถึงความลำบากของทรัพยากรที่จำกัด FivexL จึงพัฒนาโมดูล Cloudtrail-to-Slack Terraform ขึ้นมา

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

AWS CloudTrail คืออะไร? ลิงก์ไปยังหัวข้อ

มาพูดถึง AWS CloudTrail แบบสั้น ๆ AWS CloudTrail คือบริการของ AWS ที่ช่วยให้คุณเปิดใช้งานการกำกับดูแล การปฏิบัติตามข้อกำหนด และการตรวจสอบการดำเนินงานและความเสี่ยงของบัญชี AWS ของคุณ การกระทำที่ดำเนินการโดยผู้ใช้ บทบาท หรือบริการ AWS จะถูกบันทึกเป็นเหตุการณ์ใน CloudTrail เหตุการณ์เหล่านี้รวมถึงการกระทำที่ทำใน AWS Management Console, AWS Command Line Interface และ AWS SDKs และ APIs ข้อมูลเพิ่มเติม: What is CloudTrail?

การมองเห็นข้อมูลประเภทนี้เป็นองค์ประกอบสำคัญของความปลอดภัยในองค์กร เพราะคุณสามารถระบุได้ว่าใครทำอะไร เมื่อไหร่ ที่ไหน และอย่างไร รวมถึงทรัพยากรใดที่ถูกใช้ ผลลัพธ์คือคุณสามารถติดตามสิ่งที่เกิดขึ้นใน Amazon Console ของคุณได้เสมอเพื่อแก้ไขการตั้งค่าที่ผิดพลาดได้ทันท่วงทีและป้องกันการบุกรุก ในทางหนึ่งคุณมีข้อมูลทั้งหมดเพื่อรับรองความปลอดภัยของคุณ ในอีกทางหนึ่งคุณยังคงเป็นเป้าหมายง่ายสำหรับอาชญากรไซเบอร์ นี่คือเหตุผลบางประการ:

เหตุการณ์มากเกินไปที่จะติดตามด้วยตนเอง ลิงก์ไปยังหัวข้อ

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

ลองนึกภาพว่าคุณใช้ root user เพื่อเข้าสู่ระบบ Amazon Console ของคุณ อาชญากรไซเบอร์สามารถขโมยข้อมูลประจำตัวแบบคงที่ของคุณ เปลี่ยนรหัสผ่าน และขโมยข้อมูลของคุณพร้อมกับธุรกิจ เราแนะนำให้ใช้ Single Sign-on (SSO) หรือ Identity and Access Management (IAM) ร่วมกับ multifactor authentication (MFA) ด้วยวิธีนี้ ข้อมูลประจำตัวของคุณจะหมดอายุภายในระยะเวลาหนึ่ง ซึ่งทำให้แฮกเกอร์มีโอกาสโจมตีในช่วงเวลาสั้น ๆ เท่านั้น

การแจ้งเตือน CloudWatch ที่ซับซ้อนและเข้าใจยาก ลิงก์ไปยังหัวข้อ

คุณสามารถตั้งค่าการแจ้งเตือนจาก CloudWatch ที่จะส่งการแจ้งเตือนไปยังอีเมลของคุณหากมีเหตุการณ์น่าสงสัยถูกบันทึกไว้ แต่ต้องเตรียมพร้อมที่จะทุ่มเทเวลาและความพยายามมากในการตั้งค่าและทำความเข้าใจ

ติดตามเหตุการณ์ CloudTrail ของคุณได้ง่าย ๆ ด้วยโมดูล CloudTrail-to-Slack Terraform ลิงก์ไปยังหัวข้อ

การส่งการแจ้งเตือนเกี่ยวกับเหตุการณ์ AWS CloudTrail ไปยัง Slack เป็นฟีเจอร์ที่มีประโยชน์สำหรับสตาร์ทอัพที่ถูกนำมาใช้ในโมดูล Cloudtrail-to-Slack Terraform โดย FivexL เราได้สร้าง Lambda ที่ใช้ Python ซึ่งวิเคราะห์เหตุการณ์ทั้งหมดที่บันทึกใน CloudTrail และส่งการแจ้งเตือนไปยัง Slack หากเหตุการณ์เหล่านั้นถูกจัดประเภทเป็นบันทึกที่น่าสงสัยตามกฎที่กำหนด การนำ Lambda ไปยัง AWS เป็นปัญหาที่แก้ไขได้แล้วและเราเลือกใช้โมดูลโอเพนซอร์สจาก Terraform AWS Modules ดังนั้นนี่จึงเป็นโมดูล CloudTrail-to-Slack Terraform ที่พร้อมใช้งานและยืดหยุ่น คุณเพียงแค่ตั้งค่าในไม่กี่วินาที และการแจ้งเตือนต่อไปนี้จะถูกส่งไปยังช่อง Slack ของคุณ:

  • กิจกรรมที่ทำโดยบัญชี root
  • การเรียก API ที่ล้มเหลว และเหตุการณ์น่าสงสัย
  • การเข้าสู่ระบบคอนโซลโดยไม่มี MFA
  • เหตุการณ์ที่ละเอียดอ่อน เช่น การเปลี่ยนแปลง IAM, เครือข่าย และการเข้าถึงการจัดเก็บข้อมูล

FirstImage

ผลลัพธ์คือคุณจะรับรู้เสมอหากมีสิ่งผิดปกติเกิดขึ้นใน AWS Console ของคุณโดยไม่ต้องลงทุนเวลาและความพยายามเพิ่มเติม Corey Quinn หัวหน้าฝ่ายเศรษฐศาสตร์คลาวด์ที่ The Duckbill Group ซึ่งช่วยบริษัทลดค่าใช้จ่าย AWS ได้กล่าวถึงโมดูลนี้ใน พอดแคสต์ของเขาที่อุทิศให้กับการฝึกอบรมความตระหนักด้านความปลอดภัย: ‘ผมเจอโมดูล Terraform ที่ deploy Lambda เพื่อตรวจสอบ CloudTrail และรายงานไปยัง Slack — เข้าใจไหม? ดีมาก — เมื่อเกิดเหตุการณ์บางอย่าง เหตุการณ์เหล่านั้นรวมถึงการเข้าสู่ระบบ root, การเข้าสู่ระบบคอนโซลโดยไม่มี MFA, การเรียก API ที่ล้มเหลวเนื่องจากขาดสิทธิ์ และอื่น ๆ อาจจะมีเสียงแจ้งเตือนมาก แต่ผมคิดว่าควรติดตั้งอย่างน้อยเหตุการณ์สำคัญใหญ่ ๆ’ นี่ทำให้โมดูลนี้น่าสนใจและควรให้ความสนใจ

โปรดทราบ: มีความล่าช้าในการส่งการแจ้งเตือนประมาณ 5-10 นาที เนื่องจากเวอร์ชันปัจจุบันสร้างขึ้นบนพื้นฐานการแยกวิเคราะห์การแจ้งเตือนจาก S3

คุณสมบัติของโมดูล CloudTrail-to-Slack Terraform ลิงก์ไปยังหัวข้อ

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

กฎสำเร็จรูปที่ปรับแต่งได้ ลิงก์ไปยังหัวข้อ

สตาร์ทอัพเป็นที่รู้กันว่ามีเวลาน้อยหรือแทบไม่มีเลยเนื่องจากทรัพยากรบุคคลจำกัด เพื่ออำนวยความสะดวกในการตั้งค่าโมดูล มีชุดกฎเริ่มต้นซึ่งเป็นสตริง Python ที่ถูกประเมินในระหว่างรันไทม์และออกแบบมาเพื่อคืนค่า bool เหตุการณ์ CloudTrail จะถูกแปลงเป็นโครงสร้างแบนก่อนการประมวลผลและควรอ้างอิงเป็นตัวแปร event

กฎบางข้อสามารถถูกละเว้นได้ ในกรณีนี้ เหตุการณ์จะถูก Lambda ละเว้นและไม่มีการส่งการแจ้งเตือนไปยัง Slack “Ignore rules” มีไวยากรณ์เหมือนกับกฎเริ่มต้น แต่แนะนำให้แก้ไขการแจ้งเตือนแทนที่จะละเว้น ควรใช้วิธีนี้เฉพาะเมื่อไม่มีโอกาสแก้ไขการแจ้งเตือนเท่านั้น นี่คือตัวอย่างวิธีทำ

locals {
  cloudtrail_ignore_rules = [
      "'userIdentity.accountId' in event and event['userIdentity.accountId'] == '11111111111'",
    ]
}
# we recomend storing hook url in SSM Parameter store and not commit it to the repo
data "aws_ssm_parameter" "hook" {
  name = "/cloudtrail-to-slack/hook"
}
module "cloudtrail_to_slack" {
  source                         = "fivexl/cloudtrail-to-slack/aws"
  version                        = "2.3.0"
  default_slack_hook_url         = data.aws_ssm_parameter.hook.value
  cloudtrail_logs_s3_bucket_name = aws_s3_bucket.cloudtrail.id
  ignore_rules                   = join(",", local.cloudtrail_ignore_rules)
}

การปรับแต่งการแจ้งเตือน ลิงก์ไปยังหัวข้อ

คุณอาจไม่ต้องการให้สมาชิกทีมทุกคนได้รับการแจ้งเตือนความปลอดภัยจากโมดูล Terraform บางคนอาจใช้ข้อมูลนี้เพื่อประโยชน์ของตนเอง ในขณะที่บางคนอาจถูกรบกวนด้วยการแจ้งเตือนที่ไม่เกี่ยวข้องจำนวนมาก ซึ่งทำให้ประสิทธิภาพการทำงานลดลงและไม่เหมาะสำหรับสตาร์ทอัพ นี่คือเหตุผลที่โมดูลนี้ให้โอกาสในการปรับแต่งการแจ้งเตือน เช่น สามารถส่งไปยังช่อง Slack ต่าง ๆ สำหรับบัญชีต่าง ๆ ตาม ID บัญชีของเหตุการณ์

กฎที่ผู้ใช้กำหนดเองเพื่อจับคู่เหตุการณ์ ลิงก์ไปยังหัวข้อ

หากกฎเริ่มต้นไม่ครอบคลุมความต้องการทั้งหมดของคุณ คุณสามารถตั้งค่ากฎที่ผู้ใช้กำหนดเองเพื่อควบคุมสิ่งที่เกิดขึ้นใน CloudTrail ได้ นี่คือตัวอย่างวิธีการ deploy โมดูลพร้อมรายการเหตุการณ์ที่จำเป็นต้องติดตาม

data "aws_ssm_parameter" "hook" {
  name = "/cloudtrail-to-slack/hook"
}
locals {
  # CloudTrail events
  cloudtrail = "DeleteTrail,StopLogging,UpdateTrail"
  # EC2 Instance connect and EC2 events
  ec2 = "SendSSHPublicKey"
  # Config
  config = "DeleteConfigRule,DeleteConfigurationRecorder,DeleteDeliveryChannel,DeleteEvaluationResults"
  # All events
  events_to_track = "${local.cloudtrail},${local.ec2},${local.config}"
}

module "cloudtrail_to_slack" {
  source                         = "fivexl/cloudtrail-to-slack/aws"
  version                        = "2.0.0"
  default_slack_hook_url         = data.aws_ssm_parameter.hook.value
  cloudtrail_logs_s3_bucket_name = aws_s3_bucket.cloudtrail.id
  events_to_track                = local.events_to_track
}

resource "aws_cloudtrail" "main" {
  name           = "main"
  s3_bucket_name = aws_s3_bucket.cloudtrail.id
  ...
}
resource "aws_s3_bucket" "cloudtrail" {
  ....
}

สรุป ลิงก์ไปยังหัวข้อ

โมดูล FivexL Cloudtrail-to-Slack Terraform เป็นเครื่องมือเรียบง่ายที่ช่วยให้คุณติดตามเหตุการณ์ CloudTrail ของคุณและมั่นใจว่า Amazon Console ของคุณปลอดภัยและตั้งค่าอย่างถูกต้อง คุณจะได้รับการแจ้งเตือนเกี่ยวกับการกระทำที่ดำเนินการโดยบัญชี root, การอนุญาต API ที่ล้มเหลว และการเข้าสู่ระบบคอนโซลโดยไม่มี MFA นอกจากนี้ คุณยังสามารถระบุเหตุการณ์ที่ละเอียดอ่อนที่ต้องการติดตาม ตั้งค่ากฎใหม่เพื่อขยายการตรวจสอบเกินกว่ากฎเริ่มต้น และปรับแต่งผู้รับการแจ้งเตือนได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับโมดูล Cloudtrail-to-Slack Terraform โปรดดูที่ FivexL’s GitHub

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