Tue, Feb 22, 2022


Primeiro Meetup da OWASP SP em 2022 no Metaverso

Nesta quinta-feira, dia 03 de março, a OWASP SP proporcionará o primeiro Meetup no METAVERSO e Live. Com palestra de extrema relevância como sempre, sendo uma vez que o mundo vive uma crise no contexto de segurança da informação. Todo dia nos deparamos com um novos vazamentos de dados. Sendo assim, a propagação de conhecimento, proporcionará softwares e sistemas seguros minimizando esta crise.
19h00 : Tema: Bug Bounty, a Jornada atrás do Bug
Palestrante : Ricardo Martins
Nesta palestra veremos como funciona as plataformas de bug bounty. Assim exibindo algumas disponíveis no mercado, entenderemos o propósito das 3 melhores plataformas, como também o entendimento do cenário atual do Bugbounty. Apresentarei 2 tipos de sites geralmente utilizado neste processo e algumas falhas bem comuns de se encontrar. Executarei um exemplo de falhas geralmente encontrada em um formulário de criação de credenciais. Falhas como HTML Injection, No Rate Limit, No Policy Password, DoS e Cross-Site Scripting.
Mini-Bio: Mais de 850 Reportes, reconhecido nos top 5 melhores pesquisadores de segurança por 2 meses na categoria VIP Reports na plataforma Open Bug Bounty. Ranqueado no top 2 Mil na plataforma BugCrowd.No Hall Of Fame das empresas Telefonica, Vivo, iFood, Uber, Linkedin. Semi Finalista do evento capture the flag realizado pelo HackaFlag. Ja tendo reportado falhas a empresas como Banco Safra, Itau, Caixa Econômica Federal, Bradesco, Receita Federal.

https://www.meetup.com/pt-BR/OWASP-Sao-Paulo-Chapter/events/284185144/
Thu, Feb 17, 2022


NVIDIA com Yolo em openCV: Resultado superior a 1500%

Utilizando todos os recursos de um equipamento, podemos turbinar a biblioteca openCV para Inferência. Nos meus testes com uma placa NVIDIA GeForce RTX 3060 Ti junto a tecnologia YOLO, utilizando os fontes do repositório oficial e com otimizações, atingi um desempenho máximo de 500% (2 para 10 fps).
Então resolvi turbinar os binários, efetuando compilação da biblioteca extraindo o máximo do hardware, tando da GPU e CPU. Para isto habilitei todos os recurso disponíveis no processador SSE 4.2, AVX2 e outros, também utilização das bibliotecas TBB, MKL, IPP, CUDA e CuDNN.
Então explorando todo o recurso do hardware, obtive desempenho muito superior. Para isto utilizei estas diretivas de compilação da biblioteca openCV:
Recursos da GPU :
-DWITH_CUDA=ON
-DWITH_CUDNN=ON
-DOPENCV_DNN_CUDA=ON
-DCUDA_FAST_MATH=1
-DCUDA_ARCH_BIN=8.6
-DWITH_CUBLAS=1
*** Para localizar a versão da arquitetura do modelo da GPU, utilizei o seguinte link: https://developer.nvidia.com/cuda-gpus

Recursos da CPU:
-DWITH_IPP=ON
-DWITH_MKL=ON
-DMKL_WITH_TBB=ON
-DMKL_USE_MULTITHREAD=ON
-DWITH_TBB=ON
-CPU_DISPATCH=SSE3,SSE4_1,SSE4_2,FP16,FMA3,AVX,AVX2,AVX512_ICL
Habilitei o uso da GPU o processamento da convolução com o seguinte comando:
net.setPreferableBackend(DNN_BACKEND_CUDA); net.setPreferableTarget(DNN_TARGET_CUDA);
Para medir apenas o tempo da GPU, efetuei a medida apenas durante a inferência, conforme o trecho de código em C++ a seguir:
tm.start(); net.setInput(blob); std::vector<Mat> outs; net.forward(outs, outNames); postprocess(frame, outs, net); tm.stop(); double detectionTime = tm.getTimeMilli(); double fps = 1000 / detectionTime;
O resultado final foi um salto de 300ms para 20ms.
Pergunta comum: Mas Cabelo, o que farei com todo este todo?
Elementar meu caro, vejamos o exemplo a seguir:
Com relação ao desempenho da CPU, o equipamento sofreu muito menos overhead e obteve um ganho de 200%. O salto de performance foi de 2 para 8 fps
Mas a minha surpresa, o ganho da GPU resultou em um salto de 2 fps para 33 fps! O que equivale aproximadamente 1.650%.
Ciência aplicada: Imagina um cenário onde precisamos migrar um algoritmo biométrico com 51 milhões de usuários. Se o recalculo do hyper espaço matemático ou o processamento do modelo de inferência levasse 300 ms, o tempo de processamento seria equivalente a 177 dias aproximadamente.
Agora se em um exemplo hipotético, diminuíssemos o tempo de 300 ms para 20ms, cairíamos o tempo total de processamento de 177 dias para aproximadamente 11 dias.
E tem mais, ser aumentarmos o poder de processamento da GPU (modelo mais potente, como a NVIDIA A100), E SE HIPOTETICAMENTE de alguma maneira alcançássemos o tempo de 800us, levaríamos apenas 12 horas de processamento e não mais 177 dias. Em breve artigo no Viva O Linux.

