SQLi 취약점 및 SELinux

SQLi 취약점 및 SELinux

SQLi 취약 웹 애플리케이션이 SELinuxLinux 시스템에서 강제 모드로 실행되고 있다고 가정해 보겠습니다. MariaDB는 루트가 아닌 사용자로 실행됩니다(예: ) db_user. 우리가 SQLi 취약점을 악용하려고 시도하고 INTO OUTFILE서버의 웹 루트에 악성 PHP 파일을 생성하려고 한다고 가정해 보겠습니다 (현재 위치가 그곳이라고 가정). AFAIK 웹 서버는 www-root와 같은 자체 사용자 컨텍스트에서 실행되어야 합니다. SELinux는 이 악성 파일이 웹 루트에 기록되는 것을 방지합니까? 로그 파일에서 이 시도를 볼 수 있습니까? 그렇다면 보러 가볼까?

감사합니다!

답변1

저는 SELinux 전문가는 아니지만(AppArmor를 사용합니다) 일반적으로 이렇게 말하고 싶습니다.할 수 있는이러한 공격을 방지하지만 이는 구성에 따라 다릅니다.

일반적으로 SELinux는 SQL Server /var/lib/mysql/var/log/mysql. 이러한 장소에서는 안전하지 않은 애플리케이션이 해당 파일 및 디렉터리에 액세스하기 전에 갈 수 있는 곳이 없습니다(그리고 Unix 권한 또는 SELinux를 통해 중지해야 합니다).

이러한 규칙을 위반하려는 시도는 로그 파일에 기록되며 auditd위치는 배포에 따라 달라집니다.

그러나 여기에는 몇 가지 주의 사항이 있습니다.

  • INTO OUTFILE이로 인해 애플리케이션 내 사용이 크게 제한됩니다.
  • 공격자가 SQL 주입에 액세스하여 출력 파일을 생성하는 경우 다양한 선택 항목을 작성하고 애플리케이션에서 데이터를 스크랩하는 등 다양한 방법으로 데이터를 얻을 수도 있습니다. 더 많은 작업이 필요하지만 상당히 자동화될 수 있습니다.

그렇습니다. 올바르게 구성하면 이러한 공격을 방지할 수 있지만 일반적으로 SQL 주입 공격은 방지하지 못하고 SQL 주입 공격에 의존하는 공격만 방지합니다.INTO OUTFILE

관련 정보