loading...

وبلاگ تخصصی مباحث آموزش مجازی سازی و تکنولوژی های مجازی سازی

بازدید : 43
دوشنبه 11 فروردين 1404 زمان : 1:42

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

برای یادگیری برنامه نویسی رایگان زبان جاوا و آموزش جاوا به زبان ساده به این لینک مراجعه کنید

Subject در امنیت جاوا

در امنیت جاوا subject منبع درخواست است. Subject کلاسی است که اطلاعات در مورد منابع را در خود نگهداری می کند و می تواند تغییراتی در آنها ایجاد کند. Subject می تواند یک کاربر یا برنامه یا پروسس یا یک فایل یا یک کامپیوتر یا یک پایگاه داده باشد. برای مثال اگر کاربری بخواهد وارد سیستم شود و به یک سری منابع دسترسی داشته باشد پس کاربر یک subject است.

Principal در امنیت جاوا

بعد از این که کاربر با موفقیت وارد سیستم شد و احراز هویت انجام شد ما یک subject خواهیم داشت که به بخش های مختلفی مانند رول(نقش)ها و SSN(social security number) ها مرتبط است. به هرکدام از این بخش های این شکلی یک Principal گفته می شود که همه آنها در داخل Subject قرار می گیرند.

کاربر (User) در امنیت جاوا

شخصی است که به یک سری منابع دسترسی دارد و فعالیت هایی انجام می دهد و وظایفی بر عهده دارد. در برخی جاها می توان user را به عنوان یک principal در نظر گرفت که جاوا برای آن از کلاس UserPrincipal استفاه می کند.

تفاوت بین Subject , Principal, User

همانطورکه در بخش قبلی گفتیم می توانیم برخی از جنبه های کاربر را به شکل یک Principal نمایش دهیم. حال این principal ها زیر مجموعه subject ها هستند و کاربران زیرمجموعه principal های می باشند که به کاربرها اشاره می کنند.

بازدید : 48
دوشنبه 11 فروردين 1404 زمان : 1:41

پاپت (Puppet) یک ابزار خودکارسازی پیکربندی سیستم‌ها و مدیریت زیرساخت است که به مدیران شبکه این امکان را می‌دهد که به راحتی نرم‌افزارها، پیکربندی‌ها و منابع سیستم‌ها را در مقیاس بزرگ مدیریت کنند. این ابزار به‌ویژه در محیط‌های بزرگ و پیچیده مفید است و با استفاده از زبان DSL خاص خود، پیکربندی‌ها را به صورت متمرکز مدیریت می‌کند. با استفاده از Puppet می‌توان نظم و امنیت را در شبکه‌ها حفظ کرد و از پیکربندی‌های دستی اجتناب کرد. در آموزش شبکه، آشنایی با ابزارهای خودکارسازی مانند Puppet برای مدیریت مؤثر شبکه‌ها و سرورها بسیار حیاتی است. این ابزارها به کاهش خطاها و افزایش بهره‌وری کمک می‌کنند.

در این بخش از دوره آموزشیمان قصد داریم بپردازیم به انواع حالت های اسقرار سازی در حوزه Configuration Management

نرم افزار Puppet چیست؟ آموزش نرم افزار Puppet ا Network Automation چیست؟ Configuration Management چیست؟ چگونه فرآیند های کاریمان را در سازمان اتوماتیک سازی کنیم؟ امروزه با افزایش تعداد سیستم ها و تجهیزات و گسترش پیدا کردن شبکه های کامپیوتری و زیرساخت ما اصولا معضلاتی نیز به وجود آمده است که یکی از آن ها پیکربندی سریع و آنی میباشد که با وجود چندین دیوایس متعدد اصولا نمیتوانیم پیکربندی را به شکلی به صورت سریع انجام بدهیم به همین سبب شما در نظر بگیرید که مهندس شبکه و یا Network Administrator در یک شبکه بزرگ در این موقعیت از شما درخواست میشود

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

Network Automation چیست؟

در این موضوع ما با استفاده از ابزارها و تکنیک ها و زبان های برنامه نویسی میتوانیم به شکل خیلی بهتر و سریع تر فرآیند های پیکربندی دیوایس هایمان را انجام بدهیم که به این موضوع ما دیگر نیز نیست برای پیکربندی و بررسی 50 کامپیوتر تک تک به آن‌ها سر بزنیم فقط کافیست از پشت سیستم خودمان با استفاده از تکنیک های Network Automation دیوایس هایمان را به صورت یکجا پیکربندی کنیم که این دیوایس ها طیف متعددی رو شامل میشوند علاوه بر این موضوع ما به سبب Network Automation میتوانیم تجهیزات دیگر مانند سوییچ ها و روتر ها و سرور ها و حتی کلاینت های خودمان راهم پیکربندی کنیم

  • برای یادگیری Network Automation با زبان Python به لینک مقابل مراجعه کنید( Link )

نرم افزار Puppet چیست؟

درواقع Puppet یک نرم افزار قدرتمند در حوزه Configuration Management میباشد که به سبب آن ما توانایی پیکربندی و راه اندازی تجهیزات خود را به صورت کاملا سریع و Automated شده را داریم بدین شکل که در مدیریت دیوایس ها و پیکربندی های اون‌ها این نرم افزار بسیار قدرتمند است و جزوه یکی از بهترین نرم افزار های حوزه Network Automation در کنار دیگر نرم افزار های قدرتمند مانند Ansible قرار گرفته است‌. نرم افزار Puppet به سبب یک زبان کد نویسی منحصر به فرد خود با نام DSL که تشکل شده از کلمات Domain Specific Language میباشد توانایی بررسی و پیاده سازی پیکربندی های متعدد را بر روی سیستم ها دارد.

نرم افزار Puppet رایگان است؟

  • نرم افزار Puppet در دو نسخه ارائه میشود:
    نسخه Puppet Enterprise: در این نسخه ما قابلیت های بسیار زیادی را در Puppet میتوانیم داشته باشیم از جمله دسترسی GUI و دسترسی Cli، امکان استفاده از API های متنوع، توانایی گزارش گیری بالا و ویژگی های مختلف درون این نسخه تجاری وجود دارد.
    نسخه Puppet Open Source: این نسخه به صورت رایگان و Open Source ارائه شده است که میتوانیم از آن برای فرآیند های متنوع Configuration Management استفاده کنیم که البته ویژگی های متعددی که در نسخه Enterprise وجود دارد در این نسخه کمی کم رنگ میباشند.

