많은 보안 관련 문제와 마찬가지로 미묘한 대답입니다. kolossus는 좋은 개요를 제공합니다.
공격자가 API를 손상시키는 방법과 보안 위반이 얼마나 발생하는지 이해하는 데 도움이됩니다.
대부분의 보안 침해는 버그 또는 감시로 인해 발생하며 공격자는 이러한 침입을 찾습니다. API를 손상시키려는 공격자는 먼저 API에 대한 정보를 수집하려고 시도합니다. 이는 API이므로 상세한 사용 설명서를 게시 한 것 같습니다.공격자는이 문서를 사용하여 사이트 충돌을 일으키고 (따라서 운이 좋으면 더 많은 정보를 노출하는) 여러 가지 방법을 시도하거나 예상하지 못한 방식으로 대응합니다.
당신은 공격자가 많은 시간을 가지고 있다고 가정해야하며 무한한 시간을 가진 도둑과 같은 모든 길을 시도하기 위해 공격을 스크립트합니다. 모든 문과 창을 시도하는 집안을 돌아 다니며 배우는 자물쇠 따기와 함께 모든 시도에서.
API가 getUserInfo(userid)
과 같은 메서드를 제공하고 userID가 정수인 경우 공격자는 사용자를 몇 명 이상 가지고 있는지 알아보기 위해 스크립트를 0 이상으로 반복 작성합니다. 음수를 시도하고 max(INT) + 1
을 시도합니다. 애플리케이션이 이러한 모든 경우에 정보를 유출 할 수 있으며, 개발자가 특정 오류를 처리하는 것을 잊어 버린 경우 의도 한 것보다 많은 데이터가 노출 될 수 있습니다.
API에 특정 데이터에 대한 액세스를 제한하는 논리가 포함되어있는 경우 (예 : 친구 목록에있는 사용자에 대해 getUserInfo
을 실행할 수 있습니다. 공격자는 버그 또는 감독으로 인해 일부 번호로 운이 좋을 수 있으며, 그가 얻는 정보가 유효한 사용자와 관련되어 있음을 알 수 있습니다. 응용 프로그램이 설계된 방식의 모델을 구축하십시오. 그것은 당신의 모든 자물쇠가 하나의 제조업 자로부터 온다는 것을 알고있는 도둑의 등가물이기 때문에, 자물쇠 따기 만하면됩니다.
이것은 공격자에게는 별 도움이되지 않을 수 있지만 삶의 질이 향상됩니다.
UUID 또는 다른 의미없는 식별자를 사용하려는 노력을 감안할 때 공격자가 더 어렵게 만드는 것이 좋습니다. 물론 가장 중요한 고려 사항은 아닙니다. 공격자로부터 API를 보호하기 위해 수행해야하는 5 가지 작업을 수행하지는 않지만 도움이됩니다.