Monday, May 17, 2010

웹 프록시로 리버스터널 공격 차단하기

이전 포스트에서 밝힌 것처럼 Outbound 트래픽의 통제가 매우 중요해지고 있습니다.(Outbound 방화벽 정책으로 침해사고 줄이기)

하지만 본사 사무실 방화벽의 Outbound를 차단할 경우 업무가 불가능합니다.

이에 대한 해결 방안을 몇가지 생각해봤습니다.

1. 전용 웹 프록시 장비 설치 운영
2. 웹 프록시 서버 설치 운영

첫번째는 Cisco Ironport 같은 전용장비를 백본에 설치하는 것으로, 사용자PC 작업이 필요없어 간단하고 Sender URL DB를 기반으로하기 때문에 신뢰성이 있습니다. 다만 비용 부담이 있고 장애포인트가 될 수 있다는 단점이 있습니다.

두번째는 리눅스 서버에 오픈소스 프록시를 활용하는 것으로 적은 비용으로 간단하게 설치할 수 있다는 장점이 있는 반면, 사용자 PC 인터넷 설정에서 일일이 프록시를 지정해야 한다는 불편함이 있습니다. 솔루션으로는 Squid와 DansGuardian의 조합이 가장 유용할 것 같습니다.

- Squid : http://www.squid-cache.org/
- DansGuardian : http://dansguardian.org/

여기에 실시간 Malware URL 리스트를 제공하는 MalwarePatrol의 서비스를 이용하면 리버스터널이 아닌 정상적인 웹브라우저를 통한 Malware URL 접근도 어느정도 차단할 수 있습니다. 서버에 Cron 설정으로 새로운 리스트를 주기적으로 갱신하도록 할 수도 있습니다.

- MalwarePatrol : http://www.malware.com.br/lists.shtml

복잡한게 싫고 단순히 Squid만 이용하기 원할 경우에는 다음의 링크를 참고하면 됩니다.

- Squid만 이용해 간단하게 설정하기 : http://bit.ly/bnRrAI

웹 프록시 설치와 사용자 PC 프록시 설정을 마친 후, 방화벽에서 Outbound 트래픽중 프록시만 허용하고 나머지는 차단합니다.

이렇게 하면 사용자 PC에서 악성코드가 80, 443 포트 등으로 리버스터널을 여는 것을 막을 수 있습니다.

Wednesday, April 28, 2010

Outbound 방화벽 정책으로 침해사고 줄이기

그동안 여러차례 침해사고를 조사하면서 반복해 확인한 내용으로 대부분의 업체에서는 Outbound 방화벽 정책을 관리하고 있지 않습니다. 거의 모든 트래픽에 대해 다 허용하고 있습니다.

최근 침해사고를 보면 사회공학을 이용해 악성코드를 본사/지사/관계사에 설치해 먼저 장악하고 IDC에 접근해 악성코드를 설치해 중요 정보를 유출하고 있습니다.

그 과정에서 많이 쓰이는 방법이 Reverse Tunneling 기법인데, 방화벽에서 Outbound 만 차단해도 이 공격을 예방할 수 있습니다.

IDC는 꼭 필요한 서비스가 아닌 경우 Outbound를 허용할 이유가 없습니다.
백신과 MS Patch 등은 정기점검 시간에만 잠깐 정책을 열어 업데이트한다던지 관리서버나 프록시를 이용해 한 곳에서 관리하면 됩니다.
 
본사/지사/관계사의 경우 업무 때문에 무조건 차단을 할 수는 없는데, 적어도 업무 시간외(퇴근 후 출근 전)에 PC 전원을 끄거나 방화벽에서 야간과 휴일 시간에 Outbound 를 차단하도록 하면 됩니다. 

웹사이트 보안 코딩과 방화벽 아웃바운드 차단으로도 침해사고는 절반 이하로 줄어들 것입니다.

Thursday, April 8, 2010

로그온 유형 코드 이해하기

윈도우 보안감사 로그를 분석하다보면 많은 코드들이 나와 혼란스럽습니다.


