حمله‌ی زنجیره‌ی تأمین علیه کتابخانه‌ی منبع باز

10 آذر 1397 حمله‌ی زنجیره‌ی تأمین علیه کتابخانه‌ی منبع باز

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

Copay اساساً کیف‌پول ارز رمزِ چندسکوییِ بیت‌کوین/بیت‌کوین کَش[1] است که به کاربران اجازه می‌دهد کیف‌پول‌های مشترک بسازند. Copay با استفاده از جاوا اسکریپت توسعه داده شده و به کتابخانه‌های منبع ‌باز بسیاری وابسته است.

یکی از این کتابخانه‌های منبع‌ باز، ماژول Node.js[2] به نام event-stream است. مخزن[3] آن روی سرویس کنترل نسخه[4] GitHub توسط توسعه‌دهنده‌ای نگه‌داری می‌شد که مدت‌ها پیش علاقه‌ و انگیزه‌‌اش را از دست داد و چندین سال بود که در بخش مخزن فعالیت خاصی انجام نداده بود. بدین‌ترتیب وقتی توسعه‌دهنده‌ی دیگری -که کمترین مشارکت را در GitHub داشت آمد- از او تقاضای داشتن حق ادمین (برای نگه‌داری مخزن) کرد، توسعه‌دهنده‌ی اصلی آن را در اختیار او قرار داد.

اکنون این توسعه‌دهنده‌ی جدید حق کار کردن روی آن را پیدا کرده بود. ابتدا کتابخانه event stream  (جریان رویداد) شروع به استفاده از ماژولی به نام flatmap-stream (از مخزن GitHub همان توسعه‌دهنده) کرد. سپس، مجرم ماژول را دستکاری کرده و بدان یک سری کد مخرب اضافه کرد. سه روز بعد از آپدیت، توسعه‌دهنده‌ی مذکور همچنان نسخه‌ی دیگری از flatmap-stream را آپلود کرد. این یکی دیگر کد مخرب نداشت- شاید هم فعالیت‌های مخربش را در خفا انجام می‌داد.

و اینگونه شد که کتابخانه event-stream دستکاری شد. این کتابخانه نه تنها توسط BitPay که همچنین توسط بسیاری از شرکت‌های دیگر مورد استفاده قرار می‌گیرد. ظاهراً این دستکاری تنها سه روز دوام داشت اما همین مدت‌زمان برای توسعه‌دهندگان Copay -که نمی‌دانستند این کتابخانه برای حمل پی‌لودی آلوده دستکاری شده – کافی بود تا نسخه‌ی بروز‌شده‌ی این کتابخانه را در پروژه‌ی خود بگنجانند. نرم‌افزار آپدیت‌شده‌ی این کیف‌پولی رمزی در فروشگاه‌های اپ عرضه و توسط بسیاری از کاربران دانلود شد.

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

حتی اگر توسعه‌دهندگان کتابخانه‌های بروز شده را بررسی می‌کردند، این کد مخرب را باز هم نمی‌شد به آسانی پیدا کرد. کتابخانه‌های بکارگرفته‌شده در یک پروژه می‌توانند به دیگر کتابخانه‌ها (همانطور که event-stream به flatmap-stream وابسته بود) بستگی داشته باشند و بررسی تمامی این وابستگی‌ها می‌تواند بسیار زمان‌بَر باشد. در این مورد خاص -با توجه به این نکته که ماژول flatmap-stream رمزگذاری شده بود- پیچیدگی این پروسه بیشتر بود. 

به نقل از CCN، کتابخانه flatmap-stream طوری دستکاری شده بود تا کلیدهای مخفی (اساساً رمزعبورهای کیف‌پول رمزی) را در اپ‌هایی که به دو کتابخانه event-stream و copay-dash وابسته است لو بدهد. Copaydash نشان می‌دهد این یک حمله‌ علیه BitPay ، سازندگان Copay و نویسندگان copay-dash بوده است. در این صورت این کلیدها تنها اگر از طریق این دو کتابخانه استفاده می‌شد درز می‌کردند (همچنین این تنها برای محصولات مبتنی بر کد Copay صدق می‌کند).

به گفته‌ی آرس‌تکنیکا، این پی‌لود مخرب به مجرم سایبری اجازه داد تا به کیف‌پول‌های کاربران دسترسی پیدا کرده و از آنجا اقدام به جابجایی پول کند. این نقص توسط یک کاربر  GitHub کشف و گزارش شد. اما پیش از آن، نسخه‌های مختلفی از کیف‌پول‌های  Copay -حاوی کد مخرب- توزیع شده بود. نهایتاً BitPay به این دستکاری اعتراف نموده و به کاربرانی که از نسخه‌های 5.0.2  تا 5.1.0 Copay استفاده می‌کردند توصیه کرد آن‌ها را به آخرین نسخه -یعنی 5.2.0- آپگرید کنند. در حال حاضر هیچ اطلاعاتی در خصوص تعداد کاربران مبتلا و میزان وجه از دست‌رفته در دست نیست.

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

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

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

