| ‘.net 개발자 위한 OWASP TOP 10’ 한글문서 발간! | 2012.08.06 | ||
보안 커뮤니티인 보안프로젝트 멤버들의 5개월간 공동작업 결실
보안 커뮤니티인 보안프로젝트에서 번역작업을 거쳐 발표한 한글문서의 원본자료인 ┖Free Book : OWASP Top 10 for .NET developers┖의 표지 원본 자료는 마이크로소프트의 MVP인 트로이 헌트(Troy Hunt)가 작성한 ‘Free Book : OWASP Top 10 for .NET developers’로 보안 프로젝트 멤버들이 5개월간의 번역 작업 끝에 한글문서를 완성시킨 것. 이 자료는 안전한 웹 애플리케이션 설계를 촉진하기 위해 설립된 비영리 자선단체인 OWASP(Open Web Application Security Project)에서 선정한 애플리케이션 보안위협 Top 10에 대한 세부적인 분석내용이 담겨 있다. 이와 관련 보안프로젝트 운영자인 니키 씨는 “이 책은 .Net 개발자들을 위해 OWASP에서 선정한 앱 애플리케이션 보안위협 Top 10을 정리하고, 각 취약점마다 정의 및 원인, 취약한 코드와 안전한 코드, 문제해결 방법 등을 서술해 코드 작성시 상당히 유용할 것으로 보인다”고 밝혔다. OWASP가 선정한 웹 애플리케이션 보안위협 TOP 10은 지난 2010년 발표된 것으로, 3년마다 발표되기 때문에 내년에 새롭게 발표된다. 참고로 지난 2010년 발표된 TOP 10은 다음과 같다. 1. 삽입(Injection) SQL, OS, LDAP 삽입과 같은 삽입 취약점은 신뢰되지 않은 데이터가 커맨드 또는 쿼리의 일부로 인터프리터(명령어 번역기)에 송신될 때 발생한다. 공격자의 적의가 담긴 데이터는 인터프리터가 의도하지 않은 커맨드를 실행하거나 승인되지 않은 데이터에 접속하도록 속일 수 있다. 2. Cross-Site Scripting(XSS) XSS 취약점은 애플리케이션이 신뢰할 수 없는 데이터를 받아들이고, 그 데이터를 적절한 검증이나 중단 없이 웹 브라우저에 보낼 경우에 발생한다. XSS는 유저의 세션 탈취, 웹사이트의 변경, 유해사이트로의 Redirect(강제 이동) 등을 할 수 있는 스크립트를 사용자의 브라우저에서 실행하게 허용한다. 3. 취약한 인증과 세션 관리(Broken Authentication and Session Management) 공격자가 패스워드, 키, 세션 토큰을 조작 가능하거나 다른 유저의 신분을 사칭하게 하는 다른 실행 결함을 악용 가능한 경우, 인증과 세션 관리에 관련된 애플리케이션의 기능은 제대로 시행되지 않는다. 4. 잘못된 직접적인 객체참조(Insecure Direct Object References) 직접적인 객체참조는 개발자가 파일, 디렉토리, 데이터베이스 키 등과 같은 내부 실행객체에 대한 레퍼런스를 노출시킬 경우에 발생한다. 접근통제 확인이나 다른 보호대책이 없을 경우, 공격자는 승인되지 않은 데이터에 접속하는 레퍼런스를 조작할 수 있다. 5. Cross-Site Request Forgery (CSRF) CSRF 공격은, 로그인한 사용자의 브라우저가 사용의 세션 쿠키 및 자동으로 포함되는 다른 인증정보를 포함하는 조작된 HTTP 요청을 보내도록 한다. 공격자는 이 취약점을 악용해서 사용자의 브라우저가 취약한 애플리케이션이 사용자로부터 송신된 정당한 요청이라고 생각되는 요청을 만들어내도록 할 수 있다. 6. 보안설정 오류(Security Misconfiguration) 바람직한 보안은 애플리케이션, 프레임워크, 애플리케이션 서버, 웹 서버, 데이터베이스 서버, 플랫폼 등에 대해 정의되고 배포된 보안설정을 하는 것이 필수적이다. 많은 설정들이 처음부터 안전하게 제공되지 않기 때문에, 이러한 설정들은 정의되고, 실행되며, 유지되어야 한다. 즉, 애플리케이션에서 사용되는 모든 코드 라이브러리를 포함하여 모든 소프트웨어를 최신의 상태로 유지하는 것을 포함한다. 7. 잘못된 암호 저장(Insecure Cryptographic Storage) 많은 웹 애플리케이션은 신용카드, SSN(사회보장번호: 미국에서의 민감정보), 인증정보와 같은 민감한 데이터를 정당한 암호화 또는 해쉬화 하여 올바르게 보호하지 않는다. 공격자는 신분위장, 신용카드 사기나 그 외의 범죄를 저지르기 위해서 약하게 보호된 데이터를 훔치거나 변경할 수 있다. 8. URL 접속제한 실패(Failure to Restrict URL Access) 많은 웹 애플리케이션은 보호된 링크와 버튼을 표시하기 전에 URL 접속권한을 체크한다. 그러나 어플리케이션은 이러한 페이지에 접속되거나, 공격자가 어떤 방법으로든 숨겨진 페이지에 접속하려고 URL을 조작할 때마다 비슷한 접속통제 확인을 실시할 필요가 있다. 9. 불충분한 전송계층 보호(Insufficient Transport Layer Protection) 애플리케이션은 기밀성을 갖춰야 하고, 민감한 네트워크 트래픽의 무결성을 인증하고 암호화하며 보호해야 한다. 그러나 애플리케이션이 취약할 경우 약한 알고리즘을 사용하거나 만료되거나 유효하지 않은 인증을 사용하거나 또는 이러한 것들을 바람직하지 않게 사용하게 된다. 10. 인가되지 않은 전송(Unvalidated Redirects and Forwards) 웹 어플리케이션은 유저를 다른 페이지와 웹 사이트로 리다이렉트하고 포워딩하며, 목적지 페이지를 판단하기 위해 신뢰되지 않는 데이터를 사용한다. 올바른 검증을 실시하지 않으면, 공격자는 희생자를 피싱 사이트나 유해한 사이트로 리다이렉트 하거나 인가되지 않은 페이지를 접속하는 포워딩을 사용할 수 있다. 한편, 이 한글자료는 한국정보보호교육센터 홈페이지의 지식채널 메뉴(http://www.kisec.com/knowledge_channel/kiseclab)에서 무료로 다운로드 받을 수 있다. [권 준 기자(editor@boannews.com)] <저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지> |
|||
|
|