이중 중요한 코드가 로그온 유형 코드인데요, 이를 통해서 침입자가 어떤 방식으로 접근했는지를 확인할 수 있습니다.

  1. 로그온 유형 2 (Logon Type 2) : 대화식

    • 콘솔에서 키보드로 로그인 (LogMeIn, TeamView, KVM 포함)


  2. 로그온 유형 3 (Logon Type 3) : 네트워크

    • 네트워크를 통한 원격 로그인. (파일 공유, IIS 접속 등)


  3. 로그온 유형 4 (Logon Type 4) : 자동실행(스케줄)

    • 스케줄에 등록된 배치 작업 실행시 미리 설정된 계정 정보로 로그인


  4. 로그온 유형 5 (Logon Type 5) : 서비스

    • 서비스가 실행될때 미리 설정된 계정 정보로 로그인


  5. 로그온 유형 7 (Logon Type 7) : 잠금해제

    • 화면보호기 잠금 해제시


  6. 로그온 유형 8 (Logon Type 8) : 네트워크 (평문암호)

    • 유형 3과 비슷하지만 계정 정보를 평문으로 전송시 발생 (ASP 기본 암호설정)


  7. 로그온 유형 9 (Logon Type 9) : 새 자격

    • 실행(RunAs)에서 프로그램 실행시 /netonly 옵션을 줄때


  8. 로그온 유형 10 (Logon Type 10) : 원격 대화식

    • 터미널 서비스, 원격 접속, 원격지원으로 로그인


  9. 로그온 유형 11 (Logon Type 11) : 캐쉬된 대화식

    • PC에 캐쉬로 저장된 암호로 자동 입력 로그인시

Thursday, April 1, 2010

DNS Sinkhole로 C&C 접속 차단하기

타켓 공격에서 커스터마이징 악성코드는 주로 C&C서버에 접속해 명령을 받아 동작합니다.

대부분 Dynamic DNS 를 사용하고 있기 때문에 IP로 차단하는 경우 시간이 지나면 IP가 변경되어 바로 우회가 됩니다.

방화벽중에 URL차단 기능이 있는 경우에는 C&C 서버 URL을 등록하면 되지만, 기능이 없거나 부하를 주는 경우에는 사용할 수가 없습니다.

이런 경우 내부 DNS 서버에 Zone 파일을 추가해 C&C 서버 주소를 등록해놓고 로컬IP를 할당하면 PC나 서버에 악성코드가 감염되더라도 C&C 서버에 접속하지 못해 추가적인 피해를 막을 수 있습니다.

이러한 기법을 DNS Sinkhole 또는 DNS blackhole 이라고 하는데 기본 컨셉은 비슷합니다.

KrCERT/CC에서 좋은 문서를 만들어서 배포하고 있으니 참고하시면 되겠습니다.

악성봇싱크홀 운영지침
Botnet C&C Handling with DNS Sinkhole

봇넷 URL List 를 서로 공유하면 좋겠는데, 배포하는 곳이 없네요...

Friday, March 26, 2010

Windows 이벤트 로그를 Syslog로 보내기

Unknown Attack을 탐지 대응하기 위해서 - 특히 본사 PC를 장악한 뒤 내부망으로 통한 공격이 증대하는 상황에서 - 보안 장비 로그 뿐만 아니라 시스템 로그와 애플리케이션 로그를 함께 분석하는 것이 점점 중요해지고 있습니다.

Unix 계열은 전통적으로 Syslog를 지원하기 때문에 별 문제가 되지 않습니다.
하지만 Windows 이벤트 로그는 별도의 바이너리 형식으로 저장되기 때문에 외부로 통합 관리하기가 어렵습니다. Vista 부터는 xml 형식으로 저장되기는 하지만 여전히 불편합니다.

오픈소스로 제공되는 Snare 를 설치하면 원하는 로그를 지정해 Syslog 로 보낼 수 있습니다. 



아래 화면처럼 보안감사 로그, 응용프로그램 로그, 시스템 로그 등을 지정할 수 있을 뿐만 아니라 보안감사 로그의 경우 성공감사, 실패 감사 등 필요한 내용을 지정해 보낼 수 있습니다. Include/exclude 를 이용해 필터링도 가능합니다.




