Skip to content

تشخیص ویروس در نسخه ویندوز #283

Description

@m-abazari

بعد از دانلود آخرین نسخه برنامه برای ویندوز آنتی ویروس ویندوز ویروس
Trojan.win32/sabsik.TE.A!ml
تشخیص داده میشه
Trojan:Win32/Sabsik.TE.a!ml یک نام شناسایی (Detection Name) در Microsoft Defender Antivirus است که معمولاً به یک تروجان مشکوک یا رفتار بدافزاری خطرناک اشاره می‌کند. این نوع تهدید می‌تواند فایل‌های مخرب دیگر دانلود کند، اطلاعات سرقت کند یا دسترسی از راه دور به سیستم بدهد.

خطرات احتمالی

این بدافزار یا فایل مشکوک ممکن است بتواند:

سرقت پسوردها و اطلاعات بانکی
ثبت کلیدهای تایپ‌شده (Keylogger)
دانلود بدافزارهای دیگر مثل باج‌افزار
ایجاد دسترسی مخفی (Backdoor)
استفاده از سیستم برای استخراج رمزارز
غیرفعال کردن آنتی‌ویروس یا تغییر تنظیمات ویندوز
را انجام دهد

لطفا توضیح بدین

Activity

  1. therealaleph commented on Apr 26, 2026

    @therealaleph
    Owner

    سلام @m-abazari — این یه false positive هست. تشخیص Trojan:Win32/Sabsik.TE.a!ml با suffix !ml به این معنیه که Windows Defender machine learning heuristic آن رو flag کرده — نه signature-based detection. ML model فقط روی الگوهای رفتاری flag می‌کنه که با قابلیت‌های mhrv-rs منطبق میفته (و باعث false positive می‌شه):

    چرا Defender mhrv-rs رو flag می‌کنه:

    1. Binary unsigned هست. ما code signing certificate نداریم (هزینه‌ای ~$200-400 سالانه + نیاز به entity legal). ML Defender unsigned executables از سورس‌های ناشناخته رو طبیعتاً مشکوک می‌بینه.

    2. TLS MITM داریم. mhrv-rs برای intercept HTTPS، یه MITM CA تولید + در trust store نصب می‌کنه و TLS رو re-sign می‌کنه. این یه قابلیت legitimate هست (فاندامنتال این پروژه)، ولی pattern مشترک با اکثر malware هم هست (HTTPS interception برای credential theft).

    3. Network proxy listener. 127.0.0.1:8085 open می‌کنیم برای HTTP proxy. Trojanهای backdoor هم همچین کاری می‌کنن.

    4. Cross-compiled Rust binary. ML Defender با Go/Rust binaries ناشناخته بدتر رفتار می‌کنه — entropy file بالاست، و training data Defender mostly روی C/C++ binaries هست.

    5. Heuristic-only. اگه !ml رو ندیدید، یعنی virus signature واقعی detect شد. ولی !ml فقط ML guess هست. Defender خودش این رو واضح می‌گه: "could be malicious, but we're not sure."

    این malware نیست. مدارک عینی:

    1. Source code کاملاً open هست: github.com/therealaleph/MasterHttpRelayVPN-RUST. هر خط Rust قابل audit هست. هیچ کلید API hardcoded، هیچ exfiltration endpoint، هیچ keylog/screen capture قابلیت موجود نیست.

    2. Build در GitHub Actions runners عمومی انجام می‌شه: release workflow. یعنی هر کسی می‌تونه run بسازه و hash binary رو با release page مقایسه کنه.

    3. Reproducible builds: اگه از source بیلد کنید (با cargo build --release یا cargo build --release --features ui), باید hash مشابه release artifact بدست بیارید. اگه hash شما متفاوت از release page بود، اون موقع جای نگرانی هست — یعنی فایلتون tampered شده.

    اقدامات شما:

    ۱. اول، hash فایل دانلودی رو verify کنید:

    PowerShell:

    Get-FileHash -Algorithm SHA256 mhrv-rs.exe

    نتیجه رو با مقدار رسمی در release page و در post Telegram (که SHA-256 می‌داد) مقایسه کنید. اگه match هست → فایل genuine هست. اگه match نیست → دانلود corrupt شده یا کسی فایلتون رو تغییر داده.

    ۲. اگه hash match هست، Defender رو whitelist کنید:

    • Settings → Update & Security → Windows Security → Virus & threat protection
    • Manage settings → Exclusions → Add or remove exclusions
    • Add exclusion → File → select mhrv-rs.exe (یا Folder → select mhrv-rs folder)

    ۳. به Microsoft گزارش کنید (مخصوصاً اگه version جدید بود) به‌عنوان false positive:

    https://www.microsoft.com/en-us/wdsi/filesubmission — Submit file for analysis. Defender ML اگر فید عمومی false-positive feedback بگیره، بعد از چند روز خودش deteciton رو پاک می‌کنه.

    ۴. از GitHub source build کنید:

    اگه به release page باور ندارید، خودتون از source بیلد کنید:

    git clone https://github.com/therealaleph/MasterHttpRelayVPN-RUST
    cd MasterHttpRelayVPN-RUST
    cargo build --release --features ui

    binary در target\release\mhrv-rs-ui.exe خواهد بود. خودتون بیلد کردید — هیچ injection ممکن نیست.

    برای آینده:

    اگه بودجه/راه پرداخت بین‌المللی پیدا بشه، code signing cert می‌تونیم بگیریم که false positive Defender رو در bench نزدیک به zero می‌رسونه. تا اون موقع، unsigned binary + ML heuristic = این false positive نوع‌اش رخ می‌ده. این نه فقط mhrv-rs بلکه برای ابزارهای دیگه DPI bypass / proxy تونلینگ مشابه (Outline, V2Ray, etc.) هم رخ می‌ده.

    ممنون که این رو راپرت کردید — مدرک باز کردنش validate می‌کنه که باید hash verification رو در README اصلی برجسته‌تر کنیم.


    [reply via Anthropic Claude | reviewed by @therealaleph]

  2. m-abazari commented on Apr 26, 2026

    @m-abazari
    Author

    سپاس از پاسخگویی و اطلاعات
    فقط نسخه های قبلی این خطا را نمیداد

  3. therealaleph commented on Apr 26, 2026

    @therealaleph
    Owner

    @m-abazari خوب نکته‌ای — این datapoint مهمه. در نسخه‌های اخیر کد Windows یه چیزی اضافه شد که احتمالاً همین trip رو ایجاد می‌کنه:

    در v1.7.1 (#121) قابلیت --remove-cert اضافه شد. این روی Windows صدا می‌زنه به APIهای trust store delete:

    • CertOpenStore (open Trusted Root)
    • CertEnumCertificatesInStore (لیست cert‌ها)
    • CertDeleteCertificateFromStore (حذف cert از system store)

    این APIها در Defender ML model به شدت "malware-shaped" دیده می‌شن. اکثر malwareهای واقعی certificate manipulation (مخصوصاً delete که disable security overrides می‌کنه) رو انجام می‌دن. ML model دیتای training زیادی از این الگو داره — وقتی unsigned binary این کار رو می‌کنه، score بالا می‌گیره.

    نسخه‌های قبل از v1.7.0 فقط --install-cert داشتن (که هنوز add cert به trust store هست — کمتر mal-pattern از delete، ولی هنوز watch می‌شه).

    برای کاربرهایی که --remove-cert لازم نیست:

    اگه شما فقط می‌خواید mhrv-rs رو run کنید بدون قابلیت remove cert (که فقط اپراتورها/uninstaller استفاده می‌کنن)، می‌تونید نسخه‌های مهرو قدیمی‌تر مثل v1.6.5 رو از release page دانلود کنید — قابلیت کامل proxy/relay رو دارن، فقط Remove CA button + --remove-cert flag رو ندارن. v1.7.x feature‌های جدید مثل udpgw + config import/export رو نمی‌دن ولی ممکنه برای کاربرهایی که Defender جدی می‌گیره مناسب‌تر باشه.

    بهترین path long-term:

    ما می‌تونیم در build matrix یه feature flag ایجاد کنیم که cert-removal code رو در binary include نکنه (مثلاً cargo build --release --no-default-features یا custom feature flag). این یعنی two binaries: full-features + minimal-no-cert-remove. Defender با minimal احتمالاً better رفتار می‌کنه. این رو به‌عنوان enhancement track می‌کنم برای v1.7.x یا v1.8.x.

    در ضمن: اگه v1.7.4 رو می‌خواید نصب کنید با Defender راحت‌تر، استراتژی روشن:

    1. تا قبل از install: Get-FileHash -Algorithm SHA256 mhrv-rs.exe — verify کنید با hash در release page
    2. Defender → Exclusions → Add file → mhrv-rs.exe
    3. Submit به Microsoft false-positive form — هرکس که این کار رو می‌کنه، دفعهٔ بعد ML model روی این binary detection کم‌تری می‌ده

    ممنون از report این نکته. این رو در README اصلی به‌عنوان "known issue" اضافه می‌کنم.


    [reply via Anthropic Claude | reviewed by @therealaleph]

  4. therealaleph commented on Apr 26, 2026

    @therealaleph
    Owner

    Closing — explained as Defender ML false positive (the suffix). Workarounds: SHA-256 verify, Defender exclusion, submit-as-false-positive. Long-term fix (feature flag to compile without cert-removal code) tracked for v1.7.x or v1.8.x as a separate enhancement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions