소프트웨어 개발 보안

Software development security

소프트웨어 개발 프로세스의 일부인 보안은 인력 및 실무와 관련된 지속적인 프로세스로 애플리케이션의 기밀성, 무결성 및 가용성을 보장합니다.시큐어 소프트웨어는, 시큐러티가 짜넣어져 있기 때문에, 시큐러티를 [1]염두에 두어 소프트웨어를 개발하는 시큐러티 대응 소프트웨어 개발 프로세스의 결과입니다.

보안은 소프트웨어 개발 라이프 사이클(SDLC)의 모든 단계에서 특히 중요한 애플리케이션이나 기밀 정보를 처리하는 애플리케이션에서 계획 및 관리하면 가장 효과적입니다.

소프트웨어 개발 보안에 대한 해결책은 기술 그 이상입니다.

소프트웨어 개발 과제

기술이 발전함에 따라 애플리케이션 환경은 더욱 복잡해지고 애플리케이션 개발 보안은 더욱 어려워집니다.애플리케이션, 시스템 및 네트워크는 항상 악성 코드 또는 서비스 거부같은 다양한 보안 공격을 받습니다.애플리케이션 개발의 보안 측면에서의 과제에는 바이러스, 트로이 목마, Logic Bombs, 웜, 에이전트, [2]애플릿 등이 있습니다.

애플리케이션에는 소프트웨어 엔지니어가 의도적으로 또는 부주의하게 도입할 수 있는 보안 취약성이 포함될 수 있습니다.

소프트웨어, 환경 및 하드웨어 제어가 필요하지만 부적절한 프로그래밍 관행에서 발생하는 문제를 방지할 수는 없습니다.제한 및 시퀀스 검사를 사용하여 사용자의 입력을 검증하면 데이터 품질이 향상됩니다.프로그래머가 베스트 프랙티스를 따를 수도 있지만, 애플리케이션은 예측 불가능한 상황으로 인해 실패할 수 있습니다.따라서 먼저 감사 준비를 위해 캡처할 수 있는 모든 정보를 기록함으로써 예기치 않은 장애를 성공적으로 처리해야 합니다.보안이 강화되면 상대적인 비용과 관리 오버헤드도 증가합니다.

응용 프로그램은 일반적으로 고급 프로그래밍 언어를 사용하여 개발되며, 그 자체로 보안에 영향을 미칠 수 있습니다.안전한 애플리케이션 및 시스템을 만들기 위한 소프트웨어 개발 프로세스에 필수적인 핵심 활동에는 개념 정의, 기능 요건, 제어 사양, 설계 검토, 코드 검토 및 현장 조사, 시스템 테스트 검토, 유지보수 및 변경 관리 등이 포함됩니다.

안전한 소프트웨어를 구축하는 것은 소프트웨어 엔지니어의 책임일 뿐만 아니라 관리, 프로젝트 매니저, 비즈니스 분석가, 품질보증 매니저, 기술 설계자, 보안 스페셜리스트, 애플리케이션 소유자 및 개발자를 포함한 이해관계자의 책임이기도 합니다.

기본 원칙

소프트웨어 보안에는 몇 가지 기본 지침이 있습니다.소프트웨어 보안에는 이러한 정보와 소프트웨어 구현 방법에 대한 이해관계자의 지식이 필수적입니다.여기에는 다음이 포함됩니다.

  • 공개로부터의 보호
  • 변경으로부터의 보호
  • 파괴로부터의 보호
  • 누가 요청합니까?
  • 요청자가 가지고 있는 권리와 특권은 무엇입니까?
  • 역사적 증거 구축 능력
  • 구성, 세션 및 오류/예외 관리

기본 프랙티스

다음은 소프트웨어 개발자에게 보다 구체적인 권장되는 웹 보안 방법 중 일부를 나열합니다.

  • 클라이언트 측 및 서버 측 입력 삭제
  • 요청/응답 인코딩
  • 도메인 엔트리에 HTTPS 사용
  • 현재 암호화 및 해시 알고리즘만 사용
  • 디렉터리 나열 허용 안 함
  • 쿠키에 중요한 데이터 저장 안 함
  • 세션의 임의성 확인
  • 쿠키에 보안 플래그 및 HttpOnly 플래그 설정
  • SSL이 아닌 TLS 사용
  • 강력한 암호 정책 설정
  • 양식의 숨겨진 필드에 중요한 정보 저장 안 함
  • 파일 업로드 기능 확인
  • 보안 응답 헤더 설정
  • 서드파티 라이브러리가 보호되어 있는지 확인합니다.
  • 웹 서버 정보 숨기기

보안 테스트

보안 테스트의 일반적인 어트리뷰트에는 인증, 인가, 기밀성, 가용성, 무결성, 거부 없음 및 복원력이 포함됩니다.보안 테스트는 시스템이 권한 없는 사용자의 리소스 및 데이터 접근을 방지하도록 하기 위해 필수적입니다.일부 응용 프로그램 데이터는 일련의 서버 및 네트워크 장치를 통해 인터넷을 통해 전송됩니다.이것은 부도덕한 해커들에게 충분한 기회를 준다.

요약

모든 보안 시스템은 소프트웨어, 하드웨어, 시스템네트워크 내에서 보안 제어를 구현합니다.각 컴포넌트 또는 프로세스에는 조직의 가장 귀중한 자원인 데이터를 보호하기 위한 격리 계층이 있습니다.보안을 확보하고 무단 액세스를 방지하기 위해 애플리케이션 개발 프로세스에 통합할 수 있는 다양한 보안 제어가 있습니다.

레퍼런스

  1. ^ 소스에서의 엔터프라이즈 웹 애플리케이션 보호:응용 프로그램보안 관점, OWASP
  2. ^ Stewart, James (2012). CISSP Certified Information Systems Security Professional Study Guide Sixth Edition. Canada: John Wiley & Sons, Inc. pp. 275–319. ISBN 978-1-118-31417-3.
  • Stewart, James(2012).CISSP 인정 정보 시스템보안 프로페셔널스터디 가이드 제6판캐나다: John Wiley & Sons, Inc., 275–319페이지.ISBN 978-1-118-31417-3.
  • Lieben Desmet, Martin Johns, Benjamin Livshits 및 Andrei Sabelfeld가 편집한 Dagstuhl 세미나 12401 Web 어플리케이션 보안 보고서, http://research.microsoft.com/en-us/um/people/livshits/papers%5Ctr%5Cdagrep_s12401.pdf
  • Web Application Security Consortium, Jeremia Grossman 2005 웹 애플리케이션 보안을 위한 80/20 규칙, http://www.webappsec.org/projects/articles/013105.shtml
  • Wikipedia 웹 응용 프로그램 보안 페이지, 웹 응용 프로그램 보안
  • Web Security Wiki 페이지, https://www.w3.org/Security/wiki/Main_Page
  • Wikipedia Web Security 취약성 페이지, 카테고리:웹 보안 악용
  • 웹 애플리케이션 보안 프로젝트(OWASP), https://www.owasp.org/index.php/Main_Page를 엽니다.
  • Wikipedia 네트워크 보안 페이지, 네트워크 보안
  • 웹 애플리케이션 보안 프로젝트(OWASP) 웹 사이트(https://www.owasp.org/images/8/83/Securing_Enterprise_Web_Applications_at_the_Source.pdf를 엽니다.