حملات سایبری
حمله کانال جانبی، حمله خطا، حمله نرم افزاری، حمله بروت فورس

در دنیای سایبری و دیجیتال امروزی باید مراقب رمزها، پین کدها، کلیدهای خصوصی کیف پول رمزارز خود و سایر اطلاعات حیاتی مهم هویتی یا مالی خود باشیم زیرا کلاهبرداران اینترنتی یا همان هَکِرها همیشه سعی در حمله به سمت این قبیل اطلاعات دارند. اما اگر متخصص نرم افزار نیستید (و اکثر ما نیستیم) ممکن است مشخص نباشد که در مورد چه نوع حملاتی صحبت میکنیم. پس بیایید دقیق تر نگاه کنیم تا متوجه شویم:
حمله کانال جانبی (Side-channel attack): یک “شَزِم” برای مصرف انرژی
وقتی آهنگی در رادیو پخش می شود، شزم (اپ موبایلی برای تشخیص نام آهنگی که میشنوید Shazam) میتواند به آن گوش دهد و به شما بگوید در حال حاضر چه آهنگی در حال پخش است. برای انجام این کار، Shazam سعی میکند در کتابخانه ای از آهنگها جستجو و نهایتا یک مطابقت پیدا کند. با ابزارهای مناسب، می توانید به همان اندازه به مصرف انرژی دستگاههای مختلف گوش دهید و داده های کلیدی را از آن استخراج کنید!
فرض کنید یک مهاجم به کامپیوتر یا گوشی موبایل یا کیف پول سخت افزاریِ رمزارزهای شما دسترسی فیزیکی دارد. در این حالت، مهاجم میتواند مصرف انرژی دستگاه را اندازهگیری کنند و درست مانند کاری که اپلیکیشنِ شزم Shazam با صدا انجام می دهد، الگوی مصرف انرژی را با یک پایگاه داده مخصوص مطابقت دهد. این در نهایت به شنونده (مهاجم) اجازه می دهد تا رمز دستگاه شما را بشکند.
این یک شکل خاص از حمله کانال جانبی است، اما چندین نوع دیگر وجود دارد.
نرم افزارها و ساخت افزارهای امنیتی به طور خاصی با اقدامات متقابل پیچیده ای اقدام به پنهان کردن تشعشعات الکترومغناطیسی و مصرف انرژی می کنند و از دستگاه شما در برابر کسانی که می خواهند به آن گوش دهند و از آن به عنوان یک بردار حمله استفاده کنند محافظت می کند. (در امنیت سایبری، بردار حمله مسیری است که یک هکر برای سوء استفاده از آسیبپذیریهای امنیتی طی میکند.)
حملات خطا (Fault attacks): اعمال تغییرات در مدار در حین کار
حمله خطا، عملی است که باعث ایجاد اختلال در مدار در حین کار می شود. این باعث بروز خطا در یک دستگاه یا ماشین می شود که می تواند منجر به یادگیری بیشتر در مورد عملکرد آن شود یا حتی یک رفتار متفاوت و معیوب را تحمیل کند. چنین رفتاری می تواند شامل پرش از مراحل یک فرآیند یا ارائه یک خروجی اشتباه باشد. همه اینها هدف یک حمله خطا است.
نرم افزارها و ساخت افزارهای امنیتی برای جلوگیری از موفقیت این نوع حملات، اقدامات محافظتی درون خود ندارد که امکان تشخیص کارآمد خطا و واکنش های امنیتی مناسب را فراهم می کنند.
حملات نرم افزاری (Software attacks): یاد گرفتن اینکه چه چیزی باعث تیک زدن دستگاه می شود
هدف حملات نرم افزاری افشا، تغییر، غیرفعال کردن، تخریب یا سرقت اطلاعات است. حملات نرم افزاری را می توان به انواع مختلفی از حملات تقسیم کرد که همه سعی می کنند رفتارهای غیرمنتظرۀ ناشی از موزد هدف قرار دادن نرم افزار را پیدا کنند. این رفتارهای غیرمنتظره در نرم افزار توسط وارد کردن اطلاعات نامتعارف انجام میپذیرد و در واقع می توانند آسیب پذیری ها یا اطلاعات حساس را نمایان سازند.
با بازی کردن با ورودیها، میتوانید درباره نحوه برنامهریزی نرمافزار دستگاه در برابر واکنش به ورودیهای نادرست، اطلاعات بیشتری کسب کنید. این درک از نرم افزار می تواند منجر به کشف نقاط ضعف آن شود. با این حال، نرم افزارها میتوانند با به کارگیری یک سیستم بسیار ساده که از رابط های بسیار کمی استفاده می کند، سطح حمله را به شدت کاهش دهند.
حمله بروت فورس (Brute Force Attacks)
حمله Brute Force تلاشی برای شکستن رمز عبور، یافتن نام کاربری، یافتن یک صفحه وب پنهان یا یافتن کلید مورد استفاده برای رمزگذاری پیام با استفاده از یک روش آزمون و خطا و بررسی تمام حالات ممکن است. این روش به میزان زیادی از امیدواری نیز نیاز دارد تا در نهایت رمز عبور را بهدرستی حدس زده شود. Brute force حملهای قدیمی اما همچنان محبوب و موثر است.
روشهای انجام حملهی Brute Force
یکی از کاربردهای حمله Brute Force انجام دادن کرک است. کرک یا Cracking عنوان عملیاتی است که معمولن مهاجم برای به دست آوردن رمز عبور یا نام کاربری جهت وارد شدن به یک سرور، سایت، سرویس و … انجام میدهد. در این نوع حملات مهاجم با استفاده از الگوهایی که در اختیار دارد ابزارهایی را استفاده میکند تا بتواند فهرستی از کاربران یا رمزهای موجود را روی سرور مدنظر تست کند. با این کار مهاجم در نهایت میتواند نام کاربری یا رمز عبور سرور، سایت و … را به دست آورد.
حملات Cracking خود دارای انواع مختلفی هستند و عملکرد و الگوی خاصی را نمیتوان برای آنها در نظر گرفت. ولی با توجه به استفادهی کاربران از پسوردهای تکراری، فهرستی از پسوردها، نامکاربریها و … وجود دارد که در اصطلاح به آن دیکشنری گفته میشود و رایجترین روش برای انجام حملهی Cracking است.
در دیکشنریها برای پسوردهایی که کاربرد بیشتری میان کاربران دارند، الگوهای خاصی تعریف میشود. برای نمونه 123456 پسوردی است که اولین و بیشترین استفاده در دیکشنری پسورد را دارد. دیکشنری در واقع فهرستی از رمز عبورهای رایج یا رمزهایی است که مهاجمان در طول سالهای قبل با استفاده از آنها به خیلی از سایتها نفوذ کردهاند. مهاجم هر رمز در دیکشنری را برای نفوذ امتحان میکند و این کار را تا زمانی که ترکیب صحیح نام کاربری و رمز عبور سایت را کشف کند، ادامه میدهد.
همچنین در نوع دیگری از حملات cracking، مهاجمان فهرستی از پسوردها یا نام کاربریهایی دارند که در اصطلاح به آنها Combo گفته میشود. معمولن این Comboها بعد از تست بهوسیلهی ابزارهای کرک، روی سایتها یا سرویسهای مقصد، رتبه نیز میگیرند.
یکی دیگر از روشهای انجام Brute Force شکستن رمزعبور با نرمافزارهایی است که برای این کار تولید شدهاند. این نرمافزارها برای سرویس مقصد ایجاد میشوند و با توجه به الگوریتمهای آماده، نوع سیستم و موارد مرتبط، رمزهای عبور تصادفی ایجاد میکنند. در حملات Brute Force، مهاجمان الگوهای خود و همچنین بازههای خطاگیری و قفل شدن را در نرمافزار مورد استفاده تنظیم و فیلترینگهای خود را نسبت به سرویس مقصد آنقدر محدود میکنند تا مدتزمان دریافت نتیجه را به حداقل برسانند.
برای نمونه مهاجم وقتی که قصد نفوذ به یک سرور لینوکس را دارد، میداند که امکان استفاده از کاراکتر ^ یا % وجود ندارد یا بسیار کم است، پس فیلترهای اعمال شده برای ایجاد نامکاربری را از این مقادیر خالی میکند تا نتایج را در زمان سریعتری دریافت کند.
روشهای جلوگیری از حملات Brute Force
تقریبن میتوان گفت روشی برای مقابلهی کامل با این نوع حملات وجود ندارد اما، میتوان بهگونهای احتمال یافتن پسورد در این حملات را به حداقل رساند. برخی از این روشها به شرح زیر هستند:
رمزهایعبور قویِ انتخاب کنید. بزرگترین هدیهای که میتوانید به مهاجمان بدهید رمزهایعبور یکسان برای تمامی سرورها، اکانتها و … است! از این اقدام بهجد اجتناب کنید. برای رمزگذاری روی تمام نرمافزارها، سرورها، بخش مدیریت سایتها و … از پسورد Full Complex و طولانی استفاده کنید. رمزها باید شامل حروف بزرگ و کوچک و اعداد و کاراکترهای خاص باشند.
از کلمات معنیدار و قابل حدس در رمزهای عبور استفاده کنید.
از الگوریتمهای رمزگذاری پیچیده مانند SHA-512 استفاده کنید، از الگوریتمهای رمزگذاری قدیمی یا ضعیف استفاده نکنید. استفاده کردن از الگوریتمهای پیچیده و جدید بهطور چشمگیری سرعت حملات Brute force را کاهش میدهد.
رمزهای عبور خود را در نرمافزارهای مخصوص این کار نگهداری کنید. به این ترتیب هم رمزهای پیچیدهی خود را فراموش نمیکنید و هم بهراحتی به آنها دسترسی خواهید داشت. در ضمن امنیت این نرمافزارها در برابر اینگونه حملات نیز بسیار بیشتر است.
اطلاعات رمزگذاری شدهی خود را در یک جای امن نگه دارید که مهاجمان به آن دسترسی نداشته باشند.
رمزهای عبور مشترک سرور خود را در سایتهایی که ثبتنام میکنید، وارد نکنید. یکی دیگر از بزرگترین مشکلاتی که که مهاجم با کمک آن میتواند بدون نیاز به Brute Force سرور شما را هک کند، پسورد مشترک و ورود آنها در سایتهای غیرمعتبر است.
مواردی که میتوانند جلوی حملات Brute Force روی وبسایتها را بگیرند، کمی سادهتر هستند و کاربر با اندکی تغییر، بهسادگی میتواند حداقل الگوهای راحت را برای مهاجم حذف کند. برای نمونه تمام کاربران آماتور و مهاجمان، میدانند که صفحه ورودی پیشفرض قسمت ادمین، برای سیستم مدیریت wordpress و ورود اعضای آن، آدرس
/wp-admin.php و wp-login.php است. پس اولین قدم برای جلوگیری از حملات مهاجمان، تغییر صفحات پیشفرض و یا ایجاد محدودیت برای دسترسی به این صفحه است. برای نمونه صفحات مدیریتی حساس برای سیستم خود را میتوانید محدود به IP کنید. با این روش امکان تست پسورد برای قسمت مدیریت بهوسیلهی مهاجمان کمتر وجود دارد. در سرورها نیز با تغییر پورتهای پیشفرض سرور میتوانید جلوی این حملات را بگیرید. برای نمونه پورت پیشفرض ورود با ssh پورت شماره 22 است و میتوان آن را به پورت بازی دیگر تغییر داد. در سرورهای ویندوزی نیز بیشترین کرکها روی پورت پیشفرض Remote Desktop با شماره 3389 انجام میشوند. اگر از این سرویس استفاده میکنید، پورت پیشفرض Remote Desktop را حتمن تغییر دهید.