OWASP 상위 10대 보안 위험 | 개요

차례

OWASP 상위 10개 개요

OWASP 란 무엇입니까?

OWASP는 웹 앱 보안 교육을 전담하는 비영리 단체입니다. 

OWASP 학습 자료는 해당 웹 사이트에서 액세스할 수 있습니다. 그들의 도구는 웹 애플리케이션의 보안을 개선하는 데 유용합니다. 여기에는 문서, 도구, 비디오 및 포럼이 포함됩니다.

OWASP Top 10은 오늘날 웹 앱의 주요 보안 문제를 강조하는 목록입니다. 그들은 모든 회사가 보안 위험을 줄이기 위해 프로세스에 이 보고서를 포함할 것을 권장합니다.. 다음은 OWASP Top 10 2017 보고서에 포함된 보안 위험 목록입니다.

SQL 주입

SQL 인젝션은 공격자가 애플리케이션의 프로그램을 방해하기 위해 웹 앱에 부적절한 데이터를 보낼 때 발생합니다..

SQL 주입의 예:

공격자는 사용자 이름 일반 텍스트가 필요한 입력 양식에 SQL 쿼리를 입력할 수 있습니다. 입력 양식이 보안되지 않은 경우 SQL 쿼리가 실행됩니다. 이것 추천된다 SQL 주입으로.

코드 주입으로부터 웹 애플리케이션을 보호하려면 개발자가 사용자 제출 데이터에 입력 유효성 검사를 사용하는지 확인하십시오.. 여기서 유효성 검사는 유효하지 않은 입력을 거부하는 것을 의미합니다. 데이터베이스 관리자는 또한 데이터베이스의 양을 줄이기 위한 제어를 설정할 수 있습니다. 정보 그 수 공개되다 인젝션 공격에서.

SQL 주입을 방지하기 위해 OWASP는 데이터를 명령 및 쿼리와 분리하여 보관할 것을 권장합니다. 선호되는 옵션은 보안을 사용하는 것입니다. API 인터프리터 사용을 방지하거나 객체 관계형 매핑 도구(ORM)로 마이그레이션.

깨진 인증

인증 취약성으로 인해 공격자는 관리자 계정을 사용하여 사용자 계정에 액세스하고 시스템을 손상시킬 수 있습니다.. 사이버 범죄자는 스크립트를 사용하여 시스템에서 수천 개의 암호 조합을 시도하여 어떤 것이 작동하는지 확인할 수 있습니다.. 사이버 범죄자가 들어오면 사용자의 신원을 위조하여 기밀 정보에 대한 액세스 권한을 부여할 수 있습니다..

자동 로그인을 허용하는 웹 애플리케이션에 손상된 인증 취약성이 존재합니다. 인증 취약성을 수정하는 일반적인 방법은 다단계 인증을 사용하는 것입니다. 또한 로그인 속도 제한은 포함되다 무차별 대입 공격을 방지하기 위해 웹 앱에서.

민감한 데이터 노출

웹 응용 프로그램이 민감한 공격자를 보호하지 않으면 접근하여 이득을 얻을 수 있습니다. 경로 공격은 민감한 정보를 훔치는 데 널리 사용되는 방법입니다. 모든 민감한 데이터가 암호화되면 노출 위험이 최소화될 수 있습니다. 웹 개발자는 민감한 데이터가 브라우저에 노출되거나 불필요하게 저장되지 않도록 해야 합니다.

XML 외부 엔티티(XEE)

사이버 범죄자는 XML 문서 내에 악의적인 XML 콘텐츠, 명령 또는 코드를 업로드하거나 포함할 수 있습니다.. 이렇게 하면 애플리케이션 서버 파일 시스템에 있는 파일을 볼 수 있습니다. 액세스 권한이 있으면 서버와 상호 작용하여 SSRF(서버 측 요청 위조) 공격을 수행할 수 있습니다..

XML 외부 엔터티 공격은 ~에 의해 막히다 웹 애플리케이션이 JSON과 같은 덜 복잡한 데이터 유형을 허용하도록 허용. XML 외부 엔터티 처리를 비활성화하면 XEE 공격 가능성도 줄어듭니다.

손상된 액세스 제어

액세스 제어는 승인되지 않은 사용자를 민감한 정보에 제한하는 시스템 프로토콜입니다. 액세스 제어 시스템이 손상되면 공격자가 인증을 우회할 수 있습니다. 이렇게 하면 권한이 있는 것처럼 민감한 정보에 액세스할 수 있습니다. 액세스 제어는 사용자 로그인에 인증 토큰을 구현하여 보호할 수 있습니다. 사용자가 인증된 동안 요청을 할 때마다 사용자의 인증 토큰이 확인되어 사용자가 해당 요청을 할 수 있는 권한이 있음을 알립니다.

보안 구성 오류

