Category Archives: امنیت

مبهم سازی Obfuscation

مبهم سازی یا Obfuscation چیست؟

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

مبهم سازی ممکن است به صورت دستی یا با کمک ابزارهای مخصوصی موسوم به مبهم ساز (Obfuscator) انجام شود. این ابزارها بسته به زبان های مورد پشتیبانی قادر هستند روی فایل کامپایل شده یا سورس کد با روش های مختلف به ایجاد ابهام بپردازند. فراموش نکنید در هر حال با اِعمال مبهم سازی نباید عملکرد برنامه تغییر پیدا کند. علاوه بر این، تکنیک ها و ابزارهایی نیز وجود دارد که تلاش می‌کنند معکوس عمل مبهم سازی (Deobfuscation) را انجام دهند و از روی فایل اجرایی مبهم شده یا سورس کد مبهم شده به سورس اصلی و قابل درک دست پیدا کنند.

مبهم سازی کد Obfuscation
ایجاد ابهام در سورس کد، درک آن را دشوارتر می‌کند.

جالب است بدانید مسابقات برنامه نویسی معتبری (نظیر International Obfuscated C Code Contest) وجود دارد که در آن‌ها به بهترین کدهای مبهم شده و خلاقانه‌ترین روش‌ها جوایزی داده می‌شود.

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

تکنیک ها و اهداف مبهم سازی

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

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

مبهم سازی Obfuscation
نمونه‌ای از یک قطعه کد ساده قبل و پس از انجام مبهم سازی توسط نرم افزار Dotfuscator

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

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

در سایر حوزه ها

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

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

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

پچ یا وصله Patch

وصله یا Patch چیست؟

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

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

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

وصله های امنیتی (Security Patches) از جمله مهم ترین انواع وصله هایی هستند که برای رفع آسیب پذیری های امنیتی (به خصوص در مورد سیستم عامل ها) منتشر می‌شود.

پچ - وصله - بروزرسانی Patch - Update
پچ ها برای بروزرسانی، تعمیر یا بهبود نرم افزارهای رایانه ای منتشر می‌شوند.

بروزرسانی و اعمال پچ ها

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

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

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

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

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

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

روز صفر Zero Day

روز صفر یا Zero Day چیست؟

آسیب پذیری روز صفر (Zero-day Vulnerability) به گونه ای از حفره های امنیتی در یک محصول رایانه ای گفته می‌شود که برای افراد علاقمند به رفع آن (نظیر تولیدکننده محصول) ناشناخته است و یا با وجود اینکه شناسایی شده هنوز برطرف نشده است.

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

حمله روز صفر

اگر این آسیب پذیری ها (که معمولا نرم افزاری هستند) پیش از رفع شدن، توسط هکرها شناسایی شوند و بتوانند راهکاری برای سوء استفاده از این حفره های امنیتی پیدا کنند در واقع حمله ای موسوم به حمله روز صفر (Zero-day Attack) یا بهره جویی روز صفر (Zero-day Exploit) رخ می‌دهد. البته برخی از کارشناسان، حمله روز صفر را در قالب حملاتی تعریف می‌کنند که در روز شناسایی این نقاط ضعف به وقوع می‌پیوندد. همان طور که گفته شد ممکن است در زمان وقوع این حمله، آسیب پذیری مذکور حتی برای سازنده نرم افزار نیز ناشناخته باشد.

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

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

چگونه با این نوع حملات مقابله کنیم؟

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

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

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

آسیب پذیری روز صفر Zero day Vulnerability
آسیب پذیری های zero day ممکن است تا مدت‌ها برای سازنده نرم افزار یا سخت افزاری که حاوی این آسیب پذیری است نیز ناشناخته باشد!

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

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

حالت ایمن Safe mode

حالت ایمن یا Safe mode چیست؟

حالت ایمن (سیف مد یا Safe mode) به حالتی در سیستم عامل های رایانه ای گفته می‌شود که به منظور شناسایی مشکلات سیستم و رفع آن‌ها به کار می‌رود.

