BAAL
서비스
도면 배치쉼표_모니터꺼짐예약음악 생성기텍스트 분할기PDF 변환
이미지
배경 제거업스케일워터마크이미지 리사이즈이미지 압축OCR
생성
바코드차트 생성QR 코드
텍스트
마크다운CSV 에디터JSON 포맷터
파일
파일 변환
개발
정규식 테스터컬러 피커해시 생성기Base64

IT

개발, 하드웨어, 소프트웨어 토론

게시판으로

로컬 개발환경 보안, 나만 안 하고 있었나

🇰🇷 야근러1시간 전조회 88댓글 4
요즘 회사에서 CI/CD 파이프라인 손보다가 문득 든 생각인데, 나 로컬 환경 보안 진짜 아무것도 안 하고 있었구나 싶더라. 솔직히 백엔드 4년 하면서 서버 쪽 보안은 그래도 신경 쓴다고 썼거든. 방화벽 규칙, IAM 권한 최소화, 시크릿 매니저 쓰기... 근데 정작 내 맥북에서 npm install 칠 때 그 패키지가 내 파일시스템에 뭘 하는지는 한 번도 생각 안 해봤어. 이게 좀 웃기지 않냐. 서버는 꼼꼼하게 잠그면서 내 개발 머신은 문 활짝 열어두고 사는 거잖아. 샌드박스라는 개념 자체는 새로운 게 아니긴 한데. 브라우저도 탭마다 프로세스 격리하고, 모바일 앱도 각자 샌드박스 안에서 돌아가고. 근데 개발자 로컬 환경에서 명령어 단위로 격리한다는 건 확실히 최근 흐름이야. Zerobox 같은 도구들이 하는 게 딱 그건데, 쉘 명령어 하나 실행할 때 그 명령이 접근할 수 있는 파일 범위, 네트워크 범위를 제한해버리는 거지. 왜 지금 이게 뜨냐면 진짜 이유가 있어. 요새 개발이라는 게 남이 만든 코드 조합하는 비중이 엄청 높아졌잖아. node_modules 폴더 한번 열어봐. 내가 직접 의존성 넣은 건 열 몇 개인데 실제로 깔리는 패키지는 수백 개야. 그 수백 개 패키지의 postinstall 스크립트가 뭘 하는지 나는 모르거든. 솔직히 누가 일일이 확인해. 그래서 아예 실행 자체를 격리된 환경에서 하자는 발상이 나온 거지. 공급망 공격이라고 하던가. 오픈소스 패키지에 악성코드 심어서 배포하는 사례가 몇 년 전부터 계속 나오고 있고, npm이든 PyPI든 한번씩 터지면 영향 범위가 장난 아니잖아. 유명 패키지 이름 비슷하게 만들어서 오타 노리는 타이포스쿼팅도 있고. 이런 거 한번 당하면 로컬에 있는 ssh 키, 환경변수에 박아둔 API 토큰 다 털리는 건데. 나도 반성하는 게, .env 파일에 키 넣어두고 그냥 쓰잖아. 그 .env를 읽을 수 있는 권한이 내 셸에서 실행되는 모든 프로세스한테 열려있다는 거 알면서도 귀찮아서 그냥 쓰는 거야. 컨테이너 안에서 개발하면 좀 낫긴 한데 그것도 결국 컨테이너 내부에서는 다 열려있으니까. 도커가 이미 있는데 뭐가 다르냐고 할 수 있는데, 도커는 결국 서비스 단위 격리잖아. 내가 말하는 건 명령어 하나하나를 격리하는 거야. 예를 들어 npm install은 node_modules 디렉토리하고 package.json만 접근 가능하게 하고, 빌드 스크립트는 src 폴더 읽기 권한만 주고 dist 폴더 쓰기 권한만 주는 식으로. 최소 권한 원칙을 명령어 레벨까지 내리는 거지. 리눅스 커널에 있는 seccomp이나 네임스페이스 기능을 좀 더 쓰기 편하게 포장한 거라고 보면 돼. macOS도 이제 앱 샌드박싱 점점 강화하고 있고, 윈도우도 Windows Sandbox 기능 넣었고. OS 레벨에서 격리라는 개념이 기본값이 되어가는 느낌이야. 개발 도구도 그 흐름 따라가는 거고. 사실 제일 무서운 건 AI 코딩 도구들이랑 엮이는 부분이야. 요즘 AI한테 코드 생성시키고 바로 실행하는 워크플로우 많잖아. AI가 생성한 코드가 내 로컬에서 무슨 짓을 할지 모르는 상태에서 그냥 돌리는 거거든. 이럴 때 샌드박스 없이 돌리는 건 좀... 용감하다고 해야 하나. AI가 만든 셸 명령어가 rm -rf 날리면 그건 누구 책임이야. 결론이랄 것도 없는데, 그냥 샌드박스가 옛날에는 "있으면 좋은 것"이었다면 이제는 "없으면 불안한 것"이 된 거 같아. 개발 환경 자체가 공격 벡터가 되는 시대니까. 나도 이번 주말에 로컬 개발 환경 한번 정리해야지. 하겠다고 해놓고 넷플릭스 보겠지만. 관악구 자취방에서 보안 의식이 높아봤자 결국 귀찮음한테 지는 건 매번 같으니까.

댓글 4

댓글을 불러오는 중...