محمد نصیری
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

SysLog چیست؟ معرفی اجزا + Message ها و نقاط ضعف سیسلاگ

Syslog مخفف کلمه های System و Log است و در واقع یک روش برای ارسال کردن پیام های مربوط به رویدادها و رخدادهای تجهیزات موجود در شبکه به یک Log Server محسوب می شود که این Log Server به عنوان Syslog سرور شناخته می شود. در واقع قبل از اینکه Syslog یک روش باشد یک پروتکل بوده است.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

پروتکل Syslog امروزه توسط محدوده بسیار زیاده از تجهیزات شبکه پشتیبانی می شود و امروزه انواع و اقسام log های مختلف را ثبت و ضبط و ارسال می کند.برای مثال یک روتر ممکن است توسط syslog فرآیند login شدن یک کاربر به کنسول مدیریتی روتر را گزارش کند و در عین حال یک web server توسط syslog پیامی مبنی بر جلوگیری از دسترسی به منابع خاصی از وب سایت یا پیام access-denied را گزارش می کند.

SysLog چیست؟ معرفی اجزا + Message ها و نقاط ضعف سیسلاگ

اکثر تجهیزات شبکه اعم از روترها ، سویچ ها ، فایروال ها و حتی سرورها و سیستم عامل های سرور قادر به ارسال کردن پیام ها یا message های syslog هستند.البته اینها بیشترین کاربرد را برای syslog دارند اما جالب است بدانید که اکثر فایروهال های نرم افزاری و سخت افزاری ، وب سرور ها ، پرینترها و بسیاری دیگر از تجهیزات شبکه نیز قادر به ارسال کردن پیام های syslog هستند.سیستم عامل های خانواده مایکروسافت بصورت ذاتی بر روی خودشان از پروتکل syslog پشتیبانی نمی کنند ، سیستم عامل های خانواده مایکروسافت log ها یا event های خودشان را در زیرساختی به نام event viewer ذخیره می کنند.

اما ابزارهای third party ای وجود دارند که می توان با نصب کردن آنها بر روی سیستم عامل ویندوز به سادگی محتویات event log سیستم را به سمت یک syslog سرور هدایت کرد. این اطلاعات می تواند شامل لاگهای IIS و خطاهای سیستمی موجود در Event Viewer باشد. برخلاف SNMP ، از syslog نمی توان برای دریافت کردن اطلاعات در خصوص تجهیزات شبکه استفاده کرد.

برای مثال SNMP دارای یک ساختار سلسله مراتبی پیچیده است که حتی به مدیران شبکه اجازه می دهد که بتوانند برخی تنظیمات شبکه را نیز از طریق SNMP بر روی تجهیزات انجام بدهند و اطلاعاتی را راجع به نوع تجهیزات و نسخه سیستم عامل مورد استفاده و بسیاری دیگر از موارد را نیز می توانند دریافت کنند. این موارد از نظر امنیتی اطلاعاتی که در قسمت Footprinting در ITPRO آموزش دادیم مشکل امنیتی محسوب می شود .

این مشکلات در خصوص Syslog وجود ندارد. Syslog فقط اطلاعات اتفاق هایی را به سمت سرور مورد نظر ( سرور مرکزی ) ارسال می کند که ما آنها را انتخاب می کنیم و هیج اطلاعات اضافی را در اختیار کسی قرار نمی دهد. در بالا مکانیزم کاری Syslog تشریح شده است. Syslog یک حالت Client و Server دارد و می توان در Client تعریف کردن که Log های خودش را به کجا ارسال کند که این Server می باشد و در سرور می توان هشدارهایی در صورت بروز log های خاص تعریف کرد که در صورت بروز آن Log به مدیر شبکه اطلاع رسانی خواهد شد.

SysLog چیست؟ معرفی اجزا + Message ها و نقاط ضعف سیسلاگ

اجزای تشکیل دهنده Syslog

