AWS - Lambda Persistence
Lambda
더 많은 정보를 확인하려면:
pageAWS - Lambda EnumLambda 레이어 지속성
람다가 실행될 때 임의의 코드를 실행하기 위해 레이어에 백도어를 도입할 수 있습니다.
pageAWS - Lambda Layers PersistenceLambda 익스텐션 지속성
Lambda 레이어를 남용하여 익스텐션을 남용하고 람다에 지속성을 부여하고 요청을 도용하고 수정할 수도 있습니다.
pageAWS - Abusing Lambda Extensions리소스 정책을 통해
외부 계정에 다른 람다 작업(호출 또는 코드 업데이트)에 대한 액세스 권한을 부여할 수 있습니다.
버전, 별칭 및 가중치
람다는 다른 버전을 가질 수 있습니다(각 버전마다 다른 코드). 그런 다음 람다의 다른 별칭을 만들고 각각에 다른 버전을 설정할 수 있습니다. 이렇게 하면 공격자가 백도어가 있는 버전 1과 합법적인 코드만 있는 버전 2를 만들고 각각에 다른 가중치를 설정할 수 있습니다. 이렇게 하면 요청의 1%에서만 버전 1을 실행하여 은밀하게 유지할 수 있습니다.
버전 백도어 + API Gateway
람다의 원본 코드를 복사합니다.
원본 코드를 백도어하는 새 버전을 만듭니다(또는 악의적인 코드만 있는 경우). 해당 버전을 $LATEST에 발행 및 배포합니다.
람다와 관련된 API 게이트웨이를 호출하여 코드를 실행합니다.
원본 코드로 새 버전을 만들고 해당 버전을 $LATEST에 발행 및 배포합니다.
이렇게 하면 이전 버전에 백도어 코드가 숨겨집니다.
API Gateway로 이동하여 새 POST 방법을 만들고(또는 다른 방법을 선택) 백도어 버전의 람다를 실행합니다:
arn:aws:lambda:us-east-1:<acc_id>:function:<func_name>:1
arn의 마지막 :1은 함수의 버전을 나타냅니다(이 시나리오에서 버전 1은 백도어된 것입니다).
생성된 POST 방법을 선택하고 작업에서 **
API 배포
**를 선택합니다.이제 POST를 통해 함수를 호출하면 백도어가 호출됩니다.
Cron/이벤트 액추에이터
무언가가 발생하거나 시간이 경과할 때 람다 함수를 실행할 수 있다는 사실은 람다를 통해 지속성을 얻고 감지를 피하는 일반적인 방법입니다. 여기에는 람다를 만들어 AWS에 대한 존재를 더 은밀하게 만드는 아이디어가 있습니다.
새 사용자가 생성될 때마다 람다는 새 사용자 키를 생성하고 공격자에게 전송합니다.
새 역할이 생성될 때마다 람다는 침해된 사용자에게 역할 가정 권한을 부여합니다.
새 클라우드트레일 로그가 생성될 때마다 해당 로그를 삭제/변경합니다.
最終更新