در بسیاری از سیستم عامل های امروزی از جمله ویندوز، مک او اس، توزیع های لینوکس نظیر Ubuntu و حتی اندروید، حالت ایمن وجود دارد (در مک او اس، این حالت تحت عنوان بوت ایمن یا Safe Boot شناخته می‌شود). هرچند Safe mode و قابلیت‌های آن در سیستم عامل‌های مختلف، تفاوت‌هایی با یکدیگر دارند اما معمولا در این حالت، تا جایی که ممکن است تنها بخش‌ها و سرویس های سیستمی اصلی اجرا می‌شوند و حتی بسیاری از ابزارها (به جز ابزارهای ضروری نظیر صفحه کلید) نیز غیرفعال می‌شوند.

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

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

حالت ایمن در سیستم عامل ویندوز

در سیستم عامل ویندوز علاوه بر Safe mode معمولی دو آپشن دیگر نیز درنظر گرفته شده است. گزینه Safe Mode with Networking که مشابه Safe Mode معمولی است با این تفاوت که در این گونه مشخص، درایورهای شبکه و سرویس‌هایی که برای دسترسی به اینترنت یا سایر شبکه‌های رایانه‌ای مورد نیاز هستند نیز اجرا می‌شود. گزینه دیگری که به Safe Mode with Command Prompt موسوم است به جای اجرای محیط دسکتاپ، به کاربر اجازه می‌دهد با کمک خط فرمان برای رفع مشکل موردنظر اقدام کند.

در مورد نسخه های قدیمی ویندوز (پیش از ویندوز 8) کاربر می‌توانست با فشار دادن کلید F8 هنگام بوت شدن سیستم عامل، به حالت Safe mode وارد شود. اما از آنجایی که فرایند بوت در ویندوزهای 8 و 10 سریعتر صورت می‌گیرد غالبا امکان ورود به این حالت با روش‌های گذشته وجود ندارد. در عوض کاربر می‌تواند در صفحه لاگین (و همچنین صفحه یا منوی Start) با پایین نگه داشتن کلید Shift روی نماد Power کلیک کرده و گزینه Restart را انتخاب نماید تا ویندوز پس از بوت شدن در حالت ایمن اجرا شود. البته در صورتی که امکان دسترسی نرمال به ویندوز برای انجام این کار وجود نداشته باشد کاربر می‌تواند از صفحه‌ای موسوم به ریکاوری (Recovery) که در چنین موقعیتی نمایش داده می‌شود برای ورود به سیف مد استفاده کند.

حالت ایمن Safe mode
صفحه Startup Settings پیش از ورود به ویندوز 10. کاربر می‌تواند با فشار دادن یکی از کلیدهای F4 تا F6 وارد Safe mode شود.
حالت ایمن Safe mode
نمایی از Safe mode در ویندوز 10 – به عبارت Safe Mode در چهارگوشته دسکتاپ توجه کنید.

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

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

ترس افزار Scareware

ترس افزار یا Scareware چیست؟

ترس افزار (Scareware) نوعی بدافزار رایانه ای است که معمولا با کمک روش‌های مختلف تلاش می‌کند در میان قربانیان خود نوعی نگرانی یا ترس ناشی از وجود یک تهدید رایانه ای ایجاد نماید. این بدافزارها در بسیاری از موارد کاربر را به خرید یک نرم افزار امنیتی جعلی برای مقابله با این تهدید تشویق می‌کنند. البته این اصطلاح در حالت کلی برای هرنوع نرم افزاری که به دنبال ایجاد هراس و نگرانی در کاربر باشد به کار می‌رود.

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

