320x100

# 시험 출제 
1. 계정 인증
    - 명령어 (뭘 하려면 뭘 확인해야 한다 객관식)
2. file 및 디렉터리 관리에서 특정 키워드 놓고 뭔지
    권한 확인 (객관식 낮은 난이도)
3. 서비스 관리
   - 아파치(난이도 중)
   - 오늘 강의를 제대로 들었다면 충분히 풀 것
   - 객관식
4. 서비스 관리 (주관식)
   - sendmail
5. 환경 분석(주관식)
   - 난이도 상

 


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

 

 

 

 


- 컨설팅을 하던 진단을 하던 다 적용되는 내용이니 복습으로 숙지 요망
- 취약도 레벨 상은 1달 이내(시스템 진단, 인프라)
  - os 구성은 1달 이내 못함
    - 데이터베이스 암호화 
    - 복호화 하고 작업해야 함 
    - 보통 작업기간 1달 잡음
  
- 웹 api는 중요 취약점 _ 일주일 이내(특별한 케이스에선 즉시)
    - 금액, 개인정보
    - 웹 migration
    - back,front source code, 버전 정보, 

# 정리(추가 기재 필요)
- VLAN

## U-35
ls -al /etc/httpd/conf.d
가이드에는 include에 대한 부분은 언급이 안되어있습니다

![img.png](img.png)

## 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
        - 로그인 비허용
## U-37
- 웹 서비스 상위 디렉토리 접근 금지
- 이상적인 웹 서버는 세션값을 활용한 상,하위 이동
- 세션값 없이 이동을 하면 매번 id/pwd 확인 // 이를 강제하는 항목
### AllowOverride None


## U-38 
- Apache_home을 설치디렉토리
- 소스 디렉토리도 확인해야 합니다
- find /etc/httpd/ -name "htdocs" -exec ls -al {} \;
- find /etc/httpd/ -name "manual" -exec ls -al {} \;
- find /etc/httpd/ -name "egi-bin" -exec ls -al {} \;
- find /var/www/ -name "htdocs" -exec ls -al {} \;
- find /var/www/ -name "manual" -exec ls -al {} \;
- find /var/www/ -name  "egi-bin" -exec ls -al {} \;

## U-39
-  cat /etc/httpd/conf/httpd.conf | grep -C7 FollowSymLinks | grep -v "#"
- 3가지 링크의 followsymlinks가 활성화 되어있음 (진단서버에서는)

## U-40
- 파일 업로드 및 다운로드의 사이즈 제한 여부 점검
- OWASP Top 10
  - 다운로드의 가장 큰 취약점은 경로에 대한 노출
  - 인프라에서는 사이즈 제한으로 
- cat /etc/httpd/conf/httpd.conf | grep "LimitRequestBody"

### 
업로드 다운로드 가능 부분은 해당 경로뿐이고 
확장자 검증을 통해 업로드 다운로드 부분을 검증하고 있다
    라고 말하면 양호
### 
인프라베이스는
설정여부뿐만아니라 동적어플리케이션도 점검해야 하는 항목임을 숙지

## U-41
- 웹 서버의 루트 디렉터리와 OS의 루트 디렉터리를 다르게 지정하였는지를 점검
- cat /etc/httpd/conf/httpd.conf | grep DocumentRoot | grep -v "#"
- Default 디렉토리를 사용하는 경우 상위 디렉토리의 이동이 가능한 경우 Root까지 이동이 가능할 수 있기에 변경 권장

## U-60
- 원격 접속 시 SSH 프로토콜을 사용하는지 점검
- telnet과 ssh의 차이점
  - 인증 여부
### 실습


## U-63
- FTP USR의 권한을 확인하는 항목

## U-64
- ftpusers 파일 root 계정 포함 여부
- 다른 계정이 추가되어 있다면 인터뷰 받아야 함
  - 인터뷰의 가장 큰 목적 : 증적
