ما هو خط الأساس الأمني؟

خط الأساس للأمان هو تكوين أولي لحساب AWS والذي يجب أن يظل دائمًا مهيأ بطريقة معينة. على سبيل المثال، عند إنشاء حساب AWS جديد في مؤسستك لأول مرة، فمن المحتمل أنك تريد التأكد من تمكين CloudTrail وGuardDuty، ووجود أدوار IAM معينة في الحساب لمورديك أو وصولك الخاص. لديك توقع بأن هذه الأشياء ستكون موجودة دائمًا في جميع حساباتك.

ستقوم بعض الشركات بإنشاء برامج نصية للتدقيق تقوم بفحص جميع حساباتها بشكل دوري للتحقق من هذه الأشياء، وتنبيه إذا أصبح أي من هذه التأكيدات غير صحيح. وسيحاولون بعد ذلك يدويًا، أو ربما من خلال المعالجة التلقائية، تصحيح خط الأساس. على الرغم من أننا نوصي بإجراء هذا التدقيق دائمًا، إلا أنه يمكن تجنب بعض المشكلات باستخدام SCPs لمنع إجراء تعديلات على خط الأساس هذا. بدون SCP، قد تجد أن خط الأساس هذا قد تم تعديله إما عن طريق الخطأ (على سبيل المثال بواسطة مهندس فضولي، أو مهندس يعمل aws-nuke)، أو بشكل ضار من قبل مهاجم لتجنب الكشف والتحقيق والمعالجة.

إرشادات عامة للSCPs

على الرغم من أننا سنعرض حالة استخدام محددة لـ SCPs، إلا أن لها العديد من الاستخدامات الأخرى. ال برج المراقبة الضوابط الإلزامية لديه أمثلة على العديد من الطرق التي يمكن استخدامها. إن عدد SCPs الذي يمكنك استخدامه محدود، لذا يجب عليك دمج العديد من الأمثلة هنا في سياسة واحدة عن طريق جعل كل SCP بيانًا خاصًا به.

تعد SCPs قوية جدًا، ولكنها يمكن أن تخلق مشكلات في قابلية الاستخدام، لذا يجب على المرء توخي الحذر في كيفية استخدامها. كتوجيه عام، إذا وجدت نفسك بحاجة إلى الحفاظ على حالات الاستثناء لـ SCP، فقد تكون هذه حالة استخدام حيث تفوق مشكلات سهولة الاستخدام الفوائد.

إحدى المشكلات التي يمكن أن تنشأ عن SCPs هي الارتباك وصعوبة تصحيح الأخطاء عند رفض الإجراءات. في منشور مدونة سابق أظهرنا كيفية الاستخدام المسؤول المفوض لمؤسسات AWS لمنح المهندسين رؤية حول SCPs التي يتم تطبيقها عليهم إذا كنت تريد القيام بشيء من هذا القبيل.

حماية أدوار IAM الخاصة بك

يحتوي خط الأساس الأمني ​​عادةً على أدوار IAM من الموردين، أو الأدوات الخاصة بك، أو لفرق مختلفة للوصول إلى الحسابات. نريد منع تعديل هذه الأدوار أو حذفها، وتصعيد الامتيازات حيث يمكن لأي شخص يتمتع بامتيازات المسؤول في الحساب أن يتولى هذا الدور من أجل اتخاذ الإجراءات التي قد تسمح بدور خاص بتنفيذها. ويمكن تحقيق ذلك على النحو التالي:

