시큐어 코딩 가이드
설계 및 구현 단계에서 해킹 등의 공격을 유발할 가능성이 있는 잠재적인 보안 취약점을 사전에 제거하고 외부 공격으로부터 안전한 소포트웨어를 개발하는 기법
입력데이터 검증 및 표현
입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해아 하는 보안 점검 항목들
입력데이터 검증 및 표현 취약점
XSS(Cross Site Script)
검증되지 않은 외부 입력 데이터가 포함된 웹페이지가 전송되는 경우, 사용자가 해당 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트기 실행 되는 공격
- Stored XSS : 방문자들이 악성 스크립트가 포함된 페이지를 읽어 봄과 동시에 악성 스크립트가 브라우저에서 실행되면서 감염되는 기법
- Reflected XSS : 공격용 악성 URL을 생성한 후 이메일로 사용자에게 전송하면 사용자가 URL 클릭 시 공격 스크립트가 피해자로 반사되어 접속 사이트에 민감정보를 공격자에게 전송하는 방법
- DOM XSS : 공격자는 DOM 기반 XSS 취약점이 있는 브라우저를 대상으로 조작된 URL을 이메일을 통해 발송하고 피해자가 URL 클릭 시 공격 피해를 당하는 기법
SQL 삽입(SQL Injection)
- From SQL Injection : HTML Form 기반 인증을 담당하는 애플리케이션의 취약점이 있는 경우 사용자 인증을 위한 쿼리 문의 조건을 임의로 조작하여 인증을 우회하는 기법
- Union Injection : 쿼리의 UNION 연산자를 이용하여 한 쿼리의 결과를 다른 쿼리의 결과에 결합하여 공격하는 기법
- Stored Procedure Injection : 저장 프로시저를 이용하여 공격하는 기법
- Mass Injection : 한 번의 공격으로 대량의 DB 값이 변조되어 홈페이지에 치명적인 영향을 미치는 공격기법
- Error-Based Injection : DB 쿼리에 대한 에러값을 기반으로 한 단계식 점직적으로 DB 정보를 획득할 수 있는 공격기법
- Blind Injection : 쿼리 결과의 참과 거짓을 통해 의도하지 않은 SQL 문을 실행함으로써 데이터베이스를 비정상적으로 공격하는 기법
사이트 간 요청 위조(CSRF : Cross Site Request Forgery)
사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
보안 기능
소프트웨어 개발 단계에서 읹증, 접근제어, 기밀성, 암호화, 권한 관리 등을 적절하게 구현하기 위한 보안 점검 항목들
보안 기능 취약점
- 적절한 인증 없이 중요 기능 허용
- 부적절한 인가
- 취약한 암호화 알고리즘 사용
- 중요 정보 평문 저장 및 전송
- 하드 코드 된 비밀번호
- 취약한 패스워드 요구 조건
에러 처리
프로그램 실행 시 발생하는 에러를 예외 처리하지 못하거나 에러 정보에 중요한 정보가 포함 될 때 발생할 수 있는 취약점을 예방하기 위한 보안 점검 항목들
에러 처리 취약점
- 오류 메시지 통한 정보 노출
- 오류 상황 대응 부재
- 적절하지 않은 예외 처리
세션 통제
다른 세션 간 데이터 공유 등 세션과 관련되어 발생할 수 있는 취약점을 예방하기 위한 보안 점검 항목들
세션 통제 취약점
- 불충분한 세션 관리
코드 오류
소프트웨어 구현 단계에서 프로그램 변환 시 오류, 서버의 리소스 자원의 부적절한 반환 등 개발자가 흔하게 실수하는 프로그램 오류를 예방하기 위한 보안 점검 항목들
코드 오류 취약점
- 널 포인터 역참조
- 정수를 문자로 변환
- 부적절한 자원 해제
- 초기화되지 않은 변수 사용
캡슐화
은닉이 필요한 중요한 데이터와 필요한 기능성을 불충분하게 캡슐화했을 때 인가되지 않은 사용자에게 데이터 유출, 권한 문제 등이 발생할 수 있는 보안 취약점 예방을 위한 보안 검증 항목들
캡슐화 취약점
- 잘못된 세션에 의한 데이터 정보 노출
- 제거되지 않고 남은 디버그 코드
- 민감한 데이터를 가진 내부 클래스 사용
- 시스템 데이터 정보 노출
API 오용
서비스에서 제공되는 이용에 반하는 방법으로 API를 이용하거나 보안에 취약한 API를 오용하여 발생할 수 있는 보안 취약점 예방을 위한 보안 검증 항목들
API 오용 취약점
- DNS Lookup에 의존한 보안 결정
- 위험하다고 알려진 함수 사용
- 널 매개변수 미검사
'CS' 카테고리의 다른 글
애플리케이션 통합 테스트 (0) | 2023.04.10 |
---|---|
소프트웨어 테스트 원리와 테스트 유형 (0) | 2023.04.10 |
암호 알고리즘과 데이터 암호화 전송 (0) | 2023.04.09 |
서버 인증 및 접근 통제 (0) | 2023.04.09 |
소프트웨어 개발 보안을 위한 공격기법 개념 (0) | 2023.04.09 |
댓글