
مستعرضة ويندوز تستخدم ProjFS لإسقاط ملفات شركية تؤدي إلى تنبيهات في سجل الأحداث وسطح المكتب عند الوصول إليها، مع تسجيل جلسات SMB عن بعد للكشف عن الحركة الجانبية.
ملفات وهمية. أمان حقيقي.
نظام ملفات فخ افتراضي لنظام Windows — اجذب المهاجمين إلى دليل يبدو حقيقيًا، ثم أمسك بهم متلبسين.
يستخدم PhantomFS نظام الملفات المُسقَط لنظام Windows (ProjFS) لإنشاء دليل افتراضي مليء بملفات شرك مقنعة — تقارير مالية، مفاتيح SSH، بيانات اعتماد API، جداول بيانات الموارد البشرية، اتفاقيات عدم الإفشاء — والتي توجد فقط في الذاكرة. لا تُكتب أية بيانات على القرص مطلقًا حتى يفتحها مهاجم (أو تهديد داخلي).
في اللحظة التي يتم فيها لمس ملف، يقوم PhantomFS بما يلي:
PhantomFS)لأن المستخدمين الشرعيين ليس لديهم سبب لفتح ملفات لم يضعوها هناك، فإن كل تنبيه يكون موثوقًا به بدرجة عالية. لا ضبط، لا تعلم آلي، لا اعتماديات سحابية — فقط برنامج تشغيل Windows أصلي وملف تنفيذي واحد.
Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart)PhantomFS-v1.1.0-x64.zip من الإصدارات وفك ضغطهEnable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart.\PhantomFS.exe --virtroot C:\PhantomFS\Virtual\Documents --syntheticonlyC:\PhantomFS\Virtual\Documents في المستكشف — سترى ملفات الشركجميع الإعدادات موجودة في PhantomFS.exe.config. جميع المفاتيح اختيارية — حذف المفتاح يعني استخدام القيمة الافتراضية الموضحة في الجدول.
استخدم منشئ ملفات تعريف PhantomFS لإنشاء ملفات تعريف إعدادات مختلفة لسيناريوهات النشر الخاصة بك:
<settings><settings>
<enableEventLog>true</enableEventLog>
<enableToast>true</enableToast>
<alertOnOpen>true</alertOnOpen>
<alertOnRead>true</alertOnRead>
<toastCooldownSeconds>15</toastCooldownSeconds>
<verbose>false</verbose>
<virtRoot></virtRoot>
<sourceRoot></sourceRoot>
<syntheticOnly>true</syntheticOnly>
<!-- v1.1.0 — التنظيف التلقائي -->
<autoCleanupEnabled>true</autoCleanupEnabled>
<autoCleanupDelaySeconds>300</autoCleanupDelaySeconds>
<!-- v1.1.0 — تسجيل الجلسات عن بُعد -->
<resolveRemoteIPs>true</resolveRemoteIPs>
</settings>
عند الوصول إلى ملف عبر مشاركة SMB، يكتشف PhantomFS العملية PID 4 (عملية النظام الأساسية / برنامج تشغيل SMB الأساسي) كمتصل ويستدعي تلقائيًا NetSessionEnum لتحديد المستخدم البعيد. سيتضمن إدخال سجل الأحداث وإشعار Toast ما يلي:
PhantomFS — قراءة محتوى ملف شرك
الملف : Documents\Q4_Financial_Report_2024.pdf
العملية : System (PID 4)
البعيد : CORP\jsmith @ DESKTOP-A1B2C3D [192.168.1.45]
متطلبات التسجيل عن بُعد:
resolveRemoteIPs يتطلب أن يكون جهاز العميل قابلًا للحل عبر DNSبعد فتح ملف اصطناعي وترطيبه (كتابة المحتوى على القرص)، يعمل مؤقت خلفي كل 30 ثانية ويحذف الملفات التي يتجاوز زمن ترطيبها autoCleanupDelaySeconds. يعود الملف المحذوف إلى عنصر نائب افتراضي في ProjFS — يؤدي الوصول التالي إلى إعادة تشغيل رد النداء الخاص بـ ProjFS كما لو أن الملف لم يُفتح أبدًا.
يتم تخطي الملفات التي لا تزال مفتوحة عند تشغيل مؤقت التنظيف دون خطأ وإعادة المحاولة في الدورة التالية التي تبلغ 30 ثانية.
أضف إدخالات تحت <syntheticFileList> في الإعدادات:
\Documents,true,0,1744586986
\Documents\Q4_Financial_Report_2024.pdf,false,8192,1744586986
\Documents\Employee_Salaries_2024.xlsx,false,4096,1743942586
\IT\Keys,true,0,1744586986
\IT\Keys\deploy_key.pem,false,3247,1742354986
<syntheticTemplates>
<template name="my_custom_file.txt"><![CDATA[
... محتوى ملفك هنا ...
]]></template>
</syntheticTemplates>
افتح عارض الأحداث → سجلات Windows → التطبيق وقم بالتصفية حسب المصدر PhantomFS.
يحتوي PhantomFS على سير عمل في .github/workflows/build.yml يقوم بالتجميع لـ x64 و ARM64 بالتوازي، وينشر إصدارًا على GitHub عند كل علامة إصدار.
# يتطلب .NET Framework 4.8 SDK أو أدوات بناء Visual Studio
csc.exe /platform:x64 /r:System.Xml.dll /out:PhantomFS.exe src\PhantomFS.cs
csc.exe موجود عادةً في:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe
\\hostname\PhantomFS\Virtual تُطلق تنبيهًا فوريًا مع اسم المستخدم المهاجم وعنوان IP المصدر\Finance تشير إلى الجذر الافتراضي بجوار مشاركة المالية الحقيقية؛ تسجيل الجلسة عن بُعد يحدد بالضبط أي حساب تصفّح الطُعم~\Documents؛ الهجمات الداخلية أو هجمات سلسلة التوريد تُطلق التنبيهات قبل تسريب البياناتresolveRemoteIPs=false لتخطي DNS في البيئات التي يتم فيها حظر الاستعلامات الخارجية؛ لا يزال يتم التقاط اسم جهاز NetBIOSPhantomFS هو برنامج مجاني ومفتوح المصدر ومرخص بموجب MIT. إذا وفر لك الوقت — أو أمسك بمهاجم حقيقي — يُرجى التفكير في رعاية التطوير المستمر.
يتلقى الرعاة:
الرعاة من الشركات (500 دولار+/شهر) يتلقون قناة Slack خاصة للدعم المباشر وطلبات الميزات.
MIT License
Copyright (c) 2026 Alloy Secure
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
إشعار العلامة التجارية: PhantomFS™ هي علامة تجارية لشركة Alloy Secure. جميع الحقوق محفوظة.
يُوفّر PhantomFS لأغراض الدفاع الأمني القانونية فقط — بما في ذلك كشف التسلل، وأبحاث التهديدات، واختبار الاختراق المصرّح به على الأنظمة التي تمتلكها أو لديك إذن كتابي صريح لمراقبتها.
أنت المسؤول الوحيد عن ضمان أن استخدامك لـ PhantomFS يتوافق مع جميع القوانين المحلية والوطنية والدولية المعمول بها، بما في ذلك على سبيل المثال لا الحصر قوانين الاحتيال الحاسوبي، والتنصت، والخصوصية، وقوانين العمل. قد يكون نشر PhantomFS على أنظمة أو شبكات دون إذن مناسب غير قانوني.
المؤلفون والمساهمون في PhantomFS:
الاستخدام على مسؤوليتك الخاصة. باستخدامك لـ PhantomFS، تقر بأنك قد قرأت إخلاء المسؤولية هذا، وتفهمه، وتوافق على الالتزام بشروطه.
إشعار العلامة التجارية: PhantomFS™ هي علامة تجارية لشركة Alloy Secure. جميع الحقوق محفوظة.
بُني على واجهة برمجة تطبيقات نظام الملفات المُسقَط لنظام Windows — نفس التقنية التي تشغل WSL2 وملفات OneDrive عند الطلب.
مستوحى من عملي كباحث في Thinkst 💚 https://citation.thinkst.com/talk/94782
| الميزة | التفاصيل |
|---|
| شرك بدون بصمة | تُسقَط الملفات عند الطلب — لا شيء يُكتب على القرص إلا إذا قرأ المهاجم ملفًا |
| سجل أحداث Windows | معرف الحدث 1001 (قراءة ملف)، 1002 (إنشاء عنصر نائب)، 1003 (بدء التشغيل)، 1004 (إيقاف التشغيل) |
| تنبيهات Toast | إشعار فوري لسطح المكتب عبر PowerShell لنظام Windows — يعمل حتى عبر RDP |
| تسجيل الجلسات عن بُعد | اسم مستخدم SMB وعنوان المصدر يتم التقاطهما عبر NetSessionEnum عندما تُشغّل العملية PID 4 الوصول |
| التنظيف التلقائي | حذف الملفات الاصطناعية المادية بعد مهلة قابلة للتكوين؛ العودة إلى الوضع الافتراضي عند الوصول التالي |
| قوالب قابلة للتكوين | PDF، XLSX، DOCX، JSON، CSV، PEM، نص عادي — كلها تُقدَّم من قوالب XML في الإعدادات |
| فترة تهدئة لكل ملف | حد قابل للتكوين (افتراضي 15 ثانية) يمنع فيض التنبيهات عند قراءة أداة لعدة أجزاء |
| قائمة ملفات اصطناعية | قائمة XML جاهزة بأسماء ملفات مقنعة وأحجام بايت واقعية |
| ملف تنفيذي واحد | PhantomFS.exe + PhantomFS.exe.config — لا حاجة إلى مثبّت |
| المفتاح | القيمة الافتراضية | منذ | الوصف |
|---|
enableEventLog | true | 1.0.0 | الكتابة إلى سجل أحداث التطبيقات في Windows |
enableToast | true | 1.0.0 | إرسال إشعار Toast لسطح المكتب |
alertOnOpen | true | 1.0.0 | التنبيه عند إنشاء عنصر نائب لأول مرة (تصفح الدليل) |
alertOnRead | true | 1.0.0 | التنبيه عند قراءة بيانات الملف فعليًا |
toastCooldownSeconds | 15 | 1.0.0 | الحد الأدنى بالثواني بين إشعارات Toast لنفس مسار الملف |
verbose | false | 1.0.0 | إخراج إضافي لوحدة التحكم للتشخيص |
virtRoot | (الوسيطة 1) | 1.0.0 | تجاوز مسار الجذر الافتراضي من الإعدادات بدلاً من سطر الأوامر |
sourceRoot | (فارغ) | 1.0.0 | دليل خلفي حقيقي اختياري — اتركه فارغًا لوضع الاصطناعية فقط |
syntheticOnly | true | 1.0.0 | خدمة الملفات المدرجة في <syntheticFileList فقط |
autoCleanupEnabled | true | 1.1.0 | حذف الملفات الاصطناعية المادية بعد المهلة والعودة إلى الوضع الافتراضي |
autoCleanupDelaySeconds | 300 | 1.1.0 | الثواني بعد الترطيب قبل حذف الملف (مؤقت التنظيف يعمل كل 30 ثانية) |
resolveRemoteIPs | true | 1.1.0 | حل اسم مضيف عميل SMB إلى عنوان IP عبر DNS؛ اضبطه على false إذا كان زمن البحث غير مقبول |
| معرف الحدث | المستوى | المعنى |
|---|
| 1001 | تحذير | تمت قراءة بيانات ملف شرك (يتضمن المستخدم البعيد/IP عند الاقتضاء) |
| 1002 | تحذير | تم إنشاء عنصر نائب لملف شرك (تم تصفح/ stat للملف) |
| 1003 | معلومات | بدأ تشغيل PhantomFS — تم تسجيل مسار الجذر الافتراضي والإعدادات |
| 1004 | معلومات | توقف PhantomFS بشكل نظيف |