امنیت ویپ، یک موضوع بسیار گسترده و و مهم می باشد و می توان برای آن تعاریف مختلفی ارائه کرد؛ به طوری که هیچ یک از این تعاریف قطعی و ثابت نخواهند بود، چراکه امنیت در ارتباط با مسائلی است که هر روز در حال تغییر و تحول می باشند. البته در اینجا امنیت در سیستم های تلفنی مطرح می باشد.برای کسب اطلاعات بیشتر در مورد سیستم های تلفنی مبتنی بر VoIP می توانید به مقاله زیر مراجعه کنید.
امنیت تنها از بین بردن مشکلات یک المان مشخص نیست، بلکه مجموعه ای از ابزارها و فرآیندها می باشد؛ به عبارت دیگر امنیت همچون زنجیری است که اگر یکی از حلقه های آن ضعیف باشد، آن زنجیر به سادگی از هم گسیخته خواهد شد.
هدف از این مقاله برقراری 100% امنیت در سیستم شما نیست، بلکه تنها برخی مسائل مهم و پایه ای و ابزارهای مرتبط با آن مورد بررسی قرار گرفته اند. از آنجایی که هر سیستم تعاریف و طراحی مختص به خود را دارد، هیچ مستندی نمی تواند به شما این تضمین را بدهد که امنیت کامل در سیستم شما برقرار می گردد.
نکته ی قابل توجه دیگر این است که برقراری امنیت از یک تابع نمایی پیروی می کند. به عبارت دیگر ممکن است تا حدود 60 درصد امنیت سیستم خود را با انجام برخی تنظیمات و تعریف سیاست های امنیتی، برقرار کنید، بدون اینکه نیاز به تجهیزات سخت افزاری خاصی داشته باشید. اما برای آنکه این میزان را به 95 درصد افزایش دهید، باید از تجهیزات خاصی استفاده نمایید که برای شما هزینه خواهد داشت و اگر بخواهید این میزان را به 99 درصد برسانید، هزینه ها به شدت افزایش خواهد یافت. نکته ی مهم دیگر این است که هیچگاه به امنیت 100 درصد دست نخواهید یافت.
با توجه به گزارشات اخیر مبنی بر حمله به سیستم های تلفنی ویپ، مقاله ای در مورد امنیت VoIP برای شما علاقمندان به این حوزه تهیه شده که در آن به بررسی آسیب پذیری ها، روش ها و ابزارهای مقابله با این تهدیدات امنیتی بر روی سیستم های تلفنی پرداخته و در آخر یک راه حل برای افزایش امنیت تا حدود 95 درصد ارائه می شود.
سیستم های تلفنی
در این مقاله سعی شده است تا راهکار های ارائه شده، قابل استفاده برای اکثر سیستم های تلفنی مبتنی بر IP باشد، اما به دلیل رایج بودن سیستم های تلفنی مبتنی بر نرم افزار های متن باز همچون Asterisk و FreeSwitch، سیستم استریسک در مثال ها بکارگرفته شده است.
لایه های امنیتی
برقراری امنیت دارای لایه های مختلف می باشد؛ به عبارت دیگر در جهت امن سازی یک سیستم، باید سطوح مختلفی از امنیت را پیاده سازی کرد. لایه هایی شامل فایروال ، احراز هویت و مانیتورینگ از جمله آن می باشد. این معماری ساده ترین سطوح امنیتی را پوشش می دهد، به طوری که با پیاده سازی درست این لایه ها و تکنیک های مناسب و مرتبط با آن ها، می توان امنیت سیستم را به صورت قابل توجهی بهبود بخشید. چه بسا همانطور که در مقدمه اشاره شد، برای افزایش سطح امنیت، تعداد لایه ها و نوع ابزارهای مرتبط با هر لایه، تغییر خواهد کرد.
حملات داخلی و یا خارجی
یکی دیگر از مسائل مهم که کمتر به آن توجه می شود، منشا تهدیدات امنیتی است. معمولا تصور می شود که حملات تنها منشا اینترنتی و خارجی دارند، این در صورتی است که تهدیدات امنیتی داخلی نادیده گرفته می شوند؛ در حالی که از داخل، دسترسی به منابع سیستم راحت تر بوده و بسیاری از فیلترهای امنیتی وجود نخواهد داشت.
یکی از رایج ترین جمله هایی که شنیده می شود این است که "کارمندان دانش کافی برای نفوذ به سیستم را ندارند"؛ در حالی که نصب یک بدافزار با قابلیت ذخیره سازی نام کاربری و رمز عبور مربوط به تلفن ها، توسط کارمندی که از داخل به سیستم دسترسی دارد، امنیت سیستم تلفنی را به شدت تهدید کرده و امکان نفوذ به سیستم را از بیرون افزایش میدهد. بر این اساس، باید امنیت سیستم را از داخل و خارج شبکه مورد توجه قرار داد و همه ی سیاست های امنیتی را بر روی هر دو دامنه اعمال کرد.
انواع حملات بر روی سیستم های تلفنی
حملات و نفوذهای صورت گرفته بر روی سرور های تلفنی معمولا دو هدف را دنبال می کنند:
1 - سرقت خطوط تلفنی شهری و یا ترانک ها.
2 - آسیب رساندن به سیستم تلفنی و ایجاد توقف در سرویس دهی.
در حملات نوع اول که متاسفانه در کشور ما بسیار رایج است، نفوذگر از خطوط ارتباطی سیستم تلفنی براری برقراری تماس های تلفنی خارجی که پرهزینه هستند، استفاده می کند. به عبارت دیگر از طریق سیستم تلفنی هدف، با دو نقطه مختلف تماس برقرار می گردد و سپس این دو تماس را به هم متصل می کنند و از این طریق از خطوط تلفنی، سوء استفاده می گردد. حملات رایج برای این منظور عبارتند از:SIP Registration Scan attack، Dictionary attack، Brute Force.در روش دوم، هدف اصلی به خطر انداختن یک کسب و کار و ایجاد اختلال در ارتباطات تلفنی آن هاست، که معمولا کارمندان ناراضی و یا رقبا اقدام به این کار می کنند. حملاتی همچون SIP Scan، Port Scan، SSH Brute Force، DoS و DDoS برای این منظور مورد استفاده قرار می گیرند.
حملات و تهدیدات امنیتی سیستم های تلفنی به این دو روش ختم نمی شوند؛ به عنوان نمونه ممکن است نفوذ با هدف سرقت اطلاعات تماس و یا اطلاعات کاربران یک سیستم تلفنی، و یا دست یابی به زیرساخت شبکه باشد.
همانطور که در مقدمه گفته شد برای جلوگیری از انواع این تهدیدات و رسیدن به 99 درصد امنیت، تجهیزات سخت افزاری و نرم افزاری خاصی مورد نیاز است؛ در نتیجه در ادامه به بررسی راه حل هایی می پردازیم که احتمال بروز حملات رایج را کاهش می دهد.
آسیب پذیری های امنیتی سیستم های تلفنی مبتنی بر VoIP
رمزعبور
رمزهای عبور و یا به اصطلاح Secret در دنیای VoIP، یکی از مهم ترین آسیب پذیری های سیستم های تلفنی می باشد. به طوری که یک نفوذگر با یافتن یک نام کاربری و رمز عبور آن می تواند از طریق سیستم تلفنی شما تماس رایگان برقرار کند. در نتیجه، در صورت اصلاح رمزهای عبور، به میزان قابل توجهی امنیت سیستم تلفنی افزایش خواهد یافت.
معمولا کاربران از رمزهای عبور ساده برای تست سیستم استفاده می کنند و بدون بررسی سیستم از لحاظ امنیتی، آن را زیر بار می برند؛ و رمزهای عبور ساده و قابل تشخیص، به عنوان یک حفره امنیتی در سیستم باقی می مانند.
اهمیت رمزهای عبور برای هر داخلی (Extension) زمانی که کاربران راه دور و بیرونی داشته باشید، مشخص می گردد. چرا که در این صورت با یافتن رمزعبور به راحتی می توان از سیستم تلفنی سوء استفاده شود.
یکی دیگر از اشتباهات رایج تشابه رمز عبور با شماره داخلی و استفاده از رمزهای عبور پیش فرض می باشد. به عنوان نمونه داخلی 201 با رمز عبور 201؛ این رمز عبور مانند این است که کاربر رمز عبوری ندارد.
رمزهای عبور باید ساختار مناسبی از لحاظ تعداد کاراکترها و نوع آن ها داشته باشند. به عنوان مثال رشته 55178 را در نظر بگیرید. این رمز عبور ضعیف است، چرا که ابزار های نفوذ خیلی ابتدایی هم می توانند با چندین مرتبه تست آن را پیدا کنند. یا رشته test123 نیز به همین صورت قابل تشخیص خواهد بود. برخی الگوهای رایج و بسیار ساده که در دقایق اول به وسیله ابزارهای نفوذ، شکسته می شوند در سال 2014 به صورت زیر لیست شده اند:
اما رشته SE55na8tE از لحاظ تعداد کاراکتر و ترکیب حروف و اعداد دارای ساختار مناسبی می باشد. البته رمزهای عبور این چنینی بسیار سخت به خاطر سپرده می شوند، به همین دلیل به نگهداری نیاز دارند.
شاید جالب باشد بدانید در صورتی که مکانیزمی برای بلاک کردن در سیستم وجود نداشته باشد، یک بد افزار می تواند حدود 30 تا 40 درخواست رجیستر در ثانیه، بر روی یک خط ADSL با پهنای باند 1Mbps، ارسال کند؛ که بر این اساس می تواند در طول چند ساعت یک لغت نامه را به صورت کامل تست کند. (Dictionary Attack)
در بسیاری از موارد که سیستم تلفنی مورد حمله قرار گرفته است، حجم پیام های ارسالی به حدی بالا بوده است که کل شبکه نیز مختل شده است و یا کیفیت سایر مکالمات تلفنی به شدت تحت تاثیر قرار گرفته است.
به عنوان نکته ی آخر مرتبط با رمزهای عبور، باید به این نکته توجه داشت که رمز عبور تنها مربوط به داخلی ها نیست بلکه در تعریف ترانک ها میان سیستم های تلفنی و یا گیت وی های VoIP نیز باید نکات امنیتی ذکر شده، رعایت شوند.
برای کسب اطلاعات بیشتر در مورد گیت وی VoIP می توانید به مقاله زیر مراجعه کنید.
گیت وی VoIP و کاربردهای آن
غیر فعال کردن قابلیت ها و یا ماژول های بدون استفاده
یکی دیگر از اقداماتی که باید در حین راه اندازی سیستم های تلفنی مورد توجه قرار گیرد، غیرفعال کردن امکانات و یا ماژول هایی است که در حال حاضر از آن ها استفاده نمی شود یا به نحوی برای عملکرد اصلی سیستم، الزامی نیستند. چرا که بسیاری از این قابلیت ها نوعی درگاه ورود به سیستم محسوب می گردند و یا نفوذگر از طریق آن ها، می تواند از سیستم سوء استفاده کند.
به عنوان مثال در سیستم استریسک، باید ماژول pbx_spool را در صورتی که از آن استفاده نمی شود، غیر فعال کرد. این ماژول امکان شماره گیری لیستی از شماره تلفن ها را فراهم می کند که ابزاری بسیار مناسب برای نفوذگران می باشد.
غیر فعال کردن و یا تغییر در تنظیمات پیش فرض
علاوه بر این که توصیه می شود رمزهای عبور پیش فرض مورد استفاده قرار نگیرند، باید تنظیمات و تعاریف پیش فرض نیز تغییر کنند و یا غیر فعال شوند. چرا که اگر نفوذگر با ساختار سیستم شما آشنایی داشته باشد، از این مقادیر و تعاریف پیش فرض به راحتی به منظور رخنه به سیستم تلفنی بهره خواهد برد.
VoIP-Security Default پیش فرض
به عنوان مثال در سیستم استریسک، باید Context پیش فرض را غیر فعال کنید. به این صورت که معمولا داخل این Context عملی صورت نمی گیرد و کاملا خالی است.
حذف برخی اطلاعات از بدنه پیام های ارسالی
پیام های مربوط به پروتکل های SIP در بدنه ی خود اطلاعاتی دارند که برخی از آن ها می تواند اطلاعات مورد نیاز نفوذگران را در اختیارشان قرار دهد؛ در نتیجه توصیه می گردد تا این اطلاعات با مقادیر بی اهمیت جایگزین گردند. در حالت کلی، باید از انتشار هر گونه اطلاعاتی که ساختار و توپولوژی شبکه VoIP را نمایان می کند، جلوگیری گردد که اصطلاحا گفته می شود باید Topology hiding صورت گیرد.
به عنوان مثال در بدنه پیام های پروتکل SIP فیلدی به نام ":Server"وجود دارد که در سیستم های تلفنی به صورت پیش فرض حاوی برند و مدل دستگاه و یا نرم افزار می باشد؛ و از این طریق نفوذگر تشخیص می دهد که با چه سیستمی و چه نسخه و یا چه مدلی مواجه است.
در سیستم های تلفنی مبتنی بر استریسک این فیلدها را می توانید در sip.conf مقدار دهی کنید:
تعاریف مشخص برای ترافیک های ورودی و خروجی
در سیستم های تلفنی باید به ازای تماس های ورودی و خروجی رول های مشخصی تعریف می گردد و مسیر ورودی و خروجی به درستی از هم تفکیک گردد. به طوری که ترافیک های ورودی تنها در صورت نیاز و پس از تشخیص سیستم بتوانند به بخش خروجی دسترسی داشته باشند.
تماس های ورودی خروجی ویپ
در برخی از موارد شناسایی شده، نفوذگر از طریق مسیر ورودی توانسته است به مسیر خروجی دست یابد و از منابع خروجی سیستم برای اهداف شوم خود استفاده نماید.
یکی دیگر از سیاست های مهم برای ترافیک خروجی، جلوگیری از برقراری تماس های بین المللی می باشد و در صورت نیاز تنها باید برای کاربران خاص این امکان فراهم گردد.
در سیستم های تلفنی مبتنی بر استریسک، می توان دو Context مجزا برای تماس های ورودی و خروجی تعریف کرد، به طوری که نفوذگر در صورت ورود به Context ورودی نتواند به Context خروجی دست یابد.
رد درخواست های SIP دریافتی از منبع ناشناس
یکی از روش های مهم به منظور محافظت سیستم تلفنی در برابر حملات SIP Scan، عدم پذیرش درخواست های SIP با منبع ناشناس (Anonymous) می باشد.
امنیت ویپ ناشناس
برخی از بدافزار ها با یافتن سیستم تلفنی شروع به ارسال درخواست های SIP به آن کرده و سعی می کنند با بررسی الگوهای مختلف، راه نفوذ به سیستم را بیابند. با رد این درخواست ها می توان از اینگونه حملات جلوگیری کرد.
علاوه بر این در سیستم های تلفنی نباید برای اشتباه بودن رمزعبور و یا عدم وجود نام کاربر، Response code های مختص به آن ها را ارسال کرد؛ این کار باعث می گردد تا نفوذگر با آگاهی بیشتری درخواست های خود را ارسال نماید. به عنوان مثال در صورتی که نفوذگر با یک نام کاربری و رمز عبور فرضی درخواست های خود را به سیستم ارسال نماید، در صورتی که سیستم Response code مربوط به عدم وجود کاربری را در پاسخ ارسال نماید، نفوذگر متوجه می شود که باید یک نام کاربری دیگر را امتحان کند. اما در صورتی که سیستم تلفنی تنها در پاسخ خود عدم صحت در اطلاعات مورد نیاز جهت احراز هویت را ارسال نماید، نفوذگر نمی داند نام کاربری اشتباه است و یا رمز عبور. این کار نفوذگر را به چالش خواهد کشید.
در سیستم های تلفنی مبتنی بر استریسک، می توانید تنظیمات فوق را در sip.conf ، به صورت زیر انجام دهید:
محدود کردن آدرس های IP مجاز برای داخلی ها
یکی از ساده ترین روش هایی که می توان از رجیستر شدن کاربران به صورت غیرمجاز جلوگیری کرد، ایجاد محدودیت بر روی آدرس IP مجاز برای رجیستر شدن می باشد. به عبارت دیگر برای یک داخلی که از یک آدرس ایستا و یا رنج آدرس مشخصی استفاده می کند، نباید مجوز رجیستر شدن از روی اینترنت داده شود؛ و تنها به داخلی هایی که این امکان را نیاز دارند، مجوز داده شود تا از روی اینترنت رجیستر شوند.
در سیستم های مبتنی بر استریسک می توان به صورت زیر در تنظیمات هر داخلی این قابلیت را فعال کرد:
تغییر پورت های پیش فرض
نفوذگران از ابزارهای مختلفی برای یافتن سیستم هدف استفاده می کنند که رایج ترین روش مورد استفاده در این ابزارها، اسکن پورت های پیش فرض پروتکل های VoIP همچون پورت 5060 برای پروتکل SIP می باشد. ابزار اسکن، هر سیستمی را که بر روی این پورت گوش می دهد را در اختیار نفوذگر قرار می دهد و پس از شناسایی سیستم هدف توسط نفوذگر، حمله صورت می پذیرد.
بر این اساس، ساده ترین راه برای در امان ماندن از ابزار های اسکن، تغییر پورت های پیش فرض سیستم با شماره های ناشناس می باشد. علاوه بر این می توان تنظیمات Port Forwarding را بر روی روتر اینترنت فعال کرد. به عبارت دیگر درخواست های ارسالی به یک پورت ناشناس بر روی روتر به سمت سیستم تلفنی با پورت پیش فرض فرستاده می شود.
آسیب پذیری سیستم های مرتبط با شبکه VoIP
علاوه بر این موارد که مختص به سیستم های تلفنی مبتنی بر IP می باشند، برخی آسیب پذیری های موجود در ساختار یک شبکه VoIP و یا حتی سرور میزبان سیستم تلفنی، امکان نفوذ به سیستم را فراهم می کند. در این بخش به برخی از این آسیب پذیری ها می پردازیم.
فیلتر کردن ترافیک های ورودی
مهم ترین المان مورد نیاز برای شبکه های IP از جمله VoIP، فایروال ها می باشند. فایروال با فیلتر کردن ترافیک های ورودی / خروجی، آدرس های IP و پورت ها، و به صورت کلی با ایجاد یک مانع بر سر راه ترافیک های ورودی، مانع از بروز بسیاری از حملات می گردد.
در شبکه های بزرگ و حساس معمولا تجهیزات مستقل به عنوان فایروال شبکه، مورد استفاده قرار می گیرند این در صورتی است که در شبکه های کوچک به امکانات فایروال بر روی روترها بسنده می شود. بسیاری از سیستم های تلفنی دارای فایروال درونی می باشند که کمتر مورد استفاده قرار می گیرند و فایروال-روتر های شبکه جایگزین آن ها می گردند. به صورت کلی پیشنهاد می گردد که هر دو فایروال مورد استفاده قرار گیرند چرا که در فایروال سیستم های تلفنی، ترافیک های مرتبط به آن را بیشتر می توان تحت کنترل قرار داد.
فایروال-روترها قابلیت های زیر را برای شما فراهم می کند:
NAT : یکی از قابلیت های مهم برای استفاده از سرویس های تلفنی در محیط خارجی می باشد و به شما این امکان را می دهد تا بدون اینکه سیستم تلفنی را در محیط اینترنت قرار دهید، به آن متصل شوید.
Port forwarding
VPN
محدود کردن آدرس های مجاز ورودی
محدود کردن پورت های مورد استفاده
فیلترینگ پروتکل های انتقال (UDP/TCP)
امنیت ویپ NAT
مهم ترین نکته در خصوص فایروال های شبکه این است که به دلیل عدم توانایی در آنالیز بخش دیتای بسته ها، قادر به شناسایی پروتکل های VoIP نبوده و تنها بخش IP بسته های دریافتی را می توانند فیلتر کنند. این کاستی باعث می شود تا حملات مرتبط با پروتکل های VoIP در صورتی که در سرآیند IP آن ها محدودیت امنیتی وجود نداشته باشد، به شبکه وارد شوند.
در سیستم های تلفنی، استفاده از NAT، Port forwarding، تغییر پورت پیش فرض، جلوگیری از ورود ترافیک با منبع ناشناس، غیرفعال کردن Ping، محدود کردن پورت های مربوط به پروتکل RTP و اتصال کاربران راه دور از طریق VPN به سیستم، راه حل های مناسبی برای جلوگیری از نفوذ می باشند.
محدود کردن دسترسی ها بر روی سرور میزبان
یکی از مشکلات امنیتی مهمی که در سرور میزبان سیستم تلفنی نادیده گرفته می شود، اعمال مجوز های درست به کاربران و محدود کردن دسترسی ها می باشد. به عبارت ساده تر هرکسی تنها به هر چیزی که نیاز دارد، باید دسترسی داشته باشد.
فرض کنید بر روی سیستم تلفنی، سرویس FTP را راه اندازی کرده اید؛ در صورتی که مجوز ها به درستی داده نشود، فایل های سیستم به راحتی در دسترس خواهند بود و نفوذگر می تواند بدافزار های مورد نیاز خود را بر روی سرور نصب کند. نکته ی مهم دیگر این است که امکان نصب نرم افزار بر روی سرور، تنها باید در اختیار مدیر سیستم باشد و تنها از طریق مدیر سیستم بتوان در آن تغییر ایجاد کرد.
از دیگر آسیب پذیری های امنیتی سیستم های تلفنی مبتنی بر VoIP، نرم افزار های تحت وب مرتبط می باشد، چرا که عمدتا نفوذگران از طریق http راحت تر می توانند به سیستم نفوذ کنند. بنابراین توصیه می گردد که دسترسی به نرم افزارهای وب برای کاربران خارجی غیرفعال گردد و تنها از طریق VPN و یا tunneling SSH در دسترس قرار گیرند.
آسیب پذیری دیگر، فعال بودن کاربر root در سیستم می باشد. نفوذگران معمولا به دنبال یافتن رمزعبور کاربر root می باشند که با یافتن آن می توانند به راحتی سیستم را در اختیار بگیرند. بهترین راه حل برای رفع این رخنه، غیر فعال کردن کاربر root و ایجاد یک کاربر با نام کاربری متفاوت اما با دسترسی های مشابه root می باشد.
یکی دیگر از پروتکل هایی که در سرور های تلفنی باید محدود شوند و یا امکان آن غیر فعال گردد، SSH می باشد. این پروتکل باید در فایروال و سیستم تلفنی محدود گردد و تنها به آدرس IP مشخص و کاربر مشخص مجوز آن داده شود. همچنین پیشنهاد می گردد که پورت پیش فرض آن از 22 به مقدار دیگر تغییر داده شود.
نویسنده : مهندس سهیل تهرانی پور
امنیت تنها از بین بردن مشکلات یک المان مشخص نیست، بلکه مجموعه ای از ابزارها و فرآیندها می باشد؛ به عبارت دیگر امنیت همچون زنجیری است که اگر یکی از حلقه های آن ضعیف باشد، آن زنجیر به سادگی از هم گسیخته خواهد شد.
هدف از این مقاله برقراری 100% امنیت در سیستم شما نیست، بلکه تنها برخی مسائل مهم و پایه ای و ابزارهای مرتبط با آن مورد بررسی قرار گرفته اند. از آنجایی که هر سیستم تعاریف و طراحی مختص به خود را دارد، هیچ مستندی نمی تواند به شما این تضمین را بدهد که امنیت کامل در سیستم شما برقرار می گردد.
نکته ی قابل توجه دیگر این است که برقراری امنیت از یک تابع نمایی پیروی می کند. به عبارت دیگر ممکن است تا حدود 60 درصد امنیت سیستم خود را با انجام برخی تنظیمات و تعریف سیاست های امنیتی، برقرار کنید، بدون اینکه نیاز به تجهیزات سخت افزاری خاصی داشته باشید. اما برای آنکه این میزان را به 95 درصد افزایش دهید، باید از تجهیزات خاصی استفاده نمایید که برای شما هزینه خواهد داشت و اگر بخواهید این میزان را به 99 درصد برسانید، هزینه ها به شدت افزایش خواهد یافت. نکته ی مهم دیگر این است که هیچگاه به امنیت 100 درصد دست نخواهید یافت.
با توجه به گزارشات اخیر مبنی بر حمله به سیستم های تلفنی ویپ، مقاله ای در مورد امنیت VoIP برای شما علاقمندان به این حوزه تهیه شده که در آن به بررسی آسیب پذیری ها، روش ها و ابزارهای مقابله با این تهدیدات امنیتی بر روی سیستم های تلفنی پرداخته و در آخر یک راه حل برای افزایش امنیت تا حدود 95 درصد ارائه می شود.
سیستم های تلفنی
در این مقاله سعی شده است تا راهکار های ارائه شده، قابل استفاده برای اکثر سیستم های تلفنی مبتنی بر IP باشد، اما به دلیل رایج بودن سیستم های تلفنی مبتنی بر نرم افزار های متن باز همچون Asterisk و FreeSwitch، سیستم استریسک در مثال ها بکارگرفته شده است.
لایه های امنیتی
برقراری امنیت دارای لایه های مختلف می باشد؛ به عبارت دیگر در جهت امن سازی یک سیستم، باید سطوح مختلفی از امنیت را پیاده سازی کرد. لایه هایی شامل فایروال ، احراز هویت و مانیتورینگ از جمله آن می باشد. این معماری ساده ترین سطوح امنیتی را پوشش می دهد، به طوری که با پیاده سازی درست این لایه ها و تکنیک های مناسب و مرتبط با آن ها، می توان امنیت سیستم را به صورت قابل توجهی بهبود بخشید. چه بسا همانطور که در مقدمه اشاره شد، برای افزایش سطح امنیت، تعداد لایه ها و نوع ابزارهای مرتبط با هر لایه، تغییر خواهد کرد.
حملات داخلی و یا خارجی
یکی دیگر از مسائل مهم که کمتر به آن توجه می شود، منشا تهدیدات امنیتی است. معمولا تصور می شود که حملات تنها منشا اینترنتی و خارجی دارند، این در صورتی است که تهدیدات امنیتی داخلی نادیده گرفته می شوند؛ در حالی که از داخل، دسترسی به منابع سیستم راحت تر بوده و بسیاری از فیلترهای امنیتی وجود نخواهد داشت.
یکی از رایج ترین جمله هایی که شنیده می شود این است که "کارمندان دانش کافی برای نفوذ به سیستم را ندارند"؛ در حالی که نصب یک بدافزار با قابلیت ذخیره سازی نام کاربری و رمز عبور مربوط به تلفن ها، توسط کارمندی که از داخل به سیستم دسترسی دارد، امنیت سیستم تلفنی را به شدت تهدید کرده و امکان نفوذ به سیستم را از بیرون افزایش میدهد. بر این اساس، باید امنیت سیستم را از داخل و خارج شبکه مورد توجه قرار داد و همه ی سیاست های امنیتی را بر روی هر دو دامنه اعمال کرد.
انواع حملات بر روی سیستم های تلفنی
حملات و نفوذهای صورت گرفته بر روی سرور های تلفنی معمولا دو هدف را دنبال می کنند:
1 - سرقت خطوط تلفنی شهری و یا ترانک ها.
2 - آسیب رساندن به سیستم تلفنی و ایجاد توقف در سرویس دهی.
در حملات نوع اول که متاسفانه در کشور ما بسیار رایج است، نفوذگر از خطوط ارتباطی سیستم تلفنی براری برقراری تماس های تلفنی خارجی که پرهزینه هستند، استفاده می کند. به عبارت دیگر از طریق سیستم تلفنی هدف، با دو نقطه مختلف تماس برقرار می گردد و سپس این دو تماس را به هم متصل می کنند و از این طریق از خطوط تلفنی، سوء استفاده می گردد. حملات رایج برای این منظور عبارتند از:SIP Registration Scan attack، Dictionary attack، Brute Force.در روش دوم، هدف اصلی به خطر انداختن یک کسب و کار و ایجاد اختلال در ارتباطات تلفنی آن هاست، که معمولا کارمندان ناراضی و یا رقبا اقدام به این کار می کنند. حملاتی همچون SIP Scan، Port Scan، SSH Brute Force، DoS و DDoS برای این منظور مورد استفاده قرار می گیرند.
حملات و تهدیدات امنیتی سیستم های تلفنی به این دو روش ختم نمی شوند؛ به عنوان نمونه ممکن است نفوذ با هدف سرقت اطلاعات تماس و یا اطلاعات کاربران یک سیستم تلفنی، و یا دست یابی به زیرساخت شبکه باشد.
همانطور که در مقدمه گفته شد برای جلوگیری از انواع این تهدیدات و رسیدن به 99 درصد امنیت، تجهیزات سخت افزاری و نرم افزاری خاصی مورد نیاز است؛ در نتیجه در ادامه به بررسی راه حل هایی می پردازیم که احتمال بروز حملات رایج را کاهش می دهد.
آسیب پذیری های امنیتی سیستم های تلفنی مبتنی بر VoIP
رمزعبور
رمزهای عبور و یا به اصطلاح Secret در دنیای VoIP، یکی از مهم ترین آسیب پذیری های سیستم های تلفنی می باشد. به طوری که یک نفوذگر با یافتن یک نام کاربری و رمز عبور آن می تواند از طریق سیستم تلفنی شما تماس رایگان برقرار کند. در نتیجه، در صورت اصلاح رمزهای عبور، به میزان قابل توجهی امنیت سیستم تلفنی افزایش خواهد یافت.
معمولا کاربران از رمزهای عبور ساده برای تست سیستم استفاده می کنند و بدون بررسی سیستم از لحاظ امنیتی، آن را زیر بار می برند؛ و رمزهای عبور ساده و قابل تشخیص، به عنوان یک حفره امنیتی در سیستم باقی می مانند.
اهمیت رمزهای عبور برای هر داخلی (Extension) زمانی که کاربران راه دور و بیرونی داشته باشید، مشخص می گردد. چرا که در این صورت با یافتن رمزعبور به راحتی می توان از سیستم تلفنی سوء استفاده شود.
یکی دیگر از اشتباهات رایج تشابه رمز عبور با شماره داخلی و استفاده از رمزهای عبور پیش فرض می باشد. به عنوان نمونه داخلی 201 با رمز عبور 201؛ این رمز عبور مانند این است که کاربر رمز عبوری ندارد.
رمزهای عبور باید ساختار مناسبی از لحاظ تعداد کاراکترها و نوع آن ها داشته باشند. به عنوان مثال رشته 55178 را در نظر بگیرید. این رمز عبور ضعیف است، چرا که ابزار های نفوذ خیلی ابتدایی هم می توانند با چندین مرتبه تست آن را پیدا کنند. یا رشته test123 نیز به همین صورت قابل تشخیص خواهد بود. برخی الگوهای رایج و بسیار ساده که در دقایق اول به وسیله ابزارهای نفوذ، شکسته می شوند در سال 2014 به صورت زیر لیست شده اند:
123456
123456789
Password
1234
12345
1234567
12345678
abc123
Qwerty
123123
123456789
Password
1234
12345
1234567
12345678
abc123
Qwerty
123123
شاید جالب باشد بدانید در صورتی که مکانیزمی برای بلاک کردن در سیستم وجود نداشته باشد، یک بد افزار می تواند حدود 30 تا 40 درخواست رجیستر در ثانیه، بر روی یک خط ADSL با پهنای باند 1Mbps، ارسال کند؛ که بر این اساس می تواند در طول چند ساعت یک لغت نامه را به صورت کامل تست کند. (Dictionary Attack)
در بسیاری از موارد که سیستم تلفنی مورد حمله قرار گرفته است، حجم پیام های ارسالی به حدی بالا بوده است که کل شبکه نیز مختل شده است و یا کیفیت سایر مکالمات تلفنی به شدت تحت تاثیر قرار گرفته است.
به عنوان نکته ی آخر مرتبط با رمزهای عبور، باید به این نکته توجه داشت که رمز عبور تنها مربوط به داخلی ها نیست بلکه در تعریف ترانک ها میان سیستم های تلفنی و یا گیت وی های VoIP نیز باید نکات امنیتی ذکر شده، رعایت شوند.
برای کسب اطلاعات بیشتر در مورد گیت وی VoIP می توانید به مقاله زیر مراجعه کنید.
گیت وی VoIP و کاربردهای آن
غیر فعال کردن قابلیت ها و یا ماژول های بدون استفاده
یکی دیگر از اقداماتی که باید در حین راه اندازی سیستم های تلفنی مورد توجه قرار گیرد، غیرفعال کردن امکانات و یا ماژول هایی است که در حال حاضر از آن ها استفاده نمی شود یا به نحوی برای عملکرد اصلی سیستم، الزامی نیستند. چرا که بسیاری از این قابلیت ها نوعی درگاه ورود به سیستم محسوب می گردند و یا نفوذگر از طریق آن ها، می تواند از سیستم سوء استفاده کند.
به عنوان مثال در سیستم استریسک، باید ماژول pbx_spool را در صورتی که از آن استفاده نمی شود، غیر فعال کرد. این ماژول امکان شماره گیری لیستی از شماره تلفن ها را فراهم می کند که ابزاری بسیار مناسب برای نفوذگران می باشد.
غیر فعال کردن و یا تغییر در تنظیمات پیش فرض
علاوه بر این که توصیه می شود رمزهای عبور پیش فرض مورد استفاده قرار نگیرند، باید تنظیمات و تعاریف پیش فرض نیز تغییر کنند و یا غیر فعال شوند. چرا که اگر نفوذگر با ساختار سیستم شما آشنایی داشته باشد، از این مقادیر و تعاریف پیش فرض به راحتی به منظور رخنه به سیستم تلفنی بهره خواهد برد.
VoIP-Security Default پیش فرض
به عنوان مثال در سیستم استریسک، باید Context پیش فرض را غیر فعال کنید. به این صورت که معمولا داخل این Context عملی صورت نمی گیرد و کاملا خالی است.
حذف برخی اطلاعات از بدنه پیام های ارسالی
پیام های مربوط به پروتکل های SIP در بدنه ی خود اطلاعاتی دارند که برخی از آن ها می تواند اطلاعات مورد نیاز نفوذگران را در اختیارشان قرار دهد؛ در نتیجه توصیه می گردد تا این اطلاعات با مقادیر بی اهمیت جایگزین گردند. در حالت کلی، باید از انتشار هر گونه اطلاعاتی که ساختار و توپولوژی شبکه VoIP را نمایان می کند، جلوگیری گردد که اصطلاحا گفته می شود باید Topology hiding صورت گیرد.
به عنوان مثال در بدنه پیام های پروتکل SIP فیلدی به نام ":Server"وجود دارد که در سیستم های تلفنی به صورت پیش فرض حاوی برند و مدل دستگاه و یا نرم افزار می باشد؛ و از این طریق نفوذگر تشخیص می دهد که با چه سیستمی و چه نسخه و یا چه مدلی مواجه است.
در سیستم های تلفنی مبتنی بر استریسک این فیلدها را می توانید در sip.conf مقدار دهی کنید:
کد PHP:
useragent=NotAsterisk
sdpsession=NotAsterisk
در سیستم های تلفنی باید به ازای تماس های ورودی و خروجی رول های مشخصی تعریف می گردد و مسیر ورودی و خروجی به درستی از هم تفکیک گردد. به طوری که ترافیک های ورودی تنها در صورت نیاز و پس از تشخیص سیستم بتوانند به بخش خروجی دسترسی داشته باشند.
تماس های ورودی خروجی ویپ
در برخی از موارد شناسایی شده، نفوذگر از طریق مسیر ورودی توانسته است به مسیر خروجی دست یابد و از منابع خروجی سیستم برای اهداف شوم خود استفاده نماید.
یکی دیگر از سیاست های مهم برای ترافیک خروجی، جلوگیری از برقراری تماس های بین المللی می باشد و در صورت نیاز تنها باید برای کاربران خاص این امکان فراهم گردد.
در سیستم های تلفنی مبتنی بر استریسک، می توان دو Context مجزا برای تماس های ورودی و خروجی تعریف کرد، به طوری که نفوذگر در صورت ورود به Context ورودی نتواند به Context خروجی دست یابد.
رد درخواست های SIP دریافتی از منبع ناشناس
یکی از روش های مهم به منظور محافظت سیستم تلفنی در برابر حملات SIP Scan، عدم پذیرش درخواست های SIP با منبع ناشناس (Anonymous) می باشد.
امنیت ویپ ناشناس
برخی از بدافزار ها با یافتن سیستم تلفنی شروع به ارسال درخواست های SIP به آن کرده و سعی می کنند با بررسی الگوهای مختلف، راه نفوذ به سیستم را بیابند. با رد این درخواست ها می توان از اینگونه حملات جلوگیری کرد.
علاوه بر این در سیستم های تلفنی نباید برای اشتباه بودن رمزعبور و یا عدم وجود نام کاربر، Response code های مختص به آن ها را ارسال کرد؛ این کار باعث می گردد تا نفوذگر با آگاهی بیشتری درخواست های خود را ارسال نماید. به عنوان مثال در صورتی که نفوذگر با یک نام کاربری و رمز عبور فرضی درخواست های خود را به سیستم ارسال نماید، در صورتی که سیستم Response code مربوط به عدم وجود کاربری را در پاسخ ارسال نماید، نفوذگر متوجه می شود که باید یک نام کاربری دیگر را امتحان کند. اما در صورتی که سیستم تلفنی تنها در پاسخ خود عدم صحت در اطلاعات مورد نیاز جهت احراز هویت را ارسال نماید، نفوذگر نمی داند نام کاربری اشتباه است و یا رمز عبور. این کار نفوذگر را به چالش خواهد کشید.
در سیستم های تلفنی مبتنی بر استریسک، می توانید تنظیمات فوق را در sip.conf ، به صورت زیر انجام دهید:
کد PHP:
allowguest=no
alwaysauthreject=yes
یکی از ساده ترین روش هایی که می توان از رجیستر شدن کاربران به صورت غیرمجاز جلوگیری کرد، ایجاد محدودیت بر روی آدرس IP مجاز برای رجیستر شدن می باشد. به عبارت دیگر برای یک داخلی که از یک آدرس ایستا و یا رنج آدرس مشخصی استفاده می کند، نباید مجوز رجیستر شدن از روی اینترنت داده شود؛ و تنها به داخلی هایی که این امکان را نیاز دارند، مجوز داده شود تا از روی اینترنت رجیستر شوند.
در سیستم های مبتنی بر استریسک می توان به صورت زیر در تنظیمات هر داخلی این قابلیت را فعال کرد:
کد PHP:
permit=<ipaddress>/<network mask>
deny=<ipaddress>/<network mask>
تغییر پورت های پیش فرض
نفوذگران از ابزارهای مختلفی برای یافتن سیستم هدف استفاده می کنند که رایج ترین روش مورد استفاده در این ابزارها، اسکن پورت های پیش فرض پروتکل های VoIP همچون پورت 5060 برای پروتکل SIP می باشد. ابزار اسکن، هر سیستمی را که بر روی این پورت گوش می دهد را در اختیار نفوذگر قرار می دهد و پس از شناسایی سیستم هدف توسط نفوذگر، حمله صورت می پذیرد.
بر این اساس، ساده ترین راه برای در امان ماندن از ابزار های اسکن، تغییر پورت های پیش فرض سیستم با شماره های ناشناس می باشد. علاوه بر این می توان تنظیمات Port Forwarding را بر روی روتر اینترنت فعال کرد. به عبارت دیگر درخواست های ارسالی به یک پورت ناشناس بر روی روتر به سمت سیستم تلفنی با پورت پیش فرض فرستاده می شود.
آسیب پذیری سیستم های مرتبط با شبکه VoIP
علاوه بر این موارد که مختص به سیستم های تلفنی مبتنی بر IP می باشند، برخی آسیب پذیری های موجود در ساختار یک شبکه VoIP و یا حتی سرور میزبان سیستم تلفنی، امکان نفوذ به سیستم را فراهم می کند. در این بخش به برخی از این آسیب پذیری ها می پردازیم.
فیلتر کردن ترافیک های ورودی
مهم ترین المان مورد نیاز برای شبکه های IP از جمله VoIP، فایروال ها می باشند. فایروال با فیلتر کردن ترافیک های ورودی / خروجی، آدرس های IP و پورت ها، و به صورت کلی با ایجاد یک مانع بر سر راه ترافیک های ورودی، مانع از بروز بسیاری از حملات می گردد.
در شبکه های بزرگ و حساس معمولا تجهیزات مستقل به عنوان فایروال شبکه، مورد استفاده قرار می گیرند این در صورتی است که در شبکه های کوچک به امکانات فایروال بر روی روترها بسنده می شود. بسیاری از سیستم های تلفنی دارای فایروال درونی می باشند که کمتر مورد استفاده قرار می گیرند و فایروال-روتر های شبکه جایگزین آن ها می گردند. به صورت کلی پیشنهاد می گردد که هر دو فایروال مورد استفاده قرار گیرند چرا که در فایروال سیستم های تلفنی، ترافیک های مرتبط به آن را بیشتر می توان تحت کنترل قرار داد.
فایروال-روترها قابلیت های زیر را برای شما فراهم می کند:
NAT : یکی از قابلیت های مهم برای استفاده از سرویس های تلفنی در محیط خارجی می باشد و به شما این امکان را می دهد تا بدون اینکه سیستم تلفنی را در محیط اینترنت قرار دهید، به آن متصل شوید.
Port forwarding
VPN
محدود کردن آدرس های مجاز ورودی
محدود کردن پورت های مورد استفاده
فیلترینگ پروتکل های انتقال (UDP/TCP)
امنیت ویپ NAT
مهم ترین نکته در خصوص فایروال های شبکه این است که به دلیل عدم توانایی در آنالیز بخش دیتای بسته ها، قادر به شناسایی پروتکل های VoIP نبوده و تنها بخش IP بسته های دریافتی را می توانند فیلتر کنند. این کاستی باعث می شود تا حملات مرتبط با پروتکل های VoIP در صورتی که در سرآیند IP آن ها محدودیت امنیتی وجود نداشته باشد، به شبکه وارد شوند.
در سیستم های تلفنی، استفاده از NAT، Port forwarding، تغییر پورت پیش فرض، جلوگیری از ورود ترافیک با منبع ناشناس، غیرفعال کردن Ping، محدود کردن پورت های مربوط به پروتکل RTP و اتصال کاربران راه دور از طریق VPN به سیستم، راه حل های مناسبی برای جلوگیری از نفوذ می باشند.
محدود کردن دسترسی ها بر روی سرور میزبان
یکی از مشکلات امنیتی مهمی که در سرور میزبان سیستم تلفنی نادیده گرفته می شود، اعمال مجوز های درست به کاربران و محدود کردن دسترسی ها می باشد. به عبارت ساده تر هرکسی تنها به هر چیزی که نیاز دارد، باید دسترسی داشته باشد.
فرض کنید بر روی سیستم تلفنی، سرویس FTP را راه اندازی کرده اید؛ در صورتی که مجوز ها به درستی داده نشود، فایل های سیستم به راحتی در دسترس خواهند بود و نفوذگر می تواند بدافزار های مورد نیاز خود را بر روی سرور نصب کند. نکته ی مهم دیگر این است که امکان نصب نرم افزار بر روی سرور، تنها باید در اختیار مدیر سیستم باشد و تنها از طریق مدیر سیستم بتوان در آن تغییر ایجاد کرد.
از دیگر آسیب پذیری های امنیتی سیستم های تلفنی مبتنی بر VoIP، نرم افزار های تحت وب مرتبط می باشد، چرا که عمدتا نفوذگران از طریق http راحت تر می توانند به سیستم نفوذ کنند. بنابراین توصیه می گردد که دسترسی به نرم افزارهای وب برای کاربران خارجی غیرفعال گردد و تنها از طریق VPN و یا tunneling SSH در دسترس قرار گیرند.
آسیب پذیری دیگر، فعال بودن کاربر root در سیستم می باشد. نفوذگران معمولا به دنبال یافتن رمزعبور کاربر root می باشند که با یافتن آن می توانند به راحتی سیستم را در اختیار بگیرند. بهترین راه حل برای رفع این رخنه، غیر فعال کردن کاربر root و ایجاد یک کاربر با نام کاربری متفاوت اما با دسترسی های مشابه root می باشد.
یکی دیگر از پروتکل هایی که در سرور های تلفنی باید محدود شوند و یا امکان آن غیر فعال گردد، SSH می باشد. این پروتکل باید در فایروال و سیستم تلفنی محدود گردد و تنها به آدرس IP مشخص و کاربر مشخص مجوز آن داده شود. همچنین پیشنهاد می گردد که پورت پیش فرض آن از 22 به مقدار دیگر تغییر داده شود.
نویسنده : مهندس سهیل تهرانی پور