본문 바로가기

정보보안

안전한 시스템 설계 8원칙

시스템 유지보수도 중요하지만 안전한 설계를 통한 사전예방이 더 중요하다. 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