هکرهای روسی «خرس تنبل» بعد از سال‌ها مخفی بودن، کشف شدند

اسم تیم هکری، Cozy Bear است و تنبل شاید ترجمه مناسبی نباشه اما این خیلی مهم نیست. نکته مهم این تیم هکری که احتمالا به دولت روسیه نزدیکه، اینه که چند سال با ابزارهایی که قبلا شناخته شده نبود کار می کردن و لو نرفتن. در واقع بخش جذاب «عملیات روح» شیوه ارتباط کامپیوترهای هک شده با سیستم دستور و کنترل (Command and Control) یا به شکل مخفف C2 است.

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

تیم خرس تنبل از ۲۰۱۳ با اسم هایی مثل CozyDuke و APT29 و CozyCar و Office Monkey مورد اشاره قرار گرفته و جاهایی مثل وزرای اروپایی و سفارت آمریکا و اخیرا دولت نروژ رو هدف قرار داده. ظاهرا اونها با فیشینگ (ماحی گیری) کامپیوترها رو آلوده می کردن و بر اساس اهمیت اون کامپیوتر، بک دورهای دیگه ای روش نصب می کردن. اما نکته بامزه، شیوه ارتباط این بک دورها با C2ها است.

همونطور که توی عکس بالا می بینین حداقل از ۲۰۱۴، ابزارهای دوک (شامل مینی دوک و پالی گات دوک) برای ارتباط از شبکه های اجتماعی مثل ردیت، توییتر و ایمجر استفاده می کنن. در اصل اونها یو آر ال های کد شده سرورهای فرمان و کنترلشون رو تو این شبکه ها می ذارن و کامپیوترها آلوده با چک کردن این لینک ها، به سرورهای C2 متصل می شن! مثلا این توییت هم حاوی یه یو آر ال کد شده است که کامپیوترهای آلوده شده با چک کردن اونها کشف می کنن قراره به کجا وصل بشن.

کدی که می تونه از بیت مپ تصویری که توی یه سایت به اشتراک گذاری تصویر، یو آر ال رو در بیاره چنین چیزی می شه:

