1. SW 개발 보안 구현
- 시큐어 코딩 가이드 : 잠재적인 보안 취약점을 사전에 제거하고, 외주 공격으로부터 안전한 소프트웨어를 개발하는 기법
- 입력 데이터 검증 및 표현 : 입력 데이터로 인해 발생하는 문제들을 예방하기 위한 보안 점검 항목들
- 입력 데이터 검증 및 표현 취약점
- XSS : 검증되지 않은 외부 입력 데이터가 포함된 웹 페이지가 전송
- XSS 공격 유형
- Stored XSS : 악성 스크립트가 포함된 페이지를 읽으며 브라우저에서 실행되며 감염
- Reflected XSS : 공격용 악성 URL을 이메일로 전송하고, URL 클릭 시 접속 사이트에 민감정보를 전송
- DOM : DOM 기반 XSS 취약점이 있는 브라우저를 대상으로 조작된 URL을 이메일로 발송
- XSS 공격 절차
- 임의의 XSS 취약점이 존재하는 서버에 XSS 코드를 작정하여 삽입 저장
- 해당 웹 서비스 사용자가 공격자가 작성해 놓은 XSS 코드에 접근
- 사용자가 XSS 코드가 저장된 페이지에 정보를 요청
- 사용자의 시스템에서 XSS 코드 실행
- XSS 코드가 실행된 결과가 공격자에게 전달되고 공격자는 결과를 두고 웹 서버에서 2차 해킹 시도
- CSRF : 사용자가 자신의 의지와는 무관하게 공격자의 의도 행위를 특정 웹 사이트에 요청
- CSRF 공격 절차
- 공격자는 CSRF 스크립트가 포함된 게시물을 등록
- 사용자는 CSRF 스크립트가 포함된 페이지의 게시물 열람 요청
- 게시물을 읽은 사용자의 권한으로 공격자가 원하는 요청 발생
- 공격자가 원하는 CSRF 스크립트 결과가 발생
- SQL Injection : 악의적인 SQL 구문을 삽입, 실행시켜서 DB에 접근 후 정보를 탈취하거나 조작 등의 행위 실행
- 응용 프로그램의 취약점 탐지
- 악의적인 SQL 구문 삽입하여 인증 우회
- 권한이 상승되어 DB의 정보 탈취 및 조작 실행
- 보안 기능 : 인증, 접근제어, 기밀성, 암호화, 권한 관리 등을 구현하기 위한 보안 점검 항목들
- 보안 기능 취약점
- 적절한 인증 없이 중요 기능 허용 -> 중요정보 수행 시 재인증 기능을 통해 방지
- 부적절한 인가 -> 모든 실행경로에 대해 접근제어 검사 수행
- 취약한 암호화 알고리즘 사용 -> 안전한 암호화 알고리즘, 모듈 이용
- 중요 정보 평문 저장 및 전송 -> 중요 정보는 암호화 과정을 거치고, HTTP, SSL/TLS 등의 보안 채널 이용
- 하드 코드 된 비밀 번호 -> 패스워드는 암호화 하여 저장
- 취약한 패스워드 요구 조건 -> 패스워드 생성 시 강한 조건 검증
- 에러 처리 : 에러 예외 처리 시 발생할 수 있는 취약점을 예방하기 위한 보안 점검 항목들
- 에러 처리 취약점
- 오류 메시지 통한 정보 노출 -> 에러 메시지는 사용자에게 유용한 최소한의 정보만 표현
- 오류 상황 대응 부재 -> 오류가 발생할 수 있는 부분에 예외 처리 구문 작성
- 적절하지 않은 예외 처리 -> 모든 함수의 결괏값을 검사 후, 구체적인 예외 처리
- 세션 통제 : 다른 세션 간 데이터 공유 등 세션과 관련된 취약점을 예방하기 위한 보안 점검 항목들
- 세션 : 클라이언트와 서버의 논리적인 연결
- 세션 통제 취약점
- 불충분한 세션 관리 -> 클래스 설계 시 세션 정보를 읽고 쓰기가 가능한 변수를 사용하지 않도록 설계
- 코드 오류 : 개발자의 흔한 실수로 인한 프로그램 오류를 예방하기 위한 보안 점검 항목들
- 널 포인터 역참조 -> NULL이 될 수 있는 레퍼런스 참조 전 NULL여부 검사
- 정수를 문자로 변환 -> 변환값의 크기가 변환 값이 저장되는 변수의 크기보다 크지 않도록 함
- 부적절한 자원 해제 -> 자원을 사용한 후 Finally 블록에서 자원이 반환되도록 코딩
- 초기화되지 않은 변수 사용 -> 변수 선언 시 할당된 메모리를 초기화
- 캡슐화 : 외부 은닉이 필요한 데이터와 불충분한 캡슐화했을 때 발생할 수 있는 취약점을 예방하기 위한 보안 점검 항목들
- 캡슐화 취약점
- 잘못된 세션에 의한 데이터 정보 노출 -> 변수 범위에 주의하고, 멤버 변수보다 지역 변수를 활용
- 제거되지 않고 남은 디버그 코드 -> 디버거 코드는 개발 완료 후, 삭제 처리
- 민감한 데이터를 가진 내부 클래스 사용 -> 내부 클래스 사용 시 외부 클래스의 접근 금지
- 시스템 데이터 정보 노출 -> 시스템 메시지를 통해 노출되는 메시지는 최소한의 정보만 제공
- API 오용 : 잘못된 API 사용이나 보안에 취약한 API로 인해 발생할 수 있는 취약점을 예방하기 위한 보안 점검 항목들
- API 오용 취약점
- DNS Lookup에 의존한 보안 결정 -> 도메인명을 이용한 DNS Lookup을 하지 않도록 함
- 위험하다고 알려진 함수 사용 : 안전한 함수(ex. strncpy) 사용
- 널 매개변수 미검사 : 널 여부를 점검하는 과정을 거친 후 사용
- DNS Lookup : DNS를 퇘 웹사이트의 도메인 이름을 IP 주소로 변환하는 과정
2. 시스템 보안 구현
- 유닉스/리눅스 주요 로그 파일
- wtmp/wtmpx : 사용자 로그인/로그아웃 정보, 시스템 shutdown, reboot 정보
- utmp/utmpx : 현재 시스템에 로그인한 사용자 정보
- btmp/btmpx : 로그인에 실패한 정보
- lastlog : 사용자별 최근 로그인 시간 및 접근한 소스 호스트에 대한 정보
- sulog : su(switch user) 명령어 실행 성공/실패 결과에 대한 정보
- acct/pacct : 사용바졀로 실행되는 모든 명령에 대한 로그
- xferlog : FTP 서비스 데이터 전송 기록 로그
- messages : 시스템의 가장 기본적인 시스템 로그 파일로, 운영에 대한 전반적인 메시지 저장
- secure : 보안, 사용자 인증과 관련된 로그 기록
- 보안 솔루션
- 네트워크 보안 솔루션
- 방화벽(Firewall) : 기업 내부, 외부 간 트래픽을 모니터링하여 시스템의 접근을 허용하거나 차단하는 시스템
- 웹 방화벽(WAF) : 웹 애플리케이션 보안(SQL 인젝션, XSS 등)에 특화된 보안 장비
- 네트워크 접근 제어(NAC) : 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 솔루션
- 침입 탐지 시스템(IDS) : 네트워크에서 발생하는 이벤트를 모니터링하고, 자원 접근과 침입을 실시간으로 탐지
- 침입 방지 시스템(IPS) : 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고, 유해 트래픽에 대해 처리
- 무선 침입 방지 시스템(WIPS) : 인가되지 않은 무선 단말기의 접속을 탐지 및 차단
- 통합 보안 시스템(UTM) : 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템
- 가상사설망(VPN) : 인터넷과 같은 공중망에 전용망을 사용하는 효과를 가지는 보안 솔루션
- SIEM : 보안 로그와 이벤트 정보를 수집한 후, 침해사고에 대응하는 보안 관제 솔루션
- ESM : 보안 시스템에서 발생한 이벤트 및 로그를 통합해 관리, 분석, 대응하는 전사적 통합 보안 관리 시스템
- 시스템 보안 솔루션
- 스팸 차단 솔루션 : 메일 서버 앞단에 위치하여 프록시 메일 서버로 동작하는 솔루션
- 보안 운영체제 : 컴퓨터 운영체제의 커널에 보안 기능을 추가한 솔루션
- 콘텐츠 유출 방지 보안 솔루션
- 보안 USB : 정보 유출 방지 등의 보안 기능을 갖춘 USB 메모리
- 데이터 유출방지(DLP) : 조직 내부 자료가 외부로 빠져나가는 것을 모니터링하고 실시간 차단
- 디지털 저작권 관리(DRM) : 디지털 저작물에 대한 보호와 관리를 위한 솔루션
- 네트워크 보안 솔루션
- 취약점 분석 : 자산이 가지고 있는 보안상의 결점 또는 취약점을 파악하여 위험을 낮추는 활동
- 취약점 분석 대상
- 환경 및 시설 : 도난, 정전/오작동, 천재지변 등
- 하드웨어 : 고장/오작동, 데이터 유실
- 소프트웨어 : 소프트웨어 장애, 정보유출, 데이터 소실
- 취약점 분석 절차
- 자산 조사 및 분석 : 어떤 자산에 대해 수행할지 선정
- 진단 대상 선정 : 자산규모가 작으면 전수 조사, 크면 샘플링 수행
- 제약사항 확인 : 진단을 수행하는 시간의 제약사항 및 일정 분배
- 진단 수행 : 페크리스트 이용 취약점 진단 수행(기술적/관리적/물리적 관점)
- 결과 분석/보고서 작성 : 점검 항목에 대해 취약점 점수 지정 및 결과 값 산출, 결과 분석 및 보고서 작성
3. SW 개발 보안 테스트와 결함 관리
- 소프트웨어 개발 보안 테스트 : 소프트웨어 보안 요구사항이 반영되어 있음을 보증하고, 취약점을 개선하여 안전한 소프트웨어를 개발하기 위한 활동
- 소프트웨어 개발 보안 테스트의 유형
- 정적 분석 : SW를 실행하지 않고 보안 약점을 분석
- 동적 분석 : SW 실행 환경에서 보안 약점 분석
4. 비즈니스 연속성 계획(BCP)
- BCP : 위기관리를 기반으로 비즈니스 연속성을 보장하는 체계. 비즈니스 영향 평가(BIA)가 선행되어야 함.
- BCP 관련 주요 용어
- BIA : 장애나 재해로 인해 운영상의 주요 손실을 볼 것을 가정하고 영향도 및 손실평가를 조사하는 BCP 구축
- RTO : 재해 시 복구 목표 시간 선정
- RPO : 재해 시 복구 목표 지점의 선정
- DRP : 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획
- DRS : 재해복구계획의 수행을 지원하기 위해 평상시 확보하는 자원에 대한 관리체계가 통합된 재해복구센터
- DRF 유형(RTO)
- Mirror Site(즉시) : 주 센터와 데이터복구센터 모두 운영 상태로 실시간 동시 서비스가 가능한 재해복구 센터
- Hot Site(4시간 이내) : 주 센터와 동일한 수준의 자원을 대기 상태로 보유하며, 미러링을 통해 데이터의 최신 상태 유지
- Warm Site(수일~수주) : 중요성이 높은 자원만 부분적으로 보유
- Cold Site(수주~수개월) : 데이터만 원격지에 보관하고, 데이터를 근간으로 필요 자원을 조달하여 복구
5. 보안 용어
- 보안 공격 관련 용어
- 부 채널 공격 : 암호화 알고리즘의 물리적 특성을 측정하여 암호 키 등 내부 비밀 정보를 부 채널에서 획득하는 공격 기법
- 드라이브 바이 다운로드 : 해커가 악성 스크립트를 설치하고, 사용자 동의 없이 실행되어 의도된 서버로 연결하여 감염
- 워터링홀 : 특정인이 잘 방문하는 웹 사이트에 악성 코드를 심어 유인하여 감염
- 비즈니스 스캠 : 기업 이메일 계정 도용하여 무역 거래 대금을 가로채는 사이버 범죄
- 하트 블리드 : OpenSSL 암호화 라이브러리의 하트비트 모듈의 취약점을 이용하여 데이터를 탈취
- 크라임웨어 : 주요 금융정보 또는 인증정보를 탈취하거나 유출
- 토르 네트워크 : 네트워크 경로를 알 수 없도록 암호화 기법을 사용해 데이터를 전송하고, 익명으로 인터넷 사용
- MITM 공격 : 네트워크 통신을 조작하여 통신 내용을 도청 및 조작
- DNS 스푸핑 공격 : 공격 대상에게 전달되는 DNS 응답을 접촉하거나 캐시를 조작
- 포트 스캐닝 : 공격자가 침입 전 대상 호스트에 어떤 포트사 활성화되어 있는지 확인하여 취약점 분석
- 디렉터리 리스팅 취약점 : 서버의 미흡한 설정으로 인덱싱 기능이 활성화된 경우, 강제 브라우징을 통해 디렉토리 파악
- 리버스 쉘 공격 : 타깃 서버가 클라이언트로 접속해서 클라이언트가 타깃 서버의 쉘을 획득
- 익스플로잇 : 공격자가 의도한 동작이나 명령을 실행하도록 하는 코드 또는 행위
- 스턱스넷 공격 : 주요 산업 기반 시설의 제어 시스템에 침투해서 오작동을 일으키는 악성 코드 공격
- 크리덴셜 스터핑 : 다른 사이트의 로그인 정보를 다른 사이트에 대입하여 계정 탈취
- 스피어피싱 : 다른 곳에서 유출된 로그인 정보를 다른 사이트에 대입해 계정 탈취
- 스미싱 : 무자메시지를 이용해 개인 비밀정보나 소액 결제 유도
- 큐싱 : QR 코드를 통해 악성 앱을 내려받도록 유도
- 봇넷 : 악성 프로그램에 연결되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 상태
- APT 공격 : 특정 타깃을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법
- 공급망 공격 : 소프트웨어 개발사의 네트워크에 침투하여 소프트웨어 파일 변경 혹은 악의적인 코드 삽입
- 제로데이 공격 : 보안 취약점이 공표되기 전 해당 취약점을 악용해 이루어지는 보안 공격 기법
- 바이러스 : 사용자 컴퓨터 내에서 프로그램이나 실행 가능한 부분을 변형해서 감염시키는 프로그램
- 웜 : 스스로 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 소프트웨어 컴퓨터 프로그램
- 악성 봇 : 스스로 실행되지 못하고, 해커의 명령에 의해 원격에서 제어 또는 실행이 가능한 프로그램 또는 코드
- 랜섬웨어 : 감연된 시스템의 파일을 암호화하여 몸값을 요구하는 소프트웨어
- 이블 트윈 공격 : 무선 Wifi 피싱 기법
- 타이포스쿼팅 : 유사한 유명 도메인을 등록
- 사회공학 : 사람들의 심리와 행동 양식을 교묘하게 이용해서 원하는 정보를 얻는 공격 기법
- 주요 시스템 보안 공격기법
- 포맷 스트링 공격 : 포맷 스트링을 인자로 하는 함수를 이용해 공격
- 레이스 컨디션 공격 : 둘 이상의 프로세스나 스레드가 공유자원에 접근할 때 비정상적인 결과가 발생하는 상황
- 키로거 공격 : 키보드 움직임을 탐지해 개인의 중요한 정보를 해킹
- 루트킷 : 시스템 침입 후 차후의 침입을 위한 백도어
- 보안 공격 대응 관련 용아
- 보안 체계 및 모델
- CC : 정보기술의 보안 기능과 보증에 대한 평가 기준
- ISMS : 조직의 주요 정보자산을 보호하기 위해 정보보호 관리 절차 과정을 체계적으로 수립 및 관리
- PIMS : 기업이 보호조치 체계를 구축했는지 여부를 점검, 평가하여 기업에게 부여하는 인증제도
- PIA : 개인정보를 활용하는 새로운 정보시스템의 도입이나 기존 시스템 변경 시 개선 방안을 도출
- 사이버 킬체인 : 사이버 공격에 대해 7단계 프로세스별 공격 분석 및 대응을 체계화한 APT 공격 방어 분석 모델
- 취약점 식별
- OWASP Top 10 : 웹 애플리케이션 취약점 중 공격 빈도가 높고 위험한 10가지 취약점에 대한 대응 방안
- CVE : MITRE 사에서 공개적으로 알려진 소프트웨어의 보안 취약점을 표준화한 식별자 목록
- CWE : MITRE 사가 중심이 되어 소프트웨어에서 공통적으로 발생하는 약점을 체계적으로 분류한 목록
- 기술 및 시스템
- 핑거프린팅 : 콘텐츠 불법 배포자에 대한 위치 추적이 가능한 기술
- 워터마킹 : 디지털 콘텐츠에 저작권자 정보를 삽입한 콘텐츠 보호 기술
- 트러스트존 : 프로세서 안에 독립적인 보안 구역을 두어 중요한 정보를 보호하는 기술
- 장착형 인증 모듈 : 리눅스 시스템 내에서 사용되는 인증 라이브러리
- 허니팟 : 비정상적인 접근을 탐지하기 위해 의도적으로 설치해 둔 시스템
- 이상금융거래 탐지시스템 : 전자금융거래에 사용되는 의심 거래 탐지, 차단 시스템
- 사이버 위협정보 분석 공유시스템 : 사이버 위협정보를 체계적으로 수립해서 자동화된 정보공유를 할 수 있는 시스템
- TKIP : 임시 키 무결성 프로토콜
- 보안 체계 및 모델
# 회고
용어 넘 많아
'개인 스터디 > 정리' 카테고리의 다른 글
[정보처리기사 실기] 22. 애플리케이션 통합 테스트~23. 애플리케이션 성능 개선 (0) | 2025.05.21 |
---|---|
[정보처리기사 실기] 21. 애플리케이션 테스트 케이스 설계 (0) | 2025.05.19 |
[정보처리기사 실기] 19. 소프트웨어 개발 보안 설계 (0) | 2025.05.15 |
CS 공부 (0) | 2025.05.11 |
[정보처리기사 실기] 17. 개발 환경 구축~18. 모듈 구현 (0) | 2025.05.08 |