برنامه‌نویسی کتابخانه‌های جاوااسکریپتش را عمدا آلوده کرد و هزاران اپ را از کار انداخت

چندی پیش، برنامه‌نویس دو کتابخانه‌ی مهم جاوا‌اسکریپت، با به‌روزرسانی‌ مخربی هزاران اپلیکیشن را از کار انداخت؛ اما انگیزه او از این خراب‌کاری عمدی چه بود؟

هفته‌ی گذشته، ماراک اسکوایرز، برنامه‌نویس دو کتابخانه‌ی مهم جاوااسکریپت با بیش از ۲۱ هزار اپلیکیشن وابسته و ۲۲ میلیون دانلود هفتگی، این دو پروژه را بعد از یک سال به‌روزرسانی کرد. باوجوداین، به‌روزرسانی‌‌های یادشده حاوی کد مخربی بودند که با تولید لوپ بی‌نهایت، باعث می‌شد اپلیکیشن‌های وابسته به این دو کتابخانه از کار بیفتند و زنجیره‌ای بی‌پایان از کلمات نامفهومی تولید کنند که با سه خط از این کلمه شروع می‌شد: «Liberty» به‌معنی «آزادی».

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

داستان دقیقاً از چه قرار بود؟

ماراک اسکوایرز خالق دو کتابخانه‌ی متن‌باز و بسیار محبوب جاوااسکریپت به نام‌های Faker و Colors است که ابزارهای مهم و کاربردی را به‌‌رایگان دراختیار توسعه‌دهندگان سراسر دنیا قرار می‌دهد. کتابخانه‌ی faker.js که برای مرورگرهای آزمایشی داده‌های ساختگی تولید می‌کند، با بیش از ۲،۵۰۰ اپلیکیشن وابسته هر هفته شاهد ۲٫۵ میلیون دانلود در وب‌سایت npm، زیرمجموعه‌ی گیت‌هاب بود. کتابخانه‌ی colors.js نیز که به کنسول‌های جاوااسکریپت رنگ اضافه می‌کند، چیزی حدود ۲۲٫۴ میلیون دانلود در هفته داشت و بیش از ۱۹ هزار پروژه‌ به آن وابسته‌اند.

اسکوایرز بعد از یک سال که هیچ‌گونه تغییری در این کتابخانه‌ها ایجاد نکرده بود، هفته‌ی پیش کامیت مخربی در قالب «ماژول جدیدی برای پرچم آمریکا» به colors.js اضافه و کتابخانه‌ی faker.js را نیز به نسخه‌ی ۶.۶.۶ به‌روزرسانی کرد. با این به‌روزرسانی مخرب، توسعه‌دهندگانی که از کدهای این دو کتابخانه برای پروژه‌هایشان استفاده می‌کردند، دچار مشکل شدند و اپلیکیشن‌هایشان به‌یک‌باره شروع به تولید رشته‌ای بی‌انتها از کلمات نامفهوم کرد که حاوی سه خط تکرار کلمه‌ی «LIBERTY» به‌معنی «آزادی» بود.

انگیزه ماراک اسکوایرز از این خراب‌کاری عمدی چه بود؟

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

آرون سوارتس که عده‌ای او را با نام «پسر اینترنت» می‌شناسند، برنامه‌نویس نابغه‌ای بود که در ۱۴ سالگی در توسعه‌ی استاندارد فید RSS مشارکت کرد. همچنین در طراحی معماری کتابخانه‌ی باز و راه‌اندازی سازمان غیرانتفاعی Creative Commons و توسعه‌ی پلتفرم Infogami نقش بزرگی ایفا کرد؛ پلتفرمی که بعدها با رددیت ادغام شد.

علاوه‌بر‌این‌‌، آرون هکتیویست هم بود و به آزادی اطلاعات در اینترنت اعتقاد داشت. سر همین اعتقاد نیز سال ۲۰۱۰ با وصل‌شدن به شبکه‌ی دانشگاه MIT و استفاده از اسکریپت، میلیون‌ها مقاله‌ی پولی را از JSTOR، آرشیو دیجیتالی نشریات و مجلات علمی، به‌طور غیرمجاز دانلود کرد تا آن‌ها را برای استفاده‌ی رایگان افراد در دیگر وب‌سایت‌ها قرار دهد.

آرون یک ماه قبل از برگزاری دادگاه خودکشی کرد؛ دادگاهی که در‌صورت اثبات جرم، او را به حداکثر یک‌میلیون دلار جریمه نقدی و بیش از ۳۵ سال زندان محکوم می‌کرد. بااین‌حال، از سؤال «سر آرون سوارتس دقیقاً چه بلایی آمد؟» این‌طور به‌نظر می‌رسد که مارک اسکوایرز جزو افرادی است که فکر می‌کنند مرگ آرون خودکشی نبوده است.

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

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

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

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

بااین‌همه، داستان به همین‌جا ختم نمی‌شود. اسکوایرز در مطلبی که نوامبر ۲۰۲۰ در گیت‌هاب منتشر کرده بود، اذعان کرد که دیگر نمی‌خواهد مجانی کار کند:

با کمال احترام، من دیگر نمی‌خواهم با کار رایگانم از شرکت‌های فُرچون ۵۰۰ و سایر شرکت‌های کوچک‌تر حمایت کنم. یا با من قرارداد سالانه شش‌رقمی ببندید یا بدهید فرد دیگری روی این پروژه کار کند.

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

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

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

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

 

منبع: زوم ایت

دوره آموزشی لینوکس

مطالب مرتبط