چرا از Puppet استفاده کنیم؟

توجه کنید این سوال را میتوان به شکل دیگری هم پرسید برای مثال چرا از Configuration Management و Automation استفاده کنیم ؟! جواب ساده ایی داره چون شما درنظر بگیرید که در یک شرکت بسیار بزرگ Large Enterprise کار میکنید و قرار است بر روی 100 سرور یک پیکربندی مشابه یه یک مشکل را رفع کنید کنید برای مثال قصد دارید یک سیستم عامل جدید نصب کنید و یا یک تنظیمات خاص را ارائه کنید خب شما به عنوان یک ادمین شبکه اینکار براتون بسیار سخت و خسته کننده هست اما امروزه با پیشرفت تکنولوژی ما دیگه نیازی به انجام اینکارها نداریم !

پاپت ( Puppet ) چیست؟ معرفی نرم افزار Network Automation

امروزه وقتی ابزار های مختلف و قدرتمندی مثله Python و Puppet وجود دارند ما به راحتی میتوانیم این پیکربندی را درعرض چند ساعت و یا کمتر به انجام برسانیم(بستگی به پیکربندی دارد اما خیلی خیلی مقدار زمان نسبت به پیکربندی دستی کاهش پیدا میکند برای مثال اگر 100 ساعت این موضوع طول بکشد در فرآیند Automation فقط 1 تا 2 ساعت ممکن است زمان ببرد.) به سبب این موضوع Puppet میتواند به شما در اعمال یک پیکربندی مشابه و مدیریت آنها کمک بسیار زیادی کند.

پاپت ( Puppet ) چیست؟ معرفی نرم افزار Network Automation

نگاهی بر الگو های برنامه نویسی (Paradigm)

درواقع قبل از شروع کار با DSL که زبان Puppet میباشد میبایست یک نگاه به الگو های برنامه نویسی بیندازیم. در ابتدا میبایست بدانیم که Paradigm یک سبک از نحوه ایجاد یک نرم افزار رایانه است که توسعه دهندگان از آن برای ایجاد نرم افزار مورد نظر استفاده میکنند؛ ما چهار نوع Paradigm متنوع برای برنامه نویسی داریم که به شرح زیر هستند:

  • Imperative
  • Declarative
  • Functional
  • Object-oriented

در این مقاله تمرکز ما بر روی Imperative و Declarative میباشد.

بررسی Imperative Paradigm

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

بررسی Declarative Paradigm

در این حالت دقیقا ما بر عکس Imperative عمل میکنیم بدین شکل که در این الگو ما منطق محاسباتی را بدون بیان نحوه انجام آن پیش میبریم‌ ، برای مثال ما برای اینکه به محل کارمان بریم یک تاکسی میگیریم و مستقیما عنوان میکنیم که به آدرس مورد نظر برود.

نرم افزار Puppet از چه الگوریتمی استفاده میکند؟

نرم افزار Puppet از Declarative Paradigm استفاده میکند برای کد نویسی و ایجاد فایل های مورد نظر به همین سبب میتوانیم به مثال زیر توجه کنیم و تفاوت Puppet را با Bash در کد نویسی ببینیم: زبان Bash از الگوریتم Imperative استفاده میکند به همین سبب از طریق کد Bash زیر ما یک User را در سیستم مورد نظرمان ایجاد میکنیم
پاپت ( Puppet ) چیست؟ معرفی نرم افزار Network Automation
حال از طریق زبان DSL این فرآیند را انجام میدهیم
پاپت ( Puppet ) چیست؟ معرفی نرم افزار Network Automation
میبینیم که تفاوت بین کد نویسی Imperative و Declarative در سادگی چقدر زیاد میباشد.

Deployment Mode انواع حالت های اجرایی در پاپت

استقرار سازی چیست؟

مفهوم استقرار سازی یا Deployment به این معنا میباشد که من بتوانم مقدار ها و پیکربندی های خاصی که نیاز دارم رو بر روی چندین دیوایس خود Deployed یا استقرار سازی کنیم. که البته توضیح این موضوع به این شکل بیشتر در دید حوزه Configuration Management میباشد در حوزه های دیگر و موقعیت های دیگر نیز همین معنا را میدهد اما با کمی تغییر

حالت های استقرار سازی در Configuration Management به چه شکل است؟

حالت های استقرار سازی در Configuration Management به دو دسته متفاوت تقسیم بندی میشوند که عبارتند از:
Push-Based: در این روش از طریق Master Node‌ پیکربندی انجام میشود.
Pull-Based: در این روش استقرار سازی توسط Agent انجام میشود.

حالت استقرار سازی Push-Based

در این حالت Matser Node ما به عنوان یک سرور مرکزی عمل میکند و در این خود و دیوایس های مورد نظر یک ارتباط امن و مطمئن را ایجاد میکند، پس از ایجاد ارتباط شروع به پیکربندی و ارسال دستورات میکند مانند نرم افزار های Salt Stack و Ansible

حالت استقرار سازی Pull-Based

در این حالت دیوایس ها به سرور مورد نظر متصل میشوند ارتباط امن و مطمئن را ایجاد میکنند و از برقراری صحیح ارتباط اطمینان حاصل میکنند و پس از آن پیکربندی را از سمت سرور دانلود میکنند و بر روی خود استقرار سازی میکنند مانند Chef و Puppet

نحوه کار Puppet در استقرار سازی به چه شکل است؟

نحوه کار Puppet بر پایه Pull یا همان Pull Based Deployment میباشد و از این بابت دیوایس ها و تجهیزات مورد نظر ما در هر 1800ثانیه به سمت Puppet یک ارتباط را ایجاد میکنند و بررسی میکنند که آیا در Puppet پیکربندی جدیدی برایشان قرار گرفته است یا که خیر، درصورتی که پیکربندی خاصی در Puppet قرار گفته باشد کد های مورد نظر را دانلود میکنند و بر روی خود استقرار میسازند.

مثال عملی از نحوه کار Puppet