### ISMS-P
- 정보자산에 대한 취약점 진단 : 취약점 진단이 ISMS-P에서 하는 유일한 일
  - 나머지는 컨설턴트가 수행
- 컨설턴트는
  - 위험도 평가 보고서
  - 조치 계획서 수립

## U-65
-  at : 단일 예약 작업

## U-66
- SNMP 서비스 활성화 여부 점검
- 장비 진단에서 SNMP 버전, Community string
### 네트크 가상머신 툴
- CISCO packet tracer
### 실습
- Community String값은 default 값을 모두가 알고 있기에 반드시 수정 필요
  - 권한 2가지 : Read, Write
  - SNMP는 가지고 있는 정보만 던져주면 되니까 RO만 있어도 됨(ReadOnly)

SNMP 000000000000000버전 1,2는 취약점 존재 -> 버전 3 채택 필수

### VLAN
- VLAN 왜 사용할까
- L2 L3는 스위치
- L4는 라우터 왜 사용할까
  - 경로 전달, 라우터를 백본이라고 함
  - 1U (네트워크 렉, 나사가 들어가는 3개의 열을 1U라고 함)
  - 8U는 나사 라인이 24개
- VLAN이란 ? 
  - 정리 요망 (~에서 ~을 나누어 놓은 것(기억안남))

## U-67
- SNMP Community String 복잡성설정 여부 점검

## 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 

#### 
- 최신 보안 패치는 버전 커버리지와 보안 취약점을 계속해서 확인해야 합니다
- 보안뉴스 꼭 챙겨보길
  - cv 주요 취약점은 계속해서 발생합니다
  - Rocky OS << 새로 나오면 새로 가이드 작성
## U-69
- NFS의 설정파일은 exports
- NFS 접근제어 설정파일에 대한 비인가자들의 수정제한 여부 점검
## U-70
- smtp 서비스 사용시 crfy, expn 명령어 사용 금지 설정 여부 점검
- /etc/mail/sendmail.cf
  - O PrivacyOptions - (noexpn,novrfy 또는 goaway)

## U-71
- 웹 페이지에서 오류 발생 시 출력되는 메시지 내용 점검
-  cat /etc/httpd/conf/httpd.conf | grep "ServerTokens\|ServerSignature"
- ServerTokens
- SiverSignature
- 키워드 prod로 하면 Apache로 나옴
  - Apache도 보여지지 않고 싶으면 ? 
    - mod security 모듈 설치 후
    - 설정 파일에 SecRuleEngin 등 설정 파일을 변경하면
    - Custumize된 값으로 표시
## 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로 기입해야 함

## U-43
- 로그의 정기적 검토 및 보고 여부 점검
- rsyslog의 로그는 크게 2가지 
  - systemlog
  - sulog
- ls -al /var/log
- log를 서버에 함께 저장하면
  - tracing이 안되며
  - 무결성이 훼손된다
- 가이드에 로그 분리와 관련된 내용은 명시되어있지 않음
### 알고 계세요 
- 1. 로그 저장에 대한 최소 보관 기준(최소 6개월)
- 2. 로그를 시스템 및 서비스 내 보관하지 않고 별도 공간보관하고 있는지 유무 확인
- 3. 로그에 대한 정기적인(Monthly) 검토 및 감사를 통해 안전하게 관리하고 있는지 유뮤확인
- 4. 별도 공간에 보관중인 로그 및 시스템/서비스 내 보관 중인 로그를 타사용자가 수정할 수 있는 권한이 있는지 유무
### edr 솔루션

