امنیت چیست ؟

 
 اولین رسالت امنیت ، حفاظت از سرمایه های یک سازمان است که ممکن است شامل آیتم های ملموسی نظیر یک صفحه وب و یا بانک اطلاعاتی مشتریان و یا آیتم های غیرملموسی نظیر شهرت و اعتبار یک سازمان باشد. امنیت یک مسیر است نه یک مقصد و به موازات تجزیه و تحلیل زیرساخت و برنامه های موجود ، می بایست اقدام به شناسائی تهدیدات و خطرات ناشی از آنان نمود . در واقع ، امنیت به مدیریت خطرات و پیاده سازی یک سیستم به منظور پاسخگوئی و مقابله با تهدیدات اشاره داشته و در ارتباط با عتاصر کلیدی زیر است :
 
 Authentication ، فرآیندی است که به کمک آن به صورت منحصربفرد سرویس گیرندگان یک برنامه شناسائی می گردند . کاربران ، سرویس ها ، فرآیندها و کامپیوترها ، نمونه هائی از سرویس گیرندگان یک برنامه می باشند . در واقع ، authentication هویت استفاده کنندگان یک برنامه را بررسی می نماید .
 
 Authorization ، فرآیندی است که به کمک آن دستیابی سرویس گیرندگان تائید شده به منابع و عملیاتی که قصد انجام آن را دارند بررسی و مجوز لازم صادر می گردد. فایل ها ، بانک های اطلاعاتی ، جداول ، سطرها ، منابع موجود در سطح سیستم نظیر کلیدهای ریجتسری و داده پیکربندی ، نمونه هائی از منابع مورد درخواست سرویس گیرندگان می باشند . انجام تراکنش هائی خاص نظیر خرید یک محصول ، واریز و انتقال پول از یک حساب به حساب دیگر و یا افزایش اعتبار یک کارت اعتباری از جمله عملیاتی می باشند که می بایست مجوز استفاده از آنان برای سرویس گیرندگان صادر گردد . در واقع ، authorization محدوده مجاز عملیاتی را که یک سرویس گیرنده می تواند انجام دهد را مشخص می نماید .
 
 Auditing : ممیزی موثر و ثبت عملیات انجام شده یکی از اصول مهم در جلوگیری از انجام اعمال خلاف قانون است . بدین ترتیب این اطمینان ایجاد خواهد شد که یک کاربر نمی تواند باعث عدم انحام یک کار و یا فعالیت در سیستم گردد و یا یک تراکنش را مقداردهی اولیه نماید . مثلا" در یک سیستم e-commerce می بایست از مکانیزم هائی استفاده گردد تا این اطمینان حاصل گردد که یک مصرف کننده نمی تواند سفارش انجام شده برای خرید یکصد نسخه از یک کتاب را انکار نماید .
 
 Confidentiality ، که از آن با نام privacy نیز نام برده می شود ، فرآیندی است که به کمک آن این اطمینان ایجاد می گردد که حریم خصوصی داده رعایت و امکان مشاهده آن توسط کاربران غیرمجاز و یا سایر افرادی که قادر به ردیابی ترافیک یک شبکه می باشند ، وجود نخواهد داشت .
 
 Integrity ، فرآیندی است که به کمک آن این اطمینان ایجاد می گردد که داده در مقابل تغییرات تصادفی و یا تعمدی حفاظت خواهد شد . همانند privacy ، یکپارچگی اطلاعات یک فاکتور اساسی در خصوص امنیت داده محسوب می گردد ، خصوصا" در مواردی که داده در طول شبکه مبادله خواهد شد . یکپارچگی داده در حال حمل ،‌عموما" با استفاده از روش هائی نظیر hashing و یا کدهای تائید پیام انجام می شود .
 
 Availability ، فرآیندی است که به کمک آن این اطمینان ایجاد خواهد شد که همواره داده برای کاربران مجاز در دسترس و قابل استفاده خواهد بود . در اغلب حملات از نوع DoS ، مهاجمان این هدف را دنبال می نمایند که بتوانند امکان استفاده و در دسترس بودن برنامه برای کاربران مجاز را غیرممکن و عملا" آن را از کار بیندازند .
 
 تعاریف اولیه برخی از اصطلاحات امنیتی : تهدیدات ، نقاط آسیب پذیر و حملات
 
 تهدید ( threat ) : به هرگونه پتانسیل بروز یک رویداد مخرب و یا سایر موارد دیگر که می تواند به سرمایه های یک سازمان آسیب برساند ، تهدید گفته می شود . به عبارت دیگر، هر رویدادی که بتواند به سرمایه های یک سازمان آسیب برساند ، در زمره تهدیدات محسوب می گردد .
 
 نقاط آسیب پذیر (vulnerability) : ضعف های موجود در یک سیستم می باشند که پتانسیل اولیه بروز یک رویداد مخرب را فراهم می نمایند . ضعف در طراحی ، پیکربندی اشتباه ، استفاده از روش های کدینگ غیرایمن مهمترین دلایل ایجاد یک ضعف در سیستم می باشند . ضعف در بررسی صحت داده ورودی توسط کاربر ، نمونه ای از یک لایه آسیب پذیر در یک برنامه است که می تواند زمینه بروز یک تهاجم را فراهم نماید .
 
 تهاجم (attack) : عملیاتی است که محوریت آن سوء استفاده از نقاط آسیب پذیر و پتانسیل های بروز یک رویداد مخرب می باشد . ارسال ورودی مخرب به یک برنامه و یا flooding یک شبکه به منظور از کار انداختن یک سرویس ، نمونه هائی در این زمینه می باشد .
 
 یک تهدید پتانسیل بروز یک رویداد مخرب را فراهم می نماید که می تواند به سرمایه های یک سازمان آسیب برساند
 در حالی که در یک تهاجم موفقیت آمیز از نقاط آسیب پذیر موجود در سیستم استفاده می گردد .
 
 چگونه می توان یک برنامه وب ایمن را ایجاد نمود ؟
 تا زمانی که شناخت مناسبی نسبت به تهدیدات وجود نداشته باشد ، امکان ایجاد یک برنامه وب ایمن وجود نخواهد داشت . بنابراین قبل از هر چیز لازم است که با "مدل تهدیدات " موجود آشنا شویم . هدف مدل فوق، آنالیز معماری و نحوه طراحی برنامه به منظور شناسائی نقاط آسیب پذیری است که ممکن است به صورت تصادفی توسط یک کاربر ناآگاه و یا مهاجمان با اهداف مخرب مورد سوء استفاده قرار گرفته تا با استناد به آنان بتوانند موجودیت و امنیت سیستم را با خطر مواجه نمایند .
 پس از آسنائی با تهدیدات ، می بایست با بکارگیری مجموعه ای از اصول امنیتی اقدام به طراحی سیستم نمود . در ادامه ، پیاده کنندگان می بایست از روش های ایمن به منظور نوشتن کدهای مطمئن ، مستحکم و قابل اعتماد استفاده نمایند . پس از طراحی و پیاده سازی برنامه ، می بایست از یک شبکه ایمن ، یک host مطمئن و یک پیکربندی مناسب بر روی سرویس دهنده ،‌ استفاده گردد .
 ایجاد یک برنامه وب ایمن ، مستلزم اقدامات امنیتی چند جانبه ای است که موفقیت در تمامی آنان ، ایمن بودن برنامه های‌ وب را تضمین خواهد کرد . ایمن سازی شبکه ، host و برنامه ، رئوس مثلث امنیتی ایجاد برنامه های وب ایمن را تشکیل می دهند .
 
 ایمن سازی شبکه ، host و برنامه
 به منظور ایجاد برنامه های وب ایمن ، تبعیت از یک رویکرد جامع امری است الزامی . بنابراین ، می بایست امنیت برنامه های‌ وب را در سه لایه متفاوت بررسی و اقدامات لازم را در هر لایه با توجه به جایگاه آن انجام داد . شکل زیر سه لایه مهم به منظور ایجاد برنامه های وب ایمن را نشان می دهد .
 
 
 
 وجود یک نقطه آسیب پذیر در شبکه به یک مهاجم اجازه می دهد تا کنترل یک host و یا برنامه را بدست بگیرد .
 
 وجود یک نقطه آسیب پذیر در host به یک مهاجم اجازه می دهد تا بتواند کنترل یک شبکه و یا برنامه را بدست بگیرد .
 
 وجود یک نقطه آسیب پذیر در برنامه به یک مهاجم اجازه می دهد تا کنترل یک host و یا شبکه را بدست بگیرد .
 
 در بخش دوم به بررسی هر یک از لایه های فوق خواهیم پرداخت .

 تهیه شده در شرکت سخا روش