سناریو ما در Configuration Management از دو بخش Master و Agent تشکیل شده است که به شرح زیر هستند:
بخش Master - در این بخش Puppet بر روی یک سیستم لینوکسی اجرا سازی میشود و قرار است که به سرور ها و تجهیزات مورد نظر پیکربندی مورد نظرشان را ارائه کند.‌

نکته: Puppet فقط روی سیستم های لینوکسی اجرا سازی میشود به طور معمول

بخش Agent - این بخش را تجهیزات و دیوایس ها ما تشکیل داده اند که هیچ محدودیتی در سیستم عاملشان وجود ندارد و میتوانند طیف گسترده ایی از سیستم های مختلف از جمله خانواده Microsoft سیستم های هسته لینوکس سیستم های خانواده BSD و سیستم عامل های متعدد دیگری مانند Solaris و Mac OS

در ابتدا در بین Matser و Agent یک ارتباط امن ایجاد میشود.

پاپت ( Puppet ) چیست؟ معرفی نرم افزار Network Automation

نکته: ارتباطات بین Master و Agent از طریق Certificate امن سازی میشود.

مرحله اول - ابتدایی ترین کاری که پس از ایجاد شدن ارتباط صورت میگیرد این است که از سمت Agent های ما اطلاعاتی در رابطه خودشان به سمت Master ارسال میشود که از جمله این اطلاعات عبارتند از:

  • IP Address
  • HostName
  • Kernel Details
  • And ...

پاپت ( Puppet ) چیست؟ معرفی نرم افزار Network Automation

مرحله دوم - در این شرایط پس از دریافت اطلاعات توسط Puppet یک فایل توسط Puppet ایجاد میشود که اطلاعات تکمیلی Agent ها به همراه پیکربندی های مورد نیازشان در آن قرار میگیرد که آن را با عنوان Configuration List میشناسم و تمامی اطلاعات در کنار در فایلی به نام Catalog قرار میگیرد. از جمله پیکربندی های که میتوان توی Configuration List: نصب، حذف و بروزرسانی بسته نرم افزار خاصی، ایجاد User و حذف User، راه اندازی مجدد و Restart کردن سیستم، پیکربندی و تغییر تنظیمات IP و...

پاپت ( Puppet ) چیست؟ معرفی نرم افزار Network Automation
مرحله 3 - در این مرحله فایل قسمت Configuration List در فایل Catalog به سمت Agent ها ارسال میشود و آنها پس از دریافت پیکربندی ها آنهارا بر روی خودشان اعمال میکنند.
نکته: درصورتی که Configuration List خالی باشد هیچ پیکربندی بر روی Agent ها انجام نمیشود.

پاپت ( Puppet ) چیست؟ معرفی نرم افزار Network Automation

مرحله چهارم - در این مرحله گزارشی به سمت Puppet در رابطه با موفقیت آمیز بودن فرآیند اعمال پیکربندی ارسال میشود.

معرفی امکانات پاپت | Puppet Feature

مباحث متنوعی را در رابطه با Puppet یادگرفتیم حالا بیاید بررسی کنیم که Puppet دارای چه ویژگی هایی میباشد به نوع دیگر قرار است توی این بخش به Feature های متعدد Puppet بپردازیم

ویژگی Idempotency در Puppet چیست؟

این ویژگی یکی از جالب ترین تکنیک های مورد استفاده در Puppet است که به سبب آن، نرم افزار Puppet یک نرم افزار منحصر به فرد در این حوزه شده است. به واسطه Idempotency ما توانایی و این امکان را داریم که مجموعه ایی از پیکربندی هارا در بازه های زمانی خاص بر روی یک دیوایس اعمال کنیم. در شرایطی که تغییری در دیوایس مورد نظر ایجاد شود Puppet آن را بررسی میکند و ویژگی های قبلی را به سمت همان دیوایس در بازه های زمانی مختلف استقرار سازی میکند.

توجه داشته باشید ویژگی Puppet Idempotency در شرایطی میتواند بکار بیاید که شما بخواهید در بازه های زمانی یک پیکربندی خاصی را بر روی دیوایس اعمال کنید. درنظر داشته باشید که وقتی یک سیستم اجرا سازی میشود و شروع به کار میکند تا پایان عمر آن در بازه های زمانی نیاز به پیکربندی و تعمیر و بروزرسانی دارد که ما میتوانیم به سبب این ویژگی در Puppet اینکار هارا به انجام برسانیم، معمولا از این ویژگی برای بروزنگه داشتن سیستم ها استفاده میشود

ویژگی‌ RAL در Puppet چیست؟

اگر یادتان باشد در قسمت قبل ما عنوان کردیم که در Puppet محدودیتی وجود ندارد که سیستم های Agent چه سیستم عاملی را داشته باشند اما چطور؟! از کجا Puppet میتونه متوجه این بشه که برای سیستم مورد نظر از چه پیکربندی استفاده کند و از چه دستوری برای پیکربندی های مورد نظر استفاده کند؟ دقیقا اینجاست که ویژگی تحت عنوان RAL یا همان Resource Application Layer پا به میدان میگذارد و این نگرانی هارا برطرف میکند.

بازدید : 47
دوشنبه 11 فروردين 1404 زمان : 1:40

تروجان یا Trojan یکی از انواع بدافزارهاست که با هدف مخفی ماندن در دنیای اینترنت منتشر می شود تا به اهداف متنوعی که می تواند انجام بدهد برسد. اگر کمی علاقه مند به داستان های تاریخی باشید بد نیست بدانید که ریشه کلمه Trojan Horse یا اسب تروا از یک افسانه یا شاید یک روایت تاریخی قدیمی باشد که در آن شهری به نام تروا که نفوذ ناپذیر به نظر می رسید بعد از سالها محاصره تسلیم نشد و دشمنان دست از پا درازتر تصمیم گرفتند به محاصره پایان بدهند. شهر تروا آنقدر دیوارهای بلندی داشت که عملا نفوذ به آن را برای دشمنان غیرممکن می کرد . بعد از اینکه ساکنین تروا متوجه شدند که دشمان در حال لغو کردن محاصره و خالی کردن میدان هستند خوشحال شدند.

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

بدافزار تروجان چیست؟

