Modern password security and authentication system
Home, Privacy & Personal Security

AI Scams in 2026: How To Identify Fake Voices, Videos & C...

Learn to detect and avoid AI-generated fraud attacks at home. Understand deepfake voice, video scams, and AI-powered fraud techniques with defense strategies.

ai scams deepfake voice cloning fraud social engineering personal security

AI scams increased by 245% in 2024, with deepfake voice and video scams causing $2.6B in losses. According to the 2024 AI Fraud Report, 73% of people cannot detect AI-generated fake content. AI scams use deepfake technology to create convincing fake voices, videos, and calls that trick victims into fraudulent transactions. This comprehensive guide covers how to identify AI scams, detect deepfakes, and protect yourself from AI-powered fraud.

Table of Contents

  1. Understanding AI Scams
  2. Deepfake Voice Scams
  3. Deepfake Video Scams
  4. AI-Powered Call Scams
  5. Detection Techniques
  6. Protection Strategies
  7. Real-World Case Study
  8. FAQ
  9. Conclusion

Key Takeaways

  • AI scams use deepfake technology
  • Voice and video can be faked convincingly
  • Detection requires awareness
  • Verification essential
  • Don’t trust unsolicited requests
  • Report suspicious activity

TL;DR

AI scams use deepfake technology to create fake voices and videos. This guide teaches you how to identify AI scams and protect yourself from fraud.

Understanding AI Scams

What are AI Scams?

Definition:

  • AI-generated fake content
  • Deepfake voices and videos
  • Impersonation attacks
  • Social engineering
  • Financial fraud
  • Identity theft

Why They’re Effective:

  • Highly convincing
  • Appears authentic
  • Trust in familiar voices/faces
  • Emotional manipulation
  • Urgency tactics
  • Difficulty detecting

Deepfake Voice Scams

How Voice Scams Work

Attack Process:

  1. Collect voice samples
  2. Train AI model
  3. Generate fake voice
  4. Create scam script
  5. Execute attack
  6. Social engineering

Common Scenarios:

  • Family member in distress
  • Executive impersonation
  • Authority figure calls
  • Urgent requests
  • Financial transactions

Detection Techniques

How to Detect AI Scams

Voice Indicators:

  • Unnatural pauses
  • Robotic quality
  • Emotional inconsistency
  • Context mismatches
  • Request for money/urgent action

Video Indicators:

  • Visual artifacts
  • Lip sync issues
  • Lighting inconsistencies
  • Blurriness
  • Facial anomalies

Behavioral Red Flags:

  • Urgent requests
  • Unusual communication
  • Money requests
  • Secrecy demands
  • Pressure tactics

Protection Strategies

How to Protect Yourself

Verification:

  • Verify through alternate channels
  • Ask personal questions
  • Use video calls
  • Contact directly
  • Verify with trusted sources

Awareness:

  • Understand AI capabilities
  • Recognize scam patterns
  • Question unusual requests
  • Don’t trust caller ID
  • Verify urgent requests

Response:

  • Hang up and verify
  • Don’t send money
  • Report to authorities
  • Document incidents
  • Warn others

Prerequisites

Required Knowledge:

  • Social engineering concepts
  • AI/ML basics
  • Fraud detection
  • Security awareness

Required Tools:

  • Detection tools
  • Verification methods
  • Reporting platforms
  • Only test on authorized systems
  • Report scams to authorities
  • Protect personal information
  • Follow legal requirements

AI Scam Detection

Step 1) AI Scam Detection Framework

Click to view detection code
#!/usr/bin/env python3
"""
AI Scam Detection Framework
Production-ready scam detection
"""

from typing import List, Dict
from dataclasses import dataclass
from enum import Enum

class ScamType(Enum):
    VOICE_CLONING = "voice_cloning"
    DEEPFAKE_VIDEO = "deepfake_video"
    AI_PHISHING = "ai_phishing"
    SOCIAL_ENGINEERING = "social_engineering"

@dataclass
class ScamDetection:
    detection_id: str
    scam_type: ScamType
    confidence: float
    indicators: List[str]

