[ 이론 ]
keystore는 열쇠 보관하는 곳이다. 키 스토어 외에도 truststore라고도 자주 한다. 일반적으로 신뢰할 수 있는 인증서 또는 인증기관의 인증서(기본적으로 공개키 및 발급자 정보만 포함)만 포함한다.
File based keystores
파일 기반 keystore는 결국 파일 시스템에 키가 있는 것. 파일 기반 키저장소에 공용 인증서를 저장하는 건 매우 일반적이다.
Database keystores
키, 공인 인증서도 DB에 저장할 수 있다.
Hardware keystore하드웨어 키 저장소는 실제 키를 포함하는 일종의 하드웨어가 있는 시스템.
모든 종류의 시스템에서 가장 큰 문제는 기본 구성의 사용이다. ex) 라우터의 기본 사용자 이름/아홈, 키 저장소에 대한 기본 암호, 암호화되지 않은 기본 모드 등
Java cacerts
Cacert 파일에 암호를 넣는 것은 몇가지 의미가 있다. 신뢰할 수 있는 인증 기관을 보호해야 하고 알 수 없는 자체 서명 인증 기관을 너무 쉽게 추가할 수 없는 경우 중요하다.
Protecting your id_rsa private key
GitHub 및 기타 사이트에 대해 ssh 키를 사용하고 있으며 디스크를 암호화되지 않은 상태로 두고 계십니까? 클라우드 드라이브에서도? 기본적으로 SSH 키 쌍을 생성하면 개인 키가 암호화되지 않은 상태로 유지된다. 사용이 편리하고 본인만 갈 수 있는 곳에 보관하면 충분한 보호 기능을 제공한다. 그러나 키는 암호화하여, 키를 사용할땐 암호를 다시 입력하게 하는 것이 좋다.
SSH username/password to your server일부 호스팅 공급자에게 가상 서버를 가져올 때 일반적으로 기본값이 안전하지 않은 경우가 많다. 그 중 하나는 서버에 대한 ssh가 기본 포트 22에서 실행되어 사용자 id/pw 시도를 허용하는 것이다. 가장 먼저 해야할 일 중 하나는 사용자 루트로 ssh 접근을 막아야하고 사용자 id/pw를 사용하여 ssh 접근을 막으며 유효하고 강력한 ssh 키만 사용하여 ssh 접근 구성을 변경하는 것이다. 그렇지 않은 경우 서버에 로그인하려는 무차별 시도가 있을 수 있다.
[ 문제 ]
Assignment
이 연습에서는 도커 컨테이너 이미지에 실수로 남겨진 암호를 검색하자. 실행 중인 컨테이너(ex. 도커)에 로그인하고 /root에 있는 암호 파일에 액세스하여 메시지를 해독할 수 있다. 그 다음 컨테이너 내에서 openssl 명령을 사용한다. 다음 도커 이미지에서 암호를 찾을 수 있다.
docker run -d webgoat/assignments:findthesecret
echo "U2FsdGVkX199jgh5oANElFdtCxIEvdEvciLi+v+5loE+VCuy6Ii0b+5byb5DXp32RPmT02Ek1pf55ctQN+DHbwCPiVRfF
QamDmbHBUpD7as=" | openssl enc -aes-256-cbc -d -a -kfile ....
[ 풀이 ]
1) 도커 파일
2) 도커 이미지 내 원하는 파일 서버로 가져오기
3) 서버 수정하고 도커 이미지에 다시 cp
4) webgoat로 접근하는데 root로 뜸
5) openssl
Leaving passwords in docker images is not so secure
'강의 및 교육 > Inflearn - Webgoat' 카테고리의 다른 글
Insecure Deserialization (0) | 2022.02.23 |
---|---|
Missing Function Level Access Control - 3 (0) | 2022.02.22 |
Crypto Basics - 6 (0) | 2022.02.21 |
Insecure Direct Object References - 2, 3, 4, 5 (0) | 2022.02.19 |
XXE - 11. Blind XXE assignment (0) | 2022.02.19 |