반응형
Posted by 1010
반응형
파일복구 툴


datamagic1987.exe

파일완전삭제툴


wipemagic098c.zip
Posted by 1010
98..Etc/Etc...2008. 7. 24. 11:54
반응형

윈도우의 Registry변경 60가지팁

윈도우의 숨겨논 60가지팁

1. 여러 파일 이름을 한꺼번에 바꾸자
윈도우즈 XP는 여러 개의 파일 이름을 한꺼번에 바꾸는 재주가 있다. 파일 형식이 서로 달라도 같은 이름을 붙일 수 있다.
이름을 바꿀 파일을 모두 고르고 마우스 오른쪽 버튼을 누른 다음 ‘이름 바꾸기’를 고른다.
윈도우즈 XP에서 여러 개의 파일 이름을 바꿀 때는 첫 번째 파일에 이름만 쓴다. 예를 들어 ‘PC사랑’이라고 하면 첫 번째 파일은 ‘PC사랑’이 되고 나머지 파일들은 ‘PC사랑 (1)’ ‘PC사랑 (2)’ 등으로 바뀐다. 만약 첫 번째 파일 이름을 ‘PC사랑 (10)’이라고 하면 그 다음부터는 ‘PC사랑 (11)’ ‘PC사랑 (12)’이 된다.


새 이름을 쓰고 엔터 키를 누른 다음 이름을 바꾼 파일 다음에 있는 것들은 새 이름 뒤에 1부터 숫자가 붙는다.

2. 갑자기 재 부팅 되는 윈도우즈 XP 때려잡기
윈도우즈 XP는 너무 민감한(?) 나머지 프로그램에 조그만 오류가 생기면 저절로 재 부팅 된다. 물론 그 오류가 심각할 때도 있지만 별 문제가 되지 않는 데도 PC를 재 부팅해서 이용자를 귀찮게 한다. 프로그램에 오류가 있어도 시스템이 재 부팅 되지 않게 해보자.
바탕화면의 ‘내 컴퓨터’ 아이콘을 마우스 오른쪽 버튼으로 누르고 ‘속성’을 고른 다음 ‘시스템 등록정보’ 창의 ‘고급’ 탭에서 ‘시작 및 복구’ 칸의 ‘설정’ 버튼을 누른다.
‘시스템 오류’ 칸에 있는 ‘자동으로 다시 시작’의 체크 표시를 없애고 ‘확인’ 버튼을 누른다.

이제 윈도우즈 XP가 제멋대로 꺼지지 않는다.

3. 오류 보고 창 나타나지 않게 하기
윈도우즈 XP부터는 프로그램들이 에러를 일으켰을 때 그에 대한 자세한 사항을 마이크로소프트사로 보고한다. 이런 오류를 매번 보고하는 것도 지겹고, 보고해도 해결되지 않으므로 오류 보고 창이 뜨지 않게 해보자.
시작 → 제어판 → 성능 및 유지 관리 → 시스템으로 간 뒤 시스템 등록정보 창이 뜨면 ‘고급’ 탭에서 아래에 있는 ‘오류 보고’ 단추를 누른다. 오류 보고 대화 상자에서 ‘오류 보고 사용 안 함’을 고르고 ‘확인’ 버튼을 누른다.

4. 성인광고 나가 있어~
성인광고 사이트도 아닌데 자꾸 성인광고가 뜬다. 한두 개 정도야 바로 닫아버리면 그만이지만 여러 개의 창이 마구 쏟아져 나오면 윈도우즈 XP가 먹통이 되기도 한다. 성인광고를 막아주는 프로그램이 있지만, 괜히 하드디스크 용량만 차지하므로 윈도우즈 XP 자체에서 해결하자.
인터넷 익스플로러 메뉴에서 도구 → 인터넷 옵션을 고른 다음 ‘일반’ 탭의 임시 인터넷 파일 항목에 있는 ‘설정’ 단추를 누른다. ‘설정’ 창이 뜨면 ‘개체보기’를 누른다.
탐색기가 뜨면서 파일 이름이 나온다. 이 중에서 sender control이라는 파일을 찾아서 지우면 성인광고 사이트가 뜨지 않는다.

‘개체보기’를 누르면 내 PC에 깔려있는 개체들이 보인다.

5. 내 컴퓨터에서 ‘공유 문서’ 없애기
윈도우즈 XP에는 여러 이용자가 같이 쓸 수 있는 공유 문서가 있다. 공유 문서에는 공유 그림, 공유 음악이 있는데 집에서 혼자 쓰는 사람에게는 필요 없다. 용량만 차지하는 공유 문서를 지워보자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기를 띄운 다음,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders에 있는
{59031a47-3f72-44a7-89c5-5595fe6b30ee}를 찾아 지운다.

이 레지스트리를 지우면 공유 문서가 보이지 않는다.

6. ‘시작’에서 문서메뉴 지우기
문서 메뉴가 있으면 작업 했던 문서를 쉽게 불러올 수 있지만, 길게 늘어져 있어 지저분하다. 문서 메뉴를 잘 쓰지 않는다면 깔끔하게 지우자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 오른쪽에 마우스를 놓고 새로 만들기 → DWORD 값을 고른 뒤,
‘새 값’의 이름을 NoRecentDocsMenu 라고 바꾼 뒤 마우스로 두 번 눌러 값 ‘1’을 넣는다.

문서 메뉴가 없어졌다. 메뉴가 한결 깔끔해 보인다.

7. 바탕화면에 내 컴퓨터 불러오기
윈도우즈 XP를 깔고 나면 바탕화면에 휴지통만 보인다. 윈도우즈 98처럼 바탕화면에 기본 아이콘이 보이게 하려면 바탕화면에서 오른쪽 마우스 버튼을 누른 뒤 → 속성 → 바탕화면 → 바탕화면 사용자지정을 차례로 누르고 ‘내 바탕화면에 아이콘’에서 골라 누르면 된다.

8. 휴지통을 변기통으로 바꾸자
다른 아이콘들은 이름을 바꿀 수 있지만, 휴지통은 ‘이름 바꾸기’가 없다. 하지만 PC사랑 사전에 불가능이 있던가? 휴지통 변기통으로 변신시키자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
HKEY_CLASSES_ROOT\CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\ShellFolder의 오른쪽 창에 있는 attributes 키를 마우스 오른쪽 단추로 누른 뒤 ‘수정’을 고른다. ‘바이너리 값 편집’ 창의 ‘값의 데이터’ 칸에서 40 01 00 20 대신 70 01 00 20을 집어넣는다. CallForAttributes=dword:00000040 의 값만 지우자.

재 부팅하고 휴지통 위에서 마우스 오른쪽 버튼을 누르면 ‘이름 바꾸기’가 생긴다.

9. 입력 도구 모음 없애기
윈도우즈 XP ‘서비스 팩이 깔려 있다면 입력 도구 모음을 간단히 닫을 수 있지만 서비스 팩이 없다면 이것을 지울 수 없다. 입력 도구 모음은 한자를 입력할 때 편하지만 게임을 자주 하는 이들에겐 눈에 거슬릴 뿐 아무런 도움을 주지 않는다. 입력 도구를 쓰지 않는다면 이 방법으로 입력도구를 날려버리자.
제어판 → 국가 및 언어 옵션 → 언어 → 자세히 → 설치된 서비스에서 ‘추가’를 눌러 영어를 새로 넣는다. 그 다음 한글 입력기(IME2002)를 고르고 기본 설정 → 입력 도구모음에서 모든 체크를 끄면 도구가 사라진다.

10. 로그 온 할 때 예쁜 메시지 띄우기
회사, 학교 등 네트워크에 연결된 PC를 켜면 ‘로그온’ 화면이 뜬다. 이 곳에 톡톡 튀는 예쁜 메시지를 넣어보자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon을 찾는다.
오른쪽 창에서 마우스 오른쪽 버튼을 누르면 뜨는 ‘새로 만들기’ 메뉴에서 ‘문자열 값’을 고른 뒤, 문자열 이름을 LegalNoticeText 라고 써 넣고 엔터 키를 누른다. 이미 있는 파일이라면 새로 만들지 않아도 된다.
앞에서 만들어 놓은 문자열을 마우스로 두 번 누르면 ‘문자열 편집’ 대화 상자가 나타난다.
‘값 데이터’ 상자에 화면에 표시할 내용을 써 넣고 ‘확인’ 버튼을 누른다.
같은 방법으로 LegalNoticeCaption 이라는 문자열 값을 만들고 ‘값 데이터’에 메시지 상자의 제목을 적은 뒤 ‘확인’ 버튼을 누른다. PC를 껐다 켜면 메시지 상자가 표시된다.

11. URL 입력은 단축 키로 간단히!
PC사랑 홈페이지에서 지난달 기사를 찾아보고 싶을 때 주소 창에 www.ilovepc.co.kr을 모두 적지 않아도 된다. ilovepc만 쓰고 Ctrl+Enter 키를 누르면 http://www와 co.kr이 저절로 써진다.
.com로 끝나는지, co.kr이나 net으로 끝나는지 기억나지 않을 때 활용하면 편하다.

12. ‘드라이버가 맞지 않는다’는 메시지가 떠요!
윈도우즈 XP의 기본 드라이버를 쓰다가 부품 회사에서 만든 드라이버를 깔려고 하는데 ‘호환성 테스트에 통과하지 못했다’는 메시지가 종종 뜬다. MS가 테스트하지 않아 성능을 믿을 수 없다는 내용이다. 많은 드라이버가 테스트를 거치지 않았지만 쓰는 데는 이상이 없다. 그렇다면 이 메시지를 굳이 띄울 필요가 없다.
‘내 컴퓨터’를 마우스 오른쪽 버튼으로 누르고 ‘속성’을 고른 다음, ‘하드웨어’ 탭에서 ‘드라이버 서명’을 누른다. 여기서 ‘무시’를 고르면 다시는 호환성 메시지가 뜨지 않는다.

‘무시’를 고르면 드라이버를 깔 때 호환성 여부를 묻지 않는다.

13. 시스템 복원이 컴퓨터를 느려지게 한다?
‘시스템 복원’은 만일의 사고를 대비해 시스템 내용을 그대로 기억하는 것이다. 오류가 발생하면 사고가 나기 전 상태로 돌아가기 위해서다. 파일을 읽고, 쓰고, 지울 때마다 system volume information 폴더에 시스템 복원용 백업 파일이 저장된다. 이 때문에 PC 속도가 느려지는데, ‘시스템 복원’을 끄면 속도가 한결 빨라진다.
‘내 컴퓨터’ 아이콘을 마우스 오른쪽 버튼으로 누르고 ‘속성’을 고른다. 시스템 등록정보’ 창이 열리면 ‘시스템 복원’ 탭을 누른 다음 ‘시스템 복원 사용 안 함’을 고르고 ‘확인’ 버튼을 누르면 된다.

시스템 복원을 끄면 PC가 한결 빨라진다.

14. 하드가 이유 없이 데이터를 읽을 때는?
아무런 작업도 하지 않는데 드르륵~ 거리며 하드디스크를 읽는 소리가 난다. 본체의 HDD LED도 깜박인다. 왜 아무런 명령을 내리지 않은 하드디스크가 작동을 할까? ‘인덱싱 서비스’ 때문일지 모르므로 이 명령을 끈다. 인덱싱 서비스는 하드에 있는 파일을 정리해 빨리 뜨게 해주지만 명령을 꺼도 PC를 쓰는 데 별 문제가 없다.
제어판 → 관리도구 → 서비스 → indexing service → 속성 → 사용안함을 누른 뒤 재 부팅하면 하드가 잠잠해진다.

15. 바탕화면 단축 아이콘에서 화살표를 지우자
프로그램 파일과 단축 아이콘을 구분하기 위해 단축 아이콘에는 ‘화살표’가 붙어 있다. 알아보긴 쉽지만, 왠지 지저분해 보인다. 화살표를 지우자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
HKEY_CLASSES_ROOT\lnkfile를 고른 뒤 오른쪽 창에서 → isshortcut를 지우면 된다.


화살표가 없어 아이콘이 깔끔하게 보인다.

16. 폴더 창을 재 빨리 연다.
탐색기에서 폴더를 이동하다보면 폴더 안에 있는 파일을 읽어 들이는 속도가 느리다는 느낌을 지울 수 없을 때가 많다. 느린 속도 때문에 답답할 때는 다음과 같이 해보자.
시작 버튼 → 설정 → 제어판 → 폴더옵션을 차례로 고른다.
‘보기’ 탭의 ‘고급설정’ 칸에서 ‘폴더 및 바탕화면 항목에 팝업 설명 표시’ ‘압축된 파일과 폴더를 다른 색으로 표시’ ‘독립된 프로세스로 폴더 창 실행’ ‘네트워크 폴더 및 프린터 자동 검색’ ‘폴더 팁에 파일 크기 정보 표시’의 체크 표시를 없앤다.

