August 15, 2009

چگونه سعی کنیم یک مشاور (امنیتی) خوب باشیم


بسياري از افرداي که به تازگي در زمينه ارائه مشاوره در زمينه امنيت سيستمهاي کامپيوتري به هر نحوي مشغول شده اند، يک دغدغه اصلي دارند، و آن هم نحوه برقراري ارتباط با مشتري و ارائه کار خود است. در اين پست سعي مي کنم به مواردي که در طي اين چند سال تجربه کرده و مورد استفاده قرار داده ام را عنوان کنم، تا شايد براي برخي داراي نکات مفيد يا جديدي باشد .همچنين مطالب عنوان شده اغلب کلي بوده و لزومآ مربوط و مختص به اين زمينه کاري نمي باشند. در همين ابتدا متذکر مي شوم که اين موارد نظرات شخصي من بوده و ممکن است داراي نقص و تناقض يا اشکال باشد! ثانیآ بنده هيچ گونه تعهدي به شما خواننده اين مطلب نخواهم داد که با عمل کردن به اين موارد، در کمتر از يک ماه از کار بيکار نشويد!!! قوائدي که عنوان خواهم کرد، چيز هايي هستند که خودم حداقل سعي در پيروي از آنها مي کنم، هرچند ممکن است هميشه نتوانسته باشم به همه آنها بصورت همزمان عمل کنم.
جلب رضايت شخص، گروه، شرکت و يا سازماني که از شما سرويس مي گيرد خصوصآ در زمينه سرويس هاي ارائه شده در حيطه امنيت شبکه بسيار مشکل است. دليل اين امر هم بسيار واضح است : حد و مرز کيفيت و حتي رضايت در اين زمينه کاملآ نسبي بوده و هر سازماني (جداي از استانداردهاي موجود و شناخته شده) ملاک ها و معيارهاي خاص خود را دارد. با اين وجود نکاتي است که با در نظرگرفتن آنها مي توان سعي کرد تا هميشه به بهترين نحو با شرايط و خواسته هاي هر مشتري کنار آمد. منظور از مشتري صرفآ کسي که از در شرکت وارد شده و يا به شما ايميل زده و پيشنهاد کاري داده نيست. حتي محلي که شما بمدت يک سال براي آنها کار مي کنيد نيز به نوعي مشتري شما محسوب مي شوند.
کاري که دانش آنرا نداريد، انجام ندهيد : آگاهي داشتن از يک زمينه و موضوع، با توانايي بکار گرفتن آن موضوع بصورت حرفه ايي و در قالب يک سرويس به مشتري، تفاوت بسيار زيادي دارد! اينکه بتوان در زمينه ايي خاص (در امنيت) به مشتري سرويس داد نيازمند آن است که شما تجربيات زياد و کاملي در آن زمينه داشته باشيد و صرف داشتن آگاهي سطحي از يک موضوع نمي توان آنرا جزو مهارت هاي شخصي در کار عنوان کرد. دليل اين امر روشن است. امنيت شبکه، ارزيابي و يا پياده سازي آن چيزي نيست که بتوان بطور سطحي آنرا پياده سازي کرده و يا انجام داد. زيرا هرچه ميزان تجربه و آگاهي در خلال انجام کار کمتر باشد، موارد از قلم افتاده و کنترل نشده بيشتر خواهد بود. بديهي است که شخصي با تجربه تر براحتي مي تواند کار شما را زير سوال ببرد. گفتن اينکه شما در زمينه خاصي که مربوط به رشته کاري شما هم ميشود تخصص نداريد، نه تنها پرستيژ و کلاس کاري و شخصيت شما را پائين نمي آورد بلکه براي مشتري اين اطمينان خاطر را نيز ايجاد مي کند که مي تواند به شما و آنچه که در مورد توانايي انجام آن پاسخ مثبت مي دهيد اعتماد بيشتري پيدا کند. قرار نيست يک نفر در همه زمينه ها داراي تبهر و تخصص باشد! اين مورد البته هميشه صادق نيست. بطور مثال در مواردي که هدف از کار انجام تحقيق در يک زمينه باشد، آگاهي يا عدم آگاهي بالاي شما در آن مورد ملاک اصلي نيست. در چنين مواردي تمايل و توانايي شما در فراگيري و پيگيري سريع جزئيات و نکات در آن زمينه است. بطور مثال، شخصي که در قالب مشاوره، تنها در زمينه پياده سازي راهکارها و محکم سازي (Hardening) کار کرده، در صورتي که به وي پيشنهاد انجام يک تست نفوذ شود، شرايط خوبي براي انجام آن ندارد. زيرا ايندو از نظر فني و جزئيات کار به هم نزديک نمي باشند. اما شخصي که قبلآ بصورت تئوريک و يا عملي اين کار را پيش از اين انجام داده، ولي به وي پيشنهاد انجام تست نفوذ در يک شاخه جديد (مثلآ سيستم عامل يا نرم افزار جديد) مي شود، در صورتي که در خود توانايي هاي يادگيري سريع آن پلتفورم و بستر کاري را مي بيند، مي تواند به سراغ اين کار رود .زيرا در مورد کليات کار داراي تجربه بوده و در اين مورد جديد تنها نياز به فراگيري نکات و جزئيات خاص پلتفورم و سيستم جديد را دارد. از طرفي در صورتي که به هر دليل کاري را قبول کرده و خروجي ضعيف (ناشي از عدم تسلط شما بر موضوع کاري) به مشتري ارائه کنيد، بدون شک اين مي تواند آخرين پيشنهاد کاري به شما از سوي آن مشتري باشد. اين موضوع حتي به اعتبار کلي کار شما نيز لطمه خواهد زد.
مشاور شما هستيد، نه مشتري : يک نکته بسيار مهم را هميشه در نظر داشته باشيد ؛ اگر مشتري شما دقيقآ مي دانست که بدنبال چه چيزي است و خودش توانايي انجام آنرا به نحو قابل قبولي داشت، بطور قطع به سراغ شما نمي آمد! آگاهي از مشکلات کار، مناسب يا غير مناسب بودن يک راهکار، عملي بودن يک پيشنهاد و حتي محاسبه زمان و هزينه و نيروي انساني مورد نياز بخشي از مسئوليت هاي شما مي باشند زيرا شما هستيد که با شرايط کار آشنا بوده و مي بايست بر اساس تجربيات قبلي خود و در نظر گرفتن شرايط هر موقعيت کاري يا پروژه اين موارد را برآورد کنيد.
در بسياري از موارد کسي که از شما سرويس مي گيرد ذهنيت کامل و دقيقي از آنچه که (بصورت فني) مي بايست به وي ارائه شود ندارد. بنا بر اين نيازهاي واقعي خود را نيز نمي شناسد. در نتيجه حتي در صورتي که خود اقدام به ليست کردن مواردي کرده و برآوردي از آن نيز آماده کرده باشد، نمي توان زياد به آن اطمينان داشت. البته در برخي موارد ممکن است مشتري شما، خود از يک مشاور ديگر براي تهيه ليست نيازهاي خود و تخمين زمان و هزينه استفاده کرده باشد که در چنين شرايطي کار شما ممکن است کمي مشکل تر گردد. زيرا در صورت وجود اشکال در اين شرايط، شما مي بايست هم مشتري خود را قانع کنيد و هم مشاوري که اين اطلاعات را در اختيار وي قرار داده است! پس بهتر آن است که پيش از قبول و شروع کار اين موارد را با دقت بررسي نماييد. زيرا پس از شروع کار و در زمان تحويل خروجي، ملاک ارزيابي کيفيت و کميت کاري که شما انجام داده اييد همين پارامتر ها خواهد بود. بنابراين اگر در اين مورد محاسبات شما دقيق بوده باشد، در پايان هم شما راضي خواهيد بود و هم سرويس گيرنده شما. اما اگر بفرض مثال شما با زمانبندي ارائه شده از سوي مشتري ( که اشتباه بوده) کار را قبول کرده و شروع کنيد و در پايان پروژه با تآخير زماني تحويل گردد، انگشت اتهام بدون شک به سوي شما خواهد بود.
بنا بر اين هميشه قبل از شروع و انجام کار، نياز مشتري، نوع و نحوه عملکرد خود و نيازهاي پروژه را شناخته و بر اساس آن برنامه ايي به مشتري ارائه کنيد، و مثل بچه هاي خوب به هر درخواست و نيازي جواب مثبت ندهيد زيرا بعدآ ممکن است دوچار دردسر شويد!
پيش از شروع کار، در مورد آن مطالعه کنيد: حتي در صورتي که در زمينه مربوطه داراي تجربه قبلي مي باشيد، بهتر است پيش از شروع هر کار و آگاهي از ماهيت کلي، در مورد آن مطالعه کنيد. اين موضوع به شما کمک مي کند بسياري از مطالبي را که فکر مي کنيد مي دانيد اما در واقع جزئيات آنرا فراموش کرده ايد، دوباره به ياد آورده و يا حتي فرا بگيريد. اهميت اين موضوع بخصوص زماني روشن خواهد شد که شما مي بايست براي کار خود و جزئيات آن برنامه ريزي داشته باشيد. بطور مثال اگر به من پيشنهادي در مورد ارزيابي امنيتي سيستم هاي VoIP شود، قبل از هر کار اصول پياده سازي و مباني سيستم ها و پروتکل هاي VoIP را مرور کرده و نکات امنيتي مهم و کليدي را براي خود يادآوري کرده، پس از آن در اولين جلسه فني در مورد آن کار حاضر خواهم شد. اين روش به شما کمک مي کند که نکات ريز اما مهم در مورد کار آتي خود را از قلم نياندازيد.
ذهنيت مشتري را براي خودش باز کنيد: گفتم که در اولين قدم مي بايست سعي کنيد نياز مشتري را بشناسيد و بر اساس آن برنامه ريزي کنيد. اين کار ممکن نيست مگر با آگاهي يافتن از ريز جزئيات، نياز ها و خواسته هاي او. بهترين روش براي کسب اين آگاهي نيز پرسش و پاسخ و تهيه فرم ها و سوالاتي است که شما بدنبال جواب آنها هستيد، البته بصورت مستند و مکتوب. مشتري شما فقط مي داند که در نهايت و پس از انجام کارهايي توسط شما، قرار است به فلان خروجي برسد. اين خروجي مي تواند يک سطح ارتقاع يافته از امنيت، راه اندازي يک سيستم يا سرويس امنيتي و يا حتي ارزيابي يک محصول يا سيستم خاص باشد. مشتري شما نمي داند که براي انجام اين کار دقيقآ به چه شرايط و آيتم هايي نياز است. آگاه کردن وي از اين شرايط و آيتم هاي مورد نياز وظيفه شماست. پس در همان ابتداي کار پس از آگاهي از کليات کار، ليستي از مواردي که به آنها نياز خواهيد داشت را تهيه کرده و آنها را به تآييد مشتري برسانيد. ممکن است شما نياز به دانستن اطلاعاتي خاص در مورد شبکه يا سيستم تحت بررسي داشته باشيد، پس اين موارد را بصورت کاملآ تفکيک شده و جز به جز ليست کرده و از مشتري سوال کنيد. در اين خصوص دو نکته مهم وجود دارد که در ادامه به آنها اشاره خواهم کرد. جلساتي را با مشتري و گروه هاي کاري که قرار است از شما سرويس گيرند ترتيب دهيد و سعي کنيد مطلب را کاملآ براي آنها تشريح کنيد. يکبار ديگر، به زبان خود، نياز و خواسته هاي آنها را براي خودشان بازگو کنيد تا نقطه ابهامي براي کسي باقي نماند .
به مستنداتي که در اختيار شما قرار داده شده زياد اطمينان نکنيد : براي پاسخ دادن به سوالاتي که شما ممکن است در بخش قبلي در نظر گرفته و آماده کرده ايد، مشتري ممکن است مستندات شبکه و سيستم خود را در اختيار شما بگذارد و بعنوان پاسخ رسمي و محکم به شما ارائه کند. اين البته در صورتي است که شما خوش شانس بوده و با جايي سر و کار پيدا کرده باشيد که اقدام به مستند سازي وضعيت و سيستم هاي خود کرده باشند. نکته تلخ اما واقعي که هميشه وجود دارد اين است که به هيچ يک از اين مستندات نمي توان بطور کامل اطمينان کرد و هميشه مغايرت هايي بين مستندات و شرايط واقعي وجود دارند. هر چه مشتري شما و مجموعه وي منظم تر بوده و مستندات جزئي تر و بروز تر باشند اين مغايرت ها کمتر خواهند بود اما با اطمينان به شما خواهم گفت که به ندرت شانس دريافت مستنداتي را خواهيد داشت که کاملآ منطبق با شرايط کنوني و واقعي باشند. مگر در مورد سيستم ها يا شبکه هاي بسيار کوچک و محدود. نتيجه اينکه شما مي بايست کليه اطلاعات مورد نياز خود را (حتي در صورت موجود بودن در مستندات) با شرايط کنوني کسب کرده و تطبيق دهيد. بهترين روش مراجعه به اشخاص مربوطه و سوال و جواب از آنها و کنترل و بروز رساني موارد موجود در مستندات براي خودتان است. بهتر است سوالات خود را از قبل آماده کرده و حتي قالب کلي پاسخ هايي که انتظار داريد به شما داده شود را آماده کرده و در اختيار مشتري قرار دهيد. بدين ترتيب هم اطلاعات دقيق تري دريافت خواهيد کرد و هم شخصي که به شما پاسخ مي دهد سردرگم و آشفته نخواهد بود. حتي خود شما هم براي نوشتن کليه اطلاعات شخصي خود به جزء، نياز به آمادگي قبلي و در اختيار داشتن برخي اسناد و مدارک از قبل آماده شده داريد. پس به مشتري حق بدهيد که براي دادن اين همه اطلاعات فني به شما، مي بايست آگاهي و آمادگي قبلي داشته باشد!
هر چيزي را مکتوب کرده و به تآييد برسانيد : اين يک مورد بخصوص، با توجه به فرهنگ خاص ما ايراني ها بسيار مهم و حساس مي باشد. "دبه کردن" راهکاري بسيار مرسوم براي فرار از مشکلات و تقصیرات و کوتاهي ها است، بخصوص اينکه قرار باشد در انتهاي کار کسي طرف ديگر اش را مورد بازخواست قرار دهد. براي پرهيز از اين مشکل چه در مورد خود و چه ديگران، سعي کنيد هر اطلاعاتي که از مشتري دريافت مي کنيد و هر قول، تعهد و يا آيتم کاري که (به درخواست مشتري) به ليست وظايف خود اضافه مي کنيد، و یا حتی هر تغییر جزئی که در سیستم مورد استفاده مشتری می دهید بصورت رسمي مکتوب کرده و در همان جلسه به تآييد مشتري برسانيد. اين مورد جدآ شوخي بردار نيست! هميشه موضوع واقعآ انکار کردن موضوعی از سوی طرف شما نيست، بلکه بسيار پيش مي آيد که بدليل طولاني شدن زمان کار و مشغله، افراد قول و قرار هاي خود را فراموش کنند و يا اطلاعات و شرايط دستخوش تغييراتي گردند. مکتوب کردن وضعيت کنوني و ثبت کردن کليه نيازها، خواسته ها و وظايف در زمان جاري تنها راه پيشگيري از اين مورد است. بطور مثال ممکن است شما در يک جلسه بصورت شفاهي اطلاعاتي را رد و بدل کرده و بر اساس آن روند کار خود را تغيير دهيد. اما پس از پايان پروژه و احتمالآ بروز اختلاف بين بند هاي قرارداد و تعهد کاري شما با آنچه مشتري انتظار داشته، شما خواهيد گفت که اين مغايرت بدليل فلان مورد است که در مورد آن صحبت شده. اما هميشه و همه افراد آنقدر حافظه قوي ندارند که اين موارد شفاهي را بياد آورند (فرض ميکنيم کسي اصلآ منظور و نيت بدي ندارد!) و در اين لحظه تنها چيزي که مي تواند مشتري را قانع کند، حرف ها و اطلاعاتي است که خود وي به شما ارائه داده.
براي خود يک برنامه کاري آماده کنيد: پس از طي مراحل گفته شده، سعي کنيد يک برنامه کاري مشخص به تفکيک موارد و آيتم هايي که مي بايست انجام شوند تهيه کرده و مستند کنيد. استفاده از يک ليست ساده کارها بصورت متني هم کفايت مي کند اما استفاده از برنامه هايي مانند MS-Project و شسته رفته کردن کليه آيتم هاي کاري از نظر تاريخ و زمان اجرا و مدت زمان مورد نياز، بخصوص در پروژه هاي طولاني مدت و بزرگ مي تواند به شما بسيار کمک کند.
برنامه کاري را براي مشتري نيز مي توانيد ارائه دهيد اما فراموش نکنيد که برنامه ايي که به مشتري ارائه مي دهيد نبايد از نظر جزئيات به کاملي و دقت برنامه شخصي شما باشد، زيرا ممکن است موردي را براي بررسي شخصي و خارج از برنامه و قرارداد کاري ليست کنيد. حال اگر همين برنامه را نيز به مشتري ارائه کرده باشيد، براي وي توقع ايجاد شده و اينطور برداشت مي شود که آن مورد نيز جزو تعهدات شما بوده و ميبايست حتمآ اجرا گردد. به مشتري خود همانقدر اطلاعات و جزئيات در مورد کار خود بدهيد که نياز دارد. نه بيشتر، نه کمتر .
همچنين نکته مهم ديگر در برنامه ريزي اين است که، هميشه يک بازه زماني براي اتفاقات و مشکلات پيشبيني نشده در نظر داشته باشيد. هرگز اينطور فرض نکنيد که همه چيز آنطور که در مستندات، کتاب ها و توصيه نامه هاي امنيتي استاندارد گفته شده و مطابق ميل پيش ميرود! پروژ هاي کاري مربوط به محکم سازي (Hardening) نمونه بارز اين موضوع هستند. در بسياري از موارد شما ممکن است با پياده سازي يک راهکار يا قانون و تنظيمات جديد در سيستم، موجب بروز اختلال در بخش ديگري از مجموعه يا سيستم شويد که هرگز انتظار آن نمي رفته. پس هميشه زماني را براي پيگيري و رفع چنين مواردي در نظر بگيريد.
بر طبق برنامه پيش برويد : هر ميزان هم که در برنامه ريزي دقيق بوده باشيد و برنامه ايي حساب شده براي کار خود به مشتري ارائه داده باشيد، در صورتي که (حتي در ظاهر !) مطابق آن پيش نرفته و به مشتري خروجي ارائه ندهيد، از ديد وي کار داراي مشکل و سرانجامي ناخوشايند و نا مطلوب خواهد بود. در صورتي که بتوانيد هميشه درست سر زمان مقرر خروجي که مشتري از شما انتظار دارد را به وي ارائه کنيد، ديد او به شما بسيار مثبت شده و سبب جلب رضايت و اطمينان وي به شما مي شود. حتي در صورتي که خروجي کار تا آن لحظه 100% مطابق با برنامه ريزي قبلي و انتظارات مشتري نيست، باز هم ارائه ناقص آن بهتر از دير ارائه دادن آن است! البته منظور من از خروجي ناقص يک گزارش 10 صفحه ايي که مي بايست 15 صفحه ديگر هم به آن اضافه شود نيست. بلکه منظور من ارائه قالب کلي و خروجي گزارش در زمان مقرر، و تکميل موارد جزئي و ريز (مانند اصلاح موارد نگارشي، بهبود و تکميل ضميمه هاي گزارش، بهبود قالب و ساختار اصلي گزارش و ...) در مدت زماني کوتاه پس از موئد مقرر است.
هميشه افرادي مطمئن را براي موارد خاص در کنار خود داشته باشيد: پيش از اين گفتم که قرار نيست هر شخص در همه موارد داراي تبهر و تخصص کامل باشد. از طرفي براي پيشرفت لازم است تا هميشه خود را با چالش روبرو کرده و به سراغ موارد و زمينه هايي برويم که پيش از اين در مورد آنها تجربه اي نداشته ايم. اين به چالش کشيدن خود البته مي بايست معقول باشد، و مشتري ما نبايد بهاي تجربه هاي (اشتباه) ما را پرداخت کند! بنا بر اين بهتر است هميشه سعي کنيم در زمينه هايي که در مورد آنها تخصص و تجربه کاري کافي و لازم را نداريم، ارتباطاتي کاري يا دوستانه با ساير افرادي داشته باشيم که در آن موارد از ما اطلاعات بيشتري دارند. اين به شما کمک مي کند تا در مواقع ضروري، مثل زماني که کم تجربگي شما موجب بروز اختلال در سيستم هاي کاري مشتري شده و رفع آن در کوتاه ترين زمان ممکن براي مشتري حياطي مي باشد، بتوانيد با کمک يکي از اين افراد خود و مشتري را از بحران پيش آمده نجات دهيد. در هر زمينه و هر مورد کاري، پيش از دست زدن به هر عمل داراي ريسک بالا که از عواقب آن آگاهي کامل نداريد، بهتر است با يک فرد با تجربه در زمينه مشورت کرده و اطمينان حاصل کنيد که در صورت بروز مشکل، وي در زمان و مکان مشخص قادر به پشتيباني شما خواهد بود.
ابزار و شرايط کاري خود را از قبل آماده کنيد: يک مشاور امنيت، از نظر فني تفاوت چنداني با يک مکانيک خودرو يا جراح ندارد. هر دو مي بايست قبل از پذيرش يک مشتري و شروع به کار، ابزارهاي خاص کار خود را آماده کرده و از صحت عملکرد آنها اطمينان حاصل کرده باشند. محدوده مشخص و کوتاه زمان انجام پروژه، تعمير خودرو و يا جراحي، موقعيت مناسبي براي جستجو براي ابزارهاي مورد نياز و تست آنها نيست. سعي کنيد همواره هر آنچه که فکر مي کنيد در طول يک پروژه به آن نياز خواهيد داشت را از قبل بررسي و آماده کرده و با گذشت زمان فقط آنها را (مثلآ براي کنترل نیاز به بروز رساني ها، نسخ و يا تکنيک هاي جديد) بازبيني کنيد. همچنين، هميشه سعي کنيد يک لابراتوار آماده بکار شامل انواع سيستم عامل ها و نرم افزارهاي پرکاربرد مثل بانک هاي اطلاعاتي يا وب سرور ها و ... داشته باشيد. راه اندازي چنين سيستم هايي، و تهيه ابزارها و نرم افزارهاي لازم مي تواند براحتي بسياري از زمان محدود شما براي انجام کارهاي مهم پروژه را تلف کند.
ملاک ارزيابي کيفي شما، گزارشي است که ارائه مي دهيد : مهم نيست که شما چقدر در کار خود خبره بوده ايد. مهم نيست شما با چه کيفيت و سرعتي به نياز مشتري پاسخ داده ايد. مهم نيست که شما در طول انجام کار چندين بار جلسات فني با مشتري برگزار کرده ايد و با صحبت ها و خروجي هاي مقطعي خود چقدر آنها را تحت تآثير قرار داده ايد. مهم اين است که در پايان، شما يافته ها و نتايج کار خود را چطور مستند سازي کرده و (بصورت کتبي و شفاهي و حتي عملي) ارائه مي دهيد! هيچ چيز در پايان يک پروژه کاري نمي تواند به اندازه يک مجموعه مستندات مرتب و منظم، داراي قالب استاندارد، و محتويات کامل و بي عيب و نقص مشتري را خشنود و راضي کند. هرچقدر هم که شما کار خود را با کيفيت انجام داده باشيد، اما توانايي ارائه خوب آنرا نداشته باشيد، کل کيفيت کاري شما در نهايت زير سوال خواهد رفت. اين مورد را مي توان به به نقاش ماهري تشبيه کرد که براي نقاشي کشيدن از ابزارها و رنگ هاي بي کيفيت استفاده کرده باشد. بخش زيادي از هنر نقاش و نمايان شدن آن براي بيننده، وابسته به استفاده از ابزار و رنگ هاي با کيفيت است. گزارش هاي ارائه شده کتبي يا شفاهي شما نيز، اثر نقاشي هستند که شما خلق کرده ايد. حتي اگر ايده بسيار خوبي براي پياده سازي کار استفاده کرده باشيد و همه تلاش خود را نيز براي انجام آن کرده باشيد، در صورتي که نتوانيد جزئيات کار خود را کامل و بصورتي که براي مشتري قابل درک و فهم باشد ارائه کنيد، از ديد وي کار شما رضايت بخش نخواهد بود!
مهارت در تنظيم قالب نوشتن گزارش چه از نظر بيان موارد فني بصورت واضح و چه از نظر رعايت اصول نگارش، و همچنين داشتن قابليت در ارائه خوب و رساي مطالب (فني) به زباني که براي مشتري قابل درک و لمس باشد، از مهارت هاي کليدي شما بعنوان يک مشاور خوب هستند. ارزش اين موضوع آنقدر زياد است که ارزش دارد شما حتي از وقت خود براي فراگيري مسائل فني کم کرده و به افزايش مهارت هاي خود در اين زمينه بپردازيد. هميشه سعي کنيد طوري خروجي ها، گزارشات و مستندات کاري خود را تنظيم کنيد که نيازي به منگنه کردن خود شما به گزارش براي ارائه توضيحات تکميلي در مورد مطالب وجود نداشته باشد! هرچند بسته به موقعيت و نوع کار، خروجي هاي مکتوب و شفاهي شما ممکن است داراي اهميت کمتر يا بيشتري شود، اما اين اصل در همه شرايط پابرجا بوده و اثر زيادي بر روي کار شما از ديد مشتري خواهد داشت .
يک قالب مشخص براي خروجي هاي خود تدوين کنيد : کيفيت گزارشي که شما تهيه و ارائه مي دهيد اهميت بسيار زيادي دارد که به آن اشاره کردم. اما متن و جزئيات خوب نوشته شده توسط شما، تنها در يک قالب و قاب خوب هستند که نمود پيدا مي کنند. درست مانند همان نقاش مثال زده شد. در صورتي که نقاش اثر خود را در يک قاب زيبا و متناسب با نوع اثر ارائه دهد، تآثير اثر وي بر روي مخاطب دوچندان مي شود. اين مورد در تهيه گزارش نيز صدق مي کند. در صورتي که شما بتوانيد گزارش خود را در يک قالب شسته رفته و فارغ از بي نظمي و آشفتگي ارائه کنيد، علاوه بر اينکه دنبال کردن و فهم گزارش را براي مخاطب آن آسانتر کرده ايد، نا خودآگاه همين نظم و ترتيب و رعايت نکات ظاهري براي زيبا سازي گزارش نظر مخاطب را جلب خواهد کرد. سعي کنيد براي هر نوع کار و گزارشي که تنظيم مي کنيد، يک قالب استاندارد و مشخص آماده کنيد. مثلآ براي ارائه گزارشات مربوط به تست نفوذ از يک قالب و براي گزارش يک پروژه ارزيابي امنيتي و يا محکم سازي، از قالب هاي خاص خودشان استفاده کنيد. تهيه و بهينه سازي اين قالب ها مي بايست به مرور زمان صورت گيرد تا بتواند هر نوع گزارش و ومطلبي را بدون نياز به تغير زياد در خود بگنجاند. در اختيار داشتن قالب (Template) براي تهيه گزارش ها و ارائه ها چندين مزيت دارد. اولين مزیت وجه ظاهري است که به آن اشاره شد. مزيت بعدي، صرفه جويي قابل توجه در زمان مورد نياز براي تهيه گزارش است. همچنين با در اختيار داشتن يک قالب که خود شما آنرا تهيه و تکميل کرده ايد، به مرور زمان، در زمان شروع نگارش گزارش از سردرگمي شما براي رعايت ترتيب و تقدم و تآخر مطالب کاسته شده و همچنين مي دانيد که در گزارش مربوط به يک زمينه کاري خاص، چه مواردي مي بايست حتمآ قيد شوند. بدين ترتيب در گزارش تهيه شده چيزي از قلم نخواهد افتاد. بهتر است سعي کنيد خودتان اين قالب را طراحي و استفاده کنيد، اما براي شروع مي توانيد از قالب هاي موجود در اينترنت که توسط افراد يا شرکت هاي ديگر استفاده شده و بنظر مناسب مي رسند نيز ايده بگيريد .

