Home Blog - AI Review
Post
Cancel

Blog - AI Review

AI 블로그 글 리뷰하는 기능을 만든 후기입니다.

만들게 된 이유?

요즈음 해킹 공부를 하거나, 문제를 풀면서 부족함이 정말 많다고 느낍니다.
HTB 문제를 풀거나, 침투테스트 관련 공부를 할때 개념 원리와 내가 부족하거나 놓치고 있는 부분이 어떤 것들인지 잘 모르겠습니다.

사실 글을 잘 쓰는 편이 아니라, 피드백을 받고 싶은데 부탁할 사람이 없었습니다.
그래서 내가 블로그 글을 올리면 AI가 해당 글을 읽고 빠르게 핵심 요약과 내가 배워야할 지식이 무엇인지를 작성하도록 만들었습니다.

처음에는 블로그 글이 Github에 올라가면 해당 글을 읽어 AI가 notion에 정리하도록 만들려고 하다가,
그냥 github 에서 정리할 수 있는 방법을 찾다가 PR을 올리면 자동으로 리뷰하도록 하는 방법을 추천 받아 해당 방법을 사용하기로 했습니다.

Github Action!

.github/workflos어떻게 동작하는지 ai-review.yml을 만들었습니다.
해당 파일은 PR이 생성되었을때, python scripts/ai_review_post.py 스크립트가 동작합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
name: "AI Post Review"

on:
  pull_request:
    paths:
      - "_posts/**/*.md"

permissions:
  contents: read
  issues: write
  pull-requests: write

jobs:
  review:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Setup Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.11"

      - name: Install dependencies
        run: python -m pip install --upgrade openai

      - name: Review changed posts
        env:
          OPENAI_API_KEY: $
          OPENAI_MODEL: $
          GITHUB_TOKEN: $
          GITHUB_REPOSITORY: $
          PR_NUMBER: $
          BASE_SHA: $
          HEAD_SHA: $
        run: python scripts/ai_review_post.py

총평요약, 핵심부분, 틀림 및 보완사항, 추가 학습 필요 정보 4개의 섹션으로 작성하도록 하였고,
기술적으로 틀린 부분은 최대한 근거를 확보하라고 했습니다.
아직 다듬을 부분이 많지만, 그건 추후에 수정 예정..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
REVIEW_INSTRUCTIONS = """\
너는 기술 블로그 글을 리뷰하는 레드팀 전문 시니어 엔지니어다.
웹/시스템/클라우드/AD 보안, 취약점 분석, 익스플로잇 체인, 권한 상승, 탐지 회피와 방어 검증에 익숙한 전문가 관점으로 리뷰한다.
글쓴이가 공격 기법의 원리와 보안적 의미를 더 정확하게 정리하도록 돕는 것이 목표다.

규칙:
- 한국어로 작성한다.
- 과장하지 말고, 글에 실제로 있는 내용에 근거해 리뷰한다.
- 기술적으로 확실하지 않은 지적은 "확인 필요"라고 표시한다.
- 위험한 악용 절차를 새로 확장하기보다, 글에 이미 포함된 내용의 정확성, 원리, 전제 조건, 방어 관점을 중심으로 리뷰한다.
- 기술적으로 틀린 부분은 왜 틀렸는지 상세하게 설명한다.
- 특히 틀린 부분이 있다면, 검증 가능한 근거와 함께 수정 방향을 제시한다.
- 출력은 반드시 아래 4개 섹션만 사용한다.
- 각 섹션은 짧은 문단과 bullet을 섞어 읽기 쉽게 작성한다.

# 총평 요약
글의 목적, 전체 완성도, 독자가 얻을 수 있는 점을 요약한다.

# 핵심 부분
글에서 중요한 공격 흐름, 취약점 트리거 조건, 권한 경계 변화, 익스플로잇 성공 요인을 전문가 관점으로 정리한다.
기술적인 내용이 있다면 단순 요약에 그치지 말고 핵심 아이디어, 내부 원리, 왜 해당 기법이 통하는지, 어떤 환경 전제가 필요한지 설명한다.
가능하면 탐지/방어 관점에서 이 핵심 부분이 왜 중요한지도 짚는다.


# 틀림 및 보완 사항
기술적으로 틀렸거나 모호한 부분, 근거가 부족한 부분, 오해를 만들 수 있는 표현을 지적한다.
특히 기술적으로 틀린 부분은 상세하게 설명한다.
가능하면 수정 방향도 제시한다.

# 추가 학습 필요 정보
글쓴이가 더 공부하면 좋은 키워드, 공식 문서, 관련 개념을 제안한다.
"""

Result

잘 리뷰를 해줍니다~~

review

Conclusion

AI Review는 브랜치를 하나 생성해서 PR를 실행해야 동작해서,
완전 자동화는 아니지만 AI를 이용한 무언가를 만들고 싶었습니다.
열심히 AI한테 피드백을 받고 재밌는 것들을 시도하고 싶습니다!!