بررسی آسیب پذیری پروتکل RSYNC
Rsync نام یک پروتکل شبکه و همچنین نام یک ابزار متن باز است که قابلیت انتقال کارآمد و همگامسازی فایلها در سیستمهای کامپیوتری مختلف را با بررسی مهر زمانی و اندازه فایلها فراهم میکند. با استفاده از این قابلیت حتی ميتوان فقط تغييراتي که بر روي يک فايل انجام شده است را منتقل کرد. از این قابلیت در موارد مختلف به منظور صرفهجویی در مصرف پهنای باند و ترافیک شبکه استفاده میشود. در کشور ایران نیز سازمانهای بسیاری از این سرویس استفاده میکنند. در صورتی که این سرویس از امنیت کافی برخوردار نباشد، امکان دسترسی بدون مجوز به فایلهای موجود در سیستم فراهم میشود که مشکلات امنیتی فراوانی به بار خواهد آورد. شرح آسیبپذیری آسیبپذیری Accessible-rsync ناشی از پیکربندی غیر ایمن سرویس Rsync است؛ در صورتی که افراد مجاز برای دسترسی به این سرویس محدود نشده باشند و سیاستهای امنیتی خاصی اعمال نشده باشد، مهاجمین میتوانند از هر نقطه دنیا بدون نیاز به رمز عبور خاصی، فایلهای به اشتراک گذاری شده در سیستم آسیبپذیر را مشاهده و تغییرات دلخواه خود را در آنها اعمال کنند. امنسازی Rsync روشهای امنسازی سرویس Rsync عبارتند از: • مخفی کردن اطلاعات ماژولها: برای جلوگیری از نمایش اطلاعات ماژولها، میبایست با مقداردهی list = false در فایل پیکربندی، مجوز نمایش اطلاعات ماژولها را لغو نمود. در صورتی که این کار انجام نشود میتوان لیست ماژولهای Rsync را استخراج کرد. • فعال کردن مجوزهای کنترل: برای جلوگیری از ایجاد فایلهای جدید و تغییر در فایلهای موجود، میبایست با مقداردهی read only = true در فایل پیکربندی، مجوز نوشتن در فایلها را لغو کرد. • محدودسازی دسترسیهای شبکه: بایستی فقط به میزبانهای خاص و قابل اعتماد اجازه دسترسی از طریق شبکه داد. به این منظور میتوان فایل پیکربندی را با افزودن دستور hosts allow = تغییر داد. • فعال کردن احراز هویت برای کاربران: بایستی فقط کاربران مجاز و قابل اعتماد بتوانند به فایلها دسترسی داشته باشند. از اینرو کاربران باید رمز عبوری مشخص داشته باشند. برای این کار میتوان در سمت سرور پیکربندیهای زیر را انجام داد: auth users = ottocho secrets file = /etc/rsyncd.secrets بدین منظور بایستی رمز عبور را در فایل /etc/rsyncd.secrets وارد کرد. فرمت قرارگیری اطلاعات کاربری در این فایل به صورت username:password در هر خط است. برای وارد کردن رمز عبور در فایل /etc/rsyncd.secrets از سمت کلاینت، کاربران میتوانند از دستور زیر استفاده کنند. نام کاربری کاربر باید با مقدار auth users در فایل پیکربندی سمت سرور یکسان باشد و مجوز 600 برای آنها تنظیم شده باشد. Rsync -av --password-file=/etc/rsyncd.secrets test.host.com::files /des/path • فعال کردن رمزگذاری در هنگام انتقال اطلاعات: Rsync به طور پیش فرض از انتقال رمزگذاری شده دادهها پشتیبانی نمیکند و برای فعال کردن این قابلیت در هنگام انتقال دادههای با اهمیت از پروتکل SSh استفاده میشود. Rsync از دو روش TCP و SHH برای همگام سازی فایلها استفاده میکند.