مدیریت کلید – آیا اسکریپت اطلاعات حساس را در دایرکتوری خانگی در لینوکس سرقت می کند و SELinux راه بهینه / ابزار برای جلوگیری از آن است

فرضیه: در یک ایستگاه کاری لینوکس من به طور منظم از نرم افزارهای مختلف دانلود و استفاده می کنیم، بطور مثال ماژول های Perl یا Nodejs. وقتی که من از آنها استفاده می کنم، آنها بر روی دستگاه با من به عنوان صاحب کار می کنند و می توانند هر کاری که می توانند در دایرکتوری من انجام دهند، می توانند به کلید های من دسترسی پیدا کنند و به سرقت بروند (از طریق شبکه)

برای سال ها، در حال حاضر من در نهایت در زمان پیدا کردن SELinux برای مقابله با مشکل پیدا کرد. اما همانطور که SELinux یاد گرفتم، به نظر من این موضوع پیش می آید که ممکن است برخی از ماژول ها برای برنامه های کاربردی که از آن داده های حساس استفاده می کنند ایجاد شود، بگذارید یک ماژول خطمشی SELinux برای gnupg برای محدود کردن دسترسی به کلیدهای gpg برای آن برنامه اما به نظر نمی رسد این مورد باشد. به همین دلیل است که من شروع به تردید کل ایده کردم. من وب را برای "پرونده های دایرکتوری دایرکتوری خانه لینوکس" جستجو کردم و نتایج مشابهی در مورد سرقت فیزیکی بود. این بسیار بعید است که من تنها کسی هستم که در مورد این فکر کرد

بنابراین اولین سوال من این است آیا این فرض درست است ؟

اگر آن است، سپس آنچه مطلوب است گزینه هایی برای مقابله با این ؟ در حال حاضر قصد دارم سعی کنید سفارشی کردن سیاست SELinux هدفمند برای اجازه دسترسی به آن فایل های حساس تنها به یک مجموعه محدود از فرآیندها و احتمالا محدود کردن دسترسی شبکه بر اساس برنامه.

I باید سیاست سفارشی را سفارشی کند، زیرا به نظر می رسد دامنه unconfined_t اجازه دسترسی به هر دو user_home_t و gpg_secret_t از gpg_secret_t بخشی از ویژگی user_home_type و خط مشی اجازه دسترسی کامل به آن را می دهد :

 $ sesearch -t gpg_secret_t -A
...
اجازه unconfined_t user_home_type: file {خواندن نوشتن ...}

فدراسیون – پوشش اطلاعات حساس در WS-اعتبار نشانه تبادل

من یک گردش کار WS-Trust دارم، که برای آن من نیاز به وارد کردن اشکال زدایی مبادلات سیم کارت را دارم.

پیام هایی که ارسال شده است

  1. RST / شماره کلید متقارن
  2. RSTR با کلید متقارن
  3. RST / مسئله برای Token حامل با استفاده از کلید رمز شده از بالا
  4. RSTR با حامل Token

سیاهههای مربوط به افراد مختلف قابل مشاهده خواهد بود و ممکن است در ایمیلهای پشتیبانی شده ارسال شوند و غیره، بنابراین من باید عناصر حساس در آنها را مخفی کنم تا از جعل هویت آن کاربر / نشانه جلوگیری شود.
معمولا نشانهها معمولا بعد از 5 دقیقه تا یک ساعت (بسته به نوع نشانه) پایان مییابند. بنابراین من به شدت نگران کسی نیستم که بتوانم کل رمز را بازیابی کنم، اما بیشتر در مورد افشای اطلاعات (مثلا رمزهای رمزگذاری نشده، کلید خصوصی و غیره) که می توان آنها را برای به دست آوردن یک مورد جدید استفاده کرد.

من پوشش می دهد

و

عناصر. آیا دیگران وجود دارد که من باید نگران آن باشم؟

رمزگذاری – اصل تقسیم اطلاعات حساس در سراسر ماشین های مختلف در حال اجرا سیستم عامل های مختلف

