SMALL
1. 시큐어 코딩 가이드 (입보시 엡코캡아)
- 입력데이터 검증 및 표현
- 프로그램 입력값에 대한 검증 누락/부적절한 검증, 잘못된 형식 지정
- 보안기능
- 보안 기능(인증, 접근 제어, 기밀성, 암호화 권한 관리 등)의 부적절한 구현
- 취약점
- 적절한 인증 없이 중요 기능 허용
- 부적절한 인가
- 취약한 암호화 알고리즘 사용
- 중요 정보 평문 저장 및 전송
- 하드 코드 된 비밀번호
- 시간 및 상태
- 거의 동시에 수행 지원하는 병렬 시스템 또는 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리
- 에러 처리
- 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요정보 포함
- 취약점
- 취약한 패스워드 요구 조건
- 오류 메시지 통한 정보 노출
- 오류 상황 대응 부재
- 적절하지 않은 예외처리
- 코드 오류
- 개발자가 범할 수 있는 코딩 오류로 인해 유발
- 취약점
- 널 포인터 역참조
- 정수를 문자로 변환
- 부적절한 자원 해제
- 초기화되지 않은 변수 사용
- 캡슐화
- 기증성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 누출
- 취약점
- 잘못된 세션에 의한 데이터 정보 노출
- 제거되지 않고 남은 디버그 코드
- 민감한 데이터를 가진 내부 클래스 사용
- 시스템 데이터 정보 노출
- API 오용
- 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API 사용
- 취약점
- DNS Lookup에 의존한 보안 결정
- 위험하다고 알려진 함수 사용 ex)strcpy(위험한 함수) -> strncpy(안전한 함수)
- 널 매개변수 미검사
2. 입력데이터 검증 및 표현 취약점
- XSS (Cross Site Script)
- 검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격
- Stored XSS, Reflected XSS, DOM XSS
- 사이트 간 요청 위조 (CSRF; Cross Site Request Forgery)
- 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
- SQL 삽입(Injection)
- 응용 프로그램의 보안 취약점을 이용해서 악의적은 sql 구문을 삽입, 실행시켜서 데이터베이스의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격 기법
- Form SQL Injection, Union SQL Injection, Stored SQL Injection, Mass SQL Injection, Error-Based SQL Injection, Blind SQL Injection
3. 유닉스/리눅스 주요 로그 파일
- wtmp(x)
- 사용자 로그인/로그아웃 정보
- 시스템 shutdown/reboot 정보
- last 명령어
- utmp(x)
- 현재 시스템에 로그인한 사용자 정보
- who, w, users, finger 명령어
- btmp(x)
- 로그인에 실패한 정보
- lastb 명령어
- lastlog
- 사용자별 최근 로그인 시간 및 접근한 소스 호스트에 대한 정보
- lastlog 명령어
- sulog
- su(Switch user) 명령어 실행 성공/실패 결과에 대한 정보
- 텍스트파일이라서 별도 명령어 없음
- acct/pacct
- 사용자별로 실행되는 모든 멸령어에 대한 로그
- lastcomm, acctcom 명령어
- xferlog
- FTP서비스 데이터 전송 로그 기록
- 텍스트 파일이라서 별도 명령어 없음
- messages
- 부트 메시지 등 시스템의 가장 기본적인 시스템 로그 파이롤, 운영에 대한 전반적인 메시지를 저장
- 텍스트 파일이라서 별도 명령어 없음
- secure
- 보안과 관련된 주요 로그를 기록, 사용자 인증과 관련된 로그 기록
- 텍스트 파일이라서 별도 명령어 없음
4. 네트워크 보안 솔루션
- 방화벽(Firewall)
- 기업 내부, 외부 간 트래픽을 모니터링 하여 시스템의 접근을 허용하거나 차단하는 시스템
- 웹 방화벽 (WAF; Web Application Firewall)
- 일반적인 네트워크 방화벽과는 달리 웹 애플리케이션 보안에 특화된 보안 장비
- SQL 인젝션, XSS 등과 같은 웹 공격을 탐지하고 차단하는 기능
- 네트워크 접근 제어(NAC; Network Access Control)
- 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션
- 바이러스나 웜 등의 보안 위협으로부터 네트워크 제어 및 통제 기능 수행
- 침입 탐지 시스템(IDS; Intrusion Detection System)
- 네트워크에서 발생하는 이벤트를 모니터링하고 비인가 사용자에 의한 자원 접근과 보안 정책 위반 행위(침입)을 실시간으로 탐지하는 시스템
- 침입 방지 시스템 (IPS; Intrusion Prevention System)
- 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고, 유해트래픽에 대한 조치를 능동적으로 처리하는 시스템
- 무선 침입 방지 시스템 (WIPS; Wireless Intrusion Prevention System)
- 인가되지 않은 무선 단말기의 접속을 자동으로 탐지 및 차단하고 보안에 취약한 무선 공유기를 탐지하는 시스템
- 통합 보안 시스템(UTM; Unified Treat Management)
- 방화벽, 침입 탐지 시스템(IDS), 침입 방지 시스템(IPS), VPN, 안티 바이러스, 이메일 필터링 등 다양한 보안 장비의 기능을 하나의 자입로 통합하여 제공하는 시스템
- 가상사설망(VPN; Virtual Private Network)
- 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전요망을 사용하는 효과를 가지는 보안 솔루션
5. 콘텐츠 유출 방지 솔루션
- 보안 USB
- 데이터 유출 방지(DLP; Data Loss Prevention)
- 디지털 저작권 관리(DRM; Digital Right Management)
6. 취약점 분석 절차(자진 제진결보)
- 자산 조사 및 분석
- 진단 대상 선정
- 제약사항 확인
- 진단 수행
- 결과분석/ 보고서 작성
7. 소프트웨어 개발 보안테스트 절차
- 준비 단계
- 대상 선정
- 일정 수립
- 실행 단계
- 테스트 수행
- 개선 단계
- 보고서 발행
- 지적사항 해결
- 관리 단계
- 결함 해결사항 보고
- 점검된 소스코드 관리
- 종료 단계
- 보안 상황 보고
8. 비즈니스 연속성 계획 관련 주요 용어
- BIA (Business Impact Analysis)
- 장애나 재해로인해 운영상의 주요 손실을 볼 것을 가정하여 시간 흐름에 따른 영향도 및 손실 평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석
- RTO (Recovery Time Objective)
- 업무 중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간
- 재해 시 복구 목표시간의 선정
- RPO (Recovery Point Objective)
- 업무 중단 시점부터 데이터가 복귀되어 다시 정상가동 될 때 데이터의 손실 허용 시점
- 재해 시 복구 목표 지점 선정
- DRP (Disaster Recovery Plan)
- 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획
- DRS (Disaster Recovery System)
- 재해복구계획의 원활한 수행을 지원하기 ㅜ이하여 평상시에 확보하여 두는 인적, 물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 재해복구센터
9. DRS 유형
- Mirror Site
- 주 센터와 데이터 복구센터 모두 운영 상태로 실시간 동시 서비스가 가능한 재해 복구 센터
- RTO는 0
- Hot Site
- 주 센터와 동일한 수준의 자원을 대기 상태로 원격지에 보유하면서 동기, 비동기 방식의 미러링을 통하여 데이터의 최신 상태를 유지하고 있는 재해 복구 센터
- RTO는 4시간 이내
- Warm Site
- Hot Site와 유사하나 재해 복구센터에 주 센터와 동일한 수준의 자원을 보유하는 대신 중요성 높은 자원만 부분적으로 보유하고 있는 재해복구센터
- RTO는 수일~수주
- Cold Site
- 데이터만 원격지에 보관하고, 재해 시 데이터를 근간으로 필요 자원을 조달하여 복구할 수 있는 재해복구센터
- RTO는 수주 ~ 수개월
- 구축 비용이 저렴하나 복구 소요기간이 길고 실뢰성 낮음
728x90
LIST
'정보처리기사 > 09. 소프트웨어 개발 보안 구축' 카테고리의 다른 글
| Chapter 01. 소프트웨어 개발 보안 설계 (0) | 2021.09.26 |
|---|
댓글