هک با استفاده از پورت 445

میخواهیم به ویندوز 2000 یا ایکس پی حمله کنیم از بیرون دستگاه بدون اینکه به قربانی فایلی بدیم اجرا کنه یا هر ارتباط دیگری با قربانی داشته باشیم یعنی میخوایم خیلی حرفه ای نه مثل این هکر های تازه کار که تروجان میدن به مردم خیلی حرفه ای خودمان میخوایم یک پورت روی دستگاه قربانی باز کنیم بدون اینکه حتی یک کلمه هم با قربانی حرف بزنیم خوب حالا که فهمیدید چیکار میخوام بکنیم من یکبار دیگه هم خلاصه بگم یک ای پی انتخاب میکنید و بعد هکش میکنید اولین کاری که میکنیم این است که ای پی مورد نظر یا همان قربانی را برای باز بودن پورت 445 امتحان میکنیم
Start->run->CMD
را برای باز کردن یک صفحه کامند پرومت بزنید و بعد با دستور
telnet ip 445
امتحان میکنیم که ایا پورت 445 باز است یا نه البته شما اگر حرفه ای هستید حتما مثل هکر های حرفه ای برای این کارها یک برنامه خاص را استفاده میکنی بنا به سلیقه خودتان که از چه برنامه ای خوشتان میاد ولی در اینجا از دستوراتی استفاده میکنیم که هر کسی خواست این کار را انجام بدهد نیاز به برنامه خاصی نداشته باشه و با کمترین امکانات میخوایم به نتیجه برسیم
خوب توجه کنید به جا ای پی در دستور بالا باید ای پی قربانی را وارد کنید و اگر این دستور را وارد کردید و اتصال برقرار شد یعنی پورت 445 باز است پس گام اول را برداشتید و اگر اتصال برقرار نشد و پیغام خطا دریافت کردید قربانی شما به این نوع حمله نفوذ پذیر نیست
خوب حالا به گام دوم میرویم در زیر کد های حمله به این پورت را مشاهده میکنید این کدها را باید کامپایل بفرمائید و فایل اجرایی که بدست می اورید را بصورت زیر استفاده میکنید
 

