Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by CRACS

2020

Container Hardening Through Automated Seccomp Profiling

Authors
Lopes, N; Martins, R; Correia, ME; Serrano, S; Nunes, F;

Publication
PROCEEDINGS OF THE 2020 6TH INTERNATIONAL WORKSHOP ON CONTAINER TECHNOLOGIES AND CONTAINER CLOUDS (WOC '20)

Abstract
Nowadays the use of container technologies is ubiquitous and thus the need to make them secure arises. Container technologies such as Docker provide several options to better improve container security, one of those is the use of a Seccomp profile. A major problem with these profiles is that they are hard to maintain because of two different factors: they need to be updated quite often and present a complex and time consuming task to determine exactly what to update, therefore not many people use them. The research goal of this paper is to make Seccomp profiles a viable technique in a production environment by proposing a reliable method to generate custom Seccomp profiles for arbitrary containerized application. This research focused on developing a solution with few requirements allowing for an easy integration with any environment with no human intervention. Results show that using a custom Seccomp profile can mitigate several attacks and even some zero day vulnerabilities on containerized applications. This represents a big step forward on using Seccomp in a production environment, which would benefit users worldwide.

2020

PseudoChecker: an integrated online platform for gene inactivation inference

Authors
Alves, LQ; Ruivo, R; Fonseca, MM; Lopes Marques, M; Ribeiro, P; Castro, LFC;

Publication
NUCLEIC ACIDS RESEARCH

Abstract
The rapid expansion of high-quality genome assemblies, exemplified by ongoing initiatives such as the Genome-10K and i5k, demands novel automated methods to approach comparative genomics. Of these, the study of inactivating mutations in the coding region of genes, or pseudogenization, as a source of evolutionary novelty is mostly overlooked. Thus, to address such evolutionary/genomic events, a systematic, accurate and computationally automated approach is required. Here, we present PseudoChecker, the first integrated online platform for gene inactivation inference. Unlike the few existing methods, our comparative genomics-based approach displays full automation, a built-in graphical user interface and a novel index, PseudoIndex, for an empirical evaluation of the gene coding status. As a multi-platform online service, PseudoChecker simplifies access and usability, allowing a fast identification of disruptive mutations. An analysis of 30 genes previously reported to be eroded in mammals, and 30 viable genes from the same lineages, demonstrated that PseudoChecker was able to correctly infer 97% of loss events and 95% of functional genes, confirming its reliability. PseudoChecker is freely available, without login required, at http://pseudochecker.ciimar.up.pt.

2020

Condensed Graphs: A Generic Framework for Accelerating Subgraph Census Computation

Authors
Martins, M; Ribeiro, P;

Publication
COMPLEX NETWORKS XI

Abstract
Determining subgraph frequencies is at the core of several graph mining methodologies such as discovering network motifs or computing graphlet degree distributions. Current state-of-the-art algorithms for this task either take advantage of common patterns emerging on the networks or target a set of specific subgraphs for which analytical calculations are feasible. Here, we propose a novel network generic framework revolving around a new data-structure, a Condensed Graph, that combines both the aforementioned approaches, but generalized to support any subgraph topology and size. Furthermore, our methodology can use as a baseline any enumeration based census algorithm, speeding up its computation. We target simple topologies that allow us to skip several redundant and heavy computational steps using combinatorics. We were are able to achieve substantial improvements, with evidence of exponential speedup for our best cases, where these patterns represent up to 97% of the network, from a broad set of real and synthetic networks.

2020

StreamFaSE: An Online Algorithm for Subgraph Counting in Dynamic Networks

Authors
Branquinho, H; Grácio, L; Ribeiro, P;

Publication
Complex Networks & Their Applications IX - Volume 2, Proceedings of the Ninth International Conference on Complex Networks and Their Applications, COMPLEX NETWORKS 2020, 1-3 December 2020, Madrid, Spain.

Abstract
Counting subgraph occurrences in complex networks is an important analytical task with applicability in a multitude of domains such as sociology, biology and medicine. This task is a fundamental primitive for concepts such as motifs and graphlet degree distributions. However, there is a lack of online algorithms for computing and updating subgraph counts in dynamic networks. Some of these networks exist as a streaming of edge additions and deletions that are registered as they occur in the real world. In this paper we introduce StreamFaSE, an efficient online algorithm for keeping track of exact subgraph counts in dynamic networks, and we explain in detail our approach, showcasing its general applicability in different network scenarios. We tested our method on a set of diverse real directed and undirected network streams, showing that we are always faster than the current existing methods for this task, achieving several orders of magnitude speedup when compared to a state-of-art baseline. © 2021, The Author(s), under exclusive license to Springer Nature Switzerland AG.

2020

On the Nature of Programming Exercises

Authors
Simões, A; Queirós, R;

Publication
OpenAccess Series in Informatics

Abstract
There are countless reasons cited in scientific studies to explain the difficulties in programming learning. The reasons range from the subject's complexity, the ineffective teaching and study methods, to psychological aspects such as demotivation. Still, learning programming often boils down to practice on exercise solving. Hence, it is essential to understand that the nature of a programming exercise is an important factor for the success and consistent learning. This paper explores different approaches on the creation of a programming exercise, starting with realizing how it is currently formalized, presented and evaluated. From there, authors suggest variations that seek to broaden the way an exercise is solved and, with this diversity, increase student engagement and learning outcome. The several types of exercises presented can use gamification techniques fostering student motivation. To contextualize the student with his peers, we finish presenting metrics that can be obtained by existing automatic assessment tools. 2012 ACM Subject Classification Applied computing ! Education.

2020

9th Symposium on Languages, Applications and Technologies, SLATE 2020, July 13-14, 2020, School of Technology, Polytechnic Institute of Cávado and Ave, Portugal (Virtual Conference)

Authors
Simões, A; Henriques, PR; Queirós, R;

Publication
SLATE

Abstract

  • 50
  • 200