اما این ماجرا چه ربطی به بدافزاری به نام اسب تروا دارد ؟ خوب واضح است ، معنی و مفهوم کاری که تروجان انجام می دهد دقیقا همین است ! تروجان ها بدافزارهایی هستند که خودشان را در قالب یک ابزار مفید و کاربردی به کاربر قالب می کنند و کاربر بر همین اساس آنها را دانلود و نصب می کند و آلوده می شود بدون اینکه خودش متوجه شود که یک بدافزار نصب کرده است ! Trojan Horse در واقع برنامه مخربی است که خودش را به جای برنامه های کاربردی می دهد ، برای مثال شما یک برنامه آنتی ویروس کرک شده نصب می کنید که کرک آن در واقع تروجانی است که شما بدون اطلاع نصب می کنید.

معمولا این نوع بدافزار بصورت پیوست به فایل های اجرایی نصب برنامه ها می چسبد که قبلا در خصوص مبحث Wrapping مفصل در این مورد صحبت کرده ایم . تروجان ها معمولا در سیستم قربانی یک Backdoor برای دسترسی از راه دور به سیستم قربانی ایجاد می کنند . برخی از انواع تروجان ها هیچکاری الزاما بر روی سیستم قربانی انجام نمی دهند و فقط آماده به کار یا Standby هستند و شاید ماه ها و چه بسا سالها بر روی یک سیستم بدون اینکه شناسایی شوند وجود داشته باشند .

تفاوت ویروس و تروجان در چیست؟

اما آیا تروجان یک ویروس است یا خیر ؟ در واقع تنها تشابهی که بین ویروس کامپیوتری و تروجان می توان پیدا کرد این است که هر دو در دسته بندی بدافزارها قرار می گیرند و تمام ! ویروس ها ماهیتی عیان دارند و آلوده سازی سیستم را بصورت مشهودی انجام می دهد و روی یک سیستم بارها تکثیر می شوند در حالیکه تروجان ها هدفشان مخفی بودن است و تنها یک نسخه بر روی سیستم نصب می شود ، در عین حال ویروس ها ممکن است صرفا هدف تخریب داشته باشند اما تروجان ها اهداف مشخص و از قبل تعریف شده دارند. بیشتر ابزارهایی که به عنوان Keygen برای درست کردن سریال نرم افزارهای کرک شده استفاده می شوند در واقع همان تروجان هستند . معمولا تروجان ها بصورت پیوست هایی با پسوند exe و com و bat و hlp و scr در پیوست های ایمیل منتقل می شوند.

برای یادگیری بیشتر به دوره آموزشی کالی لینوکس ( PWK ) و آموزش هک ، دوره آموزشی CEH و دوره آموزشی سکیوریتی پلاس قسمت 4 می باشد ، قبل از همه این آموزشها ، یادگیری دوره آموزش نتورک پلاس به عنوان پیشنیاز ورود به دنیای فناوری اطلاعات شدیدا توصیه می شود.

بازدید : 48
دوشنبه 11 فروردين 1404 زمان : 1:39

وقتی صحبت از Cryptomalware می شود ، ابتدا دو کلمه را در کنار هم بخوانید Cryptography Malware که به ترتیب کلمات بدافزار رمزنگاری ترجمه می شود و به خوبی مفهوم را می رساند. قبلا در توسینسو در خصوص مفهومی به نام Cryptovirology صحبت کرده ایم که در واقع بدافزارهایی که در حوزه رمزنگاری کار می کنند زیر مجموعه این نوع علم بدافزاری هستند. بصورت کلی هر بدافزاری که با استفاده از رمزنگاری اطلاعات اقدام به سوء استفاده از افراد بکند به عنوان Cryptomalware یا بدافزار رمزنگاری ( ترجمه بهتر پیدا کردید Comment بزارید ) شناخته می شود.

باج افزار چیست؟ معرفی Ransomware به زبان ساده

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

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

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

تجربه آلودگی به باج افزار ایرانی

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

برای یادگیری بیشتر به دوره آموزشی کالی لینوکس ( PWK ) و آموزش هک ، دوره آموزشی CEH و دوره آموزشی سکیوریتی پلاس می باشد ، قبل از همه این آموزشها ، یادگیری دوره آموزش نتورک پلاس به عنوان پیشنیاز ورود به دنیای فناوری اطلاعات شدیدا توصیه می شود.

بازدید : 40
دوشنبه 11 فروردين 1404 زمان : 1:38

وقتی صحبت از Cryptomalware می شود ، ابتدا دو کلمه را در کنار هم بخوانید Cryptography Malware که به ترتیب کلمات بدافزار رمزنگاری ترجمه می شود و به خوبی مفهوم را می رساند. قبلا در توسینسو در خصوص مفهومی به نام Cryptovirology صحبت کرده ایم که در واقع بدافزارهایی که در حوزه رمزنگاری کار می کنند زیر مجموعه این نوع علم بدافزاری هستند. بصورت کلی هر بدافزاری که با استفاده از رمزنگاری اطلاعات اقدام به سوء استفاده از افراد بکند به عنوان Cryptomalware یا بدافزار رمزنگاری ( ترجمه بهتر پیدا کردید Comment بزارید ) شناخته می شود.

باج افزار چیست؟ معرفی Ransomware به زبان ساده

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

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

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

تجربه آلودگی به باج افزار ایرانی

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

برای یادگیری بیشتر به دوره آموزشی کالی لینوکس ( PWK ) و آموزش هک ، دوره آموزشی CEH و دوره آموزشی سکیوریتی پلاس می باشد ، قبل از همه این آموزشها ، یادگیری دوره آموزش نتورک پلاس به عنوان پیشنیاز ورود به دنیای فناوری اطلاعات شدیدا توصیه می شود.

بازدید : 43
دوشنبه 11 فروردين 1404 زمان : 1:38

ریسک افزار چیست؟ یکی از جدیدترین مفاهیم در حوزه بدافزاری دنیای امنیت اطلاعات ، کلمه ای به نام Riskware یا ریسک افزار است. طبیعتا Risk و Software تشکیل دهنده این کلمه هستند اما جالب است بدانید که با اینکه از لحاظ امنیتی این نوع نرم افزارها در دسته بندی بدافزاری یا Malware ای قرار می گیرند اما واقعا بدافزار نیستند ! بله دست متوجه شدید ریسک افزارها بدافزار نیستند ، یعنی نویسنده یا تولید کننده آنها با هدف تخریب و انجام عملیات های مخرب آنها را تولید نکرده است.

