탈선 없는 Rails: 코드 인젝션 공격 차단
Akamai는 고객에게 최고 수준의 보안을 제공하기 위해 웹 애플리케이션 방화벽(WAF) 를 지속적으로 개선하는 데 최선을 다하고 있습니다. 이러한 노력의 일환으로 Ruby on Rails(Rails) 애플리케이션을 표적으로 삼는 코드 인젝션 공격을 위한 새로운 전용 탐지 기능 을 출시하게 되어 기쁘게 생각합니다.
Ruby on Rails 애플리케이션을 보호하는 것이 중요한 이유는 무엇인가요?
Ruby on Rails 는 사용 편의성, 유연성, 강력한 생태계로 인해 웹 애플리케이션 개발을 위한 인기 있는 프레임워크가 되었습니다. 깔끔하고 지원 가능한 코드베이스를 유지하면서 개발 시간을 단축하는 Rails의 기능은 모든 규모의 기업에서 개발자들에게 매우 매력적으로 다가왔습니다. GitHub, Shopify, Airbnb, Basecamp와 같은 많은 유명 브랜드가 Ruby on Rails를 사용해 플랫폼을 구축했으며, 이는 기술 업계에서 그 중요성을 강조합니다.
하지만 개발자들을 끌어들이는 것과 같은 이유로 사이버 공격자들에게도 Rails는 매력적인 표적이 되고 있습니다. 프로세스가 더욱 자동화되고 애플리케이션의 상호 운용에 대한 요구가 점점 더 증가함에 따라 공격자들이 숨을 수 있는 새로운 공간이 생겨나고 있습니다. 이러한 중요한 플랫폼의 민감한 데이터와 비즈니스 운영을 보호하려면 Rails 애플리케이션을 보호하는 것이 필수적입니다.
Ruby on Rails에 대한 위협 증가
수년 동안 Rails는 몇 가지 주목할 만한 보안 취약점과 공격 기법에 직면해 왔습니다. OWASP(Open Worldwide Application Security Project) 의 보안 치트 시트에 Rails 보안에 대한 내용이 나와 있습니다.
Rails의 유명한 취약점 대부분은 JSON 및 YAML 데이터 형식 의 안전하지 않은 역직렬화와 관련이 있지만, 개발자가 실수로 애플리케이션과 사용자의 데이터를 코드 인젝션과 같은 추가적인 공격에 노출시킬 수도 있습니다. 특히 Ruby 언어의 ‘eval' 함수의 경우 더욱 그렇습니다. 이 함수는 문자열 입력에서 Ruby 코드를 동적으로 구축합니다. 공격자가 제어하는 입력이 이 함수 안에 들어가면 공격자는 임의의 Ruby 코드를 실행할 수 있습니다.
다음은 이러한 경우의 예시입니다.
def calculate
calc = params[:calc]
result = eval(calc)
render plain: result
종료
이 매우 단순한 예시에서 계산 작업은 사용자 입력에서 calc 매개변수('1+2'와 같은 수학 연산을 포함)를 가져와서 수학 연산의 결과를 반환하는 Ruby eval 방법을 사용합니다. 공격자가 실행할 임의의 Ruby 코드를 제공할 수 있기 때문에 코드 인젝션 취약점이 발생합니다.
공격자가 이 취약점을 악용하는 방법
공격자는 다음과 같이 악성 Ruby 코드가 포함된 조작된 요청을 제출해 이 취약점을 악용할 수 있습니다.
POST /calculate?ip=IO.popen('cat%20%2Fetc%2Fpasswd').read%20%23
또는 디코딩된 형태로도 가능합니다.
IO.popen('cat /etc/passwd').read #
이 명령은 시스템 사용자에 대한 민감한 정보가 포함된 시스템의 /etc/passwd 파일의 내용을 읽게 됩니다. 끝에 있는 # 기호는 그 뒤의 모든 내용을 무시하는 Ruby 주석으로, 나머지 코드에서 구문 오류가 발생하지 않도록 합니다.
Akamai 적응형 보안 엔진으로 공격 완화
정교한 사이버 위협의 확산이 증가함에 따라 강력한 보안 대책을 마련해야 합니다. 최신 Adaptive Security Engine 룰인 3000404 - Ruby on Rails Sensitive Operation Injection Attack Detected(민감한 운영 인젝션 공격 탐지됨)은 Rails 애플리케이션에 대한 코드 인젝션 공격을 탐지하고 방어하는 데 더 높은 수준의 정확도와 적용 범위를 제공합니다(그림 1).
주요 장점
정확도 향상: 최신 탐지 기술이 코드 삽입 시도를 정확하게 식별하고 차단해 오탐을 최소화하고 정상적인 트래픽이 영향을 받지 않도록 보장
포괄적인 보호 범위: 광범위한 코드 인젝션 기법에 대한 광범위한 적용 범위로 Rails 애플리케이션을 강력하게 보호
고객을 대상으로 한 Ruby on Rails 코드 인젝션 공격
새로운 전용 Rails 룰은 전 세계에서 매일 수만 건의 Rails 코드 인젝션 시도를 탐지하고 있습니다. 최근 몇 주 동안 Adaptive Security Engine 룰은 하루에 약 25만 건을 탐지하며 최고치를 기록했으며, 일별 평균 약 7만 건의 공격을 방어했습니다 (그림 2).
지금까지 3000개 이상의 고유 공격 IP와 이러한 공격 시도의 표적이 된 2만 1000개 이상의 호스트가 관찰되었습니다. 이러한 시도는 전 세계에서 발생하고 있으며 대부분 독일에서 시작되었습니다(그림 3).
미래 전망
보안은 비즈니스의 중요한 측면이며 Akamai는 고객의 기대를 충족할 뿐만 아니라 그 이상의 솔루션을 제공하기 위해 최선을 다하고 있습니다. Akamai의 WAF는 포괄적인 보호 기능을 제공하도록 설계되었으며, Rails 코드 인젝션 탐지 룰이 추가됨에 따라 애플리케이션과 데이터를 보호하기 위한 방어 메커니즘이 더욱 강화되었습니다.
Akamai는 WAF 기능을 지속적으로 혁신하고 확장하면서 고객에게 가장 효과적이고 안정적인 보안 솔루션을 제공하는 데 주력하고 있습니다. Akamai는 제품 제공을 개선하고 웹 애플리케이션 보안의 선두 자리를 유지하기 위해 끊임없이 노력하고 있으니 더 많은 업데이트를 기대해 주세요.
Adaptive Security Engine과 Akamai의 웹 애플리케이션 및 API 보안 솔루션에 대해 자세히 알아보려면 Akamai 담당자에게 연락 하시기 바랍니다.