/보안/OWASP API Security Top 10: 실전 취약점 분석과 방어 코드
보안OWASPAPI보안

OWASP API Security Top 10: 실전 취약점 분석과 방어 코드

API 보안이 중요한 이유 API는 현대 애플리케이션의 핵심입니다. OWASP는 2023년 API Security Top 10을 업데이트했습니다. API1:2023 — Broken Object Level Authorization (BOLA) 가장 흔하고 치명적인 취약점입니다. …

OWASP API Security Top 10: 실전 취약점 분석과 방어 코드

API 보안이 중요한 이유

API는 현대 애플리케이션의 핵심입니다. OWASP는 2023년 API Security Top 10을 업데이트했습니다.

API1:2023 — Broken Object Level Authorization (BOLA)

가장 흔하고 치명적인 취약점입니다.

취약한 코드

JavaScript
// GET /api/orders/{orderId}
app.get('/api/orders/:orderId', async (req, res) => {
  // 문제: 현재 사용자 소유 여부 확인 없음
  const order = await Order.findById(req.params.orderId);
  res.json(order);
});

수정된 코드

JavaScript
app.get('/api/orders/:orderId', authenticate, async (req, res) => {
  const order = await Order.findOne({
    _id: req.params.orderId,
    userId: req.user.id  // 소유자 검증 필수
  });
  if (!order) return res.status(403).json({ error: 'Forbidden' });
  res.json(order);
});

API2:2023 — Broken Authentication

안전한 JWT 설정

JavaScript
import jwt from 'jsonwebtoken';

const token = jwt.sign(
  { userId: user.id },
  process.env.JWT_SECRET,
  { algorithm: 'HS256', expiresIn: '1h' }
);

// 검증 시 알고리즘 명시 필수
const decoded = jwt.verify(token, process.env.JWT_SECRET, {
  algorithms: ['HS256']
});

API3:2023 — Broken Object Property Level Authorization

JavaScript
// 잘못된 예: 전체 객체 반환
res.json(user);  // password_hash, internal_id 등 포함

// 올바른 예: 필요한 필드만 선택
const { id, name, email } = user;
res.json({ id, name, email });

API4:2023 — Unrestricted Resource Consumption

JavaScript
import rateLimit from 'express-rate-limit';

const limiter = rateLimit({
  windowMs: 15 * 60 * 1000,
  max: 100,
  message: { error: 'Too many requests' }
});

app.use('/api/', limiter);

API5~10 핵심 요약

순위취약점핵심 대응
API5Function Level Authorization역할 기반 접근제어(RBAC)
API6Unrestricted Business Flows비즈니스 로직 레이트리밋
API7Server Side Request ForgeryURL 허용 목록 검증
API8Security Misconfiguration불필요한 HTTP 메서드 비활성화
API9Improper Inventory ManagementAPI 버전 관리
API10Unsafe Consumption of APIs서드파티 API 응답 검증

API 보안은 개발 단계부터 시작해야 합니다. 배포 후 수정은 비용이 10~100배 더 듭니다.

참고: 공식 문서

이 글에서 다루는 동작·설정·에러의 1차 출처는 다음 공식 문서입니다. 버전별 옵션과 정확한 동작은 여기서 확인하세요.

✦ ✦ ✦
편집 검토 · Editorial Review

이 글은 AI 에이전트가 자료 조사와 1차 초안 작성을 담당하고, 사람 편집자가 사실관계·출처·톤과 맥락을 검토한 뒤 발행했습니다. 환경(OS·버전)에 따라 결과가 다를 수 있으니 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요 — 확인 후 신속히 정정합니다.

초안 · AI (Security Analyst)·검토 · Nodelog 편집자·발행 ·
관련 공식 문서OWASP 공식 문서

댓글

첫 번째 댓글을 남겨보세요.