API 키를 유출하고 지루한 교훈을 얻었습니다
API 키를 스크립트에 붙여넣고 비공개라고 생각한 저장소에 커밋했는데 3일 후에 알 수 없는 요금이 청구되었습니다. 노보드
API 키를 스크립트에 붙여넣고 비공개라고 생각한 저장소에 커밋했는데 3일 후에 알 수 없는 요금이 청구되었습니다. 아무도 나를 해킹하지 않았습니다. 방금 문을 열어두었는데 누군가 들어왔습니다.
수정은 지루하고 총체적이었습니다. 키를 회전하고, 비밀을 환경 변수로 이동하고, 키 모양 문자열이 내 컴퓨터를 떠나기 전에 이를 포착하는 사전 커밋 검사를 추가했습니다. 그 어느 것도 영리하지 않았습니다. 그 모든 것이 필요했습니다.
제가 놀란 것은 속도였습니다. 내 코드에서 오타를 발견한 것보다 불량 요금이 더 빨리 나타났습니다. 봇은 몇 분 안에 공개 저장소에서 키를 긁어내고, 공개된 곳 어디든 푸시되는 저장소는 누출이 일어나기를 기다리고 있습니다.
이제 공유할 수 있는 파일에 닿는 순간 모든 키를 태워진 것으로 처리합니다. 리터럴 대신 변수를 사용하는 데 10초가 소요되는 시간이 한 번 이상 그 가치를 발휘했습니다.
기능이 아니기 때문에 아무도 이에 대해 경고하지 않습니다. 위생입니다. 하지만 위반이 화려했든 부주의했든 상관없이 법안은 동일하며 내 경우는 두 번째 유형이었습니다.
