>
>
>
V5318. OWASP. Setting POSIX file permis…


V5318. OWASP. Setting POSIX file permissions to 'all' or 'others' groups can lead to unintended access to files or directories.

Анализатор обнаружил, что в приложении файлам задаются свободные права доступа, а именно доступ группе others.

Уязвимости, связанные с заданием свободных прав доступа к файлам, могут быть отнесены к следующей категории OWASP Top 10 2021:

Группа others относится ко всем пользователям и группам (кроме владельца ресурса). Установка этой группе прав к ресурсу может привести к возможности несанкционированного доступа.

Рассмотрим пример:

public void example() throws IOException {
    Path path = Path.of("/path/to/resource");
    Files.setPosixFilePermissions(
        path, 
        PosixFilePermissions.fromString("rwxrwxrwx")
    );
}

В этом примере к ресурсу по пути path получает доступ (чтение, запись и исполнение) не только владелец, но и все остальные пользователи. Это нарушает принцип минимальных привилегий.

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

Даже если это не критический ресурс, безопасным вариантом является установка прав на файл пользователю и группе, но не others:

public void example() throws IOException {
    Path path = Path.of("/path/to/resource");
    Files.setPosixFilePermissions(
        path, 
        PosixFilePermissions.fromString("rwxrwx---")
    );
}

Анализатор также сформирует предупреждение на вызов команды chmod с установкой свободных прав:

public void example() throws IOException {
    Runtime.getRuntime().exec("chmod a+rw resource.json");
}

Аргумент a+rw означает добавление (+) прав чтения и записи (rw) для всех (a). Безопасным же вариантом является, например, следующая команда:

public void example() throws IOException {
    Runtime.getRuntime().exec("chmod o-rwx,u+rw resource.json");
}

В этом варианте у группы 'others' удаляются все права, а права на чтение и запись выдаются лишь пользователю.