이렇게 해두면 폴더 창이 조금 더 빨리 열린다.

17. 윈도우즈 XP에서 도스 게임 하기
윈도우즈 XP는 32비트 운영체제여서 16비트 도스 게임을 누르면 실행이 되지 않고 창이 꺼져 버린다. 도스 게임을 하고 싶다면 VDM(virtual DOS machine)이란 프로그램을 내려 받아 깐다. exe 실행파일을 골라 오른쪽 마우스 단추로 메뉴를 부른 뒤 run with VDMS를 누르면 된다. VDM은 PC사랑 홈페이지 ‘프로그램 타입 캡슐’에서 내려 받을 수 있다.

윈도우즈 XP에서 추억이 담긴 게임을 즐겨보자.


TR>
18. 메신저로 파일을 받을 수 없다고?
윈도우즈 XP는 인터넷 연결 방화벽 설정 부분이 있어서 외부에서 내 PC로 접속하는 것을 막는다. 하지만 메신저나 P2P 프로그램을 쓸 때는 이 방화벽 때문에 서로 자료를 주고받지 못한다. MSN 메신저를 비롯해 메신저가 P2P 프로그램으로 자료를 주고받을 때 방화벽이 가로막으면 다음과 같이 해결한다.
바탕화면의 ‘네트워크 환경’의 ‘속성’을 연 다음 ‘로컬 영역 연결’을 한번 누른다.
마우스 오른쪽 단추를 눌러 ‘속성’을 연 뒤 고급 → 인터넷 연결 방화벽을 끈다.

인터넷 연결 방화벽을 끄면 메신저나, P2P 프로그램을 문제없이 쓸 수 있다.

19. 윈도우즈 XP에서 디스크 검사를 하자
윈도우즈는 문제가 있을 때 ‘디스크 검사’를 해 오류를 고친다. 하지만 윈도우즈 XP는 윈도우즈 98과 달리 ‘디스크 검사’ 메뉴가 따로 없다. 보조프로그램에 등록 되어 있지도 않다. 그렇다고 디스크 검사가 아예 없는 건 아니다.
내 컴퓨터 → 로컬 디스크(c:)를 오른쪽 마우스로 메뉴를 불러 ‘속성’을 누른다.
‘도구’ 탭에 가면 ‘디스크 검사’가 있다. 모든 창과 프로그램을 다 끄고 검사하도록 한다.

윈도우즈 98보다 메뉴가 간단하고 검사가 빠르다.

20. 지워도 보이는 프로그램 지우기
안 쓰는 프로그램을 제어판 → 프로그램 추가/제거에서 지우지 않고 탐색기로 폴더만 지우면 프로그램 목록에 남는다. 이것이 쌓이고 쌓이면 프로그램 설치가 안 되고, 윈도우즈까지 느려진다. 흔적이 남지 않게 깔끔하게 지워보자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall에 들어가 지울 프로그램을 골라 지우면 된다.

21. 시스템 종료 창 바꾸기
여러 이용자가 하나의 PC를 쓸 때 시스템을 켜면 시작 화면이 뜬다. 여기에는 각 이용자가 등록되어있고 누가 어떤 프로그램을 쓰는지 간단히 나와 있다. 내가 무엇을 할지 다른 사람이 보는 게 싫다면 윈도우즈 98처럼 이름만 보이므로 보안이 더 낫다. 윈도우즈 98처럼 바꿔보자.
시작 버튼 → 설정 → 제어판 → 사용자 계정을 고른 다음 ‘사용자 로그온 또는 로그오프 방법변경’을 누른다.
‘새로운 시작 화면 사용’의 체크 표시를 없애고 ‘옵션 적용’ 버튼을 누르면 로그 창이 고전적인 형태로 바뀐다.

‘새로운 시작 화면 적용’을 누르면 윈도우 98처럼 시스템 종료 창이 바뀐다.

22. 꼭꼭 숨겨진 윈도우즈 XP 관리 프로그램들
윈도우즈 XP의 시작 버튼 → 실행을 누르면 ‘실행’ 창이 열린다. 여기에 명령을 써넣으면 작업이 바로 실행된다. ‘실행’ 창에 쓸 수 있는 명령어와 하는 일은 다음과 같다.

compmgmt.msc 컴퓨터 관리와 관련 시스템 도구 창을 연다.
diskmgmt.msc 디스크 관리 창을 띄운다.
eventvwr.msc 윈도우즈 메시지가 담긴 이벤트를 본다.
gpedit.msc 도메인 또는 액티브 디렉토리나 PC에 저장되어 있는 조직 단위에 연결된 그룹 정책 개체를 편집하는 ‘로컬 컴퓨터 정책’을 연다.
perfmon.msc 시스템 성능을 감시하고 로그와 경고를 기록한다.
secpol.msc ‘로컬 보안설정’을 열어 도메인의 PC 보안 정책을 정의하게 도와준다.
devmgmt.msc 하드웨어 장치 목록을 보고 각 장치에 대한 특성을 정하는 ‘장치관리자’ 창을 연다.
dfrg.msc ‘디스크 조각모음’ 창을 연다.
fsmgmt.msc 공유 폴더를 띄운다.
lusrmgr.msc 로컬 이용자를 확인한다.
rsop.msc ‘정책의 결과 집합’ 창을 연다.
services.msc ‘서비스’ 창을 띄운다.

23. 메뉴를 빨리 빨리
제원이 낮은 PC를 쓰고 있다면 창이 뜰 때 나타나는 갖가지 효과를 없애 창을 빨리 띄워보자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
HKEY_CURRENT_USER\ControlPanel\desktop에서 MenuShowDelay을 살펴보면 400
으로 되어있다. 이 값을 0으로 고쳐주면 된다.

0으로 바꾸면 메뉴가 빨리 뜬다.

24. 하드디스크 파티션 하기
윈도우즈 98에서는 ‘fdisk’라는 프로그램으로 하드디스크를 나눠 썼다. 윈도우즈 XP는 이 fdisk프로그램이 없어진 대신 파티션을 쉽게 할 수 있는 메뉴가 생겼다.
시작 → 설정 → 제어판 → 관리도구 → 컴퓨터 관리 → 디스크 관리에 들어가면 하드디스크의 갖가지 정보가 뜬다. 파티션 하려는 하드디스크에 오른쪽 마우스를 눌러 메뉴를 불러온다. 파티션 뿐 아니라 하드디스크를 매만질 수 있는 갖가지 메뉴가 있다.

윈도우즈 XP는 복잡한 하드디스크 파티션을 간단히 끝낸다.

25. 내 PC 시각이 맞지 않을 때
작업 표시 줄 오른쪽에 있는 시계를 1분 1초도 틀리지 않게 맞춰보자. 먼저 작업 표시 줄의 시계를 누르고 ‘인터넷 시간’이란 탭을 누른다. ‘인터넷 시간 서버와 자동으로 동기화’를 체크하고 ‘지금 업데이트’를 누르면 된다.

인터넷 서버에 있는 정확한 시계와 연결되어 제대로 된 시간을 보여준다.

26. 회사 이름과 이용자 이름 바꾸기
윈도우즈 XP를 처음 깔 때 넣었던 회사 이름과 이용자 이름을 바꾸고 싶다면, 레지스트리를 매만지자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion 에 들어가면 RegisteredOrganization과 RegisteredOwner라는 값이 있다.
RegisteredOrganization은 회사 이름, RegisteredOwner는 사용자 이름이다.
입맛에 맞게 바꾼 뒤 재 부팅하면 바뀐다.

27. CD롬 자동 삽입 통지 막기
윈도우즈 XP는 윈도우즈 98처럼 ‘자동 삽입 통지’ 메뉴가 없다. CD롬을 넣으면 CD롬 내용이 알아서 뜨는데, 이 기능이 귀찮다면 레지스트리를 만져 끄면 된다.
시작 → 실행에서 regedit 라고 쓰고 엔터 키를 누르면 레지스트리 편집기가 뜬다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet001\Services\Cdrom에서 Autorun값을 `0`으로 하면 CD를 넣어도 CD가 자동 실행되지 않는다.

28. 인터넷 화면이 제대로 안보일 때
인터넷 게임을 하려고 하는데 화면이 제대로 뜨지 않는다면 어떻게 할까? 인터넷을 띄우면 그 사이트에 맞는 개체가 깔리는데, 이 개체가 제대로 깔리지 않을 때 이런 일이 일어난다.
제어판 → 인터넷 옵션 → 일반 탭에서 임시 인터넷 파일의 ‘설정’ 메뉴를 찾는다.
‘개체 보기’를 누르면 내 PC에 깔려 있는 갖가지 개체들이 보인다. <Ctrl + A> 키를 눌러 ‘전체 선택’을 한 뒤 Del 키를 눌러 지운다. ‘예’를 누르면 말끔히 지워진다. 다시 인터넷 사이트에 들어가면 개체가 깔리기 전에 ‘예’ ‘아니오’라는 창이 뜬다. ‘예’를 누르면 개체가 바로 깔려 인터넷 화면을 제대로 볼 수 있다.

'예‘를 눌러야 화면을 띄우는 데 필요한 개체가 깔린다.

29. ‘도움말 및 지원’ 메뉴 지우기
윈도우즈를 쓰다가 모르는 것이 있으면 ‘도움말’을 보지만 사실 별 도움이 되진 않는다. 차라리 이것을 없애면 프로그램이 띄울 때 조금 더 빨리 뜬다.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer에 간 뒤 ‘새로 만들기’ 에서 DWORD값을 만든다.
이름을 NoSMHelp으로 하자. 마우스를 두 번 눌러 데이터 값을 불러와 ‘1’이라고 넣자.
재 부팅 하면 ‘도움말 및 지원’ 메뉴가 뜨지 않는다.

30. 쓰지 않는 MSN 익스플로러 지우기
윈도우즈 XP를 처음 깔면 MSN 익스플로러가 깔려 있다. MSN 익스플로러는 MSN과 핫메일을 쓰는 사람에게 유용한 프로그램이지만 쓰지 않는다면 이 프로그램을 지워 하드디스크 용량을 늘이자.
시작 → 모든 프로그램 → MSN Explorer 아이콘에 마우스를 갖다 댄다. 오른쪽 마우스 버튼으로 메뉴를 불러와 속성을 누른다. 등록정보 창이 뜨면 ‘대상 찾기’를 누른다.
Setup 폴더를 열어 보면 msnunin이란 프로그램이 있는데, 이것이 MSN Explorer을 지우는 프로그램이다. 마우스로 두 번 눌러 시작 메뉴에 있는 내 PC에서 MSN 익스플로러를 지운다.

꼭꼭 숨어 있는 이 파일을 누르면 MSN 익스플로러가 지워진다.

31. 종료 로고만 뜨고 전원이 안 꺼질 때
‘시스템 종료’를 누르면 ‘이제 시스템 전원을 끄셔도 됩니다’라는 창만 뜨고 꺼지지 않는 일이 있다. 이럴 때 제어판 → 전원 옵션 → APM 탭으로 들어가 ‘최대 절전 모드 사용’을 체크하면 된다.

32. CD를 굽고 있는 도중 PC가 먹통이 될 때
주로 4배속 아래의 낡은 CD-RW 드라이브에서 이런 일이 생긴다.
제어판 → 시스템 → 하드웨어 탭의 ‘장치 관리자’로 들어간다.
IDE ATA, ATAPI 컨트롤러를 눌러 광학 드라이브가 꽂힌 보조 IDE 채널을 두 번 누른다. 전송모드가 DMA로 되어 있다면 PIO로 바꾼 뒤 적용을 누른다.

PIO 모드로 바꾸면 오래된 CD-RW라도 CD를 척척 구워낸다.

33. 640 × 480 해상도로 띄우기
윈도우즈 XP 제어판 → 디스플레이 등록정보를 보면 800 × 600이 가장 낮은 해상도로 되어 있지만, 640×480 해상도를 불러 올 수 있다.
제어판 → 디스플레이 → 설정의 ‘고급’ 단추를 누른다.
‘어댑터’ 탭에 들어가면 아래에 ‘모든 모드 표시’라고 되어있다. 이곳을 누르면 640×480 해상도에 256 컬러로 바꿀 수 있다.

256 컬러가 아니면 뜨지 않는 고전 게임을 즐길 때 좋다.

