صفحه اصلي
اخبار مهم
اخبار و هشدارهاي امنيتي
گزارشات تحليلي
راهنمايي هاي امنيتي
امنيت در رايانه شما
اخبار از سايتهاي ديگر
بازديدها
تهديدات جاري
گزارش استان هاي آلوده به بدافزار
گزارش سازمان هاي آلوده به بدافزار
گزارش مقايسه آنتي ويروس ها
مقالات
همايش ها
ورود كاربران
 امنيت در رايانه شما  
چگونه با حملات CSS مقابله كنيم
شماره: IRCAR200911042
 
آيا تا به حال شده آدرس وب سايتي را اشتباه تايپ كرده باشيد و پيغام Error – Page name could not be found يا The page you requested does not exist را دريافت كرده باشيد؟ حتماً اين اتفاق براي شما نيز افتاده است، اما شما چه برخوردي كرده ايد؟ آيا به سادگي آدرس را اصلاح كرده و يا به يك وب سايت مشابه رفته ايد؟
اين اتفاق يك مسئله رايج در اينترنت است. همواره تعداد زيادي از لينك هاي غيرفعال وجود دارند و يا لينكهايي كه آدرس آنها بسيار شبيه هم است. به هر حال هر گاه كه با پيغام خطايي مانند موارد فوق مواجه شويد، در حال مشاهده يك سرقت اطلاعات بالقوه هستيد البته نه لزوماً بر عليه وب سايت بلكه مستقيماً بر عليه شما.
فرض كنيد كه آدرس اينترنتي معتبر زير را در نوار آدرس وارد كرده ايد:
 
http://www.example.com/FILENAME.html
 
در صورتي كه فايل FILENAME.html وجود نداشته باشد، وب سايت مذكور پيغام خطاي زير را بر مي گرداند:
 
<HTML>
404 page does not exist: FILENAME.html
 
….
</HTML>

 


دقت داشته باشيد كه FILENAME.html رشته اي است كه شما وارد كرده ايد و وب سايت آن را در صفحه اي كه به شما بر گردانده قرار داده است.

اين مسئله به نظر بي ضرر مي رسد ولي حالا تصور كنيد كه در حال مشاهده يك وب سايت حراجي هستيد. اجازه دهيد آن را
auctions.example.com بناميم. شما به يك سري از چيزهايي علاقمند مي شويد كه يكي از اعضا براي فروش گذاشته است و به همين دليل مي خواهيد اشياي ديگري را كه وي براي فروش قرار داده نيز مشاهده كنيد. فرض كنيد اين فرد يكي از خرابكاران باشد و خود را با نام BG12345 معرفي كرده است. شما بر روي وب سايت BG12345 كليك كرده و ليستي از اشياي حراج شده را مشاهده مي كنيد. شما بر روي يكي از اين اشيا كليك مي كنيد و به صفحه اي در auctions.example.com باز مي گرديد كه شئ مذكور را نمايش مي دهد. در همين لحظه وب سايت auctions از شما نام كاربري و رمز عبور را مي خواهد. شما نيز همه اطلاعات مورد نظر را وارد مي كنيد و دكمه submit را كليك مي كنيد. همه چيز به نظر عادي و خوب مي رسد ولي در حقيقت اطلاعاتي را كه شما submit كرده ايد به همان BG12345 باز مي گردد. چگونه اين اتفاق مي افتد؟ جواب اين است كه auction.example.com داراي يك آسيب پذيري است كه cross-site scripting يا CSS ناميده مي شود.
يك آسيب پذيري CSS به دليل شكست يك وب سايت در اعتبارسنجي اطلاعات وارد شده توسط كاربر، قبل از بازگرداندن آن به مرورگر كلاينت، اتفاق مي افتد. در Cross-site scripting يك نفوذگر باعث مي شود تا يك وب سرور معتبر صفحه وبي را كه حاوي اسكريپت هاي خرابكار است براي مرورگر قرباني ارسال كند. متأسفانه اين اسكريپت خرابكار با اولويت يك اسكريپت قانوني كه از يك وب سرور معتبر آمده است، اجرا مي شود. دو خطايي كه در اول مطلب به آن اشاره شده است مي توانند مثالهايي از حالت مذكور باشند.
در صورتي كه شما به جاي نام صفحه، شما يك كد HTML يا اسكريپت را وارد كنيد، سرور كماكان همان كد را به مرورگر شما باز مي گرداند و مرورگر نيز فرض مي كند كه HTML يا اسكريپت از auctions.example.com آمده است و آن را با همان اولويت وب سايت معتبر example.com اجرا مي كند و زماني كه به وب سايت نگاه مي كنيد همه چيز عادي به نظر مي رسد. خرابكار BG12345 نيز از روشي مشابه براي فريب دادن شما استفاده كرده است. زماني كه شما بر روي حراجي BG12345 كليك مي كنيد، لينك مذكور در واقع به يك صفحه نامعتبر اشاره مي كند. اين لينك ممكن است حاوي چيزي شبيه مثال زير باشد كه از HTML و اسكريپت هاي صفحه اصلي تقليد كرده است. زماني كه بر روي submit كليك مي كنيد اطلاعات موجود در فرم به BG12345 باز ميگردد. حال اين فرد خرابكار مي تواند به اطلاعات حساب كاربريتان دسترسي پيدا كند، چيزهايي را با استفاده از حساب شما به مزايده بگذارد و يا اطلاعات شما را تغيير بدهد. وي همچنين قادر است رمز عبور شما را تغيير دهد و از شما را از دسترسي به حساب كاربري خود محروم سازد. از همه بدتر اين شخص مي تواند شماره حساب كاربري شما را كه با آن رجيستر كرده ايد مشاهده كند.
اما BG12345 دقيقاً چه مي كند؟ وب سايت وي يك لينك را به auction.example.com پيشنهاد داده است كه چيزي شبيه لينك زير است:
 