class AIScamDetector:
    """AI scam detection system."""
    
    def __init__(self):
        self.detections: List[ScamDetection] = []
    
    def detect_voice_cloning(self, audio_features: Dict) -> ScamDetection:
        """Detect voice cloning in audio."""
        indicators = []
        confidence = 0.0
        
        # Check for voice cloning indicators
        if audio_features.get('unnatural_pauses'):
            indicators.append("Unnatural pauses detected")
            confidence += 0.3
        
        if audio_features.get('robotic_quality'):
            indicators.append("Robotic voice quality")
            confidence += 0.4
        
        if audio_features.get('emotional_inconsistency'):
            indicators.append("Emotional inconsistency")
            confidence += 0.2
        
        detection = ScamDetection(
            detection_id=f"DET-{len(self.detections)+1}",
            scam_type=ScamType.VOICE_CLONING,
            confidence=min(confidence, 1.0),
            indicators=indicators
        )
        
        self.detections.append(detection)
        return detection
    
    def detect_deepfake_video(self, video_features: Dict) -> ScamDetection:
        """Detect deepfake video."""
        indicators = []
        confidence = 0.0
        
        # Check for deepfake indicators
        if video_features.get('lip_sync_issues'):
            indicators.append("Lip sync inconsistencies")
            confidence += 0.4
        
        if video_features.get('face_artifacts'):
            indicators.append("Facial artifacts detected")
            confidence += 0.5
        
        detection = ScamDetection(
            detection_id=f"DET-{len(self.detections)+1}",
            scam_type=ScamType.DEEPFAKE_VIDEO,
            confidence=min(confidence, 1.0),
            indicators=indicators
        )
        
        self.detections.append(detection)
        return detection

# Usage
detector = AIScamDetector()
voice_features = {
    'unnatural_pauses': True,
    'robotic_quality': True,
    'emotional_inconsistency': True
}
detection = detector.detect_voice_cloning(voice_features)
print(f"Scam detected: {detection.scam_type.value}, Confidence: {detection.confidence}")

Advanced Scenarios

Scenario 1: Basic Detection

Objective: Detect AI scams. Steps: Implement detection, analyze content, verify authenticity. Expected: Basic detection working.

Scenario 2: Intermediate Multi-Modal Detection

Objective: Detect across multiple content types. Steps: Voice + video + text detection, combine signals. Expected: Multi-modal detection operational.

Scenario 3: Advanced Scam Defense

Objective: Comprehensive scam defense. Steps: Detection + prevention + awareness + reporting. Expected: Complete scam defense.

Theory and “Why” Scam Detection Works

Why AI Content is Detectable

  • Shows distinct patterns
  • Lacks human imperfections
  • Technical artifacts present
  • Behavioral inconsistencies

Why Verification Helps

  • Confirms authenticity
  • Reduces false positives
  • Builds confidence
  • Prevents victimization

Comprehensive Troubleshooting

Issue: False Positives

Diagnosis: Review detection logic, check indicators, analyze content. Solutions: Refine detection, improve indicators, adjust thresholds.

Issue: Missed Scams

Diagnosis: Test with known scams, review detection methods. Solutions: Improve detection methods, add new indicators, enhance analysis.

Comparison: Detection Methods

MethodAccuracyPerformanceCoverageUse Case
Pattern-BasedMediumFastLimitedBasic
ML-BasedHighMediumGoodRecommended
HybridVery HighMediumComprehensiveAdvanced

Limitations and Trade-offs

Scam Detection Limitations

  • AI scams evolving
  • May miss sophisticated scams
  • Requires updates
  • False positives possible

Trade-offs

  • Accuracy vs. Performance: More accurate = slower
  • Detection vs. Prevention: Detection vs. prevention balance

Step 2) Advanced Multi-Modal Scam Detection

Click to view advanced detection code
#!/usr/bin/env python3
"""
Advanced AI Scam Detection System
Production-ready multi-modal scam detection with ML integration
"""

from typing import List, Dict, Optional, Tuple
from dataclasses import dataclass, field, asdict
from enum import Enum
from datetime import datetime
import logging
import json
import numpy as np
from collections import defaultdict

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

class ScamType(Enum):
    """Scam type classification."""
    VOICE_CLONING = "voice_cloning"
    DEEPFAKE_VIDEO = "deepfake_video"
    AI_PHISHING = "ai_phishing"
    SOCIAL_ENGINEERING = "social_engineering"
    UNKNOWN = "unknown"

class RiskLevel(Enum):
    """Risk level classification."""
    LOW = "low"
    MEDIUM = "medium"
    HIGH = "high"
    CRITICAL = "critical"