잘못된 보안 구성은 다음과 같은 일반적인 문제입니다. 사이버 보안 전문가는 웹 애플리케이션을 관찰합니다. 이는 잘못 구성된 HTTP 헤더, 손상된 액세스 제어 및 웹 앱에서 정보를 노출하는 오류 표시로 인해 발생합니다.. 사용하지 않는 기능을 제거하여 잘못된 보안 구성을 수정할 수 있습니다. 또한 소프트웨어 패키지를 패치하거나 업그레이드해야 합니다.

사이트 간 스크립팅 (XSS)

XSS 취약점은 공격자가 신뢰할 수 있는 웹사이트의 DOM API를 조작하여 사용자의 브라우저에서 악성 코드를 실행할 때 발생합니다.. 이 악성 코드의 실행은 사용자가 신뢰할 수 있는 웹 사이트에서 온 것처럼 보이는 링크를 클릭할 때 자주 발생합니다.. 웹사이트가 XSS 취약점으로부터 보호되지 않으면 타협하다. 해당 악성코드는 실행된다 공격자가 사용자의 로그인 세션, 신용 카드 세부 정보 및 기타 민감한 데이터에 대한 액세스 권한을 부여합니다..

XSS(Cross-site Scripting)를 방지하려면 HTML이 잘 정리되었는지 확인하십시오. 이것은 할 수있다. ~에 의해 달성되다 선택한 언어에 따라 신뢰할 수 있는 프레임워크 선택. HTML 코드를 구문 분석하고 정리하는 데 도움이 되는 .Net, Ruby on Rails 및 React JS와 같은 언어를 사용할 수 있습니다. 인증되거나 인증되지 않은 사용자의 모든 데이터를 신뢰할 수 없는 것으로 취급하면 XSS 공격의 위험을 줄일 수 있습니다..

안전하지 않은 역 직렬화

역직렬화는 직렬화된 데이터를 서버에서 개체로 변환하는 것입니다. 데이터의 역직렬화는 소프트웨어 개발에서 흔히 발생합니다. 데이터가 안전하지 않은 경우 직렬화 해제됨 신뢰할 수 없는 출처에서. 이것은 할 수 있습니다 잠재적으로 애플리케이션을 공격에 노출시킵니다. 안전하지 않은 역직렬화는 신뢰할 수 없는 소스의 역직렬화된 데이터가 DDOS 공격, 원격 코드 실행 공격 또는 인증 우회로 이어질 때 발생합니다..

안전하지 않은 역직렬화를 방지하기 위한 경험 법칙은 사용자 데이터를 절대 신뢰하지 않는 것입니다. 모든 사용자 입력 데이터는 치료를 받다 as 잠재적으로 악의 있는. 신뢰할 수 없는 소스의 데이터를 역직렬화하지 마십시오. 역직렬화 기능이 사용되다 웹 애플리케이션에서 안전합니다.

알려진 취약점이 있는 구성 요소 사용

라이브러리와 프레임워크는 바퀴를 재발명할 필요 없이 웹 애플리케이션 개발을 훨씬 더 빠르게 만들었습니다.. 이렇게 하면 코드 평가의 중복이 줄어듭니다. 개발자가 애플리케이션의 더 중요한 측면에 집중할 수 있는 길을 열어줍니다. 공격자가 이러한 프레임워크에서 익스플로잇을 발견하면 프레임워크를 사용하는 모든 코드베이스는 타협하다.

구성 요소 개발자는 종종 구성 요소 라이브러리에 대한 보안 패치 및 업데이트를 제공합니다. 구성 요소 취약성을 방지하려면 최신 보안 패치 및 업그레이드를 통해 애플리케이션을 최신 상태로 유지하는 방법을 배워야 합니다.. 미사용 구성 요소는 제거되다 애플리케이션에서 공격 벡터를 차단합니다.

불충분한 로깅 및 모니터링

로깅 및 모니터링은 웹 애플리케이션에서 활동을 표시하는 데 중요합니다. 로깅을 사용하면 오류를 쉽게 추적할 수 있습니다. 모니터 사용자 로그인 및 활동.

보안에 중요한 이벤트가 기록되지 않으면 불충분한 기록 및 모니터링이 발생합니다. 정확히. 공격자는 이를 이용하여 눈에 띄는 응답이 있기 전에 애플리케이션에 대한 공격을 수행합니다..

로깅을 사용하면 개발자가 용이하게 버그 찾기. 이를 통해 버그를 검색하는 것보다 버그를 해결하는 데 더 집중할 수 있습니다. 실제로 로깅은 다운타임 없이 사이트와 서버를 항상 가동 상태로 유지하는 데 도움이 됩니다..

결론

좋은 코드는 그렇지 않다 다만 기능은 사용자와 애플리케이션을 안전하게 유지하는 것입니다.. OWASP Top 10은 가장 중요한 애플리케이션 보안 위험 목록입니다. 개발자가 안전한 웹 및 모바일 앱을 작성하는 데 유용한 무료 리소스입니다.. 위험을 평가하고 기록하도록 팀의 개발자를 교육하면 장기적으로 팀의 시간과 비용을 절약할 수 있습니다. 원한다면 OWASP Top 10에서 팀을 교육하는 방법에 대해 자세히 알아보려면 여기를 클릭하십시오.