Merhabalar,
Web uygulaması güvenliği konusunda çalışırken en kritik ihtiyaçlardan biri güvenilir bir vulnerability scanner’dır. Bu yazımda siz değerli okurlarıma, web güvenliği dünyasının köklü isimlerinden Acunetix hakkında detaylı bilgi vereceğim. Hem teorik bilgileri hem de pratik deneyimleri paylaşarak, normal kullanıcılardan teknik mühendislere kadar herkesin anlayabileceği şekilde anlatmaya çalışacağım.
Acunetix Nedir?
Acunetix, 2005 yılından beri geliştirilmekte olan, web uygulamalarında güvenlik açıklarını tespit eden özel bir tarama aracıdır. Basit bir ifade ile söylemek gerekirse, web sitelerinizi ve uygulamalarınızı kötü niyetli saldırganlardan önce siz test edip güvenlik açıklarını bulmanızı sağlayan profesyonel bir araçtır.
Ana Özellikleri:
- DAST (Dynamic Application Security Testing) - Canlı uygulamaları test eder
- IAST (Interactive Application Security Testing) - AcuSensor teknolojisiyle daha derinlemesine analiz
- 7000+ güvenlik açığı tespiti - OWASP Top 10 dahil olmak üzere
- %99.98 doğruluk oranı - Çok düşük false positive
- Çoklu platform desteği - Windows, Linux, Cloud
DAST vs IAST - Hangi Teknolojiyi Kullanmalı?
DAST (Dynamic Application Security Testing)
DAST, uygulamanızı dışarıdan bir saldırgan gözüyle tarar. Tıpkı bir hacker’ın yapacağı gibi:
1
2
3
4
5
6
| # DAST taraması örnek süreç:
1. Web sitesini keşfetme (crawling)
2. Form'ları ve input'ları bulma
3. Çeşitli payload'lar gönderme
4. Cevapları analiz etme
5. Güvenlik açıklarını tespit etme
|
Avantajları:
- Kaynak koda erişim gerektirmez
- Gerçek dünya saldırılarını simüle eder
- Production environment’da kullanılabilir
Dezavantajları:
- Tüm kodu kapsamayabilir
- Bazı güvenlik açıklarını kaçırabilir
IAST (Interactive Application Security Testing)
IAST ise uygulamanın içine küçük bir sensör yerleştirerek daha detaylı analiz yapar:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <?php
// AcuSensor PHP'de şu şekilde çalışır:
// Herhangi bir kod değişikliği gerekmez
// Sadece sensörü yükleyip aktif ediyorsunuz
include 'acusensor.php'; // Otomatik yüklenir
// Normal kodunuz:
$user_input = $_POST['username'];
$query = "SELECT * FROM users WHERE username = '$user_input'";
// AcuSensor bu satırda SQL Injection riski tespit eder
mysqli_query($connection, $query);
?>
|
AcuSensor’ün Avantajları:
- Tam kod coverage sağlar
- Hidden/unlinked dosyaları bulur
- Exact source code line’ını gösterir
- %100 güvenilirlik bazı zafiyet türlerinde
Hangi Güvenlik Açıklarını Tespit Ediyor?
OWASP Top 10 Kapsamı
Acunetix, OWASP Top 10’daki tüm güvenlik açıklarını tespit edebiliyor:
1. SQL Injection
1
2
3
4
| -- Acunetix'in test ettiği örnek payload'lar:
' OR '1'='1
'; DROP TABLE users; --
1' UNION SELECT null,@@version,null --
|
2. Cross-Site Scripting (XSS)
1
2
3
4
5
6
7
8
| // Reflected XSS testi:
<script>alert('Acunetix XSS Test')</script>
// Stored XSS testi:
<img src=x onerror=alert('Stored XSS')>
// DOM-based XSS testi:
javascript:alert(document.cookie)
|
3. Cross-Site Request Forgery (CSRF)
1
2
3
4
5
6
| <!-- CSRF test formu -->
<form action="https://vulnerable-site.com/transfer" method="POST">
<input type="hidden" name="amount" value="1000">
<input type="hidden" name="to_account" value="attacker_account">
<input type="submit" value="Click me!">
</form>
|
Diğer Önemli Güvenlik Açıkları
- Directory Traversal -
../../../etc/passwd
- File Upload Vulnerabilities - Malicious file upload
- XML External Entity (XXE) - XML parsing zafiyetleri
- Insecure Deserialization - Object deserialization saldırıları
- Security Misconfigurations - Yanlış konfigürasyonlar
Gerçek Proje Deneyimlerim
E-Ticaret Projesi Güvenlik Testi
Geçenlerde bir e-ticaret projesinde Acunetix kullandım. Sonuçlar oldukça ilginçti:
1
2
3
4
5
6
7
8
9
10
11
| Proje Detayları:
- Platform: PHP + MySQL
- Sayfa Sayısı: ~500
- Tarama Süresi: 2.5 saat
- Bulunan Güvenlik Açığı: 23 adet
Kritik Bulgular:
- SQL Injection: 3 adet (ödeme formu, arama, login)
- XSS: 8 adet (çoğunlukla ürün yorumlarında)
- CSRF: 5 adet (profil güncelleme, sipariş iptal)
- File Upload: 2 adet (profil fotoğrafı, ürün resmi)
|
Proof of Concept Örnekleri
Acunetix’in en beğendiğim özelliklerinden biri Proof of Exploit sunması:
1
2
3
4
5
6
| -- SQL Injection PoC:
Original Request: /search.php?q=laptop
Vulnerable Parameter: q
Payload: laptop' UNION SELECT 1,username,password FROM users--
Response: Admin user credentials exposed
Database: MySQL 8.0.25
|
Bu özellik sayesinde development team’e sadece “SQL Injection var” demek yerine, tam olarak nasıl exploit edilebileceğini gösterebiliyorsunuz.
Acunetix Kurulumu ve Konfigürasyonu
Sistem Gereksinimleri
1
2
3
4
5
6
7
8
9
10
11
| Minimum Gereksinimler:
CPU: 2 cores
RAM: 4 GB
Storage: 10 GB
OS: Windows 10/11, Ubuntu 18.04+, CentOS 7+
Önerilen Gereksinimler:
CPU: 4+ cores
RAM: 8+ GB
Storage: 50+ GB SSD
Network: 100 Mbps+
|
Kurulum Adımları
1. On-Premises Kurulum
1
2
3
4
5
6
7
8
9
10
11
| # Linux kurulumu:
wget https://download.acunetix.com/acunetix_linux.sh
chmod +x acunetix_linux.sh
sudo ./acunetix_linux.sh
# Servis başlatma:
sudo systemctl start acunetix
sudo systemctl enable acunetix
# Web arayüze erişim:
https://localhost:3443
|
2. Cloud Versiyon
Cloud versiyonu için sadece hesap açıp login olmanız yeterli. Avantajları:
- Kurulum gerektirmez
- Otomatik güncellemeler
- Scalable scanning engines
- Global erişim
İlk Tarama Konfigürasyonu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Target Configuration:
URL: https://example.com
Crawling Scope: Same domain + subdomains
Authentication:
Type: Form-based
Username: [email protected]
Password: testpass123
Scan Policy:
Profile: Full Scan
Crawler Settings:
Max Pages: 1000
Max Scan Time: 4 hours
Security Checks:
- SQL Injection: Enabled
- XSS: Enabled
- CSRF: Enabled
- File Inclusion: Enabled
|
CI/CD Entegrasyonu
Jenkins Entegrasyonu
Acunetix’i CI/CD pipeline’ınıza entegre etmek oldukça kolay:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| // Jenkinsfile örneği:
pipeline {
agent any
stages {
stage('Build') {
steps {
// Build işlemleri
sh 'npm install && npm run build'
}
}
stage('Deploy to Staging') {
steps {
// Staging deploy
sh 'docker-compose up -d'
}
}
stage('Security Scan') {
steps {
script {
// Acunetix API ile tarama başlatma
sh '''
curl -X POST \
https://acunetix.local:3443/api/v1/scans \
-H "X-Auth: ${ACUNETIX_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"target_id": "${TARGET_ID}",
"profile_id": "11111111-1111-1111-1111-111111111111"
}'
'''
}
}
}
stage('Check Results') {
steps {
// Tarama sonuçlarını kontrol et
script {
def scanResults = sh(
script: "curl -H 'X-Auth: ${ACUNETIX_API_KEY}' https://acunetix.local:3443/api/v1/scans/${SCAN_ID}",
returnStdout: true
).trim()
if (scanResults.contains('"high_severity":')) {
error("High severity vulnerabilities found!")
}
}
}
}
}
}
|
GitLab CI Entegrasyonu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| # .gitlab-ci.yml
stages:
- build
- test
- security-scan
- deploy
security_scan:
stage: security-scan
script:
- |
# Acunetix tarama başlat
SCAN_ID=$(curl -X POST \
-H "X-Auth: $ACUNETIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"target_id": "'$TARGET_ID'", "profile_id": "'$PROFILE_ID'"}' \
$ACUNETIX_URL/api/v1/scans | jq -r '.scan_id')
# Tarama tamamlanana kadar bekle
while [ "$(curl -H "X-Auth: $ACUNETIX_API_KEY" $ACUNETIX_URL/api/v1/scans/$SCAN_ID | jq -r '.current_session.status')" != "completed" ]; do
echo "Scan in progress..."
sleep 30
done
# Sonuçları kontrol et
HIGH_VULNS=$(curl -H "X-Auth: $ACUNETIX_API_KEY" $ACUNETIX_URL/api/v1/scans/$SCAN_ID/results | jq '.vulnerabilities[] | select(.severity == 4) | length')
if [ "$HIGH_VULNS" -gt 0 ]; then
echo "High severity vulnerabilities found: $HIGH_VULNS"
exit 1
fi
only:
- main
- develop
|
REST API Kullanımı
Acunetix’in güçlü REST API’si sayesinde otomasyonlar yapabilirsiniz:
Temel API İşlemleri
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
| import requests
import json
import time
class AcunetixAPI:
def __init__(self, base_url, api_key):
self.base_url = base_url
self.headers = {
'X-Auth': api_key,
'Content-Type': 'application/json'
}
def add_target(self, url, description=""):
"""Yeni hedef ekle"""
data = {
'address': url,
'description': description,
'criticality': 30 # High
}
response = requests.post(
f"{self.base_url}/api/v1/targets",
headers=self.headers,
data=json.dumps(data)
)
return response.json()['target_id']
def start_scan(self, target_id, profile_id):
"""Tarama başlat"""
data = {
'target_id': target_id,
'profile_id': profile_id
}
response = requests.post(
f"{self.base_url}/api/v1/scans",
headers=self.headers,
data=json.dumps(data)
)
return response.json()['scan_id']
def get_scan_results(self, scan_id):
"""Tarama sonuçlarını al"""
response = requests.get(
f"{self.base_url}/api/v1/scans/{scan_id}/results",
headers=self.headers
)
return response.json()
def wait_for_scan(self, scan_id):
"""Tarama tamamlanana kadar bekle"""
while True:
response = requests.get(
f"{self.base_url}/api/v1/scans/{scan_id}",
headers=self.headers
)
status = response.json()['current_session']['status']
print(f"Scan status: {status}")
if status == 'completed':
break
elif status == 'failed':
raise Exception("Scan failed!")
time.sleep(30)
# Kullanım örneği:
api = AcunetixAPI("https://acunetix.local:3443", "your-api-key")
# Hedef ekle
target_id = api.add_target("https://example.com", "Test website")
# Tarama başlat
scan_id = api.start_scan(target_id, "11111111-1111-1111-1111-111111111111")
# Sonuçları bekle ve al
api.wait_for_scan(scan_id)
results = api.get_scan_results(scan_id)
print(f"Bulunan güvenlik açığı sayısı: {len(results['vulnerabilities'])}")
|
Sonuç Analizi ve Raporlama
Vulnerability Prioritization
Acunetix güvenlik açıklarını şu şekilde sınıflandırır:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| Severity Levels:
Critical (4):
- Remote code execution
- SQL Injection with data access
- Authentication bypass
High (3):
- XSS with session hijacking potential
- Local file inclusion
- Directory traversal
Medium (2):
- Information disclosure
- CSRF on non-critical functions
- Weak SSL configuration
Low (1):
- Missing security headers
- Verbose error messages
- Directory listing enabled
Informational (0):
- Version information
- Technology stack detection
- Best practice recommendations
|
1
2
3
4
5
6
7
8
9
| # Acunetix farklı rapor formatları sunuyor:
report_formats = {
'executive': 'Yönetim için özet rapor',
'developer': 'Geliştiriciler için teknik detaylar',
'compliance': 'Compliance gereksinimleri için',
'xml': 'Diğer araçlarla entegrasyon için',
'json': 'API entegrasyonu için',
'html': 'Web browser'da görüntüleme için'
}
|
Fiyatlandırma ve Lisans Modelleri
Acunetix Standard
1
2
3
4
5
6
7
8
| Acunetix Standard:
Fiyat: "Contact for pricing"
Features:
- 1 concurrent scan
- DAST scanning
- Basic integrations
- Email support
Suitable For: Small teams, single projects
|
Acunetix Premium
1
2
3
4
5
6
7
8
9
| Acunetix Premium:
Fiyat: "Contact for pricing"
Features:
- Multiple concurrent scans
- AcuSensor (IAST)
- Advanced integrations
- Priority support
- Compliance reporting
Suitable For: Enterprise environments
|
Cloud vs On-Premises
Özellik | Cloud | On-Premises |
---|
Kurulum | Yok | Gerekli |
Maintenance | Otomatik | Manuel |
Scalability | Unlimited | Hardware’a bağlı |
Data Privacy | Shared infrastructure | Full control |
Cost | Subscription | License + Infrastructure |
Updates | Otomatik | Manuel |
Alternatif Araçlarla Karşılaştırma
Acunetix vs OWASP ZAP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| Acunetix:
Pros:
- Çok düşük false positive
- Proof of exploit
- Enterprise features
- GUI kullanım kolaylığı
Cons:
- Ücretli
- Learning curve
OWASP ZAP:
Pros:
- Ücretsiz
- Open source
- Geniş community
- Extensible
Cons:
- Yüksek false positive
- Sınırlı enterprise features
- Manual configuration gerekli
|
Acunetix vs Burp Suite
1
2
3
4
5
6
7
8
9
10
11
12
13
| Acunetix:
Strengths:
- Automated scanning
- Easy reporting
- CI/CD integration
- Scale capacity
Burp Suite:
Strengths:
- Manual testing capabilities
- Proxy functionality
- Extensibility
- Penetration testing focus
|
Gerçek Dünya Kullanım Senaryoları
Senaryo 1: PCI DSS Compliance
1
2
3
4
5
6
7
8
9
| Müşteri Profili: E-ticaret şirketi
Gereksinim: PCI DSS compliance
Çözüm:
- Quarterly Acunetix tarama
- Automatic vulnerability detection
- Compliance reporting
- Remediation tracking
Sonuç: %100 PCI DSS compliance başarısı
|
Senaryo 2: DevSecOps Implementation
1
2
3
4
5
6
7
8
9
| Müşteri Profili: SaaS startup
Gereksinim: Development sürecine security entegrasyonu
Çözüm:
- GitLab CI/CD pipeline entegrasyonu
- Staging environment'da otomatik tarama
- Slack bildirimleri
- Developer training
Sonuç: %75 güvenlik açığı azalması
|
Senaryo 3: Penetration Testing Augmentation
1
2
3
4
5
6
7
8
9
| Müşteri Profili: Finansal kurum
Gereksinim: Comprehensive security assessment
Çözüm:
- Acunetix otomatik tarama + manual pentesting
- AcuSensor ile deep analysis
- Custom script yazma
- Executive reporting
Sonuç: 200+ güvenlik açığı tespit ve çözüm
|
Best Practices ve Öneriler
Tarama Optimizasyonu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Performance Tuning:
Crawling:
- Max pages: Application size'a göre ayarla
- Crawl delay: Server capacity'ye göre
- Exclude non-essential paths
Scanning:
- Use scan profiles wisely
- Schedule scans for off-peak hours
- Monitor server resources
Reporting:
- Filter false positives
- Focus on high/critical severity
- Regular remediation tracking
|
Güvenlik Considerations
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Security Best Practices:
Network:
- VPN connection for sensitive environments
- Firewall rules for Acunetix access
- Segregated testing network
Access Control:
- Role-based user management
- Strong authentication
- Regular user access review
Data Protection:
- Encrypted communication (HTTPS)
- Secure API key management
- Regular backup of scan data
|
Sorun Giderme ve Troubleshooting
Yaygın Problemler
1
2
3
4
5
6
7
8
9
10
11
12
13
| # Problem: Yavaş tarama
# Çözüm: Crawling ayarlarını optimize et
# Acunetix log kontrolü:
tail -f /usr/local/acunetix/logs/acunetix.log
# Resource usage kontrolü:
top -p $(pgrep acunetix)
iostat -x 1
# Network latency test:
ping target-website.com
traceroute target-website.com
|
2. False Positive Issues
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| # False positive'leri azaltmak için:
def configure_scan_policy():
"""
Custom scan policy oluşturma
"""
policy_config = {
"sql_injection": {
"timing_based": True,
"error_based": True,
"boolean_based": True,
"union_based": False # Aggressive, false positive artırabilir
},
"xss": {
"dom_based": True,
"reflected": True,
"stored": True,
"filter_responses": True # Response filtering aktif
}
}
return policy_config
|
3. Authentication Problems
1
2
3
4
5
6
7
8
9
10
11
12
| # Login sequence sorunları:
Common Issues:
- CSRF token handling
- Session timeout
- Captcha presence
- Multi-step authentication
Solutions:
- Record proper login sequence
- Handle dynamic tokens
- Use session management
- Configure authentication timeouts
|
Debug ve Log Analysis
1
2
3
4
5
6
7
8
9
10
11
12
13
| # Acunetix debug mode:
sudo systemctl stop acunetix
sudo /usr/local/acunetix/start.sh --debug
# Log file locations:
/usr/local/acunetix/logs/acunetix.log # Main log
/usr/local/acunetix/logs/scanner.log # Scanner specific
/usr/local/acunetix/logs/crawling.log # Crawling logs
/usr/local/acunetix/logs/database.log # Database operations
# Log analysis:
grep -i "error" /usr/local/acunetix/logs/acunetix.log
grep -i "sql injection" /usr/local/acunetix/logs/scanner.log
|
Sonuç ve Tavsiyelerim
Acunetix kullanarak yaklaşık 3 senedir çeşitli projelerde güvenlik testleri yapıyorum. Bu deneyimler sonucunda şunu söyleyebilirim: Acunetix, web uygulaması güvenliği için hakikaten kapsamlı ve güvenilir bir araç.
✅ Şu durumlarda kesinlikle kullanın:
- Enterprise-level security ihtiyacınız varsa
- Düşük false positive oranı kritikse
- CI/CD entegrasyonu planlıyorsanız
- Compliance requirements (PCI DSS, HIPAA vb.) varsa
- Team collaboration gerekiyorsa
- Detailed reporting ihtiyacınız varsa
⚠️ Şu durumlarda alternatifleri değerlendirin:
- Budget kısıtlı küçük projeler için
- Sadece basic scanning ihtiyacı varsa
- Manual testing odaklı çalışmalar için
- Open source preference varsa
💡 Başlangıç Önerilerim:
- Free trial’ı deneyin - 14 günlük deneme sürümü
- Demo talep edin - Technical team’den detaylı bilgi alın
- Pilot proje seçin - Küçük bir projede test edin
- Team’inizi eğitin - Tool’un tüm özelliklerini öğrenin
- Entegrasyon planlayın - CI/CD pipeline’a nasıl entegre edeceğinizi düşünün
- Remediation process’ini kurun - Bulunan güvenlik açıklarını nasıl çözeceğinizi planlayın
Son Söz
Web uygulaması güvenliği günümüzde kritik bir ihtiyaç haline geldi. Acunetix gibi profesyonel araçlar bu ihtiyacı karşılamak için geliştirilmiş olgun çözümler sunuyor.
Tabii ki mükemmel bir araç değil - hiçbiri değil zaten. Fakat accuracy, performance ve feature set açısından market’daki en güçlü alternatiflerden biri olduğunu rahatlıkla söyleyebilirim.
Acunetix kullanıyor musunuz? Deneyimlerinizi yorumlarda paylaşırsanız sevinirim!
Bu makale Acunetix’in Ağustos 2025 itibariyle güncel özelliklerine dayanarak yazılmıştır. Özellikler ve fiyatlandırma değişebilir.