IT이야기2010. 6. 16. 18:43
최근 월스트리트 저널(online.wsj.com)등을 포함한 MS IIS 서버와 ASP.net환경의 서버에 대량 SQL Injection(Mass SQL Injection) 공격이 이뤄지고 있으니 주의가 필요하다.

해킹된 사이트에는 _script src=http://ww.robint.us/u.js_ 스크립트가 삽입이 되었다. 그 이후에 2677.in/yahoo.js, 4589.in/yahoo.js 등의 도메인으로 스크립트를 삽입하고 있다. 최근 Adobe Flash 0-day 취약점(CVE-2010-1297)이 발생했다. 이 취약점을 패치하지 않은 유저가 해킹된 사이트를 방문하면 악성코드에 감염이 된다. Armorize Blog(상세한 분석 자료 있음)에 따르면 이 악성코드는 다음 3개 게임 사이트의 게임 계정을 가로채는 것으로 알려졌다.
 
aion.plaync.co.kr
aion.plaync.jp
df.nexon.com

구글에서 2677.in/yahoo.js 또는 4589.in/yahoo.js를 검색하면, 프레시안(현재는 정상 복구된 것으로 보임), 한국표준협회, 아산시 평생학습센터 등 다수의 국내 사이트들이 감염된 것을 확인할 수 있다.

[ 구글에서 '2677.in/yahoo.js' 검색 결과 ]


