방구석 상상코딩

25. 소프트웨어 개발 보안 구현 본문

정보처리기사 실기

25. 소프트웨어 개발 보안 구현

구석탱 2022. 2. 5. 14:46

입력 데이터 검증 및 표현 취약점

1. XSS (Cross Site Script)

검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격

  • Stored XSS : 방문자들이 악성 스크립트가 포함된 페이지를 읽어 봄과 동시에 악성 스크립트가 브라우저에서 실행되면서 감염되는 기법
  • Reflected XSS : 공격용 악성 URL을 생성한 후 이메일로 사용자에게 전송하면 사용자가 URL 클릭 시 즉시 공격 스크립트가 피해자로 반사되어 접속 사이트에 민감정보를 공격자에게 전송하는 기법
  • DOM (Document Object Model) XSS : 공격자는 DOM 기반 XSS 취약점이 있는 브라우저를 대상으로 조작된 URL을 이메일을 통해 발송하고 피해자가 URL 클릭 시 공격 피해를 당하는 기법

2. 사이트 간 요청 위조 (CSRF : Cross-Site Request Forgery)

사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격

 

3. SQL 삽입 (Injection)

응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스(DB)의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격 기법

  • Form SQL Injection : HTML Form 기반 인증을 담당하는 애플리케이션의 취약점이 있는 경우 사용자 인증을 위한 쿼리 문의 조건을 임의로 조작하여 인증을 우회하는 기법
  • Union SQL Injection : 쿼리의 UNION 연산자를 이용하여 한 쿼리의 결과를 다른 쿼리의 결과에 결합하여 공격하는 기법
  • Stored Procedure SQL Injection : 저장 프로시저(Stored Procedure)를 이용하여 공격하는 기법
  • Mass SQL Injection : 기존 SQL Injection의 확장된 개념으로 한 번의 공격으로 대량의 DB 값이 변조되어 홈페이지에 치명적인 영향을 미치는 공격 기법
  • Error-Based SQL Injection : DB 쿼리에 대한 에러 값을 기반으로 한 단계씩 점진적으로 DB 정보를 획득할 수 있는 공격 기법
  • Blind SQL Injection : 오류 메시지가 아닌 쿼리 결과의 참과 거짓을 통해 의도하지 않은 SQL 문을 실행함으로써 데이터베이스를 비정상적으로 공격하는 기법

보안 오류 취약점

종류 설명
보안 기능 취약점 - 적절한 인증 없이 중요 기능 허용
- 부적절한 인가
- 취약한 암호화 알고리즘 사용
- 중요 정보 평문 저장 및 전송
- 하드 코드 된 비밀번호
에러 처리 취약점 - 취약한 패스워드 요구 조건
- 오류 메시지를 통한 정보 노출
- 오류사항 대응 부재
- 적절하지 않은 예외처리
세션 통제 취약점 - 불충분한 세션 관리
코드 오류 취약점 - 널 포인터 역참조
- 정수를 문자로 변환
- 부적절한 자원 해제
- 초기화되지 않은 변수 사용
캡슐화 취약점 - 잘못된 세션에 의한 데이터 정보 노출
- 제거되지 않고 남은 디버그 코드
- 민감한 데이터를 가진 내부 클래스 사용
- 시스템 데이터 정보 노출
API 오용 취약점 - DNS Lookup에 의존한 보안 결정
- 위험하다고 알려진 함수 사용
- 널 매개변수 미검사

유닉스/리눅스 주요 로그 파일

로그 이름 설명 내용 확인 명령어
wtmp(x) 사용자 로그인/로그아웃 정보
시스템 shutdown/reboot 정보
last
utmp(x) 현재 시스템에 로그인한 사용자 정보 who, w, users, finger
btmp(x) 로그인에 실패한 정보 lastb
lastlog 사용자별 최근 로그인 시간 및 접근한 소스 호스트에 대한 정보 lastlog
sulog su(Switch user) 명령어 실행 성공/실패 결과에 대한 정보  
acct/pacct 사용자별로 실행되는 모든 명령어에 대한 로그 lastcomm, acctcom
xferlog FTP 서비스 데이터 전송 기록 로그  
messages 부트 메시지 등 시스템의 가장 기본적인 시스템 로그 파일
운영에 대한 전반적인 메시지를 저장
 
