آزمایشگاه تخصصی آپا دانشگاه فردوسی مشهد::FUM CERT Lab. (Computer Emergency Response Team)

اصلی >> Network Services

سوال: تفاوت بین HTTP و HTTPS چیست؟
پاسخ:

پروتکل (HTTP(Hyper Text Transfer Protocol برای ارائه خدمات تحت وب به کاربران استفاده می‌شود. ارتباطی که این پروتکل بین سرویس‌دهنده و سرویس‌گیرنده برقرار می‌کند به راحتی قابل شنود است.

برای برطرف کردن این مشکل، پروتکل (HTTPS (Hyper Text Transfer Protocol Secure به وجود آمد که ارتباطاطی رمزنگاری شده به وسیله‌ی SSL برقرار می‌کند و داده‌هایی که در طول ارتباط رد و بدل می‌شوند نیز به صورت رمز می‌باشند.
لازم به ذکر است که معمولا پروتکل HTTP از پورت 80 و پروتکل HTTPS از پورت 443 استفاده می‌کنند.

(ارسال کننده: محمد ابراهیم ابروی)


سوال: چگونه در سرویس‌دهنده وب آپاچی می‌توان برای یک دامنه پیغام خطای 404 را سفارشی کرد؟
پاسخ:

برای این منظور می‌توانید یک فایل htaccess. در بالاترین دایرکتوری دامنه‌تان بسازید و خط زیر را به آن اضافه نمایید:
ErrorDocument 404 /missing.html
متن پیغام خطای مورد نظر را در missing.html در بالاترین دایرکتوری دامنه‌تان قرار دهید. همچنین می‌تواند از آدرس صفحات وب نیز استفاده نمایید. مانند:
ErrorِDocument 404 http://domain.com/error/dir1/404.html

(ارسال کننده: محمدابراهیم ابروی)


سوال: چگونه می‌توان در سرویس‌دهنده‌ی وب آپاچی از یک دایرکتوری به وسیله کلمه عبور حفاظت کرد؟
پاسخ:

با استفاده از دو فایل htaccess. و htpasswd. می‌توان از یک دایرکتوری به وسیله‌ی کلمه عبور حفاظت کرد. برای این منظور لازم است مراحل زیر را انجام دهید:
۱) نام کاربری و کلمه عبور مورد نظر را به فرم username:cryptedpassword در فایل htpasswd. ایجاد نمایید. می‌توانید از برنامه کوچکی که در آدرس زیر قرار دارد برای تولید کلمه عبور درهم‌ سازی شده استفاده کنید:
https://secure.sabren.com/cornerhost/cryptify.app
به طور مثال:
username:cryptedpassword
ali:nVbajKGJljGq6

2) فایل htpasswd. را در یک دایرکتوری دلخواه ذخیره کنید.
3) سپس در فایل متنی web/DOMAIN/.htaccess/~ خطوط زیر را اضافه نمایید:

AuthType Basic

"AuthName "private

AuthUserFile /web/script/USER/DOMAIN/.htpasswd
AuthGroupFile /dev/null

require valid-user

لازم به ذکر است که DOMAIN نام دامنه‌ای است که قرار است از آن حفاظت شود. با وجود این که فایل htpasswd. را می‌توان در هر جایی ذخیره کرد، اما به دلایل امنیتی بهتر است آن را در مسیری خارج از دامنه مورد نظر قرار داد.

(ارسال کننده: محمدابراهیم ابروی)


سوال: چگونه می‌توان یک صفحه‌ی خطای 404 سفارشی روی سرویس‌دهنده وب آپاچی ایجاد کرد؟
پاسخ:

در سرویس‌دهنده وب آپاچی این امکان وجود دارد که بتوان یک صفحه‌ی خطای 404 ایجاد کرد. کاربران می‌توانند این صفحه را ویرایش کرده و سپس فایل پیکربندی را به گونه‌ای اصلاح کنند که به آن صفحه اشاره کند. برای این منظور لازم است مراحل زیر انجام شود: 1) ایجاد یک صفحه‌ی وب به عنوان صفحه‌ی خطای 404 2) تغییر سومین ورودی خط ErrorDocument 404 /404.html در فایل پیکربندی httpd.conf به URI صفحه‌ی خطای 404 جدید 3) راه‌اندازی مجدد سرویس‌دهنده وب

(ارسال کننده: امین آئین)




سوال: پروتکل IMAP چیست؟
پاسخ:

IMAP که مخفف عبارت Internet Mail Access Protocol می‌باشد، یک پروتکل استاندارد برای بررسی نامه‌های الکترونیکی است. با استفاده از این پروتکل، هر کاربر (با استفاده از یک متقاضی پست الکترونیکی از قبیل Outlook Express یا Thunderbird) می‌تواند اطلاعات مربوط به نامه‌های الکترونیکی خود (شامل فرستنده و موضوع نامه) را مرور نموده و در صورت لزوم آن نامه‌ها را دریافت کند. همچنین، کاربر می‌تواند پوشه‌ها یا صندوق‌های پست الکترونیکی بر روی سرویس‌دهنده راه دور ایجاد کرده و یا نامه‌هایی را حذف نماید. اين پروتكل از پورت 143 استفاده مي‌كند.

(ارسال کننده: سمانه یوسف‌نژاد)


سوال: پروتکل POP3 چیست؟
پاسخ:

POP3 که مخفف عبارت Post Office Protocol می‌باشد، یک پروتکل استاندارد برای دریافت نامه‌های الکترونیکی است. با استفاده از این پروتکل، هر کاربر می‌تواند به صندوق پست الکترونیکی خود بر روی سرویس‌دهنده راه دور دسترسی داشته باشد و نامه‌های الکترونیکی را دریافت و بر روی سیستم خود ذخیره کند. اتصالات POP3 در حالت عادي رمز نشده هستند كه در اين صورت از پورت 110 استفاده خواهند کرد. در صورتي كه سرويس دهنده‌اي از SSL پشتیبانی كند، از پورت 995 برای اتصالات POP3 استفاده خواهد شد.

(ارسال کننده: سمانه یوسف‌نژاد)


سوال: پروتکل SMTP چیست؟
پاسخ:

SMTP که مخفف عبارت Simple Mail Transfer Protocol مي‌باشد، ارسال و مسیریابی نامه‌های الکترونیکی را از فرستنده به گیرنده با استفاده از نشانی‌های پست الکترونیکی امکان‌پذیر می‌سازد. اين پروتكل از پورت 25 استفاده مي‌كند.

(ارسال کننده: سمانه یوسف‌نژاد)


سوال: پیام‌های خطایی که برای طول کلید از طرف SSH ارسال می‌شود برای چیست؟
پاسخ:

برنامه ssh-keygan در SSH تجاری دارای یک باگ است و همین امر موجب می‌شود که بعضی اوقات در تولید کلیدهای عمومی احراز هویت، بیت‌های با ارزش‌تر را تنظیم (بازنشانی) نکند. به عنوان نمونه کلیدهایی که با اندازه‌ کوچکتر از اندازه پیش فرض تولید می‌شوند. OpenSSH در هنگام رویارویی با این نوع کلیدها، پیام خطا صادر می‌کند. برای رهایی از این پیام‌ها، فایل‌های know_hosts را ویرایش کنید و طول کلید صحیح را که معمولا ۱۰۲۴ است، جایگزین نمایید.

(ارسال کننده: حامد مهدوی)


سوال: چرا ارتباط SSH بعد از چند دقیقه عدم فعالیت، مسدود یا غیرفعال می‌شود؟
پاسخ:

به خاطر زمان‌بندی ارتباط TCP که روی وسیله‌های NAT صورت گرفته است، بعد از زمان معینی، در صورت عدم فعالیت در ارتباط، وسیله میانی ارتباط را مسدود می‌کند. با فعال کردن گزینه ClientAliveInterval در فایل sshd_config روی سرویس‌دهنده یا گزینه ServerAliveInterval در فایل ssh_config روی متقاضی و همچنین تنظیم نمودن حداقل زمان، برای حفظ ارتباط در جدول ارتباط وسیله میانی، می‌توان این مشکل را حل نمود.

(ارسال کننده: حامد مهدوی)


سوال: منظور از Port Forwarding چیست؟
پاسخ:

این فرآیند که با نام‌های Tunneling و Port Mapping نیز شناحته می‌شود، ترافیک روی یک گره یا درگاه خاص را به سمت یک گره یا درگاه دیگر هدایت می‌کند. Port Forwarding در مسیریابی که قابلیتNAT در آن فعال شده است، این امکان را فراهم می‌کند تا یک کاربر خارج از شبکه به یک درگاه مشخص در داخل شبکه دسترسی داشته باشد.

