검색
제목, 요약, 태그에서 찾습니다.
11건
- AWS CloudTrail 이벤트 기록에서 누가 언제 무엇을 했는지 읽기
CloudTrail 이벤트 기록 화면에서 최근 변경 이벤트를 보고, 리소스 이름으로 걸러 한 보안 그룹의 생성부터 삭제까지를 추적합니다. 이벤트 상세와 JSON 레코드에서 사용자, 시각, 호출 내용, MFA 여부를 읽는 방법을 정리합니다.
- AWS S3 서버 액세스 로깅을 켜고 로그 전용 버킷 연결하기
버킷 두 개를 만들고 한쪽의 서버 액세스 로깅을 다른 쪽 로그 전용 버킷으로 보내도록 설정합니다. 로깅을 켜면 S3 콘솔이 대상 버킷에 자동으로 붙이는 정책을 읽고, 실습이 끝나면 두 버킷을 삭제합니다.
- Flask에서 소유자 검사로 IDOR 막기
로그인만 확인하고 주문의 주인은 확인하지 않는 Flask API가 남의 주문을 돌려주는 것을 pytest 한 건으로 확인합니다. 쿼리에 소유자 조건을 넣고 번호를 받는 엔드포인트에 같은 데코레이터를 붙인 뒤, 사용자와 역할 조합 표로 회귀 테스트를 만듭니다.
- Kibana 대시보드와 GeoIP 지도로 접속 현황 보기
Docker로 Elasticsearch 8.19와 Kibana 8.19를 띄우고, ingest pipeline의 geoip 프로세서로 접근 로그의 IP에 위치 정보를 붙입니다. 상위 IP, 상태 코드, 시간대별 요청 수, 지도 패널을 대시보드로 저장하고 저장 객체를 내보내 다시 가져옵니다.
- Logstash로 nginx 로그를 Grok으로 파싱하고 ECS로 정규화하기
nginx 접근 로그를 Logstash grok으로 파싱해 ECS 필드 이름으로 정리하고, 파싱에 실패한 로그를 Elasticsearch 쿼리로 세어 별도 인덱스로 보냅니다. Docker로 Elasticsearch 8.19와 Logstash 8.19를 띄워 로컬에서 끝까지 돌립니다.
- Sigma 룰을 작성하고 Elasticsearch 쿼리로 변환해 탐지하기
웹 서버 접근 로그용 Sigma 룰 3개를 작성해 sigma-cli로 점검하고 Lucene 쿼리로 변환합니다. 직접 만든 pipeline으로 필드명을 ECS 이름으로 바꾼 뒤 Elasticsearch 8.19와 Kibana Discover에서 탐지되는지 확인하고, 오탐을 줄이는 조건도 더합니다.
- Flask에서 SQL 쿼리를 파라미터 바인딩으로 고치기
회원 검색과 로그인 조회만 있는 작은 Flask 앱에서 문자열로 이어 붙인 SQL이 어떻게 깨지는지 pytest와 쿼리 기록으로 확인합니다. ? 자리표시자, 정렬 기준 허용 목록, LIKE 와일드카드 이스케이프를 차례로 적용하고 Bandit B608이 사라지는 것까지 봅니다. 다만 스캐너가 조용하다는 것이 안전의 증거는 아니라는 점도 짚습니다.
- 작은 Flask 서비스를 직접 공격하고 한 줄씩 고치기
빈 폴더에서 Flask 게시판을 직접 띄우고 로그인·다운로드·게시판 기능을 차례로 뚫어 봅니다. 뚫은 지점을 그대로 한 줄씩 고치면서 왜 그 한 줄이 공격을 막는지 눈으로 확인합니다.
- Docker로 OpenSearch와 Ollama 띄워 비용 없는 AI-SIEM 만들기
OpenSearch와 로컬 LLM인 Ollama를 Docker로 띄우고, ml-commons 커넥터로 둘을 연결합니다. 로그에서 찾은 브루트포스 경보를 LLM이 세 줄로 분류하는 데까지 확인합니다.
- SIEM에 들어온 로그가 믿을 만한지 점검하기: 유실, 중복, 시간 어긋남
샘플 로그를 직접 만들어 유실, 중복, 파싱 실패, 시간 어긋남을 Python 스크립트로 찾아냅니다. 점검 결과를 어떤 기준으로 읽는지도 함께 정리합니다.
- ELK 설치가 실패하는 흔한 원인 세 가지와 해결
일부러 설정을 깨뜨려 실패를 재현하고, 로그에서 원인을 찾아 고치는 순서를 익힙니다. 설치 단계마다 자주 겪는 오류를 미리 겪어 봅니다.