، کرج , (اخبار رسمی): اگر شخصی علاقه دارد وارد دنیای جذاب امنیت سایبری شود ولی نمیداند از کجا شروع کند، این مقاله مفید خواهد بود. ورود به دنیای امنیت و انتخاب یک فیلد جهت یادگیری و ترسیم نقشه راه و برنامهریزی در ابتدا خیلی سخت و گیجکننده به نظر میآید چون تعداد زیادی از گزینهها و منابع برای این کار وجود دارد.
بسیاری از افراد متخصص امنیت، همواره با سوالاتی از این دست مواجه میشوند که چطور میتوان هکر شد؟، چگونه هکر کلاه سفید شویم؟، چگونه هکر کلاه سیاه شویم؟ چگونه هکر قانونمند بشویم؟، وضع بازار کار امنیت چطوره است؟ و تست نفوذ چیست؟و سوالاتی از این قبیل.
نکات مهم قبل از شروع:
۱- فیلد امنیت بسیار پویاتر از دیگر شاخههای آی تی است و هر روز ابزار و آسیب پذیریها و کتابها و تکنیکهای جدید کشف، توسعه و منتشر میشود. در نتیجه به روزرسانی دانش و تخصص در این حوزه سختتر و زمانبرتر از رشتههای دیگر است، پس باید صبور بود.
۲- وقتی کسی در یکی از شاخههای امنیت تخصص دارد، به این معنی نیست که از دیگر شاخهها هیچ اطلاعی ندارد. بسیاری از بخشهای امنیت در هم تنیدهاند و مطالب و ابزار مشترک دارند و در واقع بسیاری از مفاهیم بنیادی بین تمامی رشتههای امنیت مشترک هستند. به عنوان مثال اگر کسی در زمینه تست نفوذ وب تخصص دارد، به این معنی نیست که دانشی در دیگر زمینههای امنیت ندارد.
۳- در حال حاضر در رشتههای تخصصی امنیت در شرکتهای مختلف سراسر دنیا کمبود نیروی کاری وجود دارد و شغل برای متخصصان این رشته تضمین شده است، اما شخص نباید صرفا به این دلیل وارد رشته امنیت شود. چون احتمال زیادی وجود دارد که موفق نشود. اگر در این رشته پویا، علاقه و انگیزه درونی وجود نداشته باشد، دنبال کردن و به روز نگه داشتن دانش خیلی سخت خواهد شد و باید حتما در سایتهای باگ بانتی نظیر hackerone.com ،bughub.net ،bugcrowd.com فعالیت داشت.
۴- دانش زبان انگلیسی در این حوزه بسیار مهم است (حداقل در حد خواندن متون فنی). تقریبا تمام کتابها و منابع آموزشی دست اول و به روز، به این زبان نوشته و منتشر میشوند. پس اگر زبان شخصی در حد خوبی نیست، حتما روی یادگیری آن به عنوان یکی از پیش نیازهای مهم این رشته باید سرمایهگذاری کند.
۵- مهمترین ویژگیهای شخصیتی یک فرد موفق در این حوزه، کنجکاوی و پشتکار است. به عنوان مثال در این مقاله کلی اصطلاح و کلیدواژه مطرح میشود که ممکن است قبلا نشنیده باشد. انتظار این است که مخاطب خودش این مطالب ر جستجو کرده و بیشتر با آنها آشنا شود و اگر شخصی با خواندن یک مقاله یا کتاب متوجه یک مطلب نشد، دنبال منابع دیگر رفته و آنقدر ادامه دهد تا آن مطلب را متوجه شود. البته همانطور که قبلا اشاره شد باید صبور بود. بعضی از مطالب ممکن است در ابتدا سخت و مبهم به نظر آیند ولی پس از کسب کمی تجربه و مطالعه بیشتر و سوال از افراد حرفهایتر، قابل فهمتر خواهند شد.
۶- هر فردی شیوه یادگیری خاص خودش را دارد . بعضی باید کلاس بروند و تحت آموزش استاد باشند، بعضی ویدئوهای آموزشی را میپسندند و بعضیها هم کتاب را ترجیح میدهند.
مفاهیم بنیادی:
یک سری مفهوم و دانش، زیربنایی هستند و بهتر است قبل از شروع یادگیری تخصصی امنیت (یا در کنارش) روی آنها مطالعه جدی داشت چون درک صحیح این مفاهیم، همواره و در تمامی رشتهها به او کمک خواهد کرد و اگر این مفاهیم خوب درک نشود، شخص در درک مسائل پیچیدهتر درجا خواهد زد.
۱- مفاهیم اولیه و مقدماتی رمزنگاری مثل هش، تولید اعداد تصادفی، الگوریتم های رمزنگاری متقارن و نامتقارن، امضای دیجیتالی، تبادل کلید، آشنایی با نحوه کار TLS، آشنایی کلی با ابزار رمزنگاری پرکاربرد مثل OpenSSL، GPG و غیره.
۲- مفاهیم شبکه و TCP/IP و آشنایی با پروتکلهای مهم شبکه مثل DNS و HTTP و ARP و تفاوتهای بین TCP و UDP و آشنایی با لایههای شبکه، روش کار پراکسیها و وی پی انها، نحوه مشاهده ترافیک شبکه، مفاهیم مقدماتی مربوط به مسیریابی و NAT و نحوه عملکرد Gatewayها و غیره. در اوایل یادگیری، ممکن است این مطالب خشک و خسته کننده به نظر بیایند، اما با یادگیری عملی (نه صرفا تئوری) میتوان یادگیری را لذتبخشتر کرد. مثلا میتوان پکتهای شبکه را توسط ابزاری مثل Wireshark مشاهده کرد. از ابزار ابتدایی مثل Ncat و Curl هم غافل نباید شد. از ابزار پیشرفتهتر میتوان به Scapy و Bettercap اشاره کرد.
۳- آشنایی با ادبیات کلی امنیت. مفاهیمی مثل CIA ،Authentication ،Authorization ،Defense-In-Depth، آسیبپذیری، اکسپلویت، ریسک، تهدید، فازینگ، بروت فورس، …
۴- آشنایی با مکانیسم کارکرد اینترنت و وب (با نیم نگاهی به امنیت) که پیش نیازش، ۳ مورد قبلی هستند. مثلا وقتی یک صفحه HTTPS در مرورگر باز میشود، چه اتفاقاتی میافتد؟ از لحظهای که آدرس در مرورگر تایپ میشود تا وقتی که صفحه روی مرورگر نمایش داده شود، چه پروتکلهایی درگیر هستند؟ سیستم عامل، مرورگر، سرور، سخت افزارها و نرمافزارهای بین سیستم و سرور چه نقشی دارند؟
یک کتاب خوب در این زمینه High Performance Browser Networking است که خواندنش توصیه میشود.
از دیگر مفاهیم مربوطه، نحوه عملکرد Certificateها و زنجیره این گواهیها و نقش CA است.
۵- آشنایی با زبان برنامه نویسی: بسته به فیلدی که شخص امنیت انتخاب میکند، دانستن زبان برنامهنویسی میتواند بین مفید بودن تا حیاتی بودن تغییر کند. بسیاری از تخصصهای امنیت، نیازمند آشنایی با مفاهیم برنامهنویسی هستند و بعضی مستقیما با برنامهنویسی درگیرند. مثلا در ادامه بیان شده که کسی که تخصصش بررسی امنیتی کد است، قطعا باید «دید عمیقی» از زبانی که کدش را بررسی میکند داشته باشد. ولی برای فیلد دیگری صرف این که قادر به دستکاری و کامپایل کدهای اپن سورس (در زبانهای مختلف) باشد، کفایت میکند.
با این حال به طور کلی یکی از زبانهای پرکاربرد در دنیای امنیت، که در قالب فیلدها از پن تست تا اکسپلویتنویسی کاربرد دارد، پایتون (Python) است که ابزار و کتابخانههای امنیتی زیادی در این زبان نوشته شدند. در گذشته از سی استفاده زیادی در امنیت میشد ولی در مقایسه با گذشته، کاربرد این زبان توی نرمافزارهای سمت کاربر کمتر شده و بیشتر سمت سرورها و برنامههای نیازمند سرعت پردازش و پرفورمنس بالا استفاده میشود (اگر چه همچنان دانستن این زبان خیلی کمک میکند و حتی میتوان گفت جاهایی حیاتی است. به خصوص در حوزههایی مثل مهندسی معکوس باینری یا توسعه اکسپلویت. چون که بسیاری از نرم افزارهای مهم مثل سیستم عاملها و مرورگرها در زبان سی یا سی پلاس پلاس نوشته شدن و دانستن مفاهیمی مثل پوینترها که در این زبان برای مدیریت حافظه استفاده میشود، مفید است.)
برخی تخصصها مثل مهندسی معکوس نیازمند دانش اسمبلی (X86,ARM,…) هستند. دانستن زبان جاوا اسکریپت هم به خصوص برای کسانی که به نحوی با وب سر و کله میزنند مهم است. یک سری زبان هم هستند که شاید زبان برنامه نویسی مجزا و کامل نباشند، اما دانستن آنها خیلی مهم است. مثل زبان SQL که در پایگاههای داده استفاده میشود. آشنایی با Regex که تقریبا هر جا میتواند کاربرد داشته باشد را هم باید مدنظر داشت. همچنین آشنایی با شلها یا زبانهای اسکریپتی سیستم عاملها مثل Bash یا PowerShell هم خیلی کاربردی است.
۶- دانش خوب از سیستم عاملی که از آن استفاده میشود و معماری آن و مکانیسمهای امنیتی پیادهسازی شده در آن و آشنایی با Command Line و … مثلا برای لینوکس، کتابهایی مثل How Linux Works یا The Linux Command Line منابع خوبی هستند. کتابهای سری Windows Internals هم برای یادگیری مفاهیم زیربنایی و پیشرفته ویندوز بی نظیر هستند.
### پایان خبر رسمی