Articles

Test de fuzzing en ingénierie logicielle

Le fuzzing est une technique d’ingénierie logicielle qui consiste à tester le logiciel en envoyant des données aléatoires pour trouver des erreurs. Essayons de comprendre les avantages et les inconvénients du test de fuzzing!

Fuzzing, également connu sous le nom de test de fuzz, est une technique de test logiciel automatisée qui consiste à fournir des données invalides, inattendues ou aléatoires (fuzz) en tant qu’entrées d’un programme informatique. L’objectif est de trouver des erreurs de codage, des bugs, des vulnérabilités de sécurité et des failles qui peuvent être exploitées. Cet article commence par expliquer quelques types de fuzzing de base. La métaphore «tester la serrure» est ensuite utilisée pour expliquer les rouages de cette technique. Une liste d’outils disponibles est donnée et un ensemble de meilleures pratiques est exploré pour que le fuzzing soit mené de manière éthique, efficace et sûre.

Black-box fuzzing is the most common type of fuzzing. It does not require any knowledge about the internal architecture of the software being tested. The tester only needs to provide the input data and observe the output. This type of fuzzing is suitable for testing applications with a user interface, such as web browsers, media players, and office applications.

White-box fuzzing requires knowledge about the internal architecture of the software being tested. The tester needs to understand the code and identify the areas that need to be tested. This type of fuzzing is suitable for testing complex applications, such as operating systems, databases, and network protocols.

Métaphore du Test de la Serrure

La métaphore du test de la serrure est utilisée pour expliquer le fonctionnement de la technique de fuzzing. Cette métaphore compare le processus de fuzzing à un test pour vérifier si une serrure est ouverte ou fermée. Dans ce scénario, le tester est le cambrioleur et la serrure est le logiciel à tester. Le but du cambrioleur est d’ouvrir la serrure en essayant différentes clés. Dans le cas du fuzzing, le tester envoie des données aléatoires au logiciel pour voir si elles peuvent le faire planter ou révéler des vulnérabilités.

Le processus de fuzzing commence par la génération de données aléatoires. Ces données sont ensuite envoyées au logiciel pour tester sa robustesse. Si le logiciel fonctionne correctement, les données sont rejetées et le processus recommence avec des données différentes. Si le logiciel plante ou révèle une vulnérabilité, le tester peut identifier le problème et le corriger.

Le fuzzing est une technique très efficace pour trouver des bugs et des vulnérabilités dans un logiciel. Cependant, il est important de comprendre l’architecture du logiciel pour pouvoir l’utiliser correctement et efficacement. Une bonne compréhension de l’architecture du logiciel permet de cibler les zones à tester et d’améliorer les résultats.

Outils et Pratiques Recommandées

Il existe plusieurs outils disponibles pour effectuer des tests de fuzzing. Certains outils sont spécialisés pour tester des applications spécifiques, tandis que d’autres sont plus génériques et peuvent être utilisés pour tester tout type d’application. Les outils les plus populaires sont Sulley, Peach Fuzzer, SPIKE, American Fuzzy Lop (AFL) et Boofuzz.

En plus des outils disponibles, il existe certaines pratiques recommandées pour effectuer des tests de fuzzing de manière éthique, efficace et sûre. Il est important de bien documenter le processus de test et d’informer les développeurs des résultats obtenus. Il est également important de ne pas divulguer les résultats du test à des tiers sans l’autorisation des développeurs. Enfin, il est important de respecter la loi et les règles en vigueur lors de l’exécution des tests.

Le fuzzing est une technique très puissante qui peut être utilisée pour trouver des bugs et des vulnérabilités dans un logiciel. Cependant, il est important de comprendre l’architecture du logiciel et d’utiliser les bons outils et pratiques pour obtenir les meilleurs résultats. Une bonne compréhension de l’architecture et une utilisation appropriée des outils et pratiques peuvent aider
Source de l’article sur DZONE

DevSecOps moderne: intégration sécurisée des processus

de développement et d’exploitation.

