هک به روشی هوشمندانه برای حل مشکلی ویژه گفته میشود، و هکر به کسی گفته میشود که از این روشهای هوشمندانه استفاده میکند. ولی متاسفانه امروزه هکر به معنای شخصی است که به منظور اخاذی و یا خرابکاری در سیستمها و سایتها شروع به خراب کاری میکند.
البته برخی هکرها را به چند دسته تقسیم کرده اند:
هکر کلاه سفید: به هکری گفته میشود که به منظور پیدا کردن مشکلات موجود در سرورها و نرم افزارها به آنها نفوذ میکند و پس از گزارش مشکل به مسیولین در رفع عیب آن عیب سهیم است. هکرهای کلاه سفید برخی اوقات در مسابقاتی شرکت میکنند که شرکتهای امنیتی برگذار میکنند.
مثلا شرکت گوگل و تلگرام برای گزارش باگ به کاربران هدایای نقدی میدهند. هکرهای کلاه سفید میتوانند از این طریق جوایز دهها هزار دلاری و یا حتی چند صد دلاری برنده شوند.
برخی مدیران سایتها و سرورها نیز به گروههای هک کلاه سفید مبالغی میدهند تا سعی کنند آن سیستم را هک کنند و عیبهای موجود را گزارش دهند.
هکر کلاه سیاه: به هکری گفته میشود که به منظور اخاذی و یا تخریب وارد سیستمها و سایتها میشوند. هکرهای کلاه سیاه در همه جای دنیا تحت تعقیب هستند و اعمال آن ها خلاف قانون تلقی میشوند.
هکر کلاه خاکستری: به هکری گفته میشود که گاهی اعمال هکرهای کلاه سیاه و گاهی اعمال هکرهای کلاه سفید را انجام میدهد.
هکر کلاه صورتی: به افراد آماتوری گفته میشود که برای ارضای حس کنکجاوی خود دست به اعمالی میزنند که یا سایتها را تخریب کنند و یا به اطلاعاتی دست پیدا کنند که حق دسترسی به آنها را ندارند.
همانطور که در بالا گفته شد یک هکر میتواند یک شخص مفید و کارامد باشد، ولی یک کرکر یک شخص کاملا مضر است. کرکرها به سرور بانکها نفوذ میکنند و آنها را متوقف میکنند، سایتهای مهم را با روشهایی پیچیده از کار میاندازند و یا حتی پسورد کاربران را به سرقت میبرند و در بازار سیاه میفروشند.
واکر به نفوذگر کلاه سیاهی گفته میشود که به منظور سرقت اطلاعات وارد سیستمهای دیگر میشود. مثلا یک واکر بر اساس سفارشی که میگیرد وارد سامانه ثبت احوال شده و اطلاعات محل سکونت یک شخص را در اختیار خلاف کاران میگذارد.
در دهههای پیش پریکرها بیشترین جولان میدادند. پریکرها به شبکههای تلفن نفوذ میکنند و مکالمهها را استراق میکنند. این پریکرها ممکن است پروژههایی را برای سازمانهای مخفی و خلافکار اجرا کنند، بنابراین پریکر بودن یک جرم است و پریکرها در تمام نظامهای حقوقی جهان محاکمه و مجازات میشوند.
البته برخی از پریکرها نیز تنها برای خود کار میکنند و از دانش خود برای تماس مجانی استفاده میکنند.
خیلی از افراد فکر میکنند عملیات هک تنها با دانش فنی و تخصص انجام میپذیرد در صورتی که اصلا اینگونه نیست. بسیاری از پروژههای هک بزرگ با کمک مهندسی اجتماعی که کمک گرفتن از قربانی است انجام میپذیرد. سناریو زیر را با دقت بخوانید:
یک هکر میخواهد وارد یک شبکه کامپیوتری شود ولی نمیتواند ضعفی در ورود به شبکه پیدا کند. یک خانم را مامور میکند با یکی از کارمندان آن شبکه دوست شود و به او یک فلش با آهنگهای مورد علاقه بدهد. در ساعت کاری این خانم با کارمند شبکه تماس میگیرد و میگوید یکی از کلیپهای موجود در فلش با نامی معین را اجرا کند چون یک آهنگ نیست بلکه یک پیغام صوتی عاشقانه است.
کارمند شبکه با ذوق و شوق آن فلش را برای شنیدن آن فایل صوتی به کامپیوتر خود میزند و یک ویروس مخرب را ناخواسته وارد آن شبکه میکند و برای نفوذگر امکان نفوذی بی درد سر را محیا میکند.
به سناریو بالا مهندسی اجتماعی میگویند.
حملات فیشینگ را میتوان از حملات مرتبط با حوزه مهندسی اجتماعی دانست. شخص نفوذگر با استفاده از فیشینگ شروع به سرقت اطلاعات از حجم عظیمی از کاربران میکند. یکی از حملات معروف فیشینگ ارسال ایمیلهای جعلی از سمت بانک است. بدین نحو که یک نفوذگر ایمیل جعلی از سمت یک بانک را برای تعداد زیادی کاربر ایمیل میکند و در آن یک لینک قرار میدهد که به جای هدایت به صفحه اصلی بانک کاربر را به صفحهای مشابه صفحه بانک هدایت میکند. کاربر پس از دیدن صفحهای مشابه صفحه بانک و وارد کردن یوزرنیم و پسورد خود در دام هکر میافتد. در برخی حملات فیشینگ نام کاربری و رمز عبور هزاران کاربر بانک به سرقت میروند.
البته فیشینگ به سرقت اطلاعات از طریق مکالمات تلفنی یا پیام کوتاه نیز اطلاق میشود. به این معنا که گاهی نفوذگران با تماس تلفنی سعی در تخلیه اطلاعاتی کاربران دارند.
پایگاه داده جزء حیاتی و لا ینفک هر سیستمی در شبکه و اینترنت است. تمامی سایتها و سامانهها از پایگاه داده استفاده میکنند.
بدلیل ماهیت پایگاه داده که عملیات فراخوانی و ذخیره اطلاعات را با هم انجام میدهند این سیستم مستعد حجم بزرگی از آسیب پذیریها است و اولین هدف هر نفوذگری در واقع رخنه کردن به اطلاعات موجود در سیستم دیتابیس سایت یا سامانه تحت وب است.
عملیات SQL Injection به این نحو است که نفوذگر پس از یافتن آسیب پذیری SQL در سورس سایت شروع به تزریق کدهای مخرب به منظور واکشی اطلاعات از آن آسیب پذیری میکند.
در برخی پایگاههای داده بدلیل تنظیمات خاص نمیتوان تغییراتی در جداول موجود در پایگاه داده ایجاد کرد ولی میتوان حداقل اطلاعات موجود در پایگاه داده را خواند و از آنها برای تکمیل عملیات نفوذ بهره برد.
مثلا اگر از یک سیستم بتوان نام کاربری مدیر سایت را استخراج کرد، حتی اگر نتوانیم Hash پسور را کرک کنیم میتوانیم با کمک نام کاربری عملیات Brute Force را انجام دهیم.
هرچند که RootKit ها را از برخی نظرها میتوان مانند BackDoorها و یا تروجانها دانست ولی از تروجانها و بک دورها بسیار خطرناک تر اند. روت کیتها پس از نفوذ به سیستم علاوه بر وظایف تروجانها و Backdoorها خود را جایگزین بخشهای مهمی از سیستم عامل حتی هسته آن میکنند و دسترسیهای مهلک و بعضا غیر قابل شناسایی به نفوذگران میدهند.
اولین روت کیتها در سال 1990 شناسایی شدند و از آن زمان تا کنون روت کیتهای متنوعی برای سیستمهای عامل لینوکسی و ویندوزی نوشته شده اند، هر چند تعداد RootKitهایی که برای سیستم عامل لینوکس نوشته شده است بیشتر از ویندوز است.
یکی از انواع RootKitهای معروف در لینوکس خود را جایگزین برنامه /bin/login
می کنند و یک پسورد ریشه به این برنامه میافزایند. اکثر روت کیتها خود را جایگزین برنامههای زیر میکنند:
البته خطرناک ترین نوع RootKit آن نوعی است که خود را جایگزین هسته سیستم عامل میکند، چون دیگر هسته سیستم عامل را بدست گرفته است و حتی روی عملکرد نرم افزارهای اسکن ویروس و روتکیت هم تاثیر میگذارد و به سادگی آنها را غیر فعال و بی خاصیت میکند. با روت کیتهای سطح هسته شخص نفوذگر میتواند تمام عملیات و فعالیتها را به صورت کامل و بی درد سر ذخیره و شنود کند. از مهم ترین روت کیتهای سطح هسته لینوکسی میتوان به Knrak و Adore اشاره کرد که میتوان آنها را از اینترنت دانلود کرد.
آسیب پذیری Zero Day، آسیب پذیریای است که تا مدتها تنها تعداد کمی هکر از آن اطلاع دارند. این نوع آسیب پذیریها تا زمانی که توسط متخصصین شناسایی و بر طرف نشوند Zero Day میمانند.
هکرها برای این آسیب پذیریها اکسپولیتهایی میسازند که گاهی تا صدها هزار دلار بفروش میرسد.
امسال یعنی در سال 2016 یک آسیب پذیری Zero Day در ویندوز و در بخش win32k.sys به قیمت 100 هزار دلار بفروش رسیده است. این آسیب پذیری منجر به افزایش سطح دسترسی کاربر در تمام نسخههای ویندوز از نسخه 2000 تا ویندوز 10 میشود. با وجود اطلاع از وجود چنین مشکلی ولی هنوز مایکروسافت به علت آن پی نبرده است و تلاشها برای یافتن این آسیب پذیری همچنان ادامه دارد.
از جمله آسیب پذیریهای Zero Day که کشور عزیزمان را مورد حمله قرار داده اند میتوان به ویروس Sutxnet که به نیروگاههای هسته ای آسیب وارد کرد و همچنین ویروس Flame که به پالایشگاههای نفت ایران نفوذ کرد اشاره کرد.
بدلیل سطح بالا بودن این نوع آسیب پذیریها تقریبا هیچ نرم افزار و آنتی ویروسی نمیتواند آنها را شناسایی کند و حتی سازندگان نرم افزار به سادگی قادر به حل کردن این دست آسیب پذیریها نیستند.
البته پکیجهای گران قیمت تست نفوذی وجود دارند که مجموعهای از Zero Dayهای نرم افزارها را در خود دارند و توسط متخصصین امنیت مورد استفاده قرار میگیرند. یکی از این فریمورکهای تست نفوذ، canavas نام دارد.
تارگت: به هدف در تست نفوذ سایت، سرور و یا هر سیستمی تارگت میشود. مثلا اگر قصد نفوذ به سایت abc.com را داشته باشید این سایت تارگت شما خواهد بود.
پینگ: Ping دستوری است که با آن میخواهیم ببینیم آی پیای که داریم در سرور فعال است یا خیر؟ در ضمن با دستور Ping میتوانیم زمان رسیدن بستهها را نیز بدست بیاوریم. دستور Ping در ویندوز و لینوکس به صورت زیر استفاده میشود:
ping ip-address
پورت: پورت در شبکه و اینترنت به معنی درگاههای ارتباطی با دنیای بیرون هستند. با استفاده از پورتها میتوان بین یک سیستم و دنیای بیرون آن ارتباط برقرار کرد. در تستهای نفوذ شخص نفوذگر سعی میکند روی سیستم تارگت پورتهایی را بیابد که امکان نفوذ به آنها وجود دارد.
تلنت: Telnet یک پروتکل تحت شبکه برای سرویس گرفتن و سرویس دادن است. نفوذگران از تلنت برای بررسی باز بودن پورتهای حیاتی استفاده میکنند.
باگ: باگ به معنی نقص نرم افزاری است و میتواند منجر به خراب شدن، از کار افتادن یا نشت اطلاعات سیستم شود. نخستین بار لفظ باگ به حشرهای اطلاق شد که منجر به خراب شدن کامپیوترها شده بود ولی با پیشرفت دانش و مستحکم تر شدن و کوچکتر شدن دستگاهها دیگر حشرهها نمیتوانند به کامپیوترها آسیب جدیای وارد کنند! امروزه باگ به اشکالات نرم افزاری گفته میشود که در تمام نرم افزارها وجود دارد. در دنیای کامپیوتر و شبکه نمیتوان نرم افزار یا سیستم عاملی را بی عیب و نقص و یا به اصطلاح بدون باگ یافت، مزیت سیستم عامل قدرتمندی مانند لینوکس این است که باگ هایش به سرعت کشف و بر طرف میشوند. ولی یافتن باگ در سیستم عاملها و نرم افزارهای معروف و حرفهای کاری بسیار پیچیده، زمان بر و برای اکثر متخصصین نا ممکن است.
دیباگ: به عمل رفع عیب باگها دیباگ کردن میگویند. عمل دیباگ کردن برخی از اوقات عملی سخت و برخی از اوقات شاید حتی ناممکن باشد. در برخی از سیستمهای عامل بدلیل نا ممکن بودن دیباگ کردن مجبورند ساختار سیستم عامل را تغییر دهند.
پچ: وصلههای نرم افزاری هستند که برای بهبود عملکرد سیستم به سیستم اضافه میشوند.
دیفیس: وقتی یک هکر کلاه سفید، خاکستری، سیاه و یا کلاه صورتی به یک سیستم نفوذ میکند چگونه قدرت خود را به رخ دیگران میکشد؟ با دیفیس کردن. در واقع دیفیس کردن به عملی گفته میشود که شخص نفوذگر با آن عمل ظاهر سایت را به چیز دیگری تغییر میدهد و به این روش اثبات میکند که توانسته است به آن سیستم نفوذ کند.
مس دیفیس: به عملکردی گفته میشود که طی آن کل صفحات سایتهای یک سرور تغییر پیدا میکنند. این عمل یا با استفاده از شلها انجام میپذیرد یا عموما نیاز به اسکریپتهایی دارد که شخص نفوذگر باید بنویسد.
اکسپلویت ها: در اکثر موارد برای نفوذ به یک سیستم نیاز است که یک سری اعمال به صورت مشخص تکرار شوند که این اعمال مشخص و تکراری اکسپلویت نامیده میشوند. اکسپلویتها در واقع کدهایی هستند که نفوذگران از آنها برای انجام عملیات نفوذ استفاده میکنند. به عنوان مثال ممکن است در سیستم مدیریت محتوای جوملا یک باگی وجود داشته باشد که منجر به درز پسورد مدیر سیستم میشود. متخصصین نفوذ یک اکسپولیت برای این باگ مینویسند تا خودشان یا دیگر نفوذگران بدون نیاز به انجام عملیات روتین به سادگی عملیات نفوذ را انجام دهند.
بایپس: طبیعتا راهکارهای نرم افزاری و سخت افزاری بسیاری برای جلوگیری از هک شدن توسط مسیولین سرورها و نرم افزارها اتخاذ میشود. عملیاتی را که طی آن شخص نفوذگر و یا شخص تست کننده نرم افزار در آنها سعی میکند دیوارهای حفاظتی سیستم را رد کند عملیات بایپس مینامند.
فیک پیج ها: یکی از راههای سرقت یوزرنیمها و پسوردها استفاده از فیک پیجها توسط نفوذگران است. فیک پیج یا صفحه تقلبی، میتواند صفحه ورود به ایمیل باشد. مثلا فرض کنید یک نفوذگر یک صفحهای دقیقا مانند صفحه ورود به یاهو بسازد و آن صفحه را به شخصی دیگر بدهد. قربانی در مواجهه با این صفحه تصور میکند وارد صفحه ایمیل خود شده است، بنابراین یوزرنیم و پسورد خود را وارد کرده و به دام هکر میافتد.
دورک ها: دورکها به کدهایی گفته میشوند که در جستجوگرهای وب (عموما گوگل) برای یافتن سایتهای مشکل دار مورد استفاده قرار میگیرند. مثلا فرض کنید بودن عبارت MYSQL ERROR
در یک سایت به معنای وجود باگ در آن سایت است. با عبارت site:sitename.com "MYSQL ERROR"
می توان سایت sitename.com
را از نظر داشتن باگ جستجو کرد.
هش ها: سابقا یک مطلب در هیتوس با این لینک در مورد رمزنگاری و هشها منتشر شده بود. بدلیل پر خطر بودن پایگاههای داده متخصصین، پسوردها را به صورت معمولی در پایگاه داده ذخیره نمیکنند و برای ذخیره کردن، آنها را تبدیل به هش میکنند تا به سادگی نتوان آنها را خواند. البته راه حلهایی وجود دارد که گاهی نفوذگران برای تفسیر هشها استفاده میکنند که برخی اوقات مثمر ثمر هستند.
تروجان: ایده تروجان به یک افسانه یونانی باز میگردد. یونانیان که پس از مدتها جنگ نتوانستند قلعه تروا را فتح کنند به نشانه صلح یک اسب بزرگ را به عنوان هدیه به درون قلعه میفرستند. سربازان قلعه تروا شادمان از پایان جنگ تا پاسی از شب به خوردن شراب و رقص پرداخته بودند ولی غافل از این که درون اسب بزرگ پر بود از سربازان تا دندان مسلح. سربازان درون اسب بزرگ چوبی پس از آرام شدن قلعه و اطمینان از خواب افراد درون قلعه از اسب چوبی خود بیرون آمدند و دروازه را برای سربازان یونانی باز کردند. این ایده دقیقا در دنیای هک نیز استفاده میشود، یعنی ارسال فایلی مخرب به درون سیستم در قالبی آرام و بی آزار، ولی همین فایل بی آزاد موجب نابودی سیستم خواهد شد.
کرک: عملیات شکستن سدهای امنیتی و انجام عملیات نفوذ را کرک کردن میگویند. مثلا ممکن است یک نرم افزار برای استفاده نیازمند لایسنس خاصی باشد. نفوذگران این نرم افزار را به اصطلاح کرک میکنند تا بدون نیاز به لایسنس بتوان از آنها استفاده کرد.
کیلاگر: همانطور که از نام کیلاگر مشخص است کیلاگر به برنامه مخربی گفته میشود که وظیفه ذخیره کلیدهای فشرده شده روی کیبورد و ارسال آنها به شخص نفوذگر بر عهده دارد. شما تقریبا تمام اطلاعات مهم را با استفاده از کیبورد به کامپیوتر خود میدهید، یوزرنیم ها، پسوردها و آدرس ها. شخص نفوذگر به منظور سرقت اطلاعات شما یک کیلاگر را بدرون سیستم شما میفرستد تا اطلاعات شما را برباید.
رات: راتها از کیلاگرها وسیع تر هستند و حتی امکان ارسال تصویر از مانیتور و یا حتی وصل کردن مهاجم به کامپیوتر قربانی را بر عهده دارند. ممکن است یک نفوذگر ابتدا با کیلاگر دسترسیهایی بر سیستم قربانی بیابد و سپس یک رات را روی آن سیستم نصب کند.
بایند کردن: ترکیب فایلهای مخرب کیلاگر و راتها با فایلهای دیگر برای مخفی شدن از آنتی ویروسها و فعالیت بدون درد سر در سیستم قربانی را بایندرها بر عهده میگیرند.
شل: بسیاری از باگها و مشکلات موجود در نرم افزارها و سیستمها منجر به نفوذی محدود به سیستم میشوند. برای افزایش دسترسی پس از نفوذ از شلها استفاده میشود. شلها نرم افزارهای متنوعی هستند و برای افزایش دسترسی معمولا مجبوریم چند شل را استفاده کنیم.
باگهای پابلیک: همانطور که در بالا گفتیم هر سیستم عامل و یا نرم افزاری باگهایی را در خود دارد. این باگها ممکن است در دسترس همه نفوذگران باشند، و بدلیل آپدیت نشدن سیستم قابل استفاده باشند.
باگهای پریویت: بر عکس باگهای پابلیک این باگها در اختیار برخی از افراد قرار دارند و تا علنی نشدن مورد استفاده قرار میگیرند. باگها بعد از علنی و پابلیک شدن به سرعت توسط توسعه دهندگان سیستم بر طرف میشوند.
بک کانکت و بک دورها: فرض کنید یک نفوذگر پس از مدتها تلاش بتواند پسورد نفوذ به سیستم را بیابد و به آن نفوذ کند. عملیات نفوذ و دستیابی به اطلاعات ممکن است یک ماه طول بکشد، ولی مدیر سیستم پس از چند روز پسورد سیستم را عوض میکند و دسترسی نفوذگر کاملا قطع میشود. برای جلوگیری از این مشکلات نفوذگران پس از نفوذ به سیستم در اسرع وقت یک بک کانکت یا بک دور (در پشتی) روی سیستم قربانی نصب میکنند تا در صورت بسته شدن دسترسیها باز بتوانند به آن سیستم نفوذ کنند.
سایتهای ثبت هک: نفوذگران ممکن است به مدت چند دقیقه بتوانند یک سیستم را هک کنند و صفحه اصلی آن را دیفیس کنند، بعدها برای اثبات اینکه سابقا توانسته اند آن سایت را هک کنند نیاز به یک دلیل معتبر دارند. برخی از سایتها این وظیفه را برعهده دارند و پس از هک شدن یک سایت میتوانند وضعیت فعلی آن را ذخیره کنند. یکی از این سایتها سایت zone-h.org است.