فرض کنید شما سعی می کنید اطلاعات را به صورت ایمن ذخیره کنید، از جمله تقسیم آن در ماشین های مختلف (رمزگذاری شده به طوری که آن را غیر قابل خواندن تا زمانی که تمام قطعات از بازیابی). اگر مهاجم الگوریتم و سازگاری شما را تمام دستگاه های خود را می داند، همیشه می تواند داده ها را بازیابی کند، بنابراین همیشه احتمال این اتفاق غیر صفر وجود دارد. اما شما می خواهید احتمال را تا آنجا که ممکن است کاهش دهید.

به نظر می رسد که استراتژی رمزگذاری داده ها با یک کلید است و سپس کلید را در چندین ماشین تقسیم کنید، به طوری که تمام ماشین ها (دستگاه ذخیره سازی داده ها و ماشین های ذخیره سازی کلید) از لحاظ جسمی مستقل هستند و سیستم عامل های مختلفی را اجرا می کنند (با هر سیستم عامل همیشه تمام آخرین تکه های موجود را استفاده می کند)

اجرای سیستم عامل های مختلف بدین معنی است که احتمال ریسک یک ماشین مستقل از احتمال ریسک کردن ماشین های دیگر است. اگر شما سه ماشین دارید و همه آنها ویندوز سرور را اجرا می کنید، و در یک قاب زمانی معین، 10٪ احتمال پیدا کردن یک آسیب پذیری در ویندوز سرور وجود دارد که به شما اجازه دسترسی به دستگاه را می دهد، 10٪ از آسیب پذیری تمام سیستم، زیرا پس از آن شما تمام سه ماشین را می گیرید. اما اگر سه ماشین وجود داشته باشد، هر یک از سیستم عامل های مختلفی را اجرا می کنند و برای هر سیستم عامل 10٪ از آسیب پذیری را در آن سیستم عامل پیدا می کنند و احتمال برای هر سیستم عامل مستقل است؛ سیستم

شما همچنین می توانید داده ها را با یک کلید جدید دوباره رمزگذاری کنید و سپس کلید جدید را تقسیم کنید. سپس مهاجم تنها سیستم را از بین می برد اگر همه ی ماشین ها را در یک زمان مشابه قبل از رمزگذاری مجدد سازش کند.

حالا این بدان معنی است که اگر هر یک از دستگاه ها نتواند تمام داده ها را از دست بدهد، اما قطعه از کلید در هر دستگاه می توان به دستگاه دیگری پشتیبان گیری کرد. و در این حالت، در حالی که دستگاه پشتیبان هنوز هم باید از لحاظ جسمی جداگانه باشد تا شانس گم شدن هر دو را در یک زمان نداشته باشد، می تواند همان سیستم عامل را به عنوان دستگاه پشتیبان گیری کند. ایده این است که اگر A1 به A2 پشتیبانی شود، مهاجم همان اندازه داده را به خطر می اندازد که آیا آنها به A1 یا A2 یا هک می شوند، بنابراین هیچ دلیلی وجود ندارد A1 و A2 نمی توانم همان سیستم عامل را اجرا کنم (با آسیب پذیری های بالقوه مشابه).

با این حال، من هیچ وقت از یک اصل امنیتی در رابطه با "تجزیه اطلاعات حساس در دستگاه های عامل سیستم عامل های مختلف" شنیده ام. آیا من فقط کشف چیزی به خوبی شناخته شده و آشکار است که نام در حال حاضر؟ یا دلیلی وجود دارد که کل منطق ناقص است (و به همین دلیل نام آن را ندارد)

pci dss – داده های حساس شناسایی، محتویات و ریشه کن کردن – زنجیره نگهداری

برای ایجاد یک دیدگاه از اطلاعات حساس در سازمان، یک فعالیت کشف بسیج شده است. علاوه بر ایجاد یک دیدگاه، هدف ابتکار این است که همچنین سیاست ها، فرآیندها و روش های مربوط به حاوی و ریشه کن کردن اطلاعات حساس در صورت لزوم را اطلاع دهد.