(ارسال کننده: حامد مهدوی)


سوال: منظور از X11 Forwarding چیست؟
پاسخ:

هر کاربری برای مدیریت از راه دور یک میزبان یونیکس یا لینوکس، ممکن است به یک واسط گرافیکی روی آن میزبان نیاز داشته باشد. نرم‌افزارهایی مانند OpenSSH در سیستم‌‌های عامل‌ مبتنی بر یونیکس و PuTTY در سیستم ‌عامل ویندوز قادر هستند بسته‌های X11 را در یک اتصال کاملا امن و رمز شده برای ایجاد یک ارتباط گرافیکی انتقال دهند. این فرآیند که باعث می‌شود یک واسط گرافیکی روی سیستم راه دور در اختیار کاربران قرار گیرد، X11 Forwarding نامیده می‌شود.

(ارسال کننده: حامد مهدوی)


سوال: آیا در Squid می­‌توان ACLها را به جای آدرس IP بر اساس آدرس MAC تنظیم کرد؟
پاسخ: ­ بله در برخی از سیستم­‌های عامل­ امکان­‌پذیر است. Squid آن­‌ها را "ARP ACLs" می­‌نامد. سیستم­‌های عامل­ لینوکس، سولاریس و انواع BSD این نوع ACL را پشتیبانی می­‌کنند.
برای استفاده از کنترل­‌های دسترسی ARP، باید ابتدا Squid را با گزینه enable-arp-acl-- کامپایل نمایید.
configure --enable-arp-acl ...
 make clean
 make
در غیر این‌صورت نمی­‌توانید از این نوع ACL استفاده نمایید. در صورتی که کامپایل به صورت صحیح انجام شود، می­‌توان خطوط ARP ACL را در فایل squid.conf تعریف نمایید:
acl M1 arp 01:02:03:04:05:06
acl M2 arp 11:12:13:14:15:16
http_access allow M1
http_access allow M2
http_access deny all
سوال: آیا در Squid می­‌توان تعداد connectionهای کاربر را محدود کرد؟
پاسخ: بله. با استفاده از لیست کنترل دسترسی  maxconn و ترکیب آن با http_access deny می­‌توان تعداد connection های کاربر را محدود کرد. برای مثال:
acl losers src 1.2.3.0/24
acl 5CONN maxconn 5
http_access deny 5CONN losers
با تعریف پیکربندی بالا، در صورتی که کاربر با آدرس IP، 1.2.3.0/24 خواسته باشد یک مرتبه connection هایی بیش­تر از 6 تا ایجاد نماید، Squid صفحه خطایی را برمی­‌گرداند. مگر اینکه شما از ویژگی deny_info استفاده نمایید که در این حالت کاربر فقط با خطای "access denied" مواجه می­‌شود.
دقت شود كه Maxconn به ویژگی client_db نیاز دارد که اگر آن را غیرفعال نمایید (برای مثال client_db off)، در ابن صورت maxconn کار نخواهد کرد.­
سوال: چرا Squid برخی از پورت‌ها را می‌بندد ؟
پاسخ: از لحاظ امنیتی اتصال Squid به پورت‌های خاص می‌تواند بسیار خطرناک باشد. به عنوان مثال می‌توان نشان داد که افراد می‌توانند از Squid به عنوان یک SMTP relay (پست الکترونیک) استفاده کنند. SMTP relayها یک راه مناسب برای ارسال هرزنامه می‌باشد. برای جلوگیری از این کار Squid درخواست‌هایی که دارای پورت ۲۵ در URL است را می‌بندد.­

سوال: نحوه‌ی فیلتر کردن پورت‌ها در Squid چگونه است ؟
پاسخ:

در حالت کلی برای فیلتر کردن پورت‌ها دو روش وجود دارد :

۱. به پورت‌های خاص اجازه دسترسی بدهیم و بقیه را ببندیم

۲. همه‌ی پورت‌ها را باز کنیم و پورت‌های خاصی را ببندیم

Squid از روش اول استفاده می‌کند و به صورت پیش‌فرض در فایل squid.conf به شکل زیر تعریف می‌شود:
 

acl Safe_ports 80 21 443 563 70 210 1025-65535
                                                                                                                                                       http_access deny !Safe_ports

