بایگانی برچسب‌ها : انواع

ماشین مجازی Virtual Machine

ماشین مجازی یا Virtual Machine چیست؟

ماشین مجازی (Virtual Machine به اختصار VM) یک همسان‌سازی از سیستم‌های رایانه‌ای است. در واقع ماشین‌های مجازی می‌توانند رفتار و عملکرد یک رایانه فیزیکی را تقلید کنند. معمولا این همسان سازی حاصل ترکیبی از نرم‌افزار و سخت‌افزارهای ویژه می‌باشد.

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

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

به نرم‌افزار یا سخت‌افزاری که امکان ایجاد و اجرای یک ماشین مجازی را فراهم می‌کند Hypervisor (هایپروایزر) گفته می‌شود. سیستم فیزیکی که ماشین مجازی روی آن اجرا می‌شود ماشین میزبان (Host Machine) نامیده می‌شود و هر ماشین مجازی را نیز یک ماشین مهمان (Guest Machine) می‌نامند.

انواع ماشین‌های مجازی و کاربردهای آن‌ها

شاید بتوان گفت محرک اصلی برای شکل‌گیری ماشین‌های مجازی، تمایل کاربران به اجرای همزمان چند سیستم عامل بوده است. ماشین‌های مجازی سیستمی (System Virtual Machine) که تحت عنوان ماشین‌های با مجازی‌سازی کامل (Full Virtualization) نیز شناخته می‌شوند با تقلید رفتار یک ماشین واقعی می‌توانند یک سیستم عامل کامل را اجرا کنند. در این مدل با روش‌های مختلف و بهره‌گیری از تکنیک‌های اشتراک زمانی (Time Sharing) امکان ایجاد ماشین‌های مجازی مجزا (مدیریت و اشتراک منابع سخت‌افزاری یک ماشین واقعی مابین VM ها) فراهم می‌شود. این نوع ماشین‌های مجازی را می‌توان توسعه‌ای از حافظه مجازی (Virtual Memory) به شمار آورد و در کنار کاربردهایی همچون امکان اجرای همزمان چند سیستم عامل، اشکال‌زدایی آسانتر و بوت سریعتر هنگام توسعه یک سیستم عامل، به منظور تست نرم‌افزارهای در حال توسعه روی سیستم‌های مختلف و هم‌چنین نصب نرم‌افزارهایی که هنوز در مراحل آزمایشی به سر می‌برند یا عملکردشان به طور کامل شناخته شده نیست نیز استفاده می‌شود. گفتنی است مجازی سازی با کمک سخت افزار (Hardware-assisted Virtualization) رویکردی است که در آن امکان مجازی سازی کامل و کارامد با بهره‌گیری از قابلیت‌های سخت‌افزار میزبان (به خصوص پردازنده) مهیا می‌شود. VMware Workstation و Oracle VM VirtualBox دو نمونه از مشهورترین هایپروایزرهای این دسته به شمار می‌روند.

ماشین مجازی فرایندی (Process Virtual Machine) که به ماشین مجازی اپلیکیشن نیز مشهور است گونه دیگری از VM هاست که مشابه یک اپلیکیشن معمولی در سیستم عامل رایانه میزبان اجرا می‌شود. هدف از طراحی این ماشین‌ها ایجاد محیطی مستقل از پلتفرم است که امکان اجرای یک برنامه روی هر پلتفرمی را فراهم می‌آورد. این VM ها بر اساس یک مفسر ساخته می‌شوند و از مشهورترین آن‌ها می‌توان به ماشین مجازی جاوا (Java Virtual Machine) و Common Language Runtime اشاره نمود که به ترتیب برای اجرای برنامه‌های جاوا و برنامه‌های مبتنی بر .Net Framework طراحی شده‌اند.

ماشین مجازی Virtual Machine
نمایی از یک ماشین مجازی در حال اجرای Windows 7 و نرم افزار Mozilla Firefox – همانطور که مشاهده می‌کنید این ماشین مجازی روی Windows 10 در حال اجراست.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

سرور Server

سرور یا Server چیست؟

سرور (Server) یا سرویس دهنده به یک برنامه یا دستگاه رایانه‌ای گفته می‌شود که برای سایر برنامه‌ها یا دستگاه‌ها که کلاینت (Client یا سرویس گیرنده) نامیده می‌شوند خدمات (یا سرویس‌هایی) را ارائه می‌کند. این خدمات می‌تواند شامل اشتراک داده، اشتراک منابع سخت‌افزاری، انجام محاسبات و … باشد.

