shmp30
01-20-2011, 12:38 AM
جوملا (Joomla) سیستم مدیریت محتوا بسیار بزرگی است که در سراسر جهان مورد استفاده قرار می گیرد. به همین دلیل، هکرها اغلب سعی می کنند راهی برای نفوذ به وب سایت های ایجاد شده توسط جوملا پیدا کرده و به آن سایت ها حمله کنند. در این مقاله با ۷ نکته برای بهینه سازی سیستم امنیتی جوملا، برای جلوگیری از هک شدن وب سایت جوملای خود آشنا می شوید.
به عنوان جعبه کمک های اولیه، همیشه به یاد داشته باشید به طور منظم یک نسخه ی پشتیبان (Backup) از وب سایت و پایگاه داده خود تهیه کنید. اگر در این حالت سایت شما هک شود، با استفاده از پشتیبان، همیشه می توانید به نسخه های قدیمی تر وب سایت خود برگردید. اطمینان حاصل کنید افزونه ای که باعث آسیب پذیری سایت شما گشته را پیدا کرده و آن را حذف کنید.
تغییر پیشوند پیش فرض پایگاه داده (jos_)
بیشتر حملات تزریق اس کیو ال (SQL injections) که به منظور هک نمودن وب سایت های جوملا نوشته می شوند، سعی در بازیابی داده ها از جدول jos_users. دارند. به این ترتیب، این حملات می توانند نام کاربری و رمزعبور مدیر وب سایت را بازیابی و در اختیار هکر قرار دهند. تغییر پیشوند پیش فرض به چیزی تصادفی، می تواند از اکثر و شاید همه حملات تزریق کد جلوگیری نماید.
شما می توانید در هنگام نصب جوملا روی وب سایت، پیشوند پایگاه داده را تغییر داده و به چیزی دلخواه تنظیم کنید. اگر قبلا جوملا را نصب کرده و حالا می خواهید این پیشوند را تغییر دهید، اقدامات زیر را انجام دهید:
• به سیستم مدیریت جوملای خود وارد شوید (Log on)
• به تنظیمات سراسری (global configuration) رفته و پایگاه داده را جستجو کنید.
• پیشوند پایگاه داده خود را تغییر دهید (به عنوان مثال: fdasqw_ یا _mohsen) و روی Save کلیک کنید.
• برای دسترسی به پایگاه داده (database) خود به phpMyAdmin بروید.
• به تب export بروید، تمام مقادیر پیش فرض را به حال خود رها کرده و دکمه Start را بزنید. ساخت و دانلود خروجی از بانک اطلاعاتی می تواند مدتی به طول بیانجامد.
• وقتی که این کار انجام شد، همه کدهایی را که نمایش داده شده، انتخاب کرده و آن ها را در یک فایل متنی در notepad (یا هر ویرایشگر متنی دیگر) کپی کنید.
• در phpMyAdmin ، همه جداول (tables) را انتخاب و آنها را حذف (delete) کنید.
• در ویرایشگر متنی که کدها را وارد کرده اید عمل جستجو و جایگزینی (search and replace) را انجام دهید.در کادر عبارت جستجو jos_ را وارد کرده و در کادر جایگزینی با، پیشوند جدید خود (مثلا fdasqw_) را وارد کرده و دکمه Replace all را فشار دهید.
• با زدن Ctrl + A همه متن را انتخاب کرد و از آن کپی بگیرید. در phpMyAdmin به SQL رفته، query ها (متن کپی شده) را پیست کرده و روی Start کلیک کنید.
شماره نسخه و نام افزونه را حذف کنید
بیشترین آسیب پذیری ها تنها در نسخه های ویژه ای از افزونه های (extension) خاص رخ می دهند. نمایش نسخه 2.14 از افزونه ای مثل MyExtension چیز واقعا بدی است. شما می توانید با انجام اقدامات زیر کاری کنید که این پیام تنها نام افزونه را نشان دهد:
• همه فایل های افزونه را از روی سرور خود دانلود کنید.
• برنامه Dreamweaver را باز کنید.
• هر کدام از فایل های افزونه را که روی کامپیوتر خود دانلود کرده اید بارگذاری کنید.
• از بخش جستجو استفاده کرده و جستجو را در حالت «Search through specified folder» تنظیم کنید. به پوشه ای که افزونه را در آن دانلود کرده اید، بروید.
• MyExtension 2.14 را به عنوان عبارت جستجو وارد نموده و OK کنید تا در تمامی فایل های پوشه انتخابی به دنبال آن بگردد.
• هنگامی که فایل درست را یافتید، شماره ورژن (version number) را حذف کنید.
• فایل تغییریافته را روی سرور آپلود کرده و بررسی کنید که تغییرات اعمال شده یا خیر.
از عناصر متناسب با موتور جستجو استفاده کنید.
اکثر هکرها از دستورGoogle inurl: command برای یافتن و بهره برداری از آسیب پذیرها بهره می گیرند. از افزونه های مبتنی بر SEF، sh404sef و ARTIO برای بازنویسی url در جوملا بر اساس اصول SEF استفاده کنید تا جلوی نفوذ هکرها از طریق پیدا کردن آسیب پذیری های اینچنینی را بگیرید.
علاوه بر این، وقتی که از آدرس URL متناسب با قوانین موتور جستجو (SEF یا Search Engine Friendly) استفاده کنید، در موتورهای جستجو مانند گوگل رتبه بندی بالاتری برای نمایش سایت خود در نتایج جستجو بدست خواهید آورد.
ARTIO (http://www.artio.net/)
SEF (http://extensions.joomla.org/index.php?option=com_mtree&task=listcats&cat_id=1803&Itemid=35)
sh404sef (http://joomlacode.org/gf/project/sh404sef)
جوملا و افزونه های آن را همیشه به روز نگه دارید
این یکی که بسیار آشکار است. همیشه به دنبال استفاده از آخرین نسخه های جوملا و همچنین افزونه های نصب شده در آن باشید. بسیاری از آسیب پذیری های نسخه های قدیمی تر در نسخه های جدیدتر برطرف شده و می تواند گره گشای مشکلات شما باشد.
برای هر پوشه و فایل از CHMOD صحیح استفاده کنید.
تنها زمانی تنظیم پرمیشن فایل ها و یا پوشه ها را CHMOD of 777 or 707 قرار دهید که یک اسکریپت نیاز به بازنویسی آن فایل یا دایرکتوری داشته باشد. همه فایل های دیگر باید تنظیمات زیر را داشته باشند :
• فایل های پی اچ پی : 644
• فایل های پیکربندی (Config) : 666
• سایر پوشه ها : 755
فایل های باقی مانده و زائد را حذف کنید
هنگامی که یک افزونه نصب می کنید اما بعد می فهمید نیاز و تمایلی به استفاده از آن ندارید، افزونه را به حال خود رها نکنید. اگر چنین کاری را انجام دهید، فایل های آسیب پذیر هنوز هم در وب سایت شما وجود دارند. بنابراین به سادگی از منوی un-install استفاده کنید تا از شر افزونه های زائد خلاص شوید.
فایل .htaccess را تغییر دهید.
خطوط زیر را به فایل .htaccess خود برای جلوگیری از برخی از سوء استفاده رایج وارد کنید:
########## Begin - Rewrite rules to block out some common exploits
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
# Block out any script that includes a < script> tag in URL
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR]
# Block out any script that tries to set CONFIG_EXT (com_extcal2 issue)
RewriteCond %{QUERY_STRING} CONFIG_EXT([|%20|%5B).*= [NC,OR]
# Block out any script that tries to set sbp or sb_authorname via URL (simpleboard)
RewriteCond %{QUERY_STRING} sbp(=|%20|%3D) [OR]
RewriteCond %{QUERY_STRING} sb_authorname(=|%20|%3D)
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits
منبع : negahbaan.com
به عنوان جعبه کمک های اولیه، همیشه به یاد داشته باشید به طور منظم یک نسخه ی پشتیبان (Backup) از وب سایت و پایگاه داده خود تهیه کنید. اگر در این حالت سایت شما هک شود، با استفاده از پشتیبان، همیشه می توانید به نسخه های قدیمی تر وب سایت خود برگردید. اطمینان حاصل کنید افزونه ای که باعث آسیب پذیری سایت شما گشته را پیدا کرده و آن را حذف کنید.
تغییر پیشوند پیش فرض پایگاه داده (jos_)
بیشتر حملات تزریق اس کیو ال (SQL injections) که به منظور هک نمودن وب سایت های جوملا نوشته می شوند، سعی در بازیابی داده ها از جدول jos_users. دارند. به این ترتیب، این حملات می توانند نام کاربری و رمزعبور مدیر وب سایت را بازیابی و در اختیار هکر قرار دهند. تغییر پیشوند پیش فرض به چیزی تصادفی، می تواند از اکثر و شاید همه حملات تزریق کد جلوگیری نماید.
شما می توانید در هنگام نصب جوملا روی وب سایت، پیشوند پایگاه داده را تغییر داده و به چیزی دلخواه تنظیم کنید. اگر قبلا جوملا را نصب کرده و حالا می خواهید این پیشوند را تغییر دهید، اقدامات زیر را انجام دهید:
• به سیستم مدیریت جوملای خود وارد شوید (Log on)
• به تنظیمات سراسری (global configuration) رفته و پایگاه داده را جستجو کنید.
• پیشوند پایگاه داده خود را تغییر دهید (به عنوان مثال: fdasqw_ یا _mohsen) و روی Save کلیک کنید.
• برای دسترسی به پایگاه داده (database) خود به phpMyAdmin بروید.
• به تب export بروید، تمام مقادیر پیش فرض را به حال خود رها کرده و دکمه Start را بزنید. ساخت و دانلود خروجی از بانک اطلاعاتی می تواند مدتی به طول بیانجامد.
• وقتی که این کار انجام شد، همه کدهایی را که نمایش داده شده، انتخاب کرده و آن ها را در یک فایل متنی در notepad (یا هر ویرایشگر متنی دیگر) کپی کنید.
• در phpMyAdmin ، همه جداول (tables) را انتخاب و آنها را حذف (delete) کنید.
• در ویرایشگر متنی که کدها را وارد کرده اید عمل جستجو و جایگزینی (search and replace) را انجام دهید.در کادر عبارت جستجو jos_ را وارد کرده و در کادر جایگزینی با، پیشوند جدید خود (مثلا fdasqw_) را وارد کرده و دکمه Replace all را فشار دهید.
• با زدن Ctrl + A همه متن را انتخاب کرد و از آن کپی بگیرید. در phpMyAdmin به SQL رفته، query ها (متن کپی شده) را پیست کرده و روی Start کلیک کنید.
شماره نسخه و نام افزونه را حذف کنید
بیشترین آسیب پذیری ها تنها در نسخه های ویژه ای از افزونه های (extension) خاص رخ می دهند. نمایش نسخه 2.14 از افزونه ای مثل MyExtension چیز واقعا بدی است. شما می توانید با انجام اقدامات زیر کاری کنید که این پیام تنها نام افزونه را نشان دهد:
• همه فایل های افزونه را از روی سرور خود دانلود کنید.
• برنامه Dreamweaver را باز کنید.
• هر کدام از فایل های افزونه را که روی کامپیوتر خود دانلود کرده اید بارگذاری کنید.
• از بخش جستجو استفاده کرده و جستجو را در حالت «Search through specified folder» تنظیم کنید. به پوشه ای که افزونه را در آن دانلود کرده اید، بروید.
• MyExtension 2.14 را به عنوان عبارت جستجو وارد نموده و OK کنید تا در تمامی فایل های پوشه انتخابی به دنبال آن بگردد.
• هنگامی که فایل درست را یافتید، شماره ورژن (version number) را حذف کنید.
• فایل تغییریافته را روی سرور آپلود کرده و بررسی کنید که تغییرات اعمال شده یا خیر.
از عناصر متناسب با موتور جستجو استفاده کنید.
اکثر هکرها از دستورGoogle inurl: command برای یافتن و بهره برداری از آسیب پذیرها بهره می گیرند. از افزونه های مبتنی بر SEF، sh404sef و ARTIO برای بازنویسی url در جوملا بر اساس اصول SEF استفاده کنید تا جلوی نفوذ هکرها از طریق پیدا کردن آسیب پذیری های اینچنینی را بگیرید.
علاوه بر این، وقتی که از آدرس URL متناسب با قوانین موتور جستجو (SEF یا Search Engine Friendly) استفاده کنید، در موتورهای جستجو مانند گوگل رتبه بندی بالاتری برای نمایش سایت خود در نتایج جستجو بدست خواهید آورد.
ARTIO (http://www.artio.net/)
SEF (http://extensions.joomla.org/index.php?option=com_mtree&task=listcats&cat_id=1803&Itemid=35)
sh404sef (http://joomlacode.org/gf/project/sh404sef)
جوملا و افزونه های آن را همیشه به روز نگه دارید
این یکی که بسیار آشکار است. همیشه به دنبال استفاده از آخرین نسخه های جوملا و همچنین افزونه های نصب شده در آن باشید. بسیاری از آسیب پذیری های نسخه های قدیمی تر در نسخه های جدیدتر برطرف شده و می تواند گره گشای مشکلات شما باشد.
برای هر پوشه و فایل از CHMOD صحیح استفاده کنید.
تنها زمانی تنظیم پرمیشن فایل ها و یا پوشه ها را CHMOD of 777 or 707 قرار دهید که یک اسکریپت نیاز به بازنویسی آن فایل یا دایرکتوری داشته باشد. همه فایل های دیگر باید تنظیمات زیر را داشته باشند :
• فایل های پی اچ پی : 644
• فایل های پیکربندی (Config) : 666
• سایر پوشه ها : 755
فایل های باقی مانده و زائد را حذف کنید
هنگامی که یک افزونه نصب می کنید اما بعد می فهمید نیاز و تمایلی به استفاده از آن ندارید، افزونه را به حال خود رها نکنید. اگر چنین کاری را انجام دهید، فایل های آسیب پذیر هنوز هم در وب سایت شما وجود دارند. بنابراین به سادگی از منوی un-install استفاده کنید تا از شر افزونه های زائد خلاص شوید.
فایل .htaccess را تغییر دهید.
خطوط زیر را به فایل .htaccess خود برای جلوگیری از برخی از سوء استفاده رایج وارد کنید:
########## Begin - Rewrite rules to block out some common exploits
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
# Block out any script that includes a < script> tag in URL
RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2}) [OR]
# Block out any script that tries to set CONFIG_EXT (com_extcal2 issue)
RewriteCond %{QUERY_STRING} CONFIG_EXT([|%20|%5B).*= [NC,OR]
# Block out any script that tries to set sbp or sb_authorname via URL (simpleboard)
RewriteCond %{QUERY_STRING} sbp(=|%20|%3D) [OR]
RewriteCond %{QUERY_STRING} sb_authorname(=|%20|%3D)
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits
منبع : negahbaan.com