Subversion deposundaki saldırıya uğramış dosyaları tekrar düzenlenebilir hale nasıl getirebilirim?


1

Saldırıya uğramış bir web sitesindeki bazı dosyaları araştırıyorum ve site bir Subversion deposunda sürüm kontrolü altında, ancak dosyaları değiştirilmiş olarak göstermiyor. SVN'nin dosyaları görmezden gelmesini nasıl önleyebilirim, böylece temiz kopyaları kontrol edebilirim?

Saldırıya uğramış bir web sitesini temizliyorum (nispeten küçük, bazı kumarhane bağlantıları sayfa başlığına eklendi) ve site SVN deposunun çalışan bir kopyasına sahip. (Evet, .svnklasörlere erişimi engelleyen çalışan bir .htaccess dosyasına sahiptir .) İlginç bir şekilde, hacklenmiş dosya SVN deposundaki en son güncellenmiş sürümün değiştirilme tarihine sahiptir, değiştirilmemiş svn statusolarak svn log -v <hacked_file>gösterir SVN deposundaki güncellenmiş sürümü svn diff <hacked_file>, dosya ile depodaki en son değiştirilmiş sürüm arasında da bir fark olmadığını gösterir. Günlükleri kontrol etmek ve her sürüm arasında değişiklik yapmak için bazı komut dosyalarını hazırladım ve bu dosyayı değiştiren hiçbir şey yok.

Ancak, dosya adının .svn/all-wcpropsaşağıdaki gibi göründüğünü fark ettim :

K 25
svn:wc:ra_dav:version-url
V 48
/<repo>/!svn/ver/97/trunk/www.example.com/<hacked_file>
END
favicon.ico

Doğal olarak, svn proplist -v <hacked_file>hiçbir şey çıkarmaz ve svn propget 'svn:wc:ra_dav:version-url' <hacked_file>"wcprop, dolayısıyla müşterilere erişilemez" olduğunu söyleyen bir hata döndürür.

Herhangi bir 'svn: ignore' sahne svn status --no-ignoregörmüyorum ve hacklenen dosyayı göstermiyor.

Çok fazla araştırma yaptım ve gerçekten SVN 'wcprops' veya içinde herhangi bir bilgi bulamıyorum .svn/all-wcprops. all-wcpropsDosyayı silmek güvenli mi?

Çalışma kopyasını ortadan kaldırmak ve yeni bir kopyayı kontrol etmek dışında diğer olasılıklar / seçenekler / tavsiyeler (bu çok büyük bir depoda, bu yüzden zaman alıcı ve her şeyin çalıştığından emin olmak için gözden geçirmek uzun zaman alacaktı, Özellikle kaybolabilecek hiçbir değiştirilmiş dosya olmadığından emin olamadığım için)? Bu ana SVN deposunda büyük olasılıkla değiştirilmiş bir şey mi?


Üfleme ve iyi bilinen bir sürümden geri yükleme, ne olursa olsun yapılması gereken en doğru şeydir. Söylediğin gibi, belki hiç değiştirilmiş dosyalar olduğunu güvenemeyiz değil kaybolabilir ...
Michael Homer

@ MichaelHomer Err, birkaç saat önce kırılmış sürüme geri yükle? :)
Satō Katsura

1
Şu anda ele geçirildiği bilinen ve bir daha asla güvenilmez olduğu bilinen sürümü terk etmek üzerine mi? Evet. Aslında bütün hesabı mahvet.
Michael Homer,

Yanıtlar:


0

Diğerlerinin de belirttiği gibi, çalışma kopyası hem güvenilmez hem de güvenilmez olduğundan, yine de deponun yeni bir kopyasını SVN'den kontrol etmek en iyisidir. Böylece, aşağıdakileri yaptım:

  • Yeni bir çalışma kopyasını teslim aldım
  • Kötü amaçlı değişiklikler olmadan, saldırıya uğramış dosyanın içeriğinin depoda göründüğü gibi doğru olduğunu onayladı
  • Saldırıya uğramış dosyada yapılan değişikliklerin (ve içinde listelenen diğerlerinin .svn/all-wcprops) svn status, düzenlendiğinde tarafından değiştirildiği gibi gösterileceği doğrulandı
  • Çalışma kopyalarını değiştirdi
  • diff -qrx .svn <hacked_working_copy>/ <new_working_copy>/Saldırıya uğramış çalışma kopyasında hangi dosyaların gerçekte değiştirildiğini / eklendiğini belirlemek için koştu , ancak bu şekilde görünmüyor
  • Taahhütsüz dosyaların içeriğini onayladı ve manuel olarak kopyalayın, gerekirse
  • Daha fazla araştırma / kanıt için hacklenmiş çalışma kopyasını arşivledi ve kaldırıldı, ardından çıkardı

Doğal olarak, daha fazla aksiyon ve önlem alınmakta, ancak özyinelemeli diffsorgulanabilir dosyaları tanımlamayı kolaylaştırmıştır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.