Riskware چیست

اما نکته اینجاست که اینگونه نرم افزارها به شکلی امنیت کامپیوتر شما را تهدید می کنند و به همین دلیل ریسک به وجود آمدن عملیات مخرب را بالا می برند و به همین دلیل به آنها Riskware گفته می شود.اما واقعا چطور ممکن است یک نرم افزار باعث بالا رفتن ریسک امنیتی در یک کامپیوتر بشود؟ خوب در واقع Riskware ها می توانند با انجام دادن یک سری تغییرات در سیستم عامل قربانی کاری کنند که سایر بدافزارهای مخرب بتوانند عملیات مخربشان را انجام بدهد و اینکار به واسطه نصب شدن یک Riskware انجام می شود.

بگذارید ساده تر بگوییم ، زمانیکه شما یک نرم افزار بر روی کامپیوتر خود نصب می کنید که این امکان را فراهم می کند که یک ریسک به وجود بیاید به آن Riskware می گوییم ، قرار نیست که این Riskware خودش تخریب یا عملیات مخرب انجام بدهد.برای مثال نرم افزاری ممکن است قوانین نصب و اجرای یک برنامه دیگر را نقض کند ، ممکن است اجازه اجرای یک برنامه دیگر در کامپیوتر را ندهد ، ممکن است جلوی به روز رسانی مختلف سیستم را بگیرد ، ممکن است Rule های دارای مشکل امنیتی در فایروال شما ایجاد کند ، ممکن است به عنوان Backdoor در سیستم قربانی مورد استفاده قرار بگیرد .

ریسک افزار چیست

ساده ترین مثالی که می توانیم از Riskware ها بزنیم ابزارهای دانلودی مثل Torrent و P2P هایی مثل EMule هستند که قسمتی از هارد دیسک شما را به اشتراک عمومی می گذارند. الزامی ندارد که به تنهایی Riskware خطرناک باشد اما این امکان را فراهم می کند که انتشار سایر بدافزارها راحت تر شود. بصورت کلی یک Riskware ابزاری است که باعث حذف شدن ، مسدود کردن ، تغییر دادن و کپی اطلاعات و مختل کردن کارایی کامپیوترها و شبکه می شود. یک Riskware می تواند در قالب برنامه های IRC ، P2P ، SMTP ، انواع Downloader اینترنتی ، انواع ابزارهای مانیتورینگ ، ابزارهای شبکه ، ابزارهای مدیریت از راه دور شبکه ، سرویس های FTP ، سرویس های پروکسی ، سرویس Telnet و سرور وب و همچنین Toolbar های اینترنتی ظاهر شود.

برای یادگیری بیشتر به دوره آموزشی کالی لینوکس ( PWK ) و آموزش هک ، دوره آموزشی CEH و دوره آموزشی سکیوریتی پلاس می باشد ، قبل از همه این آموزشها ، یادگیری دوره آموزش نتورک پلاس به عنوان پیشنیاز ورود به دنیای فناوری اطلاعات شدیدا توصیه می شود.

بازدید : 195
دوشنبه 11 فروردين 1404 زمان : 1:37

حملات آنالیز رمزنگاری (Cryptanalysis) روش‌هایی برای شکستن یا ضعیف کردن الگوریتم‌های رمزنگاری هستند.از جمله این حملات می‌توان به Brute Force (آزمایش تمام کلیدهای ممکن) و Dictionary Attack (استفاده از لیست کلمات رایج) اشاره کرد.حمله تمایزی (Differential Cryptanalysis) و خطی (Linear Cryptanalysis) نیز از روش‌های پیشرفته برای تحلیل الگوهای موجود در رمزنگاری هستند.Man-in-the-Middle (MITM) هم با رهگیری داده‌های رمزگذاری‌شده بین دو طرف، تلاش می‌کند اطلاعات را استخراج کند.در آموزش هک، این حملات بررسی می‌شوند تا هم برای تست امنیت و هم برای تقویت سیستم‌های رمزنگاری استفاده شوند.

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

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

انواع حملات به الگوریتم های رمزنگاری

شناخت این نوع حملات برای آزمون های بین المللی Security Plus ، CCSP و CISSP الزامی است . در این مقاله هدف ما معرفی کردن انواع حملات آنالیز رمزنگاری یا Cryptanalysis است.

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

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

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

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

واژه هایی که باید در حملات رمزنگاری بشناسید

  • Plaintext : متن یا رشته ای که رمزنگاری نشده است و خام است ( بعضی اوقات Cleartext هم گفته میشه )
  • Ciphertext : متن یا رشته ای که رمزنگاری شده است
  • Cryptanalyst: شخصی که دانش شکستن الگوریتم های رمزنگاری بدون داشتن کلید را دارد !
  • Cipher : روشی که به وسیله آن پیام های Plaintext مخفی می شوند ( رمز شدن )

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

حمله Passive نوع 1 : حمله COA یا Ciphertext Only Attackers

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

انواع حملات به الگوریتم های رمزنگاری

مهاجم با تجریه و تحلیل کردن کدهای رمزنگاری شده سعی در پیدا کردن مفهوم Ciphertext و رمزگشایی آن می کند. همچنین مهاجم هیچ اطلاعاتی در خصوص Plaintext ای که تبدیل به این Ciphertext شده است نیز ندارد. درصد موفقیت این حمله بسیار بسیار کم است و در عین حال الگوریتم های به روز و جدید اصلا چنین آسیب پذیری هایی ندارند.

حمله Passive نوع 2 : حمله KPA یا Known Plaintext Attack

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

انواع حملات به الگوریتم های رمزنگاری

اگر بخواهیم نمونه ای از این حمله را عنوان کنیم باید بگوییم الگوریتم PKZIP و Ciphertext هایی که با آن ساخته می شد با استفاده از یک XOR امکان رمزگشایی و شکسته شدن کلید داشت.

