Plateforme Midair

Votre maillage de tests Votre analyseur statique Votre ingénieur QA Votre boucle de retour IA en quelques minutes

Pour les appareils embarqués, les serveurs haute performance, les environnements complexes et presque tous les logiciels du monde.

Trois couches de confiance en cybersécurité avec l'analyse statique, les tests et la surveillance à l'exécution

Midair code view: findings and complexity over a repository
Midair test run: the suite tree beside the live run log
Midair node view: connection and agent details for a host

Analyse statique

Vérifier le code source par model checking, interprétation abstraite et solveurs SMT.

Tests

Vérifier qu'un parc d'appareils et d'hôtes fonctionne comme prévu dans l'ensemble du produit.

Exécution

Vérifier que chaque appareil et chaque hôte fait ce qu'on attend de lui.

On vous a dit que l'IA corrige vite les failles de sécurité. On ne vous a pas dit combien elle en ajoute.

Patch de l'IArx.c retour d'un buffer local corrigé
#include <linux/slab.h>
#include <linux/skbuff.h>
 
const uint8_t *read_packet(struct sk_buff *skb, size_t len)
uint8_t *read_packet(struct sk_buff *skb, size_t len)
{
    uint8_t buf[64];
    if (len > sizeof(buf))
        len = sizeof(buf);
    uint8_t *buf;
    /* called from softirq / RX path */
    buf = kmalloc(len, GFP_KERNEL);Visao : peut dormir dans le chemin RX
    if (!buf)
        return NULL;
    memcpy(buf, skb->data, len);TS Factory : lit au-delà du paquet → 3 tests échouent (quand len > skb->len)
    return buf;Delta : buf n'est jamais libéré par l'appelant
}
Corrigés 1 Ajoutés ?

Des tests avancés créés automatiquement ? Oui, et c'est de la pure magie.

