주요 API 보안 위험 및 완화 방법
게시 됨: 2022-09-07마이크로서비스의 엄청난 증가와 애플리케이션을 신속하게 배포하려는 지속적인 노력으로 인해 API는 모든 기업가에게 인기 있는 이름이 되었습니다.
그러나 원활한 사용자 경험을 위해 모든 작은 기능이 다른 소프트웨어 또는 제품과 연결되면서 API는 점점 더 보안 해킹의 허브가 되고 있습니다. Gartner 의 효과적인 API 보안 전략을 구축하는 방법 보고서 에서는 2022년까지 API 보안 위험 이 데이터 유출로 이어지는 가장 빈번한 공격 중 하나가 될 것이라고 예측합니다.
그러나 현대 기업가에게 API 보안 전략이 있어야 하는 이유는 무엇입니까? 기술에 특별한주의를 기울이는 이유는 무엇입니까? 이 문서에서 이에 대한 답변과 API 보안 위험을 완화하는 방법을 알아봅니다.
API 보안을 개선하는 방법에 관심을 가져야 하는 이유는 무엇입니까?
API는 비즈니스가 진정한 디지털이 되도록 돕습니다. 응용 프로그램이 무엇이든 API(응용 프로그래밍 인터페이스)는 응용 프로그램을 다른 소프트웨어나 기능과 연결하므로 처음부터 응용 프로그램을 구축하는 시간을 절약할 수 있습니다.
이제 API에 특별한 초점을 맞추는 이유는 API가 비즈니스 성공에 미치는 영향의 수준 때문입니다.
API의 비즈니스 이점
비용 절감 : API를 통해 기업은 다른 회사의 기능과 데이터를 사용할 수 있으므로 이러한 기능을 사내에서 만들 필요가 없습니다. 소프트웨어 개발 비용 을 크게 절감 하는 데 도움이 되는 이벤트입니다 .
더 나은 고객 서비스 : API는 여러 소프트웨어를 연결하여 기업에 고객과 고객이 원하는 것에 대한 종합적인 관점을 제공합니다. 이 정보는 회사가 소비자와 더 잘 상호 작용하고 정보에 입각한 결정을 내리는 데 도움이 됩니다.
업계 수준의 협업 향상 : API를 통해 기업은 업계 전반에 걸쳐 다른 회사와 연결할 수 있으며, 이들은 온라인 서비스 및 플랫폼을 강력하게 만들 수 있습니다. 이는 결과적으로 파트너십을 개선하고 새로운 비즈니스 기회를 창출하며 비즈니스 운영의 효율성을 향상시킵니다.
비즈니스 인텔리전스를 위한 데이터 수집 : 비즈니스는 API를 사용하여 고객의 선호도 및 행동을 수집할 수 있습니다. 이 정보는 현재 시장 동향과 고객의 요구에 대한 심층적인 이해를 위해 분석됩니다.
새로운 수익 모델 생성 : API는 기업에게 서비스, 디지털 제품을 홍보하고 판매할 수 있는 여러 플랫폼을 제공합니다. 이 모델을 통해 기업은 데이터를 다른 회사에 판매하는 것부터 기존 API를 기반으로 새로운 소프트웨어를 구축하는 것까지 무엇이든 할 수 있습니다.
비즈니스에서 API의 이점은 다양합니다. 그러나 API 보안 위험도 마찬가지입니다. 해커가 회사의 API 보안 설계 테스트를 좋아하는 두 가지 주요 이유가 있습니다.
해커가 API를 좋아하는 이유
- 회사 데이터에 액세스하는 손쉬운 방법 – API를 사용하면 해커가 여러 소프트웨어 프로그램을 통해 민감한 정보를 포함하여 저장된 데이터에 직접 액세스할 수 있습니다.
- 보안 조치를 우회하는 쉬운 모드 – 많은 회사에서 방화벽을 사용하여 해커로부터 시스템을 보호합니다. 그러나 API 보안 전략에 대해 덜 생각하면 해커가 이 백게이트를 통해 소프트웨어에 쉽게 들어갈 수 있습니다.
그래서 웹앱 QA팀에서 특별히 주목하는 API의 장단점을 소개합니다.
이제 API 보안 모범 사례 목록이 기존 보안의 목록과 다른 이유가 궁금할 것입니다. 상위 API 보안 위험과 이를 완화하는 방법을 살펴보기 전에 이에 대한 답변을 드리겠습니다.
기존 보안과 차별화되는 API 보안 설계의 핵심 요소
기존 웹 앱 보안과 웹 API 보안 모범 사례에는 큰 차이가 있습니다. 차이점은 구조화 방식 때문입니다.
해자가 없고 여러 개의 구멍이 있는 성 – 이전에는 기존 네트워크가 443(HTTPS) 및 80(HTTP)과 같은 공통 포트에서만 보호되어야 했습니다. 오늘날 웹 앱에는 서로 다른 프로토콜을 사용하는 여러 API 엔드포인트가 있으므로 API가 기능 세트를 확장할 때 보안 관리가 어려워집니다.
수신 요청 형식이 자주 변경됨 – API는 DevOps 환경에서 지속적으로 발전하며 대부분의 WAF는 이러한 탄력성을 수용할 수 없습니다. 따라서 API가 변경될 때마다 기존 보안 조치를 수동으로 재구성하고 조정해야 하며, 이는 리소스의 시간을 소모하는 오류가 가득한 방법입니다.
클라이언트는 웹 브라우저를 사용할 수 없습니다 – 대부분의 마이크로 서비스 API는 모바일 애플리케이션 또는 소프트웨어 구성 요소에서 사용됩니다. 클라이언트는 브라우저를 사용하지 않기 때문에 웹 보안 도구는 브라우저 확인 기능을 사용할 수 없으며 유해한 봇을 탐지할 수 없습니다.
API 구조의 이러한 차이는 여러 API 보안 위험에 노출되어 웹 앱 개발자와 QA 팀이 솔루션을 찾고 실시간으로 API 보안을 개선하는 것이 중요하다고 간주합니다.
주요 API 보안 위험 및 완화 방법
위험에 대해 알아보기 전에 API 보안 체크리스트가 명확하지 않음을 알려드립니다. 모든 허점을 해결했다고 생각하고 새로운 허점이 나타날 것입니다. 이에 대한 해결책은 해커의 입장이 되어 앱이 API를 사용하는 방식과 간과된 격차를 다시 살펴보는 것입니다.
이것이 장기적이고 지속적인 솔루션이지만 가장 일반적인 API 보안 위험을 조사하는 것이 좋은 출발점이 될 것입니다.
1. 안전하지 않은 페이지 매김
대부분의 API는 사용자 또는 위젯과 같은 엔터티 목록인 리소스에 대한 액세스를 제공합니다. 브라우저에서 소프트웨어를 사용하는 클라이언트의 경우 API는 일반적으로 이 목록을 필터링하고 페이지를 매겨 클라이언트에 반환되는 항목 수를 제한합니다.
그러나 엔터티가 PII 또는 기타 정보와 함께 제공되는 경우 해커는 엔드포인트를 스크랩하고 데이터베이스의 모든 엔터티 목록을 가져올 수 있습니다. 엔티티가 실수로 민감한 정보를 노출하는 경우 이는 매우 위험할 수 있습니다. 또한 해커가 웹 앱의 사용 통계를 보고 이메일 목록에 액세스할 수 있게 됩니다.
솔루션: 페이지 매김 공격으로부터 보안을 유지하려면 요청 수준이 아닌 사용자 또는 API 키가 특정 기간 내에 액세스할 수 있는 단일 리소스의 항목 수를 추적할 수 있어야 합니다. 개별 사용자 수준에서 API 리소스 액세스를 측정하여 "1시간 동안 10,000개 항목 터치"와 같은 임계값을 충족한 API 키 또는 사용자를 차단할 수 있습니다.
2. 안전하지 않은 API 키 생성
대부분의 API는 일반적으로 JWT(JSON Web Token) 또는 API 키를 통해 보호됩니다. 이를 통해 보안 도구가 비정상적인 동작을 식별한 다음 API 키에 대한 액세스를 차단할 수 있으므로 API를 보호할 수 있습니다. 그러나 해커는 웹 해커가 DDoS 보호를 방해하기 위해 IP 주소를 사용하는 것과 마찬가지로 사용자로부터 방대한 API 키 풀을 얻고 활용함으로써 이러한 접근 방식을 여전히 능가할 수 있습니다.
솔루션: 이러한 공격을 보호하는 확실한 방법은 사람이 서비스에 가입한 다음 API 키를 생성하도록 하는 것입니다. 반면에 봇 트래픽은 2-Factor Authentication 및 Captcha와 같은 요소로 저장할 수 있습니다.
3. 우발적인 키 노출
API 키가 사용되는 방식은 해킹 및 유출 사례에 노출됩니다.
- API는 무기한 획득하도록 설계되어 해커가 만료되지 않은 API 키를 획득할 가능성을 높입니다.
- API 사용자는 CURL 또는 Postman을 통해 디버깅할 때와 같이 웹 앱의 자격 증명에 직접 액세스할 수 있습니다. 이에 따라 개발자는 Stack Overflow 또는 GitHub Issues와 같은 공개 포럼에서 API 키로 CURL 명령을 복사/붙여넣기만 하면 됩니다.
- API 키는 일반적으로 식별 정보가 필요하지 않은 전달자 토큰입니다. API는 2단계 인증 또는 일회용 토큰과 같은 요소를 활용할 수 없습니다.
솔루션 : 키 노출을 보호하는 방법은 하나 대신 두 개의 토큰을 사용하는 것입니다. 여기서 새로 고침 토큰은 환경 변수로 저장되며 수명이 짧은 액세스 토큰을 생성하는 데 사용할 수 있습니다. 이러한 새로 고침 토큰과 달리 개발자는 제한된 기간 동안만 리소스에 액세스할 수 있는 수명이 짧은 토큰을 사용할 수 있습니다.
4. 디도스 공격
API가 고객이 프로그래밍 방식으로 API 플랫폼에 액세스할 수 있는 새로운 비즈니스 모델을 여는 것은 사실이지만, 이는 DDoS 보호를 어렵게 만듭니다. 대부분의 DDoS 보호는 DDoS 공격 중에 악의적인 행위자의 요청을 흡수하고 거부하도록 설계되었습니다. API 제품의 경우 모든 트래픽이 봇 트래픽처럼 보이기 때문에 이는 더욱 어려워집니다.
솔루션 : 이 컨텍스트에서 API 보안 모범 사례는 API 내에만 있습니다. 웹 앱에 대한 모든 액세스에는 API 키가 필요하므로 API 키가 없는 요청을 발견하면 자동으로 거부할 수 있습니다.
5. 잘못된 서버 보안
좋은 서버 위생을 유지하는 것과 관련하여 API는 웹 서버와 크게 다르지 않습니다. SSL 인증서가 잘못 구성되거나 HTTPS가 아닌 트래픽을 통해 데이터가 쉽게 유출될 수 있습니다.
최신 웹 앱의 경우 비 HTTPS 요청을 수락할 이유가 거의 없지만 고객이 실수로 웹 앱 또는 CURL에서 비 HTTP 요청을 발행하여 API 키가 노출될 수 있습니다.
솔루션: API 보안에 대한 모범 사례 에서는 SSL 테스트 도구를 통해 SSL 구현을 테스트해야 한다고 명시되어 있습니다. 또한 로드밸런서를 통해 non-HTTP를 차단해야 합니다.
6. 불충분한 로깅
대부분의 글로벌 침해 연구에 따르면 데이터 침해 사례를 식별하는 기간은 200일 이상입니다. API 로깅에 대해 정의된 API 보안 모범 사례가 없으면 해커가 취약점을 사용하여 더 많은 취약점을 만들 수 있습니다.
솔루션: 사용하는 API 로깅 메커니즘이 API 요청을 추적할 뿐만 아니라 행동 분석을 위해 사용자에게 다시 연결하고 최소 1년 동안 저장하는지 확인해야 합니다. 이러한 메커니즘은 데이터가 삭제되지 않도록 보호해야 합니다.
7. 승인 처리를 하지 않는 경우
대부분의 API 개발자는 OAuth 또는 API 키와 같은 글로벌 인증 방법을 추가하여 사용자가 누구인지 확인하지만 인증과 다른 권한 부여를 만들고 유지하기가 어렵습니다.
권한 부여는 앱의 논리에 따라 다르기 때문에 개발자가 웹 앱을 테스트할 때 놓치는 영역입니다. 이제 개체 식별자에 충분한 엔트로피가 없으면 해커는 반복을 통해 다른 ID를 쉽게 테스트하고 시스템에 들어갈 수 있습니다.
솔루션: 인증한 사용자가 API 응답을 생성하는 데 필요한 리소스에 액세스할 수 있는 권한이 있는지 확인하십시오. 여기에는 그림의 개체와 연결된 ACL(액세스 제어 목록)에 대한 확인이 포함될 수 있습니다.
다음은 웹 앱 개발자와 기업가가 접하는 가장 일반적인 7가지 API 보안 위험과 해당 솔루션입니다. 그러나 이전에 언급했듯이 이 목록은 명확하지 않은 경우 웹 앱이 오래되고 API 기능이 확장됨에 따라 더 많은 허점이 나타날 수 있습니다.
Appinventiv에서는 API를 구축할 때 개발 프로세스가 시작되기 전에 API 보안 테스트를 위한 대략적인 체크리스트를 만듭니다. 이 외에도 최고의 API 관리 도구를 사용하여 소프트웨어가 장기적인 견고성과 보안을 위해 구축되도록 합니다.
다음은 우리가 따르는 API 보안 체크리스트입니다.
API 보안 모범 사례의 Appinventiv 체크리스트
웹 앱 개발 회사로서 우리를 구별하는 것은 우리가 보안 우선 개발 접근 방식을 따른다는 사실입니다. 즉, API를 빌드하거나 통합할 때마다 앱의 보안을 최우선으로 합니다. 당사의 QA 전문가 팀은 귀하의 웹 앱에 허점이 없고 해킹을 방지할 수 있는지 확인합니다. 이를 보장하는 방법은 API 보안 모범 사례의 균형 잡힌 체크리스트를 만드는 것입니다.
1. 취약점 찾기
API 보안을 개선하는 주요 방법은 API 수명 주기의 안전하지 않은 영역을 식별하는 것입니다. 필요한 것은 API를 유지 관리 및 기능 만료와 같은 자체 개발 단계가 있는 소프트웨어 아티팩트로 처리하여 추적하는 것입니다.
2. OAuth 사용
API 보안 위험의 가장 큰 격차 중 하나는 권한 부여 및 인증에 대한 액세스 제어입니다. OAuth에 있는 강력한 제어 방법입니다. Appinventiv에서는 사용자 자격 증명을 표시하지 않고 타사 서비스에서 액세스할 수 있는 정보를 허용하기 위해 토큰 기반 인증 프레임워크를 사용합니다.
3. 토큰 사용
일반적으로 토큰을 사용하는 것은 최고의 API 보안 모범 사례 중 하나입니다. 개발자는 신뢰할 수 있는 ID에 대한 제어된 액세스를 설정하기 위한 효과적인 방법으로 ID에 할당된 토큰을 사용할 수 있습니다.
4. 데이터 암호화
API 보안을 향상시키는 확실한 방법은 TLS(전송 계층 보안)를 사용하여 데이터를 암호화하는 것입니다. 우리는 API 작업을 할 때 승인된 사용자만을 통해서만 데이터 수정 및 암호 해독을 보장하기 위해 개발자가 서명을 필요로 하는 관행을 따릅니다.
5. 속도 조절 및 제한 사용
API 의 인기가 지속적으로 높아짐 에 따라 DDoS 공격과 같은 해킹 가능성도 높아지고 있습니다. DDoS 공격 및 보안 및 성능에 영향을 미치는 문제와 같은 API 급증을 방지하기 위해 개발자는 API를 호출할 수 있는 방법과 빈도에 속도 제한을 설정합니다. 이 속도 제한 기능은 또한 연결을 조절하고 데이터 액세스와 데이터 가용성의 균형을 유지합니다.
6. API 게이트웨이 사용
API 게이트웨이 사용은 주요 API 보안 모범 사례 중 하나로 간주됩니다. API 트래픽의 시행 지점 역할을 합니다. 우리는 기업이 트래픽을 인증하고 API가 사용되는 방식을 제어 및 모니터링할 수 있도록 하는 게이트웨이를 구축합니다.
7. 서비스 메시 사용
API 게이트웨이 외에도 서비스 메시를 사용하여 웹 앱에 관리 계층을 추가합니다. 서비스 메시는 한 서비스에서 다른 서비스로 요청을 라우팅하기 때문입니다. 또한 기능이 함께 작동하는 방식을 최적화하는 동시에 적절한 액세스 제어, 인증 및 보안 조치가 통합되도록 합니다.
8. 제로 트러스트 공식
전통적인 보안 모델에서 사용되는 공식은 단순합니다. "내부"는 신뢰해야 하고 "외부"는 신뢰해서는 안 됩니다. 그러나 네트워크는 이제 복잡해졌으며 특히 원격 사용자가 소프트웨어를 사용하기 때문에 ZTM(제로 트러스트 모델)을 갖는 것이 중요합니다. ZTM을 통해 보안의 초점은 위치에서 리소스 및 사용자로 이동합니다.
9. 매개변수 검증
매개변수 유효성 검사는 API 보안을 위한 또 다른 모범 사례 중 하나입니다. 들어오는 데이터가 해를 끼치 지 않도록 하는 데 도움이 됩니다. 프레임워크에서 데이터는 허용 가능한 입력 시스템을 보고하는 엄격한 스키마에 대해 검증됩니다.
10. 위협 모델 구축
API 보안 위험을 완화하는 방법에 대한 체크리스트의 마지막은 위협 모델링입니다. 위험을 찾고 평가하는 데 사용하는 접근 방식입니다. 우리는 이를 통제된 방식으로 앱 취약점을 평가, 완화 및 방지하기 위한 예방적 접근 방식으로 사용합니다.
이러한 API 게이트웨이 보안 모범 사례를 바탕으로 사용자가 확신을 가지고 작업할 수 있는 강력하고 안전한 시스템을 구축할 수 있습니다. 결과? 해킹 및 보안 침해 사례가 없는 앱을 만든 실적이 있습니다.
이별 메모
기업이 계속해서 모놀리식 시스템을 마이크로서비스로 전환함에 따라 API는 계속 취약해질 것입니다. 따라서 기본 및 클라우드 API 보안 모범 사례를 따라야 합니다.
위에서 언급한 목록은 시작하기에 좋은 위치이지만 지속적인 업그레이드가 필요합니다. 이미 여러 마감일을 조정하는 기업가와 사내 개발 팀에게 이러한 목표를 계속해서 유지하는 것은 어려운 일이 될 수 있습니다. 여기에서 100% 해킹 방지 앱을 제공한 실적이 있는 회사와 파트너 관계를 맺을 수 있습니다. Appinventiv와 같은 회사.
귀하의 소프트웨어가 아무리 복잡하더라도 당사는 광범위한 품질 보증 서비스를 통해 소프트웨어를 안전하고 강력하게 만들 수 있습니다. 지금 바로 연락 하여 제품의 안전한 미래를 시작하십시오.