Fri, Jan 14, 2022


Fiscal de EPIs com IA

O uso de EPIs nas empresas que exercem atividades que envolve riscos à saúde dos funcionários é essencial. A não utilização desses equipamentos pode trazer graves consequências à empresa, como o pagamento de multas, indenizações por meio de processos civis, trabalhistas e até mesmo criminais.
Baseado na lei Nº. 6.514/77, os EPIs são obrigatórios aos colaboradores que de alguma maneira afeta a sua segurança física e mental. O Descumprimento da lei implica em pagamento de multas penalizadores prevista na Norma de Regulamento 28 (NR 28).
Mas se o colaborador não utilizar os EPIs, a empresa pode aplicar Advertência, Suspensão e Justa causa. Se ocorrer reclamação trabalhista, uma IA baseada em visão computacional, pode gerar prova documental para as respectivas penalidades aplicadas.
Somente com número baixo de acidentes, as empresas conseguem benefícios no BNDES.
Abaixo: um vídeo comprovando a viabilidade da tecnologia.
Thu, Jan 13, 2022


SUSEConnect como usar.
Em alguma situações não encontramos um pacote presente na dependência de um determinado RPM. Abaixo um How To de como utilizar o recurso SUSEConnect em máquinas SLES.
# zypper se libCharLS
Refreshing service 'Basesystem_Module_x86_64'.
Refreshing service 'Containers_Module_x86_64'.
Refreshing service 'Desktop_Applications_Module_x86_64'.
Refreshing service 'Development_Tools_Module_x86_64'.
Refreshing service 'Legacy_Module_x86_64'.
Refreshing service 'Public_Cloud_Module_x86_64'.
Refreshing service 'Python_2_Module_x86_64'.
Refreshing service 'SUSE_Cloud_Application_Platform_Tools_Module_x86_64'.
Refreshing service 'SUSE_Linux_Enterprise_Server_x86_64'.
Refreshing service 'Server_Applications_Module_x86_64'.
Refreshing service 'Web_and_Scripting_Module_x86_64'.
Loading repository data…
Reading installed packages…
No matching items found.
For an extended search including not yet activated remote resources you may run 'zypper
search-packages' at any time.
Do you want to run 'zypper search-packages' now? yes/no/always/never: : yes
Could not search for the package: SUSE::Connect::UnsupportedOperation: Package search is not supported by the registration proxy: Alternatively, use the web version at https://scc.suse.com/packages/
No package found
No exemplo acima o pacote libCharLS2 não foi encontrado nos repositórios configurados no servidor atual. Para equacionar este problema, devemos entrar na URL https://scc.suse.com/packages/ e preencher os parâmetros do ambiente conforme o exemplo abaixo:

Então clique no botão pesquisar e selecione o pacote desejado. No meu caso esta a libCharLS2:

Após esta ação receberemos os comando para respectiva instalação:

Pronto, Basta agora executá-los:
# SUSEConnect -p PackageHub/15.2/x86_64 Registering system to registration proxy https://smt-ec2.susecloud.net Updating system details on https://smt-ec2.susecloud.net … Activating PackageHub 15.2 x86_64 … -> Adding service to system … -> Installing release package … Successfully registered system
E agora finalmente o comando zypper in…
zypper install libCharLS2-2.0.0-bp152.3.23
Refreshing service ‘Basesystem_Module_x86_64’.
Refreshing service ‘Containers_Module_x86_64’.
Refreshing service ‘Desktop_Applications_Module_x86_64’.
Refreshing service ‘Development_Tools_Module_x86_64’.
Refreshing service ‘Legacy_Module_x86_64’.
Refreshing service ‘Public_Cloud_Module_x86_64’.
Refreshing service ‘Python_2_Module_x86_64’.
Refreshing service ‘SUSE_Cloud_Application_Platform_Tools_Module_x86_64’.
Refreshing service ‘SUSE_Linux_Enterprise_Server_x86_64’.
Refreshing service ‘SUSE_Package_Hub_x86_64’.
Refreshing service ‘Server_Applications_Module_x86_64’.
Refreshing service ‘Web_and_Scripting_Module_x86_64’.
Warning: The gpg key signing file ‘repomd.xml’ has expired.
Repository: SUSE-PackageHub-15-SP2-Backports-Pool
Key Fingerprint: 637B 32FF 3D83 F07A 7AE1 C40A 9C21 4D40 6517 6565
Key Name: openSUSE:Backports OBS Project
Key Algorithm: RSA 2048
Key Created: Wed Oct 2 13:17:53 2019
Key Expires: Fri Dec 10 13:17:53 2021 (EXPIRED)
Rpm Name: gpg-pubkey-65176565-5d94a381
Building repository ‘SUSE-PackageHub-15-SP2-Backports-Pool’ cache ………[done]
Loading repository data…
Reading installed packages…
Resolving package dependencies…
The following NEW package is going to be installed:
libCharLS2
The following package has no support information from its vendor:
libCharLS2
1 new package to install.
Overall download size: 75.5 KiB. Already cached: 0 B. After the operation, additional 286.1 KiB will be used.
Continue? y/n/v/…? shows all options: y
Retrieving package libCharLS2-2.0.0-bp152.3.23.x86_64 (1/1), 75.5 KiB (286.1 KiB unpacked)
Retrieving: libCharLS2-2.0.0-bp152.3.23.x86_64.rpm ..……………[done]
Checking for file conflicts: …………………………………………….[done]
(1/1) Installing: libCharLS2-2.0.0-bp152.3.23.x86_64 …….………….[done]
E pronto!
Wed, Jan 05, 2022


Modelos de difusão superam Redes Adversárias Generativas (GANs)
Existem fragilidades quando treinamos um modelo para sintetizar amostragem de alta qualidade com complexos dados em alta resolução, principalmente quando utilizando métodos convencionais de síntese natural de imagens criada por redes adversarias generativas.
Os métodos de difusão apresentam superioridade durante o aprendizado de máquina e por consequência geração de alta qualidade de imagens e áudios. Os modelos de difusão trabalha corrompendo os dados de treinamento adicionando ruídos gaussiano gradualmente, excluem os detalhes lentamente até os ruídos prevalecer 100%. E finalmente uma rede neural reverte o processo de corrupção. Este processo reverso sintetiza as informações eliminando o ruído gradativamente até produzir uma amostra perfeita.
Fonte: https://arxiv.org/abs/2105.05233
Veja o exemplo a seguir:

Sun, Dec 26, 2021


Natal de NERD: Lançado openCV 4.5.5

Versão 4.5.5 da biblioteca openCV foi lançada com diversas novidades. Como suporte a áudio na API VideoCapture, otimização ao RISC-V, suporte ao OpenVINO 2021.4.2 LTS release atualização do exemplo do módulo videoio da câmera realsense e muito mais. Todos os detalhes aqui: https://github.com/opencv/opencv/wiki/ChangeLog


Fri, Dec 24, 2021
Thu, Dec 16, 2021


Ritchie CLI oficialmente no openSUSE

Depois de muito trabalho, o Ritchie-CLI 2.11.3 chega oficialmente disponível no repositório openSUSE Tumbleweed. Ritchie-CLI se tornou oficial em 11 de novembro no Tumbleweed. Parabéns para toda a equipe ZUP!
Ritchie é uma ferramenta de código aberto desenvolvida pela ZUP Company e permite aos usuários criar, armazenar e compartilhar automações com segurança. Otimiza comandos repetitivos para que os usuários tenham mais autonomia de programação. Estou trabalhando para adicionar um novo pacote ao Factory e a ajuda da comunidade openSUSE é bem-vinda. O pacote também está no meu Open Build Service de Alessandro para aqueles interessados . Mais informações podem ser encontradas nas notas de lançamento do pacote. E neste link a notícia OFICIAL!
Wed, Dec 15, 2021


Log4J 2.15.0 com problemas, veja a solução definitiva!

Concluíram que a correção para CVE-2021-44228 no Apache Log4j 2.15.0 estava incompleta em certas configurações. Com isto foi lançado uma nova versão Log4j 2.16.0 corrige esse problema removendo o suporte para padrões e funcionalidade JNDI. Abaixo uma maneira de eliminar o problema nas versões anteriores < 2.16.0.
$ zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
Wed, Dec 08, 2021


Segmentação Panótica, Instância e Semântica.
Abaixo uma imagem que explica claramente a diferença entre segmentação Panótica, Instância e Semântica. A segmentação de semântica agrupa as instâncias de objetos, na segmentação de instância separa todas as instancias de objetos ( assim permitindo distinguir os pixels de cada objeto), já a segmentação panótica sera todos os pixels (camadas, instancias e objetos).
