283. 보안성 (Security) - 공격 탐지, 방어, 복구 전술

핵심 인사이트 (3줄 요약)

  1. 본질: 보안성(Security)은 악의적인 사용자나 프로그램(해커)으로부터 데이터와 시스템을 보호하고, 권한이 있는 합법적인 사용자에게는 정상적인 서비스를 제공하는 능력을 보장하는 아키텍처 품질 속성이다.
  2. 가치: 보안성은 현대 IT 시스템, 특히 금융/의료/퍼블릭 클라우드 서비스에서 타협 불가능한 최우선 순위 요구사항이며, 보안 실패(침해 사고)는 회사의 금전적 손실을 넘어 존립 자체를 위협하는 가장 파괴적인 리스크다.
  3. 융합: 보안 아키텍처 전술은 공격의 시간적 흐름에 따라 **방어(Resist) → 탐지(Detect) → 복구(Recover)**의 3단계 방어선(Defense in Depth, 심층 방어)을 구축하는 메커니즘으로 구성되며, 암호학, 네트워크 보안, 접근 통제 기술과 직결된다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념: 보안성은 시스템이 데이터의 기밀성(Confidentiality), 무결성(Integrity), 가용성(Availability)이라는 3대 보안 원칙(CIA Triad)을 얼마나 잘 유지하는가를 측정하는 품질 속성이다.

  • 필요성: 회원 수 1천만 명의 이커머스 앱을 만들었다고 치자. 성능이 빨라서 0.1초 만에 응답하지만, 해커가 파라미터 1개를 조작했더니(SQL Injection) 1천만 명의 개인정보가 통째로 빠져나갔다. 이 시스템은 잘 만든 시스템인가? 아무리 기능이 화려해도, 내 집의 문을 아무나 열고 들어올 수 있다면 그 집은 폐가나 다름없다. 성능이나 사용성이 좀 떨어지더라도, 절대로 타협해서는 안 되는 **아키텍처의 철창(Steel Wall)**이 필요했다.

  • 💡 비유: 은행 금고와 같습니다. 도둑이 금고에 접근하지 못하도록 **1차로 지문인식 문(방어)**을 설치하고, 만약 문을 부수면 **2차로 사이렌(탐지)**이 울리며, 그래도 돈을 털어갔다면 지폐 다발에서 3차로 파란색 잉크가 터져 돈을 못 쓰게(복구/무효화) 만드는 3중 보안 시스템이 바로 보안성 설계입니다.

  • 등장 배경 및 발전 과정:

    1. 초기 단일 방어 (Perimeter Security): 인터넷 초기에는 회사 망 입구에 방화벽(Firewall) 하나만 세워두면 끝나는 '성벽 모델'이었다. 하지만 내부 직원의 실수나 감염에는 속수무책으로 뚫렸다.
    2. 심층 방어 (Defense in Depth): 양파 껍질처럼 네트워크, 서버, 애플리케이션, 데이터 등 모든 계층(Layer)마다 중복해서 보안 전술을 배치하는 다층 방어 체계로 발전했다.
    3. 제로 트러스트 (Zero Trust): 클라우드와 원격 근무 시대가 도림함에 따라 "아무도 믿지 마라"는 철학이 대두되었다. 내/외부 망 구분 없이 모든 요청마다 권한을 지속적으로 검증하는 궁극의 보안 아키텍처로 진화했다.
  • 📢 섹션 요약 비유: 보안성은 성을 지키는 것과 같습니다. 성문만 높이 쌓는 게 아니라(방어), 성벽 위에 보초병을 세우고(탐지), 적이 들어오면 내성으로 후퇴해 문을 잠그는(복구) 3단계 작전이 모두 준비되어 있어야 진짜 튼튼한 성입니다.


Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

보안성 시나리오 (6요소)

