Following a serie of posts on Aspect-Oriented Programming and its applications, we are presenting an idea developped in a recent publication. It shows how AOP can ease enforcement of cross-cutting concerns, with the illustration of security concerns management in service-based supply chain management systems.
An SCM application can be viewed as a long chain process along which goods have to pass through mandatory gates. It involves various devices, from embedded systems like sensors to large-scale servers in backend systems. Sensors are dedicated to data collection and signal triggering. They try to capture real-world status and measure it. Backend systems allow for data processing but need to adapt to all devices communicating with them, as each can have a different communication protocol and data format. The heterogeneity of platforms and software used in devices makes it difficult to manage simple security rules, especially across a supply chain. In order to deal with the multiple possibilities and not to interfere with the business part of software, one might want to describe security behavior for one system that adapts to security capabilities of systems communicating with it. To do so, we have presented in the paper an architecture that allows correct modularization of security concerns to quickly intervene in applications and make them adapt to the conditions they can face up to.
This work starts from a new security policy language developped in the scope of the CESSA project. This policy language has been designed to enable specifying security policies in distributed systems in a concise, readable, and extensible way, having execution environments under the control of multiple stakeholders. The language allows the definition of both abstract and concrete policies, expressing respectively high-level properties required and concrete implementation details to be ultimately introduced into the service implementation. In the context of an SCM application, we define a global abstract policy to respect integrity and non-repudiation properties from sensors’ messages. We then enforce this policy in all platforms receiving messages from sensors thanks to AOP. Security management is simplified to maintain security concerns separately from the base-application. Addressing cross-cutting concerns that pervades services with strong focus on security lead us to consider AOP as unified approach. It gives tools and methods from early phase of application design to implementation and maintenance of sensors to gather accurate context information. From modeling information, one decides what are specifications that have to be enforced during the execution of the application. In other words, the proposed architecture in the paper allows definition of security policies for service-based systems at a global level that are then enforced at a local level in an semi-automatic mode. We propose to decouple definition of specific security properties from the base application, and let declaration through rules respecting application owners’ needs.