요즘 취미생활로 파판14라는 게임을 재미있게 하고 있다.이 게임에는 장터게시판이라는 시스템이 있는데, 말 그대로 유저들이 자유롭게 아이템을 사고팔 수 있는 곳이다.원래 디스코드 봇 중 아이템 이름을 검색하면 서버별 최저가를 보여주는 봇을 서버에 추가해서 잘 사용하고 있었는데, 뭔가 문제가 생긴 듯 제대로 작동하질 않았다. 다른 장게봇을 찾아봐도 마음에 드는 게 없어서 그냥 내가 만드는 게 빠르겠다! 싶어 직접 만들게 되었다. 앱 생성하기 디스코드 봇을 만들어 보자. https://discord.com/developers/applicationsDiscord for DevelopersBuild games, experiences, and integrations for millions of users on D..
https://github.com/y3onk/Cloudew GitHub - y3onk/CloudewContribute to y3onk/Cloudew development by creating an account on GitHub.github.com 동아리 프로젝트 팀으로 이번 중간고사 기간에 AWS Guardduty 서비스를 확장한 보안 프로젝트를 수행했다.구체적으로는 AWS GuardDuty Findings를 EventBridge로 라우팅하여, Lambda 자동 대응 이후 Slack 알림을 수행하는 Serverless 기반 보안 자동화 시스템이다.기말고사 기간 이후 이 시스템에 MCP 피처를 추가하여 LLM 분석 레이어를 더하고자 한다. 그 준비를 위한 글이다. Anthropic MCP 공식 문서 ..
1. 배경 GuardDuty Finding 처리 AWS GuardDuty는 머신러닝 기반으로 위협을 탐지한다. 그러나 Finding이 발생했을 때 어떻게 대응할 것인가는 별개의 문제다. 특히 소규모 조직에서는 다음과 같은 현실적인 문제에 직면한다:탐지 후 대응 지연: 담당자가 부재 중일 때 Finding 발견이 몇 시간 지연수동 검증의 한계: 각 Finding마다 IP 평판을 수동으로 확인일관성 없는 대응: 담당자마다 다른 판단 기준이러한 문제를 해결하기 위해 자동화된 대응 파이프라인이 필요하다고 생각했고, AWS의 서버리스 서비스를 활용한 이벤트 기반 아키텍처를 설계해 보았다. 동기 vs 비동기 처리보안 이벤트 처리에서 중요한 설계 결정 중 하나는 동기 처리 vs 비동기 처리다. 동기 처리 (Lamb..
들어가며 전통주 추천 앱 '주전부리'를 개발하면서 리뷰 시스템을 구현했습니다.사용자가 전통주에 별점과 후기를 남기고, 이미지도 첨부할 수 있는 기능입니다.겉보기엔 간단해 보이지만 막상 만들어보니 고려할 게 많더라구요. 한 사용자가 같은 전통주에 리뷰를 여러 개 작성하면?전통주 상세 페이지에서 평균 별점을 어떻게 효율적으로 계산할까?이미지는 어디에 저장할까?전통주는 숫자 ID를 쓰는데 리뷰는 ObjectId를 쓴다면? 이 글에서는 이런 문제들을 어떻게 해결했는지, 실제 코드와 함께 공유하려고 합니다. 구현할 기능:User/Alcohol/Review MongoDB 스키마 설계복합 유니크 인덱스로 중복 리뷰 방지리뷰 CRUD API (작성, 조회, 수정, 삭제)AWS S3 이미지 업로드Aggregation ..
배경 우선 나는 컴공 4학년이고, 전공 공부는 그냥 남들이랑 비슷한 만큼 했다.보안 쪽에도 관심이 있었지만 공부는 깔짝깔짝 해서 냉정하게 겉핥기 지식 좀 있는 수준이었다.그 외에는 리눅스마스터 2급 자격증 하나 있는 정도? 보다시피 애매한 공부를 해왔고, 나 스스로 생각했을 때도 "저는 컴퓨터공학을 전공했고 정보보안 분야로 진로를 정했어요"라고 당당하게 말하기 좀 뭐한 것 같았다.내 지식 수준을 객관적으로 평가할 수 있는 지표가 필요하다고 느꼈다.보통 IT분야에서 정보처리기사를 많이들 따는 건 알고 있었고, 정보보안기사는 범위도 넓고 어렵지만 정처기보다 남는 게 많고 더 열심히 공부할 수 있을 것 같아서 이 두 자격증을 같이 취득해보기로 했다. 정보보안기사 기사 시험은 관련 전공인 경우 대학교 4학년 ..
https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.htmlFinding이란?Amazon GuardDuty가 AWS 환경에서 예상치 못한 잠재적으로 악의적인 활동을 탐지하면 파인딩을 생성GuardDuty 콘솔의 Findings 페이지에서 또는 GuardDuty CLI나 API 작업을 사용하여 GuardDuty 파인딩을 보고 관리할 수 있음(참조: GuardDuty 파인딩 관리하기 문서)Amazon CloudWatch Events를 통해 GuardDuty 파인딩을 볼 수도 있음(참조: 아마존 EventBridge로 GuardDuty 파인딩 모니터링하기 문서)상세모든 GuardDuty 파인딩은 파인딩 ID, 파인딩 타입, 그..
https://huggingface.co/learn/llm-course/chapter1/1 Introduction - Hugging Face LLM Course2. Using 🤗 Transformers 3. Fine-tuning a pretrained model 4. Sharing models and tokenizers 5. The 🤗 Datasets library 6. The 🤗 Tokenizers library 9. Building and sharing demos 10. Curate high-quality datasets 11. Fine-tune Large Language Models 12.huggingface.co챕터 1~4: Transformers 라이브러리의 메인 컨셉에 대한 소개.- Tr..
[Toddler's Bottle] bof5 pointsNana told me that buffer overflow is one of the most common software vulnerability. Is that true? readme 내용:bof binary is running at "nc 0 9000" under bof_pwn privilege. get shell and read flag 뭔 말인지 모르겠어서 일단 패스 key = 0xdeadbeefkey 값을 0xcafebabe와 비교하고 일치하면 셸을 실행해줌이때 비교하기 전 gets로 사용자 입력값을 받아서 overflowme에 저장하는데, 여기서부터 오버플로우시켜서 key를 조작해야 함(gets는 버퍼 크기와 상관없이 입력 데이터의 크..
[Toddler's Bottle] collision3 pointsDaddy told me about cool MD5 hash collision today. I wanna do something like that too! MD5 해시 충돌에 관한 문제 col의 인자로 20바이트 크기의 패스코드를 받는데,패스코드를 인자로 준 check_password 함수의 리턴값과 해시코드 값이 같으면 flag를 실행시켜줌 해시코드 값 = 0x21DD09EC int는 4바이트이므로20바이트짜리 패스코드를 4로 나눔4바이트씩 5개 부분을 더한 값이 0x21DD09EC(=568134124)와 같아야 함 5부분으로 나눠보면:0x21DD09EC = 0x6C5CEC8 * 4 + 0x6C5CECC 0x6C5CEC8 -> \xC8..
새로운 마음가짐으로 토들러부터 다시 풀기[Toddler's Bottle] fd1 pointsMommy! what is a file descriptor in Linux? ssh로 접속 아무나 실행할 수 있는 fd에 setGID가 걸려 있다. fd = fd의 인자에서 0x1234를 뺀 값fd의 값이 0이면 표준 입력, 1이면 표준 출력, 2면 표준 에러 len = fd에서 32바이트만큼 buf에 저장한 값 buf에 저장된 값이 LETMEWIN이면 fd_pwn 그룹의 권한으로 flag를 읽어준다. 0x1234 = 4660이므로,fd를 표준입력으로 만들기 위해 4661을 인자로 준다.
문제 에러 로그 전문:elasticsearch | #elasticsearch | # A fatal error has been detected by the Java Runtime Environment:elasticsearch | #elasticsearch | # SIGILL (0x4) at pc=0x0000f56a17f40b5c, pid=7, tid=16elasticsearch | #elasticsearch | # JRE version: (21.0.2+13) (build )elasticsearch | # Java VM: OpenJDK 64-Bit Server VM (21.0.2+13-58, mixed mode, sharing, tiered, compressed oo..
나의 경우, df -h로 확인했을 때 avail 용량이 많이 남았는데도 불구하고 검은 화면에서 넘어가지 않았다.원인은 GDM(GNOME Display Manager)이 죽어서였다. 상태 확인하는 방법:1. 로그인 창에서 로그인하지 말고 (맥북 기준) fn + control + option + F3 누르기 -> TTY 접속2. 남은 용량 확인: df -h3. 디스플레이 매니저 확인: 3-1. GNOME 사용하는 경우: sudo journalctl -u gdm 3-2. Xubuntu/Lubuntu 사용하는 경우: sudo journalctl -u lightdm 화질이 좀 나쁘지만... 디스플레이 에러 로그 잔뜩이다sudo systemctl restart gdm 커맨드로 재시작해준다.이후 fn +..