보안 요구사항은 다음 6가지 요소로 구체화된다.

  • 자극원: 외부 해커, 악의적인 내부 직원, 권한이 없는 일반 사용자
  • 자극: 시스템 침투 시도, 데이터 탈취(Sniffing), 데이터 변조 시도, DDoS 공격
  • 환경: 온라인에 연결된 정상 운영 상태, 백업 포트가 열린 점검 상태
  • 대상: 방화벽, 인증 서버, DB, 애플리케이션 로직
  • 응답: 공격을 차단하고, 로그를 기록하며, 관리자에게 경고 알림을 전송함
  • 응답 척도: 99.99%의 공격 차단, 침해 시 1분 이내 탐지, 데이터 유출량 0바이트

보안 3대 전술 (Security Tactics)

보안 전술은 공격자의 행동을 사전에 차단하는 방어, 들어온 공격을 알아채는 탐지, 그리고 뚫렸을 때 피해를 최소화하고 되돌리는 복구 3단계로 나뉜다.

  ┌─────────────────────────────────────────────────────────────┐
  │                 공격의 생명주기와 보안성 3대 전술               │
  ├─────────────────────────────────────────────────────────────┤
  │                                                             │
  │     [방어 전술]                   [탐지 전술]      [복구 전술]   │
  │          │                          │             │        │
  │ 공격자 ──┼─▶ 시스템 침투 시도 ──────┼────▶ 침투 ──┼─▶ 훼손  │
  │ (Hacker) │                          │             │        │
  │          ▼                          ▼             ▼        │
  │   - 인증 (Authentication)      - 침입 탐지(IDS) - 감사 추적(Audit)│
  │   - 인가 (Authorization)       - 패턴 분석     - 데이터 복원(Backup)│
  │   - 암호화 (Encryption)         - 로그 모니터링  - 시스템 격리/재시작│
  │                                                             │
  │   ※ 핵심: 가장 좋은 것은 뚫리지 않는 것(방어)이지만, 100% 방어는 │
  │           없으므로 반드시 탐지와 복구 전술을 함께 설계해야 한다!    │
  └─────────────────────────────────────────────────────────────┘

1. 공격 방어 (Resist Attacks) 전술

해커가 아예 시스템 내부나 민감 데이터에 접근하지 못하도록 벽을 치는 최전선 기술이다.

  • 인증 (Authentication): 네가 주장하는 그 사람이 맞는지(ID/PW, 생체인식, MFA 다중 인증) 확인하여 성문에 들여보낼지 결정하는 전술.
  • 인가 (Authorization): 성문에 들어왔더라도, '일반 시민'이 '왕의 침실'에 들어갈 수 없도록(RBAC/ABAC) 권한을 철저히 쪼개고 통제하는 전술.
  • 기밀성 유지 (Encryption): 혹시라도 데이터를 훔쳐 가더라도 읽을 수 없게 만드는 것. 네트워크 전송 구간 암호화(TLS/HTTPS)와 저장 데이터 암호화(DB 암호화)가 있다.
  • 무결성 유지 (Integrity): 메시지가 중간에 조작되지 않았는지 확인하기 위해 해시(Hash), 전자서명(Digital Signature), 체크섬(Checksum)을 붙이는 전술.
  • 공격 면적 최소화 (Limit Exposure): 불필요한 서버 포트(예: 22번 SSH)를 다 막아버리고, 내부망(Private Subnet)에 서버를 숨겨 외부 인터넷에서 아예 보이지 않게 만드는 전술.

2. 공격 탐지 (Detect Attacks) 전술

방어벽을 뚫고 들어온 해커의 흔적을 실시간으로 감지하는 기술이다.

  • 침입 탐지 시스템 (IDS, Intrusion Detection System): 네트워크 패킷이나 시스템 콜을 감시하여 알려진 공격 패턴(Signature)이나 비정상적인 트래픽(Anomaly)을 실시간으로 잡아내는 전술.
  • 로그 및 트랜잭션 모니터링: 사용자의 모든 행위(누가 언제 어떤 데이터를 조회했는지)를 지울 수 없는 로그(WORM 스토리지)로 남기고, 초당 10번 로그인 실패 시 경고 알람을 울리는 전술.

3. 공격 복구 (Recover from Attacks) 전술