پیکربندی بالا تمام درخواست‌هایی که دارای شماره پورتی غیر از شماره‌های لیست شده در بالا است، را رد می‌کند. این پیکربندی به پورت‌های استاندارد SSL, WLAS, FTP, HTTP, Gropher و تمام پورت‌های non-priveleged اجازه دسترسی می‌دهد.

مورد دیگر، بستن پورت‌های خطرناک است. لیست پورت‌های خطرناک باید مشابه زیر باشد:

acl Dangerous_ports 7 9 19 22 23 25 53 109 110 119
                                                                                                                                            http_access deny Dangerous_ports


سوال: آیا می‌توان NFS را از طریق پروتکل TCP/IP برقرار ساخت؟
پاسخ:

برای تمامی هسته‌های لینوکس پس از نسخه‌ی 2.4، NFS را می‌توان از طریق TCP/IP در سمت سرویس‌گیرنده برقرار ساخت.

در سمت سرویس‌دهنده، پشتیبانی از TCP در نسخه‌های بعد از نسخه هسته‌ی 2.4.19 برقرار شده است. بایستی توجه داشت که تمامی توزیع‌های لینوکس که مبتنی بر هسته‌ی 2.4 هستند، از برقراری NFS از طریق TCP در سمت سرویس‌دهنده پشتیبانی نمی‌کنند.
سوال: آیا می‌توان با پروتکل SMB به فایل‌ها و چاپگرهای موجود در ماشین دیگری که از سیستم‌ عامل متفاوت استفاده می‌کند، دسترسی داشت؟
پاسخ:

اگر سیستم عامل یکی از دو ماشین، ویندوز و سیستم عامل ماشین دیگر، لینوکس، یونیکس، ‌سولاریس و یا مکینتاش باشد و همراه آن‌ها نرم‌افزار Samba نصب و راه‌اندازی شده باشد، می‌توان به فایل و چاپگر موجود در ماشین دیگر دسترسی داشت.

(ارسال کننده: مهدی فتح الله زاده)


سوال: پروتکل NFS چیست؟
پاسخ:

NFS پروتکلی است که از طریق آن می­‌توان به فایل­‌ها، چاپگرها و سایر منابع پایدار شبکه که به اشتراک گذاشته ­شده­‌اند، دسترسی پیدا کرد. این پروتکل که برای اولین بار در سال 1983 توسط شرکت Sun ارائه شد، تا به­ حال تغییرات زیادی پیدا کرده است و آخرین نسخه آن نسخه شماره 4 می­‌باشد. این پروتکل بیشتر در سیستم­‌های عامل خانواده Unix کاربرد داشته و گسترش یافته است. در NFS عملیات دسترسی به فایل و ابزار مشترک با رد و بدل یک­ سری پیغام در هر دو سوی سرویس­‌دهنده و سرویس­‌گیرنده NFS صورت می­‌گیرد.

(ارسال کننده: احسان ضمیری)


سوال: پروتکل SMB چیست؟
پاسخ:

یکی از پروتکل‌های مرسوم که کاربرد اصلی آن انتقال فایل و استفاده از چاپگر در داخل شبکه است. توسط این پروتکل می‌توان منابعی که فایل‌ها را به اشتراک گذاشته‌اند و همچنین سرویس‌گیرنده‌ها را مدیریت کرد.

(ارسال کننده: مهدی فتح الله زاده)


سوال: چه پیاده‌سازی‌هایی از پروتکل SMB وجود دارد؟
پاسخ:

این پروتکل توسط دو نرم‌افزار رایج Samba و CIFS پیاده‌سازی شده‌است. CIFS در سیستم‌های عامل ویندوز مایکروسافت و نرم‌افزار Samba در سیستم‌های عامل لینوکس، یونیکس، سولاریس و مکینتاش پیاده‌سازی شده است.

(ارسال کننده: مهدی فتح الله زاده)


سوال: منظور از سطوح امنیتی در پروتکل SMB چیست؟
پاسخ:

منظور از سطوح امنیتی، روش اعمال سیاست‌های امنیتی بر روی ماشین و منابع به اشتراک گذاشته توسط آن است. اگر برای هر منبع اشتراکی، کاربر و سطح دسترسی تعیین کنیم،‌ در سطح امنیتی اشتراک قرار داریم. در سطح دیگر، اگر کاربری مجاز برای دسترسی به ماشین تعیین کنیم که بتواند با یک حقوق تعریف شده به تمام اشتراک‌ها دسترسی داشته باشد، در سطح امنیتی کاربر قرار داریم.

