این ترفند به مهاجم اجازه می دهد تا تراکنش های با ارزش صفر را در کیف پول قربانی تایید کند و به تاریخچه تراکنش های کاربر دسترسی پیدا کند.
دادههای Etherscan نشان میدهد که برخی از کلاهبرداران کریپتو کاربران را با شماره جدیدی هدف قرار میدهند که به آنها اجازه میدهد تراکنش را از کیف پول قربانی تأیید کنند، اما کلید خصوصی قربانی را ندارند. این حمله فقط برای تراکنش هایی با مقدار 0 قابل انجام است. با این حال، ممکن است باعث شود برخی از کاربران بهطور تصادفی توکنهایی را در نتیجه برش و چسباندن سابقه تراکنشهای در معرض خطر برای مهاجم ارسال کنند.
شرکت امنیتی بلاک چین SlowMist این تکنیک جدید را در ماه دسامبر کشف کرد و آن را در یک پست وبلاگ توضیح داد. از آن زمان، هم SafePal و هم Etherscan تکنیکهای کاهشی را برای محدود کردن تأثیر آن بر کاربران اتخاذ کردهاند، اگرچه ممکن است برخی از کاربران هنوز از وجود آن بیاطلاع باشند.
اخیراً گزارشهایی از جامعه در مورد نوع جدیدی از کلاهبرداری دریافت کردهایم: Zero Transfer Scam. اگر 0 انتقال مشکوک در پرونده کیف پول خود مشاهده کردید، مراقب باشید:
1/10
— ورونیکا (@V_SafePal) 14 دسامبر 2022
طبق پست SlowMist، این کلاهبرداری با ارسال یک تراکنش صفر سکه از کیف پول قربانی به آدرسی مشابه آدرسی که قربانی قبلاً سکهها را به آن ارسال کرده بود، کار میکند.
به عنوان مثال، اگر قربانی 100 سکه را به یک آدرس سپرده ارسال کند، مهاجم می تواند صفر سکه را از کیف پول قربانی به آدرسی بفرستد که به نظر شبیه است اما در واقع تحت کنترل مهاجم است. قربانی می تواند این تراکنش را در تاریخچه تراکنش ببیند و به این نتیجه برسد که آدرس نشان داده شده آدرس سپرده صحیح است. در نتیجه، آنها می توانند توکن های خود را مستقیماً برای مهاجم ارسال کنند.
ارائه معامله بدون اجازه مالک
در شرایط عادی، یک مهاجم برای ارسال تراکنش از کیف پول قربانی به کلید خصوصی قربانی نیاز دارد. با این حال، ویژگی “زبانه قرارداد” Etherscan حفرهای را در برخی از قراردادهای توکن نشان میدهد که میتواند به مهاجم اجازه دهد تراکنشها را از هر کیف پولی ارسال کند.
به عنوان مثال، کد USD Coin (USDC) در Etherscan نشان میدهد که تابع “TransferFrom” به هر کسی اجازه میدهد تا زمانی که مقدار سکههایی که ارسال میکند کمتر یا برابر با مقدار مجاز Etherscan باشد، سکهها را از کیف پول شخص دیگری جابجا کند. صاحب آدرس

این معمولاً به این معنی است که یک مهاجم نمی تواند از آدرس شخص دیگری تراکنش انجام دهد مگر اینکه مالک مبلغی را برای آنها تأیید کند.
اما در این محدودیت یک شکاف وجود دارد. مقدار مجاز به عنوان یک عدد تعریف می شود (به نام “نوع uint256”)، به این معنی که به عنوان صفر تفسیر می شود مگر اینکه به طور خاص روی عدد دیگری تنظیم شود. این را می توان در تابع “Allowance” مشاهده کرد.

