블로그

머신 러닝을 통한 실시간 보안 규칙 변경

로리 맥비티 썸네일
로리 맥비티
2018년 11월 26일 게시

가시성(또는 가시성 부족)은 오늘날 모든 운영 및 개발 도메인에서 공통적으로 제기되는 불만입니다. 개발자들은 앱이 온프레미스든 퍼블릭 클라우드든 '생산'이라는 지하에 배포되면 앱 성능을 파악할 수 없다는 점을 한탄합니다. 인프라부터 네트워크, 보안까지 모든 운영 부문의 사람들은 애플리케이션 트래픽의 틈새를 들여다보고 그 흐름에서 공격 징후를 뽑아낼 수 없다는 점을 한탄합니다.

보안에 사용되는 가시성은 논리적으로 애플리케이션 앞에 네트워크 및 애플리케이션 서비스를 배치함으로써 필연적으로 달성됩니다. 이런 관행은 여러 가지 이유로 생겨났지만, 사실 애플리케이션에는 다양한 공격 형태를 인식하는 데 필요한 맥락이 부족합니다. 이는 애플리케이션 스택이 개발자에게 연결 단위로 사용 가능한 정보를 제한하기 때문입니다. 이는 그 자체로 보안 조치인데, 격리를 통해 한 연결의 악의적인 행위자가 다른 연결의 정상적인 행위자에게 접근하는 것을 방지합니다.

하지만 이러한 제한으로 인해 애플리케이션과 해당 플랫폼이 상황에 맞게 연결 및 애플리케이션 트래픽을 이해하는 능력이 제한됩니다. 해당 책임을 상류(애플리케이션 앞)로 옮기면 네트워크 및 애플리케이션 서비스는 해당 애플리케이션과 교환된 모든 연결 및 페이로드의 맥락에서 각 연결과 페이로드를 평가할 수 있는 기회를 얻습니다.

애플리케이션 계층 DoS 공격의 증가하는 위협에 대처하는 방법을 살펴볼 때 이 점을 인식하는 것이 중요합니다. 

이러한 애플리케이션 계층 공격이 양과 빈도가 증가하고 있다는 점은 당혹스러운 일입니다. 더욱 충격적인 사실은 애플리케이션 계층 DoS 공격의 43%가 시그니처 및 평판 기반 감지를 회피할 수 있다는 것입니다. 악의적인 행위자들이 특정 애플리케이션을 사용자 정의하고 타겟팅하는 능력이 빠르게 발전함에 따라 정적 서명은 빠르게 쓸모없게 되고 있습니다.

정적 서명은 독감 백신과 같습니다. 독감 백신은 해당 바이러스에 대한 과거 경험을 바탕으로 특정 독감 균주에 대한 보호 기능을 제공하도록 개발되었습니다. 이는 본질적으로 특정 바이러스를 식별하는 생물학적 특징입니다. 동일한 바이러스의 새로운 변종을 식별할 수 없기 때문에 우리는 또다시 독감에 걸릴 위험이 커집니다.

나쁜 행위자들은 감지 및 제거를 피하기 위해 독감 바이러스만큼 능숙하게 적응하고 진화합니다. 이러한 과제를 해결하려면 특정한 특징이 아니라 행동을 기반으로 나쁜 행위자를 식별할 수 있어야 합니다. 그러기 위해서는 가시성과 가시성을 통해 얻을 수 있는 맥락이 필요합니다. 

L7 동작 DoS 보호

기본적으로 L7 행동 DoS 보호는 실제 구성이 아닌 행동 에 따라 해당 바이러스를 탐지할 수 있는 독감 백신입니다. 이러한 기능은 특히 계층 7(애플리케이션)에서 중요합니다. 이러한 공격은 단순히 양적 공격이 아니기 때문입니다. 일부 공격은 단지 연결을 끊고 합법적인 사용자에게 서비스를 제공하는 애플리케이션의 용량을 소모하여 서비스를 거부하도록 설계되었습니다. 다른 공격자들은 더욱 교묘하게, 애플리케이션을 충돌시키고 중단시키는 식으로 요청을 조작하려고 시도합니다.

