소프트웨어 개발 보안
Software development security| 시리즈의 일부 |
| 정보 보안 |
|---|
| 관련 보안 카테고리 |
| 위협 |
|
| 방어. |
소프트웨어 개발 프로세스의 일부인 보안은 인력 및 실무와 관련된 지속적인 프로세스로 애플리케이션의 기밀성, 무결성 및 가용성을 보장합니다.시큐어 소프트웨어는, 시큐러티가 짜넣어져 있기 때문에, 시큐러티를 [1]염두에 두어 소프트웨어를 개발하는 시큐러티 대응 소프트웨어 개발 프로세스의 결과입니다.
보안은 소프트웨어 개발 라이프 사이클(SDLC)의 모든 단계에서 특히 중요한 애플리케이션이나 기밀 정보를 처리하는 애플리케이션에서 계획 및 관리하면 가장 효과적입니다.
소프트웨어 개발 보안에 대한 해결책은 기술 그 이상입니다.
소프트웨어 개발 과제
기술이 발전함에 따라 애플리케이션 환경은 더욱 복잡해지고 애플리케이션 개발 보안은 더욱 어려워집니다.애플리케이션, 시스템 및 네트워크는 항상 악성 코드 또는 서비스 거부와 같은 다양한 보안 공격을 받습니다.애플리케이션 개발의 보안 측면에서의 과제에는 바이러스, 트로이 목마, Logic Bombs, 웜, 에이전트, [2]애플릿 등이 있습니다.
애플리케이션에는 소프트웨어 엔지니어가 의도적으로 또는 부주의하게 도입할 수 있는 보안 취약성이 포함될 수 있습니다.
소프트웨어, 환경 및 하드웨어 제어가 필요하지만 부적절한 프로그래밍 관행에서 발생하는 문제를 방지할 수는 없습니다.제한 및 시퀀스 검사를 사용하여 사용자의 입력을 검증하면 데이터 품질이 향상됩니다.프로그래머가 베스트 프랙티스를 따를 수도 있지만, 애플리케이션은 예측 불가능한 상황으로 인해 실패할 수 있습니다.따라서 먼저 감사 준비를 위해 캡처할 수 있는 모든 정보를 기록함으로써 예기치 않은 장애를 성공적으로 처리해야 합니다.보안이 강화되면 상대적인 비용과 관리 오버헤드도 증가합니다.
응용 프로그램은 일반적으로 고급 프로그래밍 언어를 사용하여 개발되며, 그 자체로 보안에 영향을 미칠 수 있습니다.안전한 애플리케이션 및 시스템을 만들기 위한 소프트웨어 개발 프로세스에 필수적인 핵심 활동에는 개념 정의, 기능 요건, 제어 사양, 설계 검토, 코드 검토 및 현장 조사, 시스템 테스트 검토, 유지보수 및 변경 관리 등이 포함됩니다.
안전한 소프트웨어를 구축하는 것은 소프트웨어 엔지니어의 책임일 뿐만 아니라 관리, 프로젝트 매니저, 비즈니스 분석가, 품질보증 매니저, 기술 설계자, 보안 스페셜리스트, 애플리케이션 소유자 및 개발자를 포함한 이해관계자의 책임이기도 합니다.
기본 원칙
소프트웨어 보안에는 몇 가지 기본 지침이 있습니다.소프트웨어 보안에는 이러한 정보와 소프트웨어 구현 방법에 대한 이해관계자의 지식이 필수적입니다.여기에는 다음이 포함됩니다.
- 공개로부터의 보호
- 변경으로부터의 보호
- 파괴로부터의 보호
- 누가 요청합니까?
- 요청자가 가지고 있는 권리와 특권은 무엇입니까?
- 역사적 증거 구축 능력
- 구성, 세션 및 오류/예외 관리
기본 프랙티스
다음은 소프트웨어 개발자에게 보다 구체적인 권장되는 웹 보안 방법 중 일부를 나열합니다.
- 클라이언트 측 및 서버 측 입력 삭제
- 요청/응답 인코딩
- 도메인 엔트리에 HTTPS 사용
- 현재 암호화 및 해시 알고리즘만 사용
- 디렉터리 나열 허용 안 함
- 쿠키에 중요한 데이터 저장 안 함
- 세션의 임의성 확인
- 쿠키에 보안 플래그 및 HttpOnly 플래그 설정
- SSL이 아닌 TLS 사용
- 강력한 암호 정책 설정
- 양식의 숨겨진 필드에 중요한 정보 저장 안 함
- 파일 업로드 기능 확인
- 보안 응답 헤더 설정
- 서드파티 라이브러리가 보호되어 있는지 확인합니다.
- 웹 서버 정보 숨기기
보안 테스트
보안 테스트의 일반적인 어트리뷰트에는 인증, 인가, 기밀성, 가용성, 무결성, 거부 없음 및 복원력이 포함됩니다.보안 테스트는 시스템이 권한 없는 사용자의 리소스 및 데이터 접근을 방지하도록 하기 위해 필수적입니다.일부 응용 프로그램 데이터는 일련의 서버 및 네트워크 장치를 통해 인터넷을 통해 전송됩니다.이것은 부도덕한 해커들에게 충분한 기회를 준다.
요약
모든 보안 시스템은 소프트웨어, 하드웨어, 시스템 및 네트워크 내에서 보안 제어를 구현합니다.각 컴포넌트 또는 프로세스에는 조직의 가장 귀중한 자원인 데이터를 보호하기 위한 격리 계층이 있습니다.보안을 확보하고 무단 액세스를 방지하기 위해 애플리케이션 개발 프로세스에 통합할 수 있는 다양한 보안 제어가 있습니다.
레퍼런스
- ^ 소스에서의 엔터프라이즈 웹 애플리케이션 보호:응용 프로그램보안 관점, OWASP
- ^ 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를 엽니다.