معماری مورد استفاده در ارتباط Server و Client، مبتنی بر ساختاری است که از آن با عنوان مدل کلاینت – سرور یاد می‌شود. در رایج‌ترین نوع سناریوی ارتباطی، ابتدا کلاینت درخواستی را برای سرور ارسال می‌کند و سرور نیز پس از انجام عمل مورد نظر، پاسخی را برای کلاینت ارسال می‌کند که معمولا در آن نتیجه انجام عمل درخواستی نیز گنجانده شده است.

هرچند از نظر فنی اصطلاح Server به یک برنامه یا فرایند رایانه‌ای اطلاق می‌شود اما در فرهنگ عامه دستگاهی که برای اجرای برنامه‌های Server مورد استفاده قرار می‌گیرد نیز Server نامیده می‌شود. با توجه به اینکه دسترسی به سرورها معمولا از طریق شبکه رخ می‌دهد عملا اکثر آن‌ها به نمایشگر، ماوس، کیبورد، ورودی و خروجی صوتی و … مجهز نیستند و حتی سیستم عامل آن‌ها معمولا فاقد واسط کاربری گرافیکی (GUI) می‌باشد.

سخت افزارهایی که برای اجرای برنامه‌های Server طراحی می‌شوند معمولا در مقایسه با یک رایانه شخصی قوی‌تر و قابل اعتمادتر هستند. اجرای این برنامه‌ها باید بدون وقفه و با دسترس‌پذیری بالایی همراه باشد. استفاده از منابع برق بدون قطعی، خنک کننده‌های قدرتمند، بک آپ گیری متناوب و … از جمله ویژگی‌هایی است که برای یک Server نقشی حیاتی را ایفا می‌کند. در حال حاضر سیستم عامل‌های مبتنی بر UNIX و Windows Server بازار سرورها را در دست دارند.

انواع رایج سرورها

امروزه سرورهای گوناگونی بسته به کاربردهای مختلف در حال سرویس‌دهی هستند. از جمله رایج‌ترین Server ها می‌توان به موارد زیر اشاره نمود:

  • سرور وب (Web Server): این Server ها برای میزبانی صفحات وب مورد استفاده قرار می‌گیرند. هر وبسایتی به حداقل یک وب سرور نیاز دارد.
  • سرورهای محاسباتی: این نوع سرویس‌دهنده‌ها امکان انجام پردازش‌های سنگین را با به اشتراک‌گذاری منابعی همچون پردازنده و حافظه RAM بر بستر یک شبکه برای کلاینت‌ها فراهم می‌آورند. سیستم‌های رایانه‌ای و نرم‌افزارهایی که به پردازش‌های سنگینی نیاز دارند از چنین سرورهایی خدمات دریافت می‌کنند.
  • سرور پایگاه داده (Database Server): نگه‌داری و به اشتراک‌گذاری پایگاه داده بر بستر یک شبکه توسط این Server ها انجام می‌شود.
  • سرورهای فکس و پرینت: این سرورها با به اشتراک‌گذاری دستگاه‌های فکس و پرینتر این امکان را فراهم می‌آورند که یک رایانه کلاینت بدون اینکه به صورت فیزیکی و از طریق کابل‌های واسط به دستگاه دسترسی داشته باشد از طریق شبکه، نیازهای خود به این دستگاه‌ها را برطرف نماید. به این ترتیب لازم نیست در یک اتاق اداری برای هر سیستم رایانه‌ای یک دستگاه پرینتر یا فکس مجزا تهیه شود.
  • سرورهای ایمیل (Mail Server): این نوع از Server ها امکان ارسال و دریافت ایمیل را فراهم می‌آورند. دریافت کنندگان و ارسال کنندگان ایمیل کلاینت‌های این دسته به شمار می‌روند.
  • سرور فایل (File Server): اشتراک فایل و فضای ذخیره‌سازی فایل خدماتی است که توسط این Server ها ارائه می‌شود.
  • سرور اپلیکیشن (Application Server): نوعی سرور که به کلاینت‌های خود اجازه می‌دهد برنامه‌های کاربردی تحت وب را از طریق یک مرورگر وب اجرا نمایند.
سرور Server
مجموعه‌ای از  Server ها در کنار یکدیگر

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

بدافزار Malware

بدافزار یا Malware چیست؟