(ارسال کننده: مهدی فتح الله زاده)


سوال: Serv-U FTP Server دارای چه ویژگی‌هایی است؟
پاسخ:

Serv-U یک نرم‌افزار امن برای راه‌اندازی سرویس انتقال فایل است که امکان به اشتراک‌گذاری فایل‌ها از طریق اینترنت را فراهم می‌کند. این نرم‌افزار که روی سیستم‌ عامل ویندوز نصب می‌شود، از ویژگی‌های زیر برخوردار است:
۱) در دسترس قرار دادن فایل‌ها از طریق SFTP, HTTPS, HTTP
2) امکان مدیریت سرویس‌دهنده از طریق وب به صورت محلی یا راه دور
3) قابلیت ذخیره‌سازی کاربران و گروه‌ها در انواع پایگاه داده‌های ODBC
4) پشتیبانی از سیستم فایل مجازی
5) پشتیبانی از UTF-8
6) قابلیت استفاده با Active Directory
7) ...

(ارسال کننده: حامد مهدوی)


سوال: آیا ابزاری برای استفاده از روش قناری در لینوکس وجود دارد؟
پاسخ:

بلی، کامپایلر Stackguard توسط کریسپین کوان (CrispinCowan) ابداع و پیاده‌سازی شد، اولین ابزاری است که برای محافظت از پشته روش قناری را پیاده‌سازی کرده است. Stackguard اولین بار در سال 1997 میلادی منتشر شد و از سال 1998 تا سال 2003 میلادی به عنوان بخش استانداردی از توزیع لینوکس ایمیونیکس در دسترس بود. در سال 2003 میلادی پیشنهاد شد که Stackguard در gcc پیاده‌سازی شود.

(ارسال کننده: محبوبه دادخواه و مریم مهرنژاد)


سوال: آیا ابزاری برای استفاده از روش قناری در محصولات مایکروسافت وجود دارد؟
پاسخ:

بلی، کامپایلر Visual Studio.NET مایکروسافت از یک سوئیچ بررسی امنیت بافر (GS) برای محافظت از متغیرهای پشته در مقابل سرریزی بافر استفاده می‌کند. این سوئیچ که با نام پرچم آن شناخته می‌شود “GS” نام دارد و صحت آدرس بازگشت و دیگر متا داده‌های مهم پشته را تضمین می‌نماید. تمامی فایل‌های باینری از نسخه‌ی سرویس پک 2 ویندوز XP و سیستم ‌عامل ویندوز ویستا با نسخه‌های Visual Studio.NET که سوئیچ GS را پشتیبانی می‌کنند کامپایل شده‌است.

(ارسال کننده: محبوبه دادخواه و مریم مهرنژاد)


سوال: آیا روش ASLR پیاده‌سازی شده‌است؟
پاسخ:

بسیاری از سیستم‌های ‌عامل،‌ ASLR را پیاده‌سازی کرده‌اند. در سیستم عامل لینوکس، از نسخه‌ی کرنل 2.6.12، یک شکل ضعیف از ASLR به صورت پیش‌فرض فعال می‌باشد. مجموعه وصله‌های کرنلی لینوکس PaX و ExecShield پیاده‌سازی‌های کاملتری از ASLR را تهیه کرده‌اند. توزیع‌های مختلفی از لینوکس همانند Adamantix، Hardened Gentoo و Hardened Linux پیاده‌سازی ASLR توسط PaX را به صورت پیش‌فرض دارا می‌باشند. ASLR در محصولات مایکروسافت نیز به صورت پیش‌فرض عرضه شده ‌است.

(ارسال کننده: محبوبه دادخواه و مریم مهرنژاد)


سوال: آیا روشی برای جلوگیری از حملات سرریزی بافر وجود دارد؟
پاسخ:

بلی، روش‌های جلوگیری از حملات سرریزی بافر معمولا به دو دسته‌ی کلی تقسیم می‌شوند. روش‌های کرنلی و روش‌های کامپایلری.

(ارسال کننده: محبوبه دادخواه و مریم مهرنژاد)


سوال: انواع حملات سرريزي بافر کدامند؟
پاسخ:

مهمترين حملات سرريزي بافر عبارتند از:
- سرريزي بافر مبتني بر پشته
- سرريزي بافر مبتني بر هيپ
- سرريزي بافر off-by-one
- سرريزي بافر بازگشت به libc

