소프트웨어 성능 4대 지표와 OWASP Top 10 보안 취약점을 체계적으로 정리하고 시큐어 코딩 13가지 분류를 완벽히 이해합니다.
📊 소프트웨어 성능 4대 지표
이 섹션에서는 소프트웨어 성능을 측정하는 4가지 핵심 지표를 살펴보겠습니다.
성능(Performance)은 소프트웨어가 주어진 조건에서 얼마나 효율적으로 작동하는지를 나타냅니다. 정보처리기사 기출에서는 성능 지표의 이름과 정의를 1:1로 연결하는 문제가 자주 출제됩니다.
| 지표 | 영문 | 정의 | 단위 |
|---|---|---|---|
| 처리량 | Throughput | 단위 시간 내 처리 가능한 요청 수 | TPS(Transaction/sec) |
| 응답 시간 | Response Time | 요청 후 첫 응답까지 걸리는 시간 | 초(ms) |
| 자원 사용률 | Resource Utilization | CPU·메모리·디스크·네트워크 사용 비율 | %(퍼센트) |
| 가용성 | Availability | 전체 시간 중 정상 운영 시간의 비율 | %(예: 99.9%) |
암기법: "처응자가" — 처리량·응답시간·자원사용률·가용성 4가지를 묶어 기억합니다.
가용성 계산: 가용성(%) = (가동 시간 / 전체 시간) × 100. 99.9%는 연간 약 8.76시간 다운타임을 허용합니다. "파이브 나인(99.999%)"은 연간 약 5.26분 이하 다운타임을 요구합니다.
성능 분석 기법: 코드 인스펙션(Code Inspection)은 작성자 외 다른 개발자가 코드를 검토하는 정적 기법입니다. 정적 분석(Static Analysis)은 실행 없이 코드를 분석하여 잠재적 결함을 찾습니다. 동적 분석(Dynamic Analysis)은 실제 실행 중에 프로파일링으로 병목 지점을 찾습니다.
🔐 OWASP Top 10 (2021) 전체 정리
이 섹션에서는 오픈 웹 애플리케이션 보안 프로젝트(OWASP)가 선정한 2021년 Top 10 보안 취약점을 살펴보겠습니다.
OWASP Top 10은 웹 애플리케이션 보안에서 가장 심각한 10가지 취약점을 선정한 것으로, 기출에서 A01~A10의 이름과 설명을 연결하는 문제가 출제됩니다.
| 순위 | 취약점 | 핵심 내용 |
|---|---|---|
| A01 | 접근 통제 취약점(Broken Access Control) | 권한 없는 사용자가 제한된 기능/데이터에 접근 |
| A02 | 암호화 실패(Cryptographic Failures) | 민감 데이터가 평문으로 저장/전송됨 |
| A03 | 인젝션(Injection) | SQL·OS·LDAP 등 해석기에 악성 데이터 삽입 |
| A04 | 안전하지 않은 설계(Insecure Design) | 설계 단계의 보안 결함 |
| A05 | 보안 설정 오류(Security Misconfiguration) | 기본 설정·불필요 포트·오류 메시지 노출 |
| A06 | 취약한 구성요소(Vulnerable Components) | 알려진 취약점의 라이브러리·프레임워크 사용 |
| A07 | 인증 실패(Identification and Authentication Failures) | 약한 패스워드·세션 고정·크리덴셜 스터핑 |
| A08 | 무결성 실패(Software and Data Integrity Failures) | 신뢰할 수 없는 소스의 업데이트·직렬화 |
| A09 | 로깅·모니터링 실패(Security Logging Failures) | 공격 탐지·대응 실패 |
| A10 | SSRF(Server-Side Request Forgery) | 서버가 공격자가 지정한 내부 URL에 요청 |
기출 함정: 2021년 기준으로 접근 통제 취약점(A01)이 1위입니다. 2017년 버전과 달리 인젝션은 A03으로 내려갔습니다. 시험에서 연도를 명시하면 해당 버전으로 답해야 합니다.
💉 3대 웹 공격 — SQL 인젝션·XSS·CSRF
이 섹션에서는 실무와 기출 모두에서 가장 중요한 세 가지 웹 공격 원리와 방어 방법을 살펴보겠습니다.
SQL 인젝션(SQL Injection)은 사용자 입력에 SQL 구문을 삽입하여 데이터베이스를 조작하는 공격입니다. 예를 들어 로그인 폼에 ID로 "admin' OR '1'='1"을 입력하면 WHERE 조건이 항상 참이 되어 인증을 우회할 수 있습니다. 방어: 준비된 구문(Prepared Statement)·파라미터화된 쿼리 사용, 입력값 이스케이프, 최소 권한 DB 계정 사용.
XSS(Cross-Site Scripting)는 악성 스크립트를 웹 페이지에 삽입하여 다른 사용자의 브라우저에서 실행시키는 공격입니다. 저장형(Stored) XSS는 서버 DB에 스크립트를 저장하고, 반사형(Reflected) XSS는 URL 파라미터에 스크립트를 포함합니다. 방어: 출력 시 HTML 이스케이프(&·<·>·" 등), CSP(Content Security Policy) 헤더 설정.
CSRF(Cross-Site Request Forgery)는 인증된 사용자가 의도하지 않은 요청을 전송하도록 유도하는 공격입니다. 사용자가 로그인한 상태에서 악성 사이트의 이미지나 링크를 클릭하면 은행 이체 등의 요청이 자동으로 전송됩니다. 방어: CSRF 토큰 사용, SameSite 쿠키 속성, Referer 헤더 검증.
| 공격 | 공격 대상 | 핵심 원리 | 주요 방어 |
|---|---|---|---|
| SQL 인젝션 | 데이터베이스 | SQL 구문 삽입 | Prepared Statement |
| XSS | 사용자 브라우저 | 스크립트 삽입/실행 | HTML 이스케이프 |
| CSRF | 인증된 사용자 | 위조 요청 전송 | CSRF 토큰 |
🛡️ 시큐어 코딩 13가지 보안 약점 분류
이 섹션에서는 행정안전부(KISA)가 제시한 소프트웨어 보안 약점 13가지 분류를 살펴보겠습니다.
한국인터넷진흥원(KISA)의 소프트웨어 보안 약점 기준은 공공기관 소프트웨어 개발 시 의무적으로 적용되며, 정보처리기사 기출에서도 분류명과 설명을 연결하는 문제가 출제됩니다.
- 입력 데이터 검증 및 표현: SQL 인젝션·XSS 등 입력값 검증 부재로 인한 취약점
- 보안 기능: 인증·권한·암호화·세션 관리 미흡
- 시간 및 상태: 경쟁 조건(Race Condition), TOCTOU 취약점
- 에러 처리: 오류 메시지에 민감 정보 포함
- 코드 품질: NULL 포인터 역참조, 메모리 누수
- 캡슐화: 중요 정보 노출, 잘못된 접근 제한
- API 오용: 보안에 취약한 함수 사용 (예: gets())
암기법: "입보시에코캡API" — 입력·보안·시간·에러·코드·캡슐화·API 7가지 대분류(실제 13가지 세분류). 기출에서는 주로 분류명 식별과 대표 사례 연결을 묻습니다.
기출 함정: "CSRF는 XSS의 일종이다" → 틀림. 둘은 다른 공격입니다. "SQL 인젝션은 입력 데이터 검증 분류에 속한다" → 맞음. "OWASP Top 10은 데이터베이스 취약점만 다룬다" → 틀림. 웹 애플리케이션 전체 보안을 다룹니다.
📌 10강 핵심 요약과 11강 예고
이 섹션에서는 10강 핵심 내용을 압축 정리합니다.
성능 4지표: 처리량(TPS)·응답시간(ms)·자원사용률(%)·가용성(%). 분석 기법: 인스펙션(정적·사람)·정적분석(도구)·동적분석(실행 중).
OWASP 2021 순위: A01 접근통제→A02 암호화실패→A03 인젝션→A04 안전하지않은설계→A05 보안설정오류. 3대 공격: SQL인젝션(PreparedStatement)·XSS(이스케이프)·CSRF(CSRF토큰).
시큐어코딩 대분류: 입보시에코캡API. 입력 검증이 가장 중요한 1순위입니다.
다음 11강에서는 데이터베이스 개념과 관계 모델 — DBMS 특성, 3단계 스키마, 관계 데이터 모델의 핵심 개념, 키 5종, 무결성 4종, 관계 대수 6연산을 완벽히 정리합니다.
관련 주제
- 처리량 응답시간 자원사용률 가용성
- 코드 인스펙션 정적 분석
- OWASP Top 10
- SQL 인젝션 XSS CSRF
- 시큐어 코딩 13가지
- 입력값 검증
- 자격증
- 자격증 강의
- 정보처리기사 필기 25강 — 핵심이론·기출 완전정복
- 무료강의
- 무료 온라인 강의
- NUGUNA
- 누구나
📚 시리즈 전체 공유
정보처리기사 필기 25강 — 핵심이론·기출 완전정복
이 강의가 속한 시리즈는 총 13강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.
댓글
불러오는 중...
