ه‍.ش. ۱۳۹۰ آبان ۲۴, سه‌شنبه

باید در تاریخ نوشت: شاهکار امنیتی مایکروسافت

هفته پیش مایکروسافت یک وصله امنیتی برای ویندوزهای ویستا، هفت و ۲۰۰۸ منتشر کرد. حفره امنیتی کشف شده واقعا پدیده‌ی باورنکردنی و تاریخی است:
«نفوذگر با ارسال تعدادی بسته UDP خاص به یک پورت بسته می‌تواند کدی را در سطح کرنل ویندوز اجرا کند»

این حفره فوق العاده خطرناک است:
  1. اجرای کد در سطح کرنل، یعنی دسترسی حتی بالاتر از دسترسی ادمین سیستم. یعنی کنترل «کامل» کامپیوتر
  2. هک کردن کامپیوتر از طریق پورت بسته؛ یعنی نفوذگر کاملا از راه دور و بدون نیاز به هیچ کار خاصی (حتی بدون رد شدن از فایروال ویندوز!) قادر به حمله کردن است.

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

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

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

پ.ن: جالب اینجاست که این آسیب‌پذیری فقط در ویندوزهای ویستا به بعد (که بسیار بسیار امن‌تر تلقی می‌شوند) گزارش شده و فعلا ایکس پی و ۲۰۰۳ مشکلی نداشته‌اند.

ه‍.ش. ۱۳۹۰ اردیبهشت ۲, جمعه

ترفند 10 - چگونه وسط یک اتصال TCP بنشینیم و محتویاتش را ببینیم؟

تعریف مساله

گاهی اوقات دلمان می‌خواهد ببینیم برنامه‌ها با همدیگر چه صحبتی می‌کنند و چه داده‌هایی بین آنها رد و بدل می‌شود. مثلا من امروز مشغول برنامه‌نویسی بودم و متوجه خطایی در برنامه شدم. می‌خواستم ببینم چه اطلاعاتی بین برنامه من و سرور در حال رد و بدل شدن است تا شاید بتوانم خطا را برطرف کنم. یا ممکن است شما بخواهید اطلاعاتی که بین مرورگر شما و یک سرور رد و بدل می‌شود را ببینید و ...
این مساله زیاد پیش می‌آید؛ و راه‌حل‌های متنوعی هم دارد. مثلا می‌توان با ابزاری مثل WireShark یا WinDump کل بسته‌های اطلاعاتی رد و بدل شده روی شبکه را دید، مربوط به هر برنامه‌ای که می‌خواهد باشد. یا مثلا برنامه‌هایی (مثل مرورگرها) که قابلیت تنظیم پروکسی دارند را می‌توان تنظیم کرد که از یک برنامه پروکسی خاص استفاده کنند که اطلاعات را ذخیره می‌کند و ... که البته این دو راه برای مساله من جوابگو نبودند. چرا؟ چونکه ...
اولا برنامه‌ای که من با آن سر و کار داشتم قادر به استفاده از پروکسی نبود. بنابراین راه حل دوم از دور خارج می‌شود. (که مساله مهمی هم نیست؛ چون راه حلی که خواهم گفت تفاوتی با این راه حل ندارد، فقط عمومی‌تر است)
اما کجا نمی‌توان از WireShark یا WinDump استفاده کرد؟
وقتی - مثل مساله جاری من - هر دو برنامه روی کامپیوتر خودتان اجرا می‌شوند و از آدرس loopback یعنی 127.0.0.1 برای اتصال استفاده می‌کنند این ترافیک برای WinShark و WinDump و مشابه آن قابل رویت نیست. ظاهرا چاره‌ای هم ندارد، مگر اینکه یکسری حرکات آکروباتیک پیاده کنید تا جواب بگیرید ... (اینجا را بخوانید)

... اما راه حل

من احتیاج به یک راه حل سریع، آماده و بدون نیاز به حرکات آکروباتیک داشتم. راه حلی که توضیح می‌دهم می‌تواند روی اتصالات TCP به کار گرفته شود.
خوشبختانه برنامه‌ی ncat روی کامپیوترم موجود بود. (این برنامه همراه با نرم‌افزار ‌nmap نصب می‌شود) برنامه ncat کلا ابزاریست برای «بازی کردن» با اتصالات شبکه و وصل کردن آن‌ها به برنامه‌های مختلف به شیوه‌های مختلف!
فرض کنید یک سرور داریم که روی پورت 8888 منتظر اتصال کلاینت‌ها است. دستور زیر، به کمک ncat یک سرور مجازی روی پورت 9999 راه می‌اندازد، و به محض اینکه اتصالی با آن برقرار شد، با پورت 8888 روی کامپیوتر محلی (127.0.0.1) تماس می‌گیرد و اطلاعات را دست به دست می‌کند. یعنی هر داده‌ای که برای ncat روی پورت 9999 ارسال شود عینا برای سرور روی پورت 8888 ارسال می‌شود و بالعکس.
علاوه بر این به کمک سوییچ x، اطلاعات رد و بدل شده داخل یک فایل (با نام dump) نوشته می‌شود.
> ncat -l 9999 -x dump -e "ncat 127.0.0.1 8888"
شرح مختصر:
  • -l 9999 باعث می‌شود ncat روی پورت 9999 منتظر دریافت اتصال شود.
  • -x dump اطلاعات را به صورت hex درون یک فایل ذخیره می‌کند.
    نکته: اگر می‌خواهید اطلاعات روی صفحه نمایش نشان داده شوند نام فایل را con بزنید!
    نکته: اگر می‌خواهید اطلاعات به صورت خام ذخیره شوند به جای سوییچ x از سوییچ o استفاده کنید.
  • -e "..." باعث می‌شود ncat به محض برقراری تماس، دستور داخل گیومه را اجرا کند و ورودی/خروجی آن را روی شبکه بفرستد. در اینجا یکبار دیگر ncat جهت اتصال با سرور فراخوانی می‌شود.
  • متاسفانه در اطلاعاتی که بدین شیوه ذخیره می‌شوند مشخص نیست هر بسته اطلاعاتی از سمت سرور به کلاینت ارسال شده یا بالعکس. که نشان می‌دهد اگر بتوانید از WireShark استفاده کنید، جواب بسیار بهتری می‌گیرید ...
  • دستور بالا عینا روی لینوکس هم قابل اجرا است، هر چند محدودیت ذکر شده برای WireShark، روی لینوکس وجود ندارد.

