TIL - 20260507

juni·2026년 5월 7일

TIL

목록 보기
344/468

0507 정보처리기사 필기 (13/N): 애플리케이션 보안과 개인정보보호


✅ 1. 시큐어 코딩 (Secure Coding)

  • 시큐어 코딩이란 소프트웨어 개발 단계에서부터 보안 취약점이 발생하지 않도록, 보안을 고려하여 코드를 작성하는 것을 의미합니다. "소 잃고 외양간 고치는" 사후 대응이 아닌, 사전 예방에 중점을 둡니다.

➕ 행정안전부 시큐어 코딩 가이드 (주요 보안 약점)

  • 정부 및 공공기관 프로젝트에서 준수해야 하는 보안 약점 진단 기준이며, 시험에 자주 출제되는 개념입니다.
보안 약점설명예시 및 안전한 코드
입력 데이터 검증 및 표현• 사용자로부터 입력받은 데이터에 대한 유효성 검증이 누락될 경우 발생.
• SQL 인젝션, XSS, 버퍼 오버플로우 등의 주된 원인.
• PreparedStatement 사용 (SQL 인젝션 방어).
• 특수문자(<, >, &) 필터링 (XSS 방어).
보안 기능• 인증, 인가, 암호화 등 보안 기능이 부적절하게 구현된 경우.• 안전하지 않은 비밀번호 저장 (평문 저장).
• 예측 가능한 세션 ID 사용.
시간 및 상태• 여러 스레드나 프로세스가 공유 자원에 동시에 접근할 때 동기화가 부족하여 발생.• 경쟁 조건(Race Condition): synchronized 키워드 등으로 임계 영역 보호.
에러 처리• 에러 메시지에 민감한 정보(시스템 정보, DB 구조 등)가 포함되어 공격자에게 단서를 제공하는 경우.• 상세한 오류는 로그에만 기록하고, 사용자에게는 "오류가 발생했습니다"와 같은 일반적인 메시지만 보여줌.
코드 품질• 사용되지 않는 변수, 초기화되지 않은 변수 사용 등 코드 자체의 품질 문제.• NULL 포인터 역참조(Null Pointer Dereference) 방지를 위한 NULL 체크.
캡슐화• 외부에서 접근하면 안 되는 중요 데이터나 메서드가 public으로 잘못 공개된 경우.• 멤버 변수는 private으로 선언하고, 필요한 경우에만 public Getter/Setter 제공.

✅ 2. 주요 웹 애플리케이션 공격

  • 시큐어 코딩을 통해 예방해야 할 대표적인 웹 공격 유형입니다.
공격 유형설명핵심 원인
SQL 인젝션
(SQL Injection)
공격자가 웹 애플리케이션의 입력값에 악의적인 SQL 구문을 삽입하여, 데이터베이스를 비정상적으로 조작하는 공격.입력값에 대한 검증 및 필터링 부재.
크로스 사이트 스크립팅
(XSS, Cross-Site Scripting)
공격자가 악의적인 스크립트(JavaScript)를 웹 페이지에 삽입하여, 해당 페이지를 방문하는 다른 사용자의 브라우저에서 스크립트가 실행되도록 만드는 공격. (쿠키 탈취 등)출력값에 대한 필터링 및 이스케이프(escape) 처리 부재.
사이트 간 요청 위조
(CSRF, Cross-Site Request Forgery)
사용자가 자신의 의지와는 무관하게, 공격자가 의도한 악의적인 요청(글 삭제, 정보 수정 등)을 서버에 보내도록 위조하는 공격. (로그인된 세션 쿠키 악용)요청의 출처를 검증하는 메커니즘(CSRF 토큰 등) 부재.

✅ 3. 개인정보보호법의 주요 내용

  • 개인정보보호법은 개인정보의 처리 및 보호에 관한 사항을 정한 법률로, IT 시스템 구축 시 반드시 준수해야 합니다.

➕ 3-1. 개인정보 처리의 기본 원칙

  • 수집 최소화: 목적에 필요한 최소한의 정보만 수집.
  • 목적의 명확화: 수집 목적을 명확히 하고, 그 목적 외 사용 금지.
  • 동의 기반 수집: 정보 주체에게 수집 항목, 목적, 보유 기간 등을 알리고 동의 획득.
  • 안전성 확보: 개인정보가 유출, 훼손되지 않도록 기술적·관리적 조치 의무.
  • 정보 주체의 권리 보장: 자신의 개인정보에 대한 열람, 정정·삭제, 처리정지 요구 권리.

➕ 3-2. 개인정보의 안전성 확보 조치 (기술적 조치)

  • 법에서 요구하는 최소한의 기술적 보안 조치입니다.
  1. 접근 통제: 개인정보처리시스템에 대한 접근 권한을 최소한으로 부여하고, 외부로부터의 무인가 접근을 통제.
  2. 개인정보의 암호화:
    • 반드시 암호화해야 하는 대상:
      • 고유식별정보 (주민등록번호, 여권번호, 운전면허번호, 외국인등록번호)
      • 비밀번호
      • 바이오정보 (지문, 홍채 등)
    • 이 정보들은 정보통신망을 통해 송수신하거나, 디스크에 저장할 때 반드시 암호화해야 합니다.
  3. 접속기록의 보관 및 위변조 방지:
    • 개인정보취급자가 시스템에 접속한 기록(로그)을 최소 1년 이상 보관·관리해야 합니다.
  4. 보안프로그램의 설치 및 운영: 악성코드를 방지하기 위한 백신 소프트웨어 등을 설치·운영.

📌 요약

  • 시큐어 코딩은 개발 단계에서부터 입력 데이터 검증, 보안 기능, 에러 처리 등을 고려하여 보안 취약점을 사전에 예방하는 개발 방식입니다.
  • SQL 인젝션과 XSS는 사용자 입력값을 제대로 검증하고 처리하지 않아 발생하는 대표적인 웹 공격입니다.
  • 개인정보보호법은 IT 시스템 구축 시 반드시 준수해야 할 법규이며, 특히 비밀번호, 고유식별정보 등은 반드시 암호화하여 저장해야 하고, 접속 기록은 1년 이상 보관해야 합니다.

0개의 댓글