본문 바로가기

보안 뉴스 & 보안 기술

[보안뉴스] 20201121 해커들이 좋아하는 API 공격 방법 4가지

www.boannews.com/media/view.asp?idx=92617

 

해커들이 좋아하는 API 공격 방법 4가지

애플리케이션 프로그래밍 인터페이스(API)는 요즘과 같은 IT 기술 공유 시대에 필수적인 요소로 자리를 잡았다. API를 공유한다는 건 개발자나 웹사이트 소유자들에게 기존 애플리케이션의 소스

www.boannews.com

 애플리케이션과 서비스 사이에서 활발히 공유되고 있는 API는 기본적인 보안 구멍이 많다.

광범히 하게 사용되고 있고, 공격 효과가 대단히 높은 편이며, 심지어 간단한 해킹 기술로도 공략이 가능하기 때문이다.

이를 방지하기위해서, 사용자와 개발자 모두 기본 수칙을 지켜 사용해야 한다.

 

API(Application Programming Interface)는 개발자에게 기존 애플리케이션의 소스코드 일부를 제공하는 것이다.

이를 활용해서, 개발자들이 자신들의 필요에 맞게 그 소스코드를 변경하여 사용할 수 있다.

 

 


API 공격 방법 4가지


1. 코드 주입(Code Injection) : 사이버 공격자들이 멀쩡한 API를 자신들의 목적에 맞게 코드를 오염시키는 방법

엉뚱한 자들과 민감한 정보를 공유하거나, 특정한 상황에서 인증 정보가 없이도 로그인하거나 또는 추가 멀웨어를 심는 "코드가 주입된 API"가 가능합니다.

해결) 여러 가지 "수동 점검"을 진행한다. 즉, 요청 확인을 강도 높게 실시해야 한다.

다시 말하면, 다각도로 기능을 점검함으로써 전혀 예상치 못한 반응이 나오는지 아닌지를 살피는 것이다.

그러면 누군가 중간에서 악성 코드를 주입했더라도 알아챌 수 있게 된다.

*멀웨어 : 정상적인 작동을 방해하거나 사용자의 컴퓨터, 휴대폰, 태블릿 또는 기타 디바이스를 감염시키도록 설계된 악성 코드를 총칭하는 이름

 

2. 리플레이 요청 공격(Replay Attack) : 악성 행위자들이 반복적으로 요청을 전송하는 것

일종의 브루트포스 공격으로, 악성 요청이 거부되더라도 공격자는 얼마든지 그다음 요청을 전송할 수 있다.

해결) HMAC 인증을 활용해 요청 시도 제한 규정을 적용해야 한다. 또한 다중 인증과 생애 주기가 짧은 오오스(OAuth) 접근 토큰을 활용하는 것도 방어에 큰 도움이 된다.

 

3. 요청 조작 공격(CSRF) : 이메일 주소를 변경하거나 은행 계좌로부터 돈을 보내는 등의 결과를 이끌어 내는 공격

주로 서버에서 생성되는 토큰들 중에서도 HTML 코드에 감춰져 있는 토큰들을 활용해 CSRF 공격을 한다.

이 토큰들은 요청이 만들어질 때마다 요청과 함께 서버로 전송되어 서버는 해당 요청을 신뢰할 수 있는지 확인한다.

해결) 이미지상의 숫자/문자가 아니라면 해당 요청을 거부하는 CAPTCHA, form 태그 입력 시 POST방식을 지향하는 것이 기본이다.

 

4. 사용자 인증 파괴 : 인증된 사용자인 것처럼 스스로를 위장시키고 각종 행위를 하는 것

API 개발자들이 인증 시스템에 철저하게 신경을 쓰지 않아, 잘못 만들거나 구축하여 발생한다.

해결) 아무 API 요청에 HTTP 헤더의 형태로 추가할 수 있는 타임스탬프 요청을 활용한다.

이렇게 하면, 서버가 현재의 타임스탬프와 요청에 붙어 있는 타임스탬프를 비교하여 타당한 경우 인증이 통과한다.