این همان روشی است که در جنگ جهانی دوم شخصی به نام Alan Turing برای رمزگشایی پیام های آلمان نازی که با دستگاه Enigma ارسال می شد استفاده کرد. از نظر ریاضیات و علوم کامپیوتر و منطق ، آلن تورینگ ( Alan Turing *) یکی از نخبگان قرن بیستم به حساب می آمد.

حمله Active نوع 1 : حمله CPA یا Chosen Plaintext Attack

در این نوع حمله مهاجم می تواند Plaintext ورودی الگوریتم مورد استفاده در رمزنگاری را تغیین کند و خروجی Ciphertext را تولید کند. با توجه به اینکه برای انجام چنین حمله ای مهاجم باید Plaintext را به عنوان ورودی الگوریتم رمزنگاری وارد کند بنابراین یک حمله Active یا فعال در نظر گرفته می شود.

انواع حملات به الگوریتم های رمزنگاری

با توجه به اینکه مهاجم می تواند Plaintext های مختلف را برای تبدیل به Ciphertext و مقایسه کردن آنها آزمایش کند ، احتمال موفقیت این حمله به نسبت سایر حملات به نسبت بالاتر است . در نهایت با آزمون و خطاهای بسیار امکان به دست آوردن روش کار الگوریتم و البته خارج کردن و به دست آوردن کلید رمزگشایی هم بسیار است .

در این نوع حمله برای اینکه درصد موفقیت بالاتر برود ، مهاجم یک بانک اطلاعاتی از انواع Plaintext های معروف را تبدیل به Ciphertext می کند و جفت های Plaintext و Ciphertext وردی و خروجی را با هم مقایسه می کند تا در نهایت به راز کار پی ببرد.

حمله Active نوع 2 : حمله CCA یا Chosen Ciphertext Attack

در این نوع حمله مهاجم هم می تواند رمزنگاری کند و هم رمزگشایی !! این یعنی اینکه مهاجم می تواند Plaintext را رمزنگاری کند و متعاقبا Ciphertext مرتبط با آن را ببینید و فرآیند معکوس را نیز انجام دهد.

انواع حملات به الگوریتم های رمزنگاری

به این موضوع دقت کنید که یک مهاجم قرار نیست الزما Plaintext را پیدا کند ، بلکه هدفش از رمزنگاری و رمزگشایی بصورت مرتب و منظم این است که بتواند از درون این فرآیند کلید رمزگشایی را پیدا کند و به کلی به الگوریتم نفوذ کند. این مدل نیز درجه محبوبیت و موفقیت به نسبت بالایی دارد.

خلاصه

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

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

برای مثال سالهاست که پروتکل WEP در شبکه های وایرلس منسوخ شده و آسیب پذیر است و عملا در نسخه های جدید تجهیزات بیسیم استفاده نمی شود . اما شما شاهد استفاده گسترده از این الگوریتم در تجهیزات قدیمی هستید که هنوز به روز رسانی نشده اند.برای یادگیریو آشنایی بیشتر به دوره اموزشی هک قانونمند و دوره آموزش سکیوریتی پلاس مراجعه کنید.

بازدید : 58
دوشنبه 11 فروردين 1404 زمان : 1:36

حملات پسورد فرآیندی هستند که در آن هکرها با استفاده از تکنیک‌های مختلف، سعی در شکستن رمزهای عبور به منظور دسترسی غیرمجاز دارند.روش brute force با آزمون تمامی ترکیبات ممکن و روش dictionary با استفاده از لیست کلمات رایج عمل می‌کنند.علاوه بر این، حملات rainbow table از جداول پیش‌محاسبه‌شده و حملات hybrid از ترکیب روش‌های مختلف بهره می‌برند.در آموزش هک، این تکنیک‌ها به طور جامع بررسی شده و راهکارهای مقابله با آن‌ها نیز آموزش داده می‌شود.در این مقاله میخوایم به بررسی انواع حملات رمزنگاری/پسورد و توضیح اونها بپردازیم تا نسبت به دسته بندی اون حمله شما بدونید از چه ابزاری استفاده کنید

حملات رمزنگاری ، به چند دسته تقسیم میشن :

1 . ما میتونیم مستقیم به الگریتم حمله کنیم که در اکثر مواقع این روش اصلا کاربردی نیست و وقت گیر هست و علم بالایی میخواد

2. حمله به نحوه پیاده سازی این پروتوکول ها خیلی مرسومه که ما هم زیاد به این قسمت کار نداریم

3. قسمتی که ما کار داریم ، حمله به متن های ورودی و خروجی یک الگریتم هست ، یعنی هدفمون کلید و متن Plaintext و متن Ciphertext ایه که توسط یه الگوریتم استفاده میشه.

# من هرجا نوشتم P منظورم Plaintext و هر وقت نوشتم C یعنی Ciphertext

1) در Known Plaintext only Attack (KPA) : مهاجم فقط یه P داره و C متناظرشو ، فقط همین دوتا ، مثلا :

123->202cb962ac59075b964b07152d234b70
123->F9C3746B8AF2FF60B09D99F20BAC3F0C


مهاجم فقط خط اولو داره (مثلا) یا مهاجم فقط مثال دومو داره ، P که عدد 123 هست و C که عبارت رمز شده اون هست ، در این مورد معمولا الگریتم هم پیدا نیس ولی ما میتونیم اونو پیدا کنیم ولی هدف بیشتر بدست اوردن کلیده (در این دو مثال من در اولی ، با یه الگریتمی عدد123 رو هش کردم و در عبارت دوم امدم و عدد 123 رو با یه کلیدی تبدیلش کردم به یه عبارت رمز شده) حالا هکر باید در مثال اول الگریتمشو پیدا کنه که مثلا میره همرو تست میکنه میفهمه عه md5 عه و دومی هم میره تلاش میکنه میبینه عه الگریتم AES-EBC عه با این کلید "abcdefghijklmnop" با یه کلیدی که طولش 16 کاراکتره یعنی میشه 128 بیتی


2) در حالت known Ciphertext Only Attack (COA) : مهاجم فقط یه C داره و دیگه هیچی نداره :)

SHA256 hash : 1f7285b0a2d5e803d550c3ff9e18c867f7cdde6ef187582a7dfdc8217d365553
Gqzq0pMzZDc=


