ISMS 서버 체크 리스트 - ISMS seobeo chekeu liseuteu

📝 ISMS 인증

ISMS 인증 심사를 몇 일 앞두고 처음으로 서버 점검 레포트를 쓰게 되어
관련 내용 기록을 위해 포스팅 함

💡 인증제도

ISMS는 Information Security Management System 의 약자로
기업이 주요 정보자산을 보호하기 위해 수립, 관리, 운영하는 정보 보호 관리체계가
인증기준에 적합한지를 심사하여 인증을 부여하는 제도

💡 인증대상

정보보호 관리체계를 구축, 운영하는 기업(기관)은 의무 대상이 아니더라도
인증 취득을 희망하는 경우 자발적 신청하여 인증취득 가능하다

ISMS인증 의무대상자(정보통신망법 제47조 2항)
인증 의무대상자 확인 및 책임은 기업(기관)에 있으므로 스스로 의무대상 여부를 확인하여 인증 취득 필요
의무대상자 미인증시 3,000만원 이하의 과태료 (정보통신망법 제 76조 근거)

대상자 기준세부분류비고
(ISP)전기통신사업법의 전기통신 사업자로 전국적으로 정보통신망 서비스를 제공하는 사업자 인터넷접속서비스, 인터넷전화서비스 등 서울 및 모든 광역시에서 정보통신망 서비스제공
(SKT,SK브로드 밴드,KT,LGU+등)
(IDC)타인의 정보통신서비스 제공을 위하여 집적된 정보통신시설을 운영·관리하는 사업자 서버호스팅, 코로케이션 서비스 등 정보통신서비스부문 전년도 매출액 100억 이하인
영세 VIDC 제외
(매출액및이용자기준)연간 매출액 또는 세입 등이1,500억원 이상이거나 정보통신서비스매출액 100억 또는 이용자수 100만명 이상인 사업자 상급종합병원 대학교, 인터넷쇼핑몰, 포털, 게임, 예약, Cable-SO 등 직전연도12월31일기준으로 재학생 수가 1만명 이상인
「고등교 육법」제2조에 따른 학교 또는 정보통신 서비스 부문 전년도 매출액 100억이상 또는 전년도말 기준으로 직전 3개월간 일일평균 이용자수 100만명 이상

💡 정보보호관리체계 인증 구성 요소

ISMS 서버 체크 리스트 - ISMS seobeo chekeu liseuteu

더 자세한 정보: KISA

📝 리눅스 서버 점검

리눅스 중 centos를 사용하고 있으며 아직 관제시스템이 없어 명령어 하나하나 찾아보며 확인했다

📝 체크리스트

  1. 로그기록 상태
  2. 시스템 로그
  3. 보안 로그
  4. CPU 사용량
  5. RAM 사용량
  6. HDD 사용량
  7. 시스템 부하도
  8. 프로세스 정상 작동
  9. 백업 로그 작동
  10. 어플리케이션 로그(WEB/WAS, DB 등)

✍ 사용 리눅스 명령어

  • 포트 오픈 확인
telnet "서버아이피" "포트번호"
  • ssh 접속
ssh "유저명"@"서버아이피"
  • ssh 접속 오류 메세지가 아래와 같다면
    ISMS 서버 체크 리스트 - ISMS seobeo chekeu liseuteu
ssh-keygen -R "서버아이피"
  • 체크리스트별 명령어
항목점검방식
로그기록 상태 시스템: vi /var/log/messages
보안: vi /var/log/secure
스케줄러: vi /var/log/cron
부팅: vi /var/log/boot.log
접속자상태: vi /var/log/utmp
로그인: vi /var/log/wtmp
로그인실패: vi /var/log/btmp
FTP: vi /var/log/xferlog
시스템 로그 dmesg
보안 로그 현재접속자확인: who
로그인-아웃: last
로그인실패: lastb
FTP: vi /var/log/xferlog
CPU 사용량 top
RAM 사용량 free -g
HDD 사용량 DISK_USED=df -P \| grep -v ^Filesystem \| awk '{sum+=$3} END {print sum/1024/1024}'
DISK_TOTAL=df -P \| grep -v ^Filesystem \| awk '{sum+=$2} END {print sum/1024/1024}'
DISK_PER=echo "$DISK_USED/$DISK_TOTAL*100" \| bc -l
echo "$DISK_PER %"
시스템 부하도 uptime
cat /proc/cpuinfo | grep processor
프로세스 작동 좀비: ps -ef | grep defunct
죽음: ps -ef | grep dead
어플리케이션 로그 WEB/WAS 경우 실시간 로그 내 오류 건(exception) 확인
사용하는 데이터베이스인 오라클 경우 alert log 및 tablespace 확인
백업 로그 vi /home/oracle/orabak/

✍ 오라클 점검 내용

  • 오라클 용량 확인
select '토탈 ' || ROUND(sum(bytes)/1024/1024/1024) || ' GB' from dba_data_files
union
select '사용 ' || ROUND(sum(bytes)/1024/1024/1024) || ' GB' from dba_segments
union
select '여유 ' || ROUND(sum(bytes)/1024/1024/1024) || ' GB' from dba_free_space;
  • 테이블스페이스 용량 확인
select  substr(a.tablespace_name,1,30) tablespace,
        round(sum(a.total1)/1024/1024,1) "TotalMB",
        round(sum(a.total1)/1024/1024,1)-round(sum(a.sum1)/1024/1024,1) "UsedMB",
        round(sum(a.sum1)/1024/1024,1) "FreeMB",
        round((round(sum(a.total1)/1024/1024,1)-round(sum(a.sum1)/1024/1024,1))
        /round(sum(a.total1)/1024/1024,1)*100,2) "Used%"
from
(select  tablespace_name,0 total1,sum(bytes) sum1,max(bytes) MAXB,count(bytes) cnt
  from    dba_free_space
  group by tablespace_name
  union
  select  tablespace_name,sum(bytes) total1,0,0,0
  from    dba_data_files
  group by tablespace_name) a
group by a.tablespace_name
order by tablespace;
  • Alert Log
    ex) 프로시저 실행 스케줄러 오류 건
항목점검내용
로그 Errors in file app/oracle/diag/rdbms/test/test/trace/test_j000_223947.trc:
ORA-12012: error on auto execute of job "test"."JOB_SP_CUST_INAC"
ORA-06550: line 27, column 23:
PLS-00905: object test.SP_CUST_INAC is invalid
ORA-06550: line 27, column 23:
PL/SQL: Statement ignored
원인 테스트 스케줄러 오류
결과 스케줄러 제거

✍ 테스트 서버 FTP 관제서비스 설치

  • 테스트 서버 로그 확인 중 FTP 접속 로그가 없어 vsftpd 설치
yum list installed | grep ftp
yum installed vsftpd -y
  • 설정파일 내 "listen=YES", "listen_ipv6=NO" 로 수정
vi /etc/vsftpd/vsftpd.conf
  • 방화벽 오픈 및 서비스 설정
firewall-cmd --permanent --zone=public --add-port=21/tcp
firewall-cmd --permanent --zone=public --add-port=22/tcp
systemctl enable vsftpd
systemctl start vsftpd
systemctl status vsftpd