34. 바탕 화면 보기 아이콘 만들기
바탕화면 보기 아이콘은 모든 창을 최소화 시킬 때 편하다. 이 아이콘을 실수로 지웠다면 당황하지 말고 새로 만들어보자. 시작 → 보조프로그램 → 메모장을 열어 다음과 같이 쳐 넣는다.

[Shell]
Command = 2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

‘다른 이름으로 저장’을 고른 뒤 ‘바탕화면보기.scf'라고 저장하면 끝난다.

저장한 파일은 작업 표시 줄의 ‘빠른 실행’ 안에 끌어다 놓자.

35. 메신저 광고 메시지는 이제 그만!
인터넷 사이트에 가입하지 않았는데도 MSN 메신저를 통해 스팸 쪽지가 계속 날아온다. 이것은 사실 MSN 메신저와 아무 상관이 없다. 메시지를 보내는 이들은 무작위로 IP 주소를 뽑아 윈도우즈 NT 계열의 기본 서비스인 내부 네트워크를 이용해 광고성 쪽지를 보내는 것이다. 이 쪽지를 받지 않으려면 다음과 같이 한다.
제어판 → 관리도구 → 서비스 → Messenger에서 시작 유형을 ‘시작 안함’으로, 서비스 상태를 ‘중지’로 하면 된다.

이제 지긋지긋한 스팸 메시지가 오지 않는다.

36. 윈도우즈 포맷하기 전, 즐겨찾기 백업은 필수
윈도우즈를 포맷하고 다시 깔고 나서 해야 할 일이 너무 많다. 즐겨찾기 사이트를 일일이 다시 등록하는 일도 장난이 아니다. 하지만 즐겨찾기가 저장되는 디렉터리만 알고 있으면 이런 노가다(?)를 하지 않아도 된다.
윈도우즈를 포맷하기 전에 c:\doc-uments and settings\이용자 이름\favorites를 통째로 다른 드라이브에 복사해 놓자. 윈도우즈를 다시 깐 뒤 같은 디렉터리로 복사한다. 인터넷의 즐겨찾기를 열면 고스란히 사이트가 들어있다. 하지만 전에 저장했던 순서까지 그대로 열리는 것은 아니므로 약간 손봐야 한다.

37. 하위 폴더를 재 빨리 연다
하위 폴더를 열려면 현재 폴더를 마우스로 두 번 누르거나 그 옆에 있는 +를 고른다. 따라서 디렉토리가 여러 단계로 되어 있으면 필요한 것을 열기위해 이일을 여러 번 반복해야 한다. 하지만 맨 아래에 있는 것을 단 한번에 여는 방법이 있다.
작업하려는 폴더를 고른 뒤 숫자 키보드에 있는 * 키를 함께 누르면 아래에 있는 모든 폴더가 열린다.

38. 지운 파일 되살리기
탐색기나 내 컴퓨터에서 실수로 중요한 파일을 지우기 십상이다. 하지만 걱정하지 않아도 된다. 도구 모음에 있는 ‘실행 취소’ 버튼을 누르면 사라졌던 것이 다시 나타나기 때문이다. 단축 키는 <Ctrl + Z>다.

‘실행취소’ 버튼을 누르면 방금 전 내린 명령이 무효가 된다.

39. 파일 이름이 안 바뀌네?
아무 작업도 하지 않는데 파일 이름이 안 바뀔 때가 있다. 이럴 때 재 부팅하지 않고 이름을 바꾸는 법을 살짝 공개한다. 파일을 고른 뒤 오른 쪽 메뉴를 불러와 ‘속성’을 누른다. 이 곳에서 이름을 바꿔보자 안 바뀌던 파일 이름이 손쉽게 바뀐다.

파일 복사 중이면 이 방법을 써도 바뀌지 않는다.


TR> TD style="PADDING-RIGHT: 10px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">
'&w&b페이지 &p / &P'라는 부분을 지우면 된다.
TD style="PADDING-RIGHT: 10px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">
10진수로 바꾼 뒤 캐시를 써 넣으면 된다.
40. 내가 원하는 시각에 PC 끄기
시작 → 실행에서 ‘tsshutdn 시간(초)’을 넣자.
PC를 1분 뒤에 끌 거라면 tsshutdn 60, 1시간 뒤에 끌 거라면 tsshutdn 3600이라고 넣으면 된다. 시간이 되면 바로 종료 되는 것이 아니라 만약을 위해 30초를 더 센다.

취소하려면 꺼지기 전에 <Ctrl +C> 키를 누르면 된다.

41. 한글 자판 먹통 됐을 때
인터넷 검색을 하다가 갑자기 한글 자판이 안 먹힐 때가 있다. 이럴 때 PC를 재 부팅 하지 말고 간단하게 해결하자.
대부분 왼쪽 Alt를 한번 누른 뒤 한/영 키를 누르면 한글로 바뀐다. 이 방법이 안 되면 왼쪽 <Shift + Alt> 키와 마우스 오른쪽 버튼을 누른 뒤 한/영 키를 누르면 된다.

42. 윈도우즈 XP의 숨겨진 복사 재주
파일을 복사할 때 같은 파일이 있으면 겹쳐 쓸 것인지 물어보는 창이 뜬다. 모두 겹쳐 쓸 때 ‘모두 예’라는 항목은 편하지만, 겹쳐 쓰지 않고 이어서 복사하려면 ‘아니오’를 일일이 눌러야 된다. 이럴 때 중복된 것만 빼고 복사하는 ‘모두 아니오’가 있으면 얼마나 편할까?
윈도우즈 XP는 이런 재주가 숨겨져 있다. Shift 키를 누른 상태에서 ‘아니오’를 눌러보자. 똑같은 파일은 건너뛰고 복사 되지 않은 파일만 복사된다.

많은 파일을 복사할 때 편하다.

43. 인터넷 익스플로러 이름 바꾸기
인터넷 창 타이틀 맨 윗부분을 보면 Microsoft Internet Explorer란 꼬리표가 달려있다. 이 꼬리표 이름을 내맘대로 바꿔보자. 시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다. HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main를 찾은 뒤 편집 → 새로 만들기 한 뒤 Window Title 이라고 써 넣는다. 만들었다면 왼쪽 마우스 단추를 두 번 눌러 이름을 써 넣는다. PC를 재 부팅하면 이름이 바뀐다.


인터넷 창 위에 있던 Microsoft Internet Explorer란 글자를 내 맘대로 바꾸었다.

44. 시작 페이지 고정하기
인터넷을 하다 보면 성인사이트가 첫 페이지로 뜨는 일이 종종 있다. 인터넷 옵션에서 홈페이지를 바꿔도 계속 뜨는 사이트가 정말 짜증난다. 레지스트리를 매만져 이런 문제를 말끔히 털어버리자.
시작 → 실행에서 regedit 라고 쓰고 엔터 키를 누르면 레지스트리 편집기가 뜬다.
HKEY_LOCAL_MACHINE\Software\Microsoft\InternetExplorer\Main, HKEY_CURRENT_USER\Software\Microsoft\InternetExplorer\Main으로 가서 둘 다 Start_Page 의 값을 처음에 띄우려는 페이지 주소로 바꾼다.
그 다음 왼쪽 창 Main 에서 오른쪽 클릭 ‘사용 권한’ 고른 뒤 쓰고 있는 계정을 고른 다음 밑에 고급 → 편집을 누른다. 값 설정에서 ‘거부’에 체크 하면 끝난다.

이 곳에서 사이트 이름을 바꾼다.

45. MSN 메신저 6의 숨겨진 이모티콘들
MSN 메신저에는 재미있는 이모티콘이 들어 있다.
메신저를 띄운 뒤 이 단어들을 채팅창에서 쳐 넣으면 재미있는 이모티콘이 뜬다.
(st) = 비
(%) = 수갑
(pl) = 접시
(ci) = 담배
(li) = 번개
(tu) = 거북이
(xx) = 엑스박스
(yn) = 검지와 중지

46. 윈도우즈의 보기 설정을 한결같이
파일 목록을 특정한 방식, 예를 들어 ‘큰 아이콘’으로 표시하거나 ‘자세한 정보’와 함께 표시할 때, 모든 폴더의 보기 옵션을 이와 같은 방식으로 두루 적용할 수가 있다.
윈도우즈 탐색기의 ‘도구’ 메뉴에서 ‘폴더 옵션’을 고른다.
‘보기’ 탭의 ‘폴더 보기’ 칸에서 ‘모든 폴더에 적용’ 버튼을 누른 다음 ‘폴더 보기’ 창이 열리고 모든 폴더에 적용할 것인지 물으면 ‘예’ 버튼을 누른다.

다른 폴더에서도 보기 옵션을 일일이 정하지 않아도 된다.

47. 드라이브 순서 바꾸기
윈도우즈 98 제어판에서 바꿀 수 있던 ‘드라이브 순서’가 윈도우즈 XP에는 없다. 하지만 꼭꼭 숨겨져 있을 뿐 바꾸지 못하는 것은 아니다.
시작 → 실행 → diskmgmt.msc를 치면 ‘디스크 관리’가 뜬다. 바꿀 드라이브를 누르고 오른쪽 단추로 메뉴를 불러온 다음 ‘드라이브 문자 및 경로 변경’을 누르면 된다. 가상 드라이브와 CD롬이 뒤죽박죽일 때 이 곳에서 순서를 바꿔 정리할 수 있다.

운영체제가 깔린 드라이브는 바꿀 수 없다.

48. 윈도우즈 미디어 플레이어 9 지우기
윈도우즈 미디어 플레이어 9는 영화를 보기에 좋지만, 실시간 방송이 뜨지 않는 일이 종종 있다. 이것은 윈도우즈 미디어 플레이어 9가 실시간 서비스인 VOD를 제대로 알아채지 못해서다.
이런 이유로 윈도우즈 미디어 플레이어 9를 지우고 종전 버전으로 돌리려면 시작 → 실행 → RunDll32 advpack.dll,LaunchINFSection %SystemRoot%INFwmp.inf,Uninstall이라고 치면 된다.

윈도우즈 미디어 플레이어 9를 깔기 전으로 돌릴 수 있다.

49. 누가 내 PC 만졌어!
내 PC가 언제 켜졌는지 남이 내 PC를 만졌는지 알 수 있는 방법이 있다.
시작 → 프로그램 → 보조프로그램의 메모장에서 다음과 같이 써 넣자.
@echo off
echo Windows 부팅 >>c:list.txt
echo %date% %time% >>c:list.txt
echo. >>c:list.txt
파일 이름을 list.bat라고 저장한 뒤 저장한 파일을 시작 프로그램에 놓는다.

c 드라이브에 들어가 list.tct 파일을 보면 PC를 켠 흔적이 남아있다.

50. 깔지마! 깔지 말란 말야!
사이트에 접속할 때마다 바탕 화면에 깔리는 아이콘을 일일이 지우는 것도 지겹다. 웹 사이트 아이콘을 바탕화면에 깔지 못하게 해보자.
제어판 → 인터넷 옵션 → 보안에서 ‘웹 컨텐트 영역’을 ‘인터넷’으로 고른다.
‘사용자 지정 수준’을 누른다. ‘바탕 화면 항목 설치’를 찾아 ‘설치 안함’을 고르면 된다.

이제 바탕화면에 웹 사이트 아이콘이 깔리지 않는다.

51. 머리글과 바닥글 없애기
인터넷 화면을 문서로 뽑으려면 파일 메뉴의 ‘인쇄’를 누르면 된다. 하지만 프린터에 http://www.ilovepc.co.kr/record_detail_read.php?NO=15879같은 경로가 같이 찍혀 나와 지저분하다. 이것이 싫으면 파일 → 페이지 설정을 눌러 ‘머리글’과 ‘바닥글’에 있는 칸을 깨끗이 지운다음 인쇄하면 된다.

52. 키보드 없이 키보드를 친다?
윈도우즈 XP는 키보드가 없이 PC를 쉽게 쓸 수 있도록 ‘화상 키보드’를 지녔다. 이것은 글자 그대로 키보드 모양을 화면에 띄워 마우스로 눌러 글자를 띄우거나 프로그램을 실행시킨다. 시작 → 프로그램 → 보조프로그램 → 내게 필요한 옵션 → 화상 키보드를 누르면 된다.

화상 키보드는 움직임이 불편한 장애자들을 위해 만든 프로그램이다.