{ 
  "Version": "2012-10-17", 
  "Statement": [ 
     { 
        "Sid": "SecurityBaselineRoleProtection", 
        "Effect": "Deny", 
        "Action": [ 
          "iam:AttachRolePolicy", 
          "iam:CreateRole", 
          "iam:DeleteRole", 
          "iam:DeleteRolePermissionsBoundary", 
          "iam:DeleteRolePolicy", 
          "iam:DetachRolePolicy", 
          "iam:PutRolePermissionsBoundary", 
          "iam:PutRolePolicy", 
          "iam:UpdateAssumeRolePolicy", 
          "iam:UpdateRole", 
          "iam:UpdateRoleDescription" 
        ], 
        "Resource": [ 
          "arn:aws:iam::*:role/WizAccess-Role" 
          "arn:aws:iam::*:role/stacksets-exec-*" 
        ], 
        "Condition": { 
          "ArnNotLike": { 
            "aws:PrincipalArn": [ 
                "arn:aws:iam::*:role/stacksets-exec-*"  
         ] 
       } 
      } 
    } 
  ] 
} 

يحمي هذا المثال اسم دور IAM الذي يستخدمه Wiz بشكل شائع ويعتمد على برج المراقبة التحكم الإلزامي. إذا قمت بتعديل اسم دور الوصول إلى Wiz من الافتراضي، فيجب عليك تغيير هذه السياسة لتتوافق مع بيئتك. يمكنك أيضًا إضافة أسماء أدوار إضافية هنا ترغب في حمايتها.

تفترض هذه السياسة أنه سيتم إنشاء دور Wiz بواسطة Cloud Formation StackSet، وبالتالي فهي تمنح استثناءً لهذا الدور لإنشاء دور Wiz وتعديله، كما تحمي هذا الدور أيضًا. يتم نشر دور CloudFormation StackSet الذي تم إنشاؤه بواسطة ميزة مؤسسات AWS عبر دور مرتبط بخدمة AWS، وبالتالي لن يتم تقييده بواسطة SCP، لأن SCPs لا يمكنها منع إجراءات الأدوار المرتبطة بخدمة AWS.

حماية خدمات AWS

يمكن إدارة خدمات مثل CloudTrail وGuardDuty باستخدام ميزات على مستوى المؤسسة، أو بشكل فردي ضمن الحسابات. عند استخدام الميزات على مستوى المؤسسة (مثل مسار المؤسسة أو المسؤول المفوض لـ GuardDuty)، فإنك تستفيد من وسائل الحماية المتأصلة ضد تعديلات حساب العضو. على سبيل المثال، لا يمكن لحساب العضو الذي يعد جزءًا من مؤسسة لديها مسار مؤسسة ممكن لـ CloudTrail تعطيل مراقبة CloudTrail تلك.

يقوم SCP التالي بحماية CloudTrail في الحالات التي لا تستخدم فيها مسار المؤسسة، بالإضافة إلى حماية GuardDuty. لاحظ أن اسم المسار CHANGEME يجب تغييرها لبيئتك، بالإضافة إلى معرف الحساب 111111111111 والذي يجب عليك تعيينه على الحساب الذي يدير GuardDuty لمؤسستك.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
        { 
            "Sid": "ProtectCloudTrail", 
            "Effect": "Deny", 
            "Action": [ 
                "cloudtrail:DeleteTrail", 
                "cloudtrail:PutEventSelectors", 
                "cloudtrail:StopLogging", 
                "cloudtrail:UpdateTrail" 
            ], 
            "Resource": ["arn:aws:cloudtrail:*:*:trail/CHANGEME"], 
            "Condition": { 
                "ArnNotLike": { 
                    "aws:PrincipalARN":"arn:aws:iam::*:role/stacksets-exec-*" 
                } 
            } 
        }, 
        {  
            "Sid": "ProtectGuardduty",  
            "Effect": "Deny",  
            "Action": [  
                "guardduty:ArchiveFindings",  
                "guardduty:CreateFilter",   
                "guardduty:CreateIPSet", 
                "guardduty:DeleteDetector",  
                "guardduty:DeleteFilter", 
                "guardduty:DeleteIPSet", 
                "guardduty:DeleteThreatIntelSet", 
                "guardduty:DisassociateFromMasterAccount",  
                "guardduty:DisassociateFromAdministratorAccount",  
                "guardduty:UpdateDetector",  
                "guardduty:UpdateFilter",  
                "guardduty:UpdateIPSet",  
                "guardduty:UpdateThreatIntelSet"  
            ],  
            "Resource": ["*"],  
            "Condition": {  
                "ArnNotLike": {  
                    "aws:PrincipalARN": [ 
                        "arn:aws:iam::*:role/stacksets-exec-*", 
                        "arn:aws:iam::111111111111:role/*" 
                    ] 
                } 
            }  
        } 
    ] 
} 