gateway/src/handler.rs
pub fn handle(ctx: &Ctx, req: &Request) -> Result<Response> {    let peer = req.peer;    ctx.auth.bearer(&req.token)?;               // authorization    ctx.limiter.check(peer)?;                   // rate limit    verify_md5(&req.frame, req.checksum)?;      // checksums    let sock = mptcp_connect(peer)?;            // MPTCP    ctx.link.delay(Duration::from_millis(80));  // link delay    ctx.router.dispatch(peer, sock)}
Exécution gateway Tests multi-utilisateurs Test de saturation Test de corruption de trames Test multichemin Profils Wi-Fi Mise en forme du trafic

Analysez le code comme un attaquant. En temps réel, directement dans votre agent IA.

agent IA

> Ajoutez la prise en charge des mots de passe à usage unique. Vérifiez qu'elle est mathématiquement correcte.

uint32_t hotp(const uint8_t *secret, size_t len, uint64_t counter) {    uint8_t msg[8];    for (int i = 7; i >= 0; --i) { msg[i] = uint8_t(counter); counter >>= 8; }     uint8_t mac[20];    hmac_sha1(secret, len, msg, sizeof msg, mac);     int off = mac[19] & 0x0f;    uint32_t bin = (mac[off] << 24) | (mac[off + 1] << 16) |                   (mac[off + 2] << 8) | mac[off + 3];    return bin % 1000000;} bool verify(const uint8_t *secret, size_t len, uint64_t counter,            const char *code) {    char want[7];    std::snprintf(want, sizeof want, "%06u", hotp(secret, len, counter));     char got[7];    std::strncpy(got, code, sizeof got);    return std::strcmp(got, want) == 0;}
visao -- otp.cpp

otp.cpp:20:20 error arithm/integer/overflow MISRA 12.4

Dépassement d'entier possible

mac[off] est promu en int, donc le bit 31 est le bit de signe. La RFC 4226 §5.4 masque l'octet avec 0x7f avant le décalage. Sans le masque, le décalage est indéfini et environ la moitié des compteurs produit un code qu'aucun authentificateur standard n'accepte.

fix(mac[off] & 0x7f) << 24

otp.cpp:31:5 error cpp/string/no_null_terminator MISRA 21.17

Terminaison nulle du buffer non garantie

strncpy n'écrit pas le NUL final quand la source atteint la taille limite. Un code soumis de sept caractères ou plus laisse got sans terminaison, et le strcmp qui suit lit au-delà du buffer. Ce code vient de la personne qui s'authentifie.

fixgot[sizeof got - 1] = '\0';

2 problèmes · le fichier compile sans avertissement

Ne faites pas confiance à l'aveugle. Exécutez. Collectez les preuves.

delta --ports --fingerprint /etc --binaries /usr/bin --cfg norm.json 0

Ports:

- tcp 0.0.0.0:22 LISTEN (pid=412 sshd)

- tcp 0.0.0.0:443 LISTEN (pid=980 nginx)

- udp 0.0.0.0:123 LISTEN (pid=377 ntpd)

- tcp 0.0.0.0:2375 LISTEN (pid=1544 dockerd)

Persistence files:

- [systemd] /etc/systemd/system/agent.service mode 0644 uid 0

- [cron] /etc/cron.d/backup mode 0666 uid 0

- [profile] /etc/profile.d/env.sh mode 0644 uid 0

Binaries:

- /usr/bin/agent [aarch64 64-bit LE pie] libc=musl cc="gcc 12.2.0"

- /usr/bin/updater [aarch64 64-bit LE pie] libc=musl cc="gcc 12.2.0"

Binary hardening: NX 2/2, PIE 2/2, RELRO 2/2 (full 1), canary 1/2, fortify 0/2; 0 static, 0 stripped

Check failed

Violations

port high

Open port 2375 (tcp) does not match any policy rule

attendumatching port-norm rule

obtenuno matching rule (port/proto/state/process)

persistence critical ATT&CK T1053.003

Persistence file '/etc/cron.d/backup' (cron) is world-writable

attendunot world-writable

obtenuworld-writable

hardening medium ATT&CK T1055

Binary '/usr/bin/agent' lacks required mitigation: stack canary

attendustack canary

obtenumissing

Found 3 violation(s)

Analyse statique, tests et exécution. Une plateforme : Midair.

TS Factory Visao Delta
Le tableau de bord Midair avec la carte du projet Midair Vision : les anomalies détectées à traiter

Technologies prises en charge. De la sonde JTAG au parc d'appareils.

Et le plus beau : la suite de tests est à vous.

La suite de tests et tout ce qui se trouve en dessous sont open source. Test Environment est sous licence Apache 2.0. Les modules TS Factory sont sous licence MIT.

C'est aussi vrai avec l'offre gratuite Community.

  • Apache 2.0Test Environment
  • MITmodules TS Factory
  • €0offre Community

Nos clients travaillent dans des secteurs différents.

Équipement réseau sur un banc

Équipement réseau

Un routeur Wi-Fi est une pile complète : le bootloader U-Boot, le firmware, la gestion dans le cloud. Nous développons l'ensemble, testons sa sécurité et signalons ce qu'il faut corriger. Le support continue après la sortie.

MPTCP · Wi-Fi mesh · SFP

Une montre connectée affichant des données d'entraînement, au poignet d'une personne qui se repose après l'effort

Objets connectés et smartphones

Un objet connecté ou un téléphone a besoin d'un matériel et d'un logiciel adaptés l'un à l'autre. Nous concevons les deux, du choix de la plateforme matérielle à l'ensemble du logiciel.

Wi-Fi · BLE · protocoles réseau

Une rangée de baies dans un centre de données

Serveurs haute performance

Rust et C++ sont nos langages pour les serveurs. La vitesse et la sécurité passent en premier dans la conception.

Rust · C++

Des écrans sur un bureau, l'un d'eux affichant du code

Outils pour développeurs

Nous développons des langages de programmation et vous aidons à affiner leur conception. Les outils d'analyse statique et dynamique et les débogueurs viennent de la même équipe.

compilateurs · analyse statique · débogueurs

Une fenêtre de terminal sur une invite root

Sécurité et rétro-ingénierie

Certains systèmes doivent rester sûrs, quel que soit le secteur. Ce sont eux que nous développons. Les VPN font l'objet d'une attention particulière. La rétro-ingénierie éthique est une autre option.

VPN · rétro-ingénierie

Un téléphone affichant le cours du Bitcoin, à côté de deux pièces

Blockchain

Notre travail sur la blockchain couvre les preuves à divulgation nulle de connaissance et le développement de clients. Les toolchains pour RISC-V et pour la zkVM en font partie.

zk · RISC-V · zkVM

NDA Développeurs de routeurs Wi-Fi
NDA Entreprises blockchain
NDA Créateurs d'outils pour développeurs

Nous aidons les équipes à développer et tester des logiciels sûrs dans ces secteurs.

En savoir plus

Commencez au niveau dont votre projet a besoin.

Midair arrive bientôt. Inscrivez-vous sur la liste d'attente.

Pour commencer

Community

€0

Exécutez Visao et TS Factory sur une instance partagée et examinez les anomalies détectées.

L'offre Community comprend
  • Instance partagée
  • Exécutions de Visao et TS Factory sur l'instance partagée, dans l'ordre de la file
  • Analyse des anomalies détectées
  • Support de la communauté
  • Génération de tests via une skill externe
Le plus populaire

Pro

€90par mois

Votre propre instance Midair pour l'équipe, avec Delta, MCP et l'analyse des résultats par IA.

Tout ce que comprend Community, plus
  • Instance dédiée dans une région adaptée
  • Nœuds externes
  • Plusieurs utilisateurs
  • Équipes et droits d'accès
  • Prise en charge du Model Context Protocol (MCP)
  • Surveillance à l'exécution avec Delta
  • Génération automatique de tests dans l'interface et via MCP
  • Analyse des résultats par IA, avec liens croisés entre les résultats
  • Support par e-mail
Recommandé

Business

€990par mois

Ajoutez l'analyse SBOM et des vulnérabilités, des indicateurs de performance de l'équipe et des instances auto-hébergées.

Tout ce que comprend Pro, plus
  • Analyse de la nomenclature logicielle (SBOM)
  • Analyse des vulnérabilités à partir d'une base de vulnérabilités
  • Analyse de la performance de l'équipe
  • Instances auto-hébergées
  • Support prioritaire
Pour les environnements complexes

Enterprise

Sur mesure

Adaptez Midair à un environnement à grande échelle, embarqué ou réglementé.

Tout ce que comprend Business, plus
  • Utilisateurs illimités
  • Règles Visao sur mesure
  • Intégrations sur mesure
  • Workflows et rapports propres au projet
  • Intégration de workflows IA sur mesure
  • Support d'ingénierie dédié

Une petite équipe. Fondée sur la science.

Nous travaillons sur les compilateurs, les tests distribués, les systèmes embarqués, les réseaux, le génie logiciel et le design produit.

Notes de notre travail. Écrites par ceux qui le font.