다양한 종류의 L7 DoS 공격을 탐지하려면 개별 요청을 정상적인 것으로 간주되는 것과 평가할 수 있는 능력이 필요합니다. 하지만 단순히 '정상적인' 행동을 정의하는 것은 서명을 만드는 것과 같습니다. 하이퍼스케일 API 기반 애플리케이션에서는 일반적인 일이지만, 단일 사업부나 부서에서 사용하는 웹 기반 애플리케이션에서는 그렇지 않습니다.

따라서 '정상'을 판단하는 것이 첫 번째 단계입니다. 행동적 DoS는 시스템을 통과하는 모든 패킷에서 특정 정보 비트를 수집하여 이를 달성합니다. 이러한 비트는 네트워크, 전송 및 애플리케이션 데이터에서 가져옵니다. 기준선은 일반적인 헤더 속성이나 크기, 서버에 가해지는 일반적인 스트레스, 일반적인 응답 시간 및 지연 시간과 같은 사항을 바탕으로 설정됩니다. 시스템은 통계적 모델을 사용해 매초 수천 개의 관찰 결과로부터 해당 값에 대한 정상 임계값을 계산합니다.

애플리케이션이 성능 저하나 과부하로 인해 스트레스 징후를 보이면 시스템은 "공격 모드"로 전환됩니다. 이 모드에서는 여러 가지 일이 발생합니다. 

  • 속도 제한은 이상 감지를 기반으로 동적 서명이 구축되는 동안 시작됩니다.
  • 설정에 따라 새로운 사용자 지정 서명은 승인을 기다릴 수도 있고 자동으로 완화 기능을 활성화할 수도 있습니다.
  • 트래픽이 새로운 서명과 일치할 때 공격 완화가 수행되는 방식을 추가로 사용자 정의할 수 있습니다.
    • 보수주의 - 알려진 나쁜 것만 차단
    • 표준 – 서버 스트레스가 너무 높지 않은 한 알려진 불량만 차단하고 공격 중 모든 트래픽의 속도를 제한합니다.
    • 공격적 – 필요한 경우 모든 트래픽의 속도를 자동으로 제한하여 서버 상태를 양호하게 유지합니다.
  • 동적 서명이 공격의 출처를 식별할 만큼 길어지면 완화 조치는 속도 제한에서 3계층 기반 차단으로 전환됩니다.

이 프로세스에는 거짓 부정을 방지하기 위해 '양호한 흐름'과 특성의 중복이 5% 미만인지 확인하는 작업이 포함됩니다. 애플리케이션 상태가 정상으로 돌아오면 시스템은 휴식을 취할 수 있습니다.

L7 동작 DoS의 장점은 무엇이 정상적인지 끊임없이 학습하고 무엇이 아닌지 식별하는 데 중점을 둔다는 것입니다. 이를 통해 정적 시그니처 기반 시스템에서는 업데이트되기 전까지 알아차리지 못하는 새로운 L7 공격이나 이전 공격에서 진화된 L7 공격을 탐지할 수 있습니다.

매우 집중적인 머신 러닝 모델 덕분에 행동 분석이 가능합니다. 이러한 모델을 사용하면 애플리케이션 보호가 실시간으로 진화하여 보안 도메인이 절실히 필요로 하는 민첩성을 제공할 수 있습니다. 악성 행위자들은 감지되지 않기 위해 공격을 끊임없이 조정하고 수정합니다. 애플리케이션을 더 효과적으로 보호하기 위해 보안 서비스는 가정을 변경하고 해당 환경의 맥락에서 작동해야 합니다. 보안 전문가에게 기업 포트폴리오의 모든 애플리케이션에 대한 임계값을 만들 것을 요구하는 것은 합리적이지 않습니다.

새로운 애플리케이션과 환경이 추가되어 보안 및 운영 부담이 커지므로 가능한 한 그 부담을 사람에서 기술로 전가하는 것이 중요합니다. 고급 WAF의 일부인 동작 DoS는 기계를 사용자에게 불리하게 작동시키는 대신 사용자를 위해 작동시키는 방법 중 하나입니다.