라스컴 시큐리티
HOME
  • 취약점진단대상
  • 소스코드 취약점 진단
  • 취약점진단대상

    소스코드 취약점 진단

    소스코드 취약점 진단

    시큐어코딩을 위한 소스코드 보안 취약점 진단은 보안 전문가가 자동화된 진단 툴과 수동 작업으로
    소스코드에 내재하고 있는 보안 취약점을 탐지하여 개발된 소프트웨어의 안전성과 신뢰성을 확보할 수 있는 진단 서비스입니다.

    소프트웨어 결함, 오류 등의 잠재적 보안 취약점을 소스코드 보안 취약점 진단을 통해 원인을 파악하고 위협 요소를 제거합니다.

    개요

    시큐어코딩을 위한 소스코드 보안 취약점 진단은 소프트웨어 보안을 강화하는 데 중요한 역할을 합니다. 이를 통해 개발된 소프트웨어의 안전성과 신뢰성을 확보할 수 있습니다.
    소스코드 취약점 진단은 다양한 방법을 사용하여 소프트웨어의 취약점을 확인하고 제거하는 프로세스입니다.

    소스코드 취약점 진단을 통해 입/출력 값의 검증과 중요한 시큐어 코딩 기법의 적용 여부를 확인합니다.
    이는 사용자로부터의 입력값이 적절하게 검증되고 처리되는지 확인하여 악의적인 입력에 대한 대비를 강화하고, 시스템 내부에서 발생할 수 있는 잠재적인 보안 취약점을 제거하는 데 도움이 됩니다.

    또한, 개발 시 작성된 서비스 관련 문서를 활용하여 보안 취약점 진단을 실시합니다.
    연동 규격서, 서버 규약서, UI 문서, 아키텍처 및 플로우 문서 등을 분석하여 시스템의 전반적인 구조와 동작을 이해하고 보안 약점을 식별합니다.
    이를 통해 시스템 전체적인 보안 취약점을 평가하고 보완할 수 있습니다.

    점검 기준

    • 주요정보통신
      기반시설 취약점
      분석 평가 기준
    • OWASP Top 10
    • 소프트웨어 개발
      보안 가이드
      49개 항목
    • 전자금융 감독규정
      8대 취약점
    • CWE/SANS TOP 25
    • 국내·외
      컴플라이언스 지원
    • Android, ASP, ASP.NET, C/C++, HTML, IOS, JAVA, JAVASCRIPT, JSP, SWIFT, VBSCRIPT 등 점검 언어 지원

    관련 규정

    행정자치부 고시 제2015-45호 행정기관 및 공공기관 정보시스템 구축 〮운영 지침

    조항 설명 및 해설
    제 50조
    (소프트웨어 개발보안 원칙)
    신규개발의 경우 : 소스코드 전체 / 설계단계 산출물
    유지보수의 경우 : 유지보수로 인해 변경된 산출물 및 소스코드 전체
    제 51조
    (소프트웨어 개발보안 활동)
    제안서 평가 시 소프트웨어 개발보안을 위해 소프트웨어 보안약점 진단도구 사용 여부 (국가정보원 CC인증 항목)
    제 52조
    (보안약점 진단기준)
    소프트웨어 보안약점을 필수 진단항목으로 포함
    제 53조
    (보안약점 진단절차)
    소프트웨어 보안약점 진단도구를 사용할 경우, 미래창조과학부 장관이 고시한 “정보보호시스템 평가․인증 지침”에 따라 국가정보원장이 인증한 보안약점 진단도구를 사용하여야 한다. (국정원 EAL2 CC인증)

    점검 항목

    구분 항목
    입력데이터 검증 및 표현 SQL 삽입 코드 삽입 경로 조작 및 자원 삽입
    크로스사이트 스크립트 운영체제 명령어 삽입 위험한 형식 파일 업로드
    신뢰 되지 않는 URL 주소로 자동접속 연결 부적절한 XML 외부 개체 참조 XML 삽입
    LDAP 삽입 크로스사이트 요청 위조 서버사이드 요청 위조
    HTTP 응답분할 정수형 오버플로우 보안기능 결정에 사용되는 부적절한 입력값
    메모리 버퍼 오버플로우 포맷 스트링 삽입
    보안기능 적절한 인증 없는 중요기능 허용 부적절한 인가 중요한 자원에 대한 잘못된 권한 설정
    취약한 암호화 알고리즘 사용 암호화되지 않은 중요 정보 하드코드된 중요정보
    충분하지 않은 키 길이 사용 적절하지 않은 난수 값 사용 취약한 비밀번호 허용
    부적절한 전자서명 확인 부적절한 인증서 유효성 검증 사용자 하드디스크에 저장되는 쿠키를 통한
    정보 노출
    주석문 안에 포함된 시스템 주요정보 무결성 검사 없는 코드 다운로드
    반복된 인증시도 제한 기능 부재 솔트 없이 일방향 해쉬함수 사용
    시간 및 상태
    경쟁조건: 검사 시점과 사용 시점(TOCTOU) 종료되지 않는 반복문 또는 재귀 함수
    에러처리 오류 메시지 정보노출 오류상황 대응 부재 부적절한 예외 처리
    코드오류 Null Pointer 역참조 부적절한 자원 해제 해제된 자원 사용
    초기화되지 않은 변수 사용 신뢰할 수 없는 데이터의 역직렬화
    캡슐화
    잘못된 세션에 의한 데이터 정보 노출 제거되지 않고 남은 디버그 코드
    Private 배열에 Public 데이터 할당 Public 메소드부터 반환된 Private 배열
    API 오용
    DNS lookup에 의존한 보안결정 취약한 API 사용
    *소프트웨어 개발 보안 가이드 49개 항목에 따른 점검 수행

    기대 효과

    • - 신규 개발 및 운영 중인 SW의 취약점을 제거하고 안전성 증대
    • - 선제적인 취약점 대응을 통해서 서비스 가용성, 무결성, 및 기밀성 침해 방지 효과
    • - 소스코드 취약점 점검 후 시큐어 코딩 대책을 제시함으로써 향후 동일한 취약점 재발 방지
    • - 코드에서 발생하는 프로그래밍 오류나 잠재적인 버그를 식별하고 수정하여 소프트웨어의 품질과 신뢰성 향상
    • - 소스코드 취약점 진단을 통해 보안 규정을 준수할 수 있으며, 보안 사고로 인한 재정적 손실을 줄임