(ارسال کننده: مریم مهرنژاد و محبوبه دادخواه)


سوال: انواع قناری در روش‌های کامپایلری جلوگیری از حملات سرریزی بافر چیست؟
پاسخ:

براي از بين بردن امکان جعل قناري انواع مختلفی برای آن پيشنهاد شده است که برخی از آن‌ها عبارتند از: قناري خاتمه‌دهنده (Terminator Canary)، قناري پوچ (Null Canary)، قناري تصادفي (Random Canary) و قناري XOR تصادفي (Random XOR Canary).

(ارسال کننده: محبوبه دادخواه و مریم مهرنژاد)


سوال: آيا مي‌توان با غيراجرايي کردن پشته‌ي برنامه از حملات سرريزي بافر جلوگيري کرد؟
پاسخ:

با غيراجرايي کردن پشته‌ي برنامه مي‌توان به طور قابل ملاحظه‌اي از حملات سرريزي بافر مبتني بر پشته جلوگيري کرد، اما انواع ديگري از حملات سرريزي بافر وجود دارند که از پشته‌ي برنامه براي حمله استفاده نمي‌کنند. حملات سرريزي بافر مبتني بر هيپ و بازگشت به کتابخانه از اين قبيل هستند.

(ارسال کننده: مریم مهرنژاد و محبوبه دادخواه)


سوال: حملات سرريزي بافر روي سيستم چه تاثيري مي‌گذارند؟
پاسخ:

بسته به نوع حمله و مسائل ديگر، نتيجه‌ي سرريز بافر مي‌تواند‌ يکي از موارد زير باشد:
- خراب شدن داده‌هاي ‌يک برنامه‌ي ديگر که منجر به خروجي اشتباه مي‌شود
- خراب شدن ساختار کنترل جريان برنامه و اتمام زود هنگام برنامه و توليد پيام‌هايي از قبيل Segmentation Violation
- خاموش شدن سيستمي‌‌که برنامه روي آن در حال اجرا است
- اجرا شدن کد مهاجم بر روي کامپيوتري که در حال اجراي برنامه‌ي آسيب‌پذير است

(ارسال کننده: مریم مهرنژاد و محبوبه دادخواه)


سوال: حمله‌ي سرريزي بافر بازگشت به کتابخانه چيست؟
پاسخ:

در حمله‌ي سرريزی بافر بازگشت به کتابخانه که بازگشت به libc يا return to libc نيز ناميده مي‌شود، مهاجم به جاي تزريق کد در پشته يا هيپ برنامه و بازنويسي آدرس برگشت به صورتي که به کد تزريق‌شده اشاره کند، آدرس برگشت را مستقيما با آدرس يک تابع کتابخانه‌اي جايگزين مي‌کند. يعني به طور مثال مهاجم با دانستن آدرس تابع ()system، آن را در محل آدرس برگشت تابع مي‌نويسد و با ارسال آرگومان مناسب مثل”bin/bash/”، يک shell را اجرا کرده و کنترل کامپيوتر قرباني را به دست مي‌گيرد.

(ارسال کننده: مریم مهرنژاد و محبوبه دادخواه)


سوال: روش‌های جلوگیری از حملات سرریزی بافر توسط کرنل چگونه است؟
پاسخ:

در روش‌های کرنلی از آنجا که کرنل سیستم عامل از روال داخلي کد اجرايي بي‌خبر است، تاثير آن تنها به تغييرات در محيط اجراي برنامه محدود مي‌گردد. در این روش معمولا از اعمال کنترل‌هاي دسترسي به حافظه و تصادفی‌سازی نقشه‌ي فضاي آدرس (ASLR) حافظه‌ي برنامه استفاده مي‌شود.

(ارسال کننده: محبوبه دادخواه و مریم مهرنژاد)


سوال: سرريزي بافر چيست؟
پاسخ:

سرريزي بافر زماني رخ مي‌دهد که ‌يک داده در بافري نوشته شود که اندازه‌ي آن کوچکتر از طول داده باشد. بافرها معمولا آرايه‌هاي کاراکتري مي‌باشند. سرريزي بافر عامل بيش از 70 درصد از آسيب‌پذيري‌هاي امنيتي موجود است.

(ارسال کننده: مریم مهرنژاد و محبوبه دادخواه)


سوال: قناري خاتمه‌دهنده در روش‌های کامپایلری جلوگیری از حملات سرریزی بافر چیست؟
پاسخ:

این قناری شامل نمادهاي خاتمه دهنده‌ي معمول براي توابع رشته‌اي کتابخانه‌‌ي استاندارد زبان C از قبیل 0 (پوچ)، CR ،LF و EOF مي‌باشد. مهاجم نمي‌تواند از کتابخانه‌ها و عبارات رشته‌اي متداول در زبان C براي اضافه کردن اين نماد‌ها در رشته‌ي سرريزي استفاده کند، زيرا توابع رشته‌ای هنگامی که به اين نمادها برسند متوقف مي‌شوند.

(ارسال کننده: محبوبه دادخواه و مریم مهرنژاد)


سوال: محافظت توسط سوئیچ GS در محصولات مایکروسافت چگونه عمل می‌کند؟
پاسخ:

هدف اصلی سوئیچ GS این است که خراب شدن آدرس بازگشت تابع که برروی پشته ذخیره شده‌است را شناسایی کرده و از ادامه‌ی اجرای آن جلوگیری کند. در سوئیچ GS از Visual Studio.NET هنگام آغاز هر تابع یک مقدار مشخص به نام کوکی (Cookie) در پشته درج می‌شود. مقدار کوکی از یک کوکی اصلی در سطح برنامه کپی شده و در پشته بین آدرس بازگشت تابع و فضای تخصیص داده شده برای پارامترها قرار می‌گیرد. Visual Studio.NET 2005 از تغییر نقشه‌ی قاب پشته نیز استفاده می‌کند. به این صورت که آرگومان‌های آسیب‌پذیر را شناسایی کرده و آن‌ها را پایین بافرهای محلی در پشته کپی می‌کند. پس از آن، تابع به‌جای آرگومان‌های اصلی از کپی آرگومان‌ها استفاده می‌نماید. این تکنیک به پنهان‌سازی پارامترها (Parameter Shadowing) معروف است.

(ارسال کننده: محبوبه دادخواه و مریم مهرنژاد)


سوال: مهاجمان چگونه آدرس‌هاي مورد نياز خود براي حمله (از قبيل آدرس شروع پشته و هيپ و آدرس توابع سيستمي) را به دست مي‌آورند؟
پاسخ:

مي‌توان با داشتن کد منبع برنامه‌ي آسيب‌پذير و اجراي مرحله به مرحله آن با استفاده از محيط زبان‌هاي برنامه‌نويسي از قبيل Visual Studio.NET و مشاهده‌ي محتواي رجيسترها و يا با داشتن فايل اجرايي برنامه (بدون داشتن کد منبع) با استفاده از برنامه‌های اشکال‌زدا از قبيل Ollydbg آدرس‌هاي مورد نياز را روي سيستم عامل مشخصي به دست آورد.

(ارسال کننده: مریم مهرنژاد و محبوبه دادخواه)


سوال: آیا می‌توان از SSH برای اتصال امن دو زیرشبکه در اینترنت استفاده کرد؟
پاسخ: برای این منظور می‌توان PPP را روی یک اتصال SSH اجرا کرد. اما این عمل ممکن است برای اتصالات TCP مشکل ایجاد کند، به خاطر این که هم اتصال TCP که SSH روی آن اجرا می‌شود و هم اتصال TCP که روی تونل PPP/SSH اجرا می‌شود، ممکن است در یک زمان دوبار مخابره کند. در این مورد بهتر است از تونل‌زنی IP از طریق UDP استفاده نمود. یک پیاده‌سازی ممکن از این عمل در آدرس http://www.inka.de/~bigred/devel/cipe.html وجود دارد.


سوال: آیا می‌توان از SSH برای ارسال امن سرویس‌های مبتنی بر UDP (از قبیل NFS و NIS) استفاده کرد؟
پاسخ: یک راه‌حل عمومی برای سرویس‌های مبتنی بر RPC (از قبیل NIS) وجود دارد. شما برای NIS می‌توانید به آدرس ftp://ftp.tu-chemnitz.de/pub/Local/informatik/sec_rpc/ مراجعه کنید.  اصولا این عمل ممکن است برای NFS تطبیق پیدا کند، در حالی که هنوز انجام نشده است. سرویس‌هایی که صرفا بر پایه UDP هستند (از قبیل DNS)، هنوز با SSH امن نشده‌اند.

