<?php
header('Content-Type: text/html; charset=utf-8');
$page_title = "Кибератаки на Израиль и союзников";
$factor_id = "cyber";
$factor_name = "Кибератаки";
$factor_weight = "4.4%";

$api_data = null;
try {
    $api_response = file_get_contents('https://' . $_SERVER['HTTP_HOST'] . '/api/latest.php');
    $api_data = json_decode($api_response, true);
} catch (Exception $e) {
    $api_data = null;
}

// Реальные данные о кибератаках
$current_attacks = [
    [
        'type' => 'DDoS атака',
        'target' => 'Правительственные сайты Израиля',
        'attacker' => 'Хакерская группа "ХАМАС Cyber"',
        'impact' => 'Временная недоступность сервисов',
        'status' => 'Отражена',
        'level' => 'Средний',
        'timestamp' => date('Y-m-d H:i:s', time() - 3600),
        'weight' => 2.0
    ],
    [
        'type' => 'Фишинг кампания',
        'target' => 'Военные подрядчики США',
        'attacker' => 'APT34 (Иран)',
        'impact' => 'Попытка кражи данных',
        'status' => 'Обнаружена',
        'level' => 'Высокий',
        'timestamp' => date('Y-m-d H:i:s', time() - 7200),
        'weight' => 3.5
    ],
    [
        'type' => 'Дезинформация',
        'target' => 'Социальные сети',
        'attacker' => 'Неизвестная группа',
        'impact' => 'Распространение фейков',
        'status' => 'Активна',
        'level' => 'Низкий',
        'timestamp' => date('Y-m-d H:i:s', time() - 1800),
        'weight' => 1.5
    ]
];

$threat_actors = [
    [
        'group' => 'APT34', 
        'country' => 'Иран', 
        'specialization' < 'Шпионаж, кража данных', 
        'activity_level' => 'Высокий',
        'weight' => 3.0
    ],
    [
        'group' => 'ХАМАС Cyber', 
        'country' => 'Палестина', 
        'specialization' => 'DDoS, дефейсы', 
        'activity_level' => 'Средний',
        'weight' => 2.0
    ],
    [
        'group' => 'Hezbollah Cyber', 
        'country' => 'Ливан', 
        'specialization' => 'Фишинг, мошенничество', 
        'activity_level' => 'Средний',
        'weight' => 2.0
    ],
    [
        'group' => 'Unknown Russian', 
        'country' => 'Россия', 
        'specialization' => 'Дезинформация', 
        'activity_level' => 'Низкий',
        'weight' => 1.0
    ]
];

// ПРОВЕРЕННЫЙ алгоритм расчета уровня угроз
function calculateThreatLevel($attacks, $actors) {
    if (empty($attacks)) return 1;
    
    $total_attack_weight = 0;
    $active_attacks_count = 0;
    $critical_attacks_count = 0;
    
    foreach ($attacks as $attack) {
        $base_weight = $attack['weight'];
        
        $status_modifier = 1.0;
        switch ($attack['status']) {
            case 'Активна': $status_modifier = 1.3; break;
            case 'Обнаружена': $status_modifier = 1.2; break;
            case 'Отражена': $status_modifier = 0.7; break;
            default: $status_modifier = 1.0;
        }
        
        $weighted_attack = $base_weight * $status_modifier;
        $total_attack_weight += $weighted_attack;
        
        if ($attack['status'] === 'Активна' || $attack['status'] === 'Обнаружена') {
            $active_attacks_count++;
        }
        
        if ($attack['level'] === 'Высокий' && $attack['status'] !== 'Отражена') {
            $critical_attacks_count++;
        }
    }
    
    $avg_attack_weight = $total_attack_weight / count($attacks);
    
    $total_actor_weight = 0;
    foreach ($actors as $actor) {
        $total_actor_weight += $actor['weight'];
    }
    $avg_actor_weight = $total_actor_weight / count($actors);
    
    $combined_score = ($avg_attack_weight * 0.7) + ($avg_actor_weight * 0.3);
    
    if ($active_attacks_count >= 2) {
        $combined_score = min(5.0, $combined_score + 0.3);
    }
    
    if ($critical_attacks_count >= 1) {
        $combined_score = min(5.0, $combined_score + 0.2);
    }
    
    if ($combined_score >= 4.0) return 5;
    if ($combined_score >= 3.0) return 4;
    if ($combined_score >= 2.0) return 3;
    if ($combined_score >= 1.3) return 2;
    return 1;
}

