Inspiration

We know that the most common problem in cybersecurity and servers is accessing unwanted data within the server through a code flaw or adding / changing certain data on the server. At this point, we should think that when many vulnerabilities are detected, they can be solved by editing the codes or updating the packages; but this does not always guarantee that the vulnerabilities are or will be completed. Both the process until a vulnerability is closed, and the process until a vulnerability is noticed or not, causes many problems.

What it does

It is an automatic cybersecurity measure provider that sees the page templates to be transferred to the user on the servers or the database commands to be run on the server by the user as a process as if they were on the operating system. It authorizes the communication between these "virtual" processes according to the privileges , so stops access to unwanted data.

How we built it

More specifically, according to the pages and / or database accesses on the server, each connected user opens processes that depend on a permission structure that describes someones access to these items (how and by what he can pull or change data on these items). These virtual processes contain calls that run and terminate real processes, as if they were an operating system process. In addition, the stdout channel that will transfer the result of the request to the screen of the browser, the stdin channel that is processed by pulling the URI parameters and the stderr channel that gives possible problems to the real server system are defined for all these processes. In this way, transactions are communicated one after another in the transaction pool according to their authorization (this happens from a transaction running chain) and the result is transferred to the user without any problem.

More sophisticated innovative approaches

This security system includes a "server-side assembly" (sasm) instruction set so that running processes can have different permission systems when they are triggered by routing from within the server. In this way, the virtual process to be opened as a result of an operation received from the user in any on-site redirection or server-side programming can be pre-defined with a simple set of commands according to where it is run.

Challenges we ran into

Since Sumatra is about creating an approach that does not exist, and especially since it is something like a partial virtualization in interaction with the real plane, it needed a lot of thought. Therefore, each block of code had to be tested by different experiments to make sure that the SQL and page triggers interactively worked with each other. Due to the time zone difference, I am happy that I have been difficult but successfully completed this project with non stop thoughts and codes until morning.

Accomplishments that we're proud of

It is extremely proud that a brand new idea has been put forward and that I have made sure that it is efficient within the limits I have targeted. The fact that this project is open to the use of different developers or will be very stable integrated with different framework / back-end languages shows that the future project can continue on its way very easily.

What we learned

I tried to use modern C ++ approaches to build this project in a fully scalable and platform adaptable manner without using an extra library file. That is why this has led me to not only repeat the efficient and useful points, but also to see how modern C ++ makes it easier to use in terms that are not mentioned much, and to explore its different aspects. At the same time, although I am not an expert in network programming myself, I learned a lot of things by trying out this idea.

What's next for Sumatra

I tried to show the maximum performance that i could implement this revolutionary mechanism according to my knowledge. In order to continue to develop and move forward, I will pay attention to its ability to be integrated with many different add-ons and to be even more universal.

Built With

Share this project:

Updates