رادیوجادی ۱۵۳ – اجتماع هکرها

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

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

و البته ایده جدید که اگر توشون سابسکرایب کنین / مشترک بشین یا هر چی بهش میگن، خوشحال می شم:

منابع این شماره

00:00 – شروع رادیو گیک / رادیوجادی ۱۵۳
02:20 – اخبار کنفرانس بلک هت و دفکان ۲۰۲۳
15:37 – ناسا و از دست دادن تقریبی ارتباط با فضاپیمای ویجر ۲
21:06 – باگ سخت افزاری داونفال در پردازنده‌های اینتل
25:30 – قانون حمایت از خبرنویسان در کانادا و مشکلاتش با شرکت‌های بزرگ
30:00 – سر مقاله کیهان
30:40 – درگذشت برام مولنار، نویسنده ادیتور vim
33:30 – دبیان سی ساله شد
34:20 – گپ‌هایی در مورد بیماری خودم
39:00 – نامه‌های آخر

رادیوگیک – شماره ۱۲۵ – مدیریت جدید آسایشگاه

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

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

و البته ایده جدید که اگر توشون سابسکرایب کنین / مشترک بشین یا هر چی بهش میگن، خوشحال می شم:

منابع این شماره

  • 0:0 شروع
  • 1:07 پس گرفتن باج های کولونیال پایپ لاین https://www.wsj.com/articles/how-the-fbi-got-colonial-pipelines-ransom-money-back-11623403981
  • 8:38 دستگیری گروه باج گیر در اوکراین https://arstechnica.com/information-technology/2021/06/ukraine-arrests-ransomware-gang-in-global-cybercriminal-crackdown/
  • 10:43 هشتاد درصد باج دهنده ها،‌ دوباره مورد حمله قرار میگیرن https://it.slashdot.org/story/21/06/18/1933233/80-of-orgs-that-paid-the-ransom-were-hit-again-report-finds
  • 12:46 چت امنی که اف بی آی در اختیار خلافکارها قرار داده بود https://www.cbsnews.com/news/anom-app-fbi-criminals-messaging-app/
  • 18:23 واکسن ام.آر.ان.ای. برای مالاریا https://medicalxpress.com/news/2021-06-mrna-vaccine-yields-full-malaria.html
  • 20:51 بزرگترین دامپ فایل پسورد در تاریخ https://cybernews.com/security/rockyou2021-alltime-largest-password-compilation-leaked/
  • 23:50 در اعماق
  • 23:58 پذیرش رسمی بیت کوین در السالوادور https://www.bbc.com/news/world-latin-america-57373058
  • 28:40 امکان خرید تینک پد ایکس وان نسل ۱۱ با فدورا و اوبونتو https://9to5linux.com/lenovos-thinkpad-x1-carbon-gen-9-laptop-now-comes-with-fedora-linux-or-ubuntu
  • 31:45 پرداخت میلیون دلاری اپل به زنی که عکس هاش رو فیسبوکش آپلود شده بود https://www.theguardian.com/technology/2021/jun/07/apple-settles-iphone-explicit-images
  • 35:27 ویندوز ۱۱ https://www.theverge.com/2021/6/15/22535123/microsoft-windows-11-leak-screenshots-start-menu
  • 38:55 تبریک ها و تقبیح ها

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

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

این نشست برای ۳۰ دقیقه تعریف شده مگر اینکه هر وقت لازم داشتین، دگمه اضافه کرن ۱۵ دقیقه دیگه رو فشار بدین. در این نشست شما می‌تونین حتی فایل هم به سیستم آپلود کنین. البته با محدودیت ۱۰ مگ. منطقا به خاطر سوء استفاده بعضی ها، دسترسی سیستم‌ها به اینترنت قطعه.

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

قرعه کشی کتاب «مصائب من در حباب استارتاپ»

این کتاب رو برام فرستاده بودن و خوندم و بررسی کردم و بعدش هم گفتم که اگر کسی می‌خواد صاحب بعدی‌اش باشه که درخت کمتری قطع کرده باشیم و خوشحالی بیشتری هم تولید کرده باشیم، فرمی رو پر کنه و حالا فرم پر شده و وقت قرعه‌کشی است. فرم روی گوگل بود و من csvش رو دانلود کردم:

➜  /tmp wc -l book.csv 
115 book.csv

خب ۱۱۵ نفر شرکت کننده‌داریم پس نیازمند یه عدد رندم بین ۱ تا ۱۱۵ هستیم. چیزی که خیلی‌ها توش بش بهش برنخوردن، متغیر RANDOM$ است که به شما یه عدد رندم بین ۰ تا ۳۲۷۶۷ می‌ده. ما عددی بین ۱ تا ۱۱۵ نیاز داریم پس کافیه باقیمونده‌اش به ۱۱۵ رو بگیریم (که می شه عددی بین صفر تا ۱۱۴) و بعد یکی بهش اضافه کنیم. سه بار اجراش می‌کنم و سومین عدد رو برنده اعلام می‌کنم. اینطوری تا حدی مطمئن‌تر هستم که درست کار می‌کنه:


➜ /tmp echo $((1 + $RANDOM % 115))
89
➜ /tmp echo $((1 + $RANDOM % 115))
1
➜ /tmp echo $((1 + $RANDOM % 115))
73

نفر ۷۳ برنده است. اما کیه؟ خط ۷۳ فایل رو می‌بینیم:

➜  /tmp sed -n '73p' book.csv
11/21/2020 22:19:01,y,y,y,y
➜  /tmp sed -n '1p' book.csv
11/21/2020 13:03:55,وحید,vahid*****@gmail.com,8,در یوتیوب - Vahid ****

هاه نفر ۷۳ اطلاعات الکی پر کرده بود… نفر قبل رو چک کردم و برنده کتاب مصائب من در حباب استارتاپ، وحید است (: مبارک باشه. باهات تماس می‌گیرم برای آدرس.

رفتگر دبیان و اصلاح خودکار حدود ۶۰ هزار مشکل ریز در پکیج‌ها

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

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

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

#!/usr/bin/python3

from debmutate.control import ControlEditor
from lintian_brush.fixer import report_result, fixed_lintian_tag

with ControlEditor() as updater:
    for para in updater.paragraphs:
        if para.get("Priority") == "extra":
            para["Priority"] = "optional"
            fixed_lintian_tag(
                para, 'priority-extra-is-replaced-by-priority-optional')

report_result("Change priority extra to priority optional.")

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

البته بذارین دو نکته رو هم بگم:

۱. این توضیح در مورد همه اختراعات نیست. واقعا شاید برسیم به جایی که ماشین ها کار کنن ما بخوابیم یا صاحب هامون بخوابن و ما تو خرابه ها دنبال غذا بگردیم (:

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

حالا می تونین لپ‌تاپ‌های لنوو تینک‌پد و تینک استیشن رو کاملا سازگار با لینوکس بخرین

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

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

بازم خبر خوب؟ (: لنوو لپ‌تاپ‌های ThinkpPad P53 و P1 Gen 2 رو با فدورا هم عرضه خواهد کرد و البته خب هر لینوکس دیگه ای که مبتنی بر اوبونتوی LTS باشه هم به شکل منطقی باید کاملا درست کار کنه. همچنین لنوو برای سازگاری کامل احتمالا مجبوره بعضی درایورها رو هم به کرنل اضافه کنه که اینکار آپ استریم خواهد بود، یعنی درایورها به کرنل اصلی اضافه می شن نه به عنوان یه پچ مخصوص لنوو. اینکار بهترین گزینه است برای ما و دنیای لینوکس.

پاین بوک پرو؛ یه لپ‌تاپ لینوکس مبتنی بر آرم ۲۰۰ دلاری

عجیبه که اینو من ندیده بودم. یه لپ تاپ مبتنی بر پروسسور آرم که لینوکس ران می‌کنه، بدنه اش فلزی است و بسیار ارزونه – البته به پول یه آدم عضو جهان. این کامپیتر ۱۴ اینچی، صفحه 1080p داره. دیسکش ۶۴ یا ۱۲۸ است و ۴ گیگ هم رم داره. این کامپیوتر همچنین یه باتری ۱۰هزار میلی آمپری داره که بین ۴ تا ۶ ساعت روشنش نگه می‌داره و پورت‌های یو اس بی ۲ و ۳ و همینطور یه یو اس بی سی که اجازه می‌ده کامپیوتر رو به مانیتور اکسترنال ۴کی خودتون وصل کنین و از اون باحالتر، قابل شارژ از این پورت هم هست، درنتیجه می تونین با هر کله‌گی مرسومی که دارین، این رو هم شارژ کنین (: و البته جک مثل آدم ۳.۵ اینچ هم داره (:

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

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

تنظیم ادیتور ویم برای برنامه نویسی [پایتون]

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

لینک تنظیم ادیتور ویم برای برنامه نویسی در آپارات و یوتیوب.

نصب خود ویم

توی قسمت های قبلی که با ویم کار کردیم پس منطقا نصب شده (: اما بحث اینه که انتظار می ره ویم شما نسبتا جدید باشه، حداقل بالاتر از ۷.۳.

➜  ~ vim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Apr 12 2020 17:46:58)

اگر روی مک هستین و ورژن شما پایینتر است، شاید با brew update و brew install vim بتونی وضع رو بهتر کنین. روی لینوکس ها احتمالا به اندازه کافی به روز هستین.

پلاگین‌‌های ویم

ویم الان یه شبیه یه پلتفرم شده که روش کلی پلاگین نصب می کنین و کارهایی رو می کنه که شما دوست دارین. نصب پلاگین‌های از طریق مدیراکستنش‌ها انجام می‌شه که یکی از مرسوم‌هاش Vundle است. نصبش ساده است. واندل رو کلون می کنینش توی تنظیمات پلاگین های ویم؛ یه چنین چیزی:

git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

حالا برای شروع تنظیمات کافیه یه فایل به اسم .vimrc توی هوم درست کنین:

touch ~/.vimrc

و توش تنظیمات واندل رو اضافه کنین:

set nocompatible              " required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'gmarik/Vundle.vim'

" add all your plugins here (note older versions of Vundle
" used Bundle instead of Plugin)

" ...

" All of your Plugins must be added before the following line
call vundle#end()            " required
filetype plugin indent on    " required

set encoding=utf-8

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

:PluginInstall

حالا وقتشه که قدم به قدم پیش بریم.

استفاده خوب

قبلا هم گفتم. خوبه فیچرهای چیزهایی که ازشون استفاده می کنین رو بگیریم. معمولا آدم ها به شکل تجربی یکسری فیچر اولیه رو یاد می گیرن تا کارشون راه بیافته و بعد حرفه ای تر نمی شن. خوبه اگر از چیزی استفاده می کنین، کم کم فیچرهای مناسبش رو یاد بگیرین. مثلا در مورد ویم، استفاده کمتر از ماوس یا استفاده بیشتر از :sp و :vs و کامندهایی که حرفشون رو زدیم مثل بافرها و ..

تا کردن کد

تا کردن؟ انگلیسی ها می گن fold. در حالت عادی با za فولد می شد ولی خیلی ها می ذارن روی space.

" Enable folding
set foldmethod=indent
set foldlevel=99

البته دقت کنین که فولد بر اساس ایندنت انجام می شه. برای پیشرفته‌تر کردن با درک زبان و … SimpylFold رو سرچ کنین.

فرمت بهتر فایل برای پایتون

برای ایندنت کردن بر اساس پپ۸، اینها رو اضافه کنین:

au BufNewFile,BufRead *.py
    \set tabstop=4
    \set softtabstop=4
    \set shiftwidth=4
    \set textwidth=79
    \set expandtab
    \set autoindent
    \set fileformat=unix

و برای ایندنت خوب اتوماتیک:

Plugin 'vim-scripts/indentpython.vim'

و چنین چیزی برای مشخص کردن اسپیس های اضافی

au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/
 highlight BadWhitespace ctermbg=red guibg=darkred

اتوکامپلیت

اتوکامپلیت ایده ها و شکل های مختلفی داره. مثلا ممکنه فانکشن های اصلی رو بدونه یا ممکنه متغیرها رو زیر نظر بگیره و … گزینه اصلی خیلی ها برای مجموعه ای از زبان‌ها ِYouCompleteMe است که باید مستقل نصبش رو پیش برین. با این به واندل اضافه اش کنید:

Bundle 'Valloric/YouCompleteMe'

و بعد از نصبش چند تا تغییر ریز هم بدیم:

let g:ycm_autoclose_preview_window_after_completion=1
map g  :YcmCompleter GoToDefinitionElseDeclaration

ویرچوال انوها

معلومه که ویم درکی از ویرچوال انوها نداره. برای ایجاد کردن این درک می تونیم اینکار رو بکنیم:

"python with virtualenv support
py << EOF
import os
import sys
if 'VIRTUAL_ENV' in os.environ:
  project_base_dir = os.environ['VIRTUAL_ENV']
  activate_this = os.path.join(project_base_dir, 'bin/activate_this.py')
  execfile(activate_this, dict(__file__=activate_this))
EOF

چک کردن سینتکس

پلاگین داریم دیگه...

Plugin 'vim-syntastic/syntastic'
Plugin 'nvie/vim-flake8'
let python_highlight_all=1
syntax on

تنظیم رنگ ها

یک نگاه خودتون بندازین... سخته انتخاب کرده و من هی عوض می کنم. ولی در نهایت با

colorscheme desert

درخت فایل ها

اوه اوه.. بعضی ها عاشق اینن بعضی ها نمی دونن اصلا چرا هست! نرد تری مرسمترین است:

Plugin 'scrooloose/nerdtree'
Plugin 'jistr/vim-nerdtree-tabs'
let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree

می تونین با :NERDTree فعالش کنین ، با o در بافر جدید باز کنین. با t در تب جدید، با i در اسپلیت افقی و با s در معودی. p می ره دایرکتوری بالا و r ریفرش می کنه. بقیه اش؟ ? (: بستن؟ :NERDTreeClose

قرتی بازی های آخر

مثلا

set number
set showmatch
set history=1000
set undolevels=1000
set wildignore=*.swp,*.bak,*.pyc
set visualbell
set noerrorbells

و پلاگین هایی مثل

Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}