TIL - 20260126

juni·2026년 1월 26일

TIL

목록 보기
250/316

0126 정보처리기사 필기 (13/N): 애플리케이션 테스트와 보안 강화


✅ 1. 애플리케이션 테스트의 종류와 목적

  • 소프트웨어의 품질을 보증하기 위해, 개발된 애플리케이션이 요구사항에 맞게 동작하는지, 성능이나 보안에 문제는 없는지를 검증하는 활동입니다.
테스트 종류목적설명
기능 테스트요구된 기능이 정확하게 동작하는가?• 명세서 기반으로 입력값에 대한 결과값이 올바른지 확인.
• 블랙박스 테스트 기법이 주로 사용됨.
성능 테스트시스템이 특정 부하(Load) 상태에서 어떻게 동작하는가?부하 테스트: 예상되는 부하 상태에서의 성능 측정.
스트레스 테스트: 시스템의 한계를 초과하는 부하를 가해 임계점을 찾음.
안정성 테스트: 장시간 동안 안정적으로 운영되는지 확인.
보안 테스트시스템의 보안 취약점은 없는가?• 시스템에 잠재된 보안 허점을 찾아내고, 이를 악용한 공격을 시도하여 방어 능력을 시험.
사용성 테스트사용자가 시스템을 쉽고 편리하게 사용할 수 있는가?• 실제 사용자가 시스템을 사용해보면서 겪는 어려움이나 불편함을 파악하고 개선.

✅ 2. 애플리케이션 보안 테스트 (시큐어 코딩)

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

➕ 행정안전부 시큐어 코딩 가이드 (주요 항목)

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

✅ 3. 암호화 적용 방식

  • 데이터를 보호하기 위해 암호화 기술을 실제 시스템에 어떻게 적용하는지에 대한 구분입니다.

➕ 3-1. 데이터베이스 암호화

  • 데이터베이스에 저장되는 데이터 자체를 암호화하는 방식입니다.
    • API 방식: 애플리케이션 레벨에서 암호화/복호화 로직을 구현. (가장 일반적)
    • 플러그인 방식 (TDE): DBMS가 제공하는 암호화 기능을 사용. (e.g., Oracle/MSSQL TDE)
    • 하이브리드 방식: 위 두 방식을 혼합.

➕ 3-2. 파일 암호화

  • 파일 자체를 암호화하는 방식. DRM(Digital Rights Management)과 같은 콘텐츠 보안에 주로 사용됩니다.

➕ 3-3. 네트워크 구간 암호화

  • 클라이언트와 서버 간에 데이터가 전송되는 네트워크 구간을 암호화하는 방식입니다.
  • SSL/TLS: HTTPS의 기반이 되는 프로토콜로, 웹 통신 구간 암호화의 표준입니다.
  • IPSec: IP 계층(네트워크 계층)에서 데이터를 암호화하는 프로토콜로, 주로 VPN 구현에 사용됩니다.

📌 요약

  • 애플리케이션 테스트는 기능, 성능, 보안, 사용성 등 다양한 관점에서 소프트웨어의 품질을 검증하는 활동입니다.
  • 시큐어 코딩은 개발 단계에서부터 입력 데이터 검증, 보안 기능, 에러 처리 등을 고려하여 보안 취약점을 사전에 예방하는 개발 방식입니다.
  • 데이터베이스 암호화는 저장된 데이터(Data at Rest)를, 네트워크 구간 암호화(SSL/TLS)는 전송 중인 데이터(Data in Transit)를 보호하는 핵심적인 보안 적용 방식입니다.

0개의 댓글