Segurança na Internet do Futuro: Provendo Confiança Distribuída através de Correntes de Blocos na Virtualização de Funções de Rede
Autores: Gabriel Antonio F. Rebello, Gustavo F. Camilo, Leonardo G. C. Silva, Lucas A. C. de Souza, Lucas C. B. Guimarães e Otto Carlos M. B. Duarte (UFRJ)
Resumo:
A Internet do Futuro, além de interconectar bilhões de dispositivos, deverá atender com agilidade a uma enorme diversidade de requisitos de serviços, alavancar novas aplicações e continuar sendo a maior infraestrutura para crescimento econômico e social das nações. Esta Internet de nova geração, baseada na tecnologia de Virtualização de Funções de Rede (Network Function Virtualization – NFV) e Redes Definidas por Software (Software-Defined Networking – SDN) será a essência das redes móveis de quinta geração (5G) e das cidades inteligentes (smart cities). Um dos desafios fundamentais de pesquisa é garantir o provisionamento seguro de serviços em um ambiente de nuvem onde múltiplos inquilinos e usuários sem confiança mútua compartilham recursos. O objetivo deste capítulo é mostrar de forma clara, objetiva e sucinta os fundamentos-chave de corrente de blocos (blockchain), e relacionar estes conceitos aos desafios de pesquisa em segurança nas redes de nova geração. Além disso, este capítulo dedica uma parte significativa à realização de uma atividade prática que mostra o desenvolvimento de duas correntes de blocos baseadas na plataforma Hyperledger Fabric. As correntes de blocos mitigam ataques em uma arquitetura de fatiamento de redes que provê o encadeamento de funções de rede para construir serviços fim-a-fim sob demanda. Os participantes poderão criar, verificar e discutir o funcionamento de cada componente de uma corrente de blocos baseada no Hyperledger Fabric e aprender a controlar as atividades através de contratos inteligentes.
Computação Urbana da Teoria à Prática: Fundamentos, Aplicações e Desafios
Autores: Diego O. Rodrigues (IC-UNICAMP), Frances A. Santos (IC-UNICAMP), Geraldo P. Rocha Filho (CiC-UnB), Ademar T. Akabane (IC-UNICAMP), Raquel Cabral (UFAL), Roger Immich (IC-UNICAMP), Wellington L. Junior (IC-UNICAMP), Felipe D. Cunha (PUC-Minas), Daniel L. Guidoni (UFSJ), Thiago H. Silva (UTFPR), Denis Rosário (UFPA), Eduardo Cerqueira (UFPA), Antonio A. F. Loureiro (UFMG) e Leandro A. Villas (IC-UNICAMP)
Resumo:
A rápida urbanização das cidades vem resultando em inúmeros desafios técnicos e gerenciais para os gestores públicos tais como consumo de energia, poluição, mobilidade urbana e até mesmo gestão de espaços privados e públicos de forma apropriada. A Computação Urbana surge como um paradigma promissor para resolver tais desafios, por meio da extração de informação, a partir de uma grande quantidade de dados heterogêneos existentes no espaço urbano. Mais ainda, a Computação Urbana correlaciona o sensoriamento urbano, o gerenciamento de dados e sua análise para fornecer serviços que têm o potencial de melhorar a qualidade da vida dos habitantes de grandes centros urbanos. Com isso em mente, este minicurso tem como objetivo apresentar os fundamentos da Computação Urbana e os passos necessários para desenvolver uma aplicação nessa área. Para alcançar tal objetivo, serão investigadas as seguintes questões, a saber: (i) Quais são os principais problemas de pesquisa da Computação Urbana?; (ii) Quais são os desafios tecnológicos existentes para a implantação de serviços na Computação Urbana?; (iii) Quais são as principais metodologias utilizadas para o desenvolvimento de serviços na Computação Urbana?; e (iv) Quais são as aplicações representativas neste domínio?
Abstract:
The growing of cities has resulted in innumerable technical and managerial challenges for public administrators such as energy consumption, pollution, urban mobility and even supervision of private and public spaces in an appropriate way. Urban Computing emerges as a promising paradigm to solve such challenges, through the extraction of knowledge, from a large amount of heterogeneous data existing in urban space. Moreover, Urban Computing correlates urban sensing, data management, and analysis to provide services that have the potential to improve the quality of life of the citizens of large urban centers. Consider this context, this chapter aims to present the fundamentals of Urban Computing and the steps necessary to develop an application in this area. To achieve this goal, the following questions will be investigated, namely: (i) What are the main research problems of Urban Computing?; (ii) What are the technological challenges for the implementation of services in Urban Computing?; (iii) What are the main methodologies used for the development of services in Urban Computing?; and (iv) What are the representative applications in this field?
Processamento Rápido de Pacotes com eBPF e XDP
Autores: Marcos A. M. Vieira, Racyus D. G. Pacífico, Matheus S. Castanho, Elerson R. S. Santos, Eduardo P. M. Câmara Júnior, Luiz F. M. Vieira (UFMG)
Resumo:
O filtro de pacotes estendido (Extended Berkeley Packet Filter (eBPF)) foi rapidamente adotado em vários sistemas desde sua introdução no kernel do Linux em 2014. O eBPF é utilizado para processamento rápido de pacotes. Os usos do eBPF cresceram rapidamente para incluir monitoramento de rede, manipulação de tráfego de rede, balanceamento de carga, monitoramento do sistema, etc. Várias empresas já utilizam eBPF em projetos como o Facebook, Netronome, Cilium. Este minicurso tem como objetivo apresentar o eBPF. O eBPF permite a programação dos dispositivos de redes. O desenvolvedor pode escrever em linguagem P4 ou C e depois compilar para instruções eBPF. Depois, o código eBPF pode ser processado no kernel do Linux ou por dispositivos programáveis como NetFPGAs e smartNICs. O minicurso cobre os principais aspectos teóricos e fundamentais do eBPF, assim como introduzir o leitor a atividades práticas simples que possam dar uma visão sobre o funcionamento e uso geral do eBPF.
Abstract:
Extended Berkeley Packet Filter (eBPF) has been rapidly adopted across multiple systems since its introduction in the Linux kernel in 2014. eBPF is used for fast packet processing. The use cases of eBPF have grown rapidly to include network monitoring, network traffic manipulation, load balancing, system monitoring, and so on. Several companies already use eBPF on projects such as Facebook, Netronome, and Cilium. This short-course aims to present eBPF. eBPF allows programming network devices. The developer can write in P4 or C language and then compile for eBPF instructions. The eBPF code can be processed in the Linux kernel or by programmable devices such as NetFPGAs and smartNICs. This short-course covers the main theoretical and fundamental aspects of eBPF, as well as introducing the reader to simple practical activities that can give insight into the general operation and use of eBPF.
Análise de Dados em Redes Sem Fio de Grande Porte: Processamento em Fluxo em Tempo Real, Tendências e Desafios
Autores: Dianne S. V. Medeiros (UFF), Helio N. C. Neto (UFF), Martin Andreoni Lopez (Samsung R&D), Luiz Claudio S. Magalhães (UFF), Edelberto F. Silva (UFJF), Alex B. Vieira (UFJF), Natalia C. Fernandes (UFF), Diogo M. F. Mattos (UFF)
Resumo:
Este capítulo foca na extração de conhecimento em aplicações de redes sem fio de grande porte através do processamento de dados em fluxo. O capítulo apresenta os principais métodos de amostragem, coleta de dados e monitoramento de redes sem fio e caracteriza a extração do conhecimento como um problema de aprendizado de máquina em processamento de grandes massas de dados em fluxo. As plataformas Apache Spark e Apache Flink são as principais tendências entre plataformas para o processamento de dados em fluxo e, portanto, são analisadas neste capítulo. Discute-se o pré-processamento, a engenharia de características e os algoritmos para o aprendizado de máquina aplicados ao cenário de redes sem fio. Desafios e projetos de pesquisa em monitoramento de redes sem fio e processamento em fluxo são elencados. Por fim, perspectivas futuras, como a aprendizagem profunda e por reforço aplicadas a dados em fluxo, são antecipadas.
Abstract:
In this chapter, we focus on knowledge extraction from large wireless networks through stream processing. We present the primary methods of sampling, data collection and monitoring of wireless networks and we characterize knowledge extraction as a machine learning problem on big data stream processing. The Apache Spark and Apache Flink are the main trends on big data stream processing frameworks and, thus, are discussed in this chapter. We explore the data preprocessing, the feature engineering and the machine learning algorithms applied to the scenario of wireless network analytics. We address challenges and research projects in wireless network monitoring and stream processing. Finally, future perspectives, such as deep learning and reinforcement learning in stream processing, are anticipated.
Introdução à criptografia para administradores de sistemas com TLS, OpenSSL e Apache mod_ssl
Autores: Alexandre Braga (UNICAMP) e Ricardo Dahab (UNICAMP)
Resumo:
O uso incorreto de infraestruturas criptográficas é uma das fontes mais comuns de problemas de segurança relacionados à criptografia, quando diversos erros evitáveis na configuração de algoritmos e de protocolos se tornam recorrentes, resultando frequentemente em vulnerabilidades exploráveis em ataques reais aos sistemas de computação. Por isso, há uma demanda crescente por orientações práticas, do mundo real, sobre como evitar configurações incorretas da criptografia que levam a vulnerabilidades exploráveis em redes de computadores e sistemas distribuídos. Este capítulo aborda a utilização de criptografia por estudantes e profissionais de TI com pouca experiência em segurança da informação e criptografia. O minicurso cobre o OpenSSL, o protocolo TLS (incluindo a nova versão 1.3 de agosto de 2018) e as configurações seguras do módulo mod_ssl do servidor web Apache.
Abstract:
The incorrect use of cryptographic infrastructures is one of the most common sources of cryptography-related security issues: avoidable errors related to configuration of algorithms and protocols become recurrent, often resulting in exploitable vulnerabilities and actual attacks on computing systems. Hence, there is a growing demand for practical, real-world guidance on how to avoid incorrect cryptographic configurations that lead to exploitable vulnerabilities in computer networks and distributed systems. This chapter addresses the use of cryptography by students and IT professionals with little experience in information security and cryptography. The text covers OpenSSL, the TLS protocol (including the new version 1.3 launched in August 2018), and security settings for the mod_ssl module integrated to the Apache web server.
Introdução à Ciência de Dados: Uma Visão Pragmática utilizando Python, Aplicações e Oportunidades em Redes de Computadores
Autores: Giovanni Comarela (UFV), Gabriel Franco (UFV), Celio Trois (UFSM), Alextian Liberato (IFES), Magnos Martinello (UFES), João Henrique Corrêa (UFES) e Rodolfo Villaça (UFES)
Resumo:
Internet das Coisas, cidades inteligentes, crowdsourcing e outros neotecnologismos estão tornando o mundo e as pessoas cada vez mais conectados, fazendo que quantidades colossais de informação sejam transmitidas pela rede. No intuito de extrair novos conhecimentos e informações relevantes desses dados, a Ciência de Dados, que abrange várias disciplinas, tais como estatística, mineração de dados, aprendizado de máquina e inteligência artificial, está se popularizando e ganhando espaço nas mais diversas áreas de conhecimento. Nesse contexto, esse minicurso apresenta, de forma pragmática, através da linguagem Python e bibliotecas específicas, os métodos mais usados para manipular e analisar dados e extrair informações, aplicando-os na resolução de problemas relevantes da área de redes de computadores.
Abstract:
Internet of Things, smart cities, crowdsourcing, and other neotechnologies are making the world and people more and more connected, causing colossal amounts of information to be transmitted through the network. In order to extract new knowledge and relevant information from these data, Data Science, which covers several disciplines, such as statistics, data mining, machine learning, and artificial intelligence, is becoming popular and gaining space in the most diverse areas of knowledge. In this context, this course presents, in a pragmatic way, through the Python language and specific libraries, the methods most used by data scientists to manipulate and analyze information, applying them in the resolution of relevant problems in the area of computer networks.