ه‍.ش. ۱۳۹۰ فروردین ۱, دوشنبه

مطابق قانون، دسترسی به این عید ممکن نیست!

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

امیدوارم سالی خوب، پر برکت، و پر از رشد و هدایت پیش‌رو داشته باشیم.

سجاد نفیسی

ه‍.ش. ۱۳۸۹ دی ۸, چهارشنبه

ترفند 9 - خاموش کردن خودکار کامپیوتر بعد از تمام شدن کار یک برنامه

تا حالا شده که بخواین وقتی اجرای فلان برنامه تمام شد کامپیوتر خودبخود خاموش بشه؟ مثلا وقتی که برنامه‌ی محاسبه‌ی عدد پی که نوشته‌اید خاتمه پیدا کرد، یا نصب برنامه‌ای تمام شد، یا وقتی که فرمت کردن هارد دیسک خاتمه یافت یا ...
در این ترفند، یاد می‌گیرید که چطور این کار را خودتون و بدون ابزارهای اضافی انجام بدین: به کمک خط فرمان (command-prompt) ویندوز، یا ترمینال (terminal) لینوکس.
اول روش ویندوزی رو بگم، بعد بریم سراغ لینوکس.

ه‍.ش. ۱۳۸۹ آبان ۲۴, دوشنبه

ترفند 8 » محافظت از حافظه فلش درایو (USB) در برابر کرم‌های AutoRun

داستان: چقدر ویروس میل دارید؟

هر از چندی گذار آدم به زیراکسی‌ها میفتد تا چیزی را برایش چاپ کنند. من هر وقت سراغ زیراکسی دانشگاه می‌روم تا فایلی را از روی فلش درایو (USB) چاپ بگیرد، علاوه بر کاغذ چاپ شده، چندتا «ویروس» هم داخل فلش درایو «هدیه» می‌گیرم.
قبلا توضیح دادم که چطور می‌شود از ویندوز در برابر کرم‌های autorun.inf محافظت کرد. با این کار دیگر نیازی به نرم‌افزارهای (به زعم من) بی‌مصرفی مثل autorun blocker و anti autorun و غیره ندارید و ویندوز هرگز از این طریق آلوده نخواهد شد. [*]
اما این مانع از این نمی‌شود که ویروس (در واقع، کرم) تلاش نکند خودش را از این طریق منتقل کند. بنابراین، اگرچه کامپیوتر من آلوده نمی‌شود، اما کرم خودش را روی فلش درایو کپی می‌کند. و این یعنی من باید هر بار زحمت پاک کردن این مهمان ناخواسته را بکشم، حواسم باشد تا وقتی کرم پاک نشده، فلش درایو را به کامپیوتر دوستم متصل نکنم و از این دردسرها ... !
اما آیا راهی هست که به کرم بگوییم زحمت نکشد و روی فلش درایو هم کپی نشود؟ بله. تقریبا بله.

ه‍.ش. ۱۳۸۹ مهر ۲۳, جمعه

ترفند 7 » امان از دست Spammer ها در Yahoo Groups

مساله چیه؟

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

چطوری حل شد؟

وقتی این مشکل با من مطرح شد، یادم اومد که سال‌ها پیش خودم همین مشکل را داشتم و حتی به خاطرش با پشتیبانی یاهو مکاتبه هم کرده بودم! راه حلش گزینه‌ایه که داخل تنظیمات Yahoo Groups به بهترین نحو ممکن مخفی شده بود و شده است.
راه حل:
  1. رفتن به صفحه تنظیمات Yahoo Groups (راستش این مرحله لازم نیست، بلکه یکراست برید مرحله دو :)
  2. پیدا کردن لینک My Email Preferences
  3. دو حالت داره:
    الف) اگر تعدادی ایمیل به حساب یاهو اضافه کرده باشید، لیست آنها را در اینجا خواهید دید. یکی را انتخاب کنید و لینک Edit را کلیک کنید.
    ب) در غیر این صورت، به مرحله بعدی بروید.
  4. تیک گزینه Allow group moderators to directly add me to their groups را پاک کنید.
  5. پایان! و خداحافظ اسپمرهای یاهو گروپ!
به نظر من نه تنها یاهو نباید به صورت پیشفرض این گزینه رو فعال کنه، بلکه باید در طراحی صفحه تنظیماتش تجدید نظر کنه تا راحتتر بشه این گزینه رو پیدا کرد.
همین. از اونجایی که این تنظیمات اصلا جلوی چشم نیست و حتی ممکنه بسیاری ندونند که مشکلشون از این گزینه ناشی می‌شه، به نظرم اومد به شما هم بگم.

ه‍.ش. ۱۳۸۹ مهر ۷, چهارشنبه

هدف کرم Stuxnet: ایران، نیروگاه اتمی؟ دیگر نشانه‌ها ...

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