expl [options]

در خط بالا طرز استفاده به این ترتیب است اولین کلمه expl نام فایل اجرایی است که بعد از کامپایل ایجاد کردید target یک عدد یک رقمی است که مقدار 0 برای ویندوز ایکس پی است و مقدار 1و2 برای ویندوز 2000 است در اخر این نوشته طرز تشخیص اینکه کدام عدد را استفاده کنید یعنی از کجا بفهمید قربانی ویندوز ایکس پی است که 0 بزنید یا قربانی ویندوز 2000 است که 1 یا 2 بزنید را میخوانید
victim ip همان ای پی قربانی شما است که پورت 445 ان باز بود
binport شماره پورتی است که میخواهید روی دستگاه قربانی برای شما باز بشود و به ان پورت وصل بشوید و قربانی را هک کنید
option  یک دستور است که در ادامه تک دستور این برنامه را توضیح میدهم

خوب دوست من کار بسیار ساده است فرض کنید ای پی قربانی من 217.0.0.1 است و من طبق ان چیزهایی که بالا گفتم این کارهای را به تریتب انجام میدهدم


1- Start --> Run --> CMD
2- Telnet 217.0.0.1 445


3- اگر وصل شد از برنامه حمله که قبلا کامپال کردم و الان اماده استفاده است استفاده میکنم
4- پنجره قبلی را که در 2 دستور قبل باز کردم میبندم


5- Start->Run->CMD
6-expl.exe 0 217.0.0.1 24745


----بعد از اینکه دستور خط 6 را زدنید این نوشته ها را مشاهده میکنید----


 * [*] Target: IP: 217.0.0.1: OS: winXP    [universal] lsass.exe
 * [*] Connecting to 217.0.0.1:445 ... OK
 * [*] Attacking ... OK

7-حمله انجام شد و پورت مورد نظر شما که در خط شماره 6 من شماره پورت 24745 را انتخاب کردم  الان باز شده تا ما وارد دستگاه قربانی بشویم


8-Start-->Run-->CMD
9-telnet 217.0.0.1 24745

10-به احتمال 95 درصد شما موفق شدید دستگاه قربانی را هک کنید و این خطوط را مشاهده خواهید کرد
* Microsoft Windows XP [Version 5.00.2600]
 * (C) Copyright 1985-2001 Microsoft Corp.
 *
 * C:WINNTsystem32>


11- دوست من در این جا شما هر دستوری بزنید روی دستگاه قربانی اجرا میشود مثل اگر بزنید format C: می توانید هارد قربانی را فرمت کنید
ولی توجه کنید یک هکر در اوج قدرت دست به خرابکاری نمیزنه !!! پس هر کاری خواستید بکنید ولی خرابکاری نه !!!

و اما چطوری تشخیص بدهید که دستگاه قربانی شما ویندوز 2000 است که از عدد 1 یا 2 استفاده کنید یا ویندوز ایکس پی هست که از عدد0 استفاده کنید ؟ شما کافی است که همان دستور بالا را که برای حمله استفاده مکنید بزنید و فقط به اخرش -t  اضافه کنید یعنی اینطوری


expl 0 217.0.0.1 24745 -t

بعد از زدن این دستور برنامه به شما نسخه ویندوز را اعلام میکند اگر نسخه ویندوز را winnt 5.0اعلام کرد یعنی ویندوز 2000 است و شما عدد 1 یا 2 استفاده کنید و اگر winnt 5.1 را اعلام کرد ویندوز ایکس پی است. http://iran.isgreat.tv