IT 기술/보안

시큐어 코딩 (Secure Coding)

gooooooood 2024. 9. 26. 12:42
반응형

Ⅰ. 소프트웨어 개발 보안, Secure Coding

가. Secure Coding의 개념

- 소프트웨어 보안성 강화를 위해 소프트웨어 소스코드 구현 과정에서 보안 취약점을 배제하기 위한 개발 방법

 

나. Secure Coding의 목적

- 사이버 공격 예방: 사이버 공격 대부분은 응용프로그램의 취약점 공격

- 취약점 수정 비용 절감: 개발 완료 전 취약점 조기 발견 및 수정으로 비용 절감

- 안정성 및 신뢰성 확보: 개발단계부터 보안 고려로 소프트웨어 안정성 및 신뢰성 확보

 

Ⅱ. Secure Coding의 적용 범위 및 사례

가. Secure Coding 적용 범위

적용 범위 취약점 적용 방법
입력 검증/표현 - SQL Injection
- XSS 취약점
- 쿼리 예약어 필터링
- HTML 화이트리스트
보안 기능 - 무인증 사용
- 취약한 암호화
- 중요정보 재인증
- AES-384, SHA-512
시간 및 상태 - 검사/사용 시검
- 반복/재귀문
- 공유자원 동기화
- 호출 횟수 제한
에러 처리 - 오류정보 노출
- 부적절한 예외
- 오류 메시지에 최소한의 정보 노출
코드 오류 - Null Pointer
- 자원 미반환
- 참조 전 Null 검사
- 사용 후 자원 해제
캡슐화 - 내부정보 노출
- 디버그 코드
- 지역변수 선언
- 배포전 디버그 삭제
API 오용 - Lookup 의존
- 취약한 API
- 설계된 목적 사용
- 안전한 함수 사용

 

 

나. Secure Coding 사례

취약점 사례
SQL 삽입
크로스 사이트 스크립트
하드 코드 패스워드
오류 메시지 정보 노출

 

Ⅲ. Secure Coding 활성화 방안

- 최소한의 개발 보안 의무화 및 정부 주도 관리 필요

 

 

[참조]

[1] https://www.lgcns.com/blog/cns-tech/security/17629/

[2] https://blog.skby.net/%EC%8B%9C%ED%81%90%EC%96%B4%EC%BD%94%EB%94%A9secure-coding/

반응형