خود را اصلاح کنيد : پس از انجام هر پروژه کاري سعي کنيد تا اشکالات کار خود و مشتري را پيدا کنيد و در مورد آنها فکر کنيد. اگر به مورد خاصي در آن پروژه برخورد کرديد و متوجه شديد که در آن زمينه اطلاعات شما کافي نبوده، در اولين فرصت اقدام به تکميل اطلاعات خود کنيد. اگر در طول پروژه مشتري از کار شما رضايت نداشته، سعي کنيد حتي در قالب يک جلسه پيشنهادات و انتقادات با مشتري، اشکالات کار خود را جستجو کرده و بفهميد که از ديد مشتري در چه شرايطي کار شما ميتوانسته قابل قبول باشد. اگر در خلال کار با مشتري به مشکلاتي از سمت وی برخورد کرده ايد، سعي کنيد متوجه شويد که شما در کدام قسمت کار خود اشتباه کرده ايد که به مشتري فرصت اشتباه کردن را داده است. فراموش نکنيد که در هر صورت و در هر شرايطي، اين شما هستيد که بايد خود را با شرايط مشتري تطبيق دهيد .پس اگر در جايي از کار با مشتري به مشکل برخورده ايد، به احتمال زياد و در اغلب موارد اين مشکل ناشي از عدم پيشبيني شما براي آن مورد خاص بوده است .
هميشه بروز باشيد : سخت است، اما غير ممکن نيست ! بعنوان کسي که در زمينه امنيت سيستم هاي کامپيوتري و نرم افزارها فعاليت مي کند، آگاهي از آخرين يافته ها، تکنيک هاي حمله و دفعاع، تحقيقات در جريان و يا حتي آگاهي از مواردي که بصورت عمومي منتشر نمي شوند وظيفه شماست. هر شخصي با صرف چند روز زمان و جستجو در يک زمينه خاص مي تواند در مورد يک موضوع يا راهکار امنيتي شروع به صحبت و اظهار نظر کند، اما با يک هفته زمان هرگز نمي توان بطور کامل در مورد آن موضوع خاص ديد دقيق و فني پيدا کرده و به همه راهکارها در آن زمينه اشراف پيدا کرد. تغييرات و پيشرفت ها نيز در زمينه امنيت، به روز و حتي ساعت مي باشند ! بنابراين لازم و ضروري است که شما هميشه و بطور مستمر خود را در جزيان آخرين هاي اين زمينه کاري قرار دهيد. چه از طريق مطالعه کتاب هاي جديد، وب سايت هاي معتبر خبري و اطلاعاتي، گروه هاي پستي و يا کنفرانس هاي فني و آکادميک. مشتري به شما پول مي دهد تا از اطلاعات بروز و کامل در کنار تجربيات قبلي و ديدگاه هاي فني شخصي شما بهره گيرد، و الا وب سايتي مانند MITRE يا SecurityFocus مي تواند اطلاعات بسيار کامل تر و جامع تري را نسبت به شما به مشتري ارائه دهد. استفاده از روش ها و تکنيک هاي قديمي و نا کارآمد براي سيستم هاي امروزي و بحث و گفتگو در مورد آنها، مسلمآ انگيزه خاصي براي يک مشتري آگاه ايجاد نکرده و وي را به فکر فرو نخواهد برد که چرا با اينکه چند ماه پيش تيم يا شخص مشاور ديگري از او هزينه ايي دريافت کرده، باز هم مي بايست براي انجام مجدد همان کار به شما هزينه پرداخت کند. شما تنها در صورتي موفق به جلب رضايت چنين مشتري خواهيد شد که بتوانيد اتفاقات رخ داده در طول اين مدت، و يافته هاي جديد علمي يا فني را به وي گوشزد کنيد. بارها براي خود من پيش آمده که امنيت سيستمي را که مدتي قبل بطور نسبي روي آن حساب مي کردم، زير سوال برده ام و دليل اين بوده که در اين فاصله زماني تحقيقاتي انجام شده بوده که انتشار نتايج آن باعث زير سوال رفتن سيستمي شده که پيش از اين امنيت آن قابل قبول بنظر ميرسيده. هميشه و هميشه يک زمان مشخص را در برنامه کاري روزانه خود، براي مطالعه مفاد و مطالب جديد اختصاص داده و سعي کنيد در سخت ترين شرايط نيز از آن غافل نشويد. آنقدر اين کار را ادامه دهيد تا مرور روزانه مطالب (وبلاگ ها، اخبار، ايميل ها، کتاب ها و ... ) براي شما تبديل به يک عادت روزانه شود، به طوري که ترک آن موجبات مرض را فراهم آورد !
هر مطلب جديدي را از پايه ياد بگيريد : براي اينکه شما بتوانيد يک مشاور خوب باشيد، بايد بتوانيد در هر يک از زمينه هايي که در مورد آن به مشتري سرويسي مي دهيد، در سطح بالايي از دانش قرار داشته باشيد. اگر قرار است بر روي بانک هاي اطلاعاتي کاري انجام دهيد، بايد در حد يک مدير بانک اطلاعاتي بدانيد. اگر قرار است بر روي بستر يک شبکه کاري انجام دهيد بايد در حد يک متخصص شبکه از جزئيات کارها، پروتکل ها و تکنولوژي ها آگاهي داشته باشيد. اگر قرار است در مورد نحوه مديريت يک شبکه کاري انجام دهيد بايستي در سطح يک مدير شبکه خبره از اين زمينه دانش داشته باشيد و الي آخر. همانطور که مي بينيد کسب دانش و تجربه در اين همه زمينه متنوع و بطور همزمان کار آساني نيست و اين تازه شروع کار شماست. علاوه بر همه اين اصول و مباني، در هر زمينه شما مي بايست در خصوص نکات و مسائل امنيتي نيز بطور جزء و دقيق معلوماتي کسب کنيد. تفاوت شما با يک مدير بانک اطلاعاتي معمولي يا مدير شبکه نيز در همين است. شما بايد يک پله بالاتر از آنها قرار داشته باشيد تا بتوانيد اشکالات کار آنها را شناسايي کرده و رفع کنيد. لزوم رسيدن به اين سطح نيز فرا گرفتن هر زمينه و عنوان بصورت پايه ايي و اصولي است. تا زماني که شما اصول مديريت يا طراحي شبکه را فرا نگرفته باشيد، خواندن مقاله هاي جديد يا کتب متفرقه کمکي به شما نخواهد کرد. تنها زماني مي توانيد موفق عمل کنيد که اصول پايه و اوليه هر زمينه را بصورت استاندارد و کامل فرا گرفته، و پس از آن ياد گرفتن جزئيات و نکات ريز را به زماني موکول کنيد که به آنها نياز داريد. دقيقآ به همين دليل است که در اين زمينه کاري تجربه قبلي و آگاهي از دانش پايه مورد نياز بيش از هر فاکتور ديگري مي تواند به پيشرفت شما در اين زمينه کاري سرعت بخشد. بطور مثال براي شخصي که هيچ ديد يا زمينه قبلي در مورد برنامه نويسي ندارد، فهم و شناسايي مشکلات يک سيستم در سطح نرم افزار، و استفاده از آنها و يا رفع آنها اگر غير ممکن نباشد، بسيار مشکل خواهد بود. اما فرا گفتن نکات امنيتي در توليد و پياده سازي نرم افزار و يا حتي شناسايي مشکلات و سو استفاده از آنها، براي کسي که داراي زمينه و تجربه قوي در برنامه نويسي است، بسيار آسان خواهد بود. همين مثال در مورد سايز زمينه ها مانند مديريت شبکه، سيستم عاي عامل و يا بانک هاي اطلاعاتي نيز کاملآ صدق مي کند .
در پایان، شما نیز اگر نکته و مطلبی را برای تکمیل دارید می توانید بصورت نظرات برای همین پست عنوان کنید .