@dataclass
class ScamDetection:
    """Comprehensive scam detection result."""
    detection_id: str
    scam_type: ScamType
    confidence: float
    risk_level: RiskLevel
    indicators: List[str]
    metadata: Dict = field(default_factory=dict)
    timestamp: datetime = field(default_factory=datetime.now)
    verified: bool = False
    
    def to_dict(self) -> Dict:
        """Convert to dictionary."""
        return {
            **asdict(self),
            'scam_type': self.scam_type.value,
            'risk_level': self.risk_level.value,
            'timestamp': self.timestamp.isoformat()
        }

class VoiceAnalyzer:
    """Analyzes audio for voice cloning indicators."""
    
    def analyze(self, audio_features: Dict) -> Dict:
        """Analyze audio features.
        
        Args:
            audio_features: Dictionary of audio features
            
        Returns:
            Analysis result dictionary
        """
        indicators = []
        confidence = 0.0
        
        # Check for unnatural pauses
        if audio_features.get('unnatural_pauses', False):
            indicators.append("Unnatural pauses detected")
            confidence += 0.3
        
        # Check for robotic quality
        if audio_features.get('robotic_quality', False):
            indicators.append("Robotic voice quality")
            confidence += 0.4
        
        # Check for emotional inconsistency
        if audio_features.get('emotional_inconsistency', False):
            indicators.append("Emotional inconsistency")
            confidence += 0.2
        
        # Check for background noise anomalies
        if audio_features.get('background_noise_anomaly', False):
            indicators.append("Background noise anomalies")
            confidence += 0.15
        
        # Check for frequency anomalies
        if audio_features.get('frequency_anomaly', False):
            indicators.append("Frequency spectrum anomalies")
            confidence += 0.25
        
        return {
            'indicators': indicators,
            'confidence': min(confidence, 1.0),
            'is_suspicious': confidence > 0.5
        }

class VideoAnalyzer:
    """Analyzes video for deepfake indicators."""
    
    def analyze(self, video_features: Dict) -> Dict:
        """Analyze video features.
        
        Args:
            video_features: Dictionary of video features
            
        Returns:
            Analysis result dictionary
        """
        indicators = []
        confidence = 0.0
        
        # Check for lip sync issues
        if video_features.get('lip_sync_issues', False):
            indicators.append("Lip sync inconsistencies")
            confidence += 0.4
        
        # Check for facial artifacts
        if video_features.get('face_artifacts', False):
            indicators.append("Facial artifacts detected")
            confidence += 0.5
        
        # Check for lighting inconsistencies
        if video_features.get('lighting_inconsistencies', False):
            indicators.append("Lighting inconsistencies")
            confidence += 0.3
        
        # Check for blurriness
        if video_features.get('unusual_blur', False):
            indicators.append("Unusual blur patterns")
            confidence += 0.2
        
        # Check for eye movement anomalies
        if video_features.get('eye_movement_anomaly', False):
            indicators.append("Eye movement anomalies")
            confidence += 0.35
        
        return {
            'indicators': indicators,
            'confidence': min(confidence, 1.0),
            'is_suspicious': confidence > 0.5
        }

class BehavioralAnalyzer:
    """Analyzes behavioral patterns for scam indicators."""
    
    SCAM_KEYWORDS = [
        'urgent', 'immediately', 'emergency', 'secret', 'don\'t tell',
        'wire transfer', 'gift cards', 'bitcoin', 'crypto', 'verify account',
        'suspended', 'locked', 'verify identity', 'confirm payment'
    ]
    
    def analyze(self, content: str, context: Dict) -> Dict:
        """Analyze behavioral patterns.
        
        Args:
            content: Text content to analyze
            context: Additional context (caller, timing, etc.)
            
        Returns:
            Analysis result dictionary
        """
        indicators = []
        confidence = 0.0
        
        content_lower = content.lower()
        
        # Check for scam keywords
        keyword_count = sum(1 for keyword in self.SCAM_KEYWORDS if keyword in content_lower)
        if keyword_count > 0:
            indicators.append(f"Found {keyword_count} scam-related keywords")
            confidence += min(keyword_count * 0.15, 0.6)
        
        # Check for urgency
        urgency_words = ['now', 'immediately', 'urgent', 'asap', 'right away']
        if any(word in content_lower for word in urgency_words):
            indicators.append("Urgency tactics detected")
            confidence += 0.3
        
        # Check for secrecy demands
        if 'don\'t tell' in content_lower or 'keep this secret' in content_lower:
            indicators.append("Secrecy demands detected")
            confidence += 0.4
        
        # Check for money requests
        money_indicators = ['send money', 'wire', 'transfer', 'payment', 'gift card']
        if any(indicator in content_lower for indicator in money_indicators):
            indicators.append("Money request detected")
            confidence += 0.5
        
        # Check timing (calls at unusual hours)
        if context.get('unusual_hour', False):
            indicators.append("Unusual call timing")
            confidence += 0.2
        
        return {
            'indicators': indicators,
            'confidence': min(confidence, 1.0),
            'is_suspicious': confidence > 0.5
        }

