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
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.
#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 }
Des tests avancés créés automatiquement ? Oui, et c'est de la pure magie.
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)}
Analysez le code comme un attaquant. En temps réel, directement dans votre 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;}
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.
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.
Technologies prises en charge. De la sonde JTAG au parc d'appareils.
- eBPF
- TLS
- IPv6
- DPDK
- DHCP
- WireGuard
- iSCSI
- TCP/IP stack
- VXLAN
- HTTP
- Open vSwitch
- NETCONF
- TR-069 (CWMP)
- MQTT
- NVMe
- QUIC
- SMB
- VLAN
- netem
- nginx
- SNMP
- Network namespaces
- 802.1X / EAP
- IGMP
- RADIUS
- OpenVPN
- RESTCONF
- Geneve
- Linux tc
- CoAP
- UPnP
- Multicast
- Link aggregation
- ARP
- ethtool
- Bridging and STP
- L2TP
- HAProxy
- packetdrill
- RDMA
- iptables
- pcap
- XDP
- netperf
- ASN.1
- IPsec
- GRE
- PPPoE
- TRex
- Modbus TCP
- DNS
- HTTP/3
- SSH
- CUPS
- IPP
- OpenSSL
- NTP
- Unbound
- DHCPv6
- Samba
- DLNA
- SOCKS
- RSS
- TFTP
- SR-IOV
- ICMPv6
- LACP
- DTLS
- radvd
- iperf3
- strongSwan
- TBF shaping
- Energy-Efficient Ethernet
- ipvlan
- FTP
- iperf
- vtund
- SSDP
- Telnet
- LDAP
- Mosquitto
- macvlan
- PTP
- PPP
- NAT
- libmodbus
- switchdev
- veth
- dnsperf
- wrk
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
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.
- OpenWRT
- Systèmes de build sur mesure
- Noyau
- Drivers
- DPDK et TRex
- U-Boot
- Implémentations de tunnels
- Accélérateurs réseau matériels
- MPTCP
- Wi-Fi
- Wi-Fi mesh
- Presque tous les protocoles réseau courants
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.
- Portage d'Android sur de nouvelles plateformes
- Objets connectés sur Atmel, Microchip, Nordic nRF, ESP32 et d'autres plateformes
- Portage d'U-Boot
Serveurs haute performance
Rust et C++ sont nos langages pour les serveurs. La vitesse et la sécurité passent en premier dans la conception.
- Portails de gestion cloud pour équipements réseau
- Systèmes à forte charge pour l'analyse et les tests
- DPDK et accélération du trafic réseau
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.
- Analyseurs et vérifications sur mesure pour vos projets
- IDE complets, créés de zéro
- Compilateurs
- Conception et implémentation de nouveaux langages de programmation
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.
- Rétro-ingénierie de plateformes non documentées basées sur Windows, Windows Mobile, Windows Phone et Android
- Analyse de malwares
- Réponse aux incidents
- Red teaming
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.
- Optimisation des performances des clients
- Développement de zkVM
- Compilateurs et toolchains sur mesure
Interpretica
Contactez-nous
Décrivez votre système et ce que vous devez développer, tester ou sécuriser. Nous répondons par e-mail.
Secteur
Commencez au niveau dont votre projet a besoin.
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
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
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
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é
Notes de notre travail. Écrites par ceux qui le font.
What is the fastest programming language?
Why "what is the fastest programming language?" has no useful answer. We go through the usual ranking of assembly, C, C++, Rust, Java, C# and Python and show what actually decid...
Lire l'articleThe research behind Visao: how Equid became our static analyzer
Before Visao was a product, it was a research project called Equid - a language-agnostic static analysis framework built to close the gap between academic verifiers and real ind...
Lire l'article