유저들은 KrCERT의 권고문을 살펴보고, 반드시 Adobe Flash Player(http://get.adobe.com/flashplayer/)를 업데이트해야 한다.

마지막으로 위 도메인의 등록정보를 살펴보자. 3개 모두 중국(CN)에서 등록을 했다. 등록일이 얼마되지 않았다. 스크립를 호스팅하기 위해 생성한 도메인이라는 것을 뜻한다. 그리고, 도메인이 차단될 경우에 유사 도메인으로 계속 등록을 시도할 가능성이 커보인다.

1. robint.us
   Domain Registration Date:                    Sun Mar 14 05:28:08 GMT 2010
   Domain Last Updated Date:                    Tue Jun 08 05:10:09 GMT 2010

2. 2677.in
   Created On:10-Jun-2010 10:33:51 UTC
   Last Updated On:12-Jun-2010 15:59:46 UTC

3. 4589.in
   Created On:13-Jun-2010 08:13:07 UTC
   Last Updated On:13-Jun-2010 08:13:08 UTC


* 관련 정보

  - Mass infection of IIS/ASP sites - robint.us
  - Mass infection of IIS/ASP sites - 2677.in/yahoo.js
  - 대량 SQL Injection 공격 주의 (2009.12월)
Posted by 좋은진호

댓글을 달아 주세요

  1. 아이온 사용자 계정이 위험해 보이는군요.

    2010.06.24 01:07 [ ADDR : EDIT/ DEL : REPLY ]
    • 예. 서버의 취약점과 PC유저의 취약점을 모두 악용하는 공격자들 때문에, 관리자나 이용자나 보안에 신경써야 할 것 같습니다.

      2010.06.24 13:02 신고 [ ADDR : EDIT/ DEL ]
  2. 보안이란게 중요한줄 알면서도 문제가 생겨서야 찾아보게 되네요. 주말이라 밀린일 정리하다 보니 지인분의 웹서버에 http://www.xzjiayuan.com/ad/yahoo.js 파일이 로딩되고 있네요 ㅜㅜ.

    좋은 정보 감사합니다.~ 열심히 구독하도록 하겠습니다.

    2010.09.04 15:21 [ ADDR : EDIT/ DEL : REPLY ]
    • 문제 생기고 나서, 다음에 같은 조건으로는 당하지 않도록 조치취하는 것만 해도 그나마 다행인 것 같아요. 당하고도, 해당 파일만 쏙 지워서 처리하는 경우도 있어서... ^^

      감사합니다.

      2010.09.10 12:59 신고 [ ADDR : EDIT/ DEL ]

IT이야기2009. 11. 30. 19:18

'보안뉴스'에 '[단독] 엔프로텍트, 해킹당해 100만 고객 DB와 ID/PW 유출!' 이라는 기사가 올라왔다. 며칠전 Symantec Japan 사이트를 해킹했던 루마니아 해커 우누(Unu)가 SQL Injection 공격을 사용해서 http://www.nprotect.com/ 웹페이지를 해킹했다. ID, 메일주소, 비밀번호가 유출됐을 가능성이 있다.

공격한 해커의 블로그를 보면 다음과 같은 사항을 알 수 있다.
  • MySQL 5.0.x 버전 사용
  • DB데이터는 별도 내부망이 아닌 공인 IP를 통해서 통신 (211.200.28.x)
  • MySQL load_file() 함수를 사용할 수 있도록 되어 있어 시스템의 파일들도 쉽게 볼 수 있었다.
  • 비밀번호는 암호화 되어 있지 것으로 보인다. (추측)
  • 유저 DB건수는 약 108만여건

[+] Gathering MySQL Server Configuration …
Database: ??????
User: ????????@211.200.28.???
Version: 5.0.41-log
... 생략 ...
[+] Number of Rows: 1079630

nProtect는 홈페이지에 비밀번호 변경 공지가 띄워진 상태이고, '엔프로텍트 보안강화 조치를 위한 개인정보 변경 안내'라는 메일을 고객들에게 발송했다. 해킹에 대한 이야기는 없고, '고객님의 정보보호 강화를 위하여 패스워드(비밀번호)를 변경해 주세요'라는 내용으로 변경을 권고하고 있다. 개인정보가 유출되지 않았기를 바라지만, 가입된 사용자라면 빨리 변경하시길...

nProtect 비밀번호 변경 공지

[ nProtect웹사이트에 올라온 비밀번호 변경 공지 ]


이 번 nProtect 웹사이트 해킹을 보니 다음과 같은 생각이 든다.

  • 유저들의 보안강화를 위해 노력은 했지만, 정작 본인의 웹사이트 보안에는 구멍이 생겼다.
  • 중이 제 머리 못 깍는다 격이다.
  • 비교적 빨리 조치를 취해서 다행일지도 모르겠다.
  • 그럴지라도, nProtect 관계자분들은 이번 사건을 심각하게 생각해야 하고, 후속조치(망분리, 비밀번호 암호화 등)가 필요하다.

Posted by 좋은진호

댓글을 달아 주세요

  1. 엔프로텍트.....악성코드보다 더 악성코드스러운 녀석으로 원체 싫어했고 절대 설치도 안하는 녀석입니다 ㅎ

    2009.11.30 19:26 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • ㅎㅎ 다행입니다.
      주 PC는 리눅스라서.. ^^

      2009.11.30 19:29 신고 [ ADDR : EDIT/ DEL ]
    • 저는 메인을 매킨토시로 두고 써서 PC를 따로 켜지 않는 한 저런 녀석들하고 마주할 일이 없어서 좋습니다 ^-^;

      2009.11.30 19:31 신고 [ ADDR : EDIT/ DEL ]
    • 예. 메인이 맥이군요.

      엔프로텍트를 싫어하시는 분들이 많긴합니다만(딱히 저는 싫어할 일은 없어요.^^), 기존에 유저들이 싫어했던 부분을 벗어나는 방향으로 전환하기위해 애쓰시는 분들이 그 회사에 많을실 거라 믿습니다.

      물론 별개로 이번 웹사이트 보안 문제는 좀 심각하게 생각해야할 사항이구요.

      2009.12.01 00:08 신고 [ ADDR : EDIT/ DEL ]
  2. 정말 자기 본진도 못지키면서 동맹 헬프나간 꼴이군요;;
    그나저나 액티브x 없는 보안은 할수록 없는건가요;;

    2009.11.30 20:04 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • ^^ 안타깝긴 하지만, 웹사이트도 더 신경쓰게 되는 좋은 기회가 되기를 바래야죠.

      국내 웹사이트가 표준에서 점점 벗어나는 방향으로 가려다 보니깐, 액비트X를 더 써야만 하는 상황으로 변질되가고 있는 것 같습니다. https 등 SSL암호화만 잘 활용해서 걷어낼 수 있는 액티브X들이 많은데 말이죠..

      2009.12.01 00:03 신고 [ ADDR : EDIT/ DEL ]
  3. bugfree

    흠... 어찌 DB에 공인IP를 물려서... 그걸로 통신을 하다니...
    기본적인것도 안지키는것인가...ㅠ.ㅠ

    2009.12.01 00:44 [ ADDR : EDIT/ DEL : REPLY ]
    • 그러게요. 별도 내부망으로 운영했어야 하는데...

      2009.12.01 12:42 신고 [ ADDR : EDIT/ DEL ]
    • 내 맞습니다.
      그 점이 가장 아쉽습니다.
      이 기사 보자 마자, 제 대문부터 문제없는지 단속했습니다.

      2009.12.01 16:04 [ ADDR : EDIT/ DEL ]
  4. 외부에서 DB서버로 바로 접근 가능한거는 쫌...

    2009.12.01 02:01 [ ADDR : EDIT/ DEL : REPLY ]
    • 방화벽, ACL 등 으로 외부에서 직접 접근할 수 있도록 해두지는 않았겠지만,
      사무실에서는 ssh 접근하게 열어뒀을 수도 가능성은 있을 것 같네요. ^^

      2009.12.01 12:42 신고 [ ADDR : EDIT/ DEL ]
  5. 정말 중이 제 머리 못깎는 격이군요.

    2009.12.06 22:43 [ ADDR : EDIT/ DEL : REPLY ]
  6. cinsw

    정말 시원합니다.
    우리 다같이 공격합시다.
    키보드보안업체와 activx보안업체들이 망하고 금결원과 금감원도 망해야 대한민국이 산다.

    2010.01.24 19:24 [ ADDR : EDIT/ DEL : REPLY ]
    • 시원하신가요? 저는 안타까운데요. ^^
      망하기를 바라지는 않습니다. 방향 전환이 필요할 뿐...

      2010.01.25 12:41 신고 [ ADDR : EDIT/ DEL ]
  7. 익명

    비밀댓글입니다

    2010.07.03 00:08 [ ADDR : EDIT/ DEL : REPLY ]
    • '초나라의 창과 방패 장사꾼'이 생각나는게 해킹과 보안이겠죠. 하늘위에 또다른 하늘이 있다는 생각으로 자만과 방심을 하지 말고, 꾸준한 대응이 필요.

      2010.07.03 01:18 신고 [ ADDR : EDIT/ DEL ]

시스템이야기2008. 12. 11. 00:34
GreenSQL( http://www.greensql.net/ )은 MySQL에 대한 SQL 인젝션(Injection) 공격을 방어하는 프락시 개념의 어플리케이션이다. 웹페이지를 호출하면 DB쿼리는 먼저 GreenSQL 로 넘어겨지고, 검사한 후 정상적이면 MySQL 서버로 요청하는 과정을 거친다.
GreenSQL을 설치하고 실행과정은 이렇다. MySQL 서버는 기존 그대로 실행(디폴트 3306 포트)하고, GreenSQL을 3305포트로 실행(127.0.0.1:3305)한다. 이 때 GreenSQL은 MySQL 서버로 커넥션이 이뤄진다. 웹페이지는 DB커넥션을 GreenSQL의 3305포트로 커넥션하도록 변경해주면 된다. (MySQL을 3305로, GreenSQL을 3306으로 실행할 수도 있을 것이다.)

[ 이미지 출처 : GreenSQL 홈페이지 ]

DB 쿼리의 정상, 비정상은 어떻게 판단하는가?

1) '관리자가 실행할 SQL 유형'이나 '민간한 형태의 SQL 유형'(flush privileges, show 명령, 불법적 형태 등)을 패턴 매칭 방식으로 찾아서 불법 요청으로 간주한다. 예를들면 DB관리 명령어, DB 스키마를 변경시도하는 경우, 시스템 파일을 액세스하려는 경우 등을 불법으로 간주한다. 이 패턴에 대해서는 설정 파일을 통해서 변경이 가능하다.

2) 그후 각 쿼리 유형에는 점수가 할당되어 있는데, 이 점수를 합산한다. 지정된 값 이상이 될 경우, 경고 메시지를 뿌려주거나 차단할 수 있다. 유형은 다음과 같다.

