RESTful Api 사양은 WAF에서 중요합니다.

APIGit

2023-08-04

api-waf

WAF란 무엇입니까?

WAF는Web Application Firewall. 다양한 온라인 위협, 취약점 및 공격으로부터 웹 애플리케이션을 보호하도록 설계된 보안 솔루션입니다. WAF는 웹 애플리케이션과 외부 세계 사이의 장벽 역할을 하며 들어오고 나가는 트래픽을 필터링하고 모니터링하여 악의적인 활동을 감지하고 방지합니다.

WAF의 주요 목적은 다음과 같은 일반적인 공격으로부터 웹 애플리케이션을 보호하는 것입니다.

  • SQL 인젝션: 공격자는 악의적인 SQL 쿼리를 입력 필드에 삽입하여 데이터베이스에 대한 무단 액세스를 조작하거나 얻으려고 시도합니다.

  • XSS(교차 사이트 스크립팅): 악성 스크립트가 웹 페이지에 삽입되어 사용자 데이터 도용 또는 세션 하이재킹으로 이어질 수 있습니다.

  • 교차 사이트 요청 위조(CSRF): 공격자는 사용자가 의도하지 않은 작업을 수행하도록 속여 웹 응용 프로그램에서 승인되지 않은 작업을 수행하는 경우가 많습니다.

  • 애플리케이션 계층 DDoS 공격: 공격자는 많은 양의 요청으로 웹 애플리케이션을 플러딩하여 리소스를 압도하고 사용할 수 없게 만듭니다.

  • 무차별 대입 공격: 응용 프로그램에 대한 무단 액세스 권한을 얻기 위해 암호 또는 자격 증명을 추측하려는 반복적인 시도.

  • 파일 포함 공격: 민감한 파일에 대한 액세스 권한을 얻거나 악성 코드를 실행하는 데 자주 사용되는 파일의 무단 포함.

WAF는 들어오는 HTTP 및 HTTPS 요청을 분석하고 내용에 의심스러운 패턴이 있는지 검사하고 미리 정의된 보안 규칙 집합에 따라 차단하거나 허용하는 방식으로 작동합니다. 일부 WAF는 서명 기반 탐지를 사용하는 반면 다른 WAF는 동작 분석 및 머신 러닝을 사용하여 위협을 식별하고 완화합니다.

WAF는 하드웨어 어플라이언스, 소프트웨어 솔루션 또는 클라우드 기반 서비스로 구현될 수 있으며 특히 온라인 위협이 끊임없이 진화하는 오늘날의 디지털 환경에서 웹 애플리케이션의 보안과 무결성을 유지하는 데 중요한 역할을 합니다.

WAF는 어떻게 작동합니까?

WAF(웹 애플리케이션 방화벽)는 웹 애플리케이션과 해당 사용자 간의 트래픽을 모니터링, 필터링 및 제어하여 작동합니다. 웹 애플리케이션을 대상으로 하는 다양한 유형의 사이버 공격 및 취약점을 식별하고 방지하도록 설계되었습니다. WAF가 일반적으로 작동하는 방식은 다음과 같습니다.

  • 교통 검사: 사용자가 HTTP 요청(예: 웹 페이지 액세스, 양식 제출)을 전송하여 웹 응용 프로그램과 상호 작용할 때 WAF는 들어오는 트래픽이 웹 서버에 도달하기 전에 가로채서 검사합니다.

  • HTTP 파싱: WAF는 HTTP 요청을 구문 분석하여 요청 메서드, 헤더, URL, 쿼리 매개 변수 및 요청 본문과 같은 구성 요소를 이해합니다.

  • 규칙 기반 필터링: WAF는 미리 정의된 보안 규칙 집합을 구문 분석된 요청에 적용합니다. 이러한 규칙은 SQL 인젝션, XSS(교차 사이트 스크립팅) 등과 같은 알려진 공격 또는 취약점의 패턴을 정의합니다. WAF가 요청 콘텐츠와 이러한 규칙 간의 일치를 감지하면 위협을 완화하기 위한 조치를 취합니다.

  • 트래픽 차단 또는 허용: 규칙 평가에 따라 WAF는 요청이 웹 애플리케이션으로 진행되도록 허용할지 또는 차단할지를 결정합니다. 요청이 악의적이거나 의심스러운 것으로 간주되면 WAF는 이를 차단하고 웹 서버에 도달하지 못하게 할 수 있습니다.

  • 응답 분석: WAF는 나가는 요청에 대한 웹 애플리케이션의 응답도 검사합니다. 애플리케이션의 응답에서 민감한 정보 유출 또는 데이터 노출을 감지하고 방지할 수 있습니다.

  • 학습 및 적응: 일부 최신 WAF는 기계 학습 및 동작 분석 기술을 사용하여 새롭고 진화하는 위협을 식별합니다. 이러한 시스템은 시간이 지남에 따라 애플리케이션의 정상적인 동작을 학습하고 공격을 나타낼 수 있는 이상 징후를 탐지할 수 있습니다.

  • 맞춤 규칙: 관리자는 종종 웹 응용 프로그램의 특정 보안 요구 사항에 맞게 사용자 지정 규칙을 구성할 수 있습니다. 이를 통해 애플리케이션별 취약성과 잠재적인 위협을 해결할 수 있습니다.

  • 로깅 및 보고: WAF는 감지된 위협, 의심스러운 활동 및 차단된 요청에 대한 로그 및 보고서를 생성합니다. 이 정보는 관리자가 웹 애플리케이션의 보안 상태를 분석하고 필요한 경우 WAF의 규칙을 미세 조정하는 데 도움이 됩니다.

  • 지속적인 모니터링: WAF는 트래픽을 지속적으로 모니터링 및 필터링하고, 새로운 위협에 적응하고, 웹 애플리케이션의 보안을 유지함으로써 지속적인 보호를 제공합니다.

