OWASP TOP10 Document
OWASP: Open Web Application Security Project
Injection
- SQL, 운영체제, LDAP 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 질의문의 일부분으로서 인터프리터로 보내질 때 발생한다. 공격자의 악의적인 데이터는 예상하지못하는 명령을 실행하거나 적절한 권한 없이 데이터에 접근하도록 인터프리터를 속일 수있다.
Broken Authentication
- 인증과 세션 관리와 관련된 애플리케이션 기능은 정확하게 구현되어 있지 않아서, 공격자가 패스워드, 키 또는 세션 토큰을 해킹하거나 다른 구현 취약점을 공격하여 다른 사용자 ID로 가장할 수 있다.
Sensitive Data Exposure(XSS)
- XSS 취약점은 애플리케이션이 신뢰할 수 없는 데이터를 가져와 적절한 검증이나 제한 없이 웹 브라우저로 보낼 때 발생한다. XSS는 공격자가 피해자의 브라우저에 스크립트를 실행하여 사용자 세션 탈취, 웹 사이트 변조, 악의적인 사이트로 이동할 수 있다.
Broken Access Control
- 직접 객체 참조는 개발자가 파일, 디렉토리, 데이터베이스 키와 같은 내부 구현 객체를 참조하는 것을 노출시킬 때 발생한다. 접근 통제를 통한 확인이나 다른 보호수단이 없다면, 공격자는 노출된 참조를 조작하여 허가 받지 않은 데이터에 접근할 수 있다.
Security Misconfiguration
- 훌륭한 보안은 애플리케이션, 프레임워크, 애플리케이션 서버, 웹 서버, 데이터베이스 서버 및 플랫폼에 대해 보안 설정이 정의되고 적용되어 있다. 기본으로 제공되는 값은 종종 안전하지 않기 때문에 보안 설정은 정의, 구현 및 유지되어야 한다. 또한 소프트웨어는 최신의 상태로 유지해야 한다.
Sensitive Data Exposure
- 많은 웹 애플리케이션들이 신용카드, 개인 식별 정보 및 인증 정보와 같은 중요한 데이터를 제대로 보호하지 않는다. 공격자는 신용카드 사기, 신분 도용 또는 다른 범죄를 수행하는 등 약하게 보호된 데이터를 훔치거나 변경할 수 있다. 중요 데이터가 저장 또는 전송 중이거나 브라우저와 교환하는 경우 특별히 주의하여야 하며, 암호화와 같은 보호조치를 취해야 한다.
Cross-Sikt Request Forgery(CSRF)
- CSRF 공격은 로그온 된 피해자의 취약한 웹 애플리케이션에 피해자의 세션 쿠키와 기타 다른 인증정보를 자동으로 포함하여 위조된 HTTP 요청을 강제로 보내도록 하는 것이다. 이것은 공격자가 취약한 애플리케이션이 피해자로부터의 정당한 요청이라고 오해할 수 있는 요청들을 강제로 만들 수 있다.
Using Components with Known Vulnerabillities
- 컴포넌트, 라이브러리, 프레임워크 및 다른 소프트웨어 모듈은 대부분 항상 전체 권한으로 실행된다. 이러한 취약한 컴포넌트를 악용하여 공격하는 경우 심각한 데이터 손실이 발생하거나 서버가 장악된다. 알려진 취약점이 있는 컴포넌트를 사용하는 애플리케이션은 애플리케이션 방어 체계를 손상하거나, 공격 가능한 범위를 활성화하는 등의 영향을 미친다.
1. SESSION 관리
: cookie에 저장되는 날짜(만료일)을 지정 -> 하드디스크에 저장 (w/ 만료일)하여 외부침입방지browser <------------- web
암호 ssl
browser -------------> web
만일 browser가 hacker 라면 ssl 의미 없으므로
대응 1)
쿠키를 암호화(ex. perm=0000)쿠키를 암호화했을때 무차별 대입식으로 공격
대응 2)
IDS, IPS (: 무차별 대입식 막는 프로그램) ->proxy에 ip 바꿔가며 공격 가능
- XSS (Cross Site Script)
: script로 hack
- session 훔쳐보는 set
- <?php session_start(); session_regenerate_id();
- 대응 : 할때마다 SID재설정으로 귀찮게 만들기
- session token 발급 방법
- 개발자가 직접
- php 자체 발급 (PHPSESSID, ASPSESSID, JSPSESSID)
- session 훔쳐보는 set
- <?php session_start(); session_regenerate_id();
- 대응 : 할때마다 SID재설정으로 귀찮게 만들기
- session token 발급 방법
- 개발자가 직접
- php 자체 발급 (PHPSESSID, ASPSESSID, JSPSESSID)
No comments:
Post a Comment