53. 플로피디스크 읽지 마!
부팅한 뒤나 탐색기를 띄웠을 때 윈도우즈는 무작정 A 드라이브인 플로피디스크를 읽는다. 이것은 하드웨어가 잘 달려 있는지를 윈도우즈가 알아보는 것이다. 이런 일을 없애도 윈도우즈를 쓰는 데 아무런 이상이 없으므로 윈도우즈가 하드웨어를 검색하는 명령을 고치자.
제어판을 띄워 ‘관리도구’를 열고 ‘서비스’ 아이콘을 골라 shell hardware detection 항목을 두 번 누른다. ‘시작 유형’을 ‘자동’으로 맞추고 ‘확인’ 버튼을 누른다.
‘서비스’ 창에서 shell hardware detection 항목을 골라 시작 유형을 ‘자동’으로 바꾼다. 이렇게 하면 플로피디스크를 읽지 않는다.

플로피 디스크를 자주 쓰지 않는다면 ‘자동’으로 바꾸자.

54. 최대 절전 모드 해제로 하드디스크 용량을 확보하자
제어판의 ‘전원 옵션’ 가운데 최대 절전 모드를 쓰면 윈도우즈는 얼마 뒤 메모리에 담긴 데이터를 하드디스크에 저장하고 적은 전기만 쓰면서 대기모드로 들어간다. 이 때 하드디스크 용량을 500MB 정도 차지한다.
대기모드를 쓰지 않는 이에게 이 옵션은 하드디스크 용량만 잡아먹는 쓸데없는 것이다. 바탕화면에 대고 마우스 오른쪽 버튼을 눌러 ‘속성’을 눌러 ‘디스플레이 등록정보’ 창을 띄운다. 화면보호기 항목에서 ‘전원’ 버튼을 누르고 전원 옵션 등록정보를 보자. ‘최대 절전 모드’ 탭에서 체크 표시를 없앤다.

55. 응답이 없는 프로그램 빨리 닫기
윈도우 XP 응답이 없는 프로그램은 시간이 얼마 지나야 닫히게 된다. 기다린다고 응답 없는 프로그램이 다시 살아나는 것도 아니므로 이 시간을 무시하고 바로 끄자.
시작 → 실행에서 regedit 라고 쓰고 엔터키를 치면 레지스트리 편집기가 뜬다.
HKEY_CURRENT_USER\Control Panel\Desktop에서 HungAppTimeout를 왼쪽 마우스로 두 번 눌러 1000으로 고치면 된다.

56. 내가 쓰는 윈도우즈 XP가 정품일까?
윈도우즈 XP는 불법 복제를 쓰지 못하게 인터넷으로 정품 등록을 한다. 이것을 흔히 ‘인증을 받는다’고 한다. 하지만 인증을 받지 않고도 정품처럼 쓰는 불법 OS가 널리 퍼져 있다. 정품인데도 인증을 받지 않으면 적어도 30일 동안 작동한다. 과연 내가 쓰는 윈도우즈 XP는 인증을 받은 것일까?
시작 → 실행 → oobe/msoobe /a라고 치면 인증 창이 뜬다.

정상적인 OS이면 그림처럼 인증을 받았다는 메시지가 보인다.

57. MSN 메신저를 지우자
프로그램 추가/제거에서는 MSN 메신저를 지울 수 없다. 지우고 싶다면 시작 → 프로그램 → 보조프로그램에 있는 메모장으로 c:\windows\servicepackfiles\sysoc.inf 파일을 연다.
msmsgs=msgrocm.dll,OcEntry,msmsgs.inf,hide,7이라고 되어 있는 줄을 찾은 뒤,
msmsgs=msgrocm.dll,OcEntry,msmsgs.inf,7로 바꿔주면 시작 → 제어판 → 프로그램 추가/제거 → windows 구성요소 추가/제거에 MSN 메신저 체크박스가 뜬다. 이 박스를 끄면 MSN 메신저를 지울 수 있다.

MSN 메신저를 쓰지 않는다면 이 곳에서 지우면 된다.

58. L2 캐시 매만져 PC를 재빨리 돌리자
윈도우즈 XP는 CPU의 L2 캐시를 알아채 PC를 재빨리 돌린다. 하지만 데이터가 많아지거나 멀티태스킹을 할 때 캐시를 읽지 못해 순간적으로 느려질 때가 있다. 캐시를 고정시켜 운영체제가 일일이 캐시 메모리를 찾는 수고를 덜어주자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management를 찾은 뒤 SecondLevelDataCache를 고른다.
그 다음 내 CPU에 맞는 캐시를 넣으면 된다. 바탕화면에 있는 ‘내 컴퓨터’를 누른 뒤 오른쪽 메뉴를 불러와 ‘속성’을 누르면 내 CPU 정보가 뜬다.

59. 다이렉트 X의 최신 버전 깔기
시작 → 실행에서 dxdiag라 쳐 넣고 엔터를 치면 다이렉트 X 버전 뿐 아니라 갖가지 정보가 뜬다. 다이렉트 X가 8.1 이하가 깔려있다면 9.0을 새로 까는 것이 좋다. 게임속도가 재빨라지기 때문이다. 다이렉트 X 9.0을 내려받고 싶다면 시작 → windows update에서 인터넷 익스플로러 창이 뜨면 ‘업데이트 검색’을 누른 다음 중요 업데이트 및 서비스 → 업데이트 검토 및 설치를 눌러 ‘지금 설치’를 누르면 된다.

다이렉트 X 9.0이상이 깔려있는지 확인하자.

60. 인터넷 익스플로러를 전체 화면으로 보자
인터넷 익스플로러를 전체 화면으로 시원시원하게 보는 방법이 있다.
인터넷 창을 띄우고 F11 키를 눌러도 되지만 항상 전체 화면으로 띄우려면 레지스트리를 매만져야 한다. 시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main 으로 간 다음 오른쪽 창에서 FullScreen을 찾는다.
FullScreen을 두 번 눌러 no를 yes로 바꾸면 된다
Posted by 1010
98..Etc/Security2008. 7. 24. 11:54
반응형

SMB Transport 프로토콜



 

Windows 2000에서 일반적으로 SMB/CIFS 전송 프로토콜의 타입은 NetBIOS over TCP/IP이다.  Windows2000이 시작되면 SMB/CIFS는 NetBIOS 계층을 통하지 않고도 직접적으로 TCP(443/TCP)로 전송할 수 있다.

Windows 시스템에서 어떤 SMB Transport가 활성화되어 있는지 확인하는 방법은 아래와 같은 명령어를 사용해서 확인할수 있다.

"net config rdr"과 "net config srv" 명령어는 NetWkstaTransportEnum()와 NetServerTransportEnum() Win32 API를 사용한다.

C:\>net config rdr
컴퓨터 이름                      \\HKnight
전체 컴퓨터 이름                 HKnight
사용자 이름                      HKnight

활성 워크스테이션
        NetbiosSmb (000000000000)
        NetBT_Tcpip_{88AF4C41-3AEE-4613-9879-B54C4F8F3439} (00E0910F8C6B)
        NetBT_Tcpip_{9ED3AFE3-9CF9-43E4-8FB1-8F045F9FCAA1} (005056C00001)
        NetBT_Tcpip_{6AB8E94E-9CEF-4A8D-B7DE-20F8CC85A36B} (005056C00008)

소프트웨어 버전                  Windows 2002

워크스테이션 도메인              WORKGROUP
워크스테이션 도메인 DNS 이름     (null)
로그온 도메인                    HKnight

COM 열기 시간 초과 (초)          0
COM 전송 수 (바이트)             16
COM 전송 시간 초과 (밀리초)      250
명령을 잘 실행했습니다.


C:\>net config srv
서버 이름                             \\HKnight
서버 설명                             HKnight

소프트웨어 버전                       Windows 2002
서버 활성화
        NetbiosSmb (000000000000)
        NetBT_Tcpip_{6AB8E94E-9CEF-4A8D-B7DE-20F8CC85A36B} (005056c00008)
        NetBT_Tcpip_{9ED3AFE3-9CF9-43E4-8FB1-8F045F9FCAA1} (005056c00001)
        NetBT_Tcpip_{88AF4C41-3AEE-4613-9879-B54C4F8F3439} (00e0910f8c6b)


서버 숨겨짐                           아니오
로그온 사용자 최대 수                 5
세션당 열 수 있는 파일의 최대 수      16384

유휴 세션 시간 (분)                   15
명령을 잘 실행했습니다.

NetWkstaTransportEnum()와 NetServerTransportEnum() Win32 API는 두개의 RPC Call를 이용한다.

Samba-TNG rpcclient 유틸리티는 srvtransports command를 제공한다. 그리고 그것은 retrieve server-side transports로서 .

참고로 Windows NT 4.0와 Windows 2000 systems의 NetServerTransportEnum() API는 버그가 있는 것으로 알려져 있다. 

Windows Vista에서는 "net config srv"  명령어 결과가 다음과 같이 출력된다. 

C:\WINDOWS>net config srv  [...]  Software version                      Windows (TM) Code Name "Longhor Server is active on                    	NetbiosSmb (WINVISTA) 	NetBT_TCPIP_{34559422-6B8D-4328-BAA1-25A6A331C6A8} (WINVISTA)  [...]

Active transports는 

  • NetbiosSmb는 raw SMB transport (445/tcp)를 사용한다.
  • NetBT_Tcpip_{...} 는 NetBT SMB transport로서 per-adapter basis당 하나씩 연결된다.

raw SMB transport can not be disabled on a per-adapter basis. To completely disable it, the NetBT driver must be stopped.

A Windows system with both SMB transports active tries to connect to 445/tcp and 139/tcp at the same time. If the connection to 445/tcp is accepted, the connection to port 139 is closed (sending a TCP segment with the RST flag set), i.e., raw SMB transport is preferred over NetBT transport


출처 : http://hacking.egloos.com/69730

Posted by 1010
98..Etc/Security2008. 7. 24. 11:50
반응형

리눅스보안셋팅.

 

1.chmod 700변경하기
본 권한변경 목적은 계정을 통하지 않은 불법적인 접근을 막기
위한 방법으로 가능한 필요하지 않은 파일들의 권한을 변경해
주시기 바랍니다. 특히 suid가 걸린 파일의 경우 절대적으로
권한변경을 해주시기 바랍니다.
/usr/bin/finger(chmod 700 적용) <-- 서버 이용자 파악을 하지 못하게 함
/usr/bin/nslookup(chmod 700 적용)
/usr/bin/gcc(chmod 700 적용) <-- 당연히 막아줘야져.
/usr/bin/suidperl(chmod 700 적용) <--suid 걸린 파일
/usr/bin/whereis(chmod 700 적용)
/usr/bin/cc(chmod 700 적용) <--- 소스 컴파일은 루트이외에 못하도록 조치
/usr/bin/sperl5.00503(chmod 700 적용) <--- perl중에 suid걸린 파일임
/usr/bin/c++(chmod 700 적용)
/usr/bin/make(chmod 700 적용)
/usr/bin/pstree(chmod 700 적용)
/usr/bin/rlog(chmod 700 적용)
/usr/bin/rlogin(chmod 700 적용) <-- 필요없는 경우에는 삭제 하시길
/usr/bin/which(chmod 700 적용)
/usr/bin/who(chmod 700 적용)
/usr/bin/w(chmod 700 적용)
/bin/mail(chmod 700 적용) <-- 아웃룩익스프레스가 아닌 계정상에서
텔넷으로 메일을 확인하지 못하게 하십시요.
/bin/ps(chmod 700 적용)
/etc/hosts(chmod 700 적용)
/etc/hosts.deny(chmod 700 적용)
/etc/hosts.allow(chmod 700 적용)
2.anonymous ftp 막기
#vi proftpd.conf (/etc 에 위치)
중략
에서
UserAlias anonymous ftp //이부분을 주석처리 해준다.
wq (저장후 종료)
3.telnet 사용막기 <--가장 추천하는 방법입니다.
현재 텔넷이 막힌 경우에는 해킹의 위험이 극히 줄어듭니다.
텔넷을 사용하시고자 하시는 분은 데이터 센터의 보안 서비스나
다른 방법을 사용하시기 바랍니다.

