
コーダーがセキュリティを征服する OWASP トップ 10 API シリーズ-認証失敗
인증이 깨진 경우 API 문제에 대한 OWASP 목록이 올바르게 구현하기 어려운 것으로 악명이 높습니다. 또한 공격자는 본질적으로 대부분의 인증 문제를 사용자에게 노출해야 하므로 공격자가 이를 연구하고 악용할 수 있는 패턴이나 취약점을 찾을 수 있는 기회를 제공해야 하기 때문에 약간의 이점이 있습니다.
마지막으로 인증은 응용 프로그램 과 네트워크의 나머지 부분에 대한 게이트웨이 역할을 하는 경우가 많기 때문에 공격자에 대한 대상을 유혹하고 있습니다. 인증 프로세스가 깨지거나 취약하면 공격자가 약점을 발견하고 악용할 가능성이 높습니다.
그래서, 이 장에서, 우리는 인증 문제에 관해서 나쁜 사람을 종료하는 방법을 배울 거 야. 먼저 기술을 테스트하려면 머리를 숙이고 게임화 된 도전을 플레이하십시오.
점수를 향상시키고 싶으신가요? 우리가 그것을 무너뜨리는 동안 나와 함께 있어.
손상되거나 잘못 구성된 인증의 예로는 어떤 예가 있습니까?
인증 방법이 자격 증명 스터핑에 취약하거나 알려진 사용자 이름과 암호 목록을 사용하여 보안을 끊을 수 있는 경우문제가 명확하지 않을 수 있습니다. 요청이 제한되거나 제한되거나 모니터링되지 않는 경우 다단계 인증과 같은 일반적으로 매우 안전한 권한 부여 방법조차도 취약할 수 있습니다.
예를 들어 공격자는 POST 요청을/api/system/확인 코드로 보내고 요청 본문에 사용자 이름을 제공하여 암호 복구 요청을 트리거할 수 있습니다. 앱이 6자리 코드가 사용자의 휴대폰으로 전송되지만 입력 필드가 제한되지 않는 SMS 문자 메시지 챌린지를 사용하는 경우 응용 프로그램이 단 몇 분 만에 끊어질 수 있습니다. 공격자는 올바른 조합을 칠 때까지 가능한 모든 6자리 조합을 응용 프로그램에 보내야 합니다.
이 시나리오에서는 표면에서 이중 인증을 사용하면 응용 프로그램을 안전하게 유지하는 것처럼 보입니다. 그러나 사용자 입력속도가 제한되지 않으므로 인증이 끊어지고 취약합니다.
또 다른 예에서 응용 프로그램은 인코딩된 사용자 개체를 인증 쿠키로 사용할 수 있습니다. 그러나 수준이 낮은 사용자 액세스가 있는 공격자가 Base64를 사용하여 쿠키를 디코딩하는 경우 쿠키가 세션과 사용자를 응용 프로그램에 정의하는 방법을 발견할 수 있습니다. 예를 들어, 그들은 다음 JSON을 볼 수 있습니다 한 번 디코딩:
{
"username" : "ShadyGuy",
"role" : "user"
{
이 시점에서 악의적인 사용자가 사용자 이름, 역할 또는 둘 다 변경할 수 있습니다. 몇 가지 값을 변경하여 권한 수준이 높은 다른 사용자가 될 수 있습니다.
{
"username" : "GoodGuy",
"role" : "admin"
{
이 시점에서 공격자가 정보를 다시 코딩하고 쿠키 값으로 설정하면 기본적으로 더 높은 권한 수준을 가진 새 사용자가 됩니다. 이러한 변경을 방지하기 위한 방법이 마련되지 않는 한 응용 프로그램이 변환을 수락할 가능성이 높습니다.
잘못되었거나 잘못 구성된 인증 제거
인증에 실패하면 전반적으로 보안이 손상될 가능성이 큽분입니다. 그러나 코딩 응용 프로그램이 모든 것을 안전하게 유지하는 데 도움이 될 수 있지만 몇 가지 중요한 지침을 따르면 모든 것을 안전하게 유지하는 데 도움이 될 수 있습니다.
먼저 사용자가 프로그램 기능에 액세스할 수 있도록 모든 곳에서 인증 검사를 포함해야 합니다. 인증 검사가 전혀 존재하지 않으면 처음부터 전투가 손실됩니다.
모범 사례의 관점에서 볼 때 사용자가 액세스할 수 있는 URL에 세션 ID가 노출되지 않도록 하는 것이 좋습니다. 깨진 인증과 관련하여 위의 두 번째 예에서는 공격자가 세션 쿠키에 노출되지 않으면 세션 쿠키를 디코딩하지 않도록 하는 것이 훨씬 쉽습니다.
다단계 인증을 구현하는 것도 좋습니다. 이 작업은 촉박한 일정에 따라 알고리즘적으로 암호를 생성하는 하드웨어 토큰을 사용하여 안전하게 수행할 수 있습니다. 사용자에게 이러한 장치를 제공할 수 없는 경우 SMS 문자 메시지도 작동할 수 있습니다. 그러나 사용자 요청이 30초 동안 3~4회 시도와 같은 합리적인 것으로 제한되고 코드가 단 몇 분 만에 모두 함께 만료되는지 확인해야 합니다. 거상 코드를 사용하면 잠재적인 암호에 문자와 번호를 추가하여 보안을 향상시킬 수도 있습니다.
마지막으로 가능하면 사용자 이름 또는 세션 ID로 예측 가능한 순차적 값에 따라 달라지 마십시오. 대신 매번 임의의 세션 ID를 생성하는 보안 서버 측 세션 관리자를 사용합니다.
보안 인증 방법을 구현하는 것은 평균 취약점에 대처하는 것보다 조금 더 까다롭습니다. 그러나 권한 부여는 모든 응용 프로그램, 프로그램 및 API에 매우 중요하기 때문에 올바른 것을 얻기 위해 여분의 시간을 할애할 가치가 있습니다.
체크 아웃 Secure Code Warrior 이 취약점에 대한 자세한 정보를 위한 블로그 페이지와 다른 보안 결함의 파괴로부터 조직과 고객을 보호하는 방법. 데모를 시도할 수도 있습니다. Secure Code Warrior 모든 사이버 보안 기술을 연마하고 최신 상태로 유지하기 위한 교육 플랫폼을 제공합니다.


認証は、多くの場合、アプリケーションへのゲートウェイとしてだけでなく、ネットワークの他の部分へのゲートウェイとしても機能するため、攻撃者にとって魅力的な標的です。認証プロセスが壊れていたり脆弱だったりすると、攻撃者がその弱点を発見して悪用する可能性が高くなります。
마티아스 마두 박사는 보안 전문가, 연구원, CTO, 그리고 Secure Code Warrior의 공동 창립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션을 중심으로 애플리케이션 보안 분야 박사 학위를 취득했습니다.이후 미국의 Fortify에 합류하여 개발자가 안전한 코드를 작성하도록 지원하지 않고 단순히 코드 문제를 탐지하는 것만으로는 불충분하다는 점을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안 부담을 줄이며 고객 기대를 뛰어넘는 제품을 개발하게 되었습니다. Team Awesome의 일원으로 책상에 있지 않을 때는 RSA 컨퍼런스, BlackHat, DefCon 등의 컨퍼런스에서 발표하는 무대 발표를 즐깁니다.

Secure Code Warrior는 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 구축하는 데 도움을 드립니다. 애플리케이션 보안 관리자, 개발자, CISO 또는 보안 담당자이든, 안전하지 않은 코드와 관련된 위험을 줄이는 데 도움을 드립니다.
데모 예약마티아스 마두 박사는 보안 전문가, 연구원, CTO, 그리고 Secure Code Warrior의 공동 창립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션을 중심으로 애플리케이션 보안 분야 박사 학위를 취득했습니다.이후 미국의 Fortify에 합류하여 개발자가 안전한 코드를 작성하도록 지원하지 않고 단순히 코드 문제를 탐지하는 것만으로는 불충분하다는 점을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안 부담을 줄이며 고객 기대를 뛰어넘는 제품을 개발하게 되었습니다. Team Awesome의 일원으로 책상에 있지 않을 때는 RSA 컨퍼런스, BlackHat, DefCon 등의 컨퍼런스에서 발표하는 무대 발표를 즐깁니다.
마티아스는 15년 이상의 소프트웨어 보안 실무 경험을 가진 연구자이자 개발자입니다. 포티파이 소프트웨어(Fortify Software)와 자신의 회사인 센세이 시큐리티(Sensei Security) 등 기업을 대상으로 솔루션을 개발해 왔습니다. 마티아스는 경력 전반에 걸쳐 여러 애플리케이션 보안 연구 프로젝트를 주도했으며, 이는 상용 제품으로 이어져 10건 이상의 특허를 취득했습니다.업무 외 시간에는 마티아스는 고급 애플리케이션 보안 교육 과정의 강사로 활동하며, RSA 컨퍼런스, 블랙햇, 디프콘, BSIMM, OWASP 앱섹, 브루콘 등 글로벌 컨퍼런스에서 정기적으로 발표를 진행하고 있습니다.
마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 그곳에서 애플리케이션의 내부 동작을 숨기기 위한 프로그램 난독화를 통한 애플리케이션 보안을 연구했습니다.


인증이 깨진 경우 API 문제에 대한 OWASP 목록이 올바르게 구현하기 어려운 것으로 악명이 높습니다. 또한 공격자는 본질적으로 대부분의 인증 문제를 사용자에게 노출해야 하므로 공격자가 이를 연구하고 악용할 수 있는 패턴이나 취약점을 찾을 수 있는 기회를 제공해야 하기 때문에 약간의 이점이 있습니다.
마지막으로 인증은 응용 프로그램 과 네트워크의 나머지 부분에 대한 게이트웨이 역할을 하는 경우가 많기 때문에 공격자에 대한 대상을 유혹하고 있습니다. 인증 프로세스가 깨지거나 취약하면 공격자가 약점을 발견하고 악용할 가능성이 높습니다.
그래서, 이 장에서, 우리는 인증 문제에 관해서 나쁜 사람을 종료하는 방법을 배울 거 야. 먼저 기술을 테스트하려면 머리를 숙이고 게임화 된 도전을 플레이하십시오.
점수를 향상시키고 싶으신가요? 우리가 그것을 무너뜨리는 동안 나와 함께 있어.
손상되거나 잘못 구성된 인증의 예로는 어떤 예가 있습니까?
인증 방법이 자격 증명 스터핑에 취약하거나 알려진 사용자 이름과 암호 목록을 사용하여 보안을 끊을 수 있는 경우문제가 명확하지 않을 수 있습니다. 요청이 제한되거나 제한되거나 모니터링되지 않는 경우 다단계 인증과 같은 일반적으로 매우 안전한 권한 부여 방법조차도 취약할 수 있습니다.
예를 들어 공격자는 POST 요청을/api/system/확인 코드로 보내고 요청 본문에 사용자 이름을 제공하여 암호 복구 요청을 트리거할 수 있습니다. 앱이 6자리 코드가 사용자의 휴대폰으로 전송되지만 입력 필드가 제한되지 않는 SMS 문자 메시지 챌린지를 사용하는 경우 응용 프로그램이 단 몇 분 만에 끊어질 수 있습니다. 공격자는 올바른 조합을 칠 때까지 가능한 모든 6자리 조합을 응용 프로그램에 보내야 합니다.
이 시나리오에서는 표면에서 이중 인증을 사용하면 응용 프로그램을 안전하게 유지하는 것처럼 보입니다. 그러나 사용자 입력속도가 제한되지 않으므로 인증이 끊어지고 취약합니다.
또 다른 예에서 응용 프로그램은 인코딩된 사용자 개체를 인증 쿠키로 사용할 수 있습니다. 그러나 수준이 낮은 사용자 액세스가 있는 공격자가 Base64를 사용하여 쿠키를 디코딩하는 경우 쿠키가 세션과 사용자를 응용 프로그램에 정의하는 방법을 발견할 수 있습니다. 예를 들어, 그들은 다음 JSON을 볼 수 있습니다 한 번 디코딩:
{
"username" : "ShadyGuy",
"role" : "user"
{
이 시점에서 악의적인 사용자가 사용자 이름, 역할 또는 둘 다 변경할 수 있습니다. 몇 가지 값을 변경하여 권한 수준이 높은 다른 사용자가 될 수 있습니다.
{
"username" : "GoodGuy",
"role" : "admin"
{
이 시점에서 공격자가 정보를 다시 코딩하고 쿠키 값으로 설정하면 기본적으로 더 높은 권한 수준을 가진 새 사용자가 됩니다. 이러한 변경을 방지하기 위한 방법이 마련되지 않는 한 응용 프로그램이 변환을 수락할 가능성이 높습니다.
잘못되었거나 잘못 구성된 인증 제거
인증에 실패하면 전반적으로 보안이 손상될 가능성이 큽분입니다. 그러나 코딩 응용 프로그램이 모든 것을 안전하게 유지하는 데 도움이 될 수 있지만 몇 가지 중요한 지침을 따르면 모든 것을 안전하게 유지하는 데 도움이 될 수 있습니다.
먼저 사용자가 프로그램 기능에 액세스할 수 있도록 모든 곳에서 인증 검사를 포함해야 합니다. 인증 검사가 전혀 존재하지 않으면 처음부터 전투가 손실됩니다.
모범 사례의 관점에서 볼 때 사용자가 액세스할 수 있는 URL에 세션 ID가 노출되지 않도록 하는 것이 좋습니다. 깨진 인증과 관련하여 위의 두 번째 예에서는 공격자가 세션 쿠키에 노출되지 않으면 세션 쿠키를 디코딩하지 않도록 하는 것이 훨씬 쉽습니다.
다단계 인증을 구현하는 것도 좋습니다. 이 작업은 촉박한 일정에 따라 알고리즘적으로 암호를 생성하는 하드웨어 토큰을 사용하여 안전하게 수행할 수 있습니다. 사용자에게 이러한 장치를 제공할 수 없는 경우 SMS 문자 메시지도 작동할 수 있습니다. 그러나 사용자 요청이 30초 동안 3~4회 시도와 같은 합리적인 것으로 제한되고 코드가 단 몇 분 만에 모두 함께 만료되는지 확인해야 합니다. 거상 코드를 사용하면 잠재적인 암호에 문자와 번호를 추가하여 보안을 향상시킬 수도 있습니다.
마지막으로 가능하면 사용자 이름 또는 세션 ID로 예측 가능한 순차적 값에 따라 달라지 마십시오. 대신 매번 임의의 세션 ID를 생성하는 보안 서버 측 세션 관리자를 사용합니다.
보안 인증 방법을 구현하는 것은 평균 취약점에 대처하는 것보다 조금 더 까다롭습니다. 그러나 권한 부여는 모든 응용 프로그램, 프로그램 및 API에 매우 중요하기 때문에 올바른 것을 얻기 위해 여분의 시간을 할애할 가치가 있습니다.
체크 아웃 Secure Code Warrior 이 취약점에 대한 자세한 정보를 위한 블로그 페이지와 다른 보안 결함의 파괴로부터 조직과 고객을 보호하는 방법. 데모를 시도할 수도 있습니다. Secure Code Warrior 모든 사이버 보안 기술을 연마하고 최신 상태로 유지하기 위한 교육 플랫폼을 제공합니다.

인증이 깨진 경우 API 문제에 대한 OWASP 목록이 올바르게 구현하기 어려운 것으로 악명이 높습니다. 또한 공격자는 본질적으로 대부분의 인증 문제를 사용자에게 노출해야 하므로 공격자가 이를 연구하고 악용할 수 있는 패턴이나 취약점을 찾을 수 있는 기회를 제공해야 하기 때문에 약간의 이점이 있습니다.
마지막으로 인증은 응용 프로그램 과 네트워크의 나머지 부분에 대한 게이트웨이 역할을 하는 경우가 많기 때문에 공격자에 대한 대상을 유혹하고 있습니다. 인증 프로세스가 깨지거나 취약하면 공격자가 약점을 발견하고 악용할 가능성이 높습니다.
그래서, 이 장에서, 우리는 인증 문제에 관해서 나쁜 사람을 종료하는 방법을 배울 거 야. 먼저 기술을 테스트하려면 머리를 숙이고 게임화 된 도전을 플레이하십시오.
점수를 향상시키고 싶으신가요? 우리가 그것을 무너뜨리는 동안 나와 함께 있어.
손상되거나 잘못 구성된 인증의 예로는 어떤 예가 있습니까?
인증 방법이 자격 증명 스터핑에 취약하거나 알려진 사용자 이름과 암호 목록을 사용하여 보안을 끊을 수 있는 경우문제가 명확하지 않을 수 있습니다. 요청이 제한되거나 제한되거나 모니터링되지 않는 경우 다단계 인증과 같은 일반적으로 매우 안전한 권한 부여 방법조차도 취약할 수 있습니다.
예를 들어 공격자는 POST 요청을/api/system/확인 코드로 보내고 요청 본문에 사용자 이름을 제공하여 암호 복구 요청을 트리거할 수 있습니다. 앱이 6자리 코드가 사용자의 휴대폰으로 전송되지만 입력 필드가 제한되지 않는 SMS 문자 메시지 챌린지를 사용하는 경우 응용 프로그램이 단 몇 분 만에 끊어질 수 있습니다. 공격자는 올바른 조합을 칠 때까지 가능한 모든 6자리 조합을 응용 프로그램에 보내야 합니다.
이 시나리오에서는 표면에서 이중 인증을 사용하면 응용 프로그램을 안전하게 유지하는 것처럼 보입니다. 그러나 사용자 입력속도가 제한되지 않으므로 인증이 끊어지고 취약합니다.
또 다른 예에서 응용 프로그램은 인코딩된 사용자 개체를 인증 쿠키로 사용할 수 있습니다. 그러나 수준이 낮은 사용자 액세스가 있는 공격자가 Base64를 사용하여 쿠키를 디코딩하는 경우 쿠키가 세션과 사용자를 응용 프로그램에 정의하는 방법을 발견할 수 있습니다. 예를 들어, 그들은 다음 JSON을 볼 수 있습니다 한 번 디코딩:
{
"username" : "ShadyGuy",
"role" : "user"
{
이 시점에서 악의적인 사용자가 사용자 이름, 역할 또는 둘 다 변경할 수 있습니다. 몇 가지 값을 변경하여 권한 수준이 높은 다른 사용자가 될 수 있습니다.
{
"username" : "GoodGuy",
"role" : "admin"
{
이 시점에서 공격자가 정보를 다시 코딩하고 쿠키 값으로 설정하면 기본적으로 더 높은 권한 수준을 가진 새 사용자가 됩니다. 이러한 변경을 방지하기 위한 방법이 마련되지 않는 한 응용 프로그램이 변환을 수락할 가능성이 높습니다.
잘못되었거나 잘못 구성된 인증 제거
인증에 실패하면 전반적으로 보안이 손상될 가능성이 큽분입니다. 그러나 코딩 응용 프로그램이 모든 것을 안전하게 유지하는 데 도움이 될 수 있지만 몇 가지 중요한 지침을 따르면 모든 것을 안전하게 유지하는 데 도움이 될 수 있습니다.
먼저 사용자가 프로그램 기능에 액세스할 수 있도록 모든 곳에서 인증 검사를 포함해야 합니다. 인증 검사가 전혀 존재하지 않으면 처음부터 전투가 손실됩니다.
모범 사례의 관점에서 볼 때 사용자가 액세스할 수 있는 URL에 세션 ID가 노출되지 않도록 하는 것이 좋습니다. 깨진 인증과 관련하여 위의 두 번째 예에서는 공격자가 세션 쿠키에 노출되지 않으면 세션 쿠키를 디코딩하지 않도록 하는 것이 훨씬 쉽습니다.
다단계 인증을 구현하는 것도 좋습니다. 이 작업은 촉박한 일정에 따라 알고리즘적으로 암호를 생성하는 하드웨어 토큰을 사용하여 안전하게 수행할 수 있습니다. 사용자에게 이러한 장치를 제공할 수 없는 경우 SMS 문자 메시지도 작동할 수 있습니다. 그러나 사용자 요청이 30초 동안 3~4회 시도와 같은 합리적인 것으로 제한되고 코드가 단 몇 분 만에 모두 함께 만료되는지 확인해야 합니다. 거상 코드를 사용하면 잠재적인 암호에 문자와 번호를 추가하여 보안을 향상시킬 수도 있습니다.
마지막으로 가능하면 사용자 이름 또는 세션 ID로 예측 가능한 순차적 값에 따라 달라지 마십시오. 대신 매번 임의의 세션 ID를 생성하는 보안 서버 측 세션 관리자를 사용합니다.
보안 인증 방법을 구현하는 것은 평균 취약점에 대처하는 것보다 조금 더 까다롭습니다. 그러나 권한 부여는 모든 응용 프로그램, 프로그램 및 API에 매우 중요하기 때문에 올바른 것을 얻기 위해 여분의 시간을 할애할 가치가 있습니다.
체크 아웃 Secure Code Warrior 이 취약점에 대한 자세한 정보를 위한 블로그 페이지와 다른 보안 결함의 파괴로부터 조직과 고객을 보호하는 방법. 데모를 시도할 수도 있습니다. Secure Code Warrior 모든 사이버 보안 기술을 연마하고 최신 상태로 유지하기 위한 교육 플랫폼을 제공합니다.

아래 링크를 클릭하여 이 자료의 PDF를 다운로드하십시오.
Secure Code Warrior는 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 구축하는 데 도움을 드립니다. 애플리케이션 보안 관리자, 개발자, CISO 또는 보안 담당자이든, 안전하지 않은 코드와 관련된 위험을 줄이는 데 도움을 드립니다.
보고서 표시데모 예약마티아스 마두 박사는 보안 전문가, 연구원, CTO, 그리고 Secure Code Warrior의 공동 창립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션을 중심으로 애플리케이션 보안 분야 박사 학위를 취득했습니다.이후 미국의 Fortify에 합류하여 개발자가 안전한 코드를 작성하도록 지원하지 않고 단순히 코드 문제를 탐지하는 것만으로는 불충분하다는 점을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안 부담을 줄이며 고객 기대를 뛰어넘는 제품을 개발하게 되었습니다. Team Awesome의 일원으로 책상에 있지 않을 때는 RSA 컨퍼런스, BlackHat, DefCon 등의 컨퍼런스에서 발표하는 무대 발표를 즐깁니다.
마티아스는 15년 이상의 소프트웨어 보안 실무 경험을 가진 연구자이자 개발자입니다. 포티파이 소프트웨어(Fortify Software)와 자신의 회사인 센세이 시큐리티(Sensei Security) 등 기업을 대상으로 솔루션을 개발해 왔습니다. 마티아스는 경력 전반에 걸쳐 여러 애플리케이션 보안 연구 프로젝트를 주도했으며, 이는 상용 제품으로 이어져 10건 이상의 특허를 취득했습니다.업무 외 시간에는 마티아스는 고급 애플리케이션 보안 교육 과정의 강사로 활동하며, RSA 컨퍼런스, 블랙햇, 디프콘, BSIMM, OWASP 앱섹, 브루콘 등 글로벌 컨퍼런스에서 정기적으로 발표를 진행하고 있습니다.
마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 그곳에서 애플리케이션의 내부 동작을 숨기기 위한 프로그램 난독화를 통한 애플리케이션 보안을 연구했습니다.
인증이 깨진 경우 API 문제에 대한 OWASP 목록이 올바르게 구현하기 어려운 것으로 악명이 높습니다. 또한 공격자는 본질적으로 대부분의 인증 문제를 사용자에게 노출해야 하므로 공격자가 이를 연구하고 악용할 수 있는 패턴이나 취약점을 찾을 수 있는 기회를 제공해야 하기 때문에 약간의 이점이 있습니다.
마지막으로 인증은 응용 프로그램 과 네트워크의 나머지 부분에 대한 게이트웨이 역할을 하는 경우가 많기 때문에 공격자에 대한 대상을 유혹하고 있습니다. 인증 프로세스가 깨지거나 취약하면 공격자가 약점을 발견하고 악용할 가능성이 높습니다.
그래서, 이 장에서, 우리는 인증 문제에 관해서 나쁜 사람을 종료하는 방법을 배울 거 야. 먼저 기술을 테스트하려면 머리를 숙이고 게임화 된 도전을 플레이하십시오.
점수를 향상시키고 싶으신가요? 우리가 그것을 무너뜨리는 동안 나와 함께 있어.
손상되거나 잘못 구성된 인증의 예로는 어떤 예가 있습니까?
인증 방법이 자격 증명 스터핑에 취약하거나 알려진 사용자 이름과 암호 목록을 사용하여 보안을 끊을 수 있는 경우문제가 명확하지 않을 수 있습니다. 요청이 제한되거나 제한되거나 모니터링되지 않는 경우 다단계 인증과 같은 일반적으로 매우 안전한 권한 부여 방법조차도 취약할 수 있습니다.
예를 들어 공격자는 POST 요청을/api/system/확인 코드로 보내고 요청 본문에 사용자 이름을 제공하여 암호 복구 요청을 트리거할 수 있습니다. 앱이 6자리 코드가 사용자의 휴대폰으로 전송되지만 입력 필드가 제한되지 않는 SMS 문자 메시지 챌린지를 사용하는 경우 응용 프로그램이 단 몇 분 만에 끊어질 수 있습니다. 공격자는 올바른 조합을 칠 때까지 가능한 모든 6자리 조합을 응용 프로그램에 보내야 합니다.
이 시나리오에서는 표면에서 이중 인증을 사용하면 응용 프로그램을 안전하게 유지하는 것처럼 보입니다. 그러나 사용자 입력속도가 제한되지 않으므로 인증이 끊어지고 취약합니다.
또 다른 예에서 응용 프로그램은 인코딩된 사용자 개체를 인증 쿠키로 사용할 수 있습니다. 그러나 수준이 낮은 사용자 액세스가 있는 공격자가 Base64를 사용하여 쿠키를 디코딩하는 경우 쿠키가 세션과 사용자를 응용 프로그램에 정의하는 방법을 발견할 수 있습니다. 예를 들어, 그들은 다음 JSON을 볼 수 있습니다 한 번 디코딩:
{
"username" : "ShadyGuy",
"role" : "user"
{
이 시점에서 악의적인 사용자가 사용자 이름, 역할 또는 둘 다 변경할 수 있습니다. 몇 가지 값을 변경하여 권한 수준이 높은 다른 사용자가 될 수 있습니다.
{
"username" : "GoodGuy",
"role" : "admin"
{
이 시점에서 공격자가 정보를 다시 코딩하고 쿠키 값으로 설정하면 기본적으로 더 높은 권한 수준을 가진 새 사용자가 됩니다. 이러한 변경을 방지하기 위한 방법이 마련되지 않는 한 응용 프로그램이 변환을 수락할 가능성이 높습니다.
잘못되었거나 잘못 구성된 인증 제거
인증에 실패하면 전반적으로 보안이 손상될 가능성이 큽분입니다. 그러나 코딩 응용 프로그램이 모든 것을 안전하게 유지하는 데 도움이 될 수 있지만 몇 가지 중요한 지침을 따르면 모든 것을 안전하게 유지하는 데 도움이 될 수 있습니다.
먼저 사용자가 프로그램 기능에 액세스할 수 있도록 모든 곳에서 인증 검사를 포함해야 합니다. 인증 검사가 전혀 존재하지 않으면 처음부터 전투가 손실됩니다.
모범 사례의 관점에서 볼 때 사용자가 액세스할 수 있는 URL에 세션 ID가 노출되지 않도록 하는 것이 좋습니다. 깨진 인증과 관련하여 위의 두 번째 예에서는 공격자가 세션 쿠키에 노출되지 않으면 세션 쿠키를 디코딩하지 않도록 하는 것이 훨씬 쉽습니다.
다단계 인증을 구현하는 것도 좋습니다. 이 작업은 촉박한 일정에 따라 알고리즘적으로 암호를 생성하는 하드웨어 토큰을 사용하여 안전하게 수행할 수 있습니다. 사용자에게 이러한 장치를 제공할 수 없는 경우 SMS 문자 메시지도 작동할 수 있습니다. 그러나 사용자 요청이 30초 동안 3~4회 시도와 같은 합리적인 것으로 제한되고 코드가 단 몇 분 만에 모두 함께 만료되는지 확인해야 합니다. 거상 코드를 사용하면 잠재적인 암호에 문자와 번호를 추가하여 보안을 향상시킬 수도 있습니다.
마지막으로 가능하면 사용자 이름 또는 세션 ID로 예측 가능한 순차적 값에 따라 달라지 마십시오. 대신 매번 임의의 세션 ID를 생성하는 보안 서버 측 세션 관리자를 사용합니다.
보안 인증 방법을 구현하는 것은 평균 취약점에 대처하는 것보다 조금 더 까다롭습니다. 그러나 권한 부여는 모든 응용 프로그램, 프로그램 및 API에 매우 중요하기 때문에 올바른 것을 얻기 위해 여분의 시간을 할애할 가치가 있습니다.
체크 아웃 Secure Code Warrior 이 취약점에 대한 자세한 정보를 위한 블로그 페이지와 다른 보안 결함의 파괴로부터 조직과 고객을 보호하는 방법. 데모를 시도할 수도 있습니다. Secure Code Warrior 모든 사이버 보안 기술을 연마하고 최신 상태로 유지하기 위한 교육 플랫폼을 제공합니다.
목차
마티아스 마두 박사는 보안 전문가, 연구원, CTO, 그리고 Secure Code Warrior의 공동 창립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션을 중심으로 애플리케이션 보안 분야 박사 학위를 취득했습니다.이후 미국의 Fortify에 합류하여 개발자가 안전한 코드를 작성하도록 지원하지 않고 단순히 코드 문제를 탐지하는 것만으로는 불충분하다는 점을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안 부담을 줄이며 고객 기대를 뛰어넘는 제품을 개발하게 되었습니다. Team Awesome의 일원으로 책상에 있지 않을 때는 RSA 컨퍼런스, BlackHat, DefCon 등의 컨퍼런스에서 발표하는 무대 발표를 즐깁니다.

Secure Code Warrior는 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 구축하는 데 도움을 드립니다. 애플리케이션 보안 관리자, 개발자, CISO 또는 보안 담당자이든, 안전하지 않은 코드와 관련된 위험을 줄이는 데 도움을 드립니다.
데모 예약[다운로드]



%20(1).avif)
.avif)
