السلام عليكم و رحمة الله و بركاته
في هذا الموضوع رح أطرح فكرة أحد المشاريع اللي قاعد اشتغل عليها حاليا . الموضوع مرتبط بالـNative API . المرحلة الحالية من المشروع تتطلب مراقبة كافة الـSystem Calls من جميع الـProcesses باستخدام ما يسمى بأسلوب التفويض بهدف توفير الحماية من البرامج السيئة .
أسلوب التفويض مشروح في هذا البحث:
http://www.stanford.edu/~talg/papers.../abstract.html
الفكرة بكل بساطة تقوم على جزئين رئيسيين: جزء الـkernel و الذي يمنع جميع الـSystem Calls للمصادر الحساسة إلا إذا جاءت من الجزء الثاني و هو جزء الـuser-level الذي يقوم بفحص سلوك البرنامج للتأكد من خلوه مما يسمى Malicious Code. و إليكم إخواني هذا الجزء المقتبس من البحث المذكور يشرح طريقة عمله في بيئة Unix :
It has two primary parts: a kernel portion that enforces a hard-coded policy preventing all calls that provide direct access to sensitive resources (e.g. open, socket) from being executed, and a user-level portion (“agent”) that performs access to sensitive resources on behalf of the sandboxed process (“client”) where permitted by the policy engine. These systems usually have a third part, that we refer to as the emulation library. The emulation library resides in the address space of sandboxed processes. It converts a sandboxed process’s sensitive system calls into IPC requests to the agent. How exactly this is done is implementation dependent (section 4.2 discusses the approach we use).
When a client makes a sensitive system call, it is redirected to the emulation library, which sends a request to its agent via an IPC channel. If the request is permitted by policy, the agent accesses the requested resource (possibly executing one or more system calls) and returns the result (e.g. return code, descriptor) to the client. As in a filtering sandbox, calls which do not provide access to sensitive resources but merely use resources the client has already obtained (e.g. read, write) are executed directly by the client.
The fact that the agent both checks permissions and accesses the requested resource on the child’s behalf is the most important distinction between the agent in a delegating sandbox and the monitor in a filtering sandbox. The delegating sandbox gets its name from the fact that the ability to access sensitive resources is revoked from the client and delegated to the agent.
أنا أبحث إمكانية تنفيذ هذه الطريقة .
ملا حظة أخيرة أود أن أشير إليها أنني لست خبيراً في Windows و معظم معرفتي به معرفة نظرية بحتة .
و جزاكم الله خيراً