در نتیجه، مهاجم میتواند تراکنشها را از هر کیف پولی که میخواهد، بدون نیاز به کلید خصوصی یا تأیید قبلی مالک، تا زمانی که ارزش تراکنش صفر یا برابر با صفر باشد، ارسال کند.
USDC تنها توکنی نیست که امکان انجام این کار را می دهد. کد مشابهی را می توان در اکثر قراردادهای توکن یافت. حتی می توان آن را در نمونه قراردادهای لینک شده از وب سایت رسمی بنیاد اتریوم یافت.
نمونه هایی از تقلب در انتقال ارزش صفر
Etherscan نشان می دهد که برخی از آدرس های کیف پول روزانه هزاران تراکنش با ارزش صفر را بدون اجازه آنها از کیف پول قربانیان مختلف ارسال می کنند.
به عنوان مثال، حسابی با عنوان Fake_Phishing7974 از یک قرارداد هوشمند تأیید نشده برای اجرای بیش از 80 بسته تراکنش در 12 ژانویه استفاده کرد و هر بسته حاوی 50 تراکنش با ارزش صفر برای مجموع 4000 تراکنش غیرمجاز در یک روز بود.

آدرس های گمراه کننده
نگاه دقیق تر به هر تراکنش دلیلی برای این هرزنامه را نشان می دهد: مهاجم تراکنش های با ارزش صفر را به آدرس هایی بسیار شبیه به آدرس هایی که قربانیان قبلاً پول ارسال کرده اند ارسال می کند.
به عنوان مثال، Etherscan نشان می دهد که یکی از آدرس های کاربری که توسط مهاجم مورد هدف قرار گرفته است:
0x20d7f90d9c40901488a935870e1e80127de11d74.
در 29 ژانویه، این حساب اجازه داد 5000 تتر (USDT) به آدرس گیرنده زیر ارسال شود:
0xa541efe60f274f813a834afd31e896348810bb09.
بلافاصله پس از آن، Fake_Phishing7974 یک تراکنش با ارزش صفر از کیف پول قربانی ارسال کرد:
0xA545c8659B0CD5B426A027509E55220FDa10bB09.
پنج کاراکتر اول و شش کاراکتر آخر این دو آدرس دریافت کننده دقیقاً یکسان هستند، اما کاراکترهای میانی همه کاملاً متفاوت هستند. مهاجم ممکن است قصد داشته باشد که کاربر به جای آدرس واقعی، USDT را به این آدرس دوم (جعلی) ارسال کند و ارزهای دیجیتال را به مهاجم تحویل دهد.
در این مورد خاص، به نظر می رسد که کلاهبرداری کار نکرده است، زیرا Etherscan هیچ اقدامی را از آن آدرس به یکی از آدرس های تقلبی ایجاد شده توسط کلاهبردار نشان نمی دهد. اما با توجه به حجم معاملات با ارزش صفر که توسط این حساب انجام می شود، این طرح ممکن است در موقعیت های دیگر جواب داده باشد.
کیف پولها و کاوشگرهای بلوک میتوانند در نحوه یا اینکه آیا تراکنشهای جعلی را نمایش میدهند تفاوت قابل توجهی داشته باشند.
کیف پول
ممکن است برخی از کیف پول ها اصلاً تراکنش های هرزنامه را نشان ندهند. به عنوان مثال، MetaMask در صورت بارگیری مجدد، هیچ سابقه تراکنش را نشان نمی دهد، حتی اگر خود حساب دارای صدها تراکنش در بلاک چین باشد. این بدان معناست که تاریخچه تراکنش های خود را به جای بیرون کشیدن داده ها از زنجیره بلوکی ذخیره می کند. این باید از نمایش تراکنش های هرزنامه در تاریخچه تراکنش های کیف پول جلوگیری کند.
از سوی دیگر، اگر کیف پول داده ها را مستقیماً از زنجیره بلوکی بیرون بکشد، تراکنش های هرزنامه ممکن است در صفحه کیف پول ظاهر شوند. ورونیکا وونگ، مدیرعامل SafePal، در اطلاعیهای در توییتر در 13 دسامبر هشدار داد کاربران SafePal که کیف پول آنها می تواند تراکنش ها را مشاهده کند. او گفت که برای کاهش این خطر، SafePal نحوه نمایش آدرسها در نسخههای جدید کیف پول خود را تغییر داده است تا بررسی آدرسها را برای کاربران آسانتر کند.
(6/10) از این رو اقدامات زیر را انجام دادیم:
1) در آخرین به روز رسانی V3.7.3، طول آدرس کیف پول نمایش داده شده در تاریخچه تراکنش را تنظیم کردیم. 10 رقم اول و آخر آدرس کیف پول به طور پیش فرض برای بررسی آدرس نمایش داده می شود.— ورونیکا (@V_SafePal) 14 دسامبر 2022
در ماه دسامبر، کاربری نیز گزارش داد که کیف پول Trezor او تراکنش های گمراه کننده را نشان می دهد.
کوین تلگراف برای اظهار نظر به توسعه دهنده Trezor SatoshiLabs ایمیل زد. در پاسخ، یکی از نمایندگان اظهار داشت که “هر بار که کاربران کیف پول Trezor خود را وصل می کنند”، کیف پول تاریخچه تراکنش خود را مستقیماً از زنجیره بلوکی دریافت می کند.
با این حال، این تیم اقداماتی را برای محافظت از کاربران در برابر کلاهبرداری انجام می دهد. در بهروزرسانی آتی Trezor Suite، این نرمافزار تراکنشهای مشکوک با ارزش صفر را پرچمگذاری میکند تا به کاربران هشدار داده شود که چنین تراکنشهایی بالقوه تقلبی هستند. این شرکت همچنین اعلام کرد که کیف پول آدرس کامل هر تراکنش را نمایش می دهد و “اکیداً توصیه می کند که کاربران همیشه آدرس کامل را بررسی کنند، نه فقط اولین و آخرین کاراکترها.”
کاوشگران را مسدود کنید
علاوه بر کیف پول، بلاک کاوشگرها نوع دیگری از نرم افزارهایی هستند که می توانند برای مشاهده تاریخچه تراکنش استفاده شوند. برخی از کاوشگرها ممکن است ناخواسته این تراکنش ها را برای گمراه کردن کاربران نمایش دهند، درست مانند برخی از کیف پول ها.
برای مقابله با این تهدید، Etherscan شروع به غیرفعال کردن تراکنشهای توکن با ارزش صفر غیرکاربر کرد. همچنین این تراکنش ها را با اخطار “این یک انتقال سکه با ارزش صفر است که توسط آدرس دیگری آغاز شده است” را همانطور که در تصویر زیر مشاهده می کنید علامت گذاری می کند.

