SQL
injection verilənlər bazası infrastrukturu olan bütün sistemlərdə ən
çox yayılmış kibertəhlükəsizlik təhlükəsidir. Əgər belə bir
infrastrukturunuz varsa, mütləq lazımi tədbirləri görməlisiniz.
Təşkilatınızın
məlumatlarını qorumaq və korporativ məlumatların bütövlüyünü təmin
etmək üçün siz infrastrukturunuzu bu zəifliyə qarşı qorumalısınız.
ABŞ-da
Açıq Veb Tətbiq Təhlükəsizliyi Layihəsi (OWASP) Fondu hər il
kibertəhlükəsizlik təhdidlərinin ilk 10 siyahısını dərc edir. 2020-ci
ildə üçüncü yerdə qərarlaşan SQL injection veb-sayt təhlükəsizliyi
zəiflikləri arasında ən çox seçilən kiberhücum üsullarından biridir.
SQL Injection Nədir?
SQL
Injection nə olduğunu soruşsanız, veb proqram tərəfindən edilən SQL
sorğusuna müdaxilə edərək verilənlər bazasındakı məlumatlara icazəsiz
daxil olmaq üsuluna cavab uyğun olacaq. Bu zəiflik əks halda görmək
mümkün olmayan məlumatlara baxmaq imkanı verir.
Müştəri
sistemə daxil olduqda istifadəçi adı və şifrəni verir və giriş əldə
edir. Bu icazə yalnız öz məlumatlarınızı görməyə icazə verir. SQL
injection metodunda isə təcavüzkar digər istifadəçilərə və veb proqramın
digər məlumatlarına daxil ola bilər. Buradakı SQL injection zəifliyi
ilə təcavüzkar məlumatları ötürə, dəyişdirə və silə bilər. Başqa sözlə,
o, daxil olduğu bütün məlumatları manipulyasiya edə bilir.
Veb
əsaslı tətbiqlərdə qarşılaşdığımız bu zəiflik məlumat oğrularının
istifadə etdiyi ən əsas üsullardan biridir. Vebsaytda hər hansı bir
formanı doldurarkən arxa fonda SQL sorğusu verilənlər bazasına ötürülür.
Burada verilənlər bazası ilə əlaqə qurulur. Qısa zamanda qeyd olunacaq
təhlükəsizlik tədbirləri görülməzsə, verilənlər bazası eyni rabitə
kanalından fərqli SQL sorğusu ilə manipulyasiyaya açıq olur. SQL
injection zəifliyi adlanan bu halda məlumatlarınız asanlıqla başqa yerə
ötürülür.
Mövzunu
daha yaxşı başa düşmək üçün SQL nədir sualının cavabını öyrənərək davam
edə bilərsiniz. SQL Strukturlaşdırılmış Sorğu Dilinin baş hərflərindən
ibarətdir. Türk dilində strukturlaşdırılmış sorğu dili olan SQL; MySQL,
MSSQL, Oracle kimi verilənlər bazalarından məlumat çıxarmağa və emal
etməyə kömək edən sorğu dilidir. Beləliklə, verilənlər bazası
cədvəllərində mövcud olan məlumatlar haqqında başa düşülən məlumat əldə
edirsiniz. Bundan əlavə, mövcud məlumatlara dəyişikliklər edirsiniz.
Məsələn,
sistemdə qeydiyyatdan keçmiş müştərinin mobil telefon nömrəsini
öyrənmək üçün veb proqrama daxil olduğunuz zaman arxa planda mobil
telefon məlumatı üçün verilənlər bazasında SQL sorğusu işləyir. SQL
sayəsində verilənlərin nə olduğu, verilənlərin daxil-çıxışı və
verilənlərdən mənalı məlumatların çıxarılması əməliyyatları asanlıqla
həyata keçirilə bilər.
SQL injection necə işləyir
SQL
injection metodu vebsaytınızda ictimaiyyətə təqdim olunan giriş, əlaqə
kimi formalarda təsirli olur. Yanlış və ya natamam kodlaşdırma ilə
formalara daxil edilmiş mətn və ya sorğu sətirinin əcnəbi tərəfindən
verilənlər bazasına icazəsiz daxil olmasını təmin edir. Veb saytınızdakı
bu cür formalar belə bir hücuma qarşı həssasdır. Bu səhifələrin
təhlükəsizliyinə diqqət yetirməlisiniz. Bu səhifələrdəki ən kiçik
zəiflik şirkətiniz üçün geri dönməz məlumat pozuntularına səbəb ola
bilər.
2020-ci
ildə milyonlarla üzvü olan pulsuz şəkil fondu olan Frepik
istifadəçilərinin məlumatları SQL injection haker üsulu ilə oğurlanıb.
Şirkət 8 milyon istifadəçinin məlumatlarının oğurlandığını, təxminən 3,5
milyon istifadəçinin parollarının da məlumatlar arasında olduğunu
bildirdi. İstər KOBİ, istərsə də korporativ şirkət olsanız belə, belə
bir vəziyyətlə qarşılaşmaq istərdinizmi?
SQL
injection nümunə sorğuları ilə bu problemi daha yaxşı başa düşə
bilərsiniz. Deyək ki, istifadəçi adı və şifrə ilə girişi təmin edən
proqrama giriş səhifəniz var. Fərz edək ki, istifadəçi proqrama
“orxan.135” parolu ilə yanaşı “orxan” istifadəçi adı ilə daxil olur. Bu
halda, proqram aşağıdakı sorğunu verərsə və düzgün cavabı alarsa,
istifadəçiyə daxil olmağa imkan verəcək.
SELECT * FROM users WHERE users=’orxan’AND password=’1234’
Xaker
parol sorğusunu bu sorğudan silməklə daxil olmağa çalışır. Bu yolla
verilənlər bazasına sızmağa çalışır. Əgər aşağıdakı sorğu ilə giriş
ekranında POST sorğusunu redaktə edib göndərirsə, o, administrator rolu
ilə verilənlər bazasına daxil olacaq.
SELECT * FROM users WHERE users=’administrator’- -‘ AND password=”
Siz
bu kimi digər SQL injection nümunə sorğuları etməklə məlumat
pozuntuları ilə üzləşə bilərsiniz. Məsələn, e-ticarət saytında süzgəcdən
keçirərkən aşağıdakılara bənzər sorğu qaytarılır.
SELECT * FROM mehsullar WHERE category =’Telefon’
Xaker bu xətanın yanına UNION əmrini əlavə etməklə müxtəlif cədvəllərdən məlumatları çıxarmağa çalışır.
UNION SELECT users, password FROM users- -
Göründüyü
kimi, veb tətbiqinizdə SQL injection zəifliyi varsa, sistemdə
saxlanılan istifadəçi adları, parollar və digər şəxsi məlumatlara bu
yolla asanlıqla daxil olmaq mümkün olacaq.
SQL Injection qarşısını necə almaq olar?
2017-ci
ilin noyabrından 2019-cu ilin martına qədər firewall şirkətlərinin İT
departamentlərində toplanan məlumatlara görə, hər üç kiber hücumdan
ikisinin SQL injection metoduna aid olduğu görülür. Xakerlərin ən çox
seçdiyi bu hücuma qarşı bəzi tədbirlər görmək mümkündür. SQL Injection
qarşısını necə almaq olar sualına cavab budur:
1.
Fiziki qurğular (PC,SERVER,SWITCH,FIREWALL ) və.s da daxil olmaqla,
informasiya texnologiyaları infrastrukturunuzdakı bütün proqram
təminatının yeni olduğundan əmin olun.
2. Veb tətbiqinizdəki bütün formalarda mən robot deyiləm əlavə edilməldir.
3. Tətbiqlərinizdən istifadə edənlərinizə iki faktorla daxil olmağa məcbur edin.
4. Veb proqramında şübhəli sorğuları və sorğuları təhlil edə bilən veb-əsaslı firewall (WAF) proqramını quraşdırın
5. Proqramınızın arxa fonda sorğularını nəzərdən keçirin. Refaktor sorğuları, xüsusən də NULL simvolları olan sorğular.
6.
Sisteminizdəki qeydiyyatda olan istifadəçiləri nəzərdən keçirin. Admin
və tam səlahiyyətli rollardakı istifadəçi adlarında ‘administrator’,
‘admin’, ‘administrator’ kimi Qeydiyyat olan istifadəçiləri deaktiv
edin. Həmçinin, səlahiyyətli rolda olan istifadəçi adlarının həqiqi
adlar və ya proqram adları olduğundan əmin olun.
7.
İstifadə olunan sorğu sətirinin birləşmə üsulu tətbiqi sürətli etmək
üçün həmişə yaxşı fikir olmaya bilər. Bu sətir birləşmələrindən mümkün
qədər çəkinin və ya belə sorğuları icazələr bağlayın.
8.
İT infrastrukturunuzda edilən bütün sorğuların mərkəzi logların
yığıldığı verilənlər bazasında toplayın. Şübhəli əməliyyatlar üçün ani
həyəcan siqnalını təyin edin və səlahiyyətli istifadəçiyə e-poçt
göndərin.
9. Siz digər kiber təhdidlərlə birlikdə İT infrastrukturunuzu dərhal izləyə bilərsiniz.
10.
Fərdi Məlumatların Qorunması Qanunu və Qanun çərçivəsində digər
kibertəhlükələrlə birlikdə İT infrastrukturunuzu anında izləyə, tək
ekrandan təhlükəsizlik konfiqurasiyaları edə və məlumatlarınızı qoruya
biləcəyiniz Berqnet firewall cihazından istifadə edin.
Bu məqaləmizdə Centos ƏS üzrəində Apache web xidmətinin necə qurulucağını addım addım izah edəcəyik.
Apachenini yükləməzdən əvvəl yum paketlərini aşağıdakı komanda vasitəsilə yeniliyirik.
yum -y update
Qeyd- -y paremetiri yükləmə əsnasında suallara bəli edəcəyini izah edir.
Yenilənmələrimiz bitdikdən sonra, Apache web serverin yükləyirik.
yum -y install httpd
Apache web serverin yükləndiyini tam əmin olduqdan sonra ekranda yüklənmənin uğurlu olmasına dair mesaj çıxacaqdır.
Qeyd: Serverimizi restart etdikdən sonra apache web serverin işə avtomatik düşməsi üçün aşağıdakı kimi lazımı ayarları edirik.
systemctl start httpd
systemctl enable httpd
Web servisi hazırda işlədi. Firewall üzərindən 80 və 443 portlarına icazə veririk.
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
Restartdan sonar Apache serverimizin yenidən aktiv olduğunu baxmaq üçün aşağıdaki komandanı icra edirik.
systemctl stop httpd
Yenidən restart edirik
systemctl restart httpd
Apache web serverin yenidən başladığını baxa bilməyimiz üçün.Aşağıdakı komandadan istifadə edirik.
systemctl status httpd
/etc/httpd/conf/httpd.conf faylı içərisindən virtualhost ayarlarını edə bilərsiniz.
Default olaraq /var/www/html folderində sayt üçün lazımı fayıllarımızı yükləyə bilərik