결국 시스템이 공격당해 무너지거나 데이터가 오염되었을 때, 뼈아픈 피해를 수습하고 정상화하는 기술이다.

  • 감사 추적 복구 (Audit Trail): 블록체인이나 이벤트 소싱처럼, 해커가 조작한 데이터를 추적해 정상 상태였던 '어제' 시점으로 롤백(Rollback)하는 데이터 복구 전술.

  • 시스템 격리 및 복원: 악성코드에 감염된 서버(VM)의 네트워크 렌 랜선을 논리적으로 뽑아버려(Isolation) 다른 서버로 전파되는 것을 막고, 감염된 서버는 삭제한 뒤 깨끗한 이미지를 다시 띄워(Reboot/Restore) 서비스를 재개하는 클라우드 전술.

  • 📢 섹션 요약 비유: (방어)는 클럽 입구에서 기도 아저씨가 민증 검사를 하는 것이고, (탐지)는 클럽 안의 CCTV로 도둑질하는 사람을 찾아내는 것이며, (복구)는 싸움이 났을 때 그 사람만 재빨리 밖으로 쫓아내고 클럽은 계속 장사하는 것입니다.


Ⅲ. 융합 비교 및 다각도 분석

1. 보안성(Security) vs 가용성(Availability)의 충돌 (트레이드오프)

가장 빈번하게 충돌하는 아키텍처 품질 속성이다.

딜레마 상황보안성을 극대화할 때가용성/성능을 극대화할 때
DDoS 공격 방어외부 트래픽을 모두 '차단'해버림 (보안 승리)애꿎은 정상 유저까지 차단되어 서비스 접속 불가 (가용성 실패)
비밀번호 정책12자리 특수문자 + 30일마다 변경 + 매번 ARS 인증 (보안 승리)사용자가 빡쳐서 앱 삭제, 로그인 시간 30초 지연 (사용성/성능 실패)
결론 및 타협점시스템은 무조건 안전하지만, 너무 불편해서 아무도 쓰지 않는 **'금고 속의 돌덩이'**가 된다.적절한 허들(예: 생체인식)을 도입해 사용성을 지키면서 99%의 방어와 1%의 탐지/복구로 비용 대비 보안 최적점을 찾는다.

과목 융합 관점

  • 네트워크 (NW): 방어 전술 중 방화벽(Firewall), WAF(웹 방화벽), IPSec VPN, TLS 등은 모두 L3~L7 네트워크 계층에서 공격의 싹을 자르는 하드웨어/소프트웨어 전술의 정수다.

  • 데이터베이스 (DB): SQL Injection을 막기 위한 Prepared Statement(방어), 민감 데이터의 SHA-256 해싱 및 AES-256 양방향 암호화(기밀성 방어)는 DB 아키텍처 설계 시 반드시 체크해야 할 필수 룰이다.

  • 운영체제 (OS): 리눅스의 SELinux나 AppArmor 같은 커널 레벨의 강제 접근 통제(MAC, Mandatory Access Control)는 루트(root) 계정이 털리더라도 특정 파일에 접근할 수 없게 막아내는 궁극의 '방어/인가 전술'이다.

  • 📢 섹션 요약 비유: 보안과 사용성은 시소와 같습니다. 금고 자물쇠를 10개 달면 도둑도 못 열지만, 금고 주인도 돈 꺼내려다 지쳐버립니다. 생체인식 같은 스마트한 열쇠(트레이드오프 전술)가 이래서 필요합니다.


Ⅳ. 실무 적용 및 기술사적 판단

