اکثر چیزها در مورد باگ نافرم جی لیب سی

glibc-exploit

یک باگ جدید و جدی توی glibc دیده شده. یک باگ خیلی جدی. کتابخونه سی گنو یا همون glibc یکی از بخش‌های بسیار مهم اکثر توزیع های لینوکس است. حالا یک باگ توی این کتابخونه هزاران برنامه لینوکس رو تهدید می کنه. این باگ نسبتا شبیه باگ سال گذشته GHOST است (CVE-2015-0235) که اجازه می داد از راه دور کدهایی روی ماشین اجرا بشه.

باگ فعلی (CVE-2015-7547) یک باگ سرریز استک (stack based buffer overflow)‌ است در بخش کلاینت دی ان اس glibc که وظیفه تبدیل کردن آدرس های قابل فهم برای آدم ها (مثلا jadi.net) به آی پی رو داره.

کلیت ماجرا

این مشکل وقتی دیده می شه که یک دستگاه دارای باگ سعی کنه به یک DNS سرور بدطینت ریکوئست بزنه و نتایج رو توی حافظه بذاره (تابع getaddrinfo). چیزی که دی ان اس سرور بدخواه بدجنس بر می گردونه ممکنه حاوی کدی باشه که کار مخربی می کنه و نشستنش توی حافظه – در سطرح تئوری – باعث اجراش خواهد شد. البته در عمل این اتفاق تقریبا غیر ممکنه چون انواع مکانیزمهای امنیتی جلوی اونو خواهند گرفت (شامل ASLR). حالت بعدی اینه که حمله کننده به شکل مرد میانی درخواست های دی ان اس رو خودش بر می گردونه و بینشون کدهای نامناسب درج می کنه.

چه کسانی مبتلا هستن

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

مشکل دقیقا کجاست

محققین گوگل می گن که بخشی از glibc که به دی ان اس ریکوئست می زنه مشکل داره. این مساله به جی لیب سی تذکر داده شده و اصلاح شده و همه باید آپدیت کنیم… حداقل در طول هفته آینده دائما آپدیت کنیم. مهندسین گوگل می گن:

جی لیب سی ۲۰۴۸ بایت برای استک الوک می کنه تا جواب دی ان اس از _nss_dns_gethostbyname4_r رو توش ذخیره کنه. جلوتر در تابع send_dg و send_vc اگر جواب بزرگتر از ۲۰۴۸ بایت باشه، بافر جدیدی درست می شه و پوینترها آپدیت می‌شن. در شرایط خاص ناهماهنگی بین بافر استک و تخصیص دهی جدید هیپ پیش می یاد و نتیجه این می شه که بافر استک برای ذخیره کردن جواب دی ان اس استفاده می شه، حتی در مواقعی که جواب بزرگتر از اندازه این بافر باشه. این مساله موجب اورفلوی بافر استک می شه.

(فارسی گفتن اینها عجیب می شه. متن اصلی اینجاست).

اثبات شده

سه شنبه مهندس گوگل فرمین سرنا یک اکسپلویت برای اثبات این مساله منتشر کرد. با استفاده از این اثبات مفهوم می شه چک کرد که آیا برنامه های ما در مقابل این مشکل صدمه پذیر هستن یا نه (هستن!).

اصلاح

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

آیا من و شما در خطریم؟

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

نکته باقیمانده

