معرفی پروتکل Chargen

پروتكل (Character Generator Protocol) CHARGENيكي از پروتكلهاي مورد استفاده در شبكه اينترنت است كه براي مديريت، اشكالزدايي و تست از راه دور استفاده ميشود. سرويس Chargenبدون توجه به ورودي به سادگي داده را ارسال ميكند. اين پروتكل به حملات شنود و Reflection آسيب پذير ميباشد. نقاط ضعف اين پروتكل امكان ساخت و ارسال بستههاي اطلاعاتي مخرب به يك هدف واحد را فراهم ميكند.

آسيب پذيريهاي متداول Chargen

سرويس Chargen به منظور انجام سنجش و تست در نظر گرفته شده است و ميتواند از هر دو پروتكل TCPو UDP استفاده نمايد. پس از ايجاد يك اتصال ، TCPسرور شروع به ارسال كاراكترهاي دلخواه خود به ميزبان ميكند و اين فرايند تا زمان بسته شدن اتصال ادامه مييابد. در حالتي كه Chargenاز UDPاستفاده ميكند، سرور پس از دريافت يك بسته UDPاز طرف ميزبان، يك بسته UDPحاوي يك شماره تصادفي (بين تا 0 )512به آن ارسال ميكند. هر گونه اطلاعات دريافت شده توسط سرور دور انداخته ميشود. اين سرويس ميتواند در حين ارسال داده از يك سرويس به كامپيوتر يا سرويس ديگر شنود شود. اين عمل منجر به يك حلقه بينهايت از ترافيك شبكه و حملات DOSميشود.

اين پروتكل بر روي دستگاههاي كپيبرداري چند منظوره و شبيه به آن به طور پيشفرض فعال است و مانند حملات chargen ، DNS Reflection نيز در حملات تشديد ميتواند استفاده شود. زيرا با ارسال يك درخواست كوچك (از يك آدرس IPجعلي) پاسخي بسيار طولاني بازگشت داده ميشود. با اين روش قربانيان با ترافيك عظيمي از UDPروي پورت 19مواجه ميشوند.

از ديگر ويژگيهاي امنيتي اين سرويس ميتوان به موارد زير اشاره نمود:

  • فاقد محرمانگي
  • فاقد يكپارچگي

 در دسترس بودن آن جزئي است ) داراي كارآيي پايين يا وقفه در زمان دسترسي به منابع است.(پيچيدگي دسترسي بسيار پاييني دارد )شرايط دسترسي تخصصي وجود ندارد و مهارت زيادي براي بهره برداري و سوءاستفاده از آن نياز نيست).

Chargen پروتكل

 احراز هويت مناسب ندارد (براي بهرهبرداري از آسيبپذيري، نيازي به احراز هويت نيست).  اين پروتكل به دليل وجود آسيبپذيري ذاتي در طراحي آن، كاربرد كمي دارد و بايد در صورت عدم نياز واقعي به در آن، شبكه غيرفعال گردد.

نحوه تشخيص آسيب پذيري شبكه (دستگاه / سرور)

دو نمونه خروجي حاصل از اسكن پورت UDP 19با استفاده از nmapدر ادامه آورده شده است:

  • زماني كه پورت UDPمورد استفاده Chargen باز است:

$ sudo nmap -sU -p19 xx.xx.37.38 -oG –
# Nmap 6.40 scan initiated Wed Apr 2 18:24:52 2014 as: nmap -sU -p19 -oG – xx.xx.37.38
Host: xx.xx.37.38 () Status: Up
Host: xx.xx.37.38 () Ports: 19/open/udp//chargen///
# Nmap done at Wed Apr 2 18:24:52 2014 — 1 IP address (1 host up) scanned in 0.18 seconds

  • زماني كه پورت UDPمورد استفاده Chargen بسته است:

$ sudo nmap -sU -p19 xx.xx.37.35 -oG –
# Nmap 6.40 scan initiated Wed Apr 2 18:25:30 2014 as: nmap -sU -p19 -oG – xx.xx.37.35
# Nmap done at Wed Apr 2 18:25:33 2014 — 1 IP address (0 hosts up) scanned in 3.11 seconds

نحوه امن سازي

با توجه به مطالب بيان شده، بايد اين سرويس به طور كامل غيرفعال گردد يا حداقل با استفاده از فايروال دسترسي به آن محدود شود. همچنين نبايد از اين سرويس بر روي سرورهاي معتبر استفاده كرد. روش كار براي غير فعال كردن اين سرويس در سيستمعاملهاي لينوكس و ويندوز در ادامه توضيح داده شده است:

  • Linux Server: در اغلب توزيعهاي سيستم عامل لينوكس، Chargen در inetdيا xinetdقرار دارد. بهطور پيش فرض اين سرويس غيرفعال است. براي غير فعال نمودن اين سرويس ميتوان عبارت chargen درون فايل /etc/inetd.confرا كامنت كرده و سپس inetdيا xinetdرا مجدداً راهاندازي نمود. در برخي از توزيعها نيز ميتوان توسط دستور /etc/init.d/chargen stopسرويس را بهطور موقت غيرفعال نمود و توسط دستور chkconfig chargen off سرويس را از ليست سرويسهاي اجرا شوده در زمان بوت حذف نمود.

Chargen پروتكل

  • Windows Server: در سرورهاي تحت سيستمعامل ويندوز، كليدهاي رجيستري زير بايد با مقدار 0
    مقداردهي شوند:

HKLMSystemCurrentControlSetServicesSimpTCPParametersEnableTcpChargen
HKLMSystemCurrentControlSetServicesSimpTCPParametersEnableUdpChargen


سپس درون cmdبايد دستورات زير وارد شوند.smile icon

net stop simptcp
net start simptcp

دیدگاه

آدرس ایمیل شما منتشر نخواهد شد.