이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
인터넷은 우리 삶의 필수적인 부분이 되었습니다. 우리는 친구 및 가족과의 의사 소통에서 쇼핑, 은행 업무에 이르기까지 모든 것에 사용합니다.
인터넷에 대한 우리의 의존도가 높아짐에 따라 범죄자들이 자신의 이익을 위해 인터넷을 악용할 수 있는 방법도 많아졌습니다. 범죄자들이 인터넷을 악용하는 가장 일반적인 방법 중 하나는 웹 애플리케이션을 공격하는 것입니다.
웹 응용 프로그램은 우리가 인터넷과 상호 작용하는 데 사용하는 프로그램입니다. 이메일을 확인하거나 소셜 미디어에 게시할 때 사용하는 것입니다.
웹 애플리케이션은 매우 일반적이고 많은 개인 정보의 관문이기 때문에 주요 공격 대상입니다.
범죄자가 웹 애플리케이션을 공격할 수 있는 방법에는 여러 가지가 있습니다. 이 게시물에서는 가장 일반적인 공격과 자신을 보호하기 위해 할 수 있는 일에 대해 살펴보겠습니다.
SQL 주입은 가장 일반적인 웹 애플리케이션 공격 중 하나입니다. 공격자가 웹 응용 프로그램이 사용 중인 데이터베이스에서 SQL 명령을 실행할 수 있도록 하는 공격 유형입니다.
이는 데이터를 삭제하거나 신용 카드 번호 또는 암호와 같은 민감한 정보를 추출하는 데 사용할 수 있습니다.
SQL 삽입은 일반적으로 웹 애플리케이션에 악의적인 입력을 제출하여 수행됩니다. 이 입력은 사용자 모르게 웹 애플리케이션에 의해 실행됩니다.
SQL 인젝션으로부터 보호하려면 모든 사용자 입력의 유효성을 검사하는 것이 중요합니다. 이는 입력이 올바른 유형이고 최대 길이보다 길지 않은지 확인하는 것을 의미합니다.
데이터베이스와 상호 작용할 때 준비된 문을 사용하는 것도 중요합니다. 준비된 문은 SQL 명령이 명시적으로 명령을 받을 때까지 실행되지 않도록 합니다. 이는 공격자가 악의적인 입력을 제출할 수 있더라도 SQL 명령이 실행되지 않음을 의미합니다.
XSS(교차 사이트 스크립팅)는 또 다른 일반적인 웹 애플리케이션 공격입니다. 공격자가 사용자가 보고 있는 웹 페이지에 악성 코드를 주입할 수 있는 공격 유형입니다.
이 코드는 사용자 모르게 웹 브라우저에 의해 실행됩니다. 이 코드는 사용자를 악의적인 웹 사이트로 리디렉션하거나 암호와 같은 중요한 정보를 도용하는 데 사용할 수 있습니다.
XSS로부터 보호하려면 모든 사용자 입력의 유효성을 검사하는 것이 중요합니다. 이는 입력이 올바른 유형이고 최대 길이보다 길지 않은지 확인하는 것을 의미합니다.
웹 페이지에 표시하기 전에 모든 사용자 입력을 이스케이프 처리하는 것도 중요합니다. 이것은 모든 특수 문자가 HTML 엔터티로 변환됨을 의미합니다. 이것은 브라우저가 입력을 코드로 해석하는 것을 방지하고 사용자가 입력을 일반 텍스트로 볼 수 있도록 합니다.
CSRF(교차 사이트 요청 위조)는 또 다른 일반적인 웹 애플리케이션 공격입니다. 사용자가 웹 애플리케이션에 악의적인 요청을 제출하도록 속이는 공격 유형입니다.
그런 다음 이 요청은 사용자 모르게 웹 애플리케이션에 의해 실행됩니다. 이 요청은 데이터를 삭제하거나 신용 카드 번호 또는 비밀번호와 같은 민감한 정보를 추출하는 데 사용될 수 있습니다.
CSRF로부터 보호하려면 모든 요청에서 HTTP 리퍼러 헤더를 확인하는 것이 중요합니다. 이 헤더에는 요청이 발생한 페이지의 URL이 포함되어 있습니다. 이 헤더를 확인하여 요청이 신뢰할 수 있는 소스에서 온 것인지 확인할 수 있습니다.
각 사용자 세션에 대해 고유한 토큰을 사용하는 것도 중요합니다. 그런 다음 이 토큰은 웹 애플리케이션에 제출되는 모든 요청에 포함됩니다. 토큰을 확인하여 요청이 올바른 사용자로부터 온 것인지 확인할 수 있습니다.
세션 하이재킹은 또 다른 일반적인 웹 애플리케이션 공격입니다. 공격자가 사용자의 세션을 장악할 수 있도록 하는 공격 유형입니다.
이는 사용자의 세션 쿠키를 훔치거나 세션 ID를 추측하여 수행할 수 있습니다. 공격자가 사용자 세션에 액세스하면 사용자가 할 수 있는 모든 작업을 수행할 수 있습니다. 여기에는 민감한 정보에 액세스하거나 사용자 계정을 변경하는 것이 포함됩니다.
세션 하이재킹으로부터 보호하려면 모든 웹 애플리케이션에 대해 보안 연결(HTTPS)을 사용하는 것이 중요합니다. 이렇게 하면 사용자와 웹 애플리케이션 간에 전송되는 모든 데이터가 암호화됩니다.
강력한 세션 ID를 사용하는 것도 중요합니다. 즉, ID가 길고 문자, 숫자 및 특수 문자가 혼합되어 있습니다. 이로 인해 공격자가 ID를 추측하기가 훨씬 어려워져 세션을 가로채게 됩니다.
서비스 거부(DoS)는 또 다른 일반적인 웹 애플리케이션 공격입니다. 사용자가 웹 애플리케이션에 접근하지 못하도록 하는 공격 유형입니다.
이는 일반적으로 웹 애플리케이션에 요청을 플러딩하여 수행됩니다. 이 압도적인 현상은 웹 애플리케이션에 과부하를 일으키고 사용자의 요청에 응답하지 못하게 합니다.
DoS 공격으로부터 보호하려면 모든 요청을 속도 제한하는 것이 중요합니다. 이는 사용자가 주어진 기간 동안 만들 수 있는 요청 수를 제한하는 것을 의미합니다. 이렇게 하면 웹 응용 프로그램이 요청에 압도되지 않고 사용자가 계속 응용 프로그램에 액세스할 수 있습니다.
백업 시스템을 갖추는 것도 중요합니다. 기본 시스템을 사용할 수 없게 되면 이 시스템을 인계하는 데 사용할 수 있습니다. 백업 시스템이 있으면 기본 시스템이 공격을 받는 경우에도 사용자가 애플리케이션에 계속 액세스할 수 있습니다.
보시다시피 웹 애플리케이션 보안은 매우 중요한 주제입니다. 웹 응용 프로그램을 악용하는 데 사용할 수 있는 다양한 공격이 있으며 이러한 공격을 인식하는 것이 중요합니다.
이 게시물에서는 가장 일반적인 공격과 자신을 보호하기 위해 할 수 있는 일을 살펴보았습니다. 그러나 이것은 웹 애플리케이션 보안의 작은 부분에 불과합니다. 더 많은 것을 배울 수 있으며 이 주제에 대해 더 많은 연구를 수행할 것을 권장합니다.
다음은 웹 애플리케이션 보안에 대해 자세히 알아보는 데 사용할 수 있는 몇 가지 리소스입니다.