AuthProbe: Specification-Driven, Multi-Identity Detection of Broken Object-Level Authorization in Recruitment API
AuthProbe는 OpenAPI 명세와 다중 ID 테스트를 활용하여 채용 API에서 교차 ID 데이터 접근을 실제 소유권과 대조 검증함으로써 깨진 객체 수준 권한 부여(BOLA) 취약점을 자동으로 탐지하는 오픈 소스 블랙박스 보안 스캐너입니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
인터넷을 거대한, 북적이는 도시라고 상상해 보세요. 그 안의 모든 건물은 서로 다른 서비스를 나타내며, 그 건물 내부에는 수백만 개의 작고 개인적인 사물함이 들어 있습니다. 어떤 사물함에는 당신의 사진이 들어 있고, 어떤 곳에는 당신의 입사 지원서가, 또 어떤 곳에는 의료 기록이 들어 있습니다. 이 도시에는 건물의 문 앞에 서서 당신이 그곳에 속한 사람인지 확인하기 위해 신분증을 검사하는 보안 요원들이 있습니다. 하지만 여기서 까다로운 점이 있습니다. 당신이 건물에 들어갈 수 있는 유효한 신분증을 가지고 있다고 해서, 건물 안의 모든 사물함을 열 권리가 있다는 뜻은 아닙니다. "객체 수준 권한 부여 결함(Broken Object-Level Authorization)"은 마치 정문에서 신분증을 확인하고는, 복도를 따라 걸어가서 자기 것이 아닌 다른 사람의 사물함까지 마음대로 열 수 있게 해주는 경비원과 같습니다. 이것은 매우 큰 문제입니다. 왜냐하면 낯선 사람이 자물쇠를 부수거나 따는 대신, 그저 요청만 해도 시스템이 혼란에 빠져 "예"라고 대답함으로써 당신의 개인 데이터를 훔쳐갈 수 있기 때문입니다.
오랫동안 보안 전문가들은 더 나은 경비원을 만들기 위해 노력해 왔습니다. 그들은 특정 가면을 쓴 알려진 악당을 찾아내는 "방화벽"을 사용하고, 한 명의 사람인 척하며 건물을 돌아다니는 "스캐너"를 사용합니다. 하지만 이러한 도구들은 실제 위험을 놓치는 경우가 많습니다. 도둑은 무서운 가면을 쓸 필요도, 자물쇠를 부술 필요도 없습니다. 그저 유효한 신분증을 착용한 채로 자신의 것이 아닌 사물함을 요구하기만 하면 됩니다. 이 논문은 AuthProbe라는 새로운 종류의 보안 테스터를 소개합니다. AuthProbe를 단 한 명의 경비원이 아니라, 즉각적으로 신분을 바꿀 수 있는 스파이 팀이라고 생각해보세요. 그들은 건물을 한 번 훑고 지나가는 것이 아니라, "앨리스"로서 들어가서 앨리스가 열 수 있는 사물함이 무엇인지 확인한 다음, 즉시 "밥"으로 전환하여 앨리스의 사물함을 열려고 시도합니다. 만약 밥이 앨리스의 사물함을 열 수 있다면, 시스템에 권한 부여 결함이 있는 것이며 AuthProbe는 이를 즉시 잡아냅니다.
이 논문의 핵심 아이디어: 신분 전환 탐정
이 논문은 구직 신청 및 채용 데이터를 처리하는 컴퓨터 시스템의 특정 보안 구멍을 찾아내기 위해 설계된 무료 오픈 소스 도구인 AuthProbe를 제시합니다. 연구진이 이 도구를 만든 이유는 기존의 보안 스캐너들이 매우 교묘한 유형의 절도를 잡아내는 데 실패하는 것을 발견했기 때문입니다.
AuthProbe가 어떻게 작동하는지 간단한 비유를 들어 설명하겠습니다. 책을 빌릴 수 있는 도서관을 상상해 보세요. 일반적인 보안 스캐너는 "학생 A"로 들어가서 책 한 권을 빌린 뒤, "좋아, 학생 A는 책을 빌릴 수 있어. 문제없음!"이라고 말할 것입니다. 하지만 그 스캐너는 학생 A가 또한 학생 B의 예약된 책을 빌릴 권한이 있는지는 알지 못합니다.
AuthProbe는 다릅니다. 먼저 도서관의 공식 규칙 책자(OpenAPI 명세)를 읽기 시작하는데, 여기에는 모든 책의 종류와 그것을 요청하는 방법이 나열되어 있습니다. 그런 다음, 두 명 이상의 "테스터"(앨리스와 밥이라고 부릅시다)를 투입합니다.
- 발견 단계: AuthProbe는 앨리스에게 "당신의 개인 더미에 있는 책은 무엇인가요?"라고 묻고 그 목록을 기록합니다. 밥에게도 똑같이 수행합니다. 이제 AuthProbe는 정확히 어떤 책이 누구의 것인지 압니다.
- 전환: 다음으로, AuthProbe는 앨리스에게 밥의 소유인 책을 빌려보라고 요청합니다.
- 증거: 만약 도서관 시스템이 앨리스에게 "여기 밥의 책이 있습니다"라고 답한다면, AuthProbe는 무언가 잘못되었다는 것을 압니다. 단순히 추측하는 것이 아니라, 밥에게 그 책을 가져오게 하여 "실제" 버전이 어떤 모습인지 확인하여 재차 검증합니다. 만약 앨리스가 받은 책이 밥이 소유한 책과 일치한다면, AuthProbe는 객체 수준 권한 부여 결함(BOLA) 누출을 찾아낸 것입니다.
이 도구가 찾아낸 것 (그리고 찾아내지 못한 것)
연구진은 실험실에 구축한 두 가지 가짜 채용 시스템을 대상으로 AuthProbe를 테스트했습니다. 한 시스템은 수백만 명의 구직자 데이터가 노출된 실제 세계의 재난 상황을 모방하기 위해 의도적으로 망가뜨린 시스템입니다. 다른 시스템은 올바른 보안 체크가 적용되어 보완된, 즉 "강화된" 시스템입니다.
- 망가진 시스템에서: AuthProbe는 심어진 모든 결함을 찾아냈습니다. "앨리스"가 "밥"의 개인 채팅 기록과 연락처를 읽을 수 있음을 성공적으로 보여주었습니다. 또한 시스템이 단순하고 예측 가능한 숫자(예: 1, 2, 3)를 ID로 사용하고 있음을 발견했는데, 이는 도둑이 다음 숫자를 추측하여 더 많은 데이터를 훔칠 수 있음을 의미합니다.
- 강화된 시스템에서: AuthProbe는 단 하나의 문제도 발견하지 못했습니다. 데이터를 훔치려고 시도했지만, 시스템은 "아니요, 당신은 그것을 볼 수 없습니다"라고 올바르게 응답했습니다. 이는 매우 중요한데, 이 도구가 섣불리 경보를 울리지 않고, 확실히 문제가 있을 때만 보고한다는 것을 의미하기 때문입니다.
논문은 또한 도구의 속도를 측정했습니다. 연구진은 1개에서 50개의 항목을 보유한 시스템을 대상으로 테스트했습니다. 스캔에 걸리는 시간은 직선 형태로 증가했습니다. 즉, 항목 수가 늘어남에 따라 시간도 비례해서 늘어났습니다. 예를 들어, 50개의 항목이 있는 시스템을 스캔하는 데는 약 114밀리초(1초보다 훨씬 짧은 시간)가 걸렸습니다. 이는 이 도구가 소프트웨어 업데이트 시마다 자동으로 실행될 수 있는 최종 안전 게이트 역할을 할 만큼 충분히 빠르다는 것을 시사합니다.
이것이 왜 중요한가
이 논문은 현재 대부분의 보안 도구가 가면을 썼거나 무기를 들고 있는 사람만을 찾는 경비원과 같다고 주장합니다. 그들은 유효한 제복을 입고 있지만 자신의 것이 아닌 사물함을 훔치려는 사람을 놓칩니다. AuthProbe는 "다중 신분" 기법을 사용하여 이 문제를 해결합니다. 이 특정 유형의 절도를 잡으려면 동시에 두 명의 다른 사람인 척할 수 있어야 한다는 것을 증명합니다.
연구진은 AuthProbe가 블랙박스 도구라는 점을 명시하고 있는데, 이는 내부 코드를 볼 필요 없이 외부에서 시스템과 대화하며 작동한다는 의미입니다. 이 덕분에 자신이 사용하는 소프트웨어의 소스 코드에 접근할 수 없는 기업들에게도 매우 유용합니다. 그러나 논문은 또한 한계점도 인정합니다. AuthProbe는 자신이 볼 수 있고 이름을 붙일 수 있는 것들만 테스트할 수 있습니다. 만약 시스템이 데이터 목록을 완전히 숨기거나 ID에 예측 불가능한 비밀 코드를 사용한다면, AuthProbe는 테스트할 것을 찾지 못할 수도 있습니다. 이 도구는 다른 보안 도구들을 대체하는 것이 아니라, 그들의 파트너가 되도록 설계되었습니다.
요약하자면, AuthProbe는 당신이 웹사이트에 로그인했을 때 오직 당신의 데이터만 볼 수 있고 다른 사람의 데이터는 볼 수 없도록 보장하는 새로운 자동화된 방법입니다. 이는 복잡한 보안 문제를 단순하고 반복 가능한 체크 과정으로 바꾸어, 구직자들의 개인 정보를 속임수를 쓰는 도둑들로부터 안전하게 지켜줍니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.