## U-72  
- 내부 정책에 따른 시스템 로깅 설정 적용 여부 점검
- 정책이라 함은 ? 
  - Emergency [emerg]
  - alert [alert]
  - 등
    | 우선순위 | 심각도 | 설명                                                                  |
    |---|---|---|
    | 4 | Emergency | 매우 위험한 상황으로 즉각적인 조치가 필요함.                                 |
    | 3 | Alert     | 즉각적인 조치를 취해야 할 상황으로 시스템에 심각한 영향을 미칠 수 있음.            |
    | 2 | Critical  | 하드웨어 또는 소프트웨어에 심각한 오류가 발생하여 시스템이 불안정한 상태임.        |
    | 1 | Error     | 프로그램 실행 중 예상치 못한 오류가 발생하여 기능이 제대로 작동하지 않음.    |
    | 0 | Warning   | 시스템에 문제가 발생할 가능성이 있으므로 주의가 필요함.                    |
    | -1 | Notice    | 시스템에 문제가 발생하지는 않았지만 사용자에게 알려야 할 사항임.              |
    | -2 | Information | 프로그램에 대한 일반적인 정보를 제공하는 메시지임.                     |
    | -3 | Debug     | 프로그램 디버깅 과정에서 발생하는 오류 메시지로 일반 사용자에게는 불필요함. |
### info
- alert까지 포함 가능
- alert이 없는데 취약으로 잡으면 보안담당자들한테 욕먹음
- cat /etc/rsyslog.conf | grep -C3 "cron" | grep -v "#"

- ls -al /var/log/wtmp* /var/log/utmp* /var/log/btmp* /var/log/lastlog* /var/log/secure* /var/log/messages*
  - *를 찍어야 날짜까지 포함된 파일명도 볼 수 있습니다
  - 로그는 타사용자에게 권한이 없어야 합니다
  - cat /etc/httpd/conf/httpd.conf | grep "ErrorLog\|CustomLog" | grep -v "#"
- 주요정보통신기반시설점검 가이드는 굉장히 비실용적인 가이드(by 강사님)

multiviews 이중확장자 차단 < 업로드 가능

## SSL Poodle 취약점
- SSL 3.0, 2.0은 Poodle 취약점 발생 가능
- TLS 1.0/ 1.1/ 1.2/ 1.3
- 크롬, 엣지에서 어떠한 버전부터 지원할까(TLS)
  - 1.2
  - 이전 버전은 암호화키 변조, 해독이 가능하기 대문
- 발급받은 도메인에 SSL 적용해서 웹사이트에 올리면?
- 도메인, 인증서 서비스 모두 발급할 때 받음
  - 
- 취약 패스워드
  - 
## ssh 접근 외의 2가지 접근 방법
- vnc
- RDP
### 서버는 터미널로만 접근해야 한다
 - 다른게 설치되어있으면 해당 내용은 취약으로 가져가야 함

## 클라우드 취약점 보안 가이드
- KISA
- 내꺼 배낀거다(by 강사님)



# mysql 
- mysql -u root -p
- 데이터베이스는 인터뷰 항목이 굉장히 많습니다
## D-01
- DBMS 기본 계정의 디폴트 패스워드 및 권한 정책을 변경하여 사용하는지 점검

## D-03
- 기관 정책에 맞게 패스워드 사용기간 및 복잡도 설정이 적용되어있는지 점검
- 기관정책 : 고객사의 사내정책
  - Password Lifetime : 사용기관과 복잡도 설정에 대한 오라클의 정책
    - -PASSWORD_LIFE_TIME
  - mssql은 윈도우에서 사용
    - 윈도우는 사용자 계정이 두가지로 나뉨
      - local
      - ad(관리자)
    - 로컬이던 관리자던 윈도우는 특정 방식의 인증을 사용합니다
    - ntml
    - 
- 화살표가 아래로 향한 계정
  - 계정을 사용하지 않는 다는 의미
  - 로그인 안됩니다
  ![img_1.png](img_1.png)

# D-04
- 관리자 권한이 필요한 계정에만 권한이 부여된 경우
- mysql에서 뭐가 관리자 그룹인가?
  - select hset,user,select_prev from mysql.user
  - mysql은 그룹과 계정을 개별로 사용하지 않음
    - 내용을 구분해서 확인하기 어려움
## 원격에서 DB서버로의 접속을 제한하고 있는지

# D-12
- 패스워드 변경 시 이전 패스워드 재사용할 수 없도록 제약설정이 되어있는지