실무 시나리오

  1. 시나리오 — 권한 상승(Privilege Escalation)을 유발하는 허술한 API 설계: 일반 회원이 자신의 프로필만 수정할 수 있는 POST /api/users/{id} API가 있다. 그런데 한 유저가 파라미터를 조작해 {"role": "ADMIN"} 값을 슬쩍 끼워 넣어 요청했다. 서버는 이를 그대로 DB에 덮어썼고, 일반 회원이 즉각 최고 관리자로 승격되는 치명적인 침해 사고가 발생했다.

    • 아키텍트의 해결책: 인가(Authorization) 전술과 방어 심층화의 부재다. 1) 프론트엔드에서 넘어오는 파라미터를 절대 신뢰하면 안 되며, DTO(Data Transfer Object) 단에서 role 같은 민감 필드의 바인딩을 원천 차단(Ignore)해야 한다. 2) 모든 상태 변경 API 호출 전, 백엔드 인터셉터(Interceptor)에서 "현재 로그인한 토큰(JWT)의 주인이, 저 유저 ID를 수정할 '권한'이 있는가?"를 검증하는 권한 체크 로직(ABAC)을 중앙에 강제(Enforce)해야 한다.
  2. 시나리오 — 클라우드 S3 버킷 권한 노출로 인한 데이터 대량 유출: 개발자가 AWS S3에 고객의 여권 사진 수만 장을 저장하면서, 버킷 권한을 실수로 Public Read로 설정했다. 봇(Bot) 프로그램이 이를 싹쓸이 다운로드해 갔고(기밀성 파괴), 회사는 존폐의 위기에 처했다.

    • 아키텍트의 해결책: 공격 면적 최소화(Limit Exposure) 원칙을 어긴 대참사다. 아키텍처 원칙으로 클라우드 저장소는 무조건 Private으로 닫아두어야 한다. 대신, 클라이언트가 여권 사진을 다운로드해야 할 경우에만, 애플리케이션 서버가 한시적으로 딱 5분만 유효한 '임시 열쇠(Pre-signed URL)'를 발급해 주는 방식을 도입해, 시간이 지나면 누구도 파일에 접근할 수 없도록 동적으로 방어해야 한다.

도입 체크리스트

  • 기술적: 서비스 내에 하드코딩된 비밀번호, API 키, AWS Secret Key가 단 한 줄이라도 소스 코드(Git)에 올라가 있지 않은가? 아무리 방화벽을 잘 쳐도 열쇠를 대문에 붙여두면 소용이 없다. Vault나 AWS Secrets Manager 같은 안전한 비밀번호 보관소(KMS)를 쓰고 있는가?
  • 설계적: 시스템 내부(망 내부)로 들어온 요청이라고 해서 무조건 신뢰하고 있지 않은가? 내부망의 A 서버가 B 서버를 찌를 때도 서로 인증(mTLS)을 하고 권한을 확인하는 제로 트러스트(Zero Trust) 아키텍처를 적용했는가?