برای دیدن گزارش کامل ESET از ابزارهای کوزی بیر، این لینک رو نگاه کنین. ESET از روی تاریخ کمپایل ابزارها معتقده کمپین عملیات روح، از حوالی ۲۰۱۳ شروع شده و تا الان ادامه داره هرچند که بعد از این گزارش مطمئنا دیگه اونها رو نخواهیم داد و احتمالا به شکل جدیدی کارشون رو ادامه خواهند داد. یادتون باشه که ندیدن هکرها به معنی نبودن هکرها نیست (:

چطوری سورس بخونیم؟ دوره بلاکچین و رمزارزها و بیت کوین – جلسه ۰۰۷ – خوندن سورس بیت کوین

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

به هرحال، در این قسمت از مجموعه دوره بلاکچین و رمزارزها و بیت کوین (که لایو استریم می شه و توی توییتر و کانال تلگرامم خبرش رو می زنم) رسیدیم به جایی که می خوایم اولین نگاه رو به سورس بیت کوین بندازیم و چند تا سوال بچه ها رو از روش جواب بدیم. سوال ها اینها هستن:

  • یک نود که برای اولین بار اجرا می شه، از کجا می فهمه چطوری باید به شبکه وصل بشه؟
  • ماینر چطوری بلاک رو از شبکه می گیره و سعی می کنه اونو ماین کنه؟
  • اگر کسی هی روی شبکه چرت و پرت بفرسته و انرژی بقیه رو بیخودی حروم کنه، چی می شه؟

معلومه که این بالا و پایین کردن سریع کد به معنی «فهم» کند تیست بلکه بحث ریختن ترس است (: و پیدا کردن یک نقطه شروع. اکثر چیزهای سخت، سختن چون شروعشون رو عقب می ندازیم چون هی به کلش نگاه می کنیم و حاضر نیستیم از یه جای ریزش وارد بشیم. دقیقا به یک کوه فکر کنین که از دور نگاهش میکنین و می گین «واقعا چطوری باید از این رد شد؟» ولی وقتی قدم تو راه می ذارین و ادامه می دین، یکهو می بینین که رد شدین. به نظرم بهترین مثاله برای خوندن یه سورس بزرگ.

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

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

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

در واقع ایده اصلی هکتبرفست اینه که دست شما در کارهای واقعی روون‌ بشه. در نتیجه اگر مهارتی دارین که فکر می کنین به اندازه کافی توش پیش رفتین و می تونین کارهای واقعی بکنین الان باید آستین بالا بزنین. در هر حوزه ای که باشین یاد گرفتن گیت و درک عمومی مفهوم پول ریکوئست قدم اوله – البته با فرض اینکه در حد برقراری ارتباط، از پس زبان بر میاین. بعدش باید یک پروژه پیدا کنین که توش مشارکت کنین. خیلی از پروژه ها در صفحه issue (مشکلات) می نویسن چه مشکلاتی دارن یا قدم بعدی شون چیه. اونها همچنین برای پیدا شدن راحتتر مشکلات آسونی که یه تازه کار می تونه برش داره، برچسب هایی مثل up for grabs، low hanging fuit و از بیشتر good first issue می زنن تا بگن این مساله، به نظرشون پیچیدگی خاصی نداره و مناسبه برای کسی که تازه می خواد با ماجرا آشنا بشه.

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

label:"good first issue" type:issue state:open

و در نتایج، بخش issue ها رو انتخاب کنین. معمولا اونهایی که کامنتشون صفر است انتخاب های بهتری هستن چون هنوز کسی روشون کار نمی کنه. همچنین می تونین با اضافه کردن language:rust یا هر زبانی که دوست دارین، زبان پروژه رو هم انتخاب کنین. معلومه که css و html هم جزو گزینه ها هستن.

شاید بعضی ها تمرکز بیشتری روی پروژه داشته باشن و بعضی ها روی خود ایشو. مثلا ممکنه من بخوام حتما در پروژه ای ایشو حل کنم که خودش هم چیز باحالیه. یا شاید بخوام در یک پروژه بسیار ساده، یه ایشوی خیلی ساده پیدا کنم که بهم اجازه مشارکت بده. هر کدوم که باشه در نهایت شما چند تا ایشو می بینین و یکیش به نظرتون جالبتر میاد.

در این مرحله خیلی خوبه سری بزنین به سورس کد، اونو بگیرین و راهنمایی های احتمالی یا شیوه های مشارکت (ممکنه مثلا فایل CONTRIBUTE باشه اسمش) رو بخونین. تقریبا بعد از اینکه مطمئن شدین از پس حل کردن اون مساله بر میاین مراحل اصلی اینها هستن:

  • زیر ایشو بنویسین که علاقمند هستین روی این کار کنین. مثلا May I start working on this؟
  • پروژه رو Fork کنین تا پروژه روی اکانت شما هم بیاد
  • پروژه رو از اکانت خودتون کلون کنید رو کامپیوتر خودتون
  • یه برنچ جدید باز کنید. مثلا به اسم ایشویی که دارین حل می کنین
  • تغییرات رو انجام بدین و تست کنین و مطمئن بشین دقیق است. اگر لازمه در ایشو از صاحب پروژه نظر بخواین در مورد راه حل و شیوه انجاممش و …
  • کد خودتون رو به گیت هاب خودتون پوش کنین (git push origin branch_name)
  • حالا اگر به صفحه اصلی پروژه برین، می بینین که یه دگمه اومده برای ساخت پول ریکوئست جدید. اونو که فشار بدین می تونین بگین برنچ روی فورک شما رو مرج کنه روی پروژه اصلی. خوبه توی توضیحات دقیق بگین چیکار کردین و یه لینک هم به ایشو بدین که گیت هاب اتوماتیک زیر ایشو هم لینک پی آر شما رو بزنه

و منتظر باشین (:

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

این وسط آدم‌های زیادی هم سعی کردن سایت / ریپوزیتوری هایی بسازن که توش این تیپ ایشوهای راحت رو یکجا جمع کنن، به تفکیک زبان یا چنین چیزهایی. مثلا Up For Grabs یا ایشو هاب یا First Timers Only یا مجموعه مشهور Awesome For Beginners ولی اگر نظر من ر می خواین، همون تکنینک سرچ بهتر جواب می ده‌ (:

ویژه هکتبرفست ۲۰۱۹: شیوه فرستادن پول ریکوئست در گیت هاب

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

یک اکتبر دیگه، یک هکتبرفست دیگه؛ زود باشین که بهترین فرصته برای شروع مشارکت در جامعه و بردن یه تی شرت باحال

اگر اهل برنامه نویسی و جنبش‌های آزاد باشین، می دونین که اکتبر ماه مهمی است؛ اگر هم نمی دونستین از این به بعد خواهید دونست. شرکت دیجیتال اوشن هر سال در یک برنامه ترویجی، هکتبرفست رو برگزار می کنه که توش کافیه از اول اکتبر تا ۳۱ اکتبر، فقط ۴ پول ریکوئست پذیرفته شده روی پروژه های روی گیت هاب داشته باشین و به خاطرش یه تیشرت مخصوص این برنامه رو هدیه بگیرین.

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

پس برای گرفتن جایزه و کسب تجربه، کافیه از همین الان شروع کنین و تا ۳۰ روز آینده، حداقل ۴ پول ریکوئست (PR) برای پروژه‌های عمومی گیت هاب بفرستین. حتما سعی میکنم در طول این ماه شیوه های مختلفی برای پیدا کردن پروژه های خوب برای مشارکت بهتون نشون بدم ولی قبل از اون اگر گیت بلد نیستین یاد بیگرین.

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

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

نکته ۱: برای دریافت تی شرت، نیاز به آدرسی در دنیای آزاد هست. دوستانی مثل فرود و دیگران داوطلب شدن بخشی از تی شرت ها رو دریافت کنن و تحویل صاحب‌هاشون در ایران بدن. فعلا نگرانش نباشین (:

نکته ۲: عکس های بالا و پایین، بچه هایی هستن که پارسال تی شرت رو گرفتن و عکسشون رو برای من فرستادن

نکته ۳: سال بعد عکس شما اینجا خواهد بود (: البته اینجای اونجا. یعنی اینجای سال بعد!


مرتضیسم


شهروز.جی


نسرین


ارسلان


فرود و همکارها

محدود شدن اکانت های ایرانی‌ها روی گیت هاب

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

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

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

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

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

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

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

البته دوستانی هم یک رپوزیتوری اعتراض اعتراض درست کردن ولی این بسته شدن احتمالا ترکیبی از بخش حقوقی گیت هاب، قوانینی که امضا کردیم، شان کشوری که توش زندگی می کنیم و زور آمریکا است و بعیده با درخواست ما تغییری در این مساله داده بشه. ولی به هرحال هر تلاشی قابل تقدیره.

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

درک برنامه نویسی – مفهوم هش، کاربردش و حل یک مثال (سه ویدئو)

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

اولیش اینجاست و بقیه اش در کانال یوتوب یا کانال آپارات. معلومه که فالو کردن شما منو خوشحالتر می کنه (:

کامپیوترها چطوری عدد تصادفی تولید می‌کنن

می دونیم که کامپیوترها قهرمان انجام کارهای تکراری هستن، اما چطوری می تونیم از این قهرمانان‌های کارهای منطبق بر نظم، بخوایم عددی تصادفی درست کنن؟ توی این #چنددقیقهبا_جادی به این نگاه می کنیم که کامپیوترها چطوری می تونن ادای تاس ریختن در بیارن و عدد «تصادفی» تحویل ما بدن. البته قرار بود این ویدئو بین ۵ تا ۱۰ دقیقه باشه و معلومه که حسابی خلاصه شده. مساله بسیار جالبه و پر از جزییات باحال و جا داره یه پادکست مستقل ازش درست کنم.

لینک آپارات و یوتوب