MySQL - бұл веб-қосымшалар мен корпоративтік жүйелерде кеңінен қолданылатын ең танымал дерекқорды басқару жүйелерінің (ДББЖ) бірі.
Дегенмен, кез келген бағдарламалық жасақтама сияқты, MySQL да деректердің бұзылуына немесе рұқсат етілмеген операцияларды орындауға мүмкіндік беретін осалдықтар болуы мүмкін.
MySQL уязвимдықтарын басқару деректер базасының қауіпсіздігін қамтамасыз ету үшін ықтимал тәуекелдерді анықтауды, бағалауды және жоюды қамтиды.
Бұл мақалада біз MySQL-дің уязвимдықтарын басқарудың негізгі әдістерін қарастырамыз, техникалық терминдер мен егжей-тегжейлі код мысалдарын қолданамыз.
MySQL уязвимдықтарының түрлері
1. Конфигурация осалдықтары
MySQL параметрлерінің дұрыс конфигурацияланбауы рұқсатсыз қол жеткізу, SQL-инъекциялар және деректердің ағып кетуі сияқты түрлі шабуылдарға әкелуі мүмкін.
2. Бағдарламалық жасақтама осалдықтары
MySQL немесе пайдаланылатын модульдердің кодындағы қателер шабуылдаушыларға ерікті кодты орындауға, деректерге қол жеткізуге немесе жүйенің жұмысына кедергі келтіруге мүмкіндік беруі мүмкін.
3. Қолданбалы деңгейдегі осалдықтар
MySQL-пен өзара әрекеттесетін қолданбалардағы осалдықтар деректер базасының бұзылуына әкелуі мүмкін.
MySQL уязвимдықтарын басқару
1. MySQL-ді жаңарту
MySQL-ді ең соңғы тұрақты нұсқаға тұрақты түрде жаңарту - белгілі осалдықтардан қорғаудың алғашқы қадамы.
Debian-based жүйелерінде жаңарту
sudo apt update
sudo apt upgrade mysql-server
Red Hat-based жүйелерінде жаңарту
sudo yum update mysql-server
2. Конфигурацияны орнату
MySQL конфигурациялық файлдарын дұрыс орнату тәуекелдерді айтарлықтай азайта алады. Негізгі конфигурация аспектілерін қарастырайық.
Қауіпсіз конфигурация параметрлері
my.cnf
конфигурациялық файлында келесі параметрлерді орнату ұсынылады:
[mysqld]
# Шабуылдардың алдын алу үшін қосылымның бос тұру уақытын қысқарту
wait_timeout = 600
interactive_timeout = 600
# root пайдаланушысының қашықтан қол жеткізуін болдырмау
bind-address = 127.0.0.1
# Күшті құпия сөздерді пайдалануды міндеттеу
validate_password_policy = MEDIUM
validate_password_length = 14
validate_password_mixed_case_count = 1
validate_password_number_count = 1
validate_password_special_char_count = 1
# Өнімділік пен қауіпсіздікті талдау үшін баяу сұрауларды журналға түсіру
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2
# Қателер журналдары мониторинг және түзету үшін
log_error = /var/log/mysql/mysql-error.log
# Файлдарды жүктеу арқылы шабуылдардың алдын алу үшін жергілікті файлдарды жүктеуді өшіру
local_infile = 0
# Репликацияны қауіпсіз басқару
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_format = ROW
sync_binlog = 1
3. Пайдаланушыларды және қол жеткізуді басқару
Пайдаланушылар мен олардың артықшылықтарын дұрыс басқару - MySQL қауіпсіздігінің негізгі аспектісі.
Минималды артықшылықтары бар пайдаланушыларды жасау
Минималды қажетті артықшылықтары бар пайдаланушыларды жасау:
CREATE USER 'limited_user'@'localhost' IDENTIFIED BY 'Str0ngP@ssw0rd!';
GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'limited_user'@'localhost';
FLUSH PRIVILEGES;
root құпия сөзін өзгерту
Қауіпсіздікті арттыру үшін root құпия сөзін өзгерту:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'N3wStr0ngP@ssw0rd!';
FLUSH PRIVILEGES;
Артықшылықтарды басқару
Пайдаланушылардың артықшылықтарын тұрақты түрде тексеру және басқару:
SHOW GRANTS FOR 'user'@'localhost';
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost';
GRANT SELECT, INSERT, UPDATE ON database_name.* TO 'user'@'localhost';
4. Деректерді шифрлау
MySQL деректерін шифрлау сервердің бұзылуы жағдайында ақпаратты қорғауға көмектеседі.
Деректерді шифрлауды қосу
Кесте деңгейінде және бүкіл сақтау қоймасында шифрлауды орнату:
CREATE TABLE secure_table (
id INT NOT NULL,
sensitive_data VARBINARY(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ENCRYPTION='Y';
Бүкіл дерекқорды шифрлауды қосу:
[mysqld]
early-plugin-load=keyring_file.so
keyring_file_data=/var/lib/mysql-keyring/keyring
Keyring плагинін инициализациялау:
INSTALL PLUGIN keyring_file SONAME 'keyring_file.so';
5. Мониторинг және журнал жүргізу
Тұрақты мониторинг және журналдарды талдау күдікті әрекеттерді анықтауға көмектеседі.
Журнал жүргізуді орнату
my.cnf
файлына журнал жүргізуді орнату:
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/mysql-general.log
log_queries_not_using_indexes = 1
log_warnings = 2
Мониторинг құралдарын пайдалану
MySQL күйін бақылау және аномалияларды анықтау үшін Zabbix, Prometheus немесе Percona Monitoring and Management (PMM) сияқты мониторинг құралдарын пайдалану.
# PMM клиентін серверге орнату
sudo yum install pmm2-client
# MySQL инстансын PMM-де тіркеу
pmm-admin config --server-insecure-tls --server-url=https://admin:password@pmm-server:443
pmm-admin add mysql --username=pmm --password=password --host=localhost
6. Сақтық көшірмелер жасау және қалпына келтіру
Деректердің тұрақты сақтық көшірмелерін жасау инцидент жағдайында жылдам қалпына келуге көмектеседі.
mysqldump көмегімен сақтық көшірмелер жасау
mysqldump --user=root --password=Str0ngP@ssw0rd! --host=localhost --all-databases --single-transaction --quick --lock-tables=false > /path/to/backup.sql
Деректер қорын қалпына келтіру
mysql --user=root --password=Str0ngP@ssw0rd! --host=localhost < /path/to/backup.sql
7. Осалдықтарды анықтау және жою
Осалдықтарға сканерлеу
MySQL-де осалдықтарды анықтау үшін SQLMap немесе Nessus сияқты сканерлеу құралдарын пайдалану.
# Осалдықтарды сканерлеу үшін SQLMap пайдалану мысалы
sqlmap -u "http://example.com/vulnerable.php?id=1" --dbms=mysql --batch --risk=3 --level=5
Патчинг және жаңарту
Табылған осалдықтарды жою үшін патчтарды және жаңартуларды орнату.
Қорытынды
MySQL уязвимдықтарын басқару - бұл бағдарламалық жасақтаманы үнемі жаңартуды, конфигурацияны орнатуды, қол жеткізуді басқаруды, деректерді шифрлауды, мониторингті және сақтық көшірмелерді жасауды қамтитын үздіксіз процесс.
Ұсынылған ұсыныстар мен тәжірибелерді ұстана отырып, сіз өзіңіздің дерекқорыңыздың қауіпсіздігін айтарлықтай арттырып, оны ықтимал қауіптерден қорғай аласыз.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- oVirt гипервизорын қорғау — терең талдау
- oVirt жүйесінен Proxmox жүйесіне виртуалды машинаны көшіру
- Proxmox-тан oVirt-ке виртуалды машинаны көшіру
- Kubernetes контейнерлерін қорғау — терең талдау
- Proxmox гипервизорын бұзудан қалай қорғауға болады - Терең талдау
- Fail2Ban-ды oVirt жүйесін қорғауда қолдану - Терең талдау
- oVirt гипервизорын сақтандыруды ұйымдастыру — Терең талдау
- Виртуалды машинаны гипервизорлар арасында Proxmox арқылы көшіру
- Proxmox гипервизорын виртуалды машиналардың оңтайлы жұмысын қамтамасыз ету үшін конфигурациялау
- Proxmox-те SSH арқылы root құқықтарының бұзылуынан қорғау: терең талдау