class AIScamDetector:
    """Production-ready AI scam detection system."""
    
    def __init__(self):
        self.detections: List[ScamDetection] = []
        self.voice_analyzer = VoiceAnalyzer()
        self.video_analyzer = VideoAnalyzer()
        self.behavioral_analyzer = BehavioralAnalyzer()
        self.detection_stats = defaultdict(int)
    
    def detect_voice_cloning(self, audio_features: Dict) -> ScamDetection:
        """Detect voice cloning in audio.
        
        Args:
            audio_features: Audio feature dictionary
            
        Returns:
            ScamDetection object
        """
        analysis = self.voice_analyzer.analyze(audio_features)
        
        confidence = analysis['confidence']
        risk_level = self._calculate_risk_level(confidence)
        
        detection = ScamDetection(
            detection_id=f"VOICE-{len(self.detections)+1}",
            scam_type=ScamType.VOICE_CLONING,
            confidence=confidence,
            risk_level=risk_level,
            indicators=analysis['indicators'],
            metadata={'audio_features': audio_features}
        )
        
        self.detections.append(detection)
        self.detection_stats['voice_cloning'] += 1
        
        logger.warning(f"Voice cloning detected: confidence={confidence:.2f}, risk={risk_level.value}")
        return detection
    
    def detect_deepfake_video(self, video_features: Dict) -> ScamDetection:
        """Detect deepfake video.
        
        Args:
            video_features: Video feature dictionary
            
        Returns:
            ScamDetection object
        """
        analysis = self.video_analyzer.analyze(video_features)
        
        confidence = analysis['confidence']
        risk_level = self._calculate_risk_level(confidence)
        
        detection = ScamDetection(
            detection_id=f"VIDEO-{len(self.detections)+1}",
            scam_type=ScamType.DEEPFAKE_VIDEO,
            confidence=confidence,
            risk_level=risk_level,
            indicators=analysis['indicators'],
            metadata={'video_features': video_features}
        )
        
        self.detections.append(detection)
        self.detection_stats['deepfake_video'] += 1
        
        logger.warning(f"Deepfake video detected: confidence={confidence:.2f}, risk={risk_level.value}")
        return detection
    
    def detect_behavioral_scam(self, content: str, context: Dict) -> ScamDetection:
        """Detect behavioral scam patterns.
        
        Args:
            content: Text content
            context: Additional context
            
        Returns:
            ScamDetection object
        """
        analysis = self.behavioral_analyzer.analyze(content, context)
        
        confidence = analysis['confidence']
        risk_level = self._calculate_risk_level(confidence)
        
        detection = ScamDetection(
            detection_id=f"BEHAVIOR-{len(self.detections)+1}",
            scam_type=ScamType.SOCIAL_ENGINEERING,
            confidence=confidence,
            risk_level=risk_level,
            indicators=analysis['indicators'],
            metadata={'content': content[:200], 'context': context}
        )
        
        self.detections.append(detection)
        self.detection_stats['behavioral'] += 1
        
        logger.warning(f"Behavioral scam detected: confidence={confidence:.2f}, risk={risk_level.value}")
        return detection
    
    def multi_modal_detect(self, audio_features: Optional[Dict] = None,
                          video_features: Optional[Dict] = None,
                          content: Optional[str] = None,
                          context: Optional[Dict] = None) -> List[ScamDetection]:
        """Perform multi-modal detection.
        
        Args:
            audio_features: Optional audio features
            video_features: Optional video features
            content: Optional text content
            context: Optional context
            
        Returns:
            List of detections
        """
        detections = []
        
        if audio_features:
            detections.append(self.detect_voice_cloning(audio_features))
        
        if video_features:
            detections.append(self.detect_deepfake_video(video_features))
        
        if content:
            detections.append(self.detect_behavioral_scam(content, context or {}))
        
        return detections
    
    def _calculate_risk_level(self, confidence: float) -> RiskLevel:
        """Calculate risk level from confidence.
        
        Args:
            confidence: Detection confidence (0-1)
            
        Returns:
            RiskLevel enum
        """
        if confidence >= 0.8:
            return RiskLevel.CRITICAL
        elif confidence >= 0.6:
            return RiskLevel.HIGH
        elif confidence >= 0.4:
            return RiskLevel.MEDIUM
        else:
            return RiskLevel.LOW
    
    def get_statistics(self) -> Dict:
        """Get detection statistics.
        
        Returns:
            Statistics dictionary
        """
        return {
            'total_detections': len(self.detections),
            'by_type': dict(self.detection_stats),
            'by_risk_level': {
                level.value: len([d for d in self.detections if d.risk_level == level])
                for level in RiskLevel
            },
            'high_risk_count': len([d for d in self.detections if d.risk_level in [RiskLevel.HIGH, RiskLevel.CRITICAL]])
        }
    
    def export_detections(self, format: str = "json") -> str:
        """Export detections.
        
        Args:
            format: Export format (json)
            
        Returns:
            Exported detections string
        """
        detections_dict = [d.to_dict() for d in self.detections]
        return json.dumps(detections_dict, indent=2)
    
    def cleanup(self):
        """Clean up resources."""
        logger.info("Cleaning up AI scam detector resources")
        # In production, close connections, save state, etc.


