본문 바로가기
공부/KISA

하드코드된 비밀번호 - KISA 소프트웨어 개발 보안 가이드

by Skogkatt의 개인 블로그 2020. 7. 21.
반응형

https://www.kisa.or.kr/public/laws/laws3.jsp

 

기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원

기술안내서 가이드 한국인터넷진흥원 기술안내서 가이드 입니다. 게시판 목록 보기 기술안내서 가이드 표 대분류 소분류 기술안내서 가이드 대상 수준 인터넷 진흥 및 이용 활성화 인터넷 진흥

www.kisa.or.kr


구현 단계 시큐어코딩 가이드 - 보안 기능 - 하드코드 된 비밀번호

가. 개요

  • 프로그램 코드 내부에 하드코드된 패스워드를 포함하고, 이를 이용하여 내부 인증에 사용하거나 외부 컴포넌트와 통신을 하는 경우, 관리자 정보가 노출될 수 있어 위험하다. 또한, 코드 내부에 하드코드 된 패스워드가 인증 실패를 야기하는 경우, 시스템 관리자가 그 실패의 원인을 파악하기 쉽지 않은 단점이 있다.

나. 보안대책

  • 패스워드는 암호화하여 별도의 파일에 저장하여 사용하고, SW 설치 시 사용하는 디폴트 패스워드, 키 등을 사용하는 대신 "최초-로그인" 모드를 두어 사용자가 직접 패스워드나 키를 입력하도록 설계 한다

다. 코드 예제

JAVA
더보기

데이터베이스 연결을 위한 패스워드를 소스코드 내부에 상수 형태로 하드코딩하는 경우, 접속 정보 가 노출될 수 있어 위험하다

패스워드는 안전한 암호화 방식으로 암호화하여 별도의 분리된 공간(파일)에 저장해야 하며, 암호화된 패스워드를 사용하기 위해서는 복호화 과정을 거쳐야 한다.

 

C#
더보기

Credential 객체를 생성하기 위한 패스워드를 소스코드 내부에 상수 형태로 하드코딩 하는 경우, 접속 정보가 노출될 수 있어 위험하다.

암호화된 패스워드로 Credential 객체를 생성한다.

 

C
더보기

하드코드 된 패스워드를 바로 사용하는 C예제 코드이다.

패스워드는 코드 상에서 보이지 않게 사용해야 한다. 아래의 예시는 환경 변수를 이용하여 패스워드를 사용한다.


참고자료

반응형

댓글