روش‌های مختلفی برای گسترش ترس افزارها مورد استفاده قرار می‌گیرد. به عنوان نمونه، برخی از وبسایت ها با نمایش پنجره های پاپ آپ یا بنرهایی با ظاهر هشداردهنده، متنی را به کاربر نمایش می‌دهند که محتوای آن چیزی مشابه “Your computer is infected with harmful spyware …” (به معنای “رایانه شما به یک جاسوس افزار مضر آلوده شده است…”) می‌باشد و او را به حذف فوری بدافزار با استفاده از ابزاری که به او پیشنهاد می‌دهد تشویق می‌کند. معمولا این صفحات وب به شکلی طراحی می‌شوند که یک کاربر ساده لوح تصور می‌کند پیام از طرف سیستم عامل نمایش داده شده است.

ترس افزار Scareware
نمونه ای از هشدارهای جعلی در قالب ترس افزار

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

نمونه‌ای دیگر از ترس افزارها نیز با نمایش تصاویر، اصوات یا ویدیوهایی تنها به ایجاد رعب و وحشت در قربانی خود اکتفا می‌کنند و حتی به دنبال کسب درآمد از طریق فروش یک نرم افزار بدون کاربرد هم نیستند. به عنوان مثال ممکن است یک ترس افزار پس از فعال شدن روی سیستم قربانی، پیامی با این مضمون را به کاربر نمایش دهد: “آیا مایل به حذف تمام اطلاعات خود هستید؟” و کاربر را با یک شمارنده معکوس و دو دکمه که هردو دارای برچسب OK هستند تنها بگذارد! هرچند در چنین موقعیتی، نگرانی تمام وجود کاربر را فرامی‌گیرد اما احتمالا اگر شانس بیاورد و تنها با یک ترس افزار سرگرم کننده سر و کار داشته باشد روی هرکدام از این دو دکمه کلیک کند هیچ اتفاق خاصی برای فایل‌هایش نخواهد افتاد!

نمونه‌ای دیگر از ترس افزارهای جذاب را می‌توانید در کمپین تبلیغاتی که در سال 1997 برای بازی ویدیویی Virus: The Game شکل گرفت مشاهده کنید. در این کمپین پس از اجرا شدن ترس افزار، چنین وانمود می‌شد که فولدر Windows در حال حذف شدن است، زمانی که این عملیات به پایان می‌رسید پیامی با این محتوا به کاربر نمایش داده می‌شد: “خدا را شکر این فقط یک بازی است!” و در انتها نیز صفحه‌ای برای خرید بازی نمایش داده می‌شد بدون اینکه هیچ خطری رایانه کاربر را تهدید کند.

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

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

سمت کلاینت Client-Side

سمت کلاینت یا Client-Side چیست؟

سمت کلاینت (Client-Side) اصطلاحی در مورد اعمالی است که در یک ارتباط کلاینتسرور توسط کلاینت انجام می‌شود.

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

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

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

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

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

پروکسی سرور Proxy Server

پروکسی سرور یا Proxy Server چیست؟

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

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

مفهوم Forward Proxy و Reverse Proxy

واژه Proxy در زبان انگلیسی به معنای نماینده یا وکیل می‌باشد. Proxy Server ها نیز مشابه همان کاری را انجام می‌دهند که یک نماینده در زندگی معمولی برای شما انجام می‌دهد. در میان عامه مردم زمانی که سخن از پروکسی ها به میان می‌آید غالبا منظور نوع متداول آن‌ها یعنی فوروارد پروکسی (Forward Proxy یا پروکسی ارسال کننده) می‌باشد. این نوع Proxy ها به عنوان یک نماینده یا واسطه برای کلاینت به شمار می‌روند. کلاینت درخواست خود را که مربوط به یک سرور معین است برای فوروارد پروکسی ارسال می‌کند. Proxy نیز در نقش یک کلاینت، درخواست را برای سرور مدنظر می‌فرستد و پس از دریافت پاسخ، نتیجه را به کلاینت خود تحویل می‌دهد. در این حالت کلاینت باید برای استفاده از Proxy به شکل مناسبی تنظیم شده باشد؛ این تنظیمات معمولا توسط یک نرم افزار ویژه به صورت خودکار انجام می‌شود.