علاوه بر این، همچنین باید به حداقل رساندن خطرات و تاثیرات نقض کمک کند یک رخ می دهد.

در طول مرحله کشف اطلاعات حساس در مکان های مختلف شناسایی شد. این شامل اطلاعات قابل شناسایی شخصی، اطلاعات کارت شناسان، هویت های اجتماعی و غیره

قبل از ریشه کن کردن داده ها، ما گزینه هایی را برای پشتیبانی از توانایی تجزیه و تحلیل داده ها بررسی می کنیم. به همین ترتیب، اگر تجزیه و تحلیل بیانگر اکستروژن داده باشد، ما می خواهیم در فعالیت های قانونی فعالیت داشته باشیم.

در بررسی تنظیمات سیستم، ما دریافتیم که سیاهههای مربوط به ناکافی بودن سیستم به لحاظ تاریخی نادرست پیکربندی شده است. به عنوان مثال، در یک سناریو، سیاهههای مربوط بومی ویندوز تنها برای چند روز ادامه می یابد.

با توجه به فقدان logs قابل اطمینان و اطمینان از زنجیره نگهداری، شیوه های توصیه شده چیست؟ آیا موارد مربوط به انطباق وجود دارد مانند PCI-DSS؟

گذرواژهها – هنگام اجرای اسکریپتهای پوسته، انتقال اطلاعات حساس از طریق stdin یا به عنوان یک گزینه رشته امن تر است؟

من تعدادی از اسکریپت های اتوماتیک را اجرا می کنم که در یک محیط رمزگذاری شده (رمزگذاری کامل دیسک) اجرا می شوند.

بسیاری از دستورات در ویندوز و nix دو راه برای ورود اطلاعات حساس مانند کلمات عبور دارند. در یک حالت، برنامه کاربر را برای گذرواژه فراخوانی می کند و از سوی دیگر، رمز عبور با استفاده از یک آرگومان گزینه مشخص می شود.

هنگام نوشتن یک اسکریپت پوسته، فرمان می تواند به صورت خودکار با استفاده از هر یک از این فرآیندها خودکار شود. در اولین مورد، فرمان اجرا می شود، سپس استاندارد در (stdin) هدایت می شود و پسورد در صورت درخواست، رمز عبور وارد برنامه می شود. در مورد دوم، رمز عبور به عنوان یک استدلال به برنامه مشخص شده است.

آیا یکی از این موارد ذاتا بیشتر از دیگران خطرناک است؟ آیا آگاهی از مواردی وجود دارد؟ در هر دو مورد، من به طور خاص درباره نحوه تأمین گذرواژه، و نه احتمال خطر یا آسیب پذیری مرتبط با ذخیره رمز عبور روی دیسک، از شما خواهم پرسید.

در مثال زیر در Python با استفاده از نسخه CLI از VeraCrypt:

هدایت stdin:

 cmd = ['veracrypt', "--text", partition, mount_point]
input_file = open_file ()
vc_call = subprocess.run (cmd، stdin = input_file)
vc_call.wait ()

عبور گذرواژه به عنوان یک استدلال:

 password = get_password_from_file ():
cmd = ['veracrypt', "--text", "--non-interactive", "--password", password, partition, mount_point]
vc_call = subprocess.run (cmd)

توجه:

من مطمئن نیستم که اگر مهم باشد، اما در * nix، دستورات می توانند به طور مستقیم به عنوان فراخوانی های سیستم اجرا شوند. در کد بالا هیچکدام از تماسهای زیر subprocess.run () یک گزینه shell = True داده نشد، که باعث می شود دستور در پوسته پیشفرضی اجرا شود. درک من این است که در ویندوز تمام دستورات باید از طریق shell cmd اجرا شود. این می تواند بین دو گزینه تفاوت ایجاد کند، اما من مطمئن نیستم که چگونه