La DevSecOps moderne offre une intégration sécurisée des processus de développement et d’exploitation pour un flux de travail plus fluide et plus sûr.

Rapport de tendances sur la sécurité des entreprises DZone 2023

L’architecture DevSecOps est un moyen de résoudre les problèmes liés aux méthodologies traditionnelles de développement logiciel, en particulier la séparation entre les équipes de développement et de sécurité. Cette séparation entraîne souvent la découverte de vulnérabilités de sécurité tard dans le cycle de développement, ce qui entraîne des retards et des réaménagements coûteux. DevSecOps vise à briser ces silos en intégrant des pratiques de sécurité dans l’ensemble du cycle de développement logiciel (SDLC), de la planification et du codage à la mise en œuvre et à la surveillance.

DevSecOps est une approche holistique qui permet aux équipes de développement et de sécurité de travailler ensemble pour intégrer la sécurité dans le développement logiciel. Les principes fondamentaux de DevSecOps sont l’automatisation, la collaboration et la responsabilisation. L’automatisation permet aux équipes de développement et de sécurité de créer des processus et des outils qui intègrent la sécurité dans le processus de développement. La collaboration permet aux équipes de travailler ensemble pour résoudre les problèmes et partager les connaissances. La responsabilisation permet aux membres des équipes de développement et de sécurité d’être responsables des résultats. Enfin, l’utilisation d’une architecture DevSecOps permet aux organisations de réduire leurs risques en matière de sécurité et d’améliorer leurs processus de développement logiciel.

Source de l’article sur DZONE

Vulnérabilités de sécurité dans CasaOS

Les vulnérabilités de sécurité sont un problème majeur dans CasaOS. Nous allons examiner les différentes façons dont ces problèmes peuvent être résolus.

## Dans le cadre de notre effort continu pour améliorer notre technologie Clean Code et la sécurité de l’écosystème open-source, notre équipe R&D est toujours à l’affût de nouvelles vulnérabilités de sécurité 0-day dans des logiciels populaires.

To ensure the security of our users, we conducted a thorough testing process to identify and fix the vulnerabilities. We followed the industry standard for testing and security protocols, including static and dynamic analysis, fuzzing, and penetration testing. We also collaborated with the CasaOS team to ensure the security of their product.

Dans le cadre de nos efforts continus visant à améliorer notre technologie Clean Code et la sécurité de l’écosystème open-source, notre équipe R&D est toujours à la recherche de nouvelles vulnérabilités de sécurité 0-day dans les logiciels les plus répandus.

Récemment, nous avons découvert deux vulnérabilités critiques dans une solution de cloud personnelle nommée CasaOS. CasaOS peut être installé sur n’importe quelle machine grâce à Docker et est livré avec des périphériques NAS pour les utilisateurs finaux tels que le ZimaBoard ou le X86Pi. Les utilisateurs déploient CasaOS pour stocker leurs données personnelles sur des appareils qu’ils peuvent faire confiance et y accéder depuis n’importe où.

Pour assurer la sécurité de nos utilisateurs, nous avons mené un processus de test approfondi pour identifier et corriger les vulnérabilités. Nous avons suivi les normes de l’industrie pour les tests et les protocoles de sécurité, y compris l’analyse statique et dynamique, le fuzzing et les tests d’intrusion. Nous avons également collaboré avec l’équipe CasaOS pour assurer la sécurité de leur produit.

Source de l’article sur DZONE

Modélisation des menaces informatiques

La modélisation des menaces informatiques est une pratique essentielle pour protéger les systèmes informatiques contre les attaques. Elle permet d’identifier et de gérer les risques.

Designer des logiciels sécurisés offre une large gamme de bénéfices

Le codage sécurisé offre de nombreux avantages, allant de la réduction du nombre d’heures humaines passées à corriger les vulnérabilités de sécurité en production à la limitation des pertes financières et des pénalités réglementaires, ce qui permet d’obtenir un avantage concurrentiel et d’accroître la fidélité des clients.

