[정보처리기사 필기] 소프트웨어 개발 보안 구축 - 148. 보안 기능

1. 보안 기능의 개요

  • 소프트웨어 개발의 구현 단계에서 코딩하는 기능
  • 인증, 접근제어, 기밀성, 암호화 등을 올바르게 구현하기 위한 보안 점검 항목들
  • 각 보안 기능들은 서비스 환경이나 취급 데이터에 맞게 처리될 수 있도록 구현해야 함
  • 소프트웨어의 기능 또는 데이터에 접근하려는 사용자별로 중요도를 구분하고, 차별화된 인증 방안을 적용
  • 인증된 사용자가 이용할 기능과 데이터에 대해 개별적으로 접근 권한을 부여하여 인가되지 않은 기능과 데이터로의 접근을 차단
  • 개인정보나 인증정보와 같은 중요한 정보의 변조, 삭제, 오남용 등을 방지하기 위해 안전한 암호화 기술을 적용

2. 보안 기능의 보안 약점

  • 적절한 인증 없이 중요기능 허용
    • 보안검사를 우회하여 인증과정 없이 중요한 정보 또는 기능에 접근 및 변경이 가능
    • 중요정보나 기능을 수행하는 페이지에서는 재인증 기능을 수행하도록하여 방지할 수 있음
  • 부적절한 인가
    • 접근제어 기능이 없는 실행경로를 통해 정보 또는 권한을 탈취할 수 있음
    • 모든 실행경로에 대해 접근제어 검사를 수행, 사용자에게는 반드시 필요한 접근 권한만을 부여하여 방지할 수 있음
  • 중요한 자원에 대한 잘못된 권한 설정
    • 권한 설정이 잘못된 자원에 접근하여 해당 자원을 임의로 사용할 수 있음
    • 소프트웨어 관리자만 자원들을 읽고 쓸 수 있도록 설정
    • 인가되지 않은 사용자의 중요 자원에 대한 접근 여부를 검사함으로써 방지할 수 있음
  • 취약한 암호화 알고리즘 사용
    • 암호화된 환경설정 파일을 해독하여 비밀번호 등의 중요정보를 탈취할 수 있음
    • 안전한 암호화 알고리즘을 이용하고 업무관련 내용이나 개인정보 등에 대해서는 IT보안인증사무국이 안정성을 확인한 암호모듈을 이용함으로써 방지할 수 있음
  • 중요정보 평문 저장 및 전송
    • 암호화되지 않은 평문 데이터를 탈취하여 중요한 정보를 획득할 수 있음
    • 중요한 정보를 저장하거나 전송할 때는 반드시 암호화 과정을 거치도록 하고, HTTPS 또는 SSL과 같은 보안 채널을 이용함으로써 방지할 수 있음
      • HTTPS : 웹브라우저와 서버 간의 안전한 통신을 위해 HTTP와 암호통신규약을 결합한 것
      • SSL : 데이터를 송, 수신하는 두 컴퓨터 사이에 위치하여 인증, 암호화, 무결성을 보장하는 업계 표준 프로토콜
  • 하드코드된 비밀번호
    • 소스코드 유출 시 내부에 하드코드된 패스워드를 이용하여 관리자 권한을 탈취할 수 있음
      • 하드코드 ㅣ 데이터를 코드 내부에 직접 입력하여 프로그래밍하는 방식
    • 패스워드는 암호화하여 별도의 파일에 저장
    • 디폴트 패스워드나 디폴드 키의 사용을 피함으로써 방지할 수 있음
      • 디폴트 패스워드 : 사용자를 등록하기 전에 설치 권한을 획득하기 위해 사용되는 초기 설정 암호