سایر کاوشگرهای بلاک ممکن است اقدامات مشابه Etherscan را برای هشدار دادن به کاربران در مورد این تراکنش ها انجام داده باشند، اما برخی ممکن است هنوز این مراحل را دنبال نکرده باشند.
نکاتی برای جلوگیری از ترفند “TransferFrom با ارزش صفر”.
کوین تلگراف با SlowMist تماس گرفت تا در مورد نحوه جلوگیری از گرفتار شدن در دام کلاهبرداری “TransferFrom با ارزش صفر” راهنمایی کند.
نماینده ای از این شرکت لیستی از نکات را برای جلوگیری از قربانی شدن در حمله به کوین تلگراف ارائه کرد:
- “مواظب باشید و قبل از هر اقدامی آدرس را بررسی کنید.”
- برای جلوگیری از ارسال پول به آدرس های اشتباه، از ویژگی لیست سفید در کیف پول خود استفاده کنید.
- “هوشیار و مطلع باشید. اگر به موارد مشکوکی برخورد کردید، با آرامش موضوع را بررسی کنید تا طعمه کلاهبرداران نشوید.”
- سطح سالمی از شک و تردید را حفظ کنید، همیشه هوشیار و هوشیار باشید.
بر اساس این توصیه، مهمترین چیزی که کاربران رمزارز باید به خاطر داشته باشند این است که همیشه قبل از ارسال رمزارز به آدرس، آدرس را بررسی کنند. حتی اگر به نظر می رسد گزارش به این معنی باشد که قبلاً رمزارز را به آدرس ارسال کرده اید، این ظاهر می تواند فریبنده باشد.
نویسنده: Tom Blackstone