티스토리 뷰
최근 회사 협업툴로만 내용을 작성했는데
회사 선배님이 블로그를 열심히 쓰셔서 나도 한번 작심삼일(?) 시작해 본다.
배경
인프라 취약점 진단 중 MySQL에 대해 감사 로그를 설정하지 않은 자산이
'취약'으로 도출되었고, 이에 대해 조치가 필요함.
취약점 진단 도구에 의해 담당자에게 조치방안이 maria DB 플러그인인 server_audit.log로 안내되었고
해당 DB는 MySQL community 5.7.41 버전을 사용하는데, 담당자는 다음과 같은 문제를 제기함.
- mysql community 버전을 사용하고 있어 mysql Enterprise와 같이 감사 로깅 기능이 제공되지 않음
- server_audit.log는 maria DB 플러그인으로 mysql과 뿌리는 같이하나 정상적인 로깅 방식인지?
- 인터넷망에 오픈된 자유로운 테스트 DB 서버로, 감사 로그를 설정해야하는 타당성이 무엇인지?
다양한 문서 참고 시 해당 버전은 server_audit.log 플러그인이 호환되지 않는다는 글도 있어..
이에 명확한 가이드를 위해 본 글을 작성하게 됨.
To Do
✅ POC 서버(Centos 7)에 MySQL community 5.7 설치
✅ server_audit.log 플러그인의 설치 및 감사 로그 설정이 가능한지 확인
✅ 불가 시 대체 방안 확인
수행1. POC 서버(Centos 7)에 MySQL community 5.7 설치
OS나 MySQL 버전에 따라 설치 및 설정방법이 달라서 고생하던 중 아래 블로그를 발견해서 좋았다.
또한 서버에 여러 MySQL 버전이 설치된 경우 의존성 문제로 오류 발생할 수 있음
수행2. server_audit.log 플러그인의 설치 및 감사 로그 설정이 가능한지 확인
플러그인 경로 확인
mysql> show global variables like 'plugin_dir%'; +---------------+--------------------------+ | Variable_name | Value | +---------------+--------------------------+ | plugin_dir | /usr/lib64/mysql/plugin/ | +---------------+--------------------------+ 1 row in set (0.00 sec)
maria DB 플러그인 설치
wget [https://downloads.mariadb.org/f/mariadb-5.5.68/bintar-linux-x86\_64/mariadb-5.5.68-linux-x86\_64.tar.gz/from/http%3A//mirror.mephi.ru/mariadb/?serve](https://downloads.mariadb.org/f/mariadb-5.5.68/bintar-linux-x86_64/mariadb-5.5.68-linux-x86_64.tar.gz/from/http%3A//mirror.mephi.ru/mariadb/?serve)
tar -xvf 다운로드 파일
플러그인 파일을 /usr/lib64/mysql/plugin/에 복사
cp 다운로드폴더/server\_audit.so /usr/lib64/mysql/plugin/
실행 권한 다른 so파일과 동일하게 부여
chmod 755 ./server_audit.so
mysql 접속 후 플러그인 설치
mysql>INSTALL PLUGIN server_audit SONAME 'server_audit.log';
❌ 결과. 버전 호환 불가 ❌
ERROR 1126 (HY000): Can't open shared library '/usr/lib64/mysql/plugin/audit_log.so' (errno: 2 /usr/lib64/mysql/plugin/audit_log.so: undefined symbol: plugin_thdvar_safe_update)
수행3. 불가 시 대체 방안 확인
대체1. Percona Server 사용 ❌ 결과. 버전 호환 불가 ❌
Percona Server는 mysql을 위해 audit 기능을 사용할 수 있도록 만들어진 플러그인으로
플러그인명은 audit_log.so, 다운로드 및 플러그인 설치 과정은 동일
wget https://downloads.percona.com/downloads/Percona-Server-5.7/Percona-Server-5.7.43-47/binary/tarball/Percona-Server-5.7.43-47-Linux.x86_64.glibc2.17.tar.gz?_gl=1*9moaav*_gcl_au*MTIyMzIxNDYxOS4xNjk3MTE4NTA0
tar -xvf 다운로드 파일
cp ./audit_log.so /usr/lib64/mysql/plugin
ERROR 1126 (HY000): Can't open shared library '/usr/lib64/mysql/plugin/audit_log.so' (errno: 2 /usr/lib64/mysql/plugin/audit_log.so: undefined symbol: plugin_thdvar_safe_update)
대체2. Mcafee 플러그인 사용 ❌ 결과. 버전 호환 불가 ❌
대체로 mysql 버전과 호환성이 좋다고 하여 시도.
플러그인명은 libaudit_plugin.so, 플러그인 설치 과정 다소 상이
wget https://github.com/trellix-enterprise/mysql-audit/releases/download/v1.1.13/audit-plugin-mariadb-10.0-1.1.13-1008-linux-x86_64.zip
unzip 다운로드 파일
ERROR 1126 (HY000): Can't open shared library '/usr/lib64/mysql/plugin/libaudit_plugin.so' (errno: 2 /usr/lib64/mysql/plugin/libaudit_plugin.so: undefined symbol: _ZN11Query_cache21send_result_to_clientEP3THDPcj)
그 외
mysql Enterprise 사용, mysql 호환 가능 버전으로 변경 등..
현 상황에서는 어려운 대안으로 남아있음.
우짜꼬....🤦💧
참고자료
https://hoing.io/archives/3178#MariaDB_Plugin](https://hoing.io/archives/3178#MariaDB_Plugin)
https://support.kaspersky.com/kuma/2.1/en-US/258753.htm](https://support.kaspersky.com/kuma/2.1/en-US/258753.htm)
https://forums.percona.com/t/audit-log-no-longer-works-with-mysql-5-7/6412](https://forums.percona.com/t/audit-log-no-longer-works-with-mysql-5-7/6412)
https://severalnines.com/blog/using-mariadb-audit-plugin-database-security/](https://severalnines.com/blog/using-mariadb-audit-plugin-database-security/)
https://mariadb.com/kb/en/mariadb-audit-plugin-log-settings/](https://mariadb.com/kb/en/mariadb-audit-plugin-log-settings/)
https://mariadb.com/resources/blog/introducing-the-mariadb-audit-plugin/](https://mariadb.com/resources/blog/introducing-the-mariadb-audit-plugin/)
등 많은 자료를 참고하였으나 정확한 CentOS 버전과 mysql 버전에 상응하는 자료는 전무하였음.
호환이 되지 않는다는 커뮤니티 여러 글에도 답변이 없으며..
mysql jira에도 no solved로 종료된 티켓이거나 패치한 상위 버전에서 사용 가능할 뿐.
도전은 즐겁지만 미해결은 괴롭다.
- Thanks for comming.
- 오늘은
- 명이 방문했어요
- 어제는
- 명이 방문했어요