SecuFiby TechFi
낮음SW-EN-06CWE-375📦 SW-EN 캡슐화

변경 가능한 객체 반환

Return of Mutable Object

getter가 내부 배열·컬렉션 객체의 참조를 직접 반환하여 외부에서 내부 상태를 변경할 수 있는 취약점

⚡ 발생 원인

방어적 복사(defensive copy) 없이 참조 반환

💥 보안 영향

내부 상태 무단 변조, 데이터 무결성 침해

취약한 코드 vs 안전한 코드

취약한 코드 (java)

// 취약한 코드 - 내부 배열 참조 직접 반환
public class Account {
    private int[] transactions;

    public int[] getTransactions() {
        return transactions;  // 참조 직접 반환 - 외부에서 수정 가능
    }
}
// 외부 코드: account.getTransactions()[0] = -99999;

안전한 코드 (java)

// 안전한 코드 - 방어적 복사
public class Account {
    private int[] transactions;

    public int[] getTransactions() {
        return transactions.clone();  // 복사본 반환
    }

    // 또는 불변 뷰 반환
    public List<Integer> getTransactionList() {
        return Collections.unmodifiableList(
            Arrays.stream(transactions).boxed().toList()
        );
    }
}
🛡️

ISMS-P 인증기준 연계

2.10.1 보안 시스템 운영

🔬 AI 코드 진단

내 코드에 변경 가능한 객체 반환 취약점이 있는지 바로 확인하세요

코드를 붙여넣으면 AI가 KISA 7대 보안약점 기준으로 변경 가능한 객체 반환 등 취약점을 자동 분석합니다.

AI 코드 진단 실습 →

전문가 보안 점검

변경 가능한 객체 반환 등 SW 보안약점을 전문가가 직접 점검해드립니다

ISMS-P 선임심사원이 직접 수행하는 수탁사 보안성 검토 서비스입니다.
KISA SW 개발보안 가이드 기준으로 코드·시스템 전체를 점검하고 ISMS-P 심사 증적을 제공합니다.

📦 SW-EN 관련 취약점 (캡슐화)