이외에도 다양한 에이전트를 제공하는데, IIS 웹로그를 보내는데에는 Snare Epilog 를 사용할 수 있습니다.

아래 화면에서 보듯이 다양한 로그 형식을 지원합니다. IIS 뿐만 아니라 Exchange 로그도 Syslog 로 보낼 수 있습니다.


ArcSight 같은 메이저 SIEM도 Snare 를 이용해서 Windows 로그를 수집하고 있다고 합니다.

Tuesday, March 23, 2010

타겟 공격 탐지 방안


최근 계속 발견되는 타겟 공격에 대한 관제 탐지 방안을 고민하고 있습니다.

몇가지 아이디어를 계속 업데이트 합니다.

- 악성사이트 리다이렉트 탐지 : Cisco IronPort, AhnLab SiteGuard
- 악성코드 다운로드 탐지 : IDS 로그 (UPX)
- 파일 생성 탐지 : 시스템 로그
- 시간 변조 탐지(user32.dll) : 시스템 로그
- 자동 실행 레지스트리 추가 탐지 : 시스템 로그
- 리버스 터널 탐지 : 방화벽 service-policy 를 이용한 outbound non-http drop
- C&C 접속 탐지 : null DNS, URL 차단, 방화벽 봇넷 차단 기능 이용, DNS 쿼리 탐지
- 계정 생성 탐지 : 시스템 로그
- 계정 권한 상승 탐지 : 시스템 로그
- 로그 변조 탐지 : 시스템 로그
- 내부 스캔 탐지 : IDS 로그
- AD 암호 DB 접근 탐지 : 시스템 로그
- VPN 계정 생성 탐지 : VPN 로그, 시스템 로그

Friday, March 19, 2010

Free Pen Testing Methodologies

1. Open Source Security Testing Methodology Manual (OSSTMM)
 - Focus is on transparency and getting business value
 - Useful broad description of categories of testing

2. NIST Guideline on Network Security Testing
 - Covers process, roles, and some sample tools
 - High-level, but provides great incentive for management
 - NIST Special Publication 800-53A

3. OWASP Testing Guide
 - Focus is on Web Application Testing

4. Penetration Testing Framework
 - Focus is on network penetration tests
 - Very deep, with specific tools and commands
 - Includes Recon, Social Engineering, Scanning/Probing, Enumerations, etc

Vulnerability Research Sources

US-CERT : www.us-cert.gov/cas/techalerts
Mitre CVE Repository : http://cve.mitre.org 
Secunia : http://secunia.com
Hackerstorm : www.hackerstorm.com
FrSIRT : www.frsirt.com

Thursday, March 18, 2010

Aurora 악성코드 분석 (HBGary)

