فلسفه هک و خارج از چارچوب فکر کردن
شاید برای شما هم جالب باشه که بدونید هک چیست؟ و یا برنامه چیست؟ در ادامه به تشریح کامل هر دو آنها خواهیم پرداخت.
برنامه چیست و اجزای تشکیل دهنده آن کدام است؟
در جواب این سوال میتوان گفت «به ترتیب یکسری عملکرد که برای حل کردن مسئله ای قرار داده شده اند ، یک برنامه می گویند و به طور کلی یک برنامه از سه بخش ورودی، پردازش و خروجی تشکیل شده است».
یک برنامه ، همیشه یک برنامه کامپیوتری نیست. ترتیب عملکرد ذهن شما برای حل یک مسئله، مانند دیدن آتش سوزی و سعی اطفاء حریق اعم از زنگ زدن به آتش نشانی یا بلافاصله بدون فکر دست به کار شدن ، نیز برنامه است. یک برنامه می تواند شامل هر چیزی باشد اعم از برنامه کنکور ، برنامه مسافرت ، برنامه اعلان ساعت ، برنامه اینستاگرام ، برنامه apache httpd ، برنامه سیستم عامل لینوکس و غیره.
اگر بخواهیم ساختار برنامه را در یک انسان بررسی کنیم ، ورودی ها همان ۵ حس (بینایی، شنوایی، بویایی، چشایی، و لامسه) هستند که البته می توان گفت سیستم عصبی، پردازش ذهن و خروجی ها همان سیستم عصبی هستند که باعث حرکت دادن اعضای بدن از جمله زبان میشوند. در یک تابع ورودی ها همان آرگومان ها، که در حافظه قرار می گیرند، و خود آن حافظه می باشند، و پردازش نیز دستورات تعریف شده و خروجی ها نیز همان حافظه می باشند.
در کامپیوترها، همیشه دستورات برنامه ها، از برنامه های کوچکتری ساخته شده اند تا به حرکت الکترون ها برسند. از اجرا کردن برنامه cat تا خواندن فایل اجرایی آن تا تخصیص حافظه برای آن تا بارگزاری آن در حافظه تا بارگزاری کتابخانه های آن فایل تا بارگزاری آرگومان ها در حافظه تا تصمیم گیری بر اساس آرگومان ها تا پیدا کردن فایل در حافظه تا خواندن فایل تا نوشتن آن در stdout و غیره.
مفهوم هک کردن چیست؟
استفاده از چیزی برای انجام کاری که آن چیز برای آن کار ساخته نشده باشد و معمولا برای رسیدن به هدف ، با چارچوب شکنی نیز همراه می باشد. در این عمل همیشه به خارج از چارچوب فکر کردن اولویت اصلی می باشد.
اگر ما بخواهیم از یک چیز به طوری استفاده کنیم که به طور رسمی برای آن کار تعریف نشده باشد، قطعا باید به خارج از چارچوب های قراردادی که بطور رسمی برای آن چیز تعریف شده اند فکر کنیم که این نیازمند دانستن طرز کارکرد دقیق هدف است. و فهمیدن طرز کارکرد یک چیز، معمولا به مهندسی معکوس کردن آن ختم می شود.
ساده ترین مثالی که در دنیای سایبری و در حال حاضر به ذهنم خطور می کند، اکسپلویت KRACK هست. باگ ناشی از تنظیم Session Key که بعد از هندشیک بوده است و باعث می شد رمز شکسته شود. هیچ اخطار یا نکته ای هم در پروتکل wpa2 وجود نداشته و هیچ کدی نیز برای پیاده سازی و پیش گیری هم نوشته نشده است. هیچ نیازی هم به تنظیم دوباره Session Key نیز وجود نداشته است.
اما چطور این باگ کشف شد؟ این باگ با خارج از چارچوب فکر کردن و محدود نکردن قوه تصور و تخیل توسط پروتکل و کد انجام شد. به گونه ای که موقع خواندن کد پیاده سازی شده در سیستم عامل openbsd و با پرسیدن اینکه اگه دوباره Session Key در ارتباطی که در حال حاضر برقرار است تنظیم شود، چه اتفاقی خواهد افتاد؟ چرا باید بتوان چند بار Session Key را تنظیم کرد؟ و چرا اینجای کد چک نشده است؟
این هنر هک کردن است. این هنر با خارج از چارچوب فکر کردن بدست می آید. این هنر با دانستن چیزهایی که خارج از چارچوب و محدودیت های ذهنی است به دست می آید.
امیدوارم با خواندن این پست فلسفه هک کردن و خارج از چارچوب فکر کردن رو متوجه شده باشید. پیروز و موفق باشید.