مثلا الان یه چالش فارنزیک یا پنتست هست که شما میخوای به یه سیستم ورود کنی و پسورد اون سیستمو دامپ کردی و حالا میخوای کرک کنی ، مثلا این پسورد (این حالا از خانواده SHA بوده یا مثلا پسورد میتونه NTLM و... باشه) ، الگریتم ممکنه معلوم نباشه و اونم شاید مجبور شید پیدا کنید

یا در مثال بعدیش یه پیامیه و رسیده به ما که هیچ دیدی نداریم ، و میخوایم بازش کنیم (مثل پیام هایی که در جنگ ها ردوبدل میشه) مثلا در اینجا میدونیم که پیامی که ما داریم فرمت base64 هست ولی نمیدونم که الگریتمش des هست و کلیدش"abcdegf" و میخوایم این دوتارو پیدا کنیم


3) در Chosen Plaintext Attack (CPA) : ما میتونیم هر P ای که دوس داریمو بدیم و C نظیر و متقابلشو بگیریم ، در این روش الگریتم معلومه ولی کلید معلوم نیست و ما دنبال کلیدیم (یا مستقیم میخوایم به الگریتم حمله کنیم)

1:c4ca4238a0b923820dcc509a6f75849b
2:c81e728d9d4c2f636f067f89cc14862c
3:eccbc87e4b5ce2fe28308fd9f2a7baf3
12:c20ad4d76fe97759aa27a0c99bff6710
123:202cb962ac59075b964b07152d234b70
...
..
.
1:Vo5IelNXdtA=
2:3/PLtQjbT7g=
3:LK8BU9y0EWw=
12:PXgjzko+UtI=
123:pD8/onth+Fc=
1:y6X5W9eGklc=
2:nabFk0JtZLs=
3:3XVi1Gw4WzA=
12:RHNTRs4XIuo=
123:ViiG13HwpTw=
...
..
.


مثلا در اینجا ما امدیم و الگوریتمو داریم که مثلا 5 تا مثال اول همگی با الگریتم هشینگ md5 هش شدن و ما هی تست میکنیم مقادیر مختلفی رو تا مثلا به Collision برسیم

یا مثلا در 10 تا مثال پایین ما میاییم و با الگریتم DES و با کلید های مختلف عبارت های مختلف رو رمز میکنیم و میرسیم به اینکه خب اون الگریتم چطوری عمل میکنه و .. مثلا 5 تا عبارت اول کلیدشون "a" بوده و 5 تای دوم "A" بوده

4) در Chosen Ciphertext Attack (CCA) : مهاجم یه C داره و اونو میده و A رو میگیره (به هر روشی) و اینطوری به کلید میخواد پی ببره (این روش کم کارامد ترین روشه)

lvg8PFW22PA=

مثلا اینجا ما یه عبارت داریم و میخوایم به کلید این پی ببریم ، مثلا فرض کنید ما دونفر داریم که باهم دارن ارتباط برقرار میکنن ، فرد 1 داره با فرد 2 ارتباط برقرار میکنه ، در این حین یه فردی هم داره به این مکالمه گوش میکنه و امکان تغییر بسته هارو داره ، حالا در اینجا فرد 1 پیامی رو میفرسته به فرد 2 تحت این عنوان " Khoor Pb Iulhqg "و مهاجم که داره این وسط گوش میکنه میاد و پیامو به این تغییر میده " Helxo Op Jkfiens " (یه متن رندوم و شانسی) و وقتی پیام میرسه به فرد 2 و اون بازش میکنه میرسه به این "Khoar Rs Mnilhqv " و حالا اینجا فرد دو میاد و تلفن میزنه به فرد 1 یا روی همون ارتباط بهش میگه این چه وضعشه ؟ منظورت از "Khoar Rs Mnilhqv " چیه ؟ بدون اطلاع به من کلیدو تغییر دادی؟

و مهاجم اینجا میفهمه که "Helxo Op Jkfiens" با کلید ناشناس میشه "Khoar Rs Mnilhqv"

Helxo Op Jkfiens - > Khoar Rs Mnilhqv

و میره مثلا در الگوریتم سزار میبینه عه این کلیدش میشه 3 ، حالا میاد و پیام اصلی ای که بین اون دوتا رودبدل شده که "Khoor Pb Iulhqg" بوده رو با الگریتم سزار با کلید 3 رمز گشایی میکنه و میرسه به این " Hello My Friend "

این ساده ترین شکله ، دیگه خودتون گسترشش بدید

5 ) در این حالت Adaptive Chosen Plaintext/Ciphertext Attack (ACPA)(ACCA) : مهاجم یه P داره و با اضافه کردن جزء جزء یه سری چیزا به یه C میرسه و اینطوری میخواد به کلید یا و الگریتم پی ببره ، یا برعکس C رو داره و جز جز کم میکنه تا بره به P یا الگریتم و کلیدو پیدا کنه و بفهمه

مثال دقیق برای این موضوع ندارم و این نوع حمله برای الگریتم های قدیمی بیشتر کاربرد داشته

نکته : مثلا روش Brute Force معمولا برای KPA و COA کاربرد داره ، جایی که مهاجم میتونه صحت حدسو بررسی کنه

نکته : اگر براتون سوال پیش امده که فرق بین COA و CCA چیه ، باید بهتون بگم که در COA هدف معمولا P هست و در CCA هدف معمولا کلید هست

و....

اگر سوال دیگه ای بود بپرسید :)

بازدید : 51
دوشنبه 11 فروردين 1404 زمان : 1:35

حمله دیکشنری (Dictionary Attack) یکی از روش‌های شکستن رمزهای عبور است که در آن از یک لیست آماده شامل کلمات پرکاربرد استفاده می‌شود.به جای امتحان کردن تمام ترکیبات ممکن مانند Brute Force، این روش فقط پسوردهای متداول را بررسی می‌کند.این حمله معمولاً روی رمزهای عبوری که از کلمات رایج، نام‌ها یا ترکیب‌های ساده تشکیل شده‌اند، موثر است.ابزارهایی مانند John the Ripper و Hashcat برای اجرای این نوع حمله به کار می‌روند.در آموزش هک، یادگیری نحوه اجرای حمله دیکشنری و روش‌های مقابله با آن، مانند استفاده از رمزهای قوی، اهمیت زیادی دارد.

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

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

