<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Mohammadamin</title>
        <link>https://virgool.io/feed/@mohammadaminhosseini139028</link>
        <description>سلام! من یه برنامه‌نویس و تحلیلگر امنیت هستم که عاشق کشف پشت پرده سیستم‌ها و نوشتن چیزهایی هستم که درست کار کنن. اینجا تجربیاتم رو با شما به اشتراک می‌ذارم!</description>
        <language>fa</language>
        <pubDate>2026-06-21 16:14:50</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/3683284/avatar/t4PTv5.jpg?height=120&amp;width=120</url>
            <title>Mohammadamin</title>
            <link>https://virgool.io/@mohammadaminhosseini139028</link>
        </image>

                    <item>
                <title>WannaCry چگونه جهان را به زانو درآورد؟</title>
                <link>https://virgool.io/@mohammadaminhosseini139028/wannacry-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%AC%D9%87%D8%A7%D9%86-%D8%B1%D8%A7-%D8%A8%D9%87-%D8%B2%D8%A7%D9%86%D9%88-%D8%AF%D8%B1%D8%A2%D9%88%D8%B1%D8%AF-gy5iyfriqgr1</link>
                <description>مقدمهدر صبح جمعه ۱۲ مهٔ ۲۰۱۷ جهان امنیت سایبری با یکی از بزرگترین همهگیریهای باجافزاری تاریخ مواجه شد؛ موجی که بهسرعت از بیمارستانهای بریتانیا تا خودپردازهای چین و خطوط تولید رنو در فرانسه پیش رفت و بیش از ۳۰۰ هزار سیستم را در ۱۵۰ کشور درگیر کرد. این بدافزار که «WannaCry» یا «WannaCrypt0r 2.0» نام گرفت، بهلطف سوءاستفاده از یک آسیبپذیری بحرانی در پیادهسازی SMBv1 ویندوز (مشهور به EternalBlue) توانست خود را در شبکهها همانند کرم (worm) تکثیر کند و شکل جدیدی از تهدید را به نمایش گذارد؛ تهدیدی که ترکیبی از باجافزار (ransomware) و کرم شبکهای (network worm) بود و نشان داد چگونه هکرها میتوانند از ابزارهای فوقپیشرفتهٔ درزکرده از آژانسهای اطلاعاتی برای حملات جنایی در سطح گسترده استفاده کنند.ریشههای فنی ماجراپروتکل SMB و نسخهٔ آسیبپذیر آنپروتکل Server Message Block یا SMB، ستون فقرات بهاشتراکگذاری فایل و چاپگر در شبکههای ویندوزی است. نخستین پیادهسازیهای SMB به اواخر دههٔ ۸۰ میلادی بازمیگردد، اما نسخهٔ ۱ (SMBv1) که در ویندوز NT 4.0 جا افتاد، همچنان تا سال ۲۰۱۷ روی میلیونها ماشین فعال بود. SMBv1 بهدلیل معماری قدیمی، شناسایینشدهبودن طول پیام و نبود احراز هویت سفتوسخت، بارها هدف حفرههای امنیتی قرار گرفته بود؛ بااینحال، عطف به سازگاری عقبرو، بسیاری از سازمانها نتوانستند آن را کنار بگذارند.EternalBlue: CVE-2017-0144آسیبپذیری CVE-2017-0144 در سرویس srv.sys ویندوز ریشه داشت؛ ماژولی که فراخوانهای low-level SMBv1 را پردازش میکند. مشکل از جایی آغاز میشود که سرور SMB، فیلد Trans2 SESSION_SETUP را که معمولاً حاوی اطلاعات متغیر طول است، بدون اعتبارسنجی اندازهٔ واقعی در حافظه کپی میکند. وقتی مهاجم بستهٔ دستکاریشدهای میفرستد که طول ادعا شده در هدر با طول دادهها هماهنگ نیست، سرور در حلقهٔ copy به سرریز بافر میرسد و ضمن تخریب stack، امکان اجرای کد دلخواه در حالت kernel (سطح Ring 0) را فراهم میکند.EternalBlue در حقیقت exploit کاملی بود که این باگ را قابل بهرهبرداری از راه دور میکرد؛ ابزاری که نخستین بار در آوریل ۲۰۱۷ همراه با مجموعهای از اکسپلویتهای «Equation Group» (منسوب به NSA) توسط گروه Shadow Brokers افشا شد. بدینترتیب، مهاجمان سایبری دسترسی رایگان به کدی یافتند که سالها با بودجهٔ دولتی توسعه یافته بود.زنجیرهٔ آلودگی WannaCry۱. اسکن پورت ۴۴۵/TCP: بدافزار ابتدا جهان را برای یافتن میزبانهایی که پورت SMB آنها باز بود، جار میزد.۲. ارسال بستهٔ مخرب EternalBlue: در صورت کشف مقصد آسیبپذیر، بستهٔ crafted اجرا میشد و shellcode با سطح سیستم فراخوانی میشد.3. استقرار DoublePulsar: اکسپلویت پس از موفقیت، backdoor موسوم به DoublePulsar را تزریق میکرد؛ درایوری در حافظهٔ کرنل که امکان اجرای دستورات DLL injection بعدی را تسهیل میکرد.4. ریختن WannaCry و رمزگذاری: از طریق DoublePulsar، فایل اجرایی WannaCry روی سیستم قربانی کاپی و اجرا میشد، کلید AES-128 یکتا ساخته، با کلید عمومی RSA-2048 توسعهدهندگان رمز میشد و سپس همهٔ پسوندهای هدف روی دیسک با الگوریتم دومرحلهای AES/RSA رمز میشدند.5. بازنشر خودکار: بدافزار فهرست آدرسهای IP محلی/اینترنتی را پیمایش کرده و همان چرخه را روی میزبانهای بعدی تکرار میکرد.مکانیزم «سوئیچ قطعشو» (Kill Switch)یکی از نکات جالب WannaCry وجود درخواست HTTP به دامنهای شبهتصادفی (iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com) بود. اگر پاسخ ۲۰۰ OK دریافت میکرد، بدافزار در همانجا متوقف میشد. پژوهشگر امنیتی بریتانیایی Marcus Hutchins تنها با ثبت آن دامنه، موج اول حمله را مهار کرد. ظاهراً نویسندگان باجافزار در تلاش برای دورزدن SandBoxها از «Domain Generation Algorithm» بهعنوان حسگر محیط مجازی استفاده کرده بودند؛ غافل از آنکه همین در را برای خنثیسازی سراسری باز گذاشته بودند.چرا پچ نشدیم؟مایکروسافت در ۱۴ مارس ۲۰۱۷ (دو ماه پیش از حمله) بستهٔ امنیتی MS17-010 را منتشر کرد که نهتنها CVE-2017-0144، بلکه مجموعهای از نقصهای SMBv1 را بست. بااینحال چند عامل باعث گسترش آسیبپذیری شد:ناهماهنگی چرخهٔ وصله در سازمانهای بزرگ – بسیاری مؤسسات پزشکی یا صنعتی وابسته به نرمافزارهای قدیمی بودند که با نسخههای جدید ویندوز یا پچهای اخیر ناسازگار بود.پایان پشتیبانی ویندوز XP و 2003 – شمار قابل توجهی از سیستمهای حیاتی، بهویژه در دستگاههای پزشکی و کیوسکهای خودپرداز، هنوز روی نسخههای EoL بودند. مایکروسافت در نهایت بهطور فوقالعاده برای XP وصله منتشر کرد، اما دیگر دیر شده بود.فعال بودن SMBv1 در شبکههای داخلی – حتی سازمانهای کاملاً پچشده تا زمان حمله SMBv1 را غیرفعال نکرده بودند و بدینترتیب راه نفوذ مستمر برای کرم فراهم بود.آسیبهای جهانیسرویس درمان ملی بریتانیا (NHS) مجبور شد عملهای جراحی را لغو و بیمارستانها را به حالت اضطراری ببرد.شرکت مخابراتی Telefónica در اسپانیا شبکهٔ داخلی خود را آفلاین کرد.صنایع خودروسازی رنو، نیسان و هوندا خطوط تولید را موقتاً تعطیل کردند.در چین، بیش از ۲۹ هزار دانشگاه و ۳۰۰ هزار کامپیوتر دولتی آسیب دیدند.برآورد خسارت مستقیم و غیرمستقیم به اعدادی بین ۴ تا ۸ میلیارد دلار رسید، هرچند مبلغ باج دریافتشده در کیفپولهای بیتکوین WannaCry کمتر از ۱۵۰ هزار دلار بود؛ نشانی دیگر از آنکه هدف، بیشتر ایجاد اختلال بود تا منفعت مالی صرف.تشریح دقیق کد اکسپلویتEternalBlue با ارسال یک SMB1 Trans2 Request شامل فیلد ParameterCount جعلی از مقدار واقعی بزرگتر، سرور را وادار میکند در مسیر SrvOs2FeaToNt ساختار FEA List را بدون کنترل اندازه در حافظه جای دهد. بهدنبال آن، متغیر stack Srv!SrvAllocateSecurityContext رونویسی میشود و آدرس برگشت به نقطهای در shellcode حمله تغییر مییابد. این shellcode سپس:1. جدول تابع KeServiceDescriptorTable را برای یافتن توابع سیستم فراخوانی میکند.2. تابع PsCreateSystemThread را فراخوانی میزند تا ترد در سطح Ring 0 بسازد.3. DLL backdoor را تزریق میکند تا کنترل بلندمدت حفظ شود.چالش اصلی exploit، گذر از ASLR و متریکهای تصادفیسازی ویستا به بعد بود؛ نویسندگان EternalBlue با سوءاستفاده از نشت اطلاعات در پیام SMB به تفکیک نسخهٔ سیستم و محاسبهٔ پایهٔ کرنل دست یافتند.گامهای دفاعی پس از WannaCry1. غیرفعالسازی SMBv1: دستور Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol در PowerShell تبدیل به توصیهٔ جهانی شد.2. پیادهسازی Micro-Segmentation: محدودکردن ترافیک East-West برای اینکه کرم نتواند آزادانه در شبکه حرکت کند.3. Patch Management چرخهای: مدل «Patch Tuesday» دیگر کافی نیست؛ پیادهسازی روندهای CI/CD امنیتی و تست خودکار سختافزارهای قدیمی الزامی شد.4. تهیهٔ نسخهٔ پشتیبان آفلاین: ذخیرهٔ زمانبندیشدهٔ snapshotها روی رسانهٔ غیرقابلنوشتن، بازیابی بعدی را تضمین میکند.5. مانیتورینگ رفتاری (EDR/XDR): تشخیص توالیهای ایجاد فایلهای با پسوند .WNCRY یا الگوریتمهای رمزگذاری سریع میتواند آلودگی را در دقیقهٔ اول شناسایی و قرنطینه کند.تأثیرات بلندمدت بر صنعت و سیاستبازنگری در افشای آسیبپذیریهای ذخیرهشده توسط دولتها: انتشار ابزارهای NSA باب بحث «Vulnerability Equities Process» را داغ کرد. آیا دولتها باید پیش از ذخیرهٔ اکسپلویت، به سازندگان نرمافزار هشدار دهند؟افول اعتماد به SMBv1: مایکروسافت از ویندوز ۱۰ نسخهٔ 1709 به بعد، SMBv1 را بهطور پیشفرض غیرفعال کرد.هزینهٔ واقعی تأخیر وصله: مهاجمان نشان دادند فاصلۀ بین انتشار پچ و استقرار کامل میتواند مرگبار باشد.تغییر در رویکرد جریمههای GDPR: جریمههای مبتنی بر «نقض داده» به «تعطیلی عملیات» نیز گسترش یافتند؛ زیرا خاموشی بیمارستانها تبعات انسانی مستقیمی داشت.جمعبندیWannaCry بیش از یک باجافزار بود؛ زنگ خطری جهانی دربارهٔ شکنندگی زیرساختهای قدیمی و خطر ذخیرهٔ اکسپلویتهای ناشناخته در گنجینههای دولتی. آسیبپذیری CVE-2017-0144 موجودیتی فنی در کُد SMBv1 بود، اما عوامل انسانی—بهروزرسانی نکردن، وابستگی به فناوری منسوخ، و اشتراکگذاری بیپروا—باعث شدند جرقهٔ یک نقص نرمافزاری به آتشی فراگیر بدل شود. آنچه WannaCry به جهان آموخت، اهمیت حیاتی مدیریت داراییها، وصلهٔ پیشگیرانه و استراتژی «فرض بر نفوذ» بود: اینکه مسأله، نه «آیا» بلکه «چه زمانی» است و باید پیش از آن به فکر دفاع چندلایه و بازیابی سریع بود.منابع پیشنهادی برای مطالعهٔ درباره حمله wannac cry:Microsoft Security Bulletin MS17-010MalwareTech Blog – How I Accidentally Stopped a Global Cyber-AttackKaspersky Securelist – WannaCry Ransomware: Technical AnalysisUS-CERT Alert &#40;TA17-132A&#41; – Indicators of Compromise and Mitigation </description>
                <category>Mohammadamin</category>
                <author>Mohammadamin</author>
                <pubDate>Thu, 07 Aug 2025 01:04:50 +0330</pubDate>
            </item>
                    <item>
                <title>سیستم باینری از پایه تا پیشرفته</title>
                <link>https://virgool.io/@mohammadaminhosseini139028/%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D8%A8%D8%A7%DB%8C%D9%86%D8%B1%DB%8C-%D8%A7%D8%B2-%D9%BE%D8%A7%DB%8C%D9%87-%D8%AA%D8%A7-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87-zr8tyznflyap</link>
                <description>راهنمای کامل و جامع: سیستم باینری از پایه تا پیشرفته---مقدمه: چرا باید سیستم باینری را یاد بگیریم؟دنیای دیجیتال با تمام پیچیدگی‌هایش بر پایه چیزی بسیار ساده کار می‌کند: باینری. این سیستم عددی که فقط از ارقام 0 و 1 تشکیل شده، زیربنای تمام عملیات کامپیوتری است. تمام داده‌هایی که می‌بینیم، از یک متن ساده گرفته تا تصاویر پیچیده و ویدیوها، در نهایت به شکل باینری در کامپیوتر ذخیره و پردازش می‌شوند. اگر به دنبال درک عمیق‌تر فناوری یا ورود به دنیای برنامه‌نویسی، امنیت سایبری یا سخت‌افزار هستید، یادگیری باینری اولین گام ضروری است.---بخش اول: باینری چیست؟تعریف سیستم باینریسیستم باینری یا دودویی یک سیستم عددی است که تنها از دو رقم 0 و 1 استفاده می‌کند. این سیستم بر پایه عدد 2 عمل می‌کند، برخلاف سیستم ده‌دهی (Decimal) که بر پایه عدد 10 است و اعداد 0 تا 9 را شامل می‌شود.در باینری:عدد 0 معادل خاموش بودن یا عدم وجود ولتاژ در مدار الکتریکی است.عدد 1 معادل روشن بودن یا وجود ولتاژ است.---بخش دوم: اعداد در باینرینمایش اعداد در باینریدر باینری، هر رقم یا بیت نمایانگر یک توان از عدد 2 است، دقیقاً مانند سیستم ده‌دهی که هر رقم نمایانگر یک توان از عدد 10 است.برای مثال، عدد باینری 1101 معادل است با:1×(2^3) + 1×(2^2) + 0×(2^1) + 1×(2^0) = 8 + 4 + 0 + 1 = 13تبدیل ده‌دهی به باینریبرای تبدیل عدد ده‌دهی (Decimal) به باینری:1. عدد را به 2 تقسیم کنید.2. باقی‌مانده تقسیم را یادداشت کنید.3. این مراحل را ادامه دهید تا خارج‌قسمت به 0 برسد.4. باقی‌مانده‌ها را از پایین به بالا بخوانید.مثال: تبدیل عدد 25 به باینری25 ÷ 2 = 12 باقی‌مانده 112 ÷ 2 = 6 باقی‌مانده 06 ÷ 2 = 3 باقی‌مانده 03 ÷ 2 = 1 باقی‌مانده 11 ÷ 2 = 0 باقی‌مانده 1باینری: 11001تبدیل باینری به ده‌دهیبرای تبدیل باینری به ده‌دهی، هر بیت را در توان متناظر 2 ضرب کرده و جمع کنید.مثال: تبدیل عدد باینری 10101 به ده‌دهی1×(2^4) + 0×(2^3) + 1×(2^2) + 0×(2^1) + 1×(2^0)= 16 + 0 + 4 + 0 + 1 = 21---بخش سوم: عملیات منطقی در باینری1. عملیات ANDدر AND، فقط زمانی خروجی 1 می‌شود که هر دو بیت ورودی 1 باشند.مثال:1010 AND 1100 = 10002. عملیات ORدر OR، اگر حداقل یکی از بیت‌های ورودی 1 باشد، خروجی 1 است.مثال:1010 OR 1100 = 11103. عملیات XORدر XOR، زمانی خروجی 1 می‌شود که دقیقاً یکی از بیت‌های ورودی 1 باشد.مثال:1010 XOR 1100 = 01104. عملیات NOTعملیات NOT مقدار بیت را معکوس می‌کند. یعنی 0 را به 1 و 1 را به 0 تبدیل می‌کند.مثال:NOT 1010 = 0101---بخش چهارم: نمایش داده‌ها در باینری1. متن در باینریمتن‌ها با استفاده از استانداردهایی مانند ASCII یا Unicode به باینری تبدیل می‌شوند.مثال: حرف A در ASCII معادل عدد 65 است.عدد 65 در باینری: 010000012. تصاویر در باینریهر پیکسل در یک تصویر دیجیتال به یک عدد (و در نهایت به باینری) تبدیل می‌شود.در تصاویر سیاه‌وسفید: هر پیکسل با 0 یا 1 نمایش داده می‌شود.در تصاویر رنگی: هر پیکسل شامل سه مقدار RGB است که هر کدام به باینری تبدیل می‌شوند.3. صدا در باینریصداهای آنالوگ به باینری تبدیل می‌شوند با استفاده از فرآیندی به نام نمونه‌برداری (Sampling). هر نمونه به یک عدد و سپس به باینری تبدیل می‌شود.---بخش پنجم: سیستم‌های عددی مرتبط با باینریهگزادسیمال (پایه 16)هگزادسیمال برای نمایش اعداد باینری طولانی استفاده می‌شود. هر 4 بیت باینری معادل یک رقم هگزادسیمال است.مثال: عدد باینری 11011011 در هگزادسیمال معادل DB است.اکتال (پایه 8)در اکتال، هر 3 بیت باینری معادل یک رقم اکتال است.مثال: عدد باینری 11011011 در اکتال معادل 333 است.---بخش ششم: کاربردهای پیشرفته باینری1. تحلیل فایل‌های باینریفایل‌های اجرایی (مثل فایل‌های EXE یا ELF) به صورت باینری ذخیره می‌شوند. متخصصان امنیت سایبری این فایل‌ها را تحلیل می‌کنند تا بدافزارها یا نقاط ضعف نرم‌افزاری را پیدا کنند.2. مهندسی معکوسدر مهندسی معکوس، فایل‌های باینری به کد قابل‌فهم تبدیل می‌شوند تا نحوه عملکرد آن‌ها بررسی شود.3. رمزنگاریباینری پایه تمام الگوریتم‌های رمزنگاری است. بسیاری از الگوریتم‌ها از عملیات XOR برای رمزنگاری داده‌ها استفاده می‌کنند.---بخش هفتم: باینری در سخت‌افزار کامپیوتر1. پردازنده‌ها و باینریپردازنده‌ها (CPU) دستورات را به صورت کدهای باینری دریافت و اجرا می‌کنند. هر دستورالعمل شامل یک کد باینری است که نوع عملیات را مشخص می‌کند.2. حافظه و باینریحافظه کامپیوتر داده‌ها را به صورت مجموعه‌ای از بیت‌های باینری ذخیره می‌کند. هر سلول حافظه می‌تواند 0 یا 1 را ذخیره کند.---جمع‌بندیباینری زبان اصلی دنیای دیجیتال است. از نمایش داده‌های ساده مثل متن و تصویر گرفته تا الگوریتم‌های پیچیده رمزنگاری و پردازش داده‌ها، همه‌چیز به باینری وابسته است. یادگیری این سیستم عددی پایه‌ای، به شما کمک می‌کند تا به درک عمیقی از کامپیوترها و فناوری برسید. برای تسلط بر این مفاهیم، تمرین تبدیل اعداد و کار با عملیات منطقی بهترین راه است.</description>
                <category>Mohammadamin</category>
                <author>Mohammadamin</author>
                <pubDate>Sun, 09 Mar 2025 23:14:59 +0330</pubDate>
            </item>
            </channel>
</rss>