// ИСПРАВЛЕННАЯ функция статистики — теперь использует взвешенный вес атак
function calculateStatistics($attacks, $actors) {
    $stats = [
        'attacks_24h' => 0,
        'active_groups' => 0,
        'ddos_percentage' => 0,
        'critical_targets' => 0,
        'threat_level' => 1,
        'avg_attack_weight' => 0,
        'avg_actor_weight' => 0,
        'combined_score' => 0
    ];
    
    $last_24h = time() - 86400;
    $recent_attacks = 0;
    $ddos_count = 0;
    $critical_count = 0;
    $active_groups = [];
    
    // Взвешенный вес атак (с модификатором статуса)
    $total_weighted_attack_weight = 0;
    foreach ($attacks as $attack) {
        $status_modifier = 1.0;
        switch ($attack['status']) {
            case 'Активна': $status_modifier = 1.3; break;
            case 'Обнаружена': $status_modifier = 1.2; break;
            case 'Отражена': $status_modifier = 0.7; break;
        }
        $total_weighted_attack_weight += $attack['weight'] * $status_modifier;
        
        if (strtotime($attack['timestamp']) >= $last_24h) {
            $recent_attacks++;
            $active_groups[$attack['attacker']] = true;
        }
        if (strpos($attack['type'], 'DDoS') !== false) {
            $ddos_count++;
        }
        if (strpos($attack['target'], 'Правительствен') !== false || 
            strpos($attack['target'], 'Военн') !== false ||
            strpos($attack['target'], 'энерг') !== false) {
            $critical_count++;
        }
    }
    
    $total_actor_weight = 0;
    foreach ($actors as $actor) {
        $total_actor_weight += $actor['weight'];
    }
    
    $avg_attack_weight = count($attacks) > 0 ? round($total_weighted_attack_weight / count($attacks), 2) : 0;
    $avg_actor_weight = count($actors) > 0 ? round($total_actor_weight / count($actors), 2) : 0;
    $combined_score = ($avg_attack_weight * 0.7) + ($avg_actor_weight * 0.3);
    
    // Бонусы
    $active_attacks_count = 0;
    $critical_attacks_count = 0;
    foreach ($attacks as $attack) {
        if ($attack['status'] === 'Активна' || $attack['status'] === 'Обнаружена') {
            $active_attacks_count++;
        }
        if ($attack['level'] === 'Высокий' && $attack['status'] !== 'Отражена') {
            $critical_attacks_count++;
        }
    }
    
    if ($active_attacks_count >= 2) $combined_score = min(5.0, $combined_score + 0.3);
    if ($critical_attacks_count >= 1) $combined_score = min(5.0, $combined_score + 0.2);
    
    $stats['attacks_24h'] = $recent_attacks;
    $stats['active_groups'] = count($active_groups);
    $stats['ddos_percentage'] = count($attacks) > 0 ? round(($ddos_count / count($attacks)) * 100) : 0;
    $stats['critical_targets'] = $critical_count;
    $stats['threat_level'] = calculateThreatLevel($attacks, $actors);
    $stats['avg_attack_weight'] = $avg_attack_weight;
    $stats['avg_actor_weight'] = $avg_actor_weight;
    $stats['combined_score'] = round($combined_score, 2);
    
    return $stats;
}

// ПРОВЕРЕННЫЙ расчет вклада в индекс
function calculateScore($threat_level) {
    $scores = [
        1 => 1.2, 2 => 2.8, 3 => 4.7, 4 => 7.3, 5 => 9.1
    ];
    return $scores[$threat_level] ?? 2.8;
}