در قسمت قبلی از سری مطالب Syslog در ITPRO اشاره کردیم که ساختار Syslog یک ساختار Client و Server ای است. Syslog یکی از بهترین روشهایی است که با استفاده از آن می تواند از چندین منبع مختلف log های انتخاب شده را به سمت یک مرکز لاگ برداری هدایت کرد. بصورت معمول اجزای تشکیل دهنده syslog سرور که معمولا در اکثر سیستم ها مشترک هستند به شرح زیر می باشند :

  • Syslog Listener : یک Syslog Server به این نیاز دارد که پیام هایی که تحت شبکه ارسال می شوند را به درستی دریافت کند. فرآیند Listener اطلاعات مربوط به log های Syslog را بر روی پورت شماره 514 که بصورت UDP هم هست و در شبکه ارسال می شوند را دریافت می کند در واقع می توان از Listener به عنوان دریافت کننده پیام های Syslog در شبکه نام برد. همانطور که می دانید بسته های اطلاعاتی UDP و البته پیام هایی که بصورت UDP ارسال می شوند
  • هیچ تضمینی ندارند که قطعا به مقصد می رسند و acknowledge یا تاییده دریافت شدن در مقصد را نیز دریافت نمی کنند ، بنابراین به این موضوع توجه کنید که برخی از تجهیزات شبکه برای اینکه مطمئن شوند اطلاعات Syslog آنها به درستی به مقصد می رسند به جای استفاده کردن از 514 UDP از پورت 1468 TCP استفاده می کنند . برای راه اندازی یک syslog server حتما توجه کنید که دستگاه یا سیستم عامل مورد نظر از چه شماره پورتی و بصورت UDP یا TCP اطلاعاتش را منتقل می کند تا این پورت ها در فایروال های شبکه باز شوند.


  • Database یا پایگاه داده Syslog : درست است که اطلاعات مربوط به لاگهای هر سیستم با توجه به ماهیت text آنها کم به نظر می رسد اما زمانیکه در خصوص شبکه های بسیار بزرگ و تعداد تجهیزات زیاد صحبت می کنیم حجم این داده ها می تواند بسیار بسیار زیاد شود. Syslog سرورهای معمولی دارای پایگاه داده یا Database نیستند و نمی توانند این حجم اطلاعات را درون خودشان بصورت ساختارمند نگهداری کنند اما Syslog سرورهای قدرتمند برای نگهداری این حجم از داده برای خودشان دارای یک Database می باشند.


  • نرم افزار مدیریت و فیلترینگ : با توجه به اینکه ممکن است مقادیر بسیار زیادی از داده ها در دیتابیس Syslog Server ذخیره شده باشد ، پیدا کردن یک log خاص در بین این همه داده کار بسیار طاقت فرسا و خسته کننده ای خواهد بود. راهکار این مشکل استفاده از یک Syslog سرور است که توانایی مرتب سازی و البته فیلتر کردن log ها را داشته باشد و بتواند بر اساس نیاز شما بر روی لاگها جستجو انجام بدهد.

یک Syslog سرور بایستی بتواند در موارد تعریف شده و در صورت بروز مشکل Alert یا اخطار تولید کند و این Alert بر اساس لاگهایی که مدیر شبکه تعریف می کند تهیه و ارسال می شوند ، Alert و Notification جزء جدانشدنی Syslog سرور هستند. این موارد به مدیر شبکه کمک می کنند تا در صورت بروز مشکل بلافاصله بتواند به آن رسیدگی کند.

معرفی Message ها در Syslog

همانطور که در قسمت های قبلی از سری مطالب Syslog عنوان کردیم سیستم های Client ای پیام های خودشان را در قالب Syslog Message به Syslog Server منتقل می کنند. ما قرار نیست در اینجا بصورت کامل و عمیق وارد مسئله Syslog Message بشویم زیرا این Message ها بسیار متنوع و گسترده هستند اما برخی نکات بسیار مهم در این خصوص وجود دارد که بایستی بدانید و درک کنید.

در ابتدا بایستی بدانید که محتویات یک Syslog Message چیست ؟ محتویات یک Syslog Message بصورت بسیار مبتدی و ساده شامل اطلاعات شناسایی یک رخداد است که اطلاعات مختصری در خصوص محل وقوع اتفاق ، زمان وقوع اتفاق و همچنین تا حدودی دلیل بروز اتفاق را شامل می شود

SysLog چیست؟ معرفی اجزا + Message ها و نقاط ضعف سیسلاگ

در برخی موارد اطلاعات بیشتری اعم از آدرس IP مربوط به سیستمی که Syslog Message را فرستاده است و همچنین محتویات خود Log را نیز شامل خواهند شد. در برخی اوقات پیام های Syslog در قالبی ارسال می شوند که برای کاربران و مدیران شبکه قابل فهم باشند اما همیشه این اتفاق رخ نمی دهند و Syslog Message قالبی دارند که براحتی توسط انسان قابل خواندن و درک نیست.

Syslog برای شناسایی منبع یک پیام که از یک ماشین در شبکه ارسال شده است از مفهومی به نام facility استفاده می کند. برای مثال facility شماره 0 به معنی پیامهای Kernel سیستم است ، Facility شماره 11 برای پیام های FTP است و ... این قالب برگرفته از یک ساختار Unix ای بسیار قدیمی می باشد. بیشتر تجهیزات شرکت سیسکو با کدهای مخصوص خودشان syslog ها را ارسال می کنند برای مثال تجهیزات سیسکو دارای کد Facility هایی به شکل Local6 و Local7 هستند.

