caffeine-library / release-everything

'Release의 모든 것'을 읽는 스터디
3 stars 0 forks source link

[keyword] 11장 - 보안 #33

Closed binchoo closed 7 months ago

binchoo commented 7 months ago

주제

'11장 - 보안'을 읽고 내용을 요약하거나, 중요✨ 하다고 생각하는 키워드 및 관련 설명을 코멘트로 달아주세요

연관 챕터

32

@caffeine-library/readers-release-everything

kth990303 commented 7 months ago

종종 정보 유출을 일으키는 미묘한 잘못이 있다. 존재하지 않는 자원이 요청되면 서비스가 '404 찾을 수 없음' 으로 응답하지만 존재해도 승인되지 않는 자원에 대해서는 서비스가 '403 인증 필요'로 응답한다고 가정하자. 이는 서비스가 어떤 자원의 존재 유무에 관한 정보를 외부에 유출한다는 의미다. (p.311)

디렉터리 순회 공격이 발생할 수 있다. ~ 심지어 요청에 파일 업로드가 포함될 경우, 호출 측은 서비스에서 수정이 허용된 모든 파일을 덮어쓸 수도 있다 (서버를 루트 권한으로 실행하지 말아야 하는 또 다른 이유다!) (p.312)

SameSite 속성은 브라우저가 문서의 출처가 대상의 출처와 동일할 때만 쿠키를 전송한다. (p.318)

leejaeseung commented 7 months ago

1.3 사이트 간 스크립팅 - XSS

입력값을 절대 신뢰하지 말라

문자열을 이어 붙여서 구조화된 데이터를 만들지 말라

1.4 취약한 접근 제어

조사 가치 경감

허가된 접근

1.6 민감 데이터 노출

binchoo commented 7 months ago

랜섬웨어 ... 영국 국민 보건 서비스가 큰 타격을 입어 엑스레이 촬영이 취소되고, 뇌졸중 센터가 폐쇄되고, 수술이 연기되어 여러 생명이 위험에 처했다. (p. 300)

OWASP 상위 10

1. Injection

Injection은 구문 분석기나 인터프리터에 대한 공격이며, SQL 삽입이 유명하다.

2. 인증과 세션 관리

💬 제가 개발했던 출석체크 챗봇 역시 쿠키 내 저장된 세션을 유저께서 직접 제공하시도록 (정당한 하이재킹?) 하여 게임사 API를 호출하는 방식이었습니다. 전송/저장 암호화 모두 적용했으나, 게임 커뮤니티 이용규약 등, 해당 방식에 대한 부담으로 더 이상 챗봇을 운영하고 있진 않습니다.

💬 저자가 한 질문 스프링 기준으로 답변

  1. 자바 키스토어에 공개/사설키 쌍 생성
  2. 스프링 실행시 해당 키스토어 참조하여 서버 인증서로 사용
  3. cURL 작성시 --cacert로 1에서 만든 공개키를 신뢰하여 HTTPS 엔드포인트 호출. jksp12pem으로 변환 필요.
kth990303 commented 7 months ago

재빈님 키워드 정리 (Ex. OWASP 상위 10) 3.17 발표하면 close 할 것