نوع دیگری از Proxy ها نیز تحت عنوان پروکسی های معکوس (Reverse Proxy) وجود دارد که برخلاف Forward Proxy ها به عنوان میانجی برای یک یا چند سرور معین عمل می‌کنند. در واقع در این مدل، Proxy Server بخشی از شبکه داخلی سرورهای اصلی است و درخواست‌های دریافتی از کلاینت‌های خارجی را به سروری که باید آن را پاسخ دهد ارسال می‌کند و سپس پاسخ دریافتی را به شکلی که گویا مستقیما از سرور اصلی دریافت می‌شود برای کلاینت برمی‌گرداند. کلاینت معمولا در چنین حالتی متوجه وجود سرور اصلی (که در پشت Proxy پنهان شده است) و ویژگی‌های آن نخواهد شد و تصور می‌کند درخواست خود را برای سرور اصلی ارسال کرده است. به عبارت بهتر برخلاف فوروارد پروکسی ها که هویت کلاینتشان را مخفی می‌کنند (گمنامی)، پروکسی معکوس هویت سرور را پنهان می‌کند. صاحبان این پروکسی ها می‌توانند با پیکربندی مناسب آن‌ها، سرورهای اصلی خود را در مقابل حملاتی نظیر DDoS محافظت کرده و از مزایای دیگری نظیر توزیع و توزین بار (Load Balancing) روی چند سرور اصلی نیز بهره ببرند.

وب پروکسی

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

از Web Proxy ها می‌توان برای کنترل، نظارت و فیلتر نمودن منابع و محتوای قابل استفاده توسط کاربران بهره برد. علاوه بر این ممکن است این Proxy ها محتوای دریافتی از سرور اصلی را از نظر امنیتی و بدافزارهای مختلف (با کمک آنتی ویروس ها و دیوارهای آتش) بررسی نموده و سپس در اختیار کاربر قرار دهند. در بسیاری از سازمان‌ها، مدارس و حتی دولت‌های سراسر جهان نیز معمولا با کمک پروکسی های محدودکننده محتوا و استفاده از روش‌هایی نظیر لیست سیاه نشانی های وب یا وجود کلمات کلیدی خاص، دسترسی به منابع نامناسب یا خلاف قوانین را محدود می‌کنند.

پروکسی سرور Proxy Server
Proxy Server به عنوان واسطی میان کلاینت و سرور اصلی عمل می‌کند.

سایر کاربردهای رایج پروکسی

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

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

کشینگ پروکسی (Caching Proxy) ها نیز نوع رایج دیگری از این سرورها هستند که با نگه‌داری نسخه‌ای از منابع که با درخواست بیشتری مواجه بوده‌اند قادر هستند پاسخگویی به درخواست‌ها را سرعت بخشیده و مصرف پهنای باند را نیز کاهش دهند.

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

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

کرم رایانه‌ای ILOVEYOU

کرم رایانه‌ای ILOVEYOU چیست؟

ILOVEYOU نوعی کرم رایانه‌ای برای سیستم عامل ویندوز است که گسترش آن از ماه می سال 2000 میلادی در کشور فیلیپین آغاز شد و توانست میلیون‌ها رایانه را در سراسر دنیا قربانی اعمال مخرب خود کند. این بدافزار با نام‌های Love Bug (باگ عشق) و Love Letter (به معنای نامه عاشقانه) نیز شناخته می‌شود.

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

