security
CHAPTER 55 / 84
읽기 약 2분
FUNCTION
보안 Python: 일반 코딩과 다른 점
핵심 개념
보안 스크립팅에서 Python이 왜 표준 언어인지, 일반 개발과 어떤 차이가 있는지 배운다.
본문
보안 Python의 정체성
일반 웹 개발과 보안 코딩은 다루는 추상화 계층이 다릅니다.
| 일반 Python (Django/Flask) | 보안 Python |
|---|---|
| HTTP 요청·응답·DB 쿼리 | 네트워크 소켓·바이너리·OS 콜 |
| ORM이 SQL을 추상화 | 직접 패킷·헥스를 다룸 |
| 사용자 친화 UI | CLI 도구·스크립트 |
표준이 된 이유: 라이브러리 생태계
requests— HTTP 요청을 한 줄로scapy— 패킷 조립·발송·스니핑pwntools— 바이너리 익스플로잇 자동화impacket— 윈도우 SMB·Kerberos 인증 조작cryptography— 암호 알고리즘 표준 구현
⚠️ 윤리적 경계
보안 도구는 허가된 환경에서만 사용합니다.
- ✅ 자기 서버, TryHackMe, HackTheBox, CTF 대회
- ❌ 임의의 외부 IP 스캔, 권한 없는 서버 침투
실습 코드
# 보안 Python의 3가지 기본기 — 네트워크/바이너리/OS
# ⚠️ 이 코드는 허가된 환경에서만 사용하세요.
import socket
import os
import sys
import struct
# (1) 네트워크 소켓 — 일반 개발에서는 거의 안 쓰는 저수준 API
def check_port(host: str, port: int, timeout: float = 2.0) -> bool:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(timeout)
try:
s.connect((host, port))
return True
except (socket.timeout, ConnectionRefusedError, OSError):
return False
finally:
s.close()
# (2) OS 레벨 정보 수집
def system_info() -> dict:
return {
'platform': sys.platform,
'python': sys.version.split()[0],
'cwd': os.getcwd(),
'pid': os.getpid(),
}
# (3) 바이너리 패킹 — 패킷·익스플로잇 페이로드 만들 때 필수
def pack_demo() -> bytes:
# 4바이트 빅엔디안 정수 + 2바이트 리틀엔디안 short
return struct.pack('>I<H', 0xDEADBEEF, 0x1337)
if __name__ == '__main__':
print('localhost:80 열림?', check_port('127.0.0.1', 80))
print('시스템 정보:', system_info())
print('패킹 결과(hex):', pack_demo().hex())AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude
무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6
보안 Python과 일반 Python의 차이를 socket·struct·os 레벨에서 코드로 비교 설명해줘. 초보가 빠지기 쉬운 함정 3가지도 알려줘.
ChatGPT
무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro
보안 스크립팅에서 가장 많이 쓰이는 Python 라이브러리 Top 5(requests/scapy/pwntools/impacket/cryptography)의 실전 사용 예시를 한 줄 코드로 보여줘.
Gemini
무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro
내가 작성한 보안 스크립트 전체를 분석해서 네트워크·바이너리·OS 레벨에서 발생할 수 있는 예외 상황을 종합 리포트로 정리해줘.
Grok
무료: Grok 4.1 / SuperGrok $30/mo
2026년 화이트햇 보안 분야에서 Python이 Go·Rust 대비 여전히 표준인지, 채용 시장에서 어떤 비중을 차지하는지 솔직히 알려줘.
⭐ 이것만 기억하세요
보안 Python: 일반 코딩과 다른 점은 이 3가지만 확실히 잡으세요
1.보안 Python은 네트워크·바이너리·OS 레벨을 직접 다루는 점이 일반 개발과 다르다
2.requests·scapy·pwntools — 보안 전문 라이브러리 생태계가 Python을 표준으로 만들었다
3.다음 챕터에서 보안 스크립팅 전용 가상 환경을 구축한다
공유하기
진행도 55 / 84