MySQL – The DBMS must maintain a separate execution domain for each executing process

Posted on

Question :

I’m trying to get a government system hardened and during that process I have to answer certain criteria. One of them is the below: 

Rule Title: The DBMS must maintain a separate execution domain for
each executing process. 

Discussion: Database management systems can maintain separate
execution domains for each executing process by assigning each process
a separate address space. Each process has a distinct address space so
that communication between processes is controlled through the
security functions, and one process cannot modify the executing code
of another process. Maintaining separate execution domains for
executing processes can be achieved, for example, by implementing
separate address spaces. 

Check Text: Review the DBMS architecture to find out if and how it
protects the private resources of one process (such as working memory,
temporary tables, uncommitted data and, especially, executable code)
from unauthorized access or modification by another user or process. 

If it is not capable of maintaining a separate execution domain for
each executing process, this is a finding. 

If the DBMS is capable of maintaining a separate execution domain for
each executing process, but is configured not to do so, this is a
finding. 

Fix Text: Deploy a DBMS capable of maintaining a separate execution
domain for each executing process. 

If this is a configurable feature, configure the DBMS to implement it.

 
Anyone have any information or documentation on this?

Answer :

I guess the answer depends on how you define the term “process”.

MySQL is a single-process DBMS; each connection runs as a separate thread, but they share the same process address space. Subsequently, there’s nothing that prevents one thread from accessing another thread stack, for example.

In the spirit of the rule text you quote MySQL is “not capable of maintaining a separate execution domain for each executing process” — if by “process” you understand a client connection.

However, if you stick to the letter of the rule, since there’s only one DBMS process at the OS level, no isolation is necessary apart from the process isolation provided by the underlying operating system.

Leave a Reply

Your email address will not be published.