Перейти к содержанию

MitM и DOS атаки на домены с использованием дублирующих сертификатов


Рекомендуемые сообщения

HTTPS-сертификаты — одна из основ безопасности в Интернете. Однако с ними все не так гладко, как хотелось бы. Мы уже говорили о том, почему существующая система не всегда обеспечивает безопасность на стороне пользователей. Теперь обсудим, что может пойти не так на стороне владельцев сайтов.

 

residual-certificates-mitm-dos-featured-

 

Два действительных сертификата для одного и того же домена

 

За регистрацию доменов и выдачу HTTPS-сертификатов, как правило, отвечают разные организации. Поэтому срок действия регистрации домена и сертификата совершенно не обязательно совпадает. В итоге возникают ситуации, когда и бывший, и текущий владельцы одновременно имеют по действующему сертификату для одного и того же домена.

Что тут может пойти не так, и насколько часто данная проблема встречается в реальной жизни? На конференции DEF CON 26 исследователи Иэн Фостер и Дилан Эйри представили доклад, посвященный данной проблеме. Из него следует, что а) неприятностей на самом деле даже больше, чем может показаться на первый взгляд, и б) встречается данная проблема на удивление часто.

Наиболее очевидная из неприятностей, которые могут случиться, когда у кого-то еще есть действующий сертификат на принадлежащий вам домен — это атака типа «человек посередине» на пользователей вашего сайта.

Используя базу сертификатов проекта Certificate Transparency, Фостер и Эйри провели анализ и обнаружили, что пересечение сертификатов встречается в 1,5 миллиона случаев — это, на секундочку, почти 0,5% всего Интернета. Причем для четверти из этих пересечений предыдущий сертификат все еще действует — то есть 375 тысяч доменов уязвимы для атаки «человек посередине».

 

 