بهترین راه انجام دادن اقدامات زیر است:

 بررسی شرایط مخزن، در نظر داشتن رتبه‌بندی‌ها از سوی دیگر توسعه‌دهندگان، بررسی اینکه پروژه هر چند وقت یکبار آپدیت می‌شود و نیز آخرین بروزرسانی‌اش چه زمان بوده است، جست‌وجو از طریق باگ لاگ. مشاهده‌ی هر چیز عجیبی نیازمند بررسی عمیق‌تر و ریزبینانه‌تری است (و یا شاید تغییر ماژول را موجب شود).

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

 

[1] Bitcoin Cash

[2]یک محیط اجراییِ سمت سرورِ متن‌باز و چندسکویی برای زبان جاوااسکریپت است.

[3]  repository

[4]  version control service 

منبع: کسپرسکی آنلاین (ایدکو)

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

محصولات مرتبط

  • Kaspersky Internet Security for Android

    امنیت پیشرفته‌ای که همیشه همراه شماست بخش مهمی از زندگی اکثر ما اکنون روی گوشی‌ها و تبلت‌هاست- پس به امنیت موبایلی نیاز دارید که شما را همیشه امن نگه ...

    9,965,500 ریال
    خرید
  • Kaspersky Cloud Password Manager

    Kaspersky Cloud Password Manager ابزار مدیریت کلمه عبور ابری کسپرسکی (KCPM) ضمن ذخیره ایمن تمامی کلمات عبور مورد استفاده شما برای وبسایت‌ها، اپلیکیشن‌ها، و شبکه‌های اجتماعی آنها را در تمامی ...

    14,953,000 ریال
    خرید
  • Kaspersky Safe Kids

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

    14,953,000 ریال
    خرید
  • Kaspersky Security Cloud Personal

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

    99,740,500 ریال
    خرید
  • Kaspersky Standard

    سیستم امنیتی بهبودیافته به همراه تقویت‌کننده عمکرد دستگاه طرح امنیتی استاندارد ما، نه تنها سیستم امنیتی قدرتمندی را برای انواع ویروس‌ها، بدفزارها و باج‌افزارها ارائه می‌دهد ...

    14,107,500 ریال28,215,000 ریال
    خرید
  • Kaspersky Plus

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

    20,230,250 ریال40,460,500 ریال
    خرید
  • Kaspersky Premium

    حفاظت کامل از دستگاه ها، حریم خصوصی و هویت شما با محصول Kaspersky Premium تمام نیازهای امنیتی خود و خانواده‌تان را پوشش دهید. حفاظت پیشرفته ...

    21,641,000 ریال43,282,000 ریال
    خرید
  • Kaspersky Small Office Security

    محافظت در حین کار Kaspersky Small Office Security به طور خاص برای سازمان‌هایی طراحی شده است که 5 تا 50 دستگاه کامپیوتر در خود جای داده‌اند. نصب آن بسیار آسان است؛ مدیریت آن ...

    71,816,200 ریال179,540,500 ریال
    خرید
  • Kaspersky Small Office Security

    امنیت ادارات کوچک

    114,908,200 ریال287,270,500 ریال
    خرید
  • Kaspersky Small Office Security

    امنیت ادارات کوچک

    86,180,200 ریال215,450,500 ریال
    خرید
  • Kaspersky Small Office Security

    138,050,200 ریال345,125,500 ریال
    خرید
  • Kaspersky Small Office Security

    100,544,200 ریال251,360,500 ریال
    خرید
  • Kaspersky Small Office Security

    160,793,200 ریال401,983,000 ریال
    خرید
  • Kaspersky Small Office Security

    114,908,200 ریال287,270,500 ریال
    خرید
  • Kaspersky Small Office Security

    183,935,200 ریال459,838,000 ریال
    خرید
  • Kaspersky Small Office Security

    129,272,200 ریال323,180,500 ریال
    خرید
  • Kaspersky Small Office Security

    206,678,200 ریال516,695,500 ریال
    خرید
  • Kaspersky Small Office Security

    131,666,200 ریال329,165,500 ریال
    خرید
  • Kaspersky Small Office Security

    210,668,200 ریال526,670,500 ریال
    خرید
  • Kaspersky Small Office Security

    185,531,200 ریال463,828,000 ریال
    خرید
  • Kaspersky Small Office Security

    296,852,200 ریال742,130,500 ریال
    خرید
  • Kaspersky Small Office Security

    239,396,200 ریال598,490,500 ریال
    خرید
  • Kaspersky Small Office Security

    383,036,200 ریال957,590,500 ریال
    خرید
  • Kaspersky Small Office Security

    289,271,200 ریال723,178,000 ریال
    خرید
  • Kaspersky Small Office Security

    462,836,200 ریال1,157,090,500 ریال
    خرید
  • Kaspersky Small Office Security

    548,621,200 ریال1,371,553,000 ریال
    خرید
  • Kaspersky Small Office Security

    877,796,200 ریال2,194,490,500 ریال
    خرید

نظر خودتان را ارسال کنید


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