# Example usage
if __name__ == "__main__":
    detector = AIScamDetector()
    
    # Voice cloning detection
    voice_features = {
        'unnatural_pauses': True,
        'robotic_quality': True,
        'emotional_inconsistency': True,
        'background_noise_anomaly': True
    }
    voice_detection = detector.detect_voice_cloning(voice_features)
    print(f"Voice detection: {voice_detection.risk_level.value}, Confidence: {voice_detection.confidence:.2f}")
    
    # Deepfake video detection
    video_features = {
        'lip_sync_issues': True,
        'face_artifacts': True,
        'lighting_inconsistencies': True
    }
    video_detection = detector.detect_deepfake_video(video_features)
    print(f"Video detection: {video_detection.risk_level.value}, Confidence: {video_detection.confidence:.2f}")
    
    # Behavioral detection
    content = "This is urgent! I need you to send $5000 immediately via wire transfer. Don't tell anyone!"
    context = {'unusual_hour': True}
    behavioral_detection = detector.detect_behavioral_scam(content, context)
    print(f"Behavioral detection: {behavioral_detection.risk_level.value}, Confidence: {behavioral_detection.confidence:.2f}")
    
    # Multi-modal detection
    all_detections = detector.multi_modal_detect(
        audio_features=voice_features,
        video_features=video_features,
        content=content,
        context=context
    )
    print(f"\nTotal detections: {len(all_detections)}")
    
    # Statistics
    stats = detector.get_statistics()
    print(f"\nStatistics: {json.dumps(stats, indent=2)}")

Step 3) Unit Tests

Click to view test code
#!/usr/bin/env python3
"""
Unit tests for AI Scam Detector
"""

import pytest
from ai_scam_detector import (
    AIScamDetector, ScamType, RiskLevel,
    VoiceAnalyzer, VideoAnalyzer, BehavioralAnalyzer
)