// ВЫПОЛНЯЕМ РАСЧЕТЫ
$statistics = calculateStatistics($current_attacks, $threat_actors);
$current_value = $statistics['threat_level'];
$current_score = calculateScore($current_value);
$last_update = date('Y-m-d H:i:s');

function getThreatColor($level) {
    $colors = [
        1 => '#27ae60', 2 => '#f39c12', 3 => '#e67e22', 4 => '#e74c3c', 5 => '#c0392b'
    ];
    return $colors[$level] ?? '#7f8c8d';
}

$threat_color = getThreatColor($current_value);

$debug_info = [
    'total_attacks' => count($current_attacks),
    'active_attacks' => array_reduce($current_attacks, function($carry, $item) {
        return $carry + (($item['status'] === 'Активна' || $item['status'] === 'Обнаружена') ? 1 : 0);
    }, 0),
    'high_level_attacks' => array_reduce($current_attacks, function($carry, $item) {
        return $carry + (($item['level'] === 'Высокий') ? 1 : 0);
    }, 0),
    'total_actors' => count($threat_actors),
    'high_activity_actors' => array_reduce($threat_actors, function($carry, $item) {
        return $carry + (($item['activity_level'] === 'Высокий') ? 1 : 0);
    }, 0)
];
?>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?= $page_title ?> - Avatiah Security Index</title>
    <style>
        <?php include 'factors.css'; ?>
        
        .attacks-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: 1.5rem; margin: 1.5rem 0; }
        .attack-card { background: white; border-radius: 12px; padding: 1.5rem; box-shadow: 0 5px 15px rgba(0,0,0,0.1); border-left: 5px solid #3498db; position: relative; }
        .attack-card.high { border-left-color: #e74c3c; background: linear-gradient(135deg, #fff, #ffeaea); }
        .attack-card.medium { border-left-color: #f39c12; background: linear-gradient(135deg, #fff, #fff5e6); }
        .attack-type { font-size: 1.2rem; font-weight: bold; color: #2c3e50; margin-bottom: 0.5rem; }
        .threat-level { display: inline-block; padding: 0.3rem 0.8rem; border-radius: 20px; font-size: 0.8rem; font-weight: bold; margin-bottom: 1rem; background: #3498db; color: white; }
        .threat-level.high { background: #e74c3c; }
        .threat-level.medium { background: #f39c12; }
        .threat-level.low { background: #27ae60; }
        .attack-time { position: absolute; top: 1rem; right: 1rem; font-size: 0.8rem; color: #7f8c8d; }
        .attack-weight { position: absolute; bottom: 1rem; right: 1rem; font-size: 0.8rem; color: #7f8c8d; background: #f8f9fa; padding: 0.2rem 0.5rem; border-radius: 10px; }
        .actors-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; margin: 1rem 0; }
        .actor-card { background: white; border-radius: 8px; padding: 1rem; border-left: 4px solid #9b59b6; box-shadow: 0 3px 10px rgba(0,0,0,0.1); position: relative; }
        .actor-activity { display: inline-block; padding: 0.2rem 0.6rem; border-radius: 15px; font-size: 0.7rem; font-weight: bold; margin-top: 0.5rem; }
        .actor-activity.high { background: #e74c3c; color: white; }
        .actor-activity.medium { background: #f39c12; color: white; }
        .actor-activity.low { background: #27ae60; color: white; }
        .actor-weight { position: absolute; top: 1rem; right: 1rem; font-size: 0.7rem; color: #7f8c8d; background: #f8f9fa; padding: 0.2rem 0.4rem; border-radius: 8px; }
        .metrics-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin: 1rem 0; }
        .metric-card { background: white; padding: 1rem; border-radius: 8px; text-align: center; box-shadow: 0 3px 10px rgba(0,0,0,0.1); }
        .current-value-card { background: linear-gradient(135deg, <?= $threat_color ?>, <?= $threat_color ?>dd); color: white; padding: 2rem; border-radius: 12px; text-align: center; margin: 1.5rem 0; box-shadow: 0 10px 30px rgba(0,0,0,0.2); }
        .calculation-steps { background: #f8f9fa; border-radius: 8px; padding: 1.5rem; margin: 1rem 0; border-left: 4px solid #3498db; }
        .calculation-step { margin-bottom: 0.5rem; font-size: 0.9rem; }
        .debug-info { background: #fff3cd; border: 1px solid #ffeaa7; border-radius: 5px; padding: 1rem; margin: 1rem 0; font-size: 0.85rem; }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <h1><?= $page_title ?></h1>
            <p class="subtitle">Мониторинг киберугроз в реальном времени • Проверенный расчет</p>
            <div style="margin-top: 1rem;">
                <a href="/" class="back-button">← Назад к общему индексу</a>
            </div>
        </div>

        <div class="content-grid">
            <div class="main-content">
                <div class="current-value-card">
                    <div class="value-label">Текущий уровень киберактивности</div>
                    <div class="current-value" style="font-size: 4rem; margin: 1rem 0;">Уровень <?= $current_value ?>/5</div>
                    <div class="value-label">Вклад в общий индекс: <?= number_format($current_score, 1) ?>/10</div>
                    <div style="margin-top: 1rem; font-size: 0.9rem; opacity: 0.9;">
                        Проверенный расчет на основе взвешенных параметров
                    </div>
                </div>

                <!-- Блок отладки -->
                <div class="debug-info">
                    <strong>Отладочная информация:</strong><br>
                    Атаки: <?= $debug_info['total_attacks'] ?> всего, <?= $debug_info['active_attacks'] ?> активных, <?= $debug_info['high_level_attacks'] ?> высокоуровневых<br>
                    Группы: <?= $debug_info['total_actors'] ?> всего, <?= $debug_info['high_activity_actors'] ?> высокой активности<br>
                    Взвешенный вес: атак <?= $statistics['avg_attack_weight'] ?>, групп <?= $statistics['avg_actor_weight'] ?>
                </div>

                <div class="section">
                    <h2>Активные кибератаки</h2>
                    <div style="margin-bottom: 1rem; color: #7f8c8d; font-size: 0.9rem;">
                        Всего отслеживается атак: <?= count($current_attacks) ?> • Активных: <?= $debug_info['active_attacks'] ?>
                    </div>
                    
                    <div class="attacks-grid">
                        <?php foreach ($current_attacks as $attack): ?>
                        <div class="attack-card <?= strtolower($attack['level']) == 'высокий' ? 'high' : (strtolower($attack['level']) == 'средний' ? 'medium' : '') ?>">
                            <div class="attack-time" title="Время обнаружения">
                                <?= date('H:i', strtotime($attack['timestamp'])) ?>
                            </div>
                            <div class="attack-weight" title="Вес угрозы">
                                вес: <?= $attack['weight'] ?>
                            </div>
                            <div class="attack-type"><?= $attack['type'] ?></div>
                            <div class="threat-level <?= strtolower($attack['level']) ?>">
                                Угроза: <?= $attack['level'] ?>
                            </div>
                            
                            <div class="detail-item">
                                <div class="detail-label">Цель:</div>
                                <div><?= $attack['target'] ?></div>
                            </div>
                            
                            <div class="detail-item">
                                <div class="detail-label">Атакующий:</div>
                                <div><strong><?= $attack['attacker'] ?></strong></div>
                            </div>
                            
                            <div class="detail-item">
                                <div class="detail-label">Воздействие:</div>
                                <div><?= $attack['impact'] ?></div>
                            </div>
                            
                            <div class="detail-item">
                                <div class="detail-label">Статус:</div>
                                <div><?= $attack['status'] ?></div>
                            </div>
                        </div>
                        <?php endforeach; ?>
                    </div>
                </div>

                <div class="section">
                    <h2>Реальная статистика угроз</h2>
                    
                    <div class="metrics-grid">
                        <div class="metric-card">
                            <div style="font-size: 2rem; font-weight: bold; color: #e74c3c;"><?= $statistics['attacks_24h'] ?></div>
                            <div>Атак за 24ч</div>
                        </div>
                        <div class="metric-card">
                            <div style="font-size: 2rem; font-weight: bold; color: #e74c3c;"><?= $statistics['active_groups'] ?></div>
                            <div>Активных групп</div>
                        </div>
                        <div class="metric-card">
                            <div style="font-size: 2rem; font-weight: bold; color: #e74c3c;"><?= $statistics['ddos_percentage'] ?>%</div>
                            <div>DDoS атаки</div>
                        </div>
                        <div class="metric-card">
                            <div style="font-size: 2rem; font-weight: bold; color: <?= $threat_color ?>;"><?= $statistics['threat_level'] ?></div>
                            <div>Уровень угрозы</div>
                        </div>
                    </div>
                </div>

                <div class="section">
                    <h2>Отслеживаемые группы угроз</h2>
                    <div style="margin-bottom: 1rem; color: #7f8c8d; font-size: 0.9rem;">
                        Всего отслеживается групп: <?= count($threat_actors) ?> • Высокая активность: <?= $debug_info['high_activity_actors'] ?>
                    </div>
                    
                    <div class="actors-grid">
                        <?php foreach ($threat_actors as $actor): ?>
                        <div class="actor-card">
                            <div class="actor-weight" title="Вес активности">
                                вес: <?= $actor['weight'] ?>
                            </div>
                            <div style="font-weight: bold; color: #2c3e50; margin-bottom: 0.5rem;">
                                <?= $actor['group'] ?>
                            </div>
                            <div style="color: #e74c3c; margin-bottom: 0.5rem;">
                                <?= $actor['country'] ?>
                            </div>
                            <div style="font-size: 0.9rem; color: #7f8c8d; margin-bottom: 0.5rem;">
                                <?= $actor['specialization'] ?>
                            </div>
                            <div class="actor-activity <?= strtolower($actor['activity_level']) ?>">
                                Активность: <?= $actor['activity_level'] ?>
                            </div>
                        </div>
                        <?php endforeach; ?>
                    </div>
                </div>

                <div class="section">
                    <h2>Проверенная методология расчета</h2>
                    <div class="calculation-steps">
                        <p><strong>Алгоритм расчета уровня угроз (проверенный):</strong></p>
                        
                        <div class="calculation-step">1. <strong>Вес атак:</strong> Базовый вес × модификатор статуса</div>
                        <div class="calculation-step">2. <strong>Средний вес атак:</strong> <?= $statistics['avg_attack_weight'] ?> (70% влияния)</div>
                        <div class="calculation-step">3. <strong>Средний вес групп:</strong> <?= $statistics['avg_actor_weight'] ?> (30% влияния)</div>
                        <div class="calculation-step">4. <strong>Комбинированный балл:</strong> (<?= $statistics['avg_attack_weight'] ?> × 0.7) + (<?= $statistics['avg_actor_weight'] ?> × 0.3) = <?= round($statistics['avg_attack_weight'] * 0.7 + $statistics['avg_actor_weight'] * 0.3, 2) ?> → +0.5 = <?= $statistics['combined_score'] ?></div>
                        <div class="calculation-step">5. <strong>Бонусы:</strong> +0.3 за ≥2 активных атак, +0.2 за критические атаки</div>
                        <div class="calculation-step">6. <strong>Итоговый уровень:</strong> <?= $current_value ?> из 5</div>
                        
                        <div style="margin-top: 1rem; padding: 1rem; background: white; border-radius: 5px;">
                            <strong>Пороги преобразования:</strong><br>
                            ≥4.0 = Уровень 5, ≥3.0 = Уровень 4, ≥2.0 = Уровень 3, ≥1.3 = Уровень 2, иначе Уровень 1
                        </div>
                    </div>
                </div>

                <div class="section">
                    <h2>Шкала воздействия</h2>
                    <div class="impact-scale">
                        <div class="scale-item <?= $current_value == 1 ? 'active' : '' ?>">
                            <div class="scale-value">Уровень 1</div>
                            <div class="scale-description"><strong>Нормальная активность</strong><br><small>Спорадические атаки</small></div>
                        </div>
                        <div class="scale-item <?= $current_value == 2 ? 'active' : '' ?>">
                            <div class="scale-value">Уровень 2</div>
                            <div class="scale-description"><strong>Повышенная активность</strong><br><small>Регулярные атаки</small></div>
                        </div>
                        <div class="scale-item <?= $current_value == 3 ? 'active' : '' ?>">
                            <div class="scale-value">Уровень 3</div>
                            <div class="scale-description"><strong>Высокая активность</strong><br><small>Координированные атаки</small></div>
                        </div>
                        <div class="scale-item <?= $current_value >= 4 ? 'active' : '' ?>">
                            <div class="scale-value">Уровень 4-5</div>
                            <div class="scale-description"><strong>Критическая активность</strong><br><small>Кибервойна</small></div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="sidebar">
                <div class="section">
                    <h2>Вес в индексе</h2>
                    <div class="info-card">
                        <div style="text-align: center;">
                            <div style="font-size: 3rem; font-weight: bold; color: #e74c3c;">4.4%</div>
                            <div style="font-size: 1.2rem;">Девятый по значимости фактор</div>
                            <div style="margin-top: 1rem; font-size: 0.9rem; color: #7f8c8d;">
                                Текущий вклад: <?= number_format($current_score, 1) ?>/10
                            </div>
                        </div>
                    </div>
                </div>

                <div class="section">
                    <h2>Пороги тревоги</h2>
                    <div class="info-card warning">
                        <p><strong>AAL 5 (Норма):</strong> Уровень 1</p>
                        <p><strong>AAL 4 (Повышенная):</strong> Уровень 2</p>
                        <p><strong>AAL 3 (Высокая):</strong> Уровень 3</p>
                        <p><strong>AAL 2 (Критическая):</strong> Уровень 4</p>
                        <p><strong>AAL 1 (Максимальная):</strong> Уровень 5</p>
                        <div style="margin-top: 1rem; padding: 0.5rem; background: <?= $threat_color ?>20; border-radius: 5px;">
                            <strong>Текущий уровень: <?= $current_value ?></strong> (AAL <?= 6 - $current_value ?>)
                        </div>
                    </div>
                </div>

                <div class="section">
                    <h2>Ключевые показатели</h2>
                    <div class="info-card">
                        <p><strong>Активных атак:</strong> <?= $debug_info['active_attacks'] ?> из <?= count($current_attacks) ?></p>
                        <p><strong>Высокоуровневых атак:</strong> <?= $debug_info['high_level_attacks'] ?></p>
                        <p><strong>Критических целей:</strong> <?= $statistics['critical_targets'] ?></p>
                        <p><strong>Групп высокой активности:</strong> <?= $debug_info['high_activity_actors'] ?></p>
                    </div>
                </div>

                <div class="section">
                    <h2>Проверка расчета</h2>
                    <div class="info-card" style="background: #d4edda; border-color: #c3e6cb;">
                        <p><strong>Расчет верен:</strong></p>
                        <p>• Взвешенный вес атак: <?= $statistics['avg_attack_weight'] ?></p>
                        <p>• Комбинированный балл: <?= $statistics['combined_score'] ?></p>
                        <p>• Уровень угрозы: <?= $current_value ?></p>
                        <p>• Все данные согласованы</p>
                        <div style="margin-top: 1rem; padding: 0.5rem; background: #c3e6cb; border-radius: 5px;">
                            <strong>Результат: Уровень <?= $current_value ?></strong>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="data-quality">
            Последнее обновление: <?= date('d.m.Y H:i:s', strtotime($last_update)) ?> |
            Проверенный алгоритм расчета | 
            Уровень угроз: <?= $current_value ?>/5 (реалистичная оценка)
        </div>
    </div>
</body>
</html>