웹 취약점 분석은 웹 애플리케이션의 보안성을 강화하고, 잠재적인 보안 위협을 식별하며, 이를 통해 웹 애플리케이션과 사용자 데이터를 보호하기 위해 필수적으로 수행됩니다.
이를 통해 법적 요구사항을 준수하고, 서비스 가용성을 유지하는데 중요한 역할을 합니다. 웹 취약점분석은 지속적인 과정으로, 정기적으로 수행하여 최신 보안 위협에 대비해야 합니다.
1. SQL 인젝션 (SQL Injection)
문제점: SQL 인젝션은 악의적인 사용자가 입력 필드를 통해 SQL 쿼리를 조작하여, 데이터베이스에 부적절하게 접근하거나 데이터를 조작할 수 있는 취약점입니다. 이를 통해 공격자는 데이터베이스에서 민감한 정보를 조회, 수정 또는 삭제할 수 있으며, 데이터베이스의 구조를 변경하거나 관리자 권한을 탈취할 수도 있습니다.
이미지출처 : 한국인터넷진흥원
조치 방법:
•
Prepared Statements 사용: 쿼리와 데이터를 분리하여 SQL 인젝션을 방지.
•
‘ ; - -, #, /* */ 같은 sql 쿼리에 사용 하는 특수 문자열 필터링 처리
•
ORM (Object-Relational Mapping) 사용: 안전한 데이터베이스 쿼리 작성.
2. 크로스 사이트 스크립팅 (XSS, Cross-Site Scripting)
문제점: XSS는 공격자가 웹 페이지에 악성 스크립트를 삽입하여 다른 사용자의 브라우저에서 이를 실행하게 만드는 취약점입니다.
이미지출처 : 한국인터넷진흥원
조치 방법:
•
입력 값 검증: 모든 사용자 입력에 대한 철저한 검증.
•
출력 값 이스케이프: HTML 이스케이프 처리.
•
외부 입력값 또는 출력값에 스크립트가 삽입되지 못하도록 문자열 치환 함수를 사용
3. 민감 정보 노출
문제점: 민감한 정보가 로그 파일, 오류 메시지, 소스 코드 등에 노출될 경우, 공격자가 이를 악용할 수 있습니다.
이미지출처 : 한국인터넷진흥원
조치 방법:
•
로그 관리: 민감한 정보 기록 방지.
•
에러 페이지 관리: 일반적인 오류 페이지 출력.
•
데이터 정보 암호화 과정: 개인정보(주민등록번호, 여권번호 등), 금융정보(카드번호, 계좌번호 등) 패스워드 등 중요정보를 저장하거나 전송할 때는 반드시 암호화 과정을 거침.
4. SRI (Subresource Integrity) 지원 검사
문제점: SRI는 외부 리소스가 변조되지 않았는지 검증하는 기능으로, 이를 지원하지 않으면 외부 리소스가 공격자에 의해 변경될 수 있습니다.
조치 방법:
•
SRI 적용: 외부 리소스에 SRI를 적용하여 무결성을 확인.
•
스크립트 항목에 integrity, crossorign 속성 추가
5. 누락되었거나 안전하지 않은 "X-Content-Type-Options" 헤더
문제점: "X-Content-Type-Options" 헤더가 설정되지 않으면 브라우저가 MIME 타입을 잘못 해석하여 XSS 공격에 취약해질 수 있습니다.
조치 방법:
•
헤더 설정: "X-Content-Type-Options"를 "nosniff"로 설정하여 브라우저의 MIME 타입 해석을 방지.
6. 누락된 "Content-Security-Policy" 헤더
문제점: "Content-Security-Policy" 헤더가 없으면 XSS 및 데이터 인젝션 공격에 취약해질 수 있습니다.
조치 방법:
•
CSP 헤더 설정: "Content-Security-Policy" 헤더를 설정하여 신뢰할 수 있는 리소스만 로드하도록 제한.
7. 위험한 형식 파일 업로드
문제점: 서버측에서 실행 가능한 스크립트 파일(asp, jsp, php, sh 파일 등)이 업로드 가능하고 이 파일을 공격자가 웹을 통해 직접 실행시킬 수 있는 경우 시스템 내부 명령어를 실행하거나 외부와 연결해 시스템을 제어할 수 있는 보안 약점이다.
이미지출처 : 한국인터넷진흥원
조치 방법:
•
특정 파일 유형만 업로드 허용: 파일 업로드 공격을 방지하기 위해서 특정 파일 유형만 허용하도록 화이트리스트 방식으로 파일 유형을 제한.