Tag Archive for 'Programming'

Wingineer

wingineer_logo

Wingineer est un concours de programmation en intelligence artificielle (IA) lancé par le groupe ESIEA ayant pour vocation de recruter des étudiants (lycéens en terminale principalement) à haut potentiel en informatique, cependant le concours est ouvert à tous en candidature libre.

Le but du jeu est de faire évoluer une grenouille dans un éco-système afin de lui faire manger un maximum de papillons tout en lui évitant les abeilles qui peuvent leur nuire.

La programmation est basée sur le langage Netlogo et une API (ensemble de fonctions prédéfinies) qui permettent de constituer votr programme simplement en suivant une logique. Nul besoin d’avoir des connaissances en informatique ou en programmation au préalable.

L’autre intérêt est que la programmation se fait par assemblage de blocs de code fournis dans la documentation, ces derniers sont directements insérés dans un espace sur le site. Une fois votre programme soumis, la simulation démarre instantanément et vous obtenez votre résultat. Un classement en live définit également votre score par rapport aux autres candidats.

Les 50 meilleurs lycéens participeront à la phase finale au sein des locaux ESIEA. Les 3 gagnants recevront une bourse couvrant jusque 100% des frais de scolarité sur les 5 ans.

Vous trouverez ci-dessous une vidéo introduisant le concours, réalisée par Hubert WASSNER, professeur à l’ESIEA.

Top 25 Most dangerous programming errors

The SANS institute has released an article listing the top 25 most dangeurs programming errors as a preventive action to secure software development, limit cyber crime and provide enterprises with a basis for buying their software.

Most of these errors are still not assessed by programmers which might not be totally aware of the fall-outs of their breaches.

This list of programming errors might be used for the following purposes:

  • Software buyers will be able to buy much safer software.
  • Programmers will have tools that consistently measure the security of the software they are writing.
  • Colleges will be able to teach secure coding more confidently.
  • Employers will be able to ensure they have programmers who can write more secure code.

The Top 25 is organized into three high-level categories that contain multiple CWE (Community Weakness Enumeration) entries.

Insecure Interaction Between Components

These weaknesses are related to insecure ways in which data is sent and received between separate components, modules, programs, processes, threads, or systems.

  • CWE-20 – Improper Input Validation
  • CWE-116 – Improper Encoding or Escaping of Output
  • CWE-89 – Failure to Preserve SQL Query Structure (aka ‘SQL Injection’)
  • CWE-79 – Failure to Preserve Web Page Structure (aka ‘Cross-site Scripting’)
  • CWE-78 – Failure to Preserve OS Command Structure (aka ‘OS Command Injection’)
  • CWE-319 – Cleartext Transmission of Sensitive Information
  • CWE-352 – Cross-Site Request Forgery (CSRF)
  • CWE-362 – Race Condition
  • CWE-209 – Error Message Information Leak

Risky Resource Management

The weaknesses in this category are related to ways in which software does not properly manage the creation, usage, transfer, or destruction of important system resources.

  • CWE-119 – Failure to Constrain Operations within the Bounds of a Memory Buffer
  • CWE-642 – External Control of Critical State Data
  • CWE-73 – External Control of File Name or Path
  • CWE-426 – Untrusted Search Path
  • CWE-94 – Failure to Control Generation of Code (aka ‘Code Injection’)
  • CWE-494 – Download of Code Without Integrity Check
  • CWE-404 – Improper Resource Shutdown or Release
  • CWE-665 – Improper Initialization
  • CWE-682 – Incorrect Calculation

Porous Defenses

The weaknesses in this category are related to defensive techniques that are often misused, abused, or just plain ignored.

  • CWE-285 – Improper Access Control (Authorization)
  • CWE-327 – Use of a Broken or Risky Cryptographic Algorithm
  • CWE-259 – Hard-Coded Password
  • CWE-732 – Insecure Permission Assignment for Critical Resource
  • CWE-330 – Use of Insufficiently Random Values
  • CWE-250 – Execution with Unnecessary Privileges
  • CWE-602 – Client-Side Enforcement of Server-Side Security

More detailed information on each weakness can be found on the Mitre’s CWE website by following the CWE entry link.

Although most of these might look trivial, many developers do not have a proper security validation process to ensure a robust code for their programs. Sometimes this might be due to delays, sometimes to lazyness or unawareness. Take a good grip for this list and validate that your code conforms to each principle listed in there. You will contribute to a safer cyber world and software continuum.