Twitter me

Since I used to be so silent on this blog recently ,I though pointing a post to my twitter (آدرس بمب افکن من)may help a bit . Past months has been so hard for me as I had to be on duty (conscription if you've forgot what`s going on with me) from morning to evening , and working on my own projects from evening to mid-night . That was really killing , considering some overlaps between on going projects!
Anyway I guess hard days are over now and tonight I've just celebrated my third night without being worry about ANY projects :p
I've recently joined to a new department and there I`ll work on what I've always liked to do , not punching cards as some of you may knew ! :)

I hope I`d be able to get back to blogging again , and post about some topics I've worked on in past months. Since I`m a LIFO kind of blogger, I may write about my last personal project first . Recently I've finished doing a large scale analysis against all Iranian networks (over 350 network segments and near 1.5 million IP addresses in total ) . As soon as I found some time to Excelize my findings, I`ll release them here .

//EoP.

August 10, 2009

Old tricks that still work... [Just to note]

Long long time ago , some tricks has been identified (some people call this a vulnerability, due to nature of the buggy device) on a content filtering system widely deployed in country which let us easily bypass filtering system . Well , the case has been documented & archived without proper vendor response and some years passed .

Few days ago I found a tiny application let the user bypass content filtering systems nicely in a very tiny application (about 5kb of size ) . Checking internals of the tool I found that it`s using one of the same old tricks I mentioned, behind it`s simple GUI . Not a big deal at all , but it`s interesting for me how things has NOT changed since the last time that vendor has been checked for this bug , as a massively deployed content filtering appliance. Should we call it 'shame' or a 'fail' , or even worse 'lack of technical knowledge to fix' for the named vendor ? :)

I guess below image is self-explaining .