سوال: آیا رمزگذاری با کارآیی SSH رابطه دارد؟
پاسخ: به خاطر دلایل امنیتی بایستی رمزگذاری SSH را در حالت فعال نگه دارید. امروزه پردازنده‌ها آن قدر سریع هستند که فعال‌سازی رمزگذاری تنها در شبکه‌های پرسرعت باعث کاهش کارآیی SSH می‌شود.

سوال: SSH از چه نوع حمله‌هایی جلوگیری می‌کند؟
پاسخ: SSH مانع از حمله‌های زیر می‌شود:
- IP Spoofing که در آن مهاجم بسته‌هایی را ارسال می‌کند و چنین وانمود می‌کند که این بسته‌ها از یک میزبان مورد اعتماد ارسال شده‌اند. SSH حتی در شبکه‌های محلی نیز مانع از این نوع حمله می‌شود.
- DNS Spoofing که درآن مهاجم رکوردهای سرویس‌دهنده‌ی نام را جعل می‌کند.
- استراق سمع کلمه عبور و سایر داده‌هایی که توسط میزبان‌های میانی انجام می‌گیرد.
- دستکاری داده‌ها به وسیله افرادی که میزبان‌های میانی را کنترل می‌کنند.
به عبارت دیگر، SSH هرگز به شبکه اعتماد نمی‌کند. اگر شخصی که به شبکه مسلط است، بخواهد دشمنی کند، فقط قادر خواهد بود که ارتباط SSH را قطع کند. اگر در SSH از رمزگذاری استفاده شود، کسی نمی‌تواند ترافیک را رمزگشایی کرده یا اتصالی را برباید.

سوال: آیا SSH از سرویس‌هایی نظیر FTP و POP محافظت می‌کند؟
پاسخ:

اگر شما بخواهید از ارسال کلمات عبور FTP به صورت متن واضح روی شبکه جلوگیری کنید، می‌توانید از SSH ‌برای رمزگذاری مسیر فرمان استفاده کنید. این عمل هنوز مسیر داده‌ها را برای انواع حمله‌ها روی TCP باز می‌گذارد و از میان دیواره آتش کار نخواهد کرد.
Stephane Bortzmeyer برای POP یک اسکریپت نوشته است که با استفاده از SSH از انتقال نامه‌های الکترونیکی و کلمات عبور محافظت می‌کند، در حالی که نیازی به هیچ‌گونه تغییراتی روی سرویس‌دهندگان و متقاضی‌های POP موجود ندارد. این اسکریپت در آدرس ftp://ftp.pasteur.fr/pub/Network/gwpop/ قرار داد. سایر سرویس‌ها به روش‌های مشابه می‌توانند امن شوند. توجه کنید که اتصالات داده‌ای رمز نشده FTP همچنان نسبت به حملات ربودن نشست و دزدی اطلاعات آسیب‌پذیر هستند.

(ارسال کننده: حامد مهدوی)



سوال: چرا در SSH گاهی اوقات X11 Forwarding و یا Agent Forwarding کار نمی‌کند؟
پاسخ:

فایل‌های ssh_config و sshd_config را بررسی کنید. پیش‌فرض پیکربندی فایل‌ها برای X11 Forwarding و Agent Forwarding غیرفعال است. برای فعال نمودن آن، خط زیر  را در فایل sshd_config قرار دهید:
X11Forwarding yes
و خطوط زیر را در فایل ssh_config قرار دهید:
ForwardAgent yes
ForwardX11 yes

(ارسال کننده: حامد مهدوی)


سوال: کلید‌ عمومی داخل فایل authorized_keys کپی شده است، اما احراز هویت با روش کلید‌ عمومی هنوز کار نمی‌کند؟
پاسخ:

مجوزهای فایل روی HOMEو HOME/.ssh و HOME/.ssh/authorized_keys این مشکل را به وجود آورده است. این مساله با اجرای دستورات زیر روی سرویس‌دهنده حل می‌شود:
 chmod go-w HOME HOME/.ssh
 chmod 600 HOME/.ssh/authorized_keys
اگر اجرای این دستورات به علت برخی دلایل ممکن نبود، راه حل جایگزین این است که در فایل  sshd_config خط StrictModes no را تنظیم کنید. اگرچه این عمل توصیه نمی‌شود.

(ارسال کننده: حامد مهدوی)


صفحه اصلی | تماس با ما | معرفی آزمایشگاه | ورود
©2017 Ferdowsi University Of Mashhad
مرکز آپا | آپا | آپا چیست