بدیهی است که یکی از روشهای پیدا کردن رمزهای عبور ، حدس زدن است و اگر اکثریت مردم را در نظر بگیریم ، بسیار محتمل است که رمزهای عبور بسیاری از آدم ها در یک دائره العمارف وجود داشته باشد.

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

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

اگر قرار باشد حملات پسورد ، احتمالات را هم در خودش جای بدهد دیگر به آن Dictionary Attack گفته نمی شود و در اصطلاح حمله Brute Force نامیده می شود. حمله دیکشنری بر روی پسوردهای قوی و پیچیده عملا کاربردی ندارد و فقط برای کرک کردن پسوردهای عامی و شناخته شده کاربرد دارد.

حمله دیکشنری چگونه انجام می شود؟

حمله دیکشنری با استفاده از یک لیست از پسوردهای ممکن برای هدف مورد نفوذ انجام می شود. هر بار یکی از کلماتی که در لیست وجود دارند با Hash موجود چک می شود تا در نهایت Hash ها برابر شوند و این یعنی اینکه پسوردها مشابه است. معمولا رمزهای عبوری که به سادگی قابل حدس هستند در لیست پسوردهای این حمله قرار می گیرند برای مثال لیستی از پسوردهای معمول در دنیای فناوری اطلاعات مثل :

  • 123456
  • 654321
  • Qwerty123456
  • Password

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

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

لیست کلمه هایی که در حمله دیکشنری مورد استفاده قرار می گیرد بسیار متنوع و بزرگ می تواند باشد و به همین دلیل تست کردن بصورت دستی در این حمله وجود ندارد و معمولا با استفاده از ابزارهایی که حمله Brute Force را انجام می دهند ، این حمله انجام می شود.

حملاتی معمولا از جنس دیکشنری یا Brute Force هم بصورت آنلاین و هم بصورت آفلاین انجام می شود اما معمولا حملات آنلاین به دلیل Lock شدن یا قفل شدن فیلد ورود پسورد کمتر مورد استفاده قرار می گیرد. اما در حملات آفلاین معمولا فایل رمزنگاری شده پسوردها در اختیار مهاجم است و تا جاییکه ممکن باشد تست های تطبیق را می تواند با سرعت بالاتر انجام دهد.برای یادگیری بیشتر به دوره سکیوریتی پلاس مراجعه کنید.

بازدید : 31
دوشنبه 11 فروردين 1404 زمان : 1:33

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

مهندس شبکه چه کسی است؟ مدیر شبکه چیست؟

مهندس شبکه یک متخصص فناوری است که مهارت های لازم را برای برنامه ریزی، پیاده سازی و نظارت بر شبکه های کامپیوتری که از خدمات صوتی، داده، ویدئو و شبکه های بی سیم داخلی پشتیبانی می کنند، دارد. اگرچه عناوین شغلی مهندس شبکه و مدیر شبکه گاهی اوقات به عنوان مترادف استفاده می شود، یک مهندس شبکه معمولاً مسئولیت های اجرایی بیشتری نسبت به یک مدیر شبکه دارد.

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

مهندس شبکه چه کاری انجام می دهد؟

مهندسان شبکه پیکربندی های شبکه را طراحی و پیاده سازی می کنند، مشکلات شبکه را عیب یابی می کنند، نظارت بر شبکه را انجام می دهند و سیستم های امنیتی مانند فایروال ها را پیکربندی می کنند. آنها اغلب به یک CIO یا افسر ارشد امنیت اطلاعات و سایر رهبران خط کسب و کار گزارش می دهند تا در مورد اهداف کلی کسب و کار، سیاست ها و به روز رسانی وضعیت شبکه تصمیم بگیرند. در بسیاری از شرایط، مهندسان شبکه از نزدیک با مدیران پروژه و سایر مهندسان کار می کنند، ظرفیت را مدیریت می کنند و پشتیبانی از راه دور یا در محل را انجام می دهند.

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

بیشتر بخوانید: بهترین دوره آموزش نتورک پلاس (Network+) دنیا 0 تا 100 به زبان طنز

مهندس شبکه چقدر حقوق می گیرد؟

طبق آمار رسمی از شرکت IranSalary دریافتی حقوق یک مهندس شبکه در عناوین شغلی مختلف در حوزه شبکه های کامپیوتری طبق جدول زیر به طور میانگین 12.5 میلیون تومان می باشد و در شرکت های ایرانی تا 20 میلیون تومان درآمد یک کارشناس شبکه کامپیوتری می باشد. مشخص است که با بالاتر رفتن سابقه کار و در عناوین شغلی مانند مدیر فنی این میزان درآمد می تواند به بالای 50 میلیون تومان در ماه برسد.

اگر قصد مهاجرت و کار در خارج از ایران را دارید، درآمد یک مدیر شبکه به طور میانگین در کشور آمریکا 73,566$ می باشد. در کمترین حالت ممکن 53,735$ و در بالاترین حالت 172,881$ می تواند دریافتی یک مهندس شبکه در طول سال باشد.

توانایی های مورد نیاز یک مهندس شبکه چیست؟

یک نامزد شغلی ممکن است برای به دست آوردن شغل مهندسی شبکه فقط به مدرک کاردانی نیاز داشته باشد، اما اکثر موقعیت ها نیاز به مدرک کارشناسی در علوم کامپیوتر یا چندین سال تجربه اضافی دارند. بسیاری از مهندسان شبکه نیز از رشته هایی مانند مهندسی برق، فیزیک یا ریاضیات هستند.

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

تعداد صفحات : 16

درباره ما
موضوعات
اطلاعات کاربری
نام کاربری :
رمز عبور :
  • فراموشی رمز عبور؟
  • خبر نامه


    معرفی وبلاگ به یک دوست


    ایمیل شما :

    ایمیل دوست شما :



    <
    آمار سایت
  • کل مطالب : 166
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • بازدید امروز : 82
  • بازدید کننده امروز : 0
  • باردید دیروز : 128
  • بازدید کننده دیروز : 0
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 83
  • بازدید ماه : 492
  • بازدید سال : 1606
  • بازدید کلی : 12541
  • کدهای اختصاصی