시스템 유지보수도 중요하지만 안전한 설계를 통한 사전예방이 더 중요하다. OWASP에서 제시하는 취약점들을 참고하면 실제 설계 간 도움이 될 것이다. OWASP와 안전한 시스템 8원칙에 대해 살펴보자.
- OWASP(Open Web Application Security Project) : OWASP는 소프트웨어 보안 향상을 목표로 하는 비영리 조직이다. OWASP는 애플리케이션을 취약점으로부터 보호하기 위한 보안 모범 사례를 기업에 안내하기 위해 상위 10개 항목을 개발했다. 이 오픈 커뮤니티 프로젝트는 위협적인 환경이 계속 진화함에 따라 항목을 정기적으로 업데이트하고 있다.
■ 안전한 시스템 설계 8원칙
1. 최소한의 권한(Least Privilege)
정의 : 각 사용자 프로그램은 가능한 최소한의 권한을 사용하여 작동해야 한다.
- 시스템 내 계정별, 필요한 권한만 부여
ex) 리눅스 / 유닉스 setuid(또는 setgid)- 일반 사용자에게 관리자 권한을 부여하면 공격자가 해당 계정 탈취시 피해 확산
2. 매커니즘의 효율적 사용(Economy of mechanism / Simplicity)
정의 : 보호 시스템 설계는 가능한 단순하고 작아야한다(=경제적이어야 한다)
- 시스템 동작간 예기치 못한 오류 통제 철저, 의도한 기능만 구현
3. 오픈 설계(Open Design)
정의 : 보호 시스템(메커니즘)은 공격자의 무지에 의존하지 않아야 한다
ex) 공개키 방식, 암호화 알고리즘
4. 완벽한 조정(Complete Mediation)
정의 : 시스템으로의 모든 접근은 시스템(관리자)으로부터 검증받을 수 있어야 한다
- 모든 객체(사용자)의 시스템내 모든 자원 접근에 대한 감사/관리
ex) 로그 작성, 방화벽, 사용자 인증 시스템
5. 고장 안전 디폴트(Fail - Safe defaults)
정의 : 시스템 실행이 실패(오류 발생)하더라도, 가장 안전한 결과가 나올 수 있도록 설계되어야 한다.
- 오동작 탐지시, 프로그램 즉각적으로 서비스 거절 / 요청 처리 중지[시스템 전체 중지(X)]
- 가장 안전한 결과 : 시스템 초기 상태(디폴트) 등
6. 권한 분리(Separation of privilege)
정의 : 객체에 대한 접근은 한가지 이상의 조건에 의존하도록 설계되어야 한다.
- 하나의 인증 수단을 통과하더라도 시스템 전체 모든 권한을 획득하지 못하도록 설정
7. 최소한의 공통 메커니즘(Least common mechanism)
정의 : 공유 메커니즘(또는 자원)의 수와 그 사용을 최소화한다
- 다수의 공유 자원 사용시, 예상치 못한 정보 흐름/유출 발생 가능
ex) 레이스 컨디션 공격(Race Condition Attack)
8. 심리학적 수용성(Psychological acceptability)
정의 : 사용자가 시스템을 사용하기 쉽도록 설계하여, 보안 메커니즘을 목적에 맞게 사용하도록 유도한다
CF) 보안의 3요소 중 '가용성(Availability)'
ex) 비밀번호를 특수문자 포함 100글자 이상 설정하도록 지시한다면?
'정보보안' 카테고리의 다른 글
스턱스넷(Stuxnet) (1) | 2024.10.30 |
---|---|
암호화(Encryption) (0) | 2024.10.30 |
SSRF(Server-Side Request Forgery) (0) | 2024.10.30 |
SQL Injection (0) | 2024.10.30 |
패킷분석(Packet Analysis) (0) | 2024.10.30 |