* Access to sensitive tables increases risk query (users, accounts, credit information)
* Comments inside SQL commands increases query risk
* Usage of an empty password string
* Found ‘or’ token inside query
* Found SQL expression that always return true (SQL tautology)
* Comparison of constant values (SQL tautology)
* ... 등 ...

점수는 설정 파일을 통해서 변경이 가능하다. 다음은 샘플 설정 파일의 일부이다.
# If query risk is bigger then specified value, query will be blocked
block_level = 30
# Level of risk used to generate warnings. It is recomended to run application
# in low warning level and then to acknowledge all valid queries and
# then to lower the block_level
warn_level=20
# Risk factor associated with SQL comments
risk_sql_comments=30

차단된 샘플 로그이다. (sCag님 제공. 감사합니다.)

2008-12-09 16:54:18 mysql SELECT * FROM user WHERE name = 'x' or 1=1; --' AND pwd=SHA('')  blocked

GreenSQL에 대한 결론이다.

  • 멋진 생각이다. ^^
  • 패턴 설정과 차단수준을 유동적으로 변경 가능하다.
  • 대부분의 리눅스 배포판을 지원하며, FreeBSD도 지원한다.
  • 성능 테스트 결과 약간의 성능 저하가 발생한다. (2~12%정도)
  • 대용량 서비스에서 사용하기는 무리가 있을 것 같다.
  • 소규모 사이트나 웹호스팅에서는 고려해볼만 하다.
  • SQL Relay(DB 풀링과 로드발런싱 등)에서 제공하는 기능 등이 하나로 합쳐진다면 멋질 것 같다.