ip 거부
#vi hosts.deny (/etc 에 위치)
in.telnet:ALL
wq (저장후 종료)
#hosts.allow (/etc에 위치)
ALL:(IP 추가) <--- 텔넷으로 들어올 아이피만 적는다.
wq (저장후 종료)
저장후 다음과 같이
#/etc/rc.d/init.d/inet restart
telnet 서비스 제공업체측 ip를 추가해야 telnet 사용가능
4.ping 막는법 <---당연히 핑도 막아야 겟죠.
#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all //ping 막기
#echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all //ping 열기
5.chkconfig 사용법(부팅시 수행되는 서비스) <--중요합니다.
#chkconfig --list (/sbin 밑에 위치)
#chkconfig --help (참고)
#chkconfig --level 3 sendmail off (사용방법예)
보통 부팅의 경우 레벨3으로 부팅이 됩니다.
그러므로 레벨3에서 필요하지 않은 데몬은 위와 같은 방법으로
모두 꺼두시기 바랍니다.
#chkconfig --list (하면 나오는것들)
xfs 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
anacron 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
apmd 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
arpwatch 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
atd 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
keytable 0:끔 1:끔 2:켬 3:켬 4:켬 5:켬 6:끔
gpm 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
inet 0:끔 1:끔 2:끔 3:켬 4:켬 5:켬 6:끔
netfs 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
network 0:끔 1:끔 2:켬 3:켬 4:켬 5:켬 6:끔
random 0:끔 1:켬 2:켬 3:켬 4:켬 5:켬 6:끔
ipchains 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
pcmcia 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
kdcrotate 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
kudzu 0:끔 1:끔 2:끔 3:켬 4:켬 5:켬 6:끔
linuxconf 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
lpd 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
nfs 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
nfslock 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
identd 0:끔 1:끔 2:끔 3:켬 4:켬 5:켬 6:끔
portmap 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
rstatd 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
rusersd 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
rwalld 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
rwhod 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
sendmail 0:끔 1:끔 2:켬 3:켬 4:켬 5:켬 6:끔
syslog 0:끔 1:끔 2:켬 3:켬 4:켬 5:켬 6:끔
snmpd 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
crond 0:끔 1:끔 2:켬 3:켬 4:켬 5:켬 6:끔
ypbind 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
yppasswdd 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
ypserv 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
proftpd 0:끔 1:끔 2:끔 3:켬 4:켬 5:켬 6:끔
named 0:끔 1:끔 2:끔 3:끔 4:끔 5:끔 6:끔
이중 켜야할것은 보통 9개정도밖에 안됩니다. 3번레벨을
기준으로, keytable,inet, network,random,kudzu,sendmail,syslog,
crond,proftpd 나머지는 off 시켜주는것이 바람직합니다. (자기의
환경에 맞춰서)
참조문서는 http://www.osfs.net/redhat/security-guide-01.doc
6.find 관련 명령
#find /dev -type f // /dev/MAKEDEV만떠야함 (백도어 찾기)
#find / -ctime -1 //하루동안 만들어진 화일 (해킹당한듯 싶으면 확인 )
#find / -perm -4000 // setuid 걸린 파일을 찾는 명령어
7./etc/inetd.conf 화일 수정
네트워크의 서비스를 정의하고 있는 화일로서 , 정의되어 있는
서비스가 많이 있다. 보안사고를 피하기 위해서는 최대한
필요하지 않은 서비스는 차단하는게 바람직하다. 기본적으로 ,
telnet,ftp,pop3외의것은 주석처리 하는것이 좋다. 닫아놨는데,
이외의 것이 열려있다면 해킹의 가능성이 있다. 이때는 다시
주석처리를 하고
#ps -ef | grep inetd //프로세스 확인
#kill -HUP PID //리셋
#vi inetd.conf (/etc 에 위치)
telnet
ftp
pop3
나머지는 주석처리
wq (저장후 종료)
tip> #kill -9 PID //프로세스 죽이기
8.해킹이 확실한경우 대처법
해킹이 확실한상태에서 그냥 컴퓨터를 종료시키면, 재부팅이
안될수가 있다. 이것을 막기 위해,
#/etc/rc.d/rc.SYSinit 권한을 755를 준다. 최소한 부팅은 된다.
서버 & 보안 관련 문의
http://www.besthan.net 또는 http://www.koreaphp.co.kr
해킹시 연락처
http://www.certcc.or.kr/ 해킹시 신고처
cyber 테러대응센터 02-3939-112
cyber 수사대 02-365-7128
해킹 없는 세상에 살고싶은 오렌지블루였슴돠.


PART II는 PART I에서 수정되어야 하는 부분이나 추가 되어야 할
내용을 추가 했습니다. 보안을 위해 이문서를 참조하는 것도 좋습니다.
그러나 서버 운영 특성상 꼭 필요한 경우도 있으나 이 제한을 걸어서
사용할수 없는 경우가 있으니 꼭 확인후 조치를 부탁합니다.
(이 문서를 끝까지 읽어 주시면 서버운영에 많은 도움이 될듯합니다.)
- 문의 사항은 khsheen@inempire.com으로 해 주십시요
설명순서는 PART I 에서 설명을 보충하고 기타 더 필요한 설명을
추가 하겠습니다.
<보안관련및 기본명령>
1.chmod 700변경하기

첨부 명령어
/usr/bin/top (chmod 700 적용)
/usr/bin/find (chmod 700 적용)
/usr/bin/lynx (chmod 700 적용)
/usr/bin/wget(chmod 700 적용)
--> 이두 명령어는 일반적으로 해커들이 해킹툴을 가져올때 자주쓰는
명령어
shell-prompt>lynx --dump 가져올화일이 있는 url 경로
shell-prompt>wget 가져올화일이 있는 url 경로

/usr/bin/gcc(chmod 700 적용) <-- 당연히 막아줘야져.
/usr/bin/c++(chmod 700 적용)
/usr/bin/make(chmod 700 적용)
이 명령어를 막게 되면 일반사용자들이 C언어로 작성된 프로그램을
컴파일하지 못하여 불평을 호소하는 경우가 있다.
이런 경우는 이 명령어를 사용할수 있는 그룹을 설정해 주면 준다.
(일반적으로 wheel이라는 그룹을 많이 사용함, 다른 그룹을 등록해서
사용해도 무관)
* example) find 명령어의 사용자를 제한 할 경우
shell-prompt>grep wheel /etc/group
wheel:x:10:root
/etc/group 화일에 wheel:x:10:root 이분에 wheel이라는 그룹에 user를
추가 한다.(khsheen이라는 user가 있을경우임)
wheel:x:10:root,khsheen
이러면 wheel이라는 그룹에 khsheen 이라는 user가 등록된다.
shell-prompt>ls -la /usr/bin/find
-rwxr-xr-x 1 root root 54544 Feb 3 2000 /usr/bin/find*
shell-prompt>chgrp wheel find
shell-prompt>chmod 755 find
shell-prompt>ls -la /usr/bin/find
-rwxr-x--- 1 root wheel 54544 Feb 3 2000 find*
이런식으로 설정하면 find 명령어는 root와 khsheen만 사용할수 있다.
이 명령어를 su 명령어에도 적용하는 것을 권장함, root로 전환할
유저 (su 명령어 사용자)를 제한 할수 있다.
2.anonymous ftp 막기
특정 user가 ftp 접속후 본인의 Directory 외에 다른 유저의
Directory를 접근 못하게 할 경우
(접근을 해서 read 권한만있어도 그 유저의 설정을 모두볼수있다.)
*proftp를 사용하는 경우
shell-prompt> vi /etc/proftpd.conf
이 화일에 이 한줄을 추가한다.
DefaultRoot ~ member
shell-prompt>/etc/rc.d/init.d/proftpd restart
이러면 본인의 Directory외에 다른 유저의 계정은 접근 불가.
3.telnet 사용막기
telnet을 막는 다는 것은 특히 유저가 많은 경우는 불가능 일인것
같다. (특히 웹호스팅업체) 이런 경우는 ssh(Secure Shell)을
설치해서 사용하는 것을 권장합니다.
6.find 관련 명령어 관련 명령어 사용하기
shell-prompt> find / -nouser (화일에 소유자가 없는 경우의 화일)
일반사용자의 사용 디렉토리에서 ...
화일에 소유자가 없다는것은 의심을 해볼필요가 있다.
shell-prompt> find /home/khsheen -user root
(일반사용자인데 root로 되어 있는 화일도 의심해볼 필요가 있다)
8.해킹이 확실한경우 대처법
a.우선 가장 좋은 방법은 port(랜선)를 제거하는 것이 가장 좋다.
b.그 다음에 설치 되어 있는 해킹툴을 제거한다.
-프로세스 확인
[ 이상한(필요없는) 프로세스 확인해서 설치된 위치 확인후 지우기]
shell-prompt> kill -9 이상한 프로세스 id
그러나 100%제거 한다는 것은 힘들것 같다.
서버를 제 세팅하는 것을 권장한다.
c.중요 data 백업

9.기타 보안에 관련된 내용
a.php , mysql db 지원하는 경우
-일반적으로 php로 mysql에 db에 접속하는 경우 php에서
connect하는 스크립트를 사용하는 화일을 일반적으로 Web상에
공개된 소스에는 화일명이 대부분 connect.inc 를 사용하는데
이것을 웹브라우저에 불러오게 되면 바로 읽혀 져서 mysql db접속
아이디와 패스워드를 알수가 있게된다.
이럴경우는 웹서버의 설정화일(httpd.conf)에
AddType application/x-httpd-php .php .html .php3 .php3 .inc
~~~~~!!
AddType application/x-httpd-php-source .phps
추가하고 웹서버를 제구동한다.
그러면 .inc로 끝나는 화일도 php로 인식하므로 스크립트
노출을 막을수 있다.
또한가지 telnet ftp에 사용시 group을 같게 해주고 각 계정의
root Directory를 퍼미션을 705로 처리해 주면 다른 유저가
다른 사용자의 계정에 들어 갈수가 없다.
만약 755로 한다면 다른 유저에게도 읽을 권한이 생겨서 connect
스크립트를 읽을 수 있어 db접속 아이디/passwd를 얻을수 있다.
b.사용자들의 passwd
- 등록된 user의 passwd를 자주 갱신하게 만든다.
shell-prompt>vi /etc/login.defs
이중 아래의 스크립트를 일정기간 설정해서 사용자들의
passwd를 바꾸게 만든다.
PASS_MAX_DAYS 99999
~~~~~ 일정기간으로 잡아준다.
c.shell 없애기
- 메일계정으로만 사용하는 경우(shell이 필요없는 경우)의
유저가 많다. 특히 웹호스팅 사용자
이런 경우 shell을 주지 않으면 된다.
shell-prompt>vipw
khsheen:x:500:502::/home/gdm:/bin/false
~~~~~~~~~~
khsheen이라는 유저에게 shell을 부여하지 않는다.

- 서버에 등록된 사용자가 많은 경우 사용자가 관리에
신경을 많이 써야 한다. last 명령을 사용하여 자주 telnet으로
접속하는 사용자는 history를 자주 살펴보는 것도 좋다.
shell-prompt> last | grep pts

d.보안패치하기
-서버 보안에서 가장 중요한 것이 패치이다.
서버에 버그가 발표되면 해커도 그것을 접한다고 생각하면 된다.
그래서 서버에 최신 패키지를 설치해야 하며 보안 뉴스를 빨리
접해야 한다. 그중 커널 업테이드등은 중요한다.
* 커널 최신 정보 확인하기
shell-prompt>finger @www.kernel.org
[zeus.kernel.org]
The latest stable version of the Linux kernel is: 2.2.17
~~~~~~
The latest beta version of the Linux kernel is: 2.4.0-test11
The latest prepatch (alpha) version *appears* to be: 2.4.0-test12-pre4

2. 2. 17
| | |
| | -> 몇번의 패치가 있었는지 나타낸다.
| -> 안정화 버전인지 개발화 버전이지를 나타낸다.
| (홀수:개발, 짝수:안정)
-> 획기적인 변화가 있을때 바뀐다

그리고 기타 패키지에 대한 버그는 빨리 접하고 패치를 해야 한다.
http://www.redhat.com/support/errata/index.html (redhat인 경우)
해킹관련 소식 접하기
http://certcc.or.kr/ (한국정보 보호센터)
http://www.hackersnews.org/
http://www.securenews.co.kr/
Posted by 1010
98..Etc/Security2008. 7. 24. 11:49
반응형

TCP Wrapper (source: 카이스트)

 

initAd();