메모리 포렌식으로 유명한 HBGary에서 공개한 Aurora 악성코드 분석 자료를 검토해보았습니다.(원문 http://www.hbgary.com Download PDF )

특이한 것은 작년 침해사고에서 여러차례 발견되었던 Dynamic DNS 주소들이 보인다는 점이네요.

*.homeunix.com
*.homelinux.com
*.ourhobby.com
*.3322.org
*.2288.org
*.8866.org
*.ath.cx
*.33iqst.com
*.dyndns.org
*.linode.com
*.ftpaccess.cc
*.filoups.info
*.blogsite.org

급한대로 몇가지 대응 방법이 있을 것 같습니다.

- Firewall http inspection 기능으로 outbound 비정상 트래픽 차단(80, 443)
- F/W, IPS, UTM에서 url 차단
- DNS sinkhole 처리
- SenderDB 기반의 Content Filtering 솔루션 도입(Cisco IronPort, ASA Botnet 차단기능)

Wednesday, March 17, 2010

<"Aurora" 대응 권고사항> 요약

iSEC 리포트를 요약 번역했습니다.(원문 Aurora Response Recommendations)
- Aurora구글해킹하기위해 침입자가 자체 제작한 악성코드

* 침입 경로

1. 사회공학 기법을 이용해 악성코드가 있는 웹사이트에 접속 유도(종종 해외지사에서 발생)
2. 이 웹사이트를 통해 웹브라우저의 취약점을 이용한 악성코드 피해시스템에 실행
3. 악성코드 C&C 서버에 접속 (주로 Dynamic DNS 주소 이용)
4. 침입자는 캐시나 로컬에 저장된 암호를 이용해 사내 네트워크 접근 권한 획득
5. 침입자는 Active Directory 서버에 접속하여 암호 데이터베이스 획득 시도
6. 침입자는 획득한 계정으로 VPN 접근 권한을 얻거나 가짜 VPN 계정을 생성
7. 이후 침입자의 목적에 따라 내부 시스템 장악 및 자료 유출

* 전술적 권고사항

1. DNS 트래픽을 로그로 저장하고 감시하라
- 내부 DNS 쿼리를 로깅하라
- 특히 Dynamic DNS를 주시해라
- 반복적으로 Dynamic DNS에 쿼리하는 호스트를 조사해라

2. 내부 네트워크 감시 솔루션(IDS)을 구축하라

3. 내부, 외부 네트워크 트래픽을 통제하라
- 아웃바운드 C&C 통신 채널을 통제하고 감염 호스트의 로그를 추적하라
- 컨텐츠 스캐닝 웹프록시(Cisco IronPort 같은)를 구축하고 충분한 기간 로그를 저장하라

4. 로그의 종류를 확대해 통합 저장하라
- 윈도우 시스템의 보안, 시스템 이벤트 로그
- 도메인 컨트롤러의 보안, 시스템, 어플리케이션 이벤트 로그
- UNIX 서버의 로그인, SSH 로그
- 모든 내부 DNS 쿼리
- IDS 이벤트 로그
- 웹 프록시 로그
- 인트라넷 사이트와 어플리케이션의 웹 접속 로그

5. 윈도우 단말 통제를 강화하라
- 어드민 권한 사용을 중단하라
- 비 MS 제품(Adobe Flash/Reader, Sun Java...)에 대한 업데이트 방안을 적용하라
- 어플리케이션 사용 제안을 고려하라

6. VPN 접속, 등록을 감시하라
- 침입자는 커스텀 악성코드를 통한 C&C 리버스 터널에 의존하기 보다는 정상적인 VPN 접속을 선호한다

7. 루트킷 스캐너를 이용해 검사하라
- 침입자는 커스텀 악성코드와 함께 다양한 종류의 표준 루트킷을 같이 사용하는 경향이 있다
- 악성코드 스캐너의 "Full Scan" 옵션을 이용해 루트킷 검사를 실시하라

* 전략적 권고사항

1. 보안담당팀을 만들어라
- 자체 팀을 만들던지 MSSP를 이용하던지

2. 해외지사에 대한 보안을 강화하라
- 많은 경우 해외지사의 시스템이 사회공학 기법에 의해 악성코드에 감염된다

3. 중요 데이터에 대해 등급을 매기고 목록화하라
- 그래야 침해사고 발생시 조사 담당자가 중요한 시스템에 대한 공격과 피해를 신속히 조사할 수 있다

4. Active Directory 네트웍의 보안을 강화하라
- 침입자는 아주 신중하고 참을성 있게 기다리면서 AD의 NTLM 해쉬를 해킹한다
- 도메인 관리 권한 로그인을 스마트 카드로 제한하라
- 공유 로컬 계정을 사용하지 마라
- 도메인 관리 권한을 자동화된 프로세스에 사용할 경우 주의하라
- 기타 등등

* 교훈

1. 침입자는 대문을 무시하고 있다
- 침입자는 일반 직원을 대상으로 하는 "백도어" 공격이 주요 기업을 장악하는데 훨씬 더 효율적임을 배웠다

2. 현존하는 안티바이러스 제품은 별 도움이 안된다
- 룰이나 휴리스틱 탐지 기반의 안티바이러스는 침입자가 커스터마이징된 악성코드를 작성할 경우 쉽게 우회된다

3. 주기적 패치도 충분하지 않다
- 제로데이 공격에서는 패치 자체가 없다

4. 당신은 지금 빅리그(큰물)에서 놀고 있는 것인지도 모른다
- 침입자는 극도로 전문화되어 있다. 포춘 500대 기업도 뚫리는 마당이다
- 당장 효율적인 제품을 도입하고 MSS 서비스를 받아라