به سادگی در کامنت ها مطرح کنین و سعی می کنم در سطح سواد و وقت جواب بدم و بقیه رو هم می سپریم به دوستان باسوادتر در کامنت ها (:

دعوت به شرکت در جشن انتشار زبان گو نسخه ۱.۶

دوستان خوب شرکت وادا همین فردا پنجشنبه یک گردهمایی خوب تشکیل دادن: جشن انتشار نسخه ۱.۶ زبان برنامه نویسی گو. اگر دوست دارین توی این جشن گوفری شرکت کنین زمان دقیقش پنجشنبه ۲۹ بهمن ساعت سه تا شش بعد از ظهر است و مکان دقیقش ستارخان، ابتدای باقرخان ،‌پلاک ۱۲۴ طبقه منفی ۲ شرکت وادا (نقشه گوگل). برای اطلاعات بیشتر سایت جهانی رو ببینین یا در اینجا ثبت نام و در جشن شرکت کنین. امیدوارم به جز خوراکی، برنامه‌های آشنایی با زبان و غیره هم باشه اما علی الحساب با این راهنمای اینتراکتیو با مقدمات گو آشنا بشین.

لینک‌های شاد دوشنبه‌های آخر ماه بهمن ۹۴

obey

می دونم که این دوشنبه یادم رفت مطلب دوشنبه های آخر ما رو منتشر کنم. با تذکر دوستان یادم افتاد و حالا با دو روز تاخیر سری می زنیم به هر کسی که در طول این ماه از من خواسته سرویسش رو معرفی کنم. یادمون باشه که اگر دست به دست هم بدیم، اینترنت بهتری خواهیم داشت.

شخصی‌ها

سایت‌ها

  • پلی کد سایتی است برای علاقمندان متن باز که یک کانال تلگرام هم داره.
  • نظر کلی من اینه که اینهمه تاکید خام روی استارتاپ ها اشتباهه و باید به شکل پایه ای روی زیرساخت ها و صنعت نرم افزار کار بشه. نظر همراه این نظرم اینه که یکی از این زیرساخت ها داشتن هاستینگ مناسب استارتاپ است. هاستینجا تلاشی است برای حل این مشکل. یک هاستینگ که می شه بهش اس اس اچ کرد، دستورهای معمولی مثل (git، composer، npm و …) رو زد و دیتابیس های متنوع داشت. من استفاده نکرده ام ولی ایده شون عالیه و امیدوارم خوب پیش بره. تا آخر امسال هم آفرهای ویژه دارن.. اوه! با تشکر از پیشنهادشون، کد تخفیف jadi هم به شما ۲۵٪ روی هاستینگ و وی پی اس تخفیف می ده!
  • سایتی هم داریم برای اخبار فناوری و آموزش. البته می‌گه که علاقمنده شکل اخباری متفاوت از دیگران داشته باشه: www.fitn.ir

تلگرام

اپ‌ها

جادی تی وی ۰۱۳ – لینوکس دسکتاپ برای آدم های شاد ۳: با کامندلاین دوست باشین

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

برای روحیه دادن فالو و شر و اینها ولی از اون مهمتر، برای ادامه راه کامنت گذاشتن! کامنت گذاشتن در این مورد که انتظار دارین درس های بعدی به چه موضوعاتی از لینوکس دسکتاپ برای آدم های معمولی و کاربری روزمره بپردازن.

جادی تی وی ۰۱۲ – لینوکس دسکتاپ برای آدم های شاد ۲: بوت اول، تنظیمات و آپدیت

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

خوشحال می شم توی کامنت ها بگین که انتظار دارین در بقیه این درسها، چه مباحثی از اوبونتوی دسکتاپ یا اصولا لینوکس روزمره رو پیگیری کنیم.

جادی تی وی ۰۱۱ – لینوکس دسکتاپ برای آدم های شاد ۱: نصب اوبونتو در کنار ویندوز

همونطور که می دونین من یک دوره ویدئویی لینوکس دارم. اما اون دوره مربوط می شه به امتحان ۱۰۱ ال پی آی سی که امتحانی است برای گرفتن مدرک «مدیریت سیستم های لینوکس» و به درد اکثر آدم ها که به شکل معقول و فان و شاد می خوان بیان سراغ لینوکس نمی خوره. به همین دلیل تصمیم گرفتم یک دوره همینطوری دور همی ضبط کنم برای شروع کار با لینوکس یا لینوکس دسکتاپ یا زندگی روزمره با لینوکس یا چنین چیزی. اسم مستعارش هست لینوکس دسکتاپ برای آدم های شاد. حتی اگر شاد نیستین، دیدن این دوره می تونه شما رو کمی شاد کنه! مطمئنم!

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

و مطمئنا مهمترین انگیزه بخشی شما اینه که لایک کنین، شر کنین، فالو کنین و از اون مهمتر تو کامنت ها بگین که در سرفصل های بعدی چه چیزهایی باید پوشش داده بشن!

مارو او اس،‌ اندرویدی که در مواقع لزوم تبدیل به دبیان می شه

maru

خبر خوب برای خوره‌های اندروید و لینوکس و تکنولوژی اینه که بالاخره می‌تونن رو گوشی‌شون یک لینوکس داشته باشن. این کار با سیستم عامل جدیدی به اسم مارو او اس ممکن شده. این سیستم اجازه می ده با یک کابل اچ دی ام آی، تلفن شما تبدیل به یک سیستم عامل لینوکسی بشه. در حالت عادی شما روی تلفن یک اندروید ۵.۱ و یک دبیان خواهید داشت.

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

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

جادی تی وی ۰۱۰ – بررسی مشکلات اختراع دوباره چرخ با کمک پایتون و اسکرپینگ و ردیس

همراه اول یک سیستم فروشگاه درست کرده و کپچای بامزه ای هم براش گذاشته، اما مشکل اینجاست که دو چیز رو هیچ وقت نباید دوباره اختراع کرد: کپچا و رمزنگاری. در این شماره با اسکرپینگ، پایتون و کمی آمار از دیتا استور ردیس استفاده می کنیم تا ببینیم مشکل اختراع دوباره چرخ چیه!

لینک روی یوتیوب و هر کس هر جای دیگه آپلود کنه و لینک بده، باعث خوشحالی و دعای خیر پشت سانسوری‌هاست (:

آپدیت: انواع لینک دانلود در کامنت ها (:
آپدیت: دوستان در کامنت ها چندین بار گفتن که چرا توی بش چند صد بار برنامه رو اجرا کردیم. در واقع این ویدئوها آموزشی هستن و ایده شون این نیست که راحتترین روش انجام یک چیز رو نشون بدن. می خوایم حتما از ردیس استفاده کرده باشیم اینجا. نشون بدیم که چطوری می شه پیچیدگی برنامه نویسی رو با یک معماری خوب به حداقل رسوند. چطوری می شه یک سیستم رو قابل اجرا روی چندین کامپیوتر مختلف کرد و اصولا ردیس چیه (: معلومه که «ساده ترین» روش نوشتن این برنامه خاص این بود که توی پایتون یک لوپ و کمی آسینک قاطی کنیم و نتایج رو توی یک دیکشنری بشمریم. البته در عمل اون پیچیدگی هایی داشت تا به این سرعت برسه ولی خب برنامه نویسی سنتی تری بود. دقیقا ایده این ویدئو کست این بود که نشون بدیم چطوری باید اجزای شناخته شده و بسیار قوی رو ترکیب کرد تا به سادگی به یک سیستم با قابلیت بسیار بالا رسید.