منع الحسابات من المغادرة

تتمثل إحدى طرق التحايل على SCPs في مغادرة الحساب للمؤسسة التي تنفذها، ولهذا السبب يجب علينا أيضًا منع الحساب من مغادرة المؤسسة المذكورة.

{   
    "Version": "2012-10-17",   
    "Statement": {   
        "Effect": "Deny",   
        "Action": "organizations:LeaveOrganization",   
        "Resource": "*"   
    }   
} 

منع الوصول إلى الجذر

يعرض المستخدم الجذر عددًا من المشكلات، مثل مخاطر الاستيلاء على الحساب وفهم الشخص المتورط في الإجراء إذا قام بالمصادقة مع المستخدم الجذر. يمكنك منع استخدام المستخدم الجذر من خلال:

{  
  "Version": "2012-10-17",  
  "Statement": {  
    "Sid": "DenyRootUser",  
    "Effect": "Deny",  
    "Action": "*",  
    "Resource": "*",  
    "Condition": {  
      "StringLike": { "aws:PrincipalArn": "arn:aws:iam::*:root" },  
      "StringNotEquals": { "aws:PrincipalAccount": "111111111111"}  
    },  
  }  
} 

لاحظ في SCP هذا أننا قمنا أيضًا بإعفاء الحساب 111111111111. هناك بعض حالات الاستخدام التي قد تتطلب استخدام المستخدم الجذر، لذلك أردت أن أوضح كيفية القيام بذلك. يتم سرد حالات الاستخدام هذه هنا، بالإضافة إلى حالة الاستخدام لإصلاح سياسات الموارد التي تمنع الوصول بالكامل.

تمنع هذه السياسة التالية أيضًا بعض مخاطر الاستيلاء على الحساب. يمكنك الاطلاع على مثال لكيفية استخدام هذه الامتيازات بشكل شرعي للاستيلاء على الحسابات التي تم تكوينها بشكل خاطئ في هذا بريد بواسطة تويليو. يجب أن يتم تعيين معلومات الاتصال الخاصة بحساباتك على أرقام الهواتف المعتمدة والقيم الأخرى. لاحظ أنه في 11 يناير، تم إصدار AWS أعلن تقاعد الامتياز aws-portal:ModifyAccount لصالح account الامتيازات، ولكن حتى يدخل ذلك حيز التنفيذ في 6 يوليو 2023، سيظل كل من account و aws-portal ينبغي رفض الامتيازات.

{  
  "Version": "2012-10-17",  
  "Statement": {  
    "Sid": "DenyChangingContactInfo",  
    "Effect": "Deny",  
    "Action": [  
      "account:PutAlternateContact",  
      "account:PutContactInformation",  
      "aws-portal:ModifyAccount"  
    ],  
    "Resource": "*",  
  }  
} 

خاتمة

إن ضمان عدم تعديل التكوين الأولي لحساب AWS وفقًا لتوقعات فريق الأمان، حتى عندما يحاول شخص لديه امتيازات المسؤول في الحساب تعديل هذا التكوين، ليس بالمهمة البسيطة. إن ضمان عدم خروج تكوين حساب AWS عن التصميم الأولي لفريق الأمان ليس بالأمر السهل، خاصة عندما يحاول مستخدم الحساب الذي يتمتع بامتيازات المسؤول تعديل التكوين.

شاركها.
اترك تعليقاً