Читать далее >>

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • KL FC Bot
      Автор KL FC Bot
      Чуть больше года назад в посте Google OAuth и фантомные аккаунты мы уже обсуждали, что использование опции «Вход с аккаунтом Google» в корпоративные сервисы дает возможность сотрудникам создавать фантомные Google-аккаунты, которые не контролируются администратором корпоративного Google Workspace и продолжают работать после оффбординга. Недавно выяснилось, что это не единственная проблема, связанная с OAuth. Из-за недостатков этого механизма аутентификации любой желающий может получить доступ к данным многих прекративших деятельность организаций, перерегистрировав на себя брошенные компаниями домены. Рассказываем подробнее об этой атаке.
      Как работает аутентификация при использовании «Вход с аккаунтом Google»
      Некоторые могут подумать, что, доверяя опции «Вход с аккаунтом Google», компания получает надежный механизм аутентификации, использующий продвинутые технологии Google и широкие возможности интернет-гиганта по мониторингу пользователей. Однако на деле это не так: при входе с Google OAuth применяется достаточно примитивная проверка. Сводится она, как правило, к тому, что у пользователя есть доступ к почтовому адресу, который привязан к Google Workspace организации.
      Причем, как мы уже говорили в предыдущем материале о Google OAuth, это вовсе не обязательно Gmail — ведь привязать Google-аккаунт можно совершенно к любой почте. Получается, что при использовании «Входа с аккаунтом Google» доступ к тому или иному корпоративному сервису защищен ровно настолько надежно, насколько защищен почтовый адрес, к которому привязан Google-аккаунт.
      Если говорить несколько более подробно, то при аутентификации пользователя в корпоративном сервисе Google OAuth отправляет этому сервису следующую информацию:
      В теории в ID-токене Google OAuth есть уникальный для каждого Google-аккаунта параметр sub, но на практике из-за проблем с его использованием сервисы проверяют лишь домен и адрес электронной почты. Источник
       
      View the full article
    • Sandynist
      Автор Sandynist
      Добрый день! 
       
      Каждый раз при открытии Алика (https://aliexpress.ru/) такая вот картинка.
       
      Событие: Обнаружено SSL-соединение c недействительным сертификатом Тип пользователя: Не определено Имя приложения: opera.exe Путь к приложению: C:\Users\Home7\AppData\Local\Programs\Opera Компонент: Интернет-защита Описание результата: Запрещено Имя объекта: rap.skcrtxr.com Причина: Этот сертификат или один из сертификатов в цепочке устарел.  И непонятно — это что? И что с этим всем делать?

    • Vitekzz
      Автор Vitekzz
      Хочу создать программу для автоматизации работы с KSC c помощью KlAkOAPI при запуске проверочного кода для загрузки информации об обновлениях постоянно выходит ошибка о использовании самоподписанного сертификата, которую не получается убрать, как можно решить данную проблему?
      Вот сам код программы:
       
      from KlAkOAPI.AdmServer import KlAkAdmServer
      from KlAkOAPI import Updates
      from datetime import timedelta
      import urllib3
      import ssl  # Импортируем модуль ssl
      import json
       
      username = 'KLAPI'
      password = '1234QwZ'
      KSC_LIST = {
          'WINDOWS': 'https://127.0.0.1:13299'
      }
      def ConnectKSC(ip):
          """Подключается к серверу Kaspersky Security Center."""
          while True:
              try:
                  connect = KlAkAdmServer.Create(ip, username, password, verify=False, vserver='')
                  if connect:
                      print('Успешно подключился к {}'.format(ip))
                  else:
                      print('Ошибка подключения к {}'.format(ip))
                      return None  # Возвращает None, если подключение не удалось. Не завершает программу.
                  return connect
              except Exception as e:
                  print(f"Ошибка подключения: {e}")
                  return None # Возвращает None, если подключение не удалось
      def get_status_hosts(server, ip):
          """Получает и печатает информацию о статусе обновлений для сервера KSC."""
          urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
          params = []  #  params не используется
          if server is not None:
              try:
                  # Создаем SSL-контекст, который не проверяет сертификаты
                  context = ssl.create_default_context()
                  context.check_hostname = False
                  context.verify_mode = ssl.CERT_NONE
                  # Модифицируем объект сессии для отключения проверки SSL
                  server.session.verify = False  # Отключаем проверку глобально для сессии
                  server.session.cert = None  # Удаляем существующий сертификат
                  straccessor = Updates.KlAkUpdates(server).GetUpdatesInfo(pFilter=params)  # Нет аргумента ssl_context
                  ncount = straccessor.RetVal()
                  if ip == KSC_LIST['WINDOWS']:
                      if 1 in ncount:  # Проверяем, что индекс существует
                          data = ncount[1]
                          print('')
                          print('KSC ======== [ {} ] ========'.format(KSC_LIST['WINDOWS']))
                          print('Дата создания: {}'.format(data['Date'] + timedelta(hours=3)))
                          print('Дата получения: {}'.format(data['KLUPDSRV_BUNDLE_DWL_DATE'] + timedelta(hours=3)))
                          print('============================')
                      else:
                          print("Не удалось получить данные для WINDOWS KSC")
                  else:
                      print(f"Неизвестный IP-адрес KSC: {ip}")  # Добавлена проверка на некорректный IP-адрес KSC
              except Exception as e:
                  print(f"Ошибка при получении информации об обновлениях с {ip}: {e}")
          else:
              print('Ошибка доступа к серверу')  # Это сообщение может вводить в заблуждение, если подключение к серверу не удалось во время ConnectKSC.
      if __name__ == '__main__':  # Исправлена ошибка 'name' на '__name__'
          for ip in KSC_LIST.values():
              server = ConnectKSC(ip)
              if server:  # Продолжаем только если подключение успешно
                  try:
                      get_status_hosts(server, ip)
                  except Exception as e:
                      print(f"Ошибка в get_status_hosts для {ip}: {e}")
              else:
                  print(f"Не удалось подключиться к {ip}. Пропускаем проверку статуса обновлений.")  # Добавлено сообщение, если подключение не удалось.
      Ошибка которая появляется при запуске кода:
       
      Успешно подключился к https://127.0.0.1:13299
      C:\Users\user\PycharmProjects\ksc\.venv\Lib\site-packages\urllib3\connectionpool.py:1097: InsecureRequestWarning: Unverified HTTPS request is being made to host '127.0.0.1'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#tls-warnings
        warnings.warn(
      Не удалось получить данные для WINDOWS KSC
      Process finished with exit code 0
       
       
    • Анди25
      Автор Анди25
      День добрый,
       
      Сменился сервер и имя, из бэкап восстановил, но все сертификаты естественно указывают на прежний.
      Подскажите как сертификат сменить непосредственно на Kaspersky Security Center (не для работы мобильных клиентов и web, они легко меняются через mmc)
       
      Нашел описание по утилите klsetsrvcert, но чего-то не хватает, не проходит создание.
      "C:\Program Files (x86)\Kaspersky Lab\Kaspersky Security Center\klsetsrvcert.exe" -t C -i C:\0\klserver.cer -p testpass -o NoCA
    • rcbsbss
      Автор rcbsbss
      Сегодня были зашифрованы сервера и компьютеры входящие в домен. В результате при включении компьютера появляется сообщение "Обратитесь в телеграмм...". Пользователь телеграмм @dchelp. Был установлен антивирус Касперского с новыми базами, он пропустил. Сервер Касперского также был заражен. Просим помочь!!!
×
×
  • Создать...