Le modélisation des menaces est un élément essentiel des principes directeurs « Sécurité par conception ». Cette fiche de référence fournira les principes fondamentaux de la modélisation des menaces, les pratiques de base pour une mise en œuvre sécurisée et les éléments clés pour mener à bien des examens de modèles de menace réussis. En explorant l’importance des outils modernes pour automatiser et rationaliser les processus de modélisation des menaces, nous examinerons comment améliorer la précision des résultats et faciliter l’intégration et la collaboration entre les équipes de logiciels et de sécurité tout au long du cycle de développement logiciel.

Enfin, nous verrons comment le codage peut être utilisé pour améliorer la sécurité des logiciels. Les outils de codage peuvent être utilisés pour détecter et corriger les failles de sécurité dans le code source, ainsi que pour vérifier que le code est conforme aux normes de sécurité. Les outils peuvent également être utilisés pour surveiller les modifications apportées au code et identifier les vulnérabilités potentielles. De plus, ils peuvent être utilisés pour analyser le comportement du code et détecter les anomalies, ce qui permet aux développeurs de prendre des mesures pour corriger les problèmes avant qu’ils ne deviennent critiques.

Source de l’article sur DZONE

SQL (Structured Query Language) is a powerful and widely-used language for managing and manipulating data stored in relational databases. However, it’s important to be aware of common mistakes that can lead to bugs, security vulnerabilities, and poor performance in your SQL code. In this article, we’ll explore some of the most common mistakes made when writing SQL code and how to avoid them.

1. Not Properly Sanitizing User Input

One common mistake made when writing SQL code is not properly sanitizing user input. This can lead to security vulnerabilities such as SQL injection attacks, where malicious users can inject harmful code into your database.

Source de l’article sur DZONE


This is an article from DZone’s 2022 Enterprise Application Security Trend Report.

For more:

Read the Report

Building secure mobile applications is a difficult process, especially in the cloud. We must consider that mobile platforms, like iOS and Android, have completely different architectures and quality guidelines. Also, we need to take care of our cloud architecture on the back end. In this article, we will have a look at the top six security vulnerabilities, OWASP’s best practices for building/testing iOS and Android applications, and guidelines for iOS and Android. Last but not least, we will explore an example of DevSecOps for mobile applications. 

Source de l’article sur DZONE

Misconfigurations are the leading cause behind security incidents in Kubernetes-orchestrated or otherwise containerized environments. Without proper configuration in place, applications would run into problems ranging from noncompliance and inconsistencies to performance bottlenecks, security vulnerabilities, and functionality failure. Therefore, configuration management is a critical component in a software development lifecycle for maintaining systems in a desired, consistent state.

According to Red Hat’s State of Kubernetes Security report, misconfigurations were the leading cause behind security incidents in Kubernetes-orchestrated or otherwise containerized environments. Without proper configuration in place, applications would run into problems ranging from noncompliance and inconsistencies to performance bottlenecks, security vulnerabilities, and functionality failure. This would make cloud-native systems unstable and cause them to become a liability to businesses. For this reason, configuration management is a critical component in a software development lifecycle for maintaining systems in a desired, consistent state. However, the way configuration management is done has been evolving over the years. This post traces the history of configuration management, focusing on how GitOps handles this critical aspect of running cloud-native applications today.

Source de l’article sur DZONE


Article Image

Chatbots Are Here To Stay

Chatbots have been around for a long time and based on the global chatbot market size (and the expected growth), they will stick around for a long time and gain importance. In the past, they’ve rarely met customer expectations or provided much positive experience. However, over the last few years, advances in conversational AI have transformed how they can be used. Since chatbots offer a wide range of applications, in certain cases, they become responsible for collecting and protecting personal information as well. 
Consequently, they are a great attraction for hackers and malicious attacks too. The responsibility of ensuring chatbot security has become more evident after the introduction of GDPR in Europe. As statistics show that this technology will be a determining factor in our lives, security testing must also become part of our daily tasks, so that these chatbots can be used with confidence.

Security Risks, Threats, and Vulnerabilities                 

