این سند به تحلیل عمیق یک آسیب پذیری حیاتی در ماژول mod_copy سرور پروتکل FTP معروف به ProFTPD میپردازد. این آسیب پذیری که از نوع اجرای کد از راه دور (Remote Code Execution) است، به مهاجمان امکان میدهد تا با دور زدن مکانیزمهای اعتبارسنجی و محدودیتهای دسترسی، به فایلهای حساس سیستم عامل (مانند /etc/passwd و /etc/shadow) دسترسی یافته و یا حتی کدهای مخرب را در مسیرهای قابل دسترسی از وب (مانند /var/www/html) بارگذاری نمایند.
حملات موفقیتآمیز بر پایه این آسیب پذیری میتواند منجر به نشت گسترده اطلاعات حساس، تخریب یکپارچگی سیستم و در نهایت تصرف کامل سرور گردد. این گزارش با تشریح گامبهگام مکانیزم بهرهبرداری از آسیب پذیری، ارائه نمونهای عملی از یک اکسپلویت، و ذکر جزئیات پچ امنیتی و راهکارهای مقابله، چارچوب کاملی را برای درک عمق تهدید و اقدامات ضروری برای خنثیسازی آن ارائه مینماید.
FTP چیست؟
پروتکل FTP[1] مجموعهای از پروتکلهای استاندارد است که به کامپیوترهای متصل به شبکه اجازه میدهد تا فایلها را از طریق اینترنت منتقل کرده و با یکدیگر تبادل اطلاعات داشته باشند. سرور FTP در واقع کامپیوتری است که خدمات دسترسی و ذخیرهسازی فایل را بر روی اینترنت فراهم میآورد و مسئولیت تمامی فرآیندهای انتقال داده بین کامپیوترهای شبکه را بر عهده دارد. سرور FTP در انتظار اتصال کلاینت میماند و با استفاده از دستورات پروتکل FTP، وظایفی نظیر بارگذاری، فهرست کردن دایرکتوریها یا دانلود را به انجام میرساند.
FTP بر پایه معماری کلاینت-سرور عمل میکند. کاربر در نقش یک کلاینت، با بهرهگیری از پروتکل FTP میتواند به سرور FTP روی میزبان راهدور متصل شود. کلاینت قادر است دستوراتی را به سرور راهدور ارسال کند تا به اجرا درآیند. پس از اجرای دستورات، سرور میزبان نتایج را به کلاینت بازمیگرداند. به عنوان مثال، کاربر فرمانی را برای درخواست یک فایل به سرور میدهد، سرور به این درخواست پاسخ میدهد و فایل را برای کلاینت ارسال میکند. سپس، کاربر میتواند فایل را در دایرکتوری کاری خود قرار دهد. این فرآیندها توسط سرورهای FTP مدیریت میشوند.
نحوه عملکرد سرور FTP
سرویس FTP پروتکلی مبتنی بر TCP است که برای انتقال فایل به کار میرود. این پروتکل به صورت پیشفرض از پورت 20 (برای انتقال داده) و پورت 21 (برای انتقال دستورات) استفاده میکند.
هنگامی که یک کاربر در شبکه، درخواستی را به سرور ارسال میکند، سرور درخواست را دریافت کرده و با ارائه خدمات انتقال فایل، به آن پاسخ میدهد. FTP از روش ارتباطی مبتنی بر اتصال پایدار استفاده میکند تا خطوط ارتباطی کنترلی در طولانیمدت فعال بمانند. لازم به ذکر است که بسته به حالت اتصال، تعداد پورتهای داده ممکن است متفاوت باشد.
انواع حالتهای اتصال FTP
سرور FTP قادر است از حالت فعال (Active mode)، حالت غیرفعال (Passive mode)، یا هر دو حالت پشتیبانی کند.
- حالت فعال (Active Mode):
- در این حالت، کلاینت یک پورت را باز کرده و در وضعیت انتظار (listening) قرار میگیرد. در مقابل، سرور به صورت فعال به این پورت متصل میشود. در این رویکرد، کلاینت میتواند از هر پورت آزاد و تصادفی برای برقراری ارتباط استفاده کند.
- حالت غیرفعال (Passive Mode):
- در این حالت، سرور یک پورت را باز کرده و به صورت غیرفعال به آن گوش میدهد. کلاینت نیز به صورت غیرفعال به پورت مذکور متصل میشود. حالت غیرفعال معمولاً به عنوان یک اقدام امنیتی پیشفرض مورد استفاده قرار میگیرد. این حالت به ویژه زمانی کاربرد دارد که کلاینت قادر به دریافت اتصال از سوی سرور نباشد؛ به عنوان مثال، در شرایطی که ارتباط توسط فایروال مسدود شده است.
معرفی برنامه ProFTPD
ProFTPD یک نرمافزار Server FTP رایگان و متنباز است. این نرمافزار برای سیستمهای شبهیونیکس طراحی شده و از طریق Cygwin از ویندوز نیز پشتیبانی میکند. ProFTPD بهدلیل قابلیت پیکربندی گسترده و ارائه امکانات گسترده شناخته میشود و گزینههای فراوانی در اختیار مدیران سیستم قرار میدهد.
- سرور ProFTPDیک پروسه پسزمینه است که انتقال فایلها را با استفاده از پروتکل FTP مدیریت میکند.
- مانند بسیاری از نرمافزارهای سروری محبوب، ProFTPD نیز تحت مجوز GNU General Public Licenseارائه میشود، رایگان است و میتوان آن را توزیع کرد.
- ProFTPD در ابتدا برای سیستمهای یونیکس و شبهیونیکس مانند لینوکس، macOS و سایرین طراحی شده بود. اگرچه در ویندوز بهصورت بومی پشتیبانی نمیشود، اما میتوان با استفاده از محیط Cygwinاز آن بهره برد. توجه داشته باشید که Cygwinیک محیط شبهیونیکس برای ویندوز فراهم میکند.
- ProFTPD بهدلیل گزینههای پیکربندی گستردهاش معروف است. این گزینهها به مدیران سیستم اجازه میدهند تا نحوه عملکرد سرور را دقیقاً تنظیم کنند و دسترسی کاربران را مدیریت نمایند.
- در مقایسه با برخی دیگر از سرورهای FTP که بر سادگی یا سرعت تمرکز دارند، ProFTPD طوری طراحی شده که از امکانات پیشرفتهای مانند کاربران مجازی[2]، محدودسازی دسترسی کاربران به دایرکتوریهای خاص[3] بهره ببرد.
- ProFTPD تمرکز قویای بر امنیت دارد و گزینههایی برای استفاده از FTPS و سایر قابلیتهای مرتبط با امنیت ارائه میدهد.
آسیب پذیری Remote Code Execution
RCE نوعی آسیبپذیری امنیتی است که به مهاجمان امکان اجرای کد دلخواه روی یک دستگاه راهدور را میدهد. دستگاهی که از طریق شبکههای عمومی یا خصوصی به آن متصل میشود.
RCE بخشی از گروه بزرگتری از آسیبپذیریها موسوم به اجرای کد دلخواه (ACE[4]) محسوب میشود. RCE پیشرفتهترین نوع ACE است، زیرا حتی بدون نیاز به دسترسی اولیه به سیستم یا دستگاه نیز قابل سوءاستفاده است. این آسیبپذیری معادل تسخیر کامل سیستم یا نرمافزار آسیبپذیر است و میتواند پیامدهای جدی مانند موارد زیر داشته باشد:
- از دسترفتن دادهها
- اختلال در سرویسها
- نصب باجافزار یا بدافزارهای دیگر
- حرکت مهاجم به سمت دیگر سیستمهای حساس فناوری اطلاعات
پیامدهای حملات اجرای کد از راه دور
آسیبپذیریهای RCE میتوانند پیامدهای شدیدی بر سیستم یا نرمافزار داشته باشند، از جمله:
- نفوذ اولیه: مهاجمان میتوانند از آسیبپذیریهای RCE بهعنوان نقطه ورود اولیه به شبکه یا محیط استفاده کنند.
- ارتقاء سطح دسترسی: در بسیاری موارد، سرورها دارای آسیبپذیریهای داخلی هستند که فقط با دسترسی داخلی قابل مشاهدهاند. RCE به مهاجم امکان میدهد با ارتقاء امتیازات به سیستمهای متصل دسترسی یابند، سپس این آسیبپذیریها را کشف و مورد سوءاستفاده قرار دهند.
- افشای دادههای حساس: مهاجمان با سوءاستفاده از RCE میتوانند دادهها را چه از طریق نصب بدافزارهای ربودن داده یا اجرای مستقیم دستورات، از سیستمهای آسیبپذیر سرقت کنند. دامنه این سرقت اطلاعات میتواند از کپیبرداری ساده دادههای رمزنگاری نشده تا استفاده از بدافزارهای memory scraping متغیر باشد که به جستجوی اطلاعات احراز هویت در حافظه سیستم میپردازند.
- حملات DoS: آسیبپذیری RCE به مهاجمان اجازه اجرای کد روی سیستم را میدهد. این کد میتواند منابع سیستم را تخلیه و آن را از کار بیاندازد، یا از منابع سیستم برای اجرای حملات DoS بر علیه اشخاص ثالث استفاده کنند.
- استخراج رمزارز: گام رایج پس بهرهبرداری از RCE، اجرای بدافزارهای استخراج رمزارز (Cryptomining) یا Cryptojacking است که از منابع محاسباتی دستگاه آلوده برای استخراج ارزهای دیجیتال استفاده میکند.
- باجافزار: احتمالاً خطرناکترین پیامد RCE امکان نصب باجافزار روی نرمافزار یا سرور آسیبپذیر است. مهاجمان میتوانند باجافزار را در شبکه گسترش داده و تا دریافت باج، دسترسی کاربران به فایلهایشان را مسدود کنند.
- دسترسی غیرمجاز: مهاجمان با اجرای کد خودسرانه بر سیستمهای راهدور، میتوانند به شبکهها، سرورها یا برنامههای سازمان هدف دسترسی غیرمجاز[5] پیدا میکنند. مهاجمان پس از نفوذ قادرند تا دادههای ارزشمند را استخراج یا دستکاری کنند و اطلاعات حساس مشتریان یا سوابق مالی را افشا نمایند.
انواع حملات اجرای کد از راه دور
حملات RCE در گونههای مختلفی رخ میدهند که متداولترین آنها عبارتند از:
- حمله Injection:
- بسیاری از برنامهها اجرای دستورات از طریق ورودی کاربر را مجاز میدانند. مهاجمان با ارسال دادههای ورودی مخربِ ساختارشکن میتوانند کدهای خودسرانه[6] را اجرا کنند.
- حمله Deserialization:
- برنامهها معمولاً ازSerialization برای انتقال یا ذخیرهسازی دادهها استفاده میکنند. در این حمله، دادههای Serialization شدهای که توسط مهاجم ارائه میشود، هنگام Deserialization(تبدیل به شیء قابلپردازش) به عنوان دستور اجرایی تفسیر میگردد.
- نوشتن خارج از محدوده بافر (Out-of-bounds Write):
- برنامهها معمولاً فضاهای حافظه ثابتی (بافر) برای ذخیرهسازی دادهها تخصیص میدهند. وجود نقاط ضعف در مدیریت حافظه به مهاجمان این امکان را میدهد تا ورودیهایی ارسال کنند که خارج از محدوده بافر تعیینشده نوشته شوند. از آنجا که بخشهای مجاور حافظه غالباً حاوی کدهای اجرایی هستند، این عمل میتواند منجر به اجرای کدهای مخرب شود.
محل وقوع آسیبپذیری CVE-2015-3306
آسیبپذیری CVE-2015-3306 در ماژول mod_copy در ProFTPD نسخه 1.3.5، ناشی از فعالبودن دستورات SITE CPFR و SITE CPTO برای کلاینتهای Unauthorized است. یک مهاجم از راه دور و بدون نیاز به احرازهویت میتواند از این ضعف سوءاستفاده کرده و به صورت دلخواه به خواندن و نوشتن فایلها در هر مسیر قابلدسترسی وب بر روی سیستم میزبان بپردازد.
این دستورات با دسترسی سرویس ProFTPD اجرا میشوند که به صورت پیشفرض با امتیازات کاربر nobody اجرا میشود. با استفاده از /proc/self/cmdline برای کپی کردن یک PHP Payload به دایرکتوری وبسایت (/var/www/)، اجرای کد PHP از راهدور امکانپذیر میشود.
نحوه عملکرد سرویس mod_copy
ماژول mod_copy دستورات SITE CPFR و SITE CPTO را در خود پیادهسازی میکند که امکان کپی کردن فایلها/پوشهها را مستقیماً در سرور، بدون نیاز به انتقال داده به کلاینت و باز فرستادن آن، از مکانی به مکان دیگر فراهم میکند. در روش عادی روند به صورت زیر است:
اما با استفاده از ماژول mod_copy به صورت زیر است:
در ابتدای این تابع سه متغیر i، res و path تعریف شدهاند که به ترتیب، متغیر i به منظور شمارنده حلقه برای تجزیه آرگومانها، res به منظور ذخیرهسازی نتایج بررسی و path به منظور ساخت مسیر فایل مبدا ایجاد گردیده است.
در ادامه بررسی میشود که مقدار argc کمتر از سه پارامتر نباشد و همچنین در اندیس دوم argv استرینگ “CPFR” وجود داشته باشد، در غیر این صورت ورودی نادیده گرفته میشود.
سپس مجددا از طریق ماکرو CHECK_CMD_MIN_ARGS بررسی میشود که اگر مقدار ارگومانها کمتر از مقدار مورد نیاز بود پیغام “501 Syntax error in parameters or arguments” برای کلاینت ارسال شود.
و پس از آن یک حلقه ایجاد شدهاست که هدف از آن تجزیه ورودی است که کاربر تحت عنوان مسیر فایل ارسال کرده است، و در نهایت تبدیل آن به یک استرینگ واحد است. به عنوان مثال در شرایطی که کاربر ورودی مانند:
SITE CPFR /var/www/my file.txt
را ارسال کرد، این ورودی در آرایه argv به شرح زیر است:
“argv[0] = “SITE
“argv[1] = “CPFR
“argv[2] = “/var/www/my
“argv[3] = “file.txt
و با استفاده از این حلقه ورودی کاربر به قالب زیر در یک استرینگ واحد در میآید:
“path = “/var/www/my file.txt
پس از آن با استفاده از دو تابع PathAllowFilter و PathDenyFilter بررسی میشود که آیا ProFTPD به فایل مشخص شده دسترسی لازم را دارد یا خیر، در صورتی که این دسترسی وجود نداشته باشد پیغام مربوطه تحت عنوان ارور “550 Forbidden filename.” برای کلاینت نمایش داده میشود.
سپس با استفاده از فراخوانی تابع dir_canonical_vpath مسیر نهایی فایل به یک فرم استاندارد تبدیل میشود.
در این قسمت بررسی میشود که آیا مسیر معتبر است، کاربر دسترسی لازم برای دسترسی به این فایل را دارد و در نهایت فایل وجود دارد یا خیر. در صورت منفی بودن پاسخ هر یک از این بررسیها پیغام مناسب مانند Permission Denied برای کاربر نمایش داده میشود.
پس از آن مسیر مبدا در session.notes ذخیره میشود تا دستور SITE CPTO بداند که قرار است چه فایلی را کپی کند.
در نهایت به کلاینت پیغام نهایی تحت عنوان “File or directory exists, ready for destination name” نمایش داده میشود.
در ابتدا مانند تابع CPFR بررسی تعداد ارگومانها و وجود استرینگ CPTO در اندیس دوم وجود دارد.
در ادامه مسیر مبدا که توسط دستور CPFR ذخیره شده است دریافت میشود، اگر این مسیر یافت نشود به معنای این است که کلاینت هنوز دستور CPFR را اجرا نکرده است، در نتیجه با خطای “Bad sequence of commands” روبهرو میشود.
در مرحلهٔ بعد، تابع مورد استفاده در دستور CPFR برای ایجاد مسیر استاندارد، مجدداً در این تابع نیز ظاهر میشود، همانطور که گفته شد هدف از استفاده این تابع دریافت ورودی کاربر تحت عنوان مسیر و تبدیل آن به یک استرینگ واحد و مسیر استاندارد برای استفاده در ادامه است.
مجدداً با استفاده از فراخوانی تابع dir_canonical_vpath مسیر نهایی فایل به یک فرم استاندارد تبدیل میشود.
سپس تابع CPTO، با فراخوانی copy_paths، اقدام به کپی فایل یا پوشه مبدأ به مقصد میکند. در صورت عدم موفقیت در این عملیات، خطای File unavailable به کلاینت نمایش داده میشود. همچنین متغیر errno علت خطا (مانند Permission denied یا No such file or directory) را در بر میگیرد.
در نهایت اگر همه چیز به خوبی پیش رود، پیام “Requested file action okay, completed” برای کلاینت نمایش داده میشود و همچنین ریسپانس FTP 250 ارسال میشود.
تغییرات کد به منظور رفع آسیبپذیری
بهمنظور رفع آسیبپذیری، در ورژنهای جدید قطعات کد اصلاحی به ماژول mod_copy اضافه گردیده است. ویژگیهای جدید به طور خلاصه عبارتند از:
- امکان فعالسازی یا غیرفعالسازی ماژول از طریق دستور CopyEngine on/off
- بررسی وضعیت احراز هویت کاربر پیش از اجرای هر عملیات کپی
- اعتبارسنجی دسترسی کاربر به قابلیت CopyEngine پس از هر بار لاگین مجدد و ثبت کلیه درخواستها بهمنظور مانیتورینگ
در ادامه هر یک از این تغییرات را بررسی میکنیم.
فعال و غیرفعال سازی با استفاده از CopyEngine
در نسخهٔ جدید، پارامتر پیکربندی CopyEngine on/off به سیستم افزوده شده است که امکان فعالسازی/غیرفعالسازی جامع ماژول را در اختیار مدیران سرور قرار میدهد. این پارامتر پیش از اجرای هر دستور CPTO، CPFR یا حتی پردازش لاگها اعتبارسنجی میشود. در صورت مقداردهی off (معادل FALSE)، فرایند با کد وضعیت PR_DECLINED فوراً خاتمه یافته و هرگز وارد مرحله کپیبرداری نمیشود.
ین مکانیزم به مدیران سیستم اجازه میدهد تا ماژول mod_copy را در سرورهای غیرضروری غیرفعال نموده و از این طریق سطح حمله[7] را کاهش دهند.
اضافه شدن Authentication Check
در نسخهٔ فعلی، پیش از اجرای دستورات CPFR یا CPTO، احراز هویت کاربر الزامی گردیده است. در صورت عدم احراز هویت، خطای “530 Please login with USER and PASS” به کلاینت ارسال میگردد.
این اصلاحیه، آسیبپذیری نسخهٔ پیشین را که به کاربران ناشناس (Anonymous FTP) اجازهٔ سوءاستفاده از این دستورات برای عملیات کپی فایل را میداد، رفع مینماید.
اضافه شدن Hook برای PASS Command
تابع copy_post_pass بلافاصله پس از اجرای دستور PASS فراخوانی میشود تا وضعیت CopyEngine را بهصورت پویا ارزیابی نماید. این طراحی الزامی است چرا که ماژولهایی نظیر mod_ifsession ممکن است تنظیمات دسترسی را بر اساس هویت کاربر تغییر دهند.
این مکانیزم تضمین مینماید که حتی پس از عملیات احراز هویت، مجوزهای دسترسی به mod_copy مطابق با آخرین تنظیمات مدیر سیستم اعتبارسنجی گردد.
نحوه اکسپلویت اسیبپذیری CVE-2015-3306
برای این آسیبپذیری، اکسپلویتهای متعددی توسعه یافته که یکی از آنها در چارچوب متااسپلویت (Metasploit Framework) قابل دسترسی است. تمامی این اکسپلویتها در بخش تحلیلات از پیش ارائه شده فهرست گردیدهاند.
اکسپلویت مورد استفاده در فرایند تست و بررسی، در تصویر زیر ارائه شده است:
در این اکسپلویت، پس از اتصال به سرور ProFTPD و دریافت بنر سیستم، دستورات مخرب بهصورت متوالی به سمت سرور ارسال میگردند. مرحلهٔ اول شامل ارسال دستور زیر است:
SITE CPFR /etc/passwd
پاسخ موفقیتآمیز سرور (350 File or directory exists, ready for destination name) دو نکتهٔ حیاتی را تأیید میکند:
- عدم اعمال سیاستهای محدودیت دایرکتوری (Directory Restriction Policies)
- ذخیرهسازی مسیر مبدأ در notes و آمادگی سرور برای دریافت دستور مقصد (CPTO)
در مرحلهٔ بعدی اکسپلویت، دستور زیر به سرور ارسال میشود:
SITE CPFR /proc/self/fd/5
این دستور از تکنیک بهرهبرداری از فضای proc برای دسترسی غیرمستقیم به توصیفگر فرآیند ProFTPD استفاده مینماید. در این مکانیزم:
- /proc/self/fd/ به توصیفگرهای فایل باز شده توسط فرآیند جاری اشاره دارد.
- توصیفگر شماره 5 (fd/5) معادل فایل /etc/passwd است که در مرحلهٔ قبل باز شده بود.
- سرور با خواندن این مسیر، محتوای /etc/passwd را بازیابی میکند.
این تکنیک، امکان دور زدن محدودیتهای دسترسی مستقیم به فایلهای سیستمی را از طریق استخراج دادههای حافظه فرآیند (Process Memory) فراهم میسازد. بهطور مشخص، با بهرهبرداری از فضای /proc، مهاجم قادر است به توصیفگرهای فایل باز شده توسط سرور دسترسی یافته و محتوای آنها را بدون نیاز به مجوزهای مستقیم خواند.
در مرحلهٔ نهایی اکسپلویت، دستور زیر بلافاصله اجرا میشود:
SITE CPTO /var/www/html/test.php
این دستور محتوای توصیفگر فایل fd/5 (که پیشتر خوانده شد) را مستقیماً در مسیر وبسرور کپی میکند. نتیجه نهایی، ایجاد فایلی با محتوای /etc/passwd تحت عنوان یک اسکریپت PHP در دایرکتوری قابل دسترسی از طریق وب است.
راهکار های جلوگیری از آسیب پذیری
برای جلوگیری از بهرهبرداری از این آسیبپذیری، راهکارهای زیر پیشنهاد میشوند:
- غیرفعالسازی ماژولهای غیرضروری: ماژول mod_copy تنها در موارد خاص مورد نیاز است. مطابق با اصل حداقل امتیاز[8]، در صورت عدم نیاز ضروری، این ماژول و سایر ماژولهای غیرحیاتی را بهطور کامل غیرفعال نمایید.
- محدودسازی سختگیرانه دسترسی کاربران ناشناس: دسترسی کاربران ناشناس را بهطور کامل غیرفعال کنید. در صورتی که امکان غیرفعالسازی کامل وجود ندارد، دسترسی آنان را به یک دایرکتوری ایزوله و فاقد هرگونه مجوز نوشتن (Read-Only) محدود سازید.
- اعمال محدودیتهای شدید در دسترسی فایلسیستم: از محیط Chroot Jail برای محدود کردن کاربران به دایرکتوری home استفاده کنید. مطمئن شوید کاربری که سرویس ProFTPD تحت آن اجرا میشود (مانند nobody یا proftpd)، فاقد کوچکترین مجوز نوشتن در دایرکتوریهای حساس سیستم (نظیر /var/www/, /etc/, /bin/) است.
- فعالسازی مانیتورینگ و ثبت فعالیت کاربران: قابلیت مانیتورینگ را برای تمامی دستورات و فعالیتهای کاربران، بهویژه دستورات SITE، فعال کرده و از یک سیستم SIEM برای تحلیل و دریافت هشدارهای لحظهای در مورد فعالیتهای مشکوک (مانند درخواستهای CPFR به مسیرهای حساس) استفاده نمایید.
- استفاده از لایههای امنیتی اضافه: سرور FTP را پشت یک فایروال WAF یا سیستم IDS/IPS مستقر کنید تا ترافیک مخرب و درخواستهای غیرعادی شناسایی و مسدود شوند. دسترسی به پورت سرویس FTP را در فایروال شبکه، تنها به آیپیهای معتبر و مورد نیاز محدود نمایید.
نتیجه گیری
آسیبپذیری در ماژول mod_copy سرور ProFTPD نمونهای بارز از یک تهدید امنیتی است که از ترکیب یک باگ نرمافزاری و پیکربندی ناامن سرور به وجود میآید. این آسیبپذیری به مهاجمان امکان میدهد با دور زدن مکانیزمهای احراز هویت و اعتبارسنجی، به فایلهای حساس سیستم عامل دسترسی یافته و در نهایت کنترل سرور را به دست آورند.
بررسیها نشان داد که ریشه اصلی مشکل در فعال بودن پیشفرض دستورات SITE CPFR و SITE CPTO برای تمامی کلاینتها، حتی کاربران ناشناس بوده است. اصلاحات بعدی شامل افزودن امکان غیرفعالسازی ماژول CopyEngine، اجبار به احراز هویت پیش از اجرای دستورات و ثبت دقیق لاگها، سطح امنیتی نرمافزار را به میزان قابلتوجهی افزایش داد.
[1] File Transfer Protocol
[2] Virtual Users
[3] Chrooting
[4] Arbitrary Code Execution
[5] Unauthorized
[6] Arbitrary Code
[7] Attack Surface
[8] Principle of Least Privilege