انتشار این کرم رایانه‌ای از طریق ارسال پیام‌های ایمیلی با عنوان ILOVEYOU (به معنای عاشقت هستم) آغاز شد. همراه با این پیام، فایلی به نام LOVE-LETTER-FOR-YOU.txt.vbs ضمیمه می‌شد. پسوند این فایل (یعنی vbs) مربوط به نوعی فایل شامل اسکریپت‌هایی به زبان VBSript می‌باشد. از آنجایی که به دلیل تنظیمات پیشفرض در سیستم عامل ویندوز، پسوندهای شناخته شده در Windows Explorer پنهان می‌شد کاربر تنها نام فایل را به شکل LOVE-LETTER-FOR-YOU.txt مشاهده می‌کرد و به این ترتیب بدافزار با بهره‌گیری از روش‌های مهندسی اجتماعی کاربر را به خیال آنکه با یک فایل متنی حاوی نامه‌ای عاشقانه سر و کار دارد به باز نمودن آن تشویق می‌کرد.

با اجرای این فایل، کرمی که به ظاهر خود را دوست‌دار کاربر معرفی کرده بود فعالیت مخرب خود را آغاز کرده و با کمک ضعف‌های امنیتی موجود در سیستم عامل ویندوز، فایل‌های مختلفی از قبیل فایل‌های مجموعه Microsoft Office، فایل‌های تصویری و … را هدف قرار داده، کد خود را جایگزین آن‌ها می‌کرد و پسوند فایل vbs را به انتهای آن‌ها اضافه می‌نمود. به علاوه با کمک Microsoft Outlook از طریق ارسال ایمیل به تمامی نشانی‌های ذخیره شده در دفترچه آدرس ویندوز، خود را مجددا گسترش می‌داد. با توجه به اینکه پیام‌ها از سوی فردی آشنا برای این نشانی‌ها ارسال می‌شد قربانیان جدید نیز نسبت به محتوای آن اعتماد بیشتری نشان می‌دادند و به این ترتیب سرعت انتشار و آلوده‌سازی ILOVEYOU افزایش می‌یافت.

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

کرم رایانه‌ای ILOVEYOU
نمونه محتوای پیام‌های ارسالی حاوی کرم رایانه‌ای ILOVEYOU

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

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

داکس کردن Doxing

داکس کردن یا Doxing چیست؟

داکس کردن (Doxing) به معنای جستجو، تحقیق و جمع‌آوری اطلاعات خصوصی یا شناساگر یک فرد یا سازمان با کمک اینترنت و انتشار آن می‌باشد. ریشه این فعل واژه Dox (مخفف Documents به معنای اسناد) می‌باشد.

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

روش‌های Doxing

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

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

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

مقابله با Doxing

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

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

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

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

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

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

داکسینگ Doxing
مراقب داکسینگ باشید

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

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

کرم رایانه ای Computer Worm

کرم رایانه‌ای یا Computer Worm چیست؟

کرم رایانه‌ای (Computer Worm) نوعی بدافزار مستقل است که معمولا خود را از طریق یک شبکه روی رایانه‌های دیگر تکثیر می‌کند.

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

در مقام مقایسه با ویروس‌ها، معمولا کرم‌ها از طریق یک شبکه‌ی رایانه‌ای گسترش پیدا می‌کنند و برخلاف ویروس‌ها که برای اجرا شدن، کدهای خود را به یک برنامه میزبان (Host Program) می‌چسبانند، کرم‌ها بدافزارهایی مستقل (Stand-alone Malware) به شمار می‌روند که بدون نیاز به یک برنامه دیگر اجرا می‌شوند. ضمیمه‌های ایمیل، شبکه‌های اشتراک فایل و وبسایت‌های آلوده از رایج‌ترین راه‌های انتشار یک کرم رایانه‌ای به شمار می‌رود. پیش از رواج استفاده از شبکه‌ها متداول‌ترین راه تکثیر کرم‌ها، رسانه‌های ذخیره‌سازی (نظیر فلاپی دیسک‌ها) بودند (امروزه نیز از فلش درایورهای USB برای این منظور استفاده می‌شود).

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

از مشهورترین و قدیمی‌ترین کرم‌های رایانه‌ای می‌توان به Morris Worm اشاره کرد که در سال 1988 توسط Robert Tappan Morris ساخته شد.

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

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