Visão Geral
Curso Advanced Information Security Automation with Python, foi projetado como o ponto de progressão lógico para alunos que concluíram o Curso Automating Information Security with Python, ou para aqueles que já estão familiarizados com os conceitos básicos de programação Python. Nós pulamos imediatamente para conceitos avançados. O analisa técnicas de codificação usadas por pacotes populares de segurança de informações de código aberto e como aplicá-las aos seus próprios projetos de segurança cibernética Python. Aprenderemos com os melhores deles enquanto passamos a semana tornando a segurança da informação para nosso projeto, chamado SPF100, tão fácil de desenvolver e manter quanto a dos projetos de segurança cibernética mais populares. Descubra como organizar seu código e usar conceitos avançados de programação para torná-lo mais rápido, mais eficiente e mais fácil de desenvolver e manter.
Objetivo
Após realizar este Curso Advanced Information Security Automation with Python você será capaz de:
Quando a equipe de segurança tem um problema que não consegue resolver, ela recorre a você. Você sabe como codificar e pode desenvolver ferramentas para preencher as lacunas deixadas pela tecnologia existente. Mas, embora você possa escrever um script decente para fazer o trabalho, manter esse código às vezes é um fardo. Cada novo recurso parece uma reescrita completa. Você precisa que seu código seja executado mais rápido e distribua a carga de trabalho em vários threads ou até mesmo vários processadores. Quando um usuário experimenta um erro, você fica imaginando o que pode ter dado errado porque seu aplicativo não fornece registro suficiente. Você gostaria que seus aplicativos tivessem os recursos, a manutenibilidade e a facilidade de uso dos projetos de segurança cibernética de código aberto mais populares. Você está preocupado em desenvolver um programa com vulnerabilidades de segurança. Ou, se não está preocupado com isso, talvez devesse estar. Uma coisa é clara: você está pronto para levar suas habilidades de codificação para o próximo nível.
O Curso Advanced Information Security Automation with Python, mostrará a você a maneira correta de desenvolver classes personalizadas para uso em aplicativos de segurança da informação. Você aprenderá sobre tópicos como:
- Tornando seus pacotes instaláveis pelo Package Installer for Python (PIP) para fácil distribuição e atualizações
- Construindo uma estrutura de dados personalizada que se ajuste à sua aplicação para um desenvolvimento mais rápido
- Usando recursos avançados como decoradores, geradores e gerenciadores de contexto para simplificar o código
- Tornando os programas mais rápidos com multithreading e multiprocessamento
- Eliminando erros em cascata implementando testes unitários para que pequenas alterações não se tornem grandes erros
- Realizar a geração e o tratamento adequados de logs em aplicativos Python para identificar os erros do tipo "funciona para mim"
- Implementando automação e interação de aplicativos para que você possa passar para tarefas mais importantes
- Novos recursos do pyWars, ambientes virtuais e VSCode
- Como usar testes unitários para avaliar código em desenvolvimento
- Codificação orientada a objetos em Python
- Decoradores
- Iteradores
- Gerenciadores de contexto
- Descritores de dados
- Segurança e ataques de atributos de objetos
- Multi-threading
- Multiprocessamento
- Como entender e mitigar ataques de serialização de objetos
- A maneira correta de fazer o registro de aplicativos
- Automação de ferramentas de linha de comando com PEXPECT
- Ataques de intérprete e modelo de objeto
Pre-Requisitos
Este curso ensina habilidades avançadas de codificação Python. Não é necessário que você tenha feito Curso Automating Information Security with Python, mas haverá uma suposição de que você entende todas as habilidades ensinadas no Curso Automating Information Security with Python. Essas habilidades incluem o uso de tipos de dados integrados, loops for, loops while, Bytes, UTF-8, File IO, expressões regulares, Scapy e tratamento básico de exceções, bem como escrever funções e desenvolver um único módulo de arquivo.
Conteúdo Programatico
Python Package Essentials
A primeira seção do curso vai direto para o pyWars. Curso Advanced Information Security Automation with Python enquanto os codificadores veteranos que vierem direto para este curso serão apresentados a esta incrível plataforma de aprendizado. Você aprenderá como os desenvolvedores usam testes de unidade para avaliar seus programas durante o processo de desenvolvimento e evitar que pequenas alterações na função principal tenham efeitos em cascata em seus aplicativos. Vamos nos aprofundar na estrutura do pacote Python e você aprenderá como setup.py pode ser usado para construir um pacote implantável e como lidar com erros estruturais comuns, como referências circulares.
Topics
- Virtual Environment
- Using an IDE
- Unit Testing
- Building Packages
- PIP Installable Package
- Understanding Package Imports
- Absolute vs. Relative Imports
- Circular References
Python Objects
Esta seção do curso ensinará você a desenvolver objetos Python personalizados e estruturas de dados para dar suporte às necessidades de projetos modernos de segurança cibernética. Construiremos um projeto modelo de segurança cibernética chamado Security Professionals Friend 100 (SPF100) que incorpora recursos encontrados em pacotes populares de segurança cibernética, como Scapy e Volatility. Você verá como a estrutura de dados correta pode tornar seus aplicativos muito mais fáceis de usar e acelerar o processo de desenvolvimento. A seção começa com uma discussão sobre empacotamento de argumentos, desempacotamento e como passar argumentos para outras funções. Essa discussão o preparará para o sucesso quando avançarmos para os princípios de codificação orientada a objetos e herança de objetos, seguidos por uma discussão abrangente sobre classes de objetos, escopo e herança que se concentra na aplicação real de objetos em projetos Python modernos. Você aprenderá a aproveitar a estrutura de dados existente e estender a construção em tipos de objetos como listas, inteiros e dicionários. Imagine ter uma estrutura de dados perfeitamente adequada para seu aplicativo e, em seguida, construí-la! Seu código ficará muito mais limpo e fácil de dar suporte. Você aprenderá como os métodos magic dunder funcionam e quando modificá-los em seus programas. Por fim, você aprenderá a usar o fatiamento em seus próprios tipos de dados para poder extrair os dados desejados deles.
Topics
- Argument Packing
- Objects
- Inheritance Super
- Inheriting and Extending Built-in Objects
- The Magic Dunders
- Slicing
Python Objects (continued)
Nesta seção, continuamos adicionando novos recursos ao SPF100 que tornam os objetos Python mais versáteis. Você aprenderá como personalizar o comportamento dos objetos ao acessar seus atributos e como resolver conflitos de nomenclatura de atributos usando name mangling. Discutiremos a privacidade de atributos, as armadilhas de segurança associadas a qualquer desenvolvedor que tente proteger atributos de objetos e como explorá-los. Esta seção fornecerá a você um entendimento firme de como executar o tratamento de erros em seus projetos. Concluiremos a sessão adicionando iteradores personalizados ao nosso projeto que podem processar pacotes de rede de maneiras interessantes.
Topics
- Attribute Access
- Executable Attributes
- Name Mangling
- Attribute Privacy
- Object Comparison Operations
- Advanced Exception Handling
- Object Iteration
- Object Instantiation
Advanced Concepts
Saber como codificar é apenas parte da batalha. Quando se trata de resolver problemas de segurança cibernética do mundo real, é necessário um pouco mais. Mostre-nos um profissional de segurança da informação que não odeia trabalhar com carimbos de data/hora e fusos horários e mostraremos a você um profissional de segurança da informação que nunca teve que lidar com carimbos de data/hora e fusos horários. Nesta seção do curso, você aprenderá como processar e manipular adequadamente carimbos de data/hora e resolver problemas que exigem conhecimento de vários fusos horários. Você aprenderá como e quando usar multiprocessamento e multithreading para distribuir a carga e manipular grandes quantidades de dados. Continuaremos a desenvolver o SPF100 e a aproveitar os recursos do Python, como gerenciadores de contexto, para tornar o pacote tão amigável quanto em outros projetos populares de segurança cibernética.
Topics
- Dataclasses and NamedTuples
- Timestamps and Time Zones
- Concurrency
- Multi-threading
- Multi-processing
- Serialization Attack and Mitigation
- Context Managers
Advanced Concepts (continued)
Esta seção do curso examinará algumas das dificuldades mais comuns que os desenvolvedores enfrentam ao projetar ferramentas cibernéticas. Discutiremos como automatizar ferramentas de linha de comando que exigem interação. Isso vai muito além de apenas executar o programa e capturar a saída. Falaremos sobre a capacidade de automatizar totalmente e interagir com qualquer linha de comando. Em seguida, adicionaremos a capacidade de gerar logs. Você aprenderá como controlar os logs de outros módulos e configurar aplicativos para ser alertado quando eventos críticos ocorrerem. Mostraremos como você pode usar decoradores para adicionar rapidamente funcionalidades ao código existente com alterações mínimas nesses programas. Você aprenderá como desenvolver seus próprios decoradores poderosos para melhorar qualquer base de código. Encerraremos nossa discussão com uma olhada em mais vulnerabilidades de segurança que afetam o interpretador Python e funções comumente usadas.
Topics
- CLI Tool Automation
- Logging
- Decorators
- Python Attacks
Visão geral
Neste evento de conclusão de curso, você aplicará as habilidades que dominou e o código que desenvolveu ao longo do curso em uma série de desafios de programação. Você explorará sistemas vulneráveis, construirá objetos personalizados, decoradores e a maioria das outras habilidades que aprendeu ao longo da semana.