| Crates.io | icookforms |
| lib.rs | icookforms |
| version | 0.1.0 |
| created_at | 2025-11-04 06:30:31.143204+00 |
| updated_at | 2025-11-04 06:30:31.143204+00 |
| description | The World's Reference Cookie Audit Software - Complete Security & Compliance Analysis |
| homepage | https://github.com/guillaume-piron-dev/ICookForms |
| repository | https://github.com/guillaume-piron-dev/ICookForms |
| max_upload_size | |
| id | 1915840 |
| size | 1,461,848 |
La Référence Mondiale pour l'Audit de Cookies Web
ICOokForms n'est pas qu'un simple outil d'audit de cookies - c'est LA référence mondiale en matiÚre de sécurité, conformité et analyse forensique des cookies web. Développé en Rust pour des performances maximales et une sécurité absolue, ICOokForms intÚgre des technologies de pointe incluant l'intelligence artificielle, le machine learning, et l'analyse forensique numérique - des capacités uniques qu'aucun autre outil au monde ne possÚde.
ICOokForms est le SEUL outil d'audit de cookies au monde à offrir une suite complÚte d'analyse forensique numérique de niveau professionnel :
.binarycookies d'iOSICOokForms intÚgre des algorithmes de machine learning et d'intelligence artificielle pour détecter des menaces que les méthodes traditionnelles ne peuvent identifier :
# Installation depuis crates.io
cargo install icookforms
# Vérifier l'installation
icookforms --version
# Cloner le repository
git clone https://github.com/guillaume-piron-dev/ICookForms.git
cd ICookForms
# Compiler en mode release (optimisé)
cargo build --release
# Exécuter les tests (413 tests)
cargo test
# Installer localement
cargo install --path .
# Pull de l'image
docker pull guillaumepiron/icookforms:latest
# Exécuter ICOokForms
docker run guillaumepiron/icookforms scan --url https://example.com
# Afficher l'aide générale
icookforms --help
# Afficher la version
icookforms --version
# Aide pour une commande spécifique
icookforms scan --help
icookforms forensics --help
icookforms ml --help
# Scanner un site web simple
icookforms scan --url https://example.com
# Scanner avec sortie JSON
icookforms scan --url https://example.com --output cookies.json --format json
# Crawler plusieurs pages (mode araignée)
icookforms scan --url https://example.com --crawl --max-pages 100
# Scanner avec profondeur maximale
icookforms scan --url https://example.com --crawl --max-depth 3
# Suivre les redirections
icookforms scan --url https://example.com --follow-redirects --max-redirects 10
# Utiliser un proxy
icookforms scan --url https://example.com --proxy http://proxy.local:8080
# Timeout personnalisé
icookforms scan --url https://example.com --timeout 60
# User-Agent personnalisé
icookforms scan --url https://example.com --user-agent "ICOokForms/1.0 Security Audit"
# Headers HTTP personnalisés
icookforms scan --url https://example.com --headers "Authorization: Bearer token123"
# Affichage détaillé pour debug
icookforms scan --url https://example.com --verbose --no-color
# Analyse complÚte de sécurité
icookforms analyze --input cookies.json
# Analyse avec rapport détaillé
icookforms analyze --input cookies.json --verbose --output security_report.json
# Analyser des vulnérabilités spécifiques
icookforms analyze --input cookies.json --checks xss,csrf,hijacking,mitm
# Analyse avec seuil de sévérité
icookforms analyze --input cookies.json --min-severity high
# Vérifier la conformité GDPR (EU)
icookforms compliance gdpr --input cookies.json
# Vérifier la conformité CCPA (California)
icookforms compliance ccpa --input cookies.json
# Vérifier TOUTES les régulations mondiales
icookforms compliance all --input cookies.json --output compliance_report.pdf
# Analyse du consentement utilisateur
icookforms compliance consent --url https://example.com
# Rapport de conformité détaillé
icookforms compliance gdpr --input cookies.json --verbose --output gdpr_audit.json
# Rapport HTML interactif
icookforms report --input results.json --format html --output report.html
# Rapport PDF professionnel
icookforms report --input results.json --format pdf --output executive_report.pdf
# Rapport JSON pour traitement automatisé
icookforms report --input results.json --format json --output detailed_report.json
# Rapport CSV pour Excel
icookforms report --input results.json --format csv --output data.csv
# Rapport YAML
icookforms report --input results.json --format yaml --output config.yaml
# Reconstruire la chronologie complÚte des événements
icookforms forensics timeline --input cookies.json --output timeline.json
# Avec détection d'anomalies
icookforms forensics timeline --input cookies.json --show-anomalies --threshold 0.7
# Timeline avec timezone spécifique
icookforms forensics timeline --input cookies.json --timezone "America/New_York"
# Parser un fichier iOS Cookies.binarycookies
icookforms forensics ios-binary --input Cookies.binarycookies --output ios_cookies.json
# Extraire uniquement les métadonnées (plus rapide)
icookforms forensics ios-binary --input Cookies.binarycookies --metadata-only
# Parser et analyser
icookforms forensics ios-binary --input Cookies.binarycookies | icookforms analyze --input -
# Analyse complĂšte Google Analytics
icookforms forensics google-analytics --input cookies.json --output ga_analysis.json
# Extraire le user journey (parcours utilisateur)
icookforms forensics google-analytics --input cookies.json --user-journey --output journey.json
# Extraire les search terms (termes de recherche)
icookforms forensics google-analytics --input cookies.json --search-terms
# Analyse GA complĂšte avec tout
icookforms forensics google-analytics --input cookies.json --user-journey --search-terms --output full_ga.json
# Générer un rapport forensique professionnel
icookforms forensics full-report --input cookies.json --output forensic_report.pdf
# Avec données brutes incluses
icookforms forensics full-report --input cookies.json --include-raw --output complete_report.pdf
# Rapport forensique avec timezone
icookforms forensics full-report --input cookies.json --timezone "Europe/Paris" --output report_fr.pdf
# Collecter des preuves avec chain-of-custody
icookforms forensics evidence --input cookies.json --output evidence_dir/
# Avec informations d'investigation
icookforms forensics evidence \
--input cookies.json \
--output evidence/ \
--investigator "John Doe" \
--case-number "CASE-2025-001" \
--chain-of-custody
# Collection de preuves complĂšte
icookforms forensics evidence \
--input cookies.json \
--output investigation_001/ \
--investigator "Jane Smith, CISSP" \
--case-number "SEC-2025-042"
# Décoder tous les cookies
icookforms forensics decode --input cookies.json --output decoded.json
# Décoder un cookie spécifique
icookforms forensics decode --input cookies.json --cookie-name "_ga" --output ga_decoded.json
# Décodage avec analyse détaillée
icookforms forensics decode --input cookies.json --verbose
# EntraĂźner un modĂšle sur des cookies normaux
icookforms ml train --dataset normal_cookies.json --output model.bin
# Entraßnement avec configuration avancée
icookforms ml train \
--dataset baseline_cookies.json \
--output trained_model.bin \
--n-trees 200 \
--sample-size 512 \
--seed 42
# Entraßnement avec logging détaillé
icookforms ml train --dataset cookies.json --output model.bin --verbose
# Détecter des anomalies avec modÚle pré-entraßné
icookforms ml detect --input cookies.json --model trained_model.bin
# Détection avec threshold personnalisé
icookforms ml detect --input cookies.json --threshold 0.8 --output anomalies.json
# Afficher uniquement les anomalies critiques
icookforms ml detect --input cookies.json --high-severity-only
# Détection complÚte avec rapport
icookforms ml detect \
--input suspicious_cookies.json \
--model production_model.bin \
--threshold 0.75 \
--output ml_report.json \
--format json
# Analyser le comportement des cookies
icookforms ml analyze --input cookies.json --output behavioral_analysis.json
# Analyse avec baseline de comparaison
icookforms ml analyze \
--input current_cookies.json \
--baseline normal_baseline.json \
--output deviations.json
# Analyse comportementale détaillée
icookforms ml analyze --input cookies.json --verbose --output full_behavior.json
# ReconnaĂźtre des patterns malveillants
icookforms ml patterns --input cookies.json --output patterns.json
# Afficher uniquement les patterns malveillants
icookforms ml patterns --input cookies.json --malicious-only
# Reconnaissance avec analyse approfondie
icookforms ml patterns --input cookies.json --verbose --output detailed_patterns.json
# Détecter des attaques zero-day
icookforms ml zero-day --input cookies.json --output zero_days.json
# Détection avec agressivité élevée
icookforms ml zero-day --input cookies.json --aggressiveness 5 --output high_alert.json
# Zero-day avec niveau modéré
icookforms ml zero-day --input cookies.json --aggressiveness 3
# Détection ultra-sensible (plus de faux positifs)
icookforms ml zero-day \
--input production_cookies.json \
--aggressiveness 5 \
--output critical_alerts.json \
--format json
# Format de sortie : human (default), json, yaml, csv
icookforms scan --url https://example.com --format json
# Mode verbose pour debugging
icookforms scan --url https://example.com --verbose
# Désactiver les couleurs (CI/CD)
icookforms scan --url https://example.com --no-color
# Combiner plusieurs options
icookforms scan \
--url https://example.com \
--verbose \
--format json \
--output results.json \
--no-color
use icookforms::{Scanner, Analyzer};
use icookforms::types::config::ScanConfig;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Créer un scanner avec configuration
let config = ScanConfig::default();
let scanner = Scanner::new(config)?;
// Scanner un site web
let scan_result = scanner.scan("https://example.com").await?;
// Analyser les cookies
let analyzer = Analyzer::new();
let analysis = analyzer.analyze(&scan_result.cookies)?;
// Afficher les résultats
println!("â
Trouvé {} cookies", scan_result.cookies.len());
println!("â ïž ProblĂšmes de sĂ©curitĂ©: {}", analysis.security_issues.len());
println!("đ ProblĂšmes de conformitĂ©: {}", analysis.compliance_issues.len());
Ok(())
}
use icookforms::{MLAnalyzer, Scanner};
use icookforms::types::config::{ScanConfig, MLConfig};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Scanner des cookies
let scanner = Scanner::new(ScanConfig::default())?;
let scan_result = scanner.scan("https://suspicious-site.com").await?;
// Créer analyseur ML
let ml_config = MLConfig {
anomaly_threshold: 0.8,
enable_zero_day_detection: true,
..Default::default()
};
let mut ml_analyzer = MLAnalyzer::with_config(&ml_config);
// EntraĂźner sur baseline
ml_analyzer.train(&baseline_cookies)?;
// Détecter anomalies
let anomalies = ml_analyzer.detect(&scan_result.cookies)?;
// Traiter les anomalies critiques
for anomaly in anomalies.iter().filter(|a| a.severity == AnomalySeverity::Critical) {
eprintln!("đŽ CRITIQUE: {} - {}", anomaly.cookie.name, anomaly.explanation);
}
Ok(())
}
use icookforms::forensics::{ForensicAnalyzer, ForensicConfig};
fn main() -> Result<(), Box<dyn std::error::Error>> {
// Charger des cookies
let cookies = load_cookies_from_file("evidence.json")?;
// Créer analyseur forensique
let config = ForensicConfig {
enable_chain_of_custody: true,
include_raw_data: true,
timezone: "UTC".to_string(),
anomaly_threshold: 0.7,
};
let analyzer = ForensicAnalyzer::with_config(config);
// Reconstruire la timeline
let timeline = analyzer.reconstruct_timeline(&cookies)?;
println!("đ
Timeline: {} événements sur {} heures",
timeline.events.len(),
timeline.duration.num_hours());
// Analyser Google Analytics
let ga_cookies = analyzer.analyze_google_analytics(&cookies)?;
for ga in ga_cookies {
println!("đ GA Client ID: {}", ga.client_id);
if let Some(journey) = ga.user_journey {
println!(" Parcours: {} pages visitées", journey.pages.len());
}
}
Ok(())
}
icookforms/
âââ src/
â âââ cli/ # đź Interface en ligne de commande
â â âââ commands/ # Toutes les commandes (scan, analyze, forensics, ml)
â â âââ output/ # Formatage de sortie (human, json, yaml, csv)
â â
â âââ scanner/ # đ Extraction de cookies HTTP/HTTPS
â â âââ http.rs # Client HTTP avec Reqwest
â â âââ crawler.rs # Web crawler multi-pages
â â âââ extractor.rs # Extraction depuis headers et JavaScript
â â
â âââ parser/ # đ Parsing RFC 6265 compliant
â â âââ cookie.rs # Cookie parser principal
â â âââ attributes.rs # Parsing d'attributs (Domain, Path, etc.)
â â âââ validator.rs # Validation RFC strict
â â
â âââ analyzer/ # đ Analyse de sĂ©curitĂ©
â â âââ security/ # DĂ©tection XSS, CSRF, Session Hijacking
â â âââ crypto/ # Analyse cryptographique
â â âââ supply_chain/ # SĂ©curitĂ© supply chain (npm, PyPI)
â â
â âââ compliance/ # âïž ConformitĂ© rĂ©glementaire
â â âââ gdpr/ # GDPR (EU)
â â âââ ccpa/ # CCPA (California)
â â âââ lgpd/ # LGPD (Brazil)
â â âââ global/ # 50+ autres rĂ©gulations
â â
â âââ forensics/ # đŹ Analyse forensique (UNIQUE !)
â â âââ timeline.rs # Reconstruction de chronologie
â â âââ ios_binary.rs # Parser iOS .binarycookies
â â âââ google_analytics.rs# Analyse GA approfondie
â â âââ evidence_collector.rs # Collecte de preuves lĂ©gales
â â âââ cookie_decoder.rs # DĂ©codeur universel
â â âââ report_generator.rs# Rapports forensiques
â â
â âââ ml_analyzer/ # đ€ Machine Learning & IA (UNIQUE !)
â â âââ anomaly_detector.rs # Isolation Forest
â â âââ behavioral_analysis.rs # Analyse comportementale
â â âââ pattern_recognition.rs # Reconnaissance de patterns
â â âââ zero_day_detector.rs # DĂ©tection zero-day
â â âââ models/ # ModĂšles ML
â â â âââ isolation_forest.rs
â â â âââ autoencoder.rs
â â â âââ ensemble.rs
â â âââ training/ # EntraĂźnement
â â âââ trainer.rs
â â âââ validator.rs
â â
â âââ reporter/ # đ GĂ©nĂ©ration de rapports
â â âââ html/ # Rapports HTML interactifs
â â âââ pdf/ # Rapports PDF professionnels
â â âââ json/ # Export JSON
â â âââ csv/ # Export CSV pour Excel
â â
â âââ storage/ # đŸ Stockage et cache
â â âââ database/ # SQLite pour historique
â â âââ cache/ # Sled pour cache haute performance
â â
â âââ types/ # đŻ Types de donnĂ©es
â â âââ cookie.rs # Structure Cookie
â â âââ config.rs # Configurations
â â âââ issue.rs # ProblĂšmes de sĂ©curitĂ©/conformitĂ©
â â âââ report.rs # Structures de rapports
â â
â âââ utils/ # đ ïž Utilitaires
â âââ crypto.rs # Fonctions cryptographiques
â âââ time.rs # Gestion du temps
â âââ validation.rs # Validations
â
âââ tests/ # đ§Ș Tests (413 tests, 95% coverage)
â âââ unit/ # Tests unitaires
â âââ integration/ # Tests d'intĂ©gration
â âââ fixtures/ # DonnĂ©es de test
â
âââ benches/ # ⥠Benchmarks de performance
âââ docs/ # đ Documentation complĂšte
âââ examples/ # đĄ Exemples d'utilisation
# Compiler le projet
cargo build --release
# Exécuter TOUS les tests (413 tests)
cargo test
# Tests avec couverture de code
cargo tarpaulin --out Html
# Benchmarks de performance
cargo bench
# Vérification avec Clippy (0 warnings)
cargo clippy -- -D warnings
# Formater le code
cargo fmt
# Générer la documentation
cargo doc --open
# Vérifier la sécurité des dépendances
cargo audit
# Tests unitaires
cargo test --lib
# Tests d'intégration
cargo test --test '*'
# Test spécifique
cargo test test_cookie_parsing
# Tests avec logs
RUST_LOG=debug cargo test
# Tests parallĂšles avec tous les CPUs
cargo test -- --test-threads=$(nproc)
# Tous les benchmarks
cargo bench
# Benchmark spécifique
cargo bench parser_bench
# Benchmark avec rapport HTML
cargo bench -- --save-baseline main
Les contributions sont les bienvenues ! Merci de lire notre Guide de Contribution et notre Code of Conduct.
cargo fmt avant chaque commitcargo clippy et corriger tous les warningsgit checkout -b feature/AmazingFeature)git commit -m 'Add AmazingFeature')git push origin feature/AmazingFeature)ICOokForms est sous licence Apache License 2.0.
Voir LICENSE pour les détails complets.
ICOokForms est construit avec et inspiré par :
Merci d'ouvrir une Issue en incluant :
ICOokForms - La seule solution d'audit de cookies au monde combinant :
Top 0.1% Excellence - World-Class Quality đđđ
â Star us on GitHub | đ Report Issues | đŹ Discussions