웹 사이트 개발-보안
보안을 손상시킬 수있는 모든 위협은 귀하의 비즈니스 평판을 해치고 (온라인 예금을 훔쳐) 재정적으로 피해를 입히고 귀하의 웹 사이트를 방문하는 고객에게 피해를 줄 수 있기 때문에 웹 페이지를 보호하는 것만큼이나 중요합니다.
보안 전문가에 따라 다음을 기반으로 웹 사이트 보안 검사를 수행 할 것을 제안합니다. OWASP TOP 10, 웹 애플리케이션 보안에 대한 강력한 인식 문서입니다. OWASP Top 10은 가장 중요한 웹 애플리케이션 보안 결함이 무엇인지에 대한 광범위한 합의를 나타냅니다.
SQL 주입
SQL, OS 및 LDAP 주입과 같은 주입 결함은 신뢰할 수없는 데이터가 명령 또는 쿼리의 일부로 인터프리터에 전송 될 때 발생합니다. 공격자의 적대적인 데이터는 인터프리터가 의도하지 않은 명령을 실행하거나 적절한 권한없이 데이터에 액세스하도록 속일 수 있습니다.
Solution − iSQL에서 웹 페이지를 보호하려면 입력 및 필터링 기호의 유효성을 검사해야합니다.
손상된 인증 및 세션 관리
인증 및 세션 관리와 관련된 애플리케이션 기능은 종종 올바르게 구현되지 않아 공격자가 암호, 키, 세션 토큰을 손상 시키거나 다른 구현 결함을 악용하여 다른 사용자의 신원을 추정 할 수 있습니다.
Solution −이 결함으로부터 사이트를 보호하려면 만료 시간이있는 쿠키와 세션을 만들어야합니다.
교차 사이트 스크립팅 (XSS)
XSS 결함은 애플리케이션이 신뢰할 수없는 데이터를 가져와 적절한 유효성 검사 나 이스케이프없이 웹 브라우저로 보낼 때마다 발생합니다. XSS를 사용하면 공격자가 피해자의 브라우저에서 스크립트를 실행하여 사용자 세션을 가로 채거나 웹 사이트를 손상 시키거나 사용자를 악성 사이트로 리디렉션 할 수 있습니다.
Solution − 이에 대한 보호는 iSQL과 동일한 라인에 있습니다.
안전하지 않은 직접 개체 참조
직접 개체 참조는 개발자가 파일, 디렉터리 또는 데이터베이스 키와 같은 내부 구현 개체에 대한 참조를 노출 할 때 발생합니다. 액세스 제어 검사 또는 기타 보호없이 공격자는 이러한 참조를 조작하여 무단 데이터에 액세스 할 수 있습니다.
Solution − 이러한 파일을 보호하려면 암호와 같은 특정 보호 메커니즘을 구현해야합니다.
잘못된 보안 구성
우수한 보안을 위해서는 애플리케이션, 프레임 워크, 애플리케이션 서버, 웹 서버, 데이터베이스 서버 및 플랫폼에 대해 보안 구성을 정의하고 배포해야합니다. 기본값은 종종 안전하지 않으므로 보안 설정을 정의, 구현 및 유지 관리해야합니다.
Solution − 소프트웨어는 최신 상태로 유지해야합니다.
민감한 데이터 노출
많은 웹 응용 프로그램은 신용 카드, 세금 ID 및 인증 자격 증명과 같은 민감한 데이터를 적절하게 보호하지 않습니다. 공격자는 신용 카드 사기, 신원 도용 또는 기타 범죄를 수행하기 위해 취약하게 보호되는 데이터를 훔치거나 수정할 수 있습니다.
Solution − 민감한 데이터는 저장 중 또는 전송 중 암호화와 같은 추가 보호 기능은 물론 브라우저와 교환 할 때 특별한 예방 조치를 취해야합니다.
기능 수준 액세스 제어 누락
대부분의 웹 응용 프로그램은 해당 기능을 UI에 표시하기 전에 기능 수준 액세스 권한을 확인합니다. 그러나 애플리케이션은 각 기능에 액세스 할 때 서버에서 동일한 액세스 제어 검사를 수행해야합니다. 요청이 확인되지 않으면 공격자는 적절한 권한없이 기능 액세스 요청을 위조 할 수 있습니다.
Solution − 인증 수준을 확인해야합니다.
교차 사이트 요청 위조 (CSRF)
CSRF 공격은 로그온 한 피해자의 브라우저가 피해자의 세션 쿠키 및 기타 자동으로 포함 된 인증 정보를 포함한 위조 된 HTTP 요청을 취약한 웹 애플리케이션에 전송하도록합니다. 이를 통해 공격자는 피해자의 브라우저가 취약한 애플리케이션이 피해자의 합법적 인 요청이라고 생각하는 요청을 생성하도록 강제 할 수 있습니다.
Solution − 가장 일반적으로 사용되는 예방 방법은 웹 사이트에서 오는 각 요청에 예측할 수없는 챌린지 기반 토큰을 첨부하고이를 사용자 세션과 연결하는 것입니다.
알려진 취약점이있는 구성 요소 사용
라이브러리, 프레임 워크 및 기타 소프트웨어 모듈과 같은 구성 요소는 거의 항상 전체 권한으로 실행됩니다. 취약한 구성 요소가 악용되면 이러한 공격은 심각한 데이터 손실이나 서버 탈취를 촉진 할 수 있습니다. 알려진 취약성이있는 구성 요소를 사용하는 애플리케이션은 애플리케이션 방어를 약화시키고 가능한 다양한 공격과 영향을받을 수 있습니다.
Solution − 해당 구성 요소 버전에 취약점이 있는지 확인하고 다른 버전으로 피하거나 변경하십시오.
무효화 된 리디렉션 및 전달
웹 응용 프로그램은 자주 사용자를 다른 페이지 및 웹 사이트로 리디렉션하고 전달합니다. 이러한 응용 프로그램은 신뢰할 수없는 데이터를 사용하여 대상 페이지를 결정합니다. 적절한 유효성 검사없이 공격자는 피해자를 피싱 또는 맬웨어 사이트로 리디렉션하거나 전달을 사용하여 승인되지 않은 페이지에 액세스 할 수 있습니다.
Solution − 항상 URL을 확인하십시오.
안전한 사용 프로토콜
VPS 계획이 있고 모든 것을 스스로 관리하는 경우입니다. 서비스가 설치되면 기본 포트를 사용합니다. 이것은 해커가 어디를 볼지 알고 있기 때문에 작업을 더 쉽게 만듭니다.
웹 사이트 호스팅에 사용되는 주요 서비스 포트 중 일부는 다음과 같습니다.
- SSH – 포트 22
- FTP – 포트 21
- MySQL – 포트 3306
- DNS – 포트 53
- SMTP – 포트 25
이러한 서비스의 포트 변경은 운영 체제 및 버전에 따라 다릅니다. 이 외에도 방화벽을 설치해야합니다. Linux OS 인 경우 권장합니다.IPtables다른 모든 불필요한 포트를 차단하십시오. OS가 Windows 인 경우 통합 방화벽을 사용할 수 있습니다.
서비스에서 무차별 대입 로그인을 차단하려면 다음을 사용할 수 있습니다. Fail2ban, 이는 Linux 기반 소프트웨어이며 많은 로그인 시도가 실패하는 모든 IP 주소를 차단합니다.