secure 보안과 관련된 주요 로그를 기록
사용자 인증과 관련된 로그를 기록
 

보안 솔루션

1. 네트워크 보안 솔루션

  • 방화벽 (Firewall) : 기업 내부, 외부 간 트래픽을 모니터링하여 시스템의 접근을 허용하거나 차단하는 시스템
  • 웹 방화벽 (WAF : Web Application Firewall) : 일반적인 네트워크 방화벽과는 달리 웹 애플리케이션 보안에 특화된 보안장비로 SQL Injection, XSS 등과 같은 웹 공격을 탐지하고 차단하는 기능
  • 네트워크 접근 제어 (NAC : Network Access Control) : 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션
  • 침입 탐지 시스템 (IDS : Intrusion Detection System) : 네트워크에서 발생하는 이벤트를 모니터링하고 비인가 사용자에 의한 자원 접근과 보안정책 위반 행위(침입)를 실시간으로 탐지하는 시스템
  • 침입 방지 시스템 (IPS : Intrution Prevention System) : 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고, 유해 트래픽에 대한 조치를 능동적으로 처리하는 시스템
  • 무선 침입 방지 시스템 (WIPS : Wireless Intrution Prevention System) : 인가되지 않은 무선 단말기의 접속을 자동으로 탐지 및 차단하고 보안에 취약한 무선 공유기를 탐지하는 시스템
  • 통합 보안 시스템 (UTM : Unified Threat Management) : 방화벽, 침입 탐지 시스템, 침입 방지 시스템, VPN, 안티 바이러스, 이메일 필터링 등 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템
  • 가상사설망 (VPN : Virtual Private Network) : 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안 솔루션

2. 시스템 보안 솔루션

  • 스팸 차단 솔루션 (Anti-Spam Solution) : 메일 서버 앞단에 위치하여 프록시(Proxy) 메일 서버로 동작하며, 매일 바이러스 검사를 하고 내부에서 외부로 본문 검색 기능 통한 내부 정보 유출 방지
  • 보안 운영체제 (Secure OS) : 컴퓨터 운영체제의 커널에 보안 기능을 추가한 솔루션으로, 운영체제에 내재된 결함으로 인해 발생할 수 있는 각종 해킹 공격으로부터 시스템을 보호하기 위해 보안 기능이 통합된 보안 커널을 추가한 운영체제

3. 콘텐츠 유출 방지 보안 솔루션

  • 보안 USB : 정보 유출 방지 등의 보안 기능을 갖춘 USB 메모리
  • 데이터 유출 방지 (DLP : Data Loss Prevention) : 조직 내부의 중요 자료가 외부로 빠져나가는 것을 탐지하고 차단하는 솔루션
  • 디지털 저작권 관리 (DRM : Digital Right Management) : 디지털 저작물에 대한 보호와 관리를 위한 솔루션

비즈니스 연속성 계획 (BCP : Business Continuity Plan)

  • BIA (Business Impact Analysis) : 장애나 재해로 인해 운영상의 주요 손실을 볼 것을 가정하여 시간 흐름에 따른 영향도 및 손실 평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석
  • RTO (Recovery Time Objective) : 업무 중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간(재해 시 복구 목표 시간의 선정)
  • RPO (Recovery Point Objective) : 업무 중단 시점부터 데이터가 복구되어 다시 정상 가동될 때 데이터의 손실 허용 시점 (재해 시 복구 목표 지점의 선정)
  • DRP (Disaster Recovery Plan) : 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획
  • DRS (Disaster Recovery System) : 재해복구 계획의 원활한 수행을 지원하기 위하여 평상시에 확보하여 두는 인적, 물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 재해복구센터
    유형 설명
    Mirror Site - 주 센터와 데이터 복구센터 모두 운영 상태로 실시간 동시 서비스가 가능한 재해복구센터
    - 재해 발생 시 복구 시간까지의 소요시간(RTO)은 즉시(이론적으로 0)
    Hot Site - 주 센터와 동일한 수준의 자원을 대기 상태로 원격지에 보유하면서 동기, 비동기 방식의 미러링을 통하여 데이터의 최신 상태를 유지하고 있는 재해복구센터
    - 재해 발생 시 복구 시간까지의 소요시간(RTO)은 4시간 이내
    Warm Site - Hot Site와 유사하나 재해복구센터에 주 센터와 동일한 수준의 자원을 보유하는 대신 중요성이 높은 자원만 부분적으로 재해복구센터에 보유하고 있는 센터
    - 데이터 백업 주기가 수 시간 ~ 1일
    - 재해 발생 시 복구 시간까지의 소요시간(RTO)은 수일 ~ 수주
    Cold Site - 데이터만 원격지에 보관하고, 재해 시 데이터를 근간으로 필요 자원을 조달하여 복구할 수 있는 재해복구센터
    - 재해 발생 시 복구까지의 소요시간(RTO)은 수주 ~ 수개월
    - 구축 비용이 저렴하나 복구 소요 시간이 길고 신뢰성이 낮음

