Софтуерът може да предостави сложна функционалност на неидентифицирани потребители дори когато тази функционалност е деактивирана или ненужна. Екипът Frontier Red Team на Anthropic използва Claude за анализ на 25 проекта с отворен код и докладва 493 проблема, свързани с ненужно излагане на код, конфликтни настройки и изпълнение на код преди извършването на проверки за сигурност.

Намаляването на повърхността за атака означава ограничаване на частите от софтуера, до които даден атакуващ може да достигне. Вместо да чакат откриването на уязвимост, разработчиците могат да ограничат достъпа до ненужни функции или да преместят проверките за сигурност преди сложната обработка на данни.

Ненужно излагане на код и конфликтни настройки за сигурност

Изследването се фокусира върху три типа излагане: код, достъпен при настройки по подразбиране, въпреки че не изпълнява никаква предвидена функция по подразбиране; комбинации от настройки, които отслабват защитите; и критичен за сигурността или сложен код, който се изпълнява преди съответната проверка за сигурност, потребителско взаимодействие или преход в състоянието на протокола.

Намаляване на повърхността за атака от Anthropic

Разпределение на откритите проблеми по категории за всяка техника. (Източник: Anthropic)

Всички 11 проекта, предназначени да ограничават функционалността само до удостоверени потребители, са съдържали код, който неволно е бил достъпен преди автентикация. От Anthropic заявиха, че констатациите в тази група не са пряко експлоатируеми сами по себе си, но увеличават повърхността за атака, достъпна за потенциални атакуващи.

Взаимодействията между конфигурациите са довели до някои от най-значимите констатации. В анализираните проекти Claude идентифицира 162 комбинации от конфигурации, критични за сигурността, които се приемат без грешки, предупреждения или документация, обясняваща общото им поведение. В 94 случая настройките тихо са деактивирали мерките за контрол на сигурността.

В четири несвързани проекта правилата за достъп, базирани на имена на хостове (hostname), са зависели от отделна настройка за обратни DNS справки (reverse DNS lookups). При деактивирани справки сървърът е сравнявал правилото за име на хост с IP адреса на клиента. Поради това забраняващите правила, базирани на хост имена, не са съвпадали, позволявайки връзки, които администраторите са възнамерявали да блокират.

В друг пример две настройки са довели до това сървър, конфигуриран да изисква клиентски сертификати, да приема връзки от всеки. Администраторите не са получавали никакво предупреждение, че изискването за сертификат е отпаднало. Според Anthropic конфликтните опции са съществували в софтуера в продължение на 21 години.

„Тези техники не премахват неизвестните уязвимости в кода, но правят уязвимостите по-трудни за достигане“, написа Крис Ролф от Anthropic.

Намаляване на повърхността за атака на OpenSSH

В OpenSSH, който осигурява защитен отдалечен достъп, Claude идентифицира приблизително 4500 реда експериментален криптографски код, до който неавтентикирани клиенти биха могли да достигнат, дори когато администраторите изрично са изключили алгоритъма.

Кодът внедрява ML-DSA-44 – постквантов алгоритъм за подпис. OpenSSH е обработвал предоставения ключ, преди да провери дали неговият тип е разрешен.

Anthropic докладва проблема на поддръжниците на OpenSSH и предостави корекции за сигурност. OpenSSH 10.5 премести проверката преди синтактичния анализ (parsing), но впоследствие Claude откри две нови слабости: клиент би могъл да представи невярно типа на ключа, а обработката на сертификати все още би могла да достигне до кода за проверка на подписа преди съответните конфигурационни проверки.

Anthropic си сътрудничи с поддръжниците по по-нататъшни промени, които поставиха проверки вътре в самия парсер. Те проверяват кодирания тип ключ и алгоритъма за подписване на сертификата спрямо конфигурираните списъци с разрешени алгоритми преди съответната обработка.

Промените, въведени в OpenSSH 10.6, намалиха кода на OpenSSH, достъпен преди автентикация, с приблизително една пета в компилация по подразбиране. Ползата идва от ограничаването на ненужния достъп, без да е необходимо откриването на конкретна уязвимост в този код.

Как Anthropic приложи подхода

Anthropic обедини техниките в умение за многократна употреба за Claude, което работи по интегрирането в OSS Scanner – своята безплатна услуга за сканиране за сигурност на проекти с отворен код (opt-in).

Умението проверява за ненужен код, изложен по подразбиране, функционалност, достъпна преди автентикация или други защитни механизми, както и комбинации от настройки, които тихо отслабват защитите.

Claude верифицира констатациите чрез динамични следи от изпълнението. За констатации при конфигурации по подразбиране моделът прилага предложените защитни бариери и сравнява модифицираните компилации с базовата версия, като използва собствените тестове на проекта и пакет от регресионни тестове от типа „черна кутия“. Резултатите трябва да останат идентични.

Всяка защитна проверка, която би променила поведението при конфигурация, различна от тази по подразбиране, се отделя за преглед от човек. За останалите проверки Claude предлага промени като преместване на конфигурационна проверка, налагане на правилен ред на състоянията на протокола или отхвърляне на конфликтни настройки.

Подходът може да бъде разширен и отвъд анализа на код. От Anthropic споделят, че Claude може да сравнява системните дневници по време на изпълнение с конфигурациите, за да идентифицира ненужна функционалност, като например неизползвани парсери, остарели протоколи и табла за управление, които операторите могат да деактивират, за да намалят риска за сигурността.