Posted on 2008/09/23 14:51
Filed Under [1] IT 관련/5. Security

아래의 그림처럼 악성 코드들이 이제는 대량으로 발송이 되고 있네요.
제 사이트에 오신 분들은 이런 부분들 조심하도록 하세요.

바이러스성 exe 파일은 될 수 있으면 신뢰하지 않는 곳에서 온 메일의 경우
바로 삭제 조치를 하시는 것이 좋을 것 같네요. :)

사용자 삽입 이미지
2008/09/23 14:51 2008/09/23 14:51

Posted on 2008/09/12 10:56
Filed Under [1] IT 관련/5. Security

9월 10일 Microsoft 보안 공지가 올라왔습니다. 4가지의 긴급 패치로 긴장을 고조하게 만들었는데요.
MS 윈도우를 사용하는 사용자들은 아래의 4가지를 꼭 패치 하시기 바랍니다.  DDoS 악성 스크립트 및
원격 실행이 가능한 부분이 노출 되어있다고 합니다.

MS 제품군의 비상이 걸린듯 하네요. 개발 패키지의 경우 리포트 뷰어만 긴급으로 올라왔네요..
음.. Forefront Security도 패치가 필요한 것으로 보아 상당히 문제가 심각 한 것으로 생각되어집니다.

출처 : MS (http://www.microsoft.com/korea/technet ··· sep.mspx)

공지 번호 Microsoft 보안 공지 MS08-054

공지 제목

Windows Media Player의 취약점으로 인한 원격 코드 실행 문제점 (954154)

요약

이 보안 업데이트는 Windows Media Player의 비공개적으로 보고된 취약점, 즉 특수하게 조작된 오디오 파일이 Windows Media 서버로부터 스트리밍될 때 원격 코드의 실행이 가능하다는 문제점을 해결합니다. 사용자가 관리자 권한으로 로그온한 경우, 이 취약점을 악용한 공격자는 영향을 받는 시스템을 완전히 제어할 수 있습니다. 이렇게 되면 공격자가 프로그램을 설치할 수 있을 뿐 아니라 데이터를 보거나 변경하거나 삭제할 수 있고 모든 사용자 권한이 있는 새 계정을 만들 수도 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.

최대 심각도

긴급

취약점으로 인한 영향

원격 코드 실행

검색

Microsoft Baseline Security Analyzer로 컴퓨터를 검색하여 이 업데이트가 필요한지 확인할 수 있습니다. 이 업데이트를 적용하기 위해 다시 시작할 필요는 없습니다.

영향을 받는 소프트웨어

Microsoft Windows. 자세한 내용은 영향을 받는 소프트웨어 및 다운로드 위치 섹션을 참조하십시오.


공지 번호 Microsoft 보안 공지 MS08-052

공지 제목

GDI+의 취약점으로 인한 원격 코드 실행 문제점 (954593)

요약

이 보안 업데이트는 Microsoft Windows GDI+에서 발견되어 비공개적으로 보고된 여러 취약점을 해결합니다. 이 취약점으로 인해 사용자가 영향을 받는 소프트웨어를 사용하여 특수하게 조작된 이미지를 보거나 특수하게 조작된 콘텐츠가 포함된 웹사이트를 탐색할 경우 원격 코드 실행이 허용될 수 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.

최대 심각도

긴급

취약점으로 인한 영향

원격 코드 실행

검색

Microsoft Baseline Security Analyzer로 컴퓨터를 검색하여 이 업데이트가 필요한지 확인할 수 있습니다. 이 업데이트를 설치하려면 다시 시작해야 합니다.

영향을 받는 소프트웨어

Microsoft Windows, Internet Explorer, .NET Framework, Office, SQL Server, Visual Studio. 자세한 내용은 영향을 받는 소프트웨어 및 다운로드 위치 섹션을 참조하십시오.


공지 번호 Microsoft 보안 공지 MS08-053

공지 제목

Windows Media 인코더 9의 취약점으로 인한 원격 코드 실행 문제점 (954156)

요약

이 보안 업데이트는 비공개적으로 보고된 Windows Media 인코더 9 시리즈의 취약점을 해결합니다. 이 취약점은 사용자가 특수하게 조작된 웹 페이지를 볼 경우 원격 코드 실행을 허용할 수 있습니다. 사용자가 관리자 권한으로 로그온한 경우, 이 취약점을 악용한 공격자는 영향을 받는 시스템을 완전히 제어할 수 있습니다. 이렇게 되면 공격자가 프로그램을 설치할 수 있을 뿐 아니라 데이터를 보거나 변경하거나 삭제할 수 있고 모든 사용자 권한이 있는 새 계정을 만들 수도 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.

최대 심각도

긴급

취약점으로 인한 영향

원격 코드 실행

검색

Microsoft Baseline Security Analyzer로 컴퓨터를 검색하여 이 업데이트가 필요한지 확인할 수 있습니다. 업데이트를 적용한 다음 컴퓨터를 다시 시작해야 할 수 있습니다.

영향을 받는 소프트웨어

Microsoft Windows. 자세한 내용은 영향을 받는 소프트웨어 및 다운로드 위치 섹션을 참조하십시오.


공지 번호 Microsoft 보안 공지 MS08-055

공지 제목

Microsoft Office의 취약점으로 인한 원격 코드 실행 문제점 (955047)

요약

이 보안 업데이트는 비공개적으로 보고된 Microsoft Office의 취약점을 해결합니다. 이 취약점으로 인해 사용자가 특수하게 조작된 OneNote URL을 클릭할 경우 원격 코드 실행이 허용될 수 있습니다. 이 취약점을 악용한 공격자는 영향을 받는 시스템을 완전히 제어할 수 있습니다. 이렇게 되면 공격자가 프로그램을 설치할 수 있을 뿐 아니라 데이터를 보거나 변경하거나 삭제할 수 있고 모든 사용자 권한이 있는 새 계정을 만들 수도 있습니다. 시스템에 대한 사용자 권한이 적게 구성된 계정의 사용자는 관리자 권한으로 작업하는 사용자에 비해 영향을 적게 받습니다.

최대 심각도

긴급

취약점으로 인한 영향

원격 코드 실행

검색

Microsoft Baseline Security Analyzer로 컴퓨터를 검색하여 이 업데이트가 필요한지 확인할 수 있습니다. 이 업데이트를 적용하기 위해 다시 시작할 필요는 없습니다.

영향을 받는 소프트웨어

Microsoft Office. 자세한 내용은 영향을 받는 소프트웨어 및 다운로드 위치 섹션을 참조하십시오.

2008/09/12 10:56 2008/09/12 10:56

Posted on 2008/09/08 16:12
Filed Under [1] IT 관련/5. Security

예전에 썼던 글을 겨우 찾아서 이렇게 올립니다.
제발... 변형하는건 좋지만 출처는 밝혀 주시는 것은 어떤지 궁금하네요.

흔히들 리눅스를 설치하고 그냥 외부에 공개해버리는 서버들이 간혹있습니다.
이에 따른 버그조차조 패치를 않하고 기본적으로 사용을 하는 분들이 많이
있는데 이는 잘못된 생각이며, 버젼별로 버그 패치를 꼭 해주셔야 합니다.
또한 각종 remote bug가 허용되는것들은 조심을 하셔야 한다고 생각되며
아래에 보안 리눅스 디폴트 퍼미션을 공개합니다. 마음대로 설정은 하셔도
되며 저에게는 어떠한 책임이 없음을 여기서 밝혀드립니다.

▶ 표준 보안 퍼미션 설정
/bin/ root.root 711
/boot/ root.root 700
/dev/ root.root 711
/dev/audio* root.audio 600
/dev/dsp* root.audio 600
/etc/ root.adm 711
/etc/conf.modules root.adm 640
/etc/cron.daily/ root.adm 750
/etc/cron.hourly/ root.adm 750
/etc/cron.monthly/ root.adm 750
/etc/cron.weekly/ root.adm 750
/etc/crontab root.adm 640
/etc/dhcpcd/ root.adm 750
/etc/dhcpcd/* root.adm 640
/etc/esd.conf root.audio 640
/etc/ftpaccess root.adm 640
/etc/ftpconversions root.adm 640
/etc/ftpgroups root.adm 640
/etc/ftphosts root.adm 640
/etc/ftpusers root.adm 640
/etc/gettydefs root.adm 640
/etc/hosts.allow root.adm 640
/etc/hosts.deny root.adm 640
/etc/hosts.equiv root.adm 640
/etc/inetd.conf root.adm 640
/etc/rc.d/init.d/ root.adm 750
/etc/rc.d/init.d/syslog root.adm 740
/etc/inittab root.adm 640
/etc/ld.so.conf root.adm 640
/etc/lilo.conf root.adm 600
/etc/modules.conf root.adm 640
/etc/motd root.adm 644
/etc/printcap root.lp 640
/etc/profile root.root 644
/etc/rc.d/ root.adm 640
/etc/securetty root.adm 640
/etc/sendmail.cf root.adm 640
/etc/shutdown.allow root.root 600
/etc/ssh_config root.root 644
/etc/ssh_host_key root.adm 640
/etc/ssh_host_key.pub root.adm 644
/etc/sshd_config root.adm 640
/etc/syslog.conf root.adm 640
/etc/updatedb.conf root.adm 640
/home/ root.adm 751
/home/* current 700
/lib/ root.adm 751
/mnt/ root.adm 750
/root/ root.root 700
/sbin/ root.adm 751
/tmp/ root.root 1777
/usr/ root.adm 751
/usr/* root.adm 751
/usr/X11R6/ root.xgrp 751
/usr/bin/ root.adm 751
/usr/bin/* root.root 755
/usr/sbin/ root.adm 751
/usr/sbin/* root.root 755
/var/ root.root 755
/var/log/ root.root 711
/var/log/* root.root 600
/var/spool/mail/ root.mail 771

▶툴들에 대한 퍼미션 설정

1. 컴파일 툴들의 퍼미션 설정
chmod 0700 /usr/bin/gcc
chmod 0700 /usr/bin/g++
chmod 0700 /usr/bin/cc
chmod 0700 /usr/bin/colorgcc

2. 시스템 툴들의 퍼미션 설정
chmod 0700 /usr/bin/w
chmod 0700 /usr/bin/who
chmod 0700 /usr/bin/finger

3. 네트워크 툴들의 퍼미션 설정
chmod 0700 /bin/ping
chmod 0700 /usr/bin/telnet (이나 아마 /bin/telnet일겁니다.)
chmod 0700 /usr/bin/ssh (만일 여러분이 ssh를 설치하였다면)
chmod 0700 /usr/sbin/traceroute

▶물리적 보안
보통 서버가 외부 사람이 많이 오는곳에 설치되어있다면 그 사람들중에
물리적 크래킹을 하기위하여 다가오는 분들이 많이 있습니다. 이에 방어
할수 있는것은 바로 lilo와 root로 조인을 못하게 설정하는것입니다.

1. lilo.conf의 설정
/etc/lilo.conf 의 맨위에다가 아래와 같이 설정을 합니다.
#My LILO password
password=foobar <-- 비번입니다.

저장을 하고 나서,
chmod a-r /etc/lilo.conf
아무도 못보게 설정을 합니다.

그다음 /sbin/lilo를 구동시켜 새로운 설정을 적용시킵니다.

2. /etc/inittab 의 설정
로컬에서는 루트로도 접근이 가능합니다.
허나 이를 막기 위하여 이 파일을 수정하셔야 합니다.
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
이라고 보이실겁니다. 이것을 아래와 같이 변경을 합니다.
ca::ctrlaltdel:/sbin/shutdown -a -t3 -r now
저장을 하시고 나서 아래와 같이 명령어를 수행합니다.
#telinit q
#
위와 같이 한후에 보시게 되면 /etc/에 shadow.allow가 만들어질것입니다.
그것이 있다면 아무나 리부팅을 못하는것이죠.

3./etc/securetty 의 설정
/etc/securetty 파일을 열게 되면 아마도 아래와 같이 있을것입니다.

# /etc/securetty
tty1
tty2
tty3
tty4
tty5
tty6

이것은 로컬에서 root로 들어올수 있는것이죠.
그래서 이것을 막게 하는것입니다. 그래야 공개된 석상에서 아무도 root를
뚫고 들어오지를 못할테니까여... 설령 linux single로도...
그래서 아래와 같이 설정을 합니다.
# /etc/securetty
#tty1
#tty2
#tty3
#tty4
#tty5
#tty6

이후에 telinit q를 실행하여 지금 방금 설정한것에 대한 적용을
시킵니다.
그후 로그인을 해봅니다.
Kernel 2.2.13-pre3 on an i686 / tty3
H4cker login: root
Password:
Login incorrect

login: root
Password:
Login incorrect

Done, root is not allowed login.

위와 같이 떨어지겠죠? 그렇다면 아무리 공개된 석상에 서버를 가져다 놓아도
크래킹 당할 염려가 없답니다. 그사람이 암호를 알지 못하는 이상...
첫번째 문서는 여기까지 입니다.
더욱 더 보람찬 리눅서들이 되시기 바랍니다.

[ 참조=http://web.archive.org/web/20020728054510/http://www.userlocal.com/ ]
--
Poly, Alex
http://web.archive.org/web/20020728054510/http://gnuhacker.com/ , help@popsmail.com
Hacker's not cracker~!!!
2008/09/08 16:12 2008/09/08 16:12

Posted on 2008/09/08 16:04
Filed Under [1] IT 관련/5. Security

Netscreen Debug


 

                                                                        2007. 07. 10
                                                                       KRLAB / Jaehun, Park

Netscreen 의 기본 정보를 디버깅 하기 위하여 우리는 숨은 명령인 debug를 이용하여야 합니다.
Netscreen 콘솔에 접속하시면 아래와 같은 명령어들을 보실 수 있습니다.

login: netscreen (default)
password: [netscreen] (default)

after that you will see the prompt:
ssg5-fw1-> [tab]
clear clear dynamic system info
delete delete persistent info in flash
exec exec system commands
exit exit command console
get get system information
mtrace multicast traceroute from source to destination
ping ping other host
reset reset system
save save command
set configure system parameters
trace-route trace route
unset unconfigure system parameters

여기서 여러분은 debug라는 명령어를 보실 수 없습니다. 그렇지만, 만일 여러분이 debug라고 치신후 tab키를
치시게 되면 디버그에 관련된 파라미터를 출력할 수 있고, 여러분이 원하시는 어떠한 디버그를 하실 수
있습니다.

ssg5-fw1-> debug [tab]

예를 들면, IKE 패킷과 에러에 관련된 디버깅은 "debug ike detail"이라고 치시면 됩니다.

ssg5-fw1-> debug ike detail [Enter]

ldap 인증서버를 디버깅 하실 때에는 "debug auth all" 또는 "debug ldap all"이라고
명령을 내리실 수 있습니다.

ssg5-fw1-> debug auth all [Enter]

넷스크린에는 dbuf의 정보를 디버깅 하실 수 있습니다. 여러분이 버퍼 사이즈를 수정하기 원하신다면
"set dbuf suze <number>"를 넣으실 수 있으며 버퍼허용은 32부터 4096 키로바이트입니다.
ssg5-fw1-> set dbuf size 512 [Enter]

디버그 하신 것을 보고 싶으시다면 "get dbuf stream"이라고 치게 되면 보다 상세한 내용을
보실 수 있습니다.

ssg5-fw1-> get dbuf stream [Enter]

버퍼를 초기화 시키고 싶다면 "clear dbuf"라고 치게 되면 모든 디버그 정보들이 초기화 됩니다.
ssg5-fw1-> clear dbuf [Enter]

저의 경우 디버그 한 부분들을 tftp를 이용하여 로그를 보내고 있습니다.
왜냐하면 상세한 내용들이 가로 사이즈가 화면에 비해 크기때문에 로그를 파일로 보내여 vi 에디터로
이용하여 보곤 한답니다.

ssg5-fw1-> get buf stream > tftp 192.168.1.15 netscreen.log

더 자세한 내용들은 더욱 더 올리도록 하겠습니다.

2008/09/08 16:04 2008/09/08 16:04

Posted on 2008/09/08 16:02
Filed Under [1] IT 관련/5. Security

VPN의 기능 및 용어
 
* Data Confidentiality
데이터 기밀성 (Data Confidentiality)은 네트워크를 통과하는 데이터의 내용을 제3자가 보더라도
알 수 없도록 하며 원래 데이터를 받을 사람만이 알 수 있도록 하는 것이다. 이는 사전에 공유한
키를 사용하여 데이터를 암호화함으로써 가능하다. 그러나 이 방법은 키가 노출될 경우 문제가
심각해지므로 이를 위해 안전한 키의 분배가 필요하다. 이러한 키의 안전한 관리 메커니즘으로
IKE(ISAKMP/OAKLEY) 프로토콜을 사용한다.

* Data Integrity
데이터 무결성 (Data Integrity)은 네트워크를 통해 전달되는 데이터가 중간에서 변조되지 않았음을
보장한다. 그래서 A가 B에게 메일을 보냈을 때 중간에 제3자인 C가 메일의 내용을 조금이라도 변조할
경우 원래의 메일을 받게 되는 B는 그 내용이 변조되었음을 알 수 있게 된다. 이것은 VPN이 암호화
및 전자서명(Digital Signature) 방식으로 통신하기 때문이다.

* Data Origin Authentication
데이터 근원 인증(Data Origin Authentication)은 네트워크를 통해 데이터를 보낸 자가 누구인지
인증하는 것이다. 예를 들어, 원래는 A가 B에게 메일을 보내는데 중간에 제3자인 C가 자신이 A인
것처럼 속이고 보낸다 하더라도 그 데이터가 A에서 오지 않았음을 확인할 수 있다. 이것이 가능한
이유는 통신을 하고자 하는 당사자들끼리 공유한 키를 다른 제3자가 알지 못한다는 가정을 하였기
때문이다. 따라서 메시지의 근원을 인증 할 수 있다.

*접근 통제(Access Control)
접근 통제(Access Control)는 인증된 사용자에 대해서만 접근을 허가하는 서비스이다. VPN은 기본적으로
IPSec 프로토콜을 사용하는데, 이 IPSec을 사용할 경우 게이트웨이간에 사전 협상을 한다. 이 과정에서
VPN 게이트웨이에 설정된 여러 정보들이 통신하는 각 종단과 맞아야 상대방의 요청이 받아 들여지게 된다.
그러므로 사전 공유 정보를 알지 못하는 사람의 접근을 막을 수 있다.

3) 용어
* SA (Security Association)
데이터 송수신자간에 비밀데이터(인증되었거나, 암호화된 데이터)를 교환할 때 사전에 암호 알고리즘,
키 교환방법, 키교환 주기 등에 대한 합의가 이루어져야 한다. 이러한 정보들은 SA 에 저장된다.
데이터 송수신자간의 안전한 통신을 위해서는 적어도 하나의 SA가 필요하다. 그러므로 패킷 인증과
암호를 위해서는 SA가 선행되어야 한다. 동일한 알고리즘이 사용되어도 서로 다른 두 개의 키가 요구될
경우에는 두 개의 SA가 필요하다.

SA 변수
- SPI (Security Parameters Index)
- Source and destination IP address
- Source and destination port number
- User ID or System name
- Security Protocol : AH or ESP
- Authentication parameters
- Replay protection parameters
- Mode : Transport or Tunnel
- SA lifetime
- Fragmentation parameters (Path MTU)

* Security Association Databases

IPSec 프로토콜에는 보안연계 데이터베이스로 SPD(Security Policy Database)와 SAD(Security Associa-
tion Database)가 있다. SPD는 패킷들의 출입여부를 결정한다. 패킷의 선택자들을 SPD의 내용들과 비교하여
그 패킷에 적당한 정책을 결정한다. 이때 사용될 수 있는 내용으로는 목적지 IP 주소, 트랜스포트 계층
프로토콜, 발신지•목적지 포트 등이 있고, 결정될 수 있는 정책으로는 통과, 폐기 그리고 IPSec 적용
등이 있다.

SAD는 데이터 교환 전에 통일되어야 할 요소들을 정의하는 데, 이는 데이터 송수신자간에 비밀데이터를
교환할 때 사전에 암호 알고리즘, 키 교환방법, 키교환 주기 등에 대한 합의가 이루어져야 하기 때문이다.

* IKE(Internet Key Exchange Protocol)
VPN 암호화된 데이터를 주고 받기 때문에 데이터를 주고 받기 전에 암호를 풀 수 있는 key 값을 주고
받아야 된다. 키 교환 프로토콜은 SKIP, Photuris에서 시작하여 현재는 IKE(Internet Key Exchange)로
표준화되어 있다. IKE는 ISAKMP의 Framework에 Oakley 키 결정 알고리즘을 결합하여 SA의 협상과 키
교환 메커니즘을 제공하기 위한 프로토콜로서 Cisco Systems, Timestep, VPnet 등의 VPN 업체들도 IKE를
기본 키 교환프로토콜로 채택하여 사용하고 있다. IKE는 IETF 워킹그룹에서 ISAKMP 프레임웍을 기반으로
Oakley 키 결정 알고리즘을 결합하여 SA 협상과 키 교환 메커니즘의 표준으로 제정한 프로토콜이다
(참조 : RFC 2409 )

* Tunnel 모드
IP 데이터그램 전체를 보호하기 위하여 새로운 IP 헤더를 덧붙여서 IP 데이터그램 전체를 캡슐화 하고
호스트간 터널에 주로 이용한다.

* Transport 모드
데이터 전체를 캡슐화하고 새로운 IP 헤더를 추가하는 형태로 주로 게이트웨이(라우터) 간의 터널 형성에
이용되며, 이때 AH/ESP 헤더는 바깥쪽 IP 헤더 뒤, 안쪽의 IP헤더 앞에 붙는다.

* 인증 기술(Authentication Algorithms)
인증이란 크게 데이터가 변형되지 않았음을 증명하는 데이터의 인증과 송신자의 신분 확인 후 액세스 권한을
부여하는 사용자 인증으로 구분할 수 있다. 신분이 확실한 사람에게만 권한을 부여해 주기 때문에 네트워크의
보안을 유지할 수 있다.

가장 많이 사용하는 인증 방법으로 RADIUS 서버를 사용한 인증 방법을 들 수 있다. RADIUS서버는 이동 사용자
혹은 재택근무자의 수가 늘어남에 따라 이를 VPN 라우터에서 모두 인증시 발생할 수 있는 성능상의 문제점을
줄일 수 있게 한다.

VPN 라우터는 인증 과정의 수행을 위해 RADIUS 서버로 데이터를 전송하며 RADIUS 서버는 저장된 정보로
인증과정을 수행하게 된다. 이때 사용자들은 자신의 어드레스와 패스워드만으로 인증을 받게 된다.

이런 과정은 전체 네트워크의 성능을 더욱 강화시킬 수 있으며 네트워크의 원활한 관리 기능을 제공할 수 있다.
그리고 한 걸음 더 나간 고급기능으로 사용자별로 사용 시간을 추적, 과금을 부여하는 기능도 수행하는데
인증(Authentication), 허가(Authorization), 과금(Accounting) 서비스를 통틀어 AAA 서비스라고 부른다.


* 암호화 기술(Encryption Algorithms)
암호화란 외부의 침입으로부터 데이터의 보안 유지를 목적으로, 적절한 암호화 키를 가진 대상(pair)만이 읽을
수 있도록 데이터를 변형시키는 것이다. 암호화 방식으로는 PPTP 터널링에서 사용되는 MPPE와 IPSec
터널링에서 사용 되는 DES, 3DES, RC5 가 있으며, 키(Key) 방식과 함께 사용된다.

마이크로소프트의 MPPE 암호화는 40비트와 128비트 세션 키를 지원하며 256 패킷마다 자동으로 세션 키
변화가 진행되며, 이때 MS-CHAP과 같은 인증 알고리즘이 사용된다. 보다 강력한 암호화가 필요할 때 사용되는
IPSec은 DES(56bit), 3DES(168bit), RC5 등의 암호화 알고리즘을 사용하며, 이때 HMAC-MD5, HMAC-SHA1과 같은 인증 알고리즘이 사용된다.

암호화 알고리즘에는 비밀키 알고리즘과 공개키 알고리즘이 있다. 비밀키 알고리즘은 암호화와 복호화를 위해
같은 키를 사용하는 기술, 즉 타인이 알지 못하는 하나의 키를 사용한 암호화를 말한다. 우리가 사용하는 DES,
3DES, RC5는 비밀키 알고리즘에 해당한다. 공개키 알고리즘은 암호화키(공개키)와 복호화키(개인키)가 다른
2중 키를 사용하는 기술이다. 이때 각 호스트는 공개키를 사용해 각각의 키를 암호화하면(이때 다른 사람에게도
노출되어 있음) 이에 적합한 개인 키를 가진 사람만이 이를 복호화해 사용한다.

* CA (Certificate Authority)
CA는 사용자에게 인증서를 발급하는 기관을 통칭한다. 그리고 CA 자신이 발행한 인증서와 사용자 정보를
관리한다. 이 CA가 발행하는 인증서는 여러 종류가 있을 수 있다. 일단 서로 VPN통신을 하기 위해서는 자신의
인증서, 상대의 인증서, 그 인증서를 신뢰 할만 하다고 인증하는 CA의 인증서가 필요하다.

여기서 CA는 VPN통신을 하는 모든 종단들이 주체가 되어서 각 종단들에게 인증서를 발급해 인증을 할 수도
있으며 그 중 하나의 종단이 CA가 되어서 인증서를 발급하는 경우도 있을 수 있고, 외부의 다른 제3자가 CA가
될 수도 있다.

2008/09/08 16:02 2008/09/08 16:02

Posted on 2008/09/08 16:00
Filed Under [1] IT 관련/5. Security

SSL VPN이란
SSL(Secure Sockets layer)은 웹 서버와 웹 브라우저간의 안전한 통신을 위해 넷스케이프에서 제창한 프로토콜로 인터넷 익스플로러, 넷스케이프 네비게이터와 같은 웹 브라우저에 기본적으로 탑재돼 있는 보안 표준 프로토콜이다. SSL은 오늘날 온라인 상거래, 웹서비스, 그리고 안전한 애플리케이션 계층 액세스를 포함하는 많은 다른 네트워크 기능을 위해 보안을 제공하는 인터넷 보안 프로토콜의 선두주자다.
현재 SSL의 2.0, 3.0, 3.1(TLS 1.0)이 사용되고 있으며, 아래와 같은 중요한 보안 기능들을 사용해 인터넷 등 공개된 네트워크상에서 민감한 데이터의 전송을 가능하게 한다.

•상호인증 : 클라이어트와 서버간의 상호 인증(RSA, DSS, X.509 )
•기밀성 : 대칭키 암호화 알고리즘을 통한 데이터의 암호화(DES, 3DES, RC4등)
•데이터 무결성 : MAC기법을 이용해 데이터 변조 여부 확인(md5,SHA-1)

SSL VPN의 기술적 특징
지난 몇 년 동안의 기술적인 동향은 안전한 네트워크 액세스를 위해서 저가의 광대역 서비스를 통한 인터넷과 암호화 기술을 사용하는 것이었다. 특히 기업 및 기관들이 업무적인 생산성을 개선하고 비용 절감 차원에서 전용선과 모뎀 설비를 광대역으로 대체하기 시작했다.
인터넷 연결성의 편리성으로 인해 언제 어디서든 네트워크 접속이 용이해지면서 통신의 비밀을 보장하기 위해 암호화를 사용하는 동안, 기업은 재택 근무자, 원격 근무자 또는 이동 근무자들을 위해 내부 컴퓨팅 자원을 효율적으로 액세스하게 해줘 전반적인 네트워크 및 컴퓨팅 환경에 대한 비용의 절감을 실현할 수 있었다.
안전한 네트워크(리모트) 액세스를 요구하는 대표적인 유형을 든다면, 첫째로, 인트라넷 액세스(재택 근무, 출장, 호텔 혹은 고객 사이트에 있는 이동 직원) 둘째로, 엑스트라넷 액세스(고객 ,협력사, 계약직 및 임시직원과 같은 외부인 또는 비직원)을 들 수 있다. 아래의 몇 가지의 기술들은 인터넷을 통해 리모트 액세스를 안전하게 해주는 보편화된 기술 중 가장 광범위하게 적용되는 기술이다.

• 네트워크 레이어 기술 : 일반적인 IPSec VPN에서 채택한 기술IPSec/IKE(Internet Key Exchange) 사용
• 트랜스포트 레이어 기술 : SSL VPN에서 채택한 기술, SSL을 사용하는 SOCKS
• 애플리케이션 레이어 기술 : SSL VPN에서 채택한 기술, SSL상에서 작동되는 HTTP(대부분의 웹 브라우저에 포함된 기술)

SSL VPN은 사용자와 SSL VPN 장비 사이의 안전한 데이터의 교환을 위해 애플리케이션 계층에서 SSL을 이용한 암호화 서비스를 제공함으로써 기존 VPN의 문제점인 네트워크와 방화벽을 통과할 경우 발생하는 포트 블럭(Port Block)과 같은 문제점을 해결한다. 또한 SSL VPN은 클라이언트리스 VPN이라고 부르기도 하는데 그 이유는 오늘날 대부분의 표준화된 웹 브라우저는 HTTP와 HTTPS(SSL)를 기본적으로 모두 지원하므로 IPSec 리모트 VPN과는 대조적으로 사용자 측면에 VPN 클라이언트의 설치, 구현, 그리고 지원과 함께 결부된 모든 문제들을 해결할 수 있다.
SSL은 웹 브라우저와 웹 서버간의 안전한 통신을 위해 넷스케이프에서 개발됐고, 애플리케이션에서 암호화가 이뤄지기 때문에 하위 레이어의 다양한 프로토콜 및 응용 프로그램의 지원에 제한을 받게 된다. 그래서 SSL VPN업체들은 초창기 웹 및 웹 기반의 애플리케이션만을 지원했으며, 고객 및 시장의 확장성을 위해 대부분의 SSL VPN 업체들은 기업의 다양한 애플리케이션을 지원하기 위한 기술 투자에 많은 시간을 투자해야 했다. SSL VPN을 이용한 서비스의 지원 발전 단계는 다음과 같이 3단계로 발전해왔다.

1) 초기 단계 : 웹, 웹 기반의 애플리케이션, 파일 공유 지원
2) 확장 단계 : 클라이언트/ 서버 애플리케이션 지원
3) 성숙 단계 : UDP 트래픽, 네트워크 레이어 트래픽 지원

현재 SSL VPN은 웹, 웹 애플리케이션, 메세징 클라이언트, 이메일, 파일 공유, 클라이언트/서버 애플리케이션 등 기업의 핵심적인 모든 업무 형태를 모두 지원함으로 업무 적용의 한계가 완전히 극복된 상태며, 자체적으로 DMZ 서비스를 지원해 인트라넷의 사설 IP 네트워크 구성 시에도 정상적인 서비스 구현이 가능하다. 또한, 다양한 암호화 기법(DES, 3DES, RC4)과 데이터 무결성 기법(MD5, SHA-1)을 모두 지원한다.
 

2008/09/08 16:00 2008/09/08 16:00
TAG : , , ,

Posted on 2008/09/08 12:51
Filed Under [1] IT 관련/5. Security

예전에 본 쥔장은 보안업체에서 일을 한 적이 있습니다.
1999년부터 2002년까지 3년간 보안 업체 초창기 시절에 보안관리자로 일을 하면서
많은 리눅스 보안과 윈도우의 헛점등을 리포팅 한적이 있습니다.

아래는 기본적으로 리눅스 서버를 운영하실 때에 아셔야 할 것들을 나열 해 놓았습니다.
이것으로 100% 보안은 되지 않으며, 그 어떠한 보안도 99.99%까지 막을 수 있으며 0.01%는
막지 못한 다는 것을 명심하시기 바랍니다.

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 적용)
/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 경로


2.anonymous ftp 막기
#vi proftpd.conf (/etc 에 위치)
중략
에서
UserAliasanonymous ftp //이부분을 주석처리 해준다.
wq (저장후 종료)


특정 user가 ftp 접속후 본인의 Directory 외에 다른 유저의
Directory를 접근 못하게 할 경우
(접근을 해서 read 권한만있어도 그 유저의 설정을 모두볼수있다.)

*proftp를 사용하는 경우

shell-prompt> vi /etc/proftpd.conf
이 화일에이 한줄을 추가한다.
DefaultRoot ~ member
[root@ godori]# /etc/rc.d/init.d/proftpdrestart

(소스 설치시에는 보통)
[root@ godori]# /usr/local/proftpd/sbin/proftpd restart
restart보다 ftp데몬을 죽이고 다시 시작하는게 좋다.


이러면 본인의 Directory외에 다른 유저의 계정은 접근 불가.


3.telnet 사용막기<--가장 추천하는 방법입니다.
현재 텔넷이 막힌 경우에는 해킹의 위험이 극히 줄어듭니다.
텔넷을 사용하시고자 하시는 분은 데이터 센터의 보안 서비스나
다른 방법을 사용하시기 바랍니다.
그러나, telnet을 막는 다는 것은 특히 유저가 많은 경우는 불가능 일인것
같다.(특히 웹호스팅업체) 이런 경우는 ssh(Secure Shell)을
설치해서 사용하는 것을 권장합니다.

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:끔
apmd0:끔1:끔2:끔3:끔4:끔5:끔6:끔
arpwatch0:끔1:끔2:끔3:끔4:끔5:끔6:끔
atd 0:끔1:끔2:끔3:끔4:끔5:끔6:끔
keytable0:끔1:끔2:켬3:켬4:켬5:켬6:끔
gpm 0:끔1:끔2:끔3:끔4:끔5:끔6:끔
inet0:끔1:끔2:끔3:켬4:켬5:켬6:끔
netfs 0:끔1:끔2:끔3:끔4:끔5:끔6:끔
network 0:끔1:끔2:켬3:켬4:켬5:켬6:끔
random0:끔1:켬2:켬3:켬4:켬5:켬6:끔
ipchains0:끔1:끔2:끔3:끔4:끔5:끔6:끔
pcmcia0:끔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:끔
identd0:끔1:끔2:끔3:켬4:켬5:켬6:끔
portmap 0:끔1:끔2:끔3:끔4:끔5:끔6:끔
rstatd0:끔1:끔2:끔3:끔4:끔5:끔6:끔
rusersd 0:끔1:끔2:끔3:끔4:끔5:끔6:끔
rwalld0:끔1:끔2:끔3:끔4:끔5:끔6:끔
rwhod 0:끔1:끔2:끔3:끔4:끔5:끔6:끔
sendmail0:끔1:끔2:켬3:켬4:켬5:켬6:끔
syslog0:끔1:끔2:켬3:켬4:켬5:켬6:끔
snmpd 0:끔1:끔2:끔3:끔4:끔5:끔6:끔
crond 0:끔1:끔2:켬3:켬4:켬5:켬6:끔
ypbind0:끔1:끔2:끔3:끔4:끔5:끔6:끔
yppasswdd 0:끔1:끔2:끔3:끔4:끔5:끔6:끔
ypserv0:끔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 걸린 파일을 찾는 명령어

# find / -nouser(화일에 소유자가 없는 경우의 화일)
일반사용자의 사용 디렉토리에서 ...
화일에 소유자가 없다는것은 의심을 해볼필요가 있다.

# find /home/khsheen -user root
(일반사용자인데 root로 되어 있는 화일도 의심해볼 필요가 있다)


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.해킹이 확실한경우 대처법

a.우선 가장 좋은 방법은 port(랜선)를 제거하는 것이 가장 좋다.
b.그 다음에 설치 되어 있는 해킹툴을 제거한다.
-프로세스 확인
[ 이상한(필요없는) 프로세스 확인해서 설치된 위치 확인후 지우기]

shell-prompt> kill -9 이상한 프로세스 id

그러나 100%제거 한다는 것은 힘들것 같다.
서버를 제 세팅하는 것을 권장한다.

c.중요 data 백업

해킹이 확실한상태에서 그냥 컴퓨터를 종료시키면, 재부팅이
안될수가 있다.이것을 막기 위해,

#/etc/rc.d/rc.SYSinit 권한을 755를 준다.최소한 부팅은 된다.


9.명령어를 사용할수 있는 그룹을 설정
(일반적으로 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-x1 root root54544 Feb32000 /usr/bin/find*
shell-prompt>chgrp wheel find
shell-prompt>chmod 750 find
shell-prompt>ls -la /usr/bin/find
-rwxr-x---1 root wheel 54544 Feb32000 find*

#

이런식으로 설정하면 find 명령어는 root와 khsheen만 사용할수 있다.
이 명령어를 su 명령어에도 적용하는 것을 권장함, root로 전환할
유저 (su 명령어 사용자)를 제한 할수 있다.


10.기타 보안에 관련된 내용

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
| ||
| |-> 몇번의 패치가 있었는지 나타낸다.
| -> 안정화 버전인지 개발화 버전이지를 나타낸다.
|(홀수:개발, 짝수:안정)
-> 획기적인 변화가 있을때 바뀐다
2008/09/08 12:51 2008/09/08 12:51

About

by Jaehun

Counter

· Total
: 51563
· Today
: 85
· Yesterday
: 106