بدافزار (Malware) یا نرم افزار مخرب (Malicious Software) اصطلاحی است که در مورد نرم‌افزارهای نفوذکننده و نرم‌افزارهایی با اهداف غیردوستانه به کار می‌رود. این واژه دارای مفهومی عمومی است و تمامی نرم‌افزارهای نفوذی و مخرب شامل ویروس‌های رایانه‌ای، کرم‌ها، تروجان‌ها، باج‌افزارها، جاسوس‌افزارها، برخی از آگهی‌افزارها و … را در برمی‌گیرد.

نحوه عملکرد بدافزارها

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

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

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

اهداف بدافزارها

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

راهکارهای مقابله با بدافزارها

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

خودداری از باز کردن ایمیل‌های ناشناس، پرهیز از دانلود نرم‌افزارهای کرک شده یا بدون منبع معتبر، عدم بوت کردن سیستم با دیسک‌ها و فلش درایوهای نامطمئن و … نیز از راهکارهای مقابله با بدافزارها به شمار می‌رود که متکی به عملکرد کاربران می‌باشد.

کی لاگر Keylogger

کی لاگر یا Keylogger چیست؟

کی لاگر (Keylogger) نرم افزار یا سخت افزاری است که از کلیدهای فشرده شده روی صفحه کلید کاربر گزارش تهیه می‌کند. به عبارت بهتر، جزئیات هر کلیدی که توسط کاربر فشرده می‌شود توسط کی لاگر (معمولا در یک فایل) ثبت می‌شود. این کار در برخی موارد به صورت نهانی و بدون آنکه کاربر مطلع شود انجام می‌شود. به این فرایند، Keylogging (به معنای گزارش‌گیری از کلیدها) یا Keyboard Capturing (ثبت و ضبط صفحه کلید) گفته می‌شود.

انواع کی لاگر

کی لاگرها از نظر ماهیت به دو نوع نرم افزاری و سخت افزاری تقسیم می‌شوند. هم‌چنین از نظر کاربرد و هدفی که دنبال می‌کنند ممکن است کاملا مشروع و قانونی باشند و یا در قالب یک جاسوس افزار (Spyware) جنبه غیرقانونی پیدا کنند.

کاربردهای کی لاگر

از Keylogger های نرم افزاری می‌توان برای حل مشکلات فنی مرتبط با رایانه‌ها در یک سازمان، نظارت روی عملکرد کاربران بدون اطلاع مستقیم آن‌ها و یا مطالعه رفتار کاربران با رایانه استفاده نمود. در عین حال هکرها از Keylogger برای سرقت اطلاعات مهم کاربران نظیر کلمه‌های عبور و داده‌های حساسی که در فرم‌های اینترنتی وارد می‌شود (نظیر شماره تماس، آدرس، اطلاعات کارت‌های اعتباری و …) استفاده می‌کنند. معمولا این کی لاگرها در قالب یک تروجان یا ویروس رایانه‌ای منتشر می‌شوند و جاسوسی از فرد قربانی را آغاز می‌کنند.

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

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

راه‌های مقابله با گزارش‌گیری‌های غیرقانونی

همانطور که گفته شد یکی از رایج‌ترین کاربردهای کی لاگرها بر اهداف بدخواهانه و شرورانه استوار است. برای مقابله با حملات مبتنی بر کی لاگینگ روش‌های مختلفی وجود دارد. استفاده از کیبوردهای نرم افزاری برای ورود داده‌های مهم (نظیر اطلاعات کارت‌های اعتباری) می‌تواند در مقابل Keylogger ها (به خصوص نوع سخت افزاری آن‌ها) گزینه‌ی ایمن‌تری به شمار بیاید (معمولا در فرم‌های خرید اینترنتی می‌توانید کنار فیلدهای حساس، صفحه کلیدهای عددی نرم افزاری را مشاهده کنید. در سیستم عامل ویندوز هم احتمالا با On-Screen Keyboard که صفحه کلید نرم افزاری پیش فرض این سیستم عامل است آشنا هستید.)

استفاده از نرم افزارهای آنتی کی لاگر (Anti Keylogger) می‌تواند به شما در شناسایی Keylogger ها کمک کند. برخی از آنتی ویروس‌ها و ضد جاسوس افزارها نیز می‌توانند کی لاگرها را شناسایی کنند.

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

یک کی لاگر (Keylogger) سخت افزاری
یک کی لاگر سخت افزاری