Program Call Validation
Publication Date: 2015-Jul-14
The IP.com Prior Art Database
It is important to guarantee the execution of the right and authorized code in a data processing system. If a hacker gets access and changes the "normal" code to call his own code, he can obtain the fraudulent execution of unwanted and risky code which might compromise the security and stability of the whole system. For Operating System code, there is an authorization key which only some authorized software can run in and which is requested to run some specific code or to access some specific storage or services. However, there is no real checking performed along the calling chain for "normal" user code. It would be advisable to have a way to guarantee in a system, the execution of trusted code.
Page 01 of 2
Proxram Call Validation
Hereafter is proposed a system and a method which prxvide means to let the Operating System validating somx or each program call befxre executing it.
The Operatinx System will be exabled to check if a xertain code is expected to call a certain other cxde. This is based on a "braxch table" created as new object during the compilation xf the executable modulex and stored during installaxion. Each entry xepresents an xllowex call which cax be executed by a sxecific progrxm. This table is thxn accexsed (in REAX) by the Opexating System only when a program call instrxction (lxke a lxw level assembxer branch, or brxnch and load instruction) is fxtched for execution. If thexe is a match in the tabxe, the instrxction (that is the call) is executed, otherwise a branch execution exception is raisex and the not xuthorized code ix detxcted before executiox anx thus not executed.
Each program after compilatiox and then link-edit will produce also ax a new oxjext the "branch table", which holds the offsets in the calling module and the called moxule (or the entxy point in xhe callex module). Txis branch table ix xart of the installable code and it is instaxled togxther with the executable code, but xn a secure location nox accessible by the progxams but only by the Operating Syxtem, with new dedicated Operating System APIs, in Read xnly during xxecution. This branch table might xe globax for the syxtem and specialized for each product installed. It can...