WAF는 귀중한 보안 계층이지만 그 자체로는 포괄적인 솔루션이 아닙니다. 안전한 코딩 관행, 정기적인 보안 평가 및 패치 관리를 포함한 보안 조치의 조합은 웹 애플리케이션의 전반적인 보안을 보장하는 데 필수적입니다.

RESTful Api 사양은 WAF 사용자 지정 규칙에 중요합니다.

WAF에서 사용자 지정 규칙을 어떻게 구성합니까? 두 가지 주요 방법이 있습니다.

  • #1 RESTful API 사양 웹 서비스에는 모든 끝점, 매개 변수, 응답, 인증 체계 등을 설명하는 OpenAPI 사양이 있을 수 있습니다. 이러한 사양은 일반적으로 개발자가 제공합니다.
  • #2 수동 입력 URL, 매개변수 이름, 최대 길이 및 값의 구조를 추가하여 규칙을 수동으로 입력할 수 있습니다.

방법 #1이 #2보다 훨씬 좋아 보입니다. 완벽한 세상에서 각 웹 서비스에는 항상 사용 가능하고 최신 상태인 OpenAPI 사양이 있습니다. 그러나 현실 세계에서는 그렇게 자주 발생하지 않는 것 같습니다. 개발자는 API를 변경했지만 사양을 업데이트하는 것을 잊거나 어떤 이유로 사양을 공개하지 않을 수 있습니다. 대부분의 경우 공개적으로 사용 가능한 REST API에는 사람이 읽을 수 있는 문서가 있지만 일반적으로 자동화된 방식으로 사용하기는 어렵습니다.

  • 그러나 APIGIT를 사용하면 이를 더 쉽게 만들 수 있습니다.

APIGIT는 API 개발 프로세스 및 버전 제어를 단순화하여 사용자가 API를 쉽게 설계, 문서화, 목업화, 테스트 및 공유할 수 있도록 하는 기본 Git 지원이 돋보이는 협업 플랫폼입니다. 플랫폼의 시각적 OpenAPI 편집기는 기본 Git 지원과 결합되어 팀이 원활하고 효율적인 방식으로 작업을 쉽게 협업하고 공유할 수 있도록 합니다.

RESTful API 사양은 어떻게 생겼나요?

다음은 RESTful API 사양의 일부입니다.

"components": {
    "schemas": {
      "OpenAI-Request": {
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "description": "Your question"
          },
          "model": {
            "type": "string",
            "description": "OpenAI model",
            "default": "1",
            "minLength": 1,
            "maxLength": 20,
            "pattern": "\\w+"
          },

RESTful API 사양에서 스키마를 정의할 때 유형, 최소 및 최대 길이, 심지어 정규식 패턴을 포함하여 매개변수의 다양한 측면을 지정할 수 있습니다. 그런 다음 이 사양을 WAF(웹 애플리케이션 방화벽)에 로드하여 정의된 스키마에 해당하는 사용자 지정 규칙을 생성할 수 있습니다.