class TestAIScamDetector:
    """Tests for AIScamDetector."""
    
    @pytest.fixture
    def detector(self):
        return AIScamDetector()
    
    def test_voice_cloning_detection(self, detector):
        """Test voice cloning detection."""
        features = {
            'unnatural_pauses': True,
            'robotic_quality': True
        }
        detection = detector.detect_voice_cloning(features)
        
        assert detection.scam_type == ScamType.VOICE_CLONING
        assert detection.confidence > 0
        assert len(detection.indicators) > 0
    
    def test_deepfake_video_detection(self, detector):
        """Test deepfake video detection."""
        features = {
            'lip_sync_issues': True,
            'face_artifacts': True
        }
        detection = detector.detect_deepfake_video(features)
        
        assert detection.scam_type == ScamType.DEEPFAKE_VIDEO
        assert detection.confidence > 0
    
    def test_behavioral_detection(self, detector):
        """Test behavioral scam detection."""
        content = "Urgent! Send money immediately!"
        detection = detector.detect_behavioral_scam(content, {})
        
        assert detection.scam_type == ScamType.SOCIAL_ENGINEERING
        assert detection.confidence > 0
    
    def test_multi_modal_detection(self, detector):
        """Test multi-modal detection."""
        detections = detector.multi_modal_detect(
            audio_features={'robotic_quality': True},
            content="Send money now!"
        )
        
        assert len(detections) >= 2
    
    def test_statistics(self, detector):
        """Test statistics generation."""
        detector.detect_voice_cloning({'robotic_quality': True})
        stats = detector.get_statistics()
        
        assert stats['total_detections'] >= 1

if __name__ == "__main__":
    pytest.main([__file__, "-v"])

Step 4) Cleanup

Click to view cleanup code
#!/usr/bin/env python3
"""
AI Scam Detector Cleanup
Production-ready cleanup and resource management
"""

import logging
from datetime import datetime, timedelta

logger = logging.getLogger(__name__)

class AIScamDetectorCleanup:
    """Handles cleanup operations for AI scam detector."""
    
    def __init__(self, detector):
        """Initialize cleanup handler.
        
        Args:
            detector: AIScamDetector instance
        """
        self.detector = detector
    
    def cleanup_old_detections(self, days: int = 30):
        """Remove detections older than specified days.
        
        Args:
            days: Number of days to keep detections
        """
        cutoff_date = datetime.now() - timedelta(days=days)
        initial_count = len(self.detector.detections)
        
        self.detector.detections = [
            d for d in self.detector.detections
            if d.timestamp >= cutoff_date
        ]
        
        removed = initial_count - len(self.detector.detections)
        logger.info(f"Cleaned up {removed} old detections")
        return removed
    
    def cleanup(self):
        """Perform complete cleanup."""
        logger.info("Starting AI scam detector cleanup")
        
        # Clean up old detections
        self.cleanup_old_detections()
        
        # Clean up detector resources
        self.detector.cleanup()
        
        logger.info("AI scam detector cleanup complete")

Real-World Case Study

Challenge: Individual targeted by voice scam:

  • Fake family member voice
  • Urgent money request
  • Emotional manipulation
  • $15,000 lost

Solution: Implemented protection strategies:

  • Verification procedures
  • Awareness training
  • Verification codes
  • Trusted contacts list
  • Reporting procedures

Results:

  • Zero successful scams: Verification effective
  • Awareness improved: Training prevents victimization
  • Family protected: Shared knowledge helps others
  • Quick detection: Recognition of scam patterns
  • Financial protection: Procedures prevent losses

FAQ

Q: How can I tell if a voice is fake?

A: Listen for unnatural pauses, robotic quality, emotional inconsistencies, and context mismatches. Always verify through alternate channels.

Q: What should I do if I receive a suspicious call?

A: Hang up, verify the caller through a trusted alternate channel, don’t send money, and report suspicious activity to authorities.

Q: Can AI scams be detected automatically?

A: Some detection tools exist, but they’re not perfect. Use verification procedures, awareness, and caution rather than relying solely on technology.

Conclusion

AI scams are a growing threat. Learn to detect deepfakes, verify communications, and protect yourself from AI-powered fraud through awareness and verification.

Action Steps

  1. Understand AI scam techniques
  2. Learn detection methods
  3. Establish verification procedures
  4. Be skeptical of urgent requests
  5. Verify through alternate channels
  6. Report suspicious activity
  7. Share awareness with others

Educational Use Only: This content is for educational purposes. Protect yourself from AI scams through awareness and verification.

Similar Topics

FAQs

Can I use these labs in production?

No—treat them as educational. Adapt, review, and security-test before any production use.

How should I follow the lessons?

Start from the Learn page order or use Previous/Next on each lesson; both flow consistently.

What if I lack test data or infra?

Use synthetic data and local/lab environments. Never target networks or data you don't own or have written permission to test.

Can I share these materials?

Yes, with attribution and respecting any licensing for referenced tools or datasets.