Notice
Recent Posts
Recent Comments
Link
IgnatiusHeo
구현단계 보안약점 제거 기준-주석문 안에 포함된 시스템 주요정보 본문
작성일: 230706
※ 본 게시글은 학습 목적으로 행정안전부·KISA의 소프트웨어 보안약점 진단 가이드, 소프트웨어 개발보안 가이드를 참고하여 작성하였습니다.
정리 내용: 소프트웨어 보안약점 진단 가이드(386~389p)
구분 | - 보안기능 |
설계단계 | - 암호키 관리 https://cryptocurrencyclub.tistory.com/104 |
개요 | 비밀번호를 주석문에 넣어두면 시스템 보안이 훼손될 수 있다. 소프트웨어 개발자가 편의를 위해서 주석문에 비밀번호를 적어둔 경우, 소프트웨어가 완성된 후에는 제거하는 것이 어렵게 된다. 또한, 공격자가 소스코드에 접근할 수 있다면,아주 쉽게 시스템에 침입할 수 있다. |
진단 세부사항 (설계단계) |
① DB데이터 암호화에 사용되는 암호키는 KISA의 암호이용안내서에 정의하고 있는 방법을 적용해야 한다. ㅇ 설정파일에 저장되는 중요정보가 암호화되어 저장되도록 설계되어 있는지 확인 ㅇ 설정파일에 저장된 중요정보의 암복호화에 사용되는 키는 설정파일과 별도의 위치에 저장되도록 설계 여부 확인 ㅇ 암호키를 안전하게 관리하기 위한 암호키 관리수준의 정의 여부 확인 ㅇ 암호키 생성 및 변경방법을 수립하고 암호키 백업정책의 정의 여부 확인 ㅇ 암호키 사용기간을 정의하고 사용기간 경과 시 대응 방법을 정의하고 있는지 확인 - 대칭키: 송신자2년, (송신자 사용기간 +3년) 이내 - 비대칭키: 암호화 공개키 2년, 개인키 2년, 검증용 공개키 1~3년, 서명용 개인키 키 크기 별 상이 ㅇ 암호키 사용 시 사용 종료 후 메모리를 0으로 초기화하도록 코딩 규칙의 정의 여부 확인 ② 중요기능에 대한 접근통제 정책을 수립하여 적용해야 한다. 중요기능에 대한 접근통제가 설계되어 있는지 확인한다. ㅇ 설정파일에 저장되는 중요정보가 암호화되어 저장되도록 설계되어 있는지 확인 ㅇ 설정파일에 저장된 중요정보의 암복호화에 사용되는 키는 설정파일과 별도의 위치에 저장되도록 설계되어 있는지 확인 |
보안대책 (구현단계) |
주석에는 ID, 비밀번호 등 보안과 관련된 내용을 기입하지 않는다. |
진단방법 (구현단계) |
① DB접속, 관리자 로그인 등이 구현된 코드를 확인하고, ② 주석을 확인하여 암호 포함여부 확인한다 |
다. 코드예제
ㅇ 분석
//주석문으로 DB연결 ID, 비밀번호의 중요한 정보를 노출시켜 안전하지 않다.
// DB연결 root / a1q2w3r3f2!@
1: con = DriverManager.getConnection(URL, USER, PASS);
ㅇ 수정
// ID, 비밀번호등의 중요 정보는 주석에 포함해서는 안된다.
1: con = DriverManager.getConnection(URL, USER, PASS);
ㅇ 분석
//주석문으로 DB연결 ID, 비밀번호의 중요한 정보를 노출시켜 안전하지 않다.
//DB연결 root / a1q2w3r3f2!@
1: conn = customGetConnection(USER, PASS);
ㅇ 수정
// ID, 비밀번호등의 중요 정보는 주석에 포함해서는 안된다.
1: conn = customGetConnection(USER, PASS);
ㅇ 분석
/* password is "admin" */
/* passwd is "admin" */
1: int verfiyAuth(char *ipasswd, char *orgpasswd){
2: char *admin = "admin";
3: if(strncmp(ipasswd, oprgpasswd, sizeof(ipasswd)) != 0){
4: printf("Authentication Fail!\n");
5: }
6: return admin;
ㅇ 수정
1: int verfiyAuth(char *ipasswd, char *orgpasswd){
2: char *admin = "admin";
3: if(strncmp(ipasswd, oprgpasswd, sizeof(ipasswd)) != 0){
4: printf("Authentication Fail!\n");
5: }
6: return admin;
7: }
끝.
'자격 > SW보안약점진단원' 카테고리의 다른 글
구현단계 보안약점 제거 기준-무결성 검사 없는 코드 다운로드 (0) | 2023.07.06 |
---|---|
구현단계 보안약점 제거 기준-솔트 없이 일방향 해쉬 함수 사용 (0) | 2023.07.06 |
구현단계 보안약점 제거 기준-사용자 하드디스크에 저장되는 쿠키를 통한 정보 노출 (0) | 2023.07.06 |
구현단계 보안약점 제거 기준-부적절한 인증서 유효성 검증 (0) | 2023.07.04 |
구현단계 보안약점 제거 기준-부적절한 전자서명 확인 (0) | 2023.07.04 |