안티패턴

  • 독자적인 암호화 알고리즘의 발명 (Security by Obscurity): "기존의 AES 알고리즘은 누구나 아니까, 나만의 비밀 수학 공식으로 패스워드를 섞으면 해커가 절대 모르겠지?"라는 엄청난 착각. 역대 모든 자체 개발 암호화 로직은 100% 뚫렸다. **"알고리즘은 천하에 공개하되, 암호키(Key)만 숨긴다"**는 커크호프의 원칙(Kerckhoffs's principle)을 위배하는, 기술사가 가장 경계해야 할 안티패턴이다.

  • 📢 섹션 요약 비유: 자체 암호화 개발은 시판용 튼튼한 자물쇠를 안 믿고, 내가 직접 종이접기로 나만의 비밀 자물쇠를 만드는 것과 같습니다. 남들은 내가 어떻게 접었는지 몰라도, 툭 치면 그냥 찢어집니다. 검증된 표준(표준 암호화)을 써야 합니다.


Ⅴ. 기대효과 및 결론

정량/정성 기대효과

구분단일 경계 방어 (방화벽만 존재)심층 방어 전술 도입 (인증/인가/암호화)개선 효과
정량방화벽 우회 공격 시 데이터 유출 100%침입해도 DB 암호화로 인해 쓸모없는 데이터 획득데이터 침해 시 실질적 비즈니스 피해액 0원 방어
정량내부망 해킹 시 횡적 이동(Lateral Movement) 소요 시간 5분제로 트러스트 적용으로 서버 간 이동 차단공격자의 내부망 장악 시간 및 확률 극적 저하
정성보안 사고 후 원인 파악 및 책임 추궁 불가능감사 로그(Audit) 전술로 육하원칙 명확화법적 책임 방어 및 규제(ISMS, 컴플라이언스) 100% 통과

미래 전망

  • AI 기반의 탐지(Detect) 및 자율 대응: 기존의 룰(Rule) 기반 침입 탐지 시스템(IDS)은 해커의 변형 공격을 막지 못했다. 현재는 딥러닝 기반의 이상 징후 탐지(Anomaly Detection)가 실시간 트래픽을 분석하여, 한 번도 본 적 없는 제로 데이(Zero-day) 공격 패턴을 0.1초 만에 찾아내고 자동으로 방화벽 정책을 업데이트하는 AI SecOps로 진화 중이다.
  • 양자 내성 암호 (PQC): 향후 양자 컴퓨터가 상용화되면 현재의 RSA나 타원곡선(ECC) 같은 공개키 암호가 몇 초 만에 풀리게 된다. 이를 대비하여 격자 기반, 다변수 다항식 기반의 양자 내성 암호 아키텍처로의 전환(Migration)이 향후 10년 IT 인프라의 가장 큰 숙제가 될 것이다.

참고 표준

  • ISO/IEC 27001: 정보보호 관리체계(ISMS)에 대한 국제 표준 (보안성 아키텍처의 바이블)
  • OWASP Top 10: 웹 애플리케이션 보안 취약점 10대 가이드 (설계 시 반드시 방어 전술로 커버해야 함)

보안성은 아키텍트에게 "의심(Doubt)"을 설계하는 예술이다. "이 사용자는 진짜인가?", "이 데이터는 조작되지 않았는가?", "이 코드는 안전한가?" 시스템을 이루는 모든 접점마다 끝없이 묻고 검증하는 편집증적인 방어선(Tactics)을 구축해야 한다. 기술사는 눈앞의 화려한 기능(Feature) 달성에 취해 보안이라는 기초 공사를 잊은 팀에게, 언제 닥칠지 모르는 재앙의 비용을 상기시키고 강제로 심층 방어 텐트를 치게 하는 냉철한 문지기가 되어야 한다.

  • 📢 섹션 요약 비유: 훌륭한 건축가는 화려하고 넓은 유리창(사용성)을 설계하면서도, 그 유리가 방탄유리(기밀성)인지, 창틀에 센서(탐지)가 달렸는지, 깨졌을 때 철창(복구/격리)이 내려오는지 보이지 않는 곳을 가장 먼저 챙기는 사람입니다.

📌 관련 개념 맵 (Knowledge Graph)

개념 명칭관계 및 시너지 설명
심층 방어 (Defense in Depth)성벽(네트워크), 갑옷(서버), 방패(애플리케이션), 금고(데이터) 등 각 층마다 보안 전술을 중복 배치하는 현대 보안 아키텍처의 절대 원칙.
제로 트러스트 (Zero Trust)"아무것도 신뢰하지 말고 항상 검증하라." 망의 내/외부를 구분하지 않고 매 요청마다 방어(인증/인가) 전술을 수행하는 최신 철학.
가용성 (Availability)보안 공격(DDoS, 랜섬웨어)이 성공하면 가용성이 0으로 떨어지므로, 보안 전술은 사실상 가용성 전술을 수호하는 핵심 방패가 된다.
RBAC / ABAC역할 기반, 속성 기반 접근 제어. 인가(Authorization) 전술을 구현하는 가장 대중적이고 고도화된 엔터프라이즈 권한 설계 패턴.
감사 추적 (Audit Trail)데이터 변경의 주체와 시간을 지울 수 없는 로그로 남겨, 사후 탐지(Detect) 및 롤백 복구(Recover), 법적 책임 회피를 지원하는 전술.

👶 어린이를 위한 3줄 비유 설명

  1. 여러분의 소중한 일기장(데이터)을 지키려면 어떻게 해야 할까요?
  2. 먼저 자물쇠가 달린 서랍에 넣고(방어), 서랍을 열면 삐용삐용 소리가 나는 방울을 달아두고(탐지), 혹시라도 도둑이 일기장을 가져가면 글씨가 저절로 지워지게(복구/무효화) 마법을 걸어야죠.
  3. 이렇게 나쁜 사람(해커)으로부터 소중한 컴퓨터 시스템을 완벽하게 3중, 4중으로 지켜내는 기술을 **'보안성 전술'**이라고 한답니다!