1. What's TCP Wrapper ?
2. Why TCP Wrapper is used ?
3. How does it work?
4. How to install and use TCP Wrapper
5. Reference



 1. What's TCP Wrapper.

 TCP Wrapper 란 현재의 시스템에서 SYSTAT, FINGER, FTP, TELNET, RLOGIN, RSH, EXEC, TFTP,TALK 등의 monitoring를 하고 filtering을 할 수 있게 해주는 것이다 .
 이것은 현재 깔려있는 소프트웨어나 설정화일을 변경시키지 않고 깔 수있는 작은 daemon 프로그램으로 클라이언트 호스트와 요구받은 서비스의 이름은 report를 한다. 그래서 서버나 클라이언트 프로그램의 정보를 변화 시키지 않고 , 처음 connection 을 연결할 때에만 동작하므로 클라이언트나 서버의 application 간의 실제의 데이터 통신에서는 오버헤드가 발생하지 않는다 .

 2. Why TCP Wrapper is used?

 Wrapper는 외부에서 들어오는 호스트를 체크하는 방어의 의미를 가지고 있는 것으로 그 중에 유명한 것이 TCP Wrapper 이다 . 이것은 호스트에 들어오려는 곳의 IP Address 를 체크하여 관리자가 접속을 허용한 호스트 들만을 접속을 하기 때문에 외부로의 크래킹으로부터 방어를 할 수 있다 . 이것은 inetd 라는 daemon( 이것은 뒤에 설명 ) 을 교체하여 IP Address 를 체크하는 모듈을 가지고 있다.
 TCP Wrapper 와 비슷한 기능을 제공하는 보다 보안이 강화된 INETD 버전으로 시간에 따라 서비스를 제한하는 기능을 가진 xinetd 라는 것도 있다 .

 3. How does it work?

 3.1 전형적인 UNIX TCP/IP networking
  거의 모든 TCP/IP protocal application 은 클라이언트 - 서버 모델이 기본이 된다.
  예를 들어 누군가가 telnet command 를 이용해서 호스트로 접속을 했다면 target host는 telnet server  process 를 시작할 것이다 . 그리고 그것은 유저가 로긴할 수 있도록 할 것이다 .

  이런 클라이언트 - 서버 모델의 예들은 다음과 같다.

client

server

application

telnet

telnetd

remote login

ftp

ftpd

file transfer

finger

fingerd

show users

systat

server

application

 Table 1. Examples of TCP/IP client-server pairs and their applications.


 보통 UNIX 시스템에서는 들어오는 모든 종류의 네트웍 커넥션을 기다리는 하나의 daemon 을 띄어서 사용을 하고 이 커넥션이 성립이 되었을 때 ( 보통 흔히 우리가 inetd 란 부르는 ) 이 daemon 이 적당한 서버 프로그램을 실행하게 된다 . 그리고 이 daemon 은 다시 sleep 가 되고 다른 커넥션을 기다리게 된다 .
 즉 ,telnet 의 경우에는
 [user] -- [telnet client] -- (inetd) -- [telnet server] -- [[login]]
 이용자는 telnet 프로그램 (netterm) 을 실행키켜 원하는 장비에 접속을 시도한다 . 이때 서버장비에서는 inetd 가 요청을 받아 inetd.conf 를 살펴본다음 telnetd 프로그램을 실행시킨다 .

 3.2 TCP_Wrapper 를 적용하면

 위의 방법을 이용하게 되면 크래커가 염탐하는 문제가 발생하게 된다 . 이런 문제를 해결하기 위해서는 현재 존재하는 네트웍 소프트웨어들은 바꾸는 것이 필요하다 . 그런 거기에서는 몇개의 문제점들이 존재하게 된다 .
   첫째로 우리는 현재 가지고 있는 시스템들인 Ultrix, SunOS 등의 UNIX 프로그램의 소
             스 라이센스를 가지고 있지 않다 . 그리고 또 우리는 물론 이런 소스들도 가지고 있지 않다 .
   둘째로 버클리 네트웍 소스 ( 대부분의 상업적인 UNIX TCP/IP 프로덕트로 발전되어진) 는 가능하다 .
             그러나 이것을 우리의 환경에 맞게 포팅을 하는 것은 아주 많은 시간이 걸릴 것이다 .

  Figure 1. The inetd daemon process listens on the ftp, telnet etc. network ports and waits for incoming con- nections. The figure shows that a user has connected to the telnet port.
  

 Figure 2. The inetd process has started a telnet server process that connects the user to a login pro- cess. Meanwhile, inetd waits for other incoming con- nections.

 그러나 이런 존재하는 소프트웨어들을 바꾸지 않고 문제를 해결하는 간단한 방법이 존재한다 . 그리고 이 방법은 거의 모든 UNIX 시스템에서 작동을 하기 때문에 간단히 해결할 수
 있다 . 그 방법은 스왑을 만드는 것이다 . 즉 벤더에서 제공하는 네트워크 서버 프로그램을 다른 곳에다 옮기고 원래의 네트워크 서버 프로그램의 자리에 간단한 프로그램을 인스톨하는 것이다 . 그래서 커넥션이 맺여질 때마다 이 간단한 프로그램이 리모트 호스트의 이름을 기록하고 , 확인한 다음에 원래의 네트워크 서버 프로그램을 실행시키는 것이다. 이런 방법을 이용한 것이 TCP Wrapper이다.
 


 Figure 3. The original telnet server program has been moved to some other place, and the tcp wrapper has tak- en its place. The wrapper logs the name of the remote host to a file.



 Figure 4. The tcp wrapper program has started the real telnet server and no longer participates. The user can- not notice any difference.

 아래는 TCP_Wrapper 를 적용한 예를 보여주는 것으로 콘솔에 나타나는 기록이다 . 처음의 약간은 크래커가 접속하려고한 흔적이 보였고 각각의 커넥션은 time stamp, the name of the local host,the name of the requested service (actually, the network server process name), and the name of the remote host 순으로 적혀 있는 것이다 . 이 예는 크래커가 단지 monk.rutgers.edu 와 같은 dial-up terminal server 를 사용했다는 것 뿐만아니라 군사기관 (.MIL) 과 대학 컴퓨터 시스템 (.EDU) 을 침입했다는 것도 보여준다 .
 (ftp://ftp.porcupine.org/pub/security/tcp_wrapper.txt.Z 에서 인용 )

     May 21 14:06:53 tuegate: systatd: connect from monk.rutgers.edu
     May 21 16:08:45 tuegate: systatd: connect from monk.rutgers.edu
     May 21 16:13:58 trf.urc: systatd: connect from monk.rutgers.edu
     May 21 18:38:17 tuegate: systatd: connect from ap1.eeb.ele.tue.nl
     May 21 23:41:12 tuegate: systatd: connect from mcl2.utcs.utoronto.ca
     May 21 23:48:14 tuegate: systatd: connect from monk.rutgers.edu

     May 22 01:08:28 tuegate: systatd: connect from HAWAII-EMH1.PACOM.MIL
     May 22 01:14:46 tuewsd:  fingerd: connect from HAWAII-EMH1.PACOM.MIL
     May 22 01:15:32 tuewso:  fingerd: connect from HAWAII-EMH1.PACOM.MIL
     May 22 01:55:46 tuegate: systatd: connect from monk.rutgers.edu
     May 22 01:58:33 tuegate: systatd: connect from monk.rutgers.edu
     May 22 02:00:14 tuewsd:  fingerd: connect from monk.rutgers.edu
     May 22 02:14:51 tuegate: systatd: connect from RICHARKF-TCACCIS.ARMY.MIL
     May 22 02:19:45 tuewsd:  fingerd: connect from RICHARKF-TCACCIS.ARMY.MIL
     May 22 02:20:24 tuewso:  fingerd: connect from RICHARKF-TCACCIS.ARMY.MIL

     May 22 14:43:29 tuegate: systatd: connect from monk.rutgers.edu
     May 22 15:08:30 tuegate: systatd: connect from monk.rutgers.edu
     May 22 15:09:19 tuewse:  fingerd: connect from monk.rutgers.edu
     May 22 15:14:27 tuegate: telnetd: connect from cumbic.bmb.columbia.edu
     May 22 15:23:06 tuegate: systatd: connect from cumbic.bmb.columbia.edu
     May 22 15:23:56 tuewse:  fingerd: connect from cumbic.bmb.columbia.edu

 여기에서 크래커는 사실상 finger 와 systat 로 시스템을 공격을 한 것이나 마찬가지다 왜냐하면 finger 나 systat 는 시스템에 누가 있는 지를 알수 있게 해주는 것이기 때문이다 . 그 후에 크래커는 telnet 커넥션을 맺으려고 했다 . 아마 추측컨대 single login 시도를 했고 즉시 끊었을 것이다 . 그래서 "repeated login failure" 라 콘솔에 기록되지 않았을 것이다 .

 크래커를 구분하는 방법은 다음과 같이 쉽다 .

 첫째로 대체로 다른 사람들의 활동이 거의 없는 밤에 종종 활동한다 .
 둘째로 자주 연속된 커넥션을 맺는다 . 그런데 커넥션을 맺는 시간에 간격을 띄어서 자산    의 활동을 숨기려고 한다 . 그러나 여러 시스템의 로그를 합침으로써 크래커가 들    어왔었다는 것을 보는 것이 쉽다 .
 셋째로 시스템에 계정이 있는 사람은 누구도 systat service 를 사용하지 않는다 .

이렇게 TCP_Wrapper 를 사용하게 되면 자신이 원하는 호스트들로부터의 접속만을 허용할 뿐아니라 자신의 시스템의 접속을 확인하고 모니터링을 할 수 있게 한다 .

다음의 예는 실제로 syslog를 살펴본 것으로 telnet 과 ftp에 대하여 다음과 같이 각각의 데몬에 대하여 원하는
자신의 원하는 호스트로만의 접속이 이루어지게 되는 것을 볼 수 있다.

Mar  7 23:12:53 major in.telnetd[22706]: connect from kbs06.kaist.ac.kr
Mar  7 23:22:25 major in.telnetd[22761]: connect from taehan.kaist.ac.kr
Mar  8 00:48:52 major in.telnetd[22954]: refused connect from 143.248.175.120

Mar  8 10:09:21 major in.telnetd[23279]: connect from kbs08.kaist.ac.kr
Mar  8 10:41:36 major in.ftpd[23588]: refused connect from gec09.kaist.ac.kr
Mar  8 11:04:21 major in.telnetd[23608]: connect from kbs22.kaist.ac.kr
Mar  8 11:09:49 major in.telnetd[23657]: connect from kbs09.kaist.ac.kr
Mar  8 11:35:47 major in.telnetd[23736]: connect from kbs06.kaist.ac.kr
Mar  8 11:38:09 major in.telnetd[23772]: refused connect from captain


 4. How to install and use TCP_Wrapper

 현재 99 년 1 월의 CERT advisory 를 보면 TCP Wrapper 의 Trojan horse version 이 돌아다닌다는 보고가 있었다 . 아래와 같은 차이가 있으므로 확인을 하고 잘 받기를 바란다.
 자세한 사항은 http://www.cert.org/advisories/CA-99-01-Trojan-TCP-Wrappers.html 에서 확인
 받는 곳 : ftp://ftp.porcupine.org/pub/security/

Correct version:
           tcp_wrappers_7.6.tar.gz
           MD5 = e6fa25f71226d090f34de3f6b122fb5a
           size = 99438
           tcp_wrappers_7.6.tar
           MD5 = 5da85a422a30045a62da165404575d8e
           size = 360448

Trojan Horse version:
           tcp_wrappers_7.6.tar.gz
           MD5 = af7f76fb9960a95a1341c1777b48f1df
           size = 99186

 이 설치법은 정주원님의 허락을 받고기재하는것임을밝힙니다.

                성질급한 사람들을 위한 TCP wrapper 설치법
                =========================================

0. RedHat linux라면 tcp_wrapper가 설치되어 있다. 14단계로 간다.

1. tcp_wrappers_x.x.tar를 ftp에서 받아온다.

2. tar xf tcp_wrappers_x.x.tar 를 실행하여 tar 화일을 푼다.

3. cd tcp_wrappers_x.x 한다.

4. README를 읽는다.
   (경고: Ultrix나 IRIX에 설치하고자 하는 사람은 필히 README 화일과 README.
          IRIX 화일을 읽어 보아야 한다.)

5. uname -a를 실행하여 자신의 시스템이 무엇인지 확인한다.

6. Makefile을 보고 적당한 REAL_DAEMON_DIR을 선택하여 맨 앞의 #를 제거한다.
   (REAL_DAEMON_DIR이란 in.telnetd, in.rlogind와 같은 internet daemon들이
    실재할 위치를 말한다. 여기서 이미 설치되어 있는 directory를 선택하면
    제 11 단계를 빼먹어도 좋으나, 일반적으로 별도의 directory에 보호할
    internet daemon을 설치하는 것을 권장하고 있다.)

7. make를 실행하여 자신의 sys-type code가 있는지 확인한다. 자신의 sys-type
   code가 없으면 README를 자세히 읽고 그대로 따라서 한다.

8. make {sys-type} 을 실행하여 compile한다.
        예) make irix6          (Irix 6.x의 경우)
            make sunos5         (Solaris 2.x의 경우)
            make CC=gcc sunos5  (Solaris 2.x에서 gcc로 compile 하는 경우)

9. 제대로 컴파일 되었으면 superuser가 된 후 tcpd를 적당한 장소에 설치한다.
        예) /usr/ucb/install -o bin -g bin -m 755 tcpd /usr/local/sbin

