Sorun Giderme
- Cuckoo güncelleme sonrası çalışmayı durduruyor.
- KVM ile mevcut anlık görüntüyü kontrol edin ve geri yükleyin
- VirtualBox ile mevcut anlık görüntüyü kontrol edin ve geri yükleyin
- Unable to bind result server hatası
- Şablon oluşturma sırasında hata:
- 501 Unsupported Method (‘GET’)
- tcpdump Permission Denied hatası
- DistributionNotFound / No distribution matching the version hatası
- IOError: [Errno 24] Too many open files
- Open Files Sınırını Arttırmak
- pkg_resources.ContextualVersionConflict
- ValueError: incomplete format key hatası
- Sanal makine (VM) ağ yapılandırması sorunu
Cuckoo güncelleme sonrası çalışmayı durduruyor.
Muhtemelen yanlış bir şekilde güncellediniz. Cuckoo'nun karmaşıklığı ve hızlı gelişimi nedeniyle dosyaları yeniden yazmak iyi bir uygulama değildir.
Lütfen önceki bir sürümden güncelleme adımlarını açıklayan "Önceki Sürümden Güncelleme" adlı kılavuzu takip edin.
KVM ile mevcut anlık görüntüyü kontrol edin ve geri yükleyin
Sanal makinede bir şeyler ters giderse, mevcut anlık görüntü durumunu kontrol etmek en iyi uygulamadır. Bunu aşağıdakilerle yapabilirsiniz:
$ virsh snapshot-current "<Name of VM>"
Çıktı olarak uzun bir XML'iniz varsa, mevcut anlık görüntünüz yapılandırılmıştır ve bu bölümün geri kalanını atlayabilirsiniz; yine de, aşağıdaki gibi bir hata aldıysanız, mevcut anlık görüntünüz bozuk:
$ virsh snapshot-current "<Name of VM>"
error: domain '<Name of VM>' has no current snapshot
Mevcut bir anlık görüntüyü düzeltmek ve oluşturmak için önce tüm makinenin anlık görüntülerini listeleyin:
$ virsh snapshot-list "<Name of VM>"
Name Creation Time State
------------------------------------------------------------
1339506531 2012-06-12 15:08:51 +0200 running
Bir anlık görüntü adı seçin ve güncel olarak ayarlayın:
$ snapshot-current "<Name of VM>" --snapshotname 1339506531
Snapshot 1339506531 set as current
Artık sanal makinenizi kullanabilirsiniz.
VirtualBox ile mevcut anlık görüntüyü kontrol edin ve geri yükleyin
Sanalda bir şeyler ters giderse, sanal makine durumunu ve mevcut anlık görüntüyü kontrol etmek en iyi uygulamadır. Öncelikle sanal makine durumunu aşağıdakilerle kontrol edin:
$ VBoxManage showvminfo "<Name of VM>" | grep State
State: powered off (since 2012-06-27T22:03:57.000000000)
Durum "powered off" ise bir sonraki kontrole devam edebilirsiniz, durum "aborted" veya başka bir şeyse, daha önce "powered off" durumuna geri yüklemeniz gerekir:
$ VBoxManage controlvm "<Name of VM>" poweroff
Aşağıdaki komutla mevcut anlık görüntülerin durumunu kontrol edin:
$ VBoxManage snapshot "<Name of VM>" list --details
Name: s1 (UUID: 90828a77-72f4-4a5e-b9d3-bb1fdd4cef5f)
Name: s2 (UUID: 97838e37-9ca4-4194-a041-5e9a40d6c205) *
Yıldız "*" ile işaretlenmiş bir anlık görüntünüz varsa, anlık görüntünüz hazırdır, yine de geçerli anlık görüntüyü geri yüklemeniz gerekir:
$ VBoxManage snapshot "<Name of VM>" restorecurrent
Unable to bind result server hatası
Cuckoo başlangıcında bunun gibi bir hata mesajı alırsanız:
2014-01-07 18:42:12,686 [root] CRITICAL: CuckooCriticalError: Unable to bind result server on 192.168.56.1:2042: [Errno 99] Cannot assign requested address
Bu, Cuckoo'nun cuckoo.conf'ta (veya içinde resultserver_ip seçeneğini kullanıyorsanız machinery.conf'ta) yazılan IP adresinde result server başlatamadığı anlamına gelir. Bu genellikle, result server IP adresiyle ilişkili sanal arayüzü getirmeden Cuckoo'yu başlattığınızda olur. Manuel olarak getirebilirsiniz, bir sanallaştırma yazılımından diğerine bağlıdır, ancak nasıl yapacağınızı bilmiyorsanız, iyi bir yol bir analiz sanal makinesini manuel olarak başlatmak ve durdurmaktır, bu sanal ağı getirecektir.
VirtualBox tarafında host-only arayüzü vboxnet0 aşağıdaki gibi oluşturulabilir:
# If the hostonly interface vboxnet0 does not exist already.
$ VBoxManage hostonlyif create# Configure vboxnet0.
$ VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0
Şablon oluşturma sırasında hata:
2.0-rc1 sürümünde değiştirildi.
2.0-rc1 sürümünde aşağıdaki ekran görüntüsünde gösterildiği gibi bir hata tanıtıldı. Bu sorunu yerel kurulumunuzda çözmek için lütfen web/analysis/urls.py dosyasını açın ve 21. satıra bir alt çizgi ekleyerek aşağıdaki gibi değiştirin:
- "/(?P<ip>[\d\.]+)?/(?P<host>[a-zA-Z0-9-\.]+)?"
+ "/(?P<ip>[\d\.]+)?/(?P<host>[ a-zA-Z0-9-_\.]+)?"
501 Unsupported Method (‘GET’)
2.0-rc1 sürümünde değiştirildi.
2.0-rc1'den bu yana Cuckoo, Gelişmiş Cuckoo Agent'ını ve yeni bir REST API tabanlı Cuckoo Agent'ını destekler. Bu Agentlar, Konuk ve Ana makine arasında iletişim için kullanılır. Yeni Cuckoo Agent, Cuckoo dışında da kullanılabilme özelliğine sahip bir geliştirilmiş Agent olarak kabul edilir. Örnek olarak, VMCloak tarafından kullanılır ve Otomatik olarak Sanal Makineler oluşturmak, yapılandırmak ve gizlemek için kullanılır.
Cuckoo Host, Cuckoo'nun yeni veya eski Agent ile iletişim kurup kurmadığını belirlemek için kök dizine (/) bir HTTP GET isteği gönderir. Eski Cuckoo Agent, xmlrpc tabanlı olduğu için bu belirli yolun işlenmesini sağlamaz ve bu nedenle bir hata olan 501 Desteklenmeyen yöntem döndürür.
Bununla birlikte, bu mesaj aslında bir hata değildir, sadece Cuckoo'nun hangi sürümdeki Cuckoo Agent ile iletişim kurmaya çalıştığını belirlemeye çalıştığı bir durumdur.
Yeni bir Cuckoo Agent mevcut olsa da, eski Cuckoo Agent için geriye dönük uyumluluk hala mevcut ve düzgün bir şekilde çalışıyor.
tcpdump Permission Denied hatası
Sürüm 2.0.0'da değiştirildi.
Yeni Cuckoo yapısıyla birlikte, tüm depolama varsayılan olarak ~/.cuckoo içinde bulunur, bu arada PCAP dosyası, ~/.cuckoo/storage/analyses/task_id/dump.pcap konumunda saklanır. Ubuntu'da varsayılan olarak etkin olan AppArmor (AppArmor profili) ile dot-dizinlerine ($HOME içinde) yazma izni olmayan tcpdump, izin reddedildiği bir hata mesajı alır ve Cuckoo'nun PCAP dosyalarını yakalamasını engeller.
AppArmor araçlarını yükleyerek ve basitçe tcpdump AppArmor profilini tamamen devre dışı bırakarak çözülebilir:
sudo apt-get install apparmor-utils
sudo aa-disable /usr/sbin/tcpdump
DistributionNotFound / No distribution matching the version hatası
Sürüm 2.0.0'da değiştirildi.
Cuckoo'yu Python paketi aracılığıyla kurmak, esasen güncel olmayan Python package manager sorunlarına yol açar. Bu SSS girişi, aşağıdaki sorunu hedeflemektedir:
$ cuckoo
Traceback (most recent call last):
File "/usr/local/bin/cuckoo", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2749, in <module>
working_set = WorkingSet._build_master()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 446, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 459, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 628, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: tlslite-ng==0.6.0a3
Bu ve buna benzer sorunlar güncel olmayan Python package manager yazılımından kaynaklanır. Neyse ki bunların düzeltilmesi oldukça basittir ve bu nedenle aşağıdaki komut işe yaramalıdır:
pip install -U pip setuptools
IOError: [Errno 24] Too many open files
Bu sorun, çok sayıda bırakılmış dosyası olan örnekleri analiz ederken karşılaşılabilecek bir sorundur, bu kadar çok dosya ki İşleme Yardımcısı artık yeni dosya tanımlayamaz hale gelir.
Bu sorunun en kolay çözümü, mevcut kullanıcı için dosya tanımlama sınırlarını artırmaktır. Bu işlemi buradaki yolu izleyerek yapabilirsiniz.
Open Files Sınırını Arttırmak Yazısını İnceleyin
Eğer Supervisor kullanıyorsanız, supervisord.conf dosyasında minfds'yi ayarlamayı unutmayın.
Değişikliklerin etkili olabilmesi için genellikle önce oturumu kapatmanız (yani çıkış yapmanız) ve ardından yeni bir kabuk oturumu açmanız gerektiğini unutmayın.
Open Files Sınırını Arttırmak
Eğer 'Too many open files (24)' hatası alıyorsanız, application/command/script Linux tarafından izin verilen maksimum açık dosya sınırına ulaşıyor demektir. Aşağıdaki gibi açık dosya sınırını artırmanız gerekecek:
Limiti Arttırmak
Per User Limit
/etc/security/limits.conf dosyasını açın ve aşağıdaki kısmı yapıştırın:
* hard nofile 500000
* soft nofile 500000
root hard nofile 500000
root soft nofile 500000
Dosyayı kaydettikten sonra sisteme çıkış yapın ve tekrar giriş yapın.
pam-limits
Sınırın daemon işlemleri için değiştirilmesi için ek bir adım gerekebilir. Buna ihtiyaç duymayabilirsiniz, ancak yukarıdaki değişiklikler sizin için işe yaramazsa, bu yolu denemeyi düşünebilirsiniz.
/etc/pam.d/common-session dosyasını açın ve aşağıdaki satırı ekleyin:
session required pam_limits.so
System-Wide Limit
Değeri yukarıda belirlenen kullanıcı sınırından daha yüksek bir şekilde ayarlayabilirsiniz.
/etc/sysctl.conf dosyasını açın ve aşağıdaki satırı ekleyin:
fs.file-max = 2097152
Sonrasında aşağıdaki komutu çalıştırın:
sysctl -p
Yukarıdaki işlem, sistem genelinde açık kalabilen toplam dosya sayısını artırır.
Yeni Limit Belirlemek
Dosya tanımlarının maksimum sınırını görmek için aşağıdaki komutu kullanın:
cat /proc/sys/fs/file-max
Hard Limit:
ulimit -Hn
Soft Limit:
ulimit -Sn
Eğer root kullanıcı ile giriş yaptıysanız:
Diğer kullanıcılar için limiti görmek
Sadece www-data yerine kontrol etmek istediğiniz Linux kullanıcı adınızı (username) yazarak değiştirin:
su - www-data -c 'ulimit -aHS' -s '/bin/bash'
Çalışan process’in limitini görmek
Process id’yi (PID) öğrenmek için:
ps aux | grep process-name
XXX PID'dir, buna göre limitleri kontrol etmek için aşağıdaki komutu çalıştırın:
cat /proc/XXX/limits
pkg_resources.ContextualVersionConflict
Eğer Cuckoo Paketi kuruyorsanız veya güncelliyorsanız, aşağıdaki gibi bir hata alabilirsiniz:
pkg_resources.ContextualVersionConflict: (HTTPReplay 0.1.5
(/usr/local/lib/python2.7/dist-packages),
Requirement.parse('HTTPReplay==0.1.17'), set(['Cuckoo']))
Bu sorunun kaynağı ilgili pip bağımlılıklarının güncel sürümlerinin değil de eski sürümlerinin yüklenmiş olmasıdır.
Bu sorunu çözmenin en kolay yolu, ilgili bağımlılığın tüm sürümlerini kaldırmak ve Cuckoo'yu yeniden yüklemektir. Aşağıda sunulan HTTPReplay örneğinde, işlem şöyle görünebilir:
$ sudo pip uninstall httpreplay
Uninstalling HTTPReplay-0.1.17:
/usr/local/bin/httpreplay
/usr/local/bin/pcap2mitm
/usr/local/lib/python2.7/dist-packages/HTTPReplay-0.1.17-py2.7.egg-info
...
Proceed (y/n)? y
Successfully uninstalled HTTPReplay-0.1.17$ sudo pip uninstall httpreplay
Uninstalling HTTPReplay-0.1.5:
/usr/local/lib/python2.7/dist-packages/HTTPReplay-0.1.5-py2.7.egg-info
Proceed (y/n)? y
Successfully uninstalled HTTPReplay-0.1.5$ sudo pip uninstall httpreplay
Cannot uninstall requirement httpreplay, not installed
Sonrasında Cuckoo'yu yeniden yüklemek için basitçe pip install -U cuckoo komutunu kullanabilirsiniz.
ValueError: incomplete format key hatası
Bu sorun, $CWD/conf içindeki ayarları değiştirdikten sonra runtime anında ortaya çıkabilir, çünkü input, runtime sırasında kaçırılmadan configuration parser’a iletilir. Yapılandırma dosyalarınızı, olası sorunlu karakter kombinasyonlarına (örneğin %() gibi) karşı kontrol ederken dikkatli bir şekilde gözden geçirmeniz önemlidir.
Sanal makine (VM) ağ yapılandırması sorunu
Sanal Makinenizin ağ yapılandırması beklenildiği gibi çalışmıyorsa, Cuckoo analizlerini bu şekilde kullanamayacağınıza dair bir bildirim alacaksınız. Ağ yapılandırması ve/veya kurulumunuzun neden yanlış olduğuyla ilgili birçok olasılık vardır. Bununla birlikte, genellikle sorun aşağıdaki nedenlerden birinde bulunur:
- Sanal makinenin IP adresi yanlış yapılandırılmış olabilir. Lütfen VM'in sabit bir IP adresine sahip olduğundan, bu IP adresinin Cuckoo yapılandırması ile eşleştiğinden ve yapılandırılmış ağ arabiriminin var ve aktif olduğundan emin olun. Ayrıca, VirtualBox kullanıyorsanız, ağ arabirimini Host-Only arabirim olarak yapılandırdığınızdan emin olun.
- Ana Makine ve Konuk arasındaki iletişimi engelleyen bir güvenlik duvarının olmadığından ve Ana Makine ile Konuk'un birbirlerine ping atabildiğinden ve birbirlerine bağlanabildiğinden emin olun.
- Cuckoo Ana Makine'den Konuk'a bağlantılar çalışıyorsa, ancak ters yönde çalışmıyorsa, bazı ek sorunlar olabilir:
- Ana Makine ve Konuk üzerinde ağ yapılandırması eşit mi? Değilse, örneğin VM farklı IP aralıklarını görüyorsa, resultserver_ip ve resultserver_port'u yapılandırmanız gerekebilir.
- Eğer Cuckoo Analyzer'ı (genellikle $CWD/analyzer klasöründe bulunur) değiştirdiyseniz, bu hata mesajı, bir sözdizimi hatası veya başka bir istisna eklenmiş olabileceğini, Analyzer'ın düzgün başlatılamamasına ve dolayısıyla beklenildiği gibi analiz yapamamasına işaret edebilir.