The words risk, threat, and vulnerability are often confused or used interchangeably when reading about computer security, so let’s first clarify the terminology:

  • Vulnerability refers to a weakness in your software (or hardware, or in your processes, or anything related). In other words, it’s a way hackers could find their way into and exploit your systems.
  • A threat exploits a vulnerability and can cause loss, damage, or destruction of an asset – threats exploit vulnerabilities.                
  • Risk refers to the potential for lost, damaged, or destroyed assets – threats + vulnerability = risk! 
The well-known OWASP Top 10 is a list of top security risks for a web application. Most chatbots out there are available over a public web frontend, and as such, all the OWASP security risks apply to those chatbots as well. Out of these risks, there are two especially important to defend against, as in contrast to the other risks, those two are nearly always a serious threat — XSS (Cross-Site Scripting) and SQL Injection.
In addition, for artificial intelligence-enabled chatbots, there is an increased risk for Denial of Service attacks, due to the higher amount of computing resources involved.

Vulnerability 1: XSS – Cross-Site Scripting

A typical implementation of a chatbot user interface:           

           

  • There is a chat window with an input box.
  • Everything the user enters in the input box is mirrored in the chat window.
  • Chatbot response is shown in the chat window.

The XSS vulnerability is in the second step — when entering text including malicious Javascript code, the XSS attack is fulfilled when the web browser is running the injected code:

 <script>alert(document.cookie)</script>              

Possible Attack Vector

For exploiting an XSS vulnerability the attacker has to trick the victim to send malicious input text. It can be done through one of the following ways:

Craft CMS is increasing in popularity, and as it does, the previously relatively scant range of plugins is growing rapidly.

There are plugins for Craft ranging from simple field utilities to the full ecommerce solution provided by Pixel & Tonic — the makers of Craft.

An early decision that has borne fruit for Craft has been the plugin licensing model. Paid plugins for Craft charge an initial license fee and then a reduced annual renewal price for updates. This ongoing payment structure ensures plugin maintenance is economically viable for developers, and as a result, Craft plugins tend to be updated more often and are abandoned less.

The best plugins depend very much on the site you’re developing and what you’re trying to achieve. However, some are so universally useful that I install them on virtually every site I build; here’s a list.

1. Redactor

Installing Redactor is a no-brainer when it comes to picking your plugins. Maintained by Pixel & Tonic, it’s a rich text field that extends Craft‘s basic text input. It’s so useful it may as well be part of the core Craft code.

One of the best features is the ease with which Redactor can be customized. Just duplicate the settings file inside the config directory and edit its contents to alter what editing options are available; it’s simple to create anything from a field with a bold option to a full rich text editor. In addition, each Redactor field can be set to use any of the settings files.

Free

2. Retcon

When you’re outputting code from a rich text field like Redactor, you’ll get clean HTML output — which most of the time is what you want. However, if you’re using something like Tailwind, those classes are non-negotiable. I’m not a fan of Tailwind, but I am a fan of using classes in my CSS selectors instead of element names.

Retcon is an invaluable plugin that extends Twig filters to supply a host of options when you’re outputting content. It can add classes to elements, insert attributes, modify the element type, and tons more.

Free

3. Venveo Bulk Edit

During the life of a site, there’s a good chance that you’re going to have to alter fields and sections after the content is in. It’s a common problem if you’re importing data from another platform using FeedMe, or if you have an indecisive client, or even if the site is simply growing.

Venveo Bulk Edit is a plugin that integrates closely with the Craft UI and allows you to edit the contents of multiple entries at once. This plugin has saved me hundreds of hours that would otherwise have been spent painstakingly editing entries one at a time.

Free

4. Super Table

At some point, you’re going to need a configurable list of inputs. Maybe you’re creating a list of documents to download, building a directory, or even your site navigation. You could create a new channel and then add the entries as an entry field, or even set it up with a matrix field, but this is awkward to edit even with Craft 3.7’s new editing experience.

I’m a big fan of opting for the simplest solution, and in this case, the simplest option is a table field. Unfortunately, Craft’s built-in table field has limited field type support. Super Table, on the other hand, supports almost anything, giving you a powerful, orderable set of fields.