همچنین Syslog Message دارای یک مفهوم دیگر به نام Severity Level یا درجه سختگیری هم هست. درجه سخت گیری یا Severity Level همانطور که از نامش هم پیداست این قسمت اهمیت Message ای که ارسال می شود را تعیین می کند. برای مثال Severity Level به صورت عدد 0 یعنی یک موقعیت اورژانسی برای سیستم منبع به وجود آمده است

و نیاز به رسیدگی بسیار سریع دارد ، Severity Level به صورت عدد 1 یعنی نیازمند یک عملیات سریع یا immediate action می باشیم و این درجه به همین شکل بزرگ می شود تا اینکه به اعداد 6 و 7 می رسد و severity level های 6 و 7 شامل پیام هایی می شوند که شامل اطلاعات معمول و یا اطلاعات مربوط به debug سیستم می شوند.

معرفی نقاط ضعف Syslog

خوب در قسمت های قبلی از مجموعه مطالب Syslog با ساختار و اجزای Syslog آشنا شدید اما Syslog همیشه هم به این خوبی ها که می گوییم نیست ، در واقع چند نکته منفی در خصوص استفاده از Syslog در شبکه وجود دارد که شما به عنوان یک ITPRO بایستی آنها را درک کنید و بدانید. اولین مشکل در خصوص Syslog مشکل Consistency یا سازگاری است ، در واقع با توجه به اینکه پروتکل Syslog یک استاندارد و قالب مشخص و استاندارد برای محتوای Message های خودش تعریف و تدوین نکرده است .

قالب های محتوای این پیام ها ممکن است متفاوت باشند ، برخی از آنها برای یک انسان قابل درک و فهم است و برخی دیگر اصلا قابل درک و فهم برای انسان ها نیست و فقط خود Syslog متوجه آنها می شود. البته به این موضوع باید توجه کنید که Syslog به این چیزها کاری ندارد ، مهمترین فاکتور برای Syslog این است که پیام ها را بتواند از طریق شبکه از Client به Server منتقل کند و اهمیتی به محتوای آن نمی دهد.

اما این پایان ماجرا نیست ، همانطور که قبلا هم اشاره کردیم Syslog بصورت پیشفرض از UDP برای ارسال Message ها استفاده می کن که قابل اعتماد نیست و یک پروتکل Connectionless است و رسیدن پیام ها به مقصد را تضمین نمی کند به همین دلیل امکان از بین رفتن پیام ها در هنگام انتقال در شبکه ممکن است و Syslog مستعد packet Loss است .

البته باز هم این آخر ماجرا نیست ، Syslog از نظر امنیتی هم دچار مشکل است ، در واقع Syslog Message ها هیچگونه مکانیزم احراز هویتی در خودشان ندارند و این ممکن است که Message ها و Event ها در هنگام ارسال شدن در شبکه تغییر کرده و یا شنود شوند. این آسیب پذیری ممکن است باعث بروز حملات Replay Attacks بر روی این پروتکل شود. اما به هر حال مزایای بسیار زیاد این پروتکل می تواند بر روی مشکلات مربوط به آن سرپوش بگذارد.

نتیجه گیری

پروتکل Syslog یک پروتکل بسیار کاربردی و ابزاری بسیار مفید برای مدیران شبکه است که بتوانند شبکه هایی با پیچیدگی های زیاد را مدیریت و نگهداری کنند. اما یکی از بزرگترین مشکلات Syslog حجم داده بسیار زیاد آن است ، نرم افزار Logging ای که برای Syslog استفاده می شود

بایستی بتواند فرآیند مدیریت Log ها را ساده سازی کند و به مدیران شبکه اجازه بدهد که براحتی Message ها را مدیریت و فیلتر کنند . در محیط های واقعی ما از ابزارهای مانیتورینگ تخصصی برای جمع آوری Syslog ها استفاده می کنیم که مدیریت آنها را بسیار ساده می کنند از جمله آنها می توانیم به ManageEngine OPManager ، Solarwinds Orion NPM و OpenNMS اشاره کرد. در دوره آموزش نتورک پلاس و بخش معرفی مفاهیم مانیتورینگ شبکه در خصوص Syslog هم صحبت می کنیم. امیدوارم مورد توجه شما قرار گرفته باشد.


محمد نصیری
محمد نصیری

بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات

محمد نصیری هستم ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 50 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم و مقیم کشور ترکیه هستم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.

نظرات