<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <article-id pub-id-type="doi">10.1007/978</article-id>
      <title-group>
        <article-title>UserArmor: An extension for AppArmor</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="editor">
          <string-name>ASP Solver Hardening, Logic-based Profile Generation, Policy Reasoning, User-level Access Control</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Calabria, Department of Mathematics and Computer Science</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2025</year>
      </pub-date>
      <fpage>9</fpage>
      <lpage>13</lpage>
      <abstract>
        <p>Answer Set Programming is a declarative programming paradigm designed for solving complex combinatorial problems and is widely used in artificial intelligence, knowledge representation and automated reasoning. ASP can be used to develop web-based AI applications, where an ASP solver is executed in the backend server. While this approach is functional, it introduces serious security vulnerabilities if not properly implemented. This work introduces UserArmor, an extension of AppArmor, with the aim of hardening ASP solvers and other Linux processes on a per-user basis.</p>
      </abstract>
      <kwd-group>
        <kwd>return subprocess</kwd>
        <kwd>check_output(["sh"</kwd>
        <kwd>"-c"</kwd>
        <kwd>cmd</kwd>
        <kwd>string]</kwd>
        <kwd>text=True)</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction and problem description</title>
      <p>
        The state-of-the-art solverCLINGO[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is one of the most popular Answer Set Programming, ofering a
powerful engine that can be extended with Python v3.12 and Lua v5.4 scripts to enhance reasoning
capabilities. ASP can be used to develop web-based AI applications, and this is a common scenario
for researchers aiming to showcase their AI-powered tools that solve hard combinatorial tasks using
ASP[
        <xref ref-type="bibr" rid="ref2 ref3 ref4">2, 3, 4</xref>
        ]. This approach is functional, but it also exposes the system to remote code execution
      </p>
      <p>CEUR
Workshop</p>
      <p>ISSN1613-0073
and tag-based inheritance mechanisms. User-level granularity is implemented via a hierarchical
structure: each application has a base profile, and each user is linked to a nested subprofile. UserArmor
associates each application with a directory of per-user subprofiles, stored in separate files for modularity.
These are merged into a single mappings file, included via#include in the main policy. At load time,
the kernel links user-specific profiles under names like confined_app//user_name. Inheritance is
achieved through a tag-based system using#@selectable and #@select keywords, which enable reuse
of rules without duplication. Their usage is detailed in Secti4o.n</p>
      <p>We demonstrate how UserArmor can be applied toharden web-deployed ASP solvers like CLINGO,
mitigating remote code execution risks by confining the execution environment of specific users (e.g.,
www-data) without afecting others. For instance, by defining a dedicated security profile for the web
service user, CLINGO can be restricted withno file system access, no network access, and a minimal
execution environment.</p>
      <p>Looking ahead, we plan to further extend UserArmor by integratinAgnswer Set Programming
techniques not only for theautomatic generation of user-specific policies , but also for reasoning about internal
implementation concerns such aasutomated handling of inheritance and profile consistency . In particular,
we envision converting audit logs and trace events (e.g., froAmuditd or SystemTap) into ASP facts, from
which logic-based rules can derive abstract properties (e.g., inferrinngetwork_acceve agss("dns"))
and enforce security constraints declaratively.</p>
      <p>A UserArmor profile for www-data could look like this:
profile www-data {
# Deny access to the entire filesystem except for necessary paths
deny / rwx,
/usr/lib/** rm,
# Allow read access only to the directory where ASP encodings are stored
/var/www/clingo_input/** r,
# No network access
deny network,
# Deny execution of system commands
deny capability sys_admin,
deny capability setuid,
deny capability setgid,
}
With this policy, even if an attacker injects Python or Lua codcel, ingo cannot access critical files,
execute system commands, or connect to the internet, efectively neutralizing the RCE attack.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Background and overview of the existing literature</title>
      <p>In AppArmor, processes can be associated withprofiles that control access to system resources. Profiles
are typically stored in/etc/apparmor.d/, named after the executable’s absolute path (with / replaced
by .). A profile has the structure:
profile NAME /ABSOLUTE/PATH {</p>
      <p>RULES -&gt; define access permissions</p>
      <p>SUBPROFILES -&gt; specify rules for subprocesses
}</p>
      <p>In the main profile, profile NAME can be omitted. Rules can apply to:
Files: /ABSOLUTE/PATH FLAGS, where FLAGS includer (read), w (write), x (execute), andix (execute under
current profile).</p>
      <p>Capabilities: capability CAPABILITIES, where CAPABILITIES include kernel-level privileges (e.g.,
setuid).</p>
      <p>Networking: network TYPE, with TYPE specifying communication types (e.gi.,net or inet6).</p>
      <p>Any rule can be prefixed with deny to block access.</p>
      <p>Key AppArmor tools includeaa-genprof (interactive profile generation), aa-logprof (profile updates
from audit logs),apparmor_parser (profile verification and loading), and aa-complain, aa-enforce,
aa-disable (to switch enforcement modes).</p>
      <p>AppArmor supports rule reuse throughabstraction, which are dedicated files containing reusable
sets of rules, included with#:include &lt;file&gt; or, conditionallyi:nclude if exists &lt;file&gt;.</p>
      <p>Paths are relative to/etc/apparmor.d/. Missing files trigger an error unless the conditional form is
used.</p>
      <p>These files contain common permissions and access patterns for widely used applications or
subystems, such as bash, nameservice, X11.</p>
      <sec id="sec-2-1">
        <title>2.1. Literature review</title>
        <p>The closest work to ours is Paranoid Penguin9][, which improves AppArmor usability by providing a
graphical interface for profile creation and management. This approach reduces configuration errors
and makes AppArmor more accessible, but it does not alter the enforcement model or introduce new
security features. UserArmor, instead, extends AppArmor’s model with fine-grained access control for
multi-user environments and a tag-based inheritance system that avoids rule duplication.</p>
        <p>
          Related research also investigates dynamic profiling, where policies adapt at runtime. Some proposals
ofload profile generation to the cloud for centralized control 1[
          <xref ref-type="bibr" rid="ref1 ref12">1, 12</xref>
          ], while others apply updates locally
to enable immediate response 1[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Container security is another active area: tools such as Auditd and
SystemTap have been employed to generate Docker profiles dynamically1[
          <xref ref-type="bibr" rid="ref15 ref4">4, 15</xref>
          ], later integrated into
unified frameworks [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] and enhanced with live updates1[
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] and Kubernetes support [17]. Unlike these
dynamic approaches, which react to observed behavior, UserArmor enforces static, user-aware policies
that ofer low overhead and predictable results. It further supports resource limits (CPU, memory, file
handles), strengthening its role within a layered defense strategy.
        </p>
        <p>Traditional UNIX-based systems already provide basic user-level access control mechanisms, including
ifle ownership and permission bits, group memberships, and POSIX Access Control Lists (ACLs). While
efective for managing file and resource access, these mechanisms are not integrated with kernel-level
security modules like AppArmor and lack process-level confinement or modular policy enforcement.
Resource limits can be applied per user through PAM configurations (e.g.l,imits.conf ) [18, 19, 20], but
these settings are coarse-grained and disconnected from application-specific security requirements.
UserArmor instead ofers a unified and scalable approach to multi-user confinement.</p>
        <p>
          Role-Based Access Control (RBAC) is also available in Linux through SELinux, which provides a
powerful yet complex security model based on types, roles, and domain2s1,[
          <xref ref-type="bibr" rid="ref10">10, 22</xref>
          ]. Although SELinux
enables role-based confinement, it is usually deployed with predefined, system-wide policies and lacks
straightforward mechanisms for assigning tailored restrictions to individual users running the same
application. Crafting custom SELinux policies requires in-depth knowledge of its security architectu2re3][,
making it less suitable for scenarios that demand lightweight, user-specific confinement. UserArmor
iflls this gap by ofering a practical solution for managing multi-user security policies without requiring
global policy reconfiguration.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Goal of the research</title>
      <p>The goal of this research is to provide an extension of AppArmor that overcomes the lack of user-level
granularity and inheritance mechanisms. This motivated the study and implementation of UserArmor.</p>
      <sec id="sec-3-1">
        <title>Example 1. Consider an application executed by two users, user1 and user2, which writes to a user-specific</title>
        <p>log file. The most restrictive AppArmor profile that allows the application to function would include:
/var/log/my_confined_app/user1.log rw,
/var/log/my_confined_app/user2.log rw,
Further restrictions would break application logic, as each user needs access to their own log file. This
creates a vulnerability: a bug could let user1 access user2’s file, violating confidentiality and integrity. To
prevent this, we introduce per-user subprofiles:
profile user1 {
...</p>
        <p>/var/log/my_confined_app/user1.log rw,
And profile user2 with ’rw’ permission on /var/log/my_confined_app/user2.log file. When the
application is run by user1, the user1 subprofile is enforces, preventing any access to user2.log at the kernel
level, even in the presence of application bugs. ■</p>
        <p>While profiles can be nested, subprofiles define separate rules for subprocesses and do not inherit
from the parent, as diferent privileges may be required.</p>
        <p>AppArmor supports rule reuse viaabstractions, included with#include. However, abstractions are
all-or-nothing and cannot adapt based on conditions such as the user identity. This makes policy
management complex and error-prone in user-specific or frequently changing environments.</p>
      </sec>
      <sec id="sec-3-2">
        <title>Example 2. Consider a Bash application, my_confined_app, that uses cat to read a config file and requires</title>
        <p>network access. It can be run by two sudo users, but only one needs administrative privileges. As in
Example 1, each user must access their own log file. A standard AppArmor profile for this scenario would
be:</p>
        <p>}
}</p>
        <p>}
#include &lt;tunables/global&gt;
/usr/bin/my_confined_app {
profile user1 {
#include &lt;abstractions/bash&gt;
/etc/my_confined_app.conf r,
/usr/bin/cat ix,
network inet,
/var/log/my_confined_app/user1.log rw,
profile user2 {
#SAME RULES
/var/log/my_confined_app/user2.log rw,
Here, abstractionsinclude common Bash permissions (e.g., .bash_profile, .bash_rc, .profile), but many
rules are duplicated across subprofiles. UserArmor addresses this with a tag-based inheritance mechanism
that simplifies rule reuse:
#include &lt;tunables/global&gt;
/usr/bin/my_confined_app {
#OTHER RULES
#@selectable{adm}
#@selectable{net}
profile user1 {
/var/log/my_confined_app/user1.log rw,
}
profile user2 {
/var/log/my_confined_app/user2.log rw,</p>
        <p>}
}
capability sys_admin,
network inet,</p>
      </sec>
      <sec id="sec-3-3">
        <title>Their usage is detailed in Section 4.</title>
        <p>■</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Current status of the research</title>
      <p>UserArmor uses a tag system represented with a comment-based syntax, described below. Rules (and
blocks) are associated with aliases (i.e., identifying strings).</p>
      <p>Base rules. Untagged rules are considered essential and are automatically inherited by all subprofiles.
Selectable rules. Rules starting with a tag#@selectable{ALIAS} are not inherited automatically (and
are not part of the main profile), but can be included in the subprofiles via theirALIAS.
Selectable blocks. A syntax similar to the previous one can be applied to rule blocks:
Removable rules. Rules ending with a tag#@removable{ALIAS} are inherited in subprofiles unless
explicitly removed by theirALIAS.</p>
      <p>Subprofile inheritance. Subprofiles can select rules and blocks using the following ta#g@:select:
ALIASES where ALIASES is a space-separated list of aliases. Selected rules and blocks are added to the
basic rules. Untagged rules are added at the begin of each subprofile, unless their alias is listed in the
following tag#:@remove: ALIASES</p>
      <p>The tag system applies to profile files stored in a directory specific to the confined application. Each
user has a profile file, and a central mappings file includes them all. Thismappings file is then included
in the main profile under /etc/apparmor.d/. AppArmor loads subprofiles as confined_app//user_name,
allowing UserArmor to select the correct one based on the current user.</p>
      <p>Example 3 (Continuing Example 2). The scenario before is modeled with the profile file
/etc/apparmor.d/usr.bin.my_confined_app:</p>
      <p>#include &lt;tunables/global&gt;
/usr/bin/my_confined_app {
#include &lt;abstractions/bash&gt;
/etc/my_confined_app.conf r,
/usr/bin/cat ix,
#@selectable{adm} capability sys_admin,
#@selectable{net} network inet,
include if exists &lt;.usr.bin.my_confined_app/mappings&gt;
}
The directory /etc/apparmor.d/.usr.bin.my_confined_app contains:
• user1, associated to the first user, with the following content:
profile user1 {
#@select: adm net
/var/log/my_confined_app/user1.log rw,
}
• user2, associated with the second user, has same structure as user1, but selects only the net tag,
limiting access accordingly.
• mappings, including the above files with the expansion of the selected permissions (e.g user1):
profile user1 {
#@select: adm net
capability sys_admin,
network inet,
/var/log/my_confined_app/user1.log rw,</p>
      <sec id="sec-4-1">
        <title>UserArmor automates this setup by inserting the</title>
        <p>include if exists &lt;.usr.bin.my_confined_app/mappings&gt; directive into the application profile and
generating /etc/apparmor.d/.usr.bin.my_confined_app/mappings. Untagged rules are treated as
essential and inherited automatically. ■
UserArmor includes three command-line utilitieusa: -generate, ua-enforce, and ua-exec.
ua-generate creates the required directory and one subprofile per user, preserving existing files (Root
privileges are required).ua-enforce inserts the include if exists directive and generates themappings
ifle based on tag selection (Also requires root).ua-exec selects and applies the correct subprofile using
aa-exec. Usable by any user, butaa-exec should be executable only by root or members of thueserarmor
group. Users outside the group will fall back to the base profile; group members use their dedicated
subprofile.</p>
        <p>Example 4 (Continuing Example 3). Starting from the base profile
/etc/apparmor.d/usr.bin.my_confined_app, the following command generates the directory structure
and empty subprofiles:</p>
        <p>$ sudo ua-generate /usr/bin/my_confined_application --subprofiles=user1,user2</p>
      </sec>
      <sec id="sec-4-2">
        <title>After editing the subprofiles (as in Example</title>
      </sec>
      <sec id="sec-4-3">
        <title>3), the administrator runs:</title>
        <p>$ sudo ua-enforce /usr/bin/my_confined_application</p>
      </sec>
      <sec id="sec-4-4">
        <title>This command generates the mappings file, ensures the include if exists directive is present, and enforces the policy via AppArmor. To run the application, user1 uses:</title>
        <p>$ ua-exec /usr/bin/my_confined_app arg1 arg2 ...</p>
      </sec>
      <sec id="sec-4-5">
        <title>Running the app without ua-exec:</title>
        <p>$ my_confined_app arg1 arg2 ...</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Preliminary results</title>
      <p>would fall back to the base profile, with no access to /var/log/my_confined_app/user1.log.
■
We provide scripts for four scenarios: (i) Unconfinedclingo, where the web app is vulnerable to RCE
and system compromise; (ii) AppArmor-confined, which prevents RCE but restricts all users, including
those accessing via SSH; (iii) UserArmor-confined, which blocks RCE for the web app while allowing
unrestricted SSH use ofclingo; and (iv) Bubblewrap sandboxed, which prevents RCE but requires a
fresh isolated environment for each execution.</p>
      <p>The script files are available onlineh(ttps://github.com/pierpaolosestito-dev/ASPArmo;raccessed 13
February 2025). We ran an experiment on a 13th Gen Intel(R) Core(TM) i7-1360P @ 2.2 GHz CPU with
32 GB RAM using a simple Bash script:
cat /etc/my_confined_app.conf &gt;&gt; /var/log/my_confined_app/$USER.log</p>
      <p>We repeatedly executedclingo on the program: number(1..10000)</p>
      <p>UserArmor introduced negligible overhead. For example, after 50 calls, execution times were:
Unconifned: 0.99s, AppArmor: 1.01s, UserArmor: 1.08s, Bubblewrap: 1.32s. Performance remained consistent
across larger batches, with UserArmor consistently outperforming Bubblewrap.</p>
      <p>In summary, securingclingo in web environments is essential due to the risk posed by @-terms,
which enable RCE. Bubblewrap provides isolation but adds overhead and requires workflow changes.
UserArmor ofers a lighter, kernel-level alternative: it restrictcslingo for the web user (www-data),
while leaving other users unafected.</p>
      <p>
        For completeness, we note thatclingo—like MiniZinc 2[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and Nemo [25, 26]—can also run in the
browser via WebAssembly. A notable example is ASP Chef2[
        <xref ref-type="bibr" rid="ref7">7, 28</xref>
        ], a low-code ASP environment
integrating multiple languages and framework2s9[, 30].
      </p>
    </sec>
    <sec id="sec-6">
      <title>6. Open issues and expected achievements</title>
      <sec id="sec-6-1">
        <title>6.1. Logic-based automatic policy generation</title>
        <p>A central line of future work will be the integration of declarative reasoning techniques to support the
automatic generation of UserArmor profiles. Building on existing approaches that use tools such as
Auditd and SystemTap to monitor system events, we plan to convert these events into facts that can be
processed by an ASP solver.</p>
        <p>From these low-level facts, additional rules can derive higher-level properties (e.g. grouping raw TCP
connection events into abstract facts such ansetwork_access("dns"), which can then be constrained
by declarative policies.</p>
        <p>Example 5. A concrete case is a log entry from Auditd like:
type=SYSCALL msg=audit(...): exe="/usr/bin/clingo" comm="python3" syscall=2</p>
        <p>file="/etc/passwd"
which can be translated into the fact
and combined with a constraint such as
:- access(_, _, File, _), sensitive(File).
to ensure that no policy allows access to sensitive files. Similarly, a network event like
can be constrained with
:- network_request(_, Host), Host != "trusted.example.org".</p>
        <p>The solver will search for combinations of permissions that are both safe and minimal. High-level
constraints - such as ”deny all network access except to domain X” - will be expressed as declarative
rules. In this framework, logic is not just a description of the observed events but an active reasoning
tool that: synthesizes profiles by automatically selecting permissions, verifies that generated policies
satisfy safety constraints, and explains every decision by linking it to rules and facts.</p>
        <p>This reasoning-based extension will make UserArmor a hybrid framework where static enforcement
and logic-based reasoning cooperate to improve security in multi-user environments.</p>
      </sec>
      <sec id="sec-6-2">
        <title>6.2. Additional tools and practical challenges</title>
        <p>Beyond the integration of ASP-based reasoning, future development will also address the creation of
administrative tools for managing user-specific profiles, including the ability to rename or delete them.
It will further investigate the scalability of reasoning when large execution traces are collected and
explore interactive workflows in which administrators can refine or approve the policies generated
automatically. These directions aim to turn UserArmor into a practical yet research-oriented platform
that combines secure Linux confinement with the flexibility of logic programming.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Declaration on Generative AI</title>
      <p>During the preparation of this work, the authors used ChatGPT-4o for grammar and spelling check.
After using this tool, the authors reviewed and edited the content as needed and take full responsibility
for the publication’s content.
Com 2022, Melbourne, Australia, December 17-19, 2022, IEEE, 2022, pp. 822–829. URL:
https://doi.org/10.1109/ISPA-BDCloud-SocialCom-SustainCom57177.2022.001.1d0oi:10.1109/
ISPA-BDCLOUD-SOCIALCOM-SUSTAINCOM57177.2022.00110.
[17] H. Zhu, C. Gehrmann, Kub-sec, an automatic kubernetes cluster apparmor profile generation
engine, in: 14th International Conference on COMmunication Systems &amp; NETworkS, COMSNETS
2022, Bangalore, India, January 4-8, 2022, IEEE, 2022, pp. 129–137. URLh:ttps://doi.org/10.1109/
COMSNETS53615.2022.9668504. doi:10.1109/COMSNETS53615.2022.9668504.
[18] A. G. Morgan, Pluggable authentication modules for linux: An implementation of a
userauthentication api, Linux Journal 1997 (1997) 1–es.
[19] K. Geisshirt, Pluggable authentication modules, Birmingham, UK: Packt Publishing 105 (2007).
[20] V. Samar, Unified login with pluggable authentication modules (pam), in: Proceedings of the 3rd</p>
      <p>ACM conference on Computer and communications security, 1996, pp. 1–10.
[21] Z. C. Schreuders, T. McGill, C. Payne, Empowering end users to confine their own applications:
The results of a usability study comparing selinux, apparmor, and fbac-lsm, ACM Trans. Inf. Syst.</p>
      <p>Secur. 14 (2011). URL: https://doi.org/10.1145/2019599.2019604. doi:10.1145/2019599.2019604.
[22] C. Shepherd, K. Markantonakis, Operating system controls, in: Trusted Execution Environments,</p>
      <p>Springer, 2024, pp. 33–53.
[23] S. Smalley, Configuring the selinux policy, NAI Labs Rep (2002) 02–007.
[24] N. Nethercote, P. J. Stuckey, R. Becket, S. Brand, G. J. Duck, G. Tack, MiniZinc: Towards a
standard CP modelling language, in: C. Bessiere (Ed.), CP 2007, Providence, RI, USA,
September 23-27, 2007, Proceedings, volume 4741 ofLNCS, Springer, 2007, pp. 529–543. doi1:0.1007/
978-3-540-74970-7\_38.
[25] A. Ivliev, L. Gerlach, S. Meusel, J. Steinberg, M. Krötzsch, Nemo: A scalable and versatile datalog
engine, in: M. Alviano, M. Lanzinger (Eds.), Proceedings 5th International Workshop on the
Resurgence of Datalog in Academia and Industry (Datalog-2.0 2024) co-located with the 17th
International Conference on Logic Programming and Nonmonotonic Reasoning (LPNMR 2024),
Dallas, Texas, USA, October 11, 2024, volume 3801 oCf EUR Workshop Proceedings, CEUR-WS.org,
2024, pp. 43–47. URL: https://ceur-ws.org/Vol-3801/short3.pd.f
[26] A. Ivliev, L. Gerlach, S. Meusel, J. Steinberg, M. Krötzsch, Nemo: Your friendly and versatile rule
reasoning toolkit, in: P. Marquis, M. Ortiz, M. Pagnucco (Eds.), Proceedings of the 21st International
Conference on Principles of Knowledge Representation and Reasoning, KR 2024, Hanoi, Vietnam.</p>
      <p>November 2-8, 2024, 2024. URL: https://doi.org/10.24963/kr.2024/70. doi:10.24963/KR.2024/70.
[27] M. Alviano, D. Cirimele, L. A. R. Reiners, Introducing ASP recipes and ASP chef, in: J. Arias, S.
Batsakis, W. Faber, G. Gupta, F. Pacenza, E. Papadakis, L. Robaldo, K. Rückschloß, E. Salazar, Z. G.
Saribatur, I. Tachmazidis, F. Weitkämper, A. Z. Wyner (Eds.), Proceedings of the International Conference
on Logic Programming 2023 Workshops co-located with the 39th International Conference on Logic
Programming (ICLP 2023), London, United Kingdom, July 9th and 10th, 2023, volume 3437CoEfUR
Workshop Proceedings, CEUR-WS.org, 2023. URL: https://ceur-ws.org/Vol-3437/paper4ASPOCP.pd.f
[28] M. Alviano, L. A. R. Reiners, ASP chef: Draw and expand, in: P. Marquis, M. Ortiz, M. Pagnucco
(Eds.), Proceedings of the 21st International Conference on Principles of Knowledge Representation
and Reasoning, KR 2024, Hanoi, Vietnam. November 2-8, 2024, 2024. URLh: ttps://doi.org/10.24963/
kr.2024/68. doi:10.24963/KR.2024/68.
[29] M. Alviano, L. A. R. Reiners, Integrating minizinc with ASP chef: Browser-based constraint
programming for education and prototyping, in: C. Dodaro, G. Gupta, M. V. Martinez (Eds.),
Logic Programming and Nonmonotonic Reasoning - 17th International Conference, LPNMR 2024,
Dallas, TX, USA, October 11-14, 2024, Proceedings, volume 15245 oLfecture Notes in Computer
Science, Springer, 2024, pp. 174–186. URL: https://doi.org/10.1007/978-3-031-74209-5_14. doi:10.
1007/978-3-031-74209-5\_14.
[30] M. Alviano, P. Guarasci, L. A. R. Reiners, I. R. Vasile, Integrating structured declarative language
(SDL) into ASP chef, in: C. Dodaro, G. Gupta, M. V. Martinez (Eds.), Logic Programming and
Nonmonotonic Reasoning - 17th International Conference, LPNMR 2024, Dallas, TX, USA, October
11-14, 2024, Proceedings, volume 15245 ofLecture Notes in Computer Science, Springer, 2024, pp.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gebser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kaminski</surname>
          </string-name>
          , T. Schaub,
          <article-title>Complex optimization in answer set programming</article-title>
          ,
          <source>Theory Pract. Log. Program</source>
          .
          <volume>11</volume>
          (
          <year>2011</year>
          )
          <fpage>821</fpage>
          -
          <lpage>839</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>T.</given-names>
            <surname>Eiter</surname>
          </string-name>
          , G. Ianni,
          <string-name>
            <given-names>R.</given-names>
            <surname>Schindlauer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Tompits</surname>
          </string-name>
          ,
          <article-title>A uniform integration of higher-order reasoning and external evaluations in answer-set programming</article-title>
          , in: L. P.
          <string-name>
            <surname>Kaelbling</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Safiotti (Eds.),
          <source>IJCAI-05, Proceedings of the Nineteenth International Joint Conference on Artificial Intelligence</source>
          , Edinburgh, Scotland,
          <string-name>
            <surname>UK</surname>
          </string-name>
          ,
          <source>July 30 - August 5</source>
          ,
          <year>2005</year>
          , Professional Book Center,
          <year>2005</year>
          , pp.
          <fpage>90</fpage>
          -
          <lpage>96</lpage>
          . URL: http://ijcai.org/Proceedings/05/Papers/1353.pd.f
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>F.</given-names>
            <surname>Calimeri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Germano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Palermiti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Reale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricca</surname>
          </string-name>
          ,
          <article-title>Developing ASP programs with ASPIDE and loide</article-title>
          ,
          <source>Künstliche Intell</source>
          .
          <volume>32</volume>
          (
          <year>2018</year>
          )
          <fpage>185</fpage>
          -
          <lpage>186</lpage>
          . URhLt:tps://doi.org/10.1007/s13218-018-0534-z. doi:
          <volume>10</volume>
          .1007/S13218-018-0534-Z.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>F.</given-names>
            <surname>Calimeri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Fuscà</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Germano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Perri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zangari</surname>
          </string-name>
          ,
          <article-title>Fostering the use of declarative formalisms for real-world applications: The embasp framework</article-title>
          ,
          <source>New Gener. Comput</source>
          .
          <volume>37</volume>
          (
          <year>2019</year>
          )
          <fpage>29</fpage>
          -
          <lpage>65</lpage>
          . URL: https://doi.org/10.1007/s00354-018-0046-2. doi:
          <volume>10</volume>
          .1007/S00354-018-0046-2.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>C.</given-names>
            <surname>Cowan</surname>
          </string-name>
          ,
          <article-title>Securing linux systems with apparmor</article-title>
          ,
          <source>DEF CON 15</source>
          (
          <year>2007</year>
          )
          <fpage>15</fpage>
          -
          <lpage>26</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Jiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Yin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Tan</surname>
          </string-name>
          ,
          <article-title>Security analysis of mandatory access control model</article-title>
          ,
          <source>in: 2004 IEEE International Conference on Systems, Man and Cybernetics</source>
          (IEEE Cat.
          <source>No. 04CH37583)</source>
          , volume
          <volume>6</volume>
          , IEEE,
          <year>2004</year>
          , pp.
          <fpage>5013</fpage>
          -
          <lpage>5018</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Osborn</surname>
          </string-name>
          ,
          <article-title>Mandatory access control and role-based access control revisited</article-title>
          ,
          <source>in: Proceedings of the second ACM workshop on Role-based access control</source>
          ,
          <year>1997</year>
          , pp.
          <fpage>31</fpage>
          -
          <lpage>40</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>T.</given-names>
            <surname>Ecarot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Dussault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Souid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lavoie</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ethier</surname>
          </string-name>
          ,
          <article-title>Apparmor for health data access control: Assessing risks and benefits</article-title>
          , in: L.
          <string-name>
            <surname>Boubchir</surname>
            , E. Benkhelifa,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Jararweh</surname>
          </string-name>
          , I. Saleh (Eds.),
          <source>7th International Conference on Internet of Things: Systems, Management and Security</source>
          ,
          <string-name>
            <surname>IOTSMS</surname>
          </string-name>
          <year>2020</year>
          ,
          <string-name>
            <surname>Virtual</surname>
            <given-names>Event</given-names>
          </string-name>
          , France,
          <source>December 14-16</source>
          ,
          <year>2020</year>
          , IEEE,
          <year>2020</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          . URL:https://doi.org/10. 1109/IOTSMS52051.
          <year>2020</year>
          .
          <volume>9340206</volume>
          . doi:
          <volume>10</volume>
          .1109/IOTSMS52051.
          <year>2020</year>
          .
          <volume>9340206</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Bauer</surname>
          </string-name>
          ,
          <article-title>Paranoid penguin: an introduction to novell apparmor</article-title>
          ,
          <source>Linux Journal</source>
          <year>2006</year>
          (
          <year>2006</year>
          )
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>H.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Mao</surname>
          </string-name>
          ,
          <article-title>Analyzing and comparing the protection quality of security enhanced operating systems</article-title>
          ., in: NDSS, volume
          <volume>9</volume>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gehrmann</surname>
          </string-name>
          ,
          <article-title>Apparmor profile generator as a cloud service</article-title>
          , in: M.
          <string-name>
            <surname>Helfert</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Ferguson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          Pahl (Eds.),
          <source>Proceedings of the 11th International Conference on Cloud Computing and Services Science, CLOSER</source>
          <year>2021</year>
          ,
          <string-name>
            <given-names>Online</given-names>
            <surname>Streaming</surname>
          </string-name>
          ,
          <source>April 28-30</source>
          ,
          <year>2021</year>
          , SCITEPRESS,
          <year>2021</year>
          , pp.
          <fpage>45</fpage>
          -
          <lpage>55</lpage>
          . URL: https://doi.org/10.5220/0010434100450055. doi:
          <volume>10</volume>
          .5220/0010434100450055.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gehrmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Roth</surname>
          </string-name>
          ,
          <article-title>Access security policy generation for containers as a cloud service</article-title>
          ,
          <source>SN Computer Science</source>
          <volume>4</volume>
          (
          <year>2023</year>
          )
          <fpage>748</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Yuan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ding</surname>
          </string-name>
          , H. Cheng,
          <article-title>Aspgen: an automatic security policy generating framework for apparmor</article-title>
          , in: J.
          <string-name>
            <surname>Hu</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Min</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Georgalas</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Hao</surname>
          </string-name>
          , W. Miao (Eds.),
          <source>IEEE International Conference on Parallel &amp; Distributed Processing with Applications</source>
          ,
          <source>Big Data &amp; Cloud Computing, Sustainable Computing &amp; Communications, Social Computing &amp; Networking</source>
          , ISPA/BDCloud/SocialCom/SustainCom 2020, Exeter, United Kingdom,
          <source>December 17-19</source>
          ,
          <year>2020</year>
          , IEEE,
          <year>2020</year>
          , pp.
          <fpage>392</fpage>
          -
          <lpage>400</lpage>
          . URL: https://doi.org/10.1109/
          <string-name>
            <surname>ISPA-BDCloud-SocialCom-SustainCom51426</surname>
          </string-name>
          .
          <year>2020</year>
          .
          <volume>00075</volume>
          . doi:
          <volume>10</volume>
          .1109/
          <string-name>
            <surname>ISPA-BDCLOUD-SOCIALCOM-SUSTAINCOM51426</surname>
          </string-name>
          .
          <year>2020</year>
          .
          <volume>00075</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mattetti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Shulman-Peleg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Allouche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Corradi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Dolev</surname>
          </string-name>
          , L. Foschini,
          <article-title>Securing the infrastructure and the workloads of linux containers</article-title>
          ,
          <source>in: 2015 IEEE Conference on Communications and Network Security (CNS)</source>
          ,
          <year>2015</year>
          , pp.
          <fpage>559</fpage>
          -
          <lpage>567</lpage>
          .
          <year>doi1</year>
          :
          <fpage>0</fpage>
          .1109/CNS.
          <year>2015</year>
          .
          <volume>7346869</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>F.</given-names>
            <surname>Loukidis-Andreou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Giannakopoulos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Doka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Koziris</surname>
          </string-name>
          ,
          <article-title>Docker-sec: A fully automated container security enhancement mechanism</article-title>
          ,
          <source>in: 2018 IEEE 38th International Conference on Distributed Computing Systems (ICDCS)</source>
          , IEEE,
          <year>2018</year>
          , pp.
          <fpage>1561</fpage>
          -
          <lpage>1564</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>C.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Liao</surname>
          </string-name>
          , Aspgen-d:
          <article-title>Automatically generating finegrained apparmor policies for docker</article-title>
          ,
          <source>in: IEEE Intl Conf on Parallel &amp; Distributed Processing with Applications</source>
          ,
          <source>Big Data &amp; Cloud Computing, Sustainable Computing &amp; Communications, Social Computing &amp; Networking</source>
          , ISPA/BDCloud/SocialCom/Sustain-
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>