# D-13
- DB접근 시 사용자 별로 서로 다른 계정을 사용하여 접근하는지
- select host,user,db,select_priv from mysql.db

# D-05
- 지정된 IP 주소만 DB서버에 접근 가능하도록 설정되어 있는지 점검
- DB 접근 제어
- 192.168.10.%
  - %(any) 들어가면 취약
  - 추가 인터뷰는 받아야 함 
    - DB접근제어 솔루션을 사용하는지 확인
# D-06
- DBA 이외의 인가되지 않은 사용자 시스템 테이블에 접근할 수 없도록 설정

# D-07
- Oracle
- Listener 패스워드 사용
## D-08 
- 사용하지 않는 불필요한 ODBC 데이터
- 비밀번호 시도횟수 대부분 설정 안하지만 '취약'

# D-16
- 사용자 계정의 umask 설정이 022 이상으로 설정되어 있는지 점검

# D-17
- 데이터베이스의 주요 파일들에 대해 관리자를 제외한 일반 사용자의 
- my.cnf // mysql의 환경변수파일
- 권한 확인
- ls -al /etc/my.cnf

# D-18
- 리스너 관련 설정  파일의 권한을 관리자만 가능하게 하고 리스너 파라미터 변경 방지에 대한 옵션 설정 여부 점검
- 실제 소유자와 그룹소유자만 확인할 수 있게 설정

# D-08
- 데이터베이스 개발자한테 인터뷰

# D-09
- rule이 false로 설정되어 있는지 확인하면 되는 간단 학목

# D-19
- password verify function

# D-20


# 사설
- 주요정보통신기반시설만 갖고 Database를 진단하기는 불가능
- 실무에 대한 이해 필수
# D-21
- 여기서 말하는 Grant Option은 
  - 권한을 이양할 수 있다 // root 계정한테만 허용해야 함

# D-22
- sk쉴더스에서는 안봅니다 (이유는 말 안해주심, 왜 하는지 모르겠는 항목이라고 하심)
- 리소스에 대한 리미트 설정이 트루인지 false인지만 확인
# D-10
- 최신 패치 및 벤더 권고사항 적용 여부 점검
- mysql은 repository를 통해 설치했습니다 (실습 환경에서)
- EOS의 경우 OS 버전을 신규로 구축하라는 권고
# D-11 
- 감사기록 정책 설정이 기관 정책에 적합하게 설정되어 있는지 점검

# D-23
- 보안에 취약하지 않은 버전의 데이터베이스를 사용
- 항목의 의의는 최신버전인데 기재되어있는 기준 버전은 굉장히 오래된 계정
- 따라서 진단 시점을 기준으로 최신 버전을 기준으로 하기를 권장

# D-24
- Audit Table 접근 권한이 관리자 계정으로 제한되고 있는지 점검

# 사담
## 개발 시스템과 운영 시스템의 분리

## 백업 왜 
- 연속적으로 서비스 제공
## ec2 백업 방법
- 스냅샷


# 윈도우
## Ftp
- 윈도우에서 ftp는 서비스일까 기능일까
- 기능임
### 윈도우에 FTP를 올리는 2가지 방법
#### IIS 기반(가장 많이 사용)
- IIS에 올라간 기능
- IIS란 : Internet Information services
  -웹 사이트를 운영하기 위한 필수적인 도구
####

## 텔넷 : 기능
- windows 기능 켜기/끄기 에서 
  - 텔넷 클라이언트로 켜기 가능

## OWA 
- 사서함 메일을 웹 페이지 형태로 보여줌
- IIS가 보여줌

## IIS 
- IIS 기반의 기능을 다 확인해야 함

## 업로드 찾는 방법
- 탐색 _ 해당 웹 소스의 상위 디렉토리 확인 가능
### 업로드 될 수 있는 파일
- *.png OR *.pdf
- 스크립트가 보관된 디렉토리를 찾기 위해서는 확장자로 검색해라


300x250

+ Recent posts