보안 공격 관련 주요 용어

  • 부 채널 공격 (Side Channel Attack) : 암호화 알고리즘의 실행 시기의 전력 소비, 전자기파 방사 등의 물리적 특성을 측정하여 암호 키 등 내부 비밀 정보를 부 채널에서 획득하는 공격 기법
  • 드라이브 바이 다운로드 (Drive By Download) : 악의적인 해커가 불특정 웹 서버와 웹 페이지에 악성 스크립트를 설치하고, 불특정 사용자 접속 시 사용자 동의 없이 실행되어 의도된 서버(멀웨어 서버)로 연결하여 감염시키는 공격 기법
  • 워터링 홀 (Watering Hole) : 특정인에 대한 표적 공격을 목적으로 특정인이 잘 방문하는 웹 사이트에 악성코드를 심거나 악성코드를 배포하는 URL로 자동으로 유인하여 감염시키는 공격 기법
  • 하트 블리드(HeartBleed) : OpenSSL 암호화 라이브러리의 하트비트(Heartbeat)라는 확장 모듈에서 클라이언트 요청 메시지를 처리할 때 데이터 길이에 대한 검증을 수행하지 않는 취약점을 이용하여 시스템 메모리에 저장된 64kb 크기의 데이터를 외부에서 아무런 제한 없이 탈취할 수 있도록 하는 취약점
  • 토르 네트워크 (Tor Network) : 네트워크 경로를 알 수 없도록 암호화 기법을 사용하여 데이터를 전송하며, 익명으로 인터넷을 사용할 수 있는 가상 네트워크
  • 디렉토리 리스팅 (Directory Listing) 취약점 : 웹 애플리케이션을 사용하고 있는 서버의 미흡한 설정으로 인해 인덱싱 기능이 활성화되어 있을 경우, 공격자가 강제 브라우징을 통해서 서버 내의 모든 디렉토리 및 파일 목록을 볼 수 있는 취약점
  • 스턱스넷 공격 (Stuxnet) : 독일 지멘스사의 SCADA 시스템을 공격 목표로 제작된 악성코드로 원자력, 전기, 철강, 반도체, 화학 등 주요 산업 기반 시설의 제어 시스템에 침투해서 오작동을 일으키는 악성코드 공격 기법

보안 공격 대응 관련 주요 용어

  • 핑거 프린팅 (Finger Printing) : 멀티미디어 콘텐츠에 저작권 정보와 구매한 사용자 정보를 삽입하여 콘텐츠 불법 배포자에 대한 위치 추적이 가능한 기술
  • CVE (Common Vulnerabilities and Exposures) : 미국 비영리 회사인 MITRE 사에서 공개적으로 알려진 소프트웨어의 보안 취약점을 표준화한 식별자 목록 (규칙 : CVE-(연도)-(순서))
  • CWE (Common Weakness Enumeration) : 미국 비영리 회사인 MITRE 사가 중심이 되어 소프트웨어에서 공통적으로 발생하는 약점을 체계적으로 분류한 목록으로, 소스 코드 취약점을 정의한 데이터베이스