소프트웨어 개발 보안 구축
SW개발 보안 설계
보안기능의 개념
- 소프트웨어 개발의 구현 단계에서 코딩하는 기능인 인증, 접근제어, 기밀성, 암호화등을 올바르게 구현하기 위한 보안 점검 항목들
- 각 보안 기능들은 서비스 환경이나 취급 데이터에 맞게 처리될 수 있도록 구현
- 소프트웨어 기능 또는 데이터에 접근하려는 사용자별로 중요도구분하고, 차별화된 인증 방안 적용
- 개인정보나 인증정보와 같은 중요한 정보의 변조, 삭제, 오남용 등을 방지하기 위해 안전한 암호화 기술 적용
보안기능의 보안 약점 종류
- 적절한 인증 없이 중요기능 허용
- 보안검사를 우회하여 인증과정 없이 중요한 정보 또는 기능에 접근 및 변경
- 중요정보나 기능을 수행하는 페이지에서 재인증 기능을 수행하도록 하여 방지
- 중요한 자원에 대한 잘못된 권한 설정
- 권한 설정이 잘못된 자원에서 접근하여 해당 자원을 임의로 사용
- 인가되지 않은 사용자의 중요 자원에 대한 접근 여부를 검사하므로써 방지
- 부적절한 인가
- 접근제어 기능이 없는 실행경로를 통해 정보 또는 권한을 탈취
- 모든 실행경로에 접근 제어 검사 수행하고 사용자에게는 필요한 접근권한만 부여함으로써 방지
- 하드코드가된 비밀번호
- 소스코드 유출 시 내부에 하드코드 된 패스워드를 이용하여 관리자 권한 탈취
- 패스워드는 암호화하여 별도의 파일에 저장하고 디폴트 패스워드 사용을 피함
- 취약한 암호화 알고리즘 사용
- 암호화된 환경설정 파일을 해독하여 비밀번호 등의 중요정보를 탈취
- 안전한 암호화 알고리즘을 이용하고 업무관련 내용이나 개인정보등은 암호모듈을 이용함으로써 방지
- 중요정보 평문 저장 및 전송
- 암호화되지 않은 평문 데이터를 탈취하여 중요한 정보를 획득
- HTTPS또는 SSL과 같은 보안 프로토콜을 이용함으로써 방지