10. inetd.conf를 보고, 외부 연결로부터 보호할 서비스들을 골라 tcpd가
    보호하도록 수정한다. inetd.conf는 /etc/inetd.conf 혹은
    /etc/inet/inetd.conf에 있다.
        예) finger service의 경우
           finger stream tcp nowait nobody /usr/etc/in.fingerd   in.fingerd
                                                           
           라고 되어있는 것을

           finger stream tcp nowait nobody /usr/local/sbin/tcpd  in.fingerd
                                                           
           로 바꾼다. 단, tcpd의 설치 위치에 따라 달라질 수 있다.

11. REAL_DAEMON_DIR이 실제 internet daemon이 설치된 위치와 다르다면 (6단계
    참조) 보호하고자 하는 service에 해당하는 internet daemon을
    REAL_DAEMON_DIR 로 복사한다. (cp -p option을 쓰는 것이 좋다.)

12. tcpdchk를 실행하여 제대로 고쳤는지 확인한다. (tcpdchk는 compile했던 그
    자리에 있다.) 문제점이 나타나면 9단계부터 다시 살펴본다.

13. ps ax 혹은 ps -ef 를 하여 inetd을 PID를 알아내고 kill -1 inetd.pid를
    수행한다. (IRIX설치자는 README.IRIX 참조) 이것으로 tcp_wrapper의
    설치는 끝났다.

14. /etc/hosts.deny라는 화일을 만들고 그 내용을 ALL:ALL로 함으로서
    모든 호스트의 접근을 금지시킨다.
    (tcpwrapper에 포함되어 있는 safe_finger등으로 좀 더 재미있는 일을
     할 수 있다. 자세한 내용은 README를 참조하라.)

15. /etc/hosts.allow라는 화일을 만들고 그 내용을 {daemon 이름}:{허가할
    호스트 명단} 으로 집어넣어 해당 호스트만 접근하도록 한다.

        예) ALL: myhome.kaist.ac.kr
            in.telnetd: labpc1.kaist.ac.kr,143.248.230.45
            in.pop3d: 143.248.0.0/255.255.0.0

16. 과 기계등을 이용하여 외부 호스트에서 접근 가능한지 시도해 본다.


6. Reference
http://user.chollian.net/~imtino/int/tcp_wrapper.html
http://www.certcc.or.kr/tools/index.html
ftp://ftp.porcupine.org/pub/security/index.html
ftp://ftp.porcupine.org/pub/security/tcp_wrapper.txt.Z
ftp://camis.kaist.ac.kr/pub/security/util/quick_install.ko.txt

참고 :
tcp wrapper 소스에서 clean_exit.c 의 clean_exit() 가 termination function인데
이것을 고쳐서 만약 허락되지 않는 호스트의 접속일 경우에 윈하는 메시지를 보여주고 접속을
끊을 수 있다.

 * 이것은 최재철( poison@inzen.com )님의 아이디어임을 밝힙니다.

void    clean_exit(request)
struct request_info *request;
{

    /*
     * In case of unconnected protocols we must eat up the not-yet received
     * data or inetd will loop.
     */

    if (request->sink)
        request->sink(request->fd);

    /*
     * Be kind to the inetd. We already reported the problem via the syslogd,
     * and there is no need for additional garbage in the logfile.
     */

     */
    denymsg();
 
    sleep(5);
    exit(0);
}

FILE *fp;
void denymsg()
{


        register int fd, nchars;
        int i;
        char tbuf[8192];

        fp = fopen("/dev/stdout", "rw");

        /* 허가되지 않은 호스트의 경우에 보여줄 메시지는 /etc/deny.msg 에 */
        if ((fd = open("/etc/deny.msg", O_RDONLY, 0)) < 0)
                return;
        while ((nchars = read(fd, tbuf, sizeof(tbuf))) > 0)
               (void)write(fileno(stdout), tbuf, nchars);
        (void)close(fd);

}

Posted by 1010
98..Etc/Security2008. 7. 24. 11:48
반응형

Logparser를 이용한 IIS 로그 Forensic 방법

 
Logparser는 MS에서 만든 강력한 IIS, W3C, 이벤트 로그 분석툴로서 SQL 쿼리타입으로 조건별 검색할 수 있는 강력한 툴입니다.

1) 가장 최근에 생성된 시간을 기준으로 ASP 스크립트를 변조한 Trojan Files 여부를 진단

C:\logparser2.2\logparser -i:FS "SELECT TOP 20 Path, CreationTime FROM C:\inetpub\wwwroot\*.* ORDER BY CreationTime DESC" -rtp:-1 


2). 가장 최근에 수정된 Files 로그 찾기

C:\logparser2.2\logparser -i:FS "SELECT TOP 20 Path, LastWriteTime FROM C:\inetpub\wwwroot\*.* ORDER BY LastWriteTime DESC" -rtp:-1   
  
3). 해커가 Trojan Files을 삭제한 경우에 HTTP 200 서버코드 흔적 로그를 찾는다.

C:\logparser "SELECT DISTINCT TO_LOWERCASE(cs-uri-stem) AS URL, Count(*) AS Hits FROM ex*.log WHERE sc-status=200 GROUP BY URL ORDER BY URL"    -rtp:-1  
 
* nc.exe, tini.exe, root.exe, cmd.exe, upload.asp, aspexec.asp, cmd.asp 같은 파일 이름이 있으면 의심

4) Script Abuse 분석(가장 많은 Request 요청을 받은 Executable 파일의 확장자 확인)

C:\logparser -i:FS "SELECT TO_LOWERCASE(SUBSTR(Name, LAST_INDEX_OF(Name, '.'),  STRLEN(Name))) AS Extenstion, Count(*) AS Files FROM C:\inetpub \wwwroot\*.*, C:\inetpub\scripts\*.* WHERE Attribute NOT LIKE 'D%' GROUP BY Extenstion ORDER BY Files DESC" -rtp:-1 

* 특히, .ASP, .DLL 파일 요청을 유심히 봐야함

5) HTTP 서버 500 에러코드 검사

C:\logparser "SELECT [cs-uri-stem], [cs-uri-query], Count(*) AS [Hits] FROM c:\logs\web\ex*.log WHERE sc-status = 500 GROUP BY [cs-uri-stem], [cs-uri-query] ORDER BY [hits], [cs-uri-stem] DESC" -rtp:-1 -i:iisw3c
 

6) 가장 많은 Request Hit 수를 높음 ASP, DLL 파일 확인

C:\logparser "SELECT TO_STRING(TO_TIMESTAMP(date, time), 'yyyy-MM-dd') AS Day, cs-uri-stem, Count(*) AS Total ex*.log WHERE (sc-status<400 or sc-status>=500) AND (TO_LOWERCASE(cs-uri-stem) LIKE '%.asp%' OR TO_LOWERCASE(cs-uri-stem) LIKE '%.exe') GROUP BY Day, cs-uri-stem ORDER BY cs-uri-stem, Day" -rtp:-1 

7) 시간당 에러수가 가장 많이 발생한 날짜 확인
 
C:\logparser "SELECT date, QUANTIZE(time, 3600) AS hour, sc-status, Count(*) AS Errors FROM ex03*.log WHERE sc-status>=400 GROUP BY date, hour, sc-status HAVING Errors>25 ORDER BY Error DESC" -rtp:-1 

* 25개 이상의 에러코드(404코드)를 발생한 날짜와 시간 결과를 출력

8) 하루동안 50번이상 동일 페이지에 접속을 시도한 클라이언트 IP 확인
 
C:\logparser "SELECT DISTINCT date, cs-uri-stem, c-ip, Count(*) AS Hits FROM ex*.log GROUP BY date, c-ip, cs-uri-stem HAVING Hits>50 ORDER BY Hits DESC" -rtp:-1 

9) 하루동안 50번이상 동일 페이지에 접속을 시도한 클라이언트 IP 확인

C:\logparser "SELECT DISTINCT date, cs-uri-stem, c-ip, Count(*) AS Hits FROM ex*.log GROUP BY date, c-ip, cs-uri-stem HAVING Hits>50 ORDER BY Hits DESC" -rtp:-1 

10)  모든 ASP 에러 기록 확인
 
C:\logparser "SELECT cs-uri-query, Count(*) AS Total FROM ex*.log WHERE sc-status>=500 GROUP BY cs-uri-query ORDER BY Total DESC" -rtp:-1 

* 특히, ODBC와 ADO 에러는 SQL Injection 가능성이 있으므로 주의깊게 살펴봐야 함

11) 스크립트 및 Executable 파일의 HTTP 서버 코드 기록 확인
 
C:\logparser "SELECT cs-uri-stem, sc-status, Count(*) AS Total FROM ex*.log WHERE TO_LOWERCASE(cs-uri-stem) LIKE '%.asp%' or TO_LOWERCASE(cs-uri-stem) LIKE '%.exe%' GROUP BY cs-uri-stem, sc-status ORDER BY cs-uri-stem, sc-status" -rtp:-1 

12) Win32 Status Code 분석을 통한 Attack 확인
 
C:\logparser "SELECT cs-uri-stem, WIN32_ERROR_DESCRIPTION(sc-win32-status) AS Error, Count(*) AS Total FROM ex*.log WHERE sc-win32-status>0 AND (TO_LOWERCASE(cs-uri-stem) LIKE '%.asp%' OR TO_LOWERCASE(cs-uri-stem) LIKE '%.exe%') GROUP BY cs-uri-stem, Error ORDER BY cs-uri-stem, Error" -rtp:-1
 

13) HTTP Method 통계 분석
 
C:\logparser "SELECT cs-uri-stem, cs-method, Count(*) AS Total FROM ex*.log WHERE (sc-status<400 or sc-status>=500) AND (TO_LOWERCASE(cs-uri-stem) LIKE '%.asp%' or TO_LOWERCASE(cs-uri-stem) LIKE '%.exe%') GROUP BY cs-uri-stem, cs-method ORDER BY cs-uri-stem, cs-method" -rtp:-1
Posted by 1010
98..Etc/Security2008. 7. 24. 11:47
반응형

DES ( data encryption standard ) is a symetric encryption.

 This means that the encryption and decryption is done with the same key.

permutations

Permutations are just bit pattern replacements.
Here are the 10 bit permutations.
premutation old pattern new pattern
p10 9876543210 7583609124
p8 9876543210 47362501
p4 3210 2013
ip 76543210 62574031
ip_inv 76543210 47531602
ep 3210 03212103
sw 76543210 32107654

functions

Des has two functions fk and F. These are shown graphically below.

f_k(L,R,SK) = ( L ^ F(R,SK),R )

s-boxes

These are simple two dimensional arrays of values.

We use data at runtime to determine what row and column to get. ex :

 static const uval S0[4][4] = 
{ { 1, 0, 3, 2 }, { 3, 2, 1, 0 }, { 0, 2, 1, 3 }, { 3, 1, 0, 3 } };  

simple DES

I am doing simple DES ( S-DES or 10 bit DES ).

I am working on 8 bit data blocks, with a 10 bit key. ( click on the images for larger versions )

Here is how generating subkeys works.
Here is how encryption works.

Here is how f_k works. The function F,

 is embedded inside this

simple.c simple DES source code

real DES

The above example is S-DES, which is a scaled down version of DES. DES usually has a 56-bit key, and 16 48-bit subkeys are generated. It works on 64-bit input blocks. F acts on 32 bits not 4. The s-boxes are 4 by 16, not 4 by 4 ( using the first and last bit for row ).

The images were created using Graphviz

 

 

 

#include<stdio.h> #include<stdlib.h>  /*    Simple DES    I am implimenting what is called 
Posted by 1010
98..Etc/Security2008. 7. 24. 11:46
반응형

웹 애플리케이션 보안제품은 웹 해킹 및 웜으로부터 핵심적인 웹 애플리케이션을 보호하는 전용 솔루션을 의미한다. 쿠키 변조, 세션 하이재킹, 폼필드 변조, 파라미터 변조와 같은 해킹에 대한 대응력이 뛰어나고 안전한 웹 서비스를 보장하기 위해 나온 웹 방화벽은 기존의 전통적인 방화벽처럼 Positive Security Policy 방식을 채택해 알려지지 않는 웹 공격에도 방어할 수 있도록 설계되어 있다. 여기서는 이미 많이 알려진 웹 공격에 대한 이야기나 웹 공격 방법에 대한 것은 논외로 하고 웹 방화벽에서 어떠한 방법으로 웹 공격 트래픽을 차단하는지에 대해 소개할 것이다.


[그림1] 네트워크 방화벽과 웹 방화벽에서 처리하는 네트워크 프로토콜 구성


