Исследователи безопасности Ян Кэрролл и Сэм Карри рассказали, что обнаружили уязвимость в системах входа в базы, которые Управление транспортной безопасности (Air Transport International) США использует для проверки членов экипажа авиакомпании на контрольно-пропускных пунктах аэропорта. Ошибка позволяла любому человеку с «базовыми знаниями об инъекциях SQL» добавлять себя в списки, чтобы попасть в кабину коммерческого самолёта.
Исследователи обнаружили уязвимость во время проверки стороннего веб-сайта поставщика FlyCASS, который предоставляет небольшим авиакомпаниям доступ к системе Known Crewmember (KCM) Управления и системе безопасности доступа в кабину (CASS). KCM — это программа TSA, которая позволяет пилотам и бортпроводникам обходить досмотр даже при личных полётах. Для этого им нужно предъявить штрихкод KCM или сообщить агенту TSA свой номер сотрудника и авиакомпанию. Затем сотрудник может получить доступ в стерильную зону без какой-либо проверки. Похожая система также существует для доступа в кабину (CASS). В большинстве самолётов есть как минимум одно откидное сиденье внутри кабины, расположенное позади летящих пилотов. Когда пилотам нужно добираться на работу или перемещаться по личным делам, они могут использовать данное сиденье. CASS позволяет агенту на выходе на посадку проверить, является ли пассажир авторизованным пилотом.
Дочерняя компания Collins Aerospace ARINC, похоже, заключила контракт с TSA на эксплуатацию системы Known Crewmember. ARINC управляет несколькими центральными компонентами, включая сайтом для пилотов и бортпроводников, чтобы те могли проверять статус KCM, и API для маршрутизации запросов на авторизацию между различными авиакомпаниями. Каждая авиакомпания, по-видимому, использует собственную систему авторизации для участия в KCM и CASS, и она взаимодействует с «хабом» ARINC. TSA и авиакомпании могут отправлять запросы, такие как CockpitAccessRequest и CrewVerificationRequest, в ARINC, который затем направляет их в систему соответствующей авиакомпании и получает ответ. В настоящее время в KCM участвуют 77 авиакомпаний.
В ходе поиска поставщиков, которые фактически управляют системами авторизации, исследователи нашли сайт FlyCASS, который предлагает веб-интерфейс для CASS. Они заметили, что у каждой авиакомпании есть собственная страница входа, например, Air Transport International (8C), доступная по адресу /ati.
Исследователи обнаружили, что при вставке простого апострофа в поле имени пользователя выдаётся ошибка MySQL. Это указывало на то, что имя пользователя было напрямую интерполировано в SQL-запрос входа.
Используя имя пользователя «of ‘ or ‘1’=’1» и пароль «of ‘) OR MD5(‘1’)=MD5(‘1», они смогли войти в FlyCASS как администраторы Air Transport International.
Исследователи отмечают, что «никаких дополнительных проверок или аутентификации» им не потребовалось. По их словам, любой, кто мог воспользоваться уязвимостью, мог предъявить поддельный номер сотрудника, чтобы пройти через контрольно-пропускной пункт KCM.
Чтобы проверить возможность добавления новых пилотов, исследователи создали сотрудника с именем Test TestOnly и произвольной фотографией и авторизовали его для доступа к KCM и CASS.
В апреле исследователи сообщили о проблеме Министерству внутренней безопасности, которое признало её серьёзность. FlyCASS отключили в KCM/CASS, а баги в работе сайта устранили.
После этого, когда зашла речь о раскрытии уязвимости, Министерство внутренней безопасности перестало отвечать исследователям, а пресс-секретарь TSA Р. Картер Лэнгстон заявил, что агентство «не полагается исключительно на эту базу данных для аутентификации членов экипажа и что «только проверенным членам экипажа разрешён доступ в защищенную зону в аэропортах». Однако, как отмечают исследователи, штрих-код KCM не требуется для прохождения контрольно-пропускных пунктов, поскольку агент может вручную ввести идентификатор сотрудника авиакомпании. После того, как они сообщили об этом TSA, там удалили раздел веб-сайта, в котором упоминается ручной ввод идентификатора сотрудника. Тем не менее, соответствующий интерфейс по-прежнему позволяет делать это.
Также, вероятно, возможны несколько других векторов атак. Поскольку уязвимость позволяет редактировать данные существующих участников KCM, то лазейкой можно воспользоваться, чтобы обходить процессы проверки. При получении штрих-кода его можно самостоятельно зарегистрировать в идентификаторе сотрудника на веб-сайте KCM.
Источник новости: habr.com