<A HREF=http://auction.example.com/<script>alert (‘hello’) </script>">Click Here</a>
 
در واقع FILENAME.html كه در auction.example.com ثبت شده عبارت است از:
 
<Script>alert (‘hello’) </script>
 
وب سايت auction.example.com سپس از قوانين معمول خود استفاده مي كند تا يك صفحه خطا مانند آنچه قبلاً ديديم توليد كند:
 
<HTML>
404 page not found: <script>alert(‘hello’)</script>
....
</HTML> 
در نتيجه BG12345 توانسته است يك برنامه جاوااسكريپت را در صفحه اي كه توسط auction.example.com به شما بازگردانده شده است، "تزريق" كند. اين كد جاوااسكريپت با همان اولويت و تنظيمات وب سايت auction.example.com اجرا مي شود و بنابراين مي تواند حتي رويدادها را پردازش كند.  با اين روش مي توان از آسيب پذيري CSS جهت شنود اطلاعات حساس مورد سوءاستفاده كرد و  اطلاعاتي همچون رمزهاي عبور، شماره كارت هاي اعتباري و هر اطلاعات ديگري كه به عنوان ورودي وارد وب سايت كنيد را سرقت كرد. انواع مختلفي از اين مشكل مشاهده مي شود. براي مثال احتمال دارد كه در وب سايت bank.example.com چنين آسيب پذيري وجود داشته باشد، آن وقت است كه آقاي خرابكار BG12345 به راحتي مي تواند به حساب بانكي شما دسترسي پيدا كرده و با روشي مشابه به انتقال وجه از حساب شما به حساب ديگري بپردازد.
 
روش مقابله با اينگونه حملات چيست؟
 
  • بهترين راه مقابله، غير فعال كردن امكان اسكريپت در صورت عدم نياز به آن است هر چند كه اين روش نيز از تزريق HTML خرابكار جلوگيري به عمل نمي آورد. شما نيز بايد از اطلاعات حساس خود مراقبت لازم را به عمل آوريد و به صفحات حساس مستقيماً مراجعه كرده و از دنبال كردن لينك هاي ناشناس و سايت هاي غير قابل اطمينان بپرهيزيد. براي مثال به لينك وب سايت بانكتان در يك ايميل اطمينان نكنيد. اگر نياز داريد كه به وب سايت بانك دسترسي داشته باشيد، مستقيماً به آن مراجعه كنيد. همواره در دادن اطلاعات شخصي جوانب احتياط را رعايت كنيد.
  • مديران وب سايتها نيز مي توانند كمك خوبي در اين زمينه باشند. آنها مي توانند اطمينان حاصل كنند كه هيچ كدام از صفحاتشان اطلاعات كاربر را بدون تأييد باز نمي گردانند. آنها همچنين مي توانند كاربران را تشويق به غير فعال كردن اسكريپت كنند.
  • راه حل ديگر استفاده از signed scripting است. در اين صورت اسكريپت هايي كه امضاي نامعتبر يا غير قابل اطمينان دارند به صورت اتوماتيك اجرا نخواهند شد. البته استفاده از اين پيشنهاد نياز به تغييراتي در استانداردها و مشخصات اينترنت در حال حاضر دارد.
  • در صورتي كه نمونه اي از Cross-site scripting را مشاهده كرديد به مدير وب سايت مربوطه اطلاع دهيد.
 
متأسفانه امنيت همواره قرباني قابليت اجرايي شده است. ولي در صورتي كه شما اينترنت را با فعال بودن امكان اسكريپت مرور كنيد با احتمال كمي مي توانيد از اطلاعات شخصي خود محافظت به عمل آوريد. حملات Cross-site scripting به راحتي قابل پيشگيري هستند ولي در عين حال منجر به خسارات زيادي نيز مي شوند. مثلا معلوم نيست كه شماره كارت اعتباري و رمز عبور شما براي چه مقاصدي مورد استفاده قرار گيرد.

تعداد بازديد اين صفحه: 823
خانه | بازگشت | Guest (certguest)

مرکز امداد و هماهنگي رايانه اي کشور
Powered By Sigma ITID.