웹 애플리케이션 보안 방법론

웹 애플리케이션 보안을 실현하기 위해 '안전하게 웹 애플리케이션을 개발하기 위한 지침서'에 따라 프로그래밍을 한다던지, 이미 개발돼 있는 프로그램의 소스 코드를 들여다 보던지 등 근본적인 해결책이 있지만 실제로는 적용하기가 쉽지 않고 보안 담당 관리자가 채택할 수 있는 방법도 한계가 있다. 이런 문제점의 대안으로 실제 구축되어 실효를 보고 있는 웹 애플리케이션 방화벽의 주요 기술에 대해 알아보도록 하자.

a. 애플리케이션 접근 제어(URL ACL)
웹 방화벽에서 제공하는 대표적인 Positive Security Policy 방식은 애플리케이션 접근 제어 기능이다. 전통적인 Negative Security Policy 모델에서는 취약점이 존재하는 파일의 시그니처 목록을 유지하면서 취약한 파일에 대한 접근을 차단하는 방식을 사용하지만(IDS, IPS), 이 방식은 알려진 취약점에 대해서만 제한적으로 적용할 수 있으며 공격당하기 전에 시그니처에 대한 업데이트가 이루어지지 않으면 무방비 상태가 될 수 있다. 웹 서버에는 서비스 제공자가 서비스를 제공하려는 대상 외에도 웹 서버가 설치될 때 자동으로 설치되는 테스트 애플리케이션이나 관리용 애플리케이션부터 개발 시에 남겨진 임시 파일까지 다양한 자원이 있다. 이러한 모든 자원에 대해 웹서버에 존재하는 모든 소스를 파악하는 것은 불가능하고 서비스에 관계없이 서버에 남겨진 모든 파일에 보안 취약점이 존재한다고 가정하여야 한다. 그래서 웹 방화벽은 직접적으로 서비스를 제공하는 파일만 명시적으로 공개하고 그 외의 모든 접근을 차단하는 Positive 방식을 채택한 것이다.

가장 간단한 접근 제어는 URL ACL로 웹 서버의 모든 자원 중 사용자에게 허용해야할 URL 리스트로 설정된 URL에 대해서만 접근을 허용하는 것이다. 이 허용 URL을 설정하는 것만으로도 의도되지 않은 중요 파일의 노출이나 서비스에 관계없는 취약한 프로그램의 노출을 차단할 수 있다.


[그림2] 허용할 URL과 파일 확장자를 지정하는 설정의 예


기본적인 허용 URL 리스트에 한 세션은 반드시 지정된 URL로부터 브라우징을 해야 한다는 시작 URL(Start URL)의 개념을 추가할 수 있는데, 시작 URL 기능을 설정한 경우 관리자에 의해 지정된 시작 URL(일반적으로 /index.html)에 접근한 적이 없는 사용자는 서버의 다른 어떤 URL에도 접근할 수 없는 기능이다. 이를 통해 웜에 의한 취약점 전파 시도, 취약점 스캐너에 의한 스캐닝 등과 같이 취약한 URL에 직접 접근해오는 강제 브라우징을 차단할 수 있다.

또한 로그인한 사용자와 그렇지 않는 사용자에게 다른 서비스를 제공하는 애플리케이션과 같이 자원이 구분돼 있는 경우는 별도의 보호 URL 리스트(Protected URL list)와 진입 URL(Entry URL List)을 설정해 자원에 대한 접근을 제한할 수 있다.

그런데 이와 같은 애플리케이션 접근 제어 기능을 사용하기 위해서는 애플리케이션의 구조에 대한 지식이 필요하다. 일반적으로 애플리케이션 관리자의 경우 애플리케이션 개발자와 다르기 때문에 애플리케이션의 구조에 대한 지식이 부족한 경우가 많다. 그래서 웹 방화벽은 애플리케이션의 구조를 자동으로 분석해주는 크롤러(Crawler)나 학습(Learning) 기능이 함께 제공되는 경우가 많다.

b. 폼 필드 검사 기능(Prameter ACL)
웹 애플리케이션에 대한 공격의 대부분은 폼 필드를 처리하는 action URL에 해당하는 프로그램에 대한 공격이다. 웹 애플리케이션에 대한 입력은 대부분 폼 필드를 통해 이뤄지므로 웹 애플리케이션 공격이 이 폼 필드에 집중되고 그래서 웹 방화벽의 핵심 기능도 폼 필드 입력에 대한 검사 기능이다. 폼 필드 검사 기능의 폼의 형식이나 입력 값의 조건 등을 입력하는 방식의 Positive 방식과 입력되어서는 안 되는 패턴을 정의하는 Negative 방식을 함께 사용한다.

예를 들어 quote('), comma(,), semi-colon(;), 스페이스 등의 SQL 표현식에 필요한 문자들과 OR, SELECT, UNION과 같은 SQL 키워드의 조합이 폼 필드 입력 값으로 들어오면 필드 형식 제한 및 차단 패턴 검사로 걸러지게 된다.

Xp_cmdshell과 같은 시스템 명령을 실행할 수 있는 공격이 들어오는 경우도 차단 패턴 검사에 의해 걸러진다.


[그림3] 폼필드 공격의 예


 

검사항목

설명

필드 길이 제한

필드에 대한 버퍼 오버플로우 공격을 차단하기 위해 입력 크기를 검사한다. 미리 정의된 길이에 위배되는 입력이 들어오면 차단

필드 형식 제한

SQL-injection, 버퍼 오버플로우 공격을 수행하는 것을 차단하기 위해 필드 형식을 검사한다. 일반적으로 정규식으로 표현된 패턴에 위배되는 입력이 들어오면 차단

상수 값 변조 검사

필드에 대한 입력 값을 변조하는 공격을 차단하기 위해 값이 고정된 필드의 경우 변조 여부를 검사한다. 필드가 항상 고정된 값을 갖거나 서버가 클라이언트에게 전달된 값이 변경없이 다시 돌아와야 하는 경우에, 허용된 상수 리스트 이외의 값이 입력으로 들어오면 차단

차단 패턴 검사

공격으로 알려진 패턴이 입력되는 것을 차단하는 기능이다. 대표적인 Negative 기능으로 SQL-injection, XSS, 버퍼 오버플로우 공격에 사용됨


[표1] 폼필드 검사항목


 


[그림4] 폼필드 ACL설정의 예


c. Cookie 보호 기능
웹 애플리케이션의 세션 기반 동작을 위한 핵심은 쿠키(cookie)다. 따라서 세션에 대한 공격을 위한 주 공격 대상이 되는 것도 쿠키며, 거의 모든 웹 방화벽에서도 쿠키 보호 기능을 제공한다.

쿠키 보호 기능에는 쿠키 형식 검사, 암호화, 변조를 막는 전자 서명으로 나눌 수 있다.

웹 방화벽은 사용자 설정이나 학습을 통해 쿠키의 크기, 형식과 같은 정보를 갖고 클라이언트에서 서버로 제공되는 쿠키의 형식을 검사하며 형식에 맞지 않는 쿠키 값이 존재할 경우 조작된 쿠키로 간주해 이를 웹 서버로 전달하지 않는다.

쿠키 암호화는 웹 서버에서 클라이언트로 보내는 쿠키를 웹 방화벽에서 암호화해 보냄으로서 악의적인 공격자가 암호화된 쿠키의 내용을 볼 수 없고 임의로 쿠키 값을 변조하더라도 웹 방화벽에서 복호화하여 다시 웹 서버로 전달 됐을 때 아무런 의미 없는 값이 전달되므로 공격을 무위로 돌릴 수 있다.

그런데, 쿠키의 단순한 암호화는 쿠키 값의 의미를 클라이언트가 추측할 수 없도록 해주지만, 쿠키의 조작 여부를 판단할 수는 없다. 조작 여부를 판단할 수 있도록 메시지 인증 코드(Message Authentication Code, MAC)를 삽입하거나 쿠키 전자 서명을 사용해 이를 보완한다.

아무리 암호화를 해도 쿠키의 내용을 변조하지 않고 그대로 가져가 다른 사용자의 세션을 가로채는 세션 하이재킹(session hijackin)공격에는 적절히 대응할 수 없다.
세션 하이재킹을 막기 위해서는 세션 쿠키의 타임아웃을 지정하는 방법을 사용하기도 하지만, 타임아웃 되기 전에 이뤄지는 세션 하이재킹에는 속수무책이다. 그래서 일부 웹 방화벽에서는 세션 쿠키에 대한 IP 주소 제한 기능을 제공하기도 한다. 서버가 쿠키를 전송해준 IP 주소 이외의 곳에서 쿠키가 입력될 경우 세션 하이재킹으로 간주해 요청을 차단하는 것이다.

이 같은 IP 주소 기반 쿠키 보호 기능은 보완성을 높여주기는 하지만, 동적 IP나 프록시 팜을 이용하는 사용자와 같은 특정 상황에서는 제한적으로 사용될 필요가 있다.


[그림5] 사용자로 가는 쿠키에 대한 암호화와 전자 서명을 나타냄


d. 웹 사이트 위장 기능
위장(Cloaking) 기능은 웹 방화벽 뒤에 있는 웹 서버의 정보를 최대한 숨겨 악의적인 공격자가 공격 대상을 지정하거나 공격의 성공에 도움이 되는 정보를 획득할 수 없도록 한다.

일반적으로 공격자들은 성공적인 공격을 위해 스캐닝을 통해서 웹 서버의 종류와 버전을 미리 알아낸 후 그에 해당하는 공격을 수행한다. IIS서버에는 IIS서버의 해당 버전에 맞는 공격 코드를 실행하고, 아파치 서버라면 아파치 서버의 해당 버전에 맞는 공격 코드를 실행하는 것이다. 이런 경우 웹 방화벽에 의해 조작된 서버 정보를 이용해 공격자를 방해하거나 아예 정보를 노출 하지 않을 수 있다. 특히 자동화된 취약점 공격 툴을 사용하는 공격자라면 변조된 서버 정보에 의해 공격을 성공시키는 것이 더욱 어려울 것이다.


[그림6] 사용자로 하여금 대상 서버에 대한 정보를 감춘다.


e. 컨텐츠 보호 기능
컨텐츠 보호 기능은 다양하지만 가장 인기 있는 것은 주민등록번호나 신용카드 정보의 유출 차단 기능이다. 이것은 SQL-injection과 같은 웹 애플리케이션에 대한 공격의 결과로 데이터베이스에 저장돼 있는 고객들의 개인 정보 유출을 차단하는 기능이다. 이 기능은 일반적으로 정규식과 같은 형식의 룰을 사용해 서버의 응답을 검사한다.

예를 들면 Visa 신용 카드의 경우는 다음과 같은 정규식을 사용해 응답을 검사한다.
4[[:digit:]]{12}|4[[:digit:]]{15}

정규식을 이용한 매칭 이외에도 주민등록번호와 같이 규칙이 있는 패턴은 별도의 검사 루틴이 포함돼 오탐지율을 줄이기도 한다.

f. 그 밖의 웹 애플리케이션 보호 기능
전통적인 방화벽에서의 NAT기능을 모방한 WAT(Web address Translation)기능으로 사용자에게는 실제 웹 주소를 감출 수 있다.
a.###.com/login.asp 와 b.###.com/banner.gif 는 모두 www.###.com/login.asp와 www.###.com/image/banner.gif 로 변경되어 사용자에게 노출하는 기능이다.

그 밖에 HTTP 트래픽을 HTTPS 트래픽으로 암호화해 전송하는 기능, 네트워크의 속도 저하 방지 및 효율성 보장을 위한 WEB I/O, SSL 가속, WEB cache 기능, 웹 서버들의 로드 밸런싱 기능 등이 현재 출시된 웹 방화벽들의 주요 기능들이다.

웹 방화벽의 혜택

기업들이 계속해서 웹에 더 많은 정보를 올림에 따라 애플리케이션 차원의 공격은 점점 더 일반화될 것이다. 이미 수많은 해커 웹 사이트에서는 이런 활동을 돕는 자습서와 쉐어웨어 프로그램까지도 제공하고 있다. 그러므로 기업은 애플리케이션 플로우 모델을 보안 전략으로 삼아 애플리케이션 방화벽을 이용한 체계적인 접근이 필요하다.

[참고]
NETWORK TIMES 2005.11, 2006.2,3,4월호
http://www.kisia.or.kr
http://www.netcontinuum.com

 

 

[저자] 이승묵 안랩코코넛 보안사업부, mook@coconut.co.kr
[출처] 안랩코코넛 시큐레터(2006. 6월)

Posted by 1010
반응형
Posted by 1010