Free

5. No-Cache

Craft has a really powerful caching system. It allows you to cache whole or partial templates, and it‘s intelligent enough to know when you’ve edited content that has been cached so that it can be re-cached.

Understanding Craft’s caching is vital; as a very general guide, dynamic content benefits from caching, but static content does not.

However, you will regularly encounter situations where you want to opt out of the caching. A blog post, for example, could be cached, but the time since it was posted must not be, or every post would appear to have been published “today” until the cache is refreshed.

The No-Cache plugin adds a couple of Twig tags that allow you to temporarily opt-out of the cache. This means that you can cache larger sections of your templates, simplifying your caching decisions considerably while still being able to fine-tune what is cached.

Free

6. Retour

Sooner or later, you’re going to have users hitting 404 errors. If you’re restructuring a site and changing the architecture, it will be sooner. To avoid breaking the UX and SEO, you need to add redirects.

Retour is a helpful plugin that sits in your dashboard side menu. Anytime a user triggers a 404, Retour will flag it up, so you can decide how to redirect the URL in the future.

$59 for the first year; $29/year for updates after that

7. Sherlock

One of Craft’s big strengths is its security. A lot of attention has gone into making sure that the core installation uses best practices. However, as with any CMS, potential security vulnerabilities start to creep in as soon as you introduce 3rd-party code (WordPress’ biggest vulnerability by far is its plugins).

You only need to look at the size of the vendor directory in your installation to see how many 3rd-party dependencies your site has. Even a small site is a house of cards.

Sherlock is a security scanner that performs a number of different tasks to help you stay secure, from checking on security threats in 3rd-party scripts to checking directory permissions. The paid version will even let you limit IP addresses if your site comes under attack — although your hosting company may well do this for you.

Lite: Free
Plus: $199 for the first year; $99/year for updates after that
Pro: $299 for the first year; $149/year for updates after that

8. Imager X

Craft’s built-in image transforms are a little limited. For example, they only work with actual assets, not remote images.

Imager X is an excellent plugin that, among many benefits, allows you to transform remote images. In addition, its refined syntax is perfect for coding complex art direction.

Imager X isn’t cheap, but considering the enormous importance of image optimization, unless you have a straightforward set of images to manipulate, it’s an investment you’ll be glad you made.

Lite: $49 for the first year; $29/year for updates after that
Pro: $99 for the first year; $59/year for updates after that

9. SEOMatic

SEOMatic is the SEO solution most Craft developers default to, including Pixel & Tonic themselves.

You’ll need to define the basics in its settings, and you may find yourself creating extra fields specifically for it to pull data from, but the handy progress bars on its dashboard page will give you an overview of what’s set and what needs to be done.

SEOMatic is another premium plugin, but implementing it is far simpler and cost-effective than digging through all those meta tags and XML files yourself.

$99 for the first year; $49/year for updates after that

Must-Install Craft CMS Plugins

The Craft ecosystem is rapidly growing, and the diversity of the plugins available increases as Craft is utilized for more and more sites.

But despite the lure of shiny new plugins, there are some tools that I return to again and again either because they elegantly fill a gap in the core Craft feature set or because I’ve tried them, and I trust them to be robust.

These are the plugins that I have found most useful in the last couple of years, and installing them is the first thing I do when I set up a new Craft installation.

Source

The post 9 Must-Install Craft CMS Plugins first appeared on Webdesigner Depot.


Source de l’article sur Webdesignerdepot

Data privacy and protection are two imperative aspects for all businesses today as they could be prone to security breaches. Many small and medium organizations tend to ignore application security as they believe only large enterprises are targeted by hackers. However, statistics tell a different story, 43% of cybercrimes happen against small businesses.

There are several reasons behind a cyber-attack against these organizations; from old, unpatched security vulnerabilities to malware or human errors which make take them a lucrative target for attackers. So, ignoring Cyber Security can bring you on the radar of hackers even if you are a startup.

Source de l’article sur DZONE