※ 개인적으로 GreenSQL을 운영하지 않습니다. 소규모 사이트, 웹호스팅에서 유용할 것 같아 소개해드리는 것이며, 운영상 궁금한 점을 저에게 질문하셔도 답해드릴 수 없습니다. ^^
※ 글쓰고 나니깐 sCag님도 GreenSQL 글을 쓰셨네. 안쓰실 것 처럼 말씀하시더니. ㅋㅋ

Posted by 좋은진호

댓글을 달아 주세요

  1. 아~ 연속으로 디비에 버닝하시네요^^
    괜찮은 기능인거 같습니다.

    추운데 감기 조심하세요~

    2008.12.11 00:41 [ ADDR : EDIT/ DEL : REPLY ]
    • 그러게. 계속 DB관련 글이네. 최근 3개라니. ㅋㅋ

      coffeejava도 감기 조심해~~ 요즘 감기 무섭더라. 글고, 크리스마스 이제 2주 남았다. 잘 보내~~ ^^

      2008.12.11 00:48 신고 [ ADDR : EDIT/ DEL ]
  2. 좋은진호님 안녕하세요 ^^ 오랜만이예요.
    GreenSQL 기능이 간단 명료하면서 아주 좋은 것 같군요.
    좋은 자료 감사합니다 :)

    2008.12.11 08:05 [ ADDR : EDIT/ DEL : REPLY ]
    • 잘 지내시군요.

      예. 괜찮죠? mysql자체에 저런 